@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,30 +1,2780 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("react"),
5
- require("react-native"),
6
- require("@react-native-async-storage/async-storage"),
7
- require("./BrandMark"),
8
- require("./HeadingGroup"),
9
- require("./BodyText"),
10
- require("./PrimaryButton"),
11
- require("./SignInStep"),
12
- require("./VerificationStep"),
13
- require("./PlatformConnectorsStep"),
14
- require("./PersonalizationConsentScreen"),
15
- require("../services/platformAuthService"),
16
- require("../utils/assetRegistry"),
17
- require("../services/googleAuthService"),
18
- require("../utils/haptics"),
19
- require("../services/authService"),
20
- require("socket.io-client"),
21
- require("../services/pinStorageUtils"),
22
- require("../services/pinEncryptionService"),
23
- require("../services/mobileTrainingService"),
24
- require("../services/llmDataStorage"),
25
- require("../services/connectedAccountsService"),
26
- require("../config/api"),
27
- require("../services/jwtStorageService")
28
- ];
29
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
30
- function _0xd6d3(_0x2c7206,_0xd6d3b2){_0x2c7206=_0x2c7206-0x0;const _0x238f41=_0x2c72();let _0x13143f=_0x238f41[_0x2c7206];return _0x13143f;}Object[_0xd6d3(0x0)](exports,'__esModule',{'value':!![]}),exports[_0xd6d3(0x1)]=void 0x0;var _react=_interopRequireWildcard(__ONAIROS_REQ_FUNC__(0x0)),_reactNative=__ONAIROS_REQ_FUNC__(0x1),_asyncStorage=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x2)),_BrandMark=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x3)),_HeadingGroup=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x4)),_BodyText=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x5)),_PrimaryButton=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x6)),_SignInStep=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x7)),_VerificationStep=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x8)),_PlatformConnectorsStep=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x9)),_PersonalizationConsentScreen=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0xa)),_platformAuthService=__ONAIROS_REQ_FUNC__(0xb),_assetRegistry=__ONAIROS_REQ_FUNC__(0xc),_googleAuthService=__ONAIROS_REQ_FUNC__(0xd),_haptics=__ONAIROS_REQ_FUNC__(0xe),_authService=__ONAIROS_REQ_FUNC__(0xf),_socket=__ONAIROS_REQ_FUNC__(0x10),_pinStorageUtils=__ONAIROS_REQ_FUNC__(0x11),_pinEncryptionService=__ONAIROS_REQ_FUNC__(0x12),_mobileTrainingService=__ONAIROS_REQ_FUNC__(0x13),_llmDataStorage=__ONAIROS_REQ_FUNC__(0x14),_connectedAccountsService=__ONAIROS_REQ_FUNC__(0x15),_api=__ONAIROS_REQ_FUNC__(0x16),_jwtStorageService=__ONAIROS_REQ_FUNC__(0x17);function _interopRequireDefault(_0x119253){return _0x119253&&_0x119253['__esModule']?_0x119253:{'default':_0x119253};}function _interopRequireWildcard(_0x93d265,_0x18f7a6){const _0x270c4c={'cyYyk':_0xd6d3(0x2),'LzGkn':function(_0x217c1d,_0x4186e0){return _0x217c1d(_0x4186e0);},'rjtXs':function(_0x49200a){return _0x49200a();},'phtZc':_0xd6d3(0x3),'HbPFR':function(_0x29ecda,_0x4901c8){return _0x29ecda&&_0x4901c8;},'qqJse':function(_0x56be9b,_0x320173){return _0x56be9b===_0x320173;},'fVdrS':function(_0x1bfa6c,_0x6c6ffa){return _0x1bfa6c!=_0x6c6ffa;},'VNWMc':_0xd6d3(0x4),'CVJHZ':'function','XZhUC':function(_0x88ef04,_0x53c00b){return _0x88ef04!==_0x53c00b;},'kwdHi':_0xd6d3(0x5),'YBFzF':function(_0x50d160,_0x10fe98,_0x119649,_0x2ff4bc){return _0x50d160(_0x10fe98,_0x119649,_0x2ff4bc);},'oRZhj':function(_0xc81427,_0x4054ab){return _0xc81427==_0x4054ab;}};if(_0x270c4c[_0xd6d3(0x6)](_0x270c4c[_0xd6d3(0x7)],typeof WeakMap))var _0x1d6eba=new WeakMap(),_0x562ba5=new WeakMap();return(_interopRequireWildcard=function(_0x4ed39d,_0x128d66){if(_0x270c4c[_0xd6d3(0x8)]===_0x270c4c[_0xd6d3(0x8)]){if(_0x270c4c[_0xd6d3(0x9)](!_0x128d66,_0x4ed39d)&&_0x4ed39d['__esModule'])return _0x4ed39d;var _0x240d26,_0x387582,_0xcddec2={'__proto__':null,'default':_0x4ed39d};if(_0x270c4c[_0xd6d3(0xa)](null,_0x4ed39d)||_0x270c4c['fVdrS'](_0x270c4c[_0xd6d3(0xb)],typeof _0x4ed39d)&&_0x270c4c[_0xd6d3(0xc)](_0x270c4c[_0xd6d3(0x7)],typeof _0x4ed39d))return _0xcddec2;if(_0x240d26=_0x128d66?_0x562ba5:_0x1d6eba){if('wpSBR'===_0xd6d3(0xd)){if(_0x240d26[_0xd6d3(0xe)](_0x4ed39d))return _0x240d26[_0xd6d3(0xf)](_0x4ed39d);_0x240d26[_0xd6d3(0x10)](_0x4ed39d,_0xcddec2);}else _0x266418[_0xd6d3(0x11)](_0x270c4c[_0xd6d3(0x12)],_0x372427),_0x23b5ac();}for(const _0x1cc18a in _0x4ed39d)_0x270c4c[_0xd6d3(0x13)](_0x270c4c[_0xd6d3(0x14)],_0x1cc18a)&&{}['hasOwnProperty'][_0xd6d3(0x15)](_0x4ed39d,_0x1cc18a)&&((_0x387582=(_0x240d26=Object[_0xd6d3(0x0)])&&Object[_0xd6d3(0x16)](_0x4ed39d,_0x1cc18a))&&(_0x387582[_0xd6d3(0xf)]||_0x387582['set'])?_0x270c4c[_0xd6d3(0x17)](_0x240d26,_0xcddec2,_0x1cc18a,_0x387582):_0xcddec2[_0x1cc18a]=_0x4ed39d[_0x1cc18a]);return _0xcddec2;}else _0x270c4c[_0xd6d3(0x18)](_0x2361fe,![]),!_0x6b88c6&&_0x270c4c['rjtXs'](_0x103f09);})(_0x93d265,_0x18f7a6);}const {height,width}=_reactNative[_0xd6d3(0x19)]['get'](_0xd6d3(0x1a)),UniversalOnboarding=({visible:_0x4d52ad,onClose:_0x59d958,AppName:_0x26db82,requestData:_0x2b98f7,returnLink:_0x5c0f9a,onComplete:_0x44fc01,embedd:embedd=![],debug:debug=![],test:test=![],preferredPlatform:_0x5810b2,primaryAuthOnly:primaryAuthOnly=![],allowedPlatforms:_0x43aa9f,recommendedPlatforms:_0x1148a7,allowSkip:allowSkip=!![]})=>{const _0x130a49={'OWhLc':_0xd6d3(0x1b),'AqxFP':function(_0x354f7b,_0x13f7ac){return _0x354f7b!==_0x13f7ac;},'nJsYa':_0xd6d3(0x1c),'hIoSs':_0xd6d3(0x1d),'JoDWS':'🔍\x20UniversalOnboarding:\x20visible\x20prop\x20changed\x20to:','BODCM':'🔍\x20UniversalOnboarding:\x20modalVisible\x20state\x20is:','diXtA':_0xd6d3(0x1e),'xelNG':_0xd6d3(0x1f),'eekYO':_0xd6d3(0x20),'vivtb':function(_0x57f8c2){return _0x57f8c2();},'uGkDk':_0xd6d3(0x21),'AVpuj':function(_0x14f599,_0x330aa8){return _0x14f599(_0x330aa8);},'YsoKD':function(_0x2a8072,_0x3a0434){return _0x2a8072!==_0x3a0434;},'KjCUj':_0xd6d3(0x22),'rSgIg':function(_0xaab65c,_0x217882){return _0xaab65c&&_0x217882;},'ojEgB':function(_0x2b73a3,_0x211e11){return _0x2b73a3===_0x211e11;},'DKpJM':_0xd6d3(0x23),'hzNXw':_0xd6d3(0x24),'KgQFo':function(_0x32992d,_0x28d97c){return _0x32992d===_0x28d97c;},'cVxvt':_0xd6d3(0x25),'ENCAd':_0xd6d3(0x26),'VJSuA':_0xd6d3(0x27),'TonvZ':_0xd6d3(0x28),'gbvmX':_0xd6d3(0x29),'pRilr':'welcome','YXLbN':'platforms','ZdrkU':_0xd6d3(0x2a),'fMqHb':'connectedPlatforms','bmsLW':_0xd6d3(0x2b),'qkpfQ':_0xd6d3(0x2c),'qMGwm':_0xd6d3(0x2d),'lNnLy':function(_0x4c93d5,_0x52fa9f){return _0x4c93d5===_0x52fa9f;},'uHagP':_0xd6d3(0x2e),'FUHLm':_0xd6d3(0x2f),'QFRqw':'🔍\x20Socket\x20state\x20after\x205\x20seconds:','NmHyI':function(_0x56ac44,_0x12e16a){return _0x56ac44===_0x12e16a;},'mWZth':function(_0xcb12e6,_0x335469){return _0xcb12e6===_0x335469;},'dUsaT':function(_0x1c4cf9,_0x1faddf){return _0x1c4cf9===_0x1faddf;},'CzNkh':function(_0x1bcbc2,_0x45e840){return _0x1bcbc2===_0x45e840;},'hNHDG':_0xd6d3(0x30),'PVJmk':_0xd6d3(0x31),'QdmoJ':function(_0x25143f,_0x15c2e9){return _0x25143f(_0x15c2e9);},'KEKeU':function(_0x1d4ef9,_0x3e632f){return _0x1d4ef9(_0x3e632f);},'BFDKY':_0xd6d3(0x32),'qaFSh':_0xd6d3(0x33),'pBSTI':_0xd6d3(0x34),'MeUdE':_0xd6d3(0x35),'nVKzV':_0xd6d3(0x36),'tOpad':function(_0x3f6988,_0x851ec8){return _0x3f6988(_0x851ec8);},'WQfGz':function(_0x157874,_0x566c12){return _0x157874+_0x566c12;},'ymYRx':function(_0x100d7d,_0x4d1230){return _0x100d7d!==_0x4d1230;},'ysLfT':_0xd6d3(0x37),'myBaF':_0xd6d3(0x38),'CJQHl':function(_0x5dbd99,_0x46aab9,_0x2b5d02){return _0x5dbd99(_0x46aab9,_0x2b5d02);},'FHKYl':function(_0x1ae026,_0x2ca2e1){return _0x1ae026(_0x2ca2e1);},'JBcHa':_0xd6d3(0x39),'EsMlr':function(_0xaede90,_0x31d310){return _0xaede90(_0x31d310);},'Npcbm':_0xd6d3(0x3a),'YjWmr':_0xd6d3(0x3b),'fcBeu':_0xd6d3(0x3c),'TAGDl':'7|2|6|5|1|3|4|0','IgEgQ':function(_0x21db1a,_0x14c1f7){return _0x21db1a(_0x14c1f7);},'qQYXm':_0xd6d3(0x3d),'ZQbXa':function(_0x1132a5,_0x40e50b){return _0x1132a5!==_0x40e50b;},'TxvsD':function(_0x2aa957,_0x138f0c){return _0x2aa957===_0x138f0c;},'Nbvhi':_0xd6d3(0x3e),'pjGvE':_0xd6d3(0x3f),'WPBYT':_0xd6d3(0x40),'MIBLO':'GMeYr','YjMNY':function(_0x6c2513,_0x36f9e9){return _0x6c2513(_0x36f9e9);},'kUYzK':function(_0x4fd9da){return _0x4fd9da();},'JCEhi':_0xd6d3(0x41),'aPWZs':function(_0x214d0c,_0x4a417b){return _0x214d0c!==_0x4a417b;},'HquBI':_0xd6d3(0x42),'Gipfk':function(_0x2b973d,_0x4730e6){return _0x2b973d(_0x4730e6);},'SNDNc':function(_0x41efc1){return _0x41efc1();},'Ywoqv':function(_0x5a6d40,_0x16aa2d){return _0x5a6d40(_0x16aa2d);},'TkBkP':'oauth','yQspl':'ywXef','sQDaP':'BBHkB','KsgnY':'🔐\x20[BACKGROUND]\x20Continuing\x20existing\x20background\x20training\x20with\x20PIN\x20validation','CYFWW':_0xd6d3(0x43),'yzXCG':'🔐\x20[BACKGROUND]\x20PIN\x20validation\x20-\x20continuing\x20with\x20existing\x20training\x20session','BIati':_0xd6d3(0x44),'LthWy':_0xd6d3(0x45),'wPjRn':_0xd6d3(0x46),'DLZSi':'connect','sicYe':_0xd6d3(0x47),'kxPhT':function(_0x19d903,_0xbe1cea){return _0x19d903===_0xbe1cea;},'GAzMi':_0xd6d3(0x48),'DFtCR':_0xd6d3(0x49),'MFTFd':_0xd6d3(0x4a),'JGtUk':_0xd6d3(0x4b),'wxvbK':_0xd6d3(0x4c),'lvMge':function(_0x5a6323,_0x33f365){return _0x5a6323===_0x33f365;},'bLbDA':_0xd6d3(0x4d),'WEARE':_0xd6d3(0x4e),'dXFJy':function(_0x5a3411,_0x56f707){return _0x5a3411>_0x56f707;},'UXcsa':_0xd6d3(0x4f),'agwuL':'🔑\x20[CACHED\x20LOGIN]\x20Skipping\x20to\x20consent\x20screen','ylJtb':_0xd6d3(0x50),'GGknA':function(_0x50f181,_0x55bcb5){return _0x50f181(_0x55bcb5);},'yTZNq':function(_0x3c19fe,_0x2cadfd){return _0x3c19fe(_0x2cadfd);},'rSCac':_0xd6d3(0x51),'xBhTB':function(_0x91276c,_0x2a7ec2){return _0x91276c===_0x2a7ec2;},'NcUfA':function(_0x4bcf49,_0x7054da){return _0x4bcf49(_0x7054da);},'KSUaS':_0xd6d3(0x52),'aLjId':_0xd6d3(0x53),'qzuAI':_0xd6d3(0x54),'Ijiwp':'JafSg','jSqyf':function(_0x5358c3){return _0x5358c3();},'NDGMr':_0xd6d3(0x55),'qgFdV':_0xd6d3(0x56),'yeRlv':function(_0x28c615,_0x583269){return _0x28c615===_0x583269;},'YbNps':function(_0x633384,_0x543250){return _0x633384===_0x543250;},'PJCrD':function(_0x16e50b,_0x1757a7){return _0x16e50b===_0x1757a7;},'xFtum':function(_0x1d5516,_0x4c7f08){return _0x1d5516===_0x4c7f08;},'qqnxl':function(_0xa5e114,_0x57153d){return _0xa5e114||_0x57153d;},'mWlID':_0xd6d3(0x57),'JvMIO':_0xd6d3(0x58),'hXaZp':function(_0x1dd660,_0xbc293e){return _0x1dd660(_0xbc293e);},'cRtqv':function(_0x14f391,_0x16c360){return _0x14f391(_0x16c360);},'vEacP':'Connection\x20statuses\x20set:','NWSUu':'Platform\x20toggles\x20set:','JnFjH':_0xd6d3(0x59),'UqLNN':function(_0x38ea77,_0x2b88ff){return _0x38ea77===_0x2b88ff;},'nxRzf':function(_0x338240,_0x58864c){return _0x338240===_0x58864c;},'xoczK':function(_0x4c7861,_0x151e2b){return _0x4c7861(_0x151e2b);},'rOTre':_0xd6d3(0x5a),'BsynR':function(_0x413785,_0x2c8585){return _0x413785===_0x2c8585;},'MklfM':function(_0x5c2a9a){return _0x5c2a9a();},'cIEyH':function(_0x1cadf3,_0x4e463e){return _0x1cadf3===_0x4e463e;},'xNWjt':_0xd6d3(0x5b),'gClUi':'TCuau','TlCMu':_0xd6d3(0x5c),'ivMcT':function(_0x194fad,_0x283ecf){return _0x194fad===_0x283ecf;},'mCaGh':_0xd6d3(0x5d),'gGcpa':_0xd6d3(0x5e),'NmCKf':function(_0x3a5fc3,_0x39f873){return _0x3a5fc3(_0x39f873);},'fyune':'🚀\x20Get\x20Started\x20pressed\x20-\x20moving\x20to\x20signin','UGxOl':_0xd6d3(0x5f),'LBHFO':_0xd6d3(0x60),'hrrts':_0xd6d3(0x61),'wZzDk':_0xd6d3(0x62),'rHtDE':function(_0x4f2c32,_0x178055){return _0x4f2c32(_0x178055);},'tFaRG':function(_0x45430d){return _0x45430d();},'kvvLW':function(_0x4cca93,_0x3a3c8b){return _0x4cca93===_0x3a3c8b;},'Uwxhw':_0xd6d3(0x63),'kOPJi':'qbjQM','WNiIm':_0xd6d3(0x64),'VVBTf':_0xd6d3(0x65),'lyKtm':_0xd6d3(0x66),'sjDVK':_0xd6d3(0x67),'RrFBN':function(_0x3c8d02,_0x31fcdf){return _0x3c8d02(_0x31fcdf);},'TKytj':_0xd6d3(0x68),'mGXjM':function(_0x4fed27,_0x4e9025){return _0x4fed27(_0x4e9025);},'XDBke':function(_0x27585c,_0x9ce45f){return _0x27585c(_0x9ce45f);},'PZMrh':_0xd6d3(0x69),'hCpzu':function(_0x9ae836,_0x13612a){return _0x9ae836(_0x13612a);},'HXJqH':_0xd6d3(0x6a),'hZqIj':'QLefE','zQmed':function(_0x5c2725,_0x219048){return _0x5c2725(_0x219048);},'fthOq':_0xd6d3(0x6b),'TQxqF':_0xd6d3(0x6c),'LxiZo':_0xd6d3(0x6d),'vFKSs':'❌\x20No\x20authentication\x20token\x20available\x20after\x20ensureAuthToken','qawNC':_0xd6d3(0x6e),'ZQoSs':function(_0x1192ab,_0x3ab921){return _0x1192ab(_0x3ab921);},'ZNAuk':function(_0x23785e,_0x3017f5){return _0x23785e!==_0x3017f5;},'OmYOK':_0xd6d3(0x6f),'pJEoz':'udmyT','eCihZ':_0xd6d3(0x70),'YKrqC':'✅\x20Google\x20Sign-In\x20successful:','Bqfuz':_0xd6d3(0x71),'VmDNx':function(_0xd40387,_0x51b7bd){return _0xd40387(_0x51b7bd);},'bBdUj':_0xd6d3(0x72),'uiYIC':_0xd6d3(0x73),'mKQHL':function(_0x7a9535,_0x300ebf){return _0x7a9535>_0x300ebf;},'oxFJm':_0xd6d3(0x74),'iGvbV':function(_0xad46b2,_0x4c65b4){return _0xad46b2(_0x4c65b4);},'SnRxE':function(_0x4e18bc,_0x397eac){return _0x4e18bc(_0x397eac);},'ggpiC':_0xd6d3(0x75),'PCoak':function(_0x425cb4,_0x4a124f){return _0x425cb4!==_0x4a124f;},'lDqnV':'yMDfM','Aicdg':_0xd6d3(0x76),'WMrzB':function(_0x2430d7,_0x22b542){return _0x2430d7===_0x22b542;},'zTvvq':function(_0xef24d0,_0x5da077){return _0xef24d0(_0x5da077);},'cavtU':_0xd6d3(0x77),'qgzpF':function(_0x5598c0,_0x8daa71){return _0x5598c0(_0x8daa71);},'QTyMH':function(_0x55155a,_0x400b04){return _0x55155a(_0x400b04);},'BvzHS':_0xd6d3(0x78),'PwLLT':function(_0x51f8d9,_0x51e3a4){return _0x51f8d9===_0x51e3a4;},'ZVvUP':_0xd6d3(0x79),'yglby':function(_0xadde38,_0x4bc2df){return _0xadde38(_0x4bc2df);},'ZLhMc':_0xd6d3(0x7a),'tABqE':_0xd6d3(0x7b),'NLpUF':_0xd6d3(0x7c),'DZTXF':function(_0x3fe952,_0x30ad0d){return _0x3fe952===_0x30ad0d;},'HtwSo':function(_0x31e3cb,_0x5061cd){return _0x31e3cb===_0x5061cd;},'HkYHl':function(_0x22b697,_0x2423fc){return _0x22b697===_0x2423fc;},'doySp':function(_0x42c326,_0x4bce41){return _0x42c326===_0x4bce41;},'ZmBEp':function(_0x522830,_0x132097){return _0x522830===_0x132097;},'ovrcY':function(_0x4908cd,_0x4c1cf4){return _0x4908cd===_0x4c1cf4;},'bgNij':'returning_user','tZpRa':function(_0x3e2217,_0x4e55fa){return _0x3e2217===_0x4e55fa;},'fdMeT':function(_0x3a6947,_0x26ac0c){return _0x3a6947===_0x26ac0c;},'HhNyf':_0xd6d3(0x7d),'LfnAF':function(_0xe18a99,_0x40ee23){return _0xe18a99(_0x40ee23);},'UQURL':function(_0x2013b0,_0x3ce3ff){return _0x2013b0(_0x3ce3ff);},'WGYGc':function(_0x3a8eba,_0x5efa6a){return _0x3a8eba(_0x5efa6a);},'CxUNO':'LvyKw','umiBx':_0xd6d3(0x7e),'cBQsx':_0xd6d3(0x7f),'yoPCc':function(_0x2b9e8b,_0x8fa6fb){return _0x2b9e8b(_0x8fa6fb);},'bmvBH':function(_0x506084,_0xfbf49b){return _0x506084(_0xfbf49b);},'EbJpn':function(_0x598e61,_0x23e120){return _0x598e61(_0x23e120);},'NyoNJ':'👋\x20Logout\x20requested\x20-\x20clearing\x20tokens\x20and\x20navigating\x20to\x20login','WLGOk':_0xd6d3(0x80),'CVvrd':function(_0x4353ef,_0x16ad16){return _0x4353ef(_0x16ad16);},'evTvA':function(_0x3268a8,_0x1833a0){return _0x3268a8(_0x1833a0);},'jEUVX':_0xd6d3(0x81),'FFaDj':_0xd6d3(0x82),'gZwaU':_0xd6d3(0x83),'PlYxN':'onairos_username','FqNnG':_0xd6d3(0x84),'hVmxH':'✅\x20Logout\x20complete\x20-\x20user\x20is\x20now\x20on\x20login\x20page','RgDxi':_0xd6d3(0x85),'SYOul':function(_0x4bc48b,_0xee6283){return _0x4bc48b(_0xee6283);},'VgqtS':_0xd6d3(0x86),'IBUjy':'attempts','liRbd':_0xd6d3(0x87),'XFuKe':_0xd6d3(0x88),'JlISt':'📈\x20Query\x20scores\x20enabled:','gtcys':_0xd6d3(0x89),'vDTwN':_0xd6d3(0x8a),'zttIr':function(_0x22e5f3,_0x17d60c){return _0x22e5f3(_0x17d60c);},'zXeph':function(_0x3c20f8,_0x174faf){return _0x3c20f8===_0x174faf;},'rQfNS':'mobile_user','hxGqi':function(_0x9d650,_0x5616be){return _0x9d650(_0x5616be);},'OyIfp':function(_0x335ac0,_0x2d0a65){return _0x335ac0===_0x2d0a65;},'flaBN':function(_0x9bb975,_0x214bb7){return _0x9bb975===_0x214bb7;},'SHHPv':_0xd6d3(0x8b),'linxC':function(_0x51c0de,_0xa7d8f1){return _0x51c0de(_0xa7d8f1);},'muixr':function(_0x4c05ec,_0x24da53){return _0x4c05ec(_0x24da53);},'yIGnO':_0xd6d3(0x8c),'SqGLD':_0xd6d3(0x8d),'BeXKy':_0xd6d3(0x8e),'SaSUk':'✅\x20Verification\x20code\x20resent\x20successfully','nPGmX':function(_0x56b767,_0x3c9122){return _0x56b767(_0x3c9122);},'BFJTx':'WsFVi','CbSia':function(_0x32656a,_0x539dfa){return _0x32656a(_0x539dfa);},'KvyVy':function(_0x4542df,_0x52200f){return _0x4542df===_0x52200f;},'ySiiz':_0xd6d3(0x8f),'bETMn':'yjutU','ELgvp':function(_0x2eced8,_0x3844a2){return _0x2eced8(_0x3844a2);},'uqcAK':'❌\x20Training\x20start\x20failed:','ndJso':function(_0x4bde0c,_0x7206ed){return _0x4bde0c(_0x7206ed);},'Ofcxv':function(_0x4876b9){return _0x4876b9();},'tYQCN':_0xd6d3(0x90),'GMfAb':_0xd6d3(0x91),'Rcygm':_0xd6d3(0x92),'haQiG':function(_0x1c7878,_0x42d78e){return _0x1c7878||_0x42d78e;},'IdygD':_0xd6d3(0x93),'UqZxG':function(_0x51fb4c,_0x4e6a56){return _0x51fb4c&&_0x4e6a56;},'eWjpN':_0xd6d3(0x94),'ERCiR':function(_0x456c9d,_0x4802e0){return _0x456c9d===_0x4802e0;},'dahGr':_0xd6d3(0x95),'cfOVA':function(_0x2c5460,_0xfd9508,_0x4a6b74,_0xe7656a){return _0x2c5460(_0xfd9508,_0x4a6b74,_0xe7656a);},'bygDT':function(_0x4aaa52,_0x4d3723){return _0x4aaa52===_0x4d3723;},'CGlOp':function(_0x10f853,_0xaa1781,_0x170f90,_0x1cbb3d){return _0x10f853(_0xaa1781,_0x170f90,_0x1cbb3d);},'LJQEK':_0xd6d3(0x96),'IeGCj':_0xd6d3(0x97),'jKdeS':function(_0xabe792,_0x3ecb38){return _0xabe792===_0x3ecb38;},'ELRtJ':function(_0x33a42a,_0x40233a){return _0x33a42a&&_0x40233a;},'WROCh':function(_0x5a496b,_0x5e25e3){return _0x5a496b===_0x5e25e3;},'qRDtZ':function(_0x37157c,_0x5d50c2){return _0x37157c===_0x5d50c2;},'qHjiG':function(_0x465d5e,_0x5df076){return _0x465d5e===_0x5df076;},'sDfUk':function(_0x55ce05,_0x5353d3){return _0x55ce05*_0x5353d3;},'vFvXg':'⏭️\x20Skipping\x20platform\x20connections','aAkui':function(_0x1064c8,_0x1e050e){return _0x1064c8&&_0x1e050e;},'JtCua':'✅\x20[SDK]\x20User\x20skipped\x20platforms\x20-\x20still\x20calling\x20onComplete\x20with\x20auth\x20data','UYxFC':function(_0x154327,_0x54be74){return _0x154327===_0x54be74;},'nLVHm':_0xd6d3(0x98),'GDPmF':_0xd6d3(0x99),'mUteb':function(_0x49ee25,_0x197eb8){return _0x49ee25===_0x197eb8;},'xdPNX':function(_0x28fceb,_0x53e1fa){return _0x28fceb===_0x53e1fa;},'VbCNJ':'svUhZ','TrkOG':_0xd6d3(0x9a),'VsvNj':_0xd6d3(0x9b),'pxSlV':'TROEF','UowEP':_0xd6d3(0x9c),'vlEED':'🔍\x20Reviewer\x20bypass\x20triggered\x20from\x20platforms','FLKWF':function(_0x4509dc){return _0x4509dc();},'ZsvBC':_0xd6d3(0x2),'bTNwh':function(_0x1eed92){return _0x1eed92();},'ExUGV':function(_0x4d624e,_0x23dc9c){return _0x4d624e(_0x23dc9c);},'SQKTl':_0xd6d3(0x9d),'gVmBR':function(_0x371aa4,_0x18cf95){return _0x371aa4(_0x18cf95);},'BGZHS':function(_0x28e90d,_0x526053){return _0x28e90d(_0x526053);},'TwztC':_0xd6d3(0x9e),'bQXnf':function(_0x292d5d,_0x135d6d){return _0x292d5d===_0x135d6d;},'juRok':_0xd6d3(0x9f),'VZvWU':'FBsNG','WnyTT':function(_0x54ae8a,_0x35313f){return _0x54ae8a!==_0x35313f;},'prhUu':_0xd6d3(0xa0),'YdsNW':function(_0x5be199,_0x199530){return _0x5be199(_0x199530);},'dMRQF':function(_0x7f4dca,_0x2e653f){return _0x7f4dca(_0x2e653f);},'afbLa':function(_0x3db768,_0x8c3eb6){return _0x3db768===_0x8c3eb6;},'DGFZD':'yYGZp','Gaouq':function(_0x3608dd,_0x2d4268){return _0x3608dd(_0x2d4268);},'GUEHF':function(_0x1404dd,_0xc18301){return _0x1404dd(_0xc18301);},'VNDQF':function(_0x20bb94,_0x37fac8){return _0x20bb94!==_0x37fac8;},'SXFhk':function(_0xe8389a,_0x8fd64){return _0xe8389a(_0x8fd64);},'tTlgM':function(_0x4ce98e,_0x565226){return _0x4ce98e(_0x565226);},'pIdki':function(_0x41c1db,_0x3b9f2a){return _0x41c1db(_0x3b9f2a);},'aSYtE':function(_0x5b754d,_0x12e678){return _0x5b754d===_0x12e678;},'oictJ':function(_0x321ad2,_0x1fe392){return _0x321ad2===_0x1fe392;},'VZiGW':function(_0x13e12a,_0x4dee4c){return _0x13e12a===_0x4dee4c;},'FXJJq':function(_0x1a37c7,_0xac0e49){return _0x1a37c7(_0xac0e49);},'QotRT':function(_0x3fd220,_0x30de78){return _0x3fd220(_0x30de78);},'IqwXv':_0xd6d3(0xa1),'GgojM':function(_0x350236,_0x508fbf){return _0x350236===_0x508fbf;},'vPbqC':_0xd6d3(0xa2),'PoFtb':_0xd6d3(0xa3),'qyedh':function(_0x4fc731,_0x484ce2){return _0x4fc731||_0x484ce2;},'etrLZ':'QhjkZ','WXyNf':_0xd6d3(0xa4),'dfetn':_0xd6d3(0xa5),'KPCCc':_0xd6d3(0xa6),'UXdEl':function(_0x2344c8,_0x2cbbe9){return _0x2344c8(_0x2cbbe9);},'JVmCY':function(_0x384c20,_0x2ef85d){return _0x384c20!==_0x2ef85d;},'aDeAn':'NHVBs','DbjDS':_0xd6d3(0xa7),'CNuUK':function(_0x5e3291,_0xa5df7c){return _0x5e3291(_0xa5df7c);},'sAeVm':function(_0x54062,_0x38b470){return _0x54062(_0x38b470);},'dZZad':function(_0x41a21b,_0x3c4f3f){return _0x41a21b(_0x3c4f3f);},'QvwrO':function(_0x58e56a,_0x3eee32){return _0x58e56a(_0x3eee32);},'MuJXf':_0xd6d3(0xa8),'JLuRC':_0xd6d3(0xa9),'XzrZr':_0xd6d3(0xaa),'aLqcH':_0xd6d3(0xab),'Woumo':'zqVUR','EKCmp':_0xd6d3(0xac),'WltKP':_0xd6d3(0xad),'nKwRc':function(_0x1e51ae,_0x1e2512){return _0x1e51ae&&_0x1e2512;},'KaACi':function(_0x44da11,_0x299232){return _0x44da11(_0x299232);},'ULBUD':function(_0x459f7a,_0x2d74db){return _0x459f7a(_0x2d74db);},'aPgLF':_0xd6d3(0xae),'JLvvv':_0xd6d3(0xaf),'ecOgj':_0xd6d3(0xb0),'hxDwH':_0xd6d3(0xb1),'KQYNf':function(_0x847e48,_0x3cb3c3){return _0x847e48!==_0x3cb3c3;},'blrjM':_0xd6d3(0xb2),'nqMcu':'CiZUo','lGiHA':_0xd6d3(0xb3),'iqkTX':function(_0x5c3f29,_0x19e317){return _0x5c3f29(_0x19e317);},'TddZx':function(_0x5ace97,_0x18491d){return _0x5ace97(_0x18491d);},'LArlq':function(_0x3126b1,_0x32091c){return _0x3126b1(_0x32091c);},'TvYqN':function(_0xd629d8,_0x4ac148){return _0xd629d8(_0x4ac148);},'NZaQI':_0xd6d3(0xb4),'lyPFO':_0xd6d3(0xb5),'xrcZM':_0xd6d3(0xb6),'DWNLO':_0xd6d3(0xb7),'cjAHa':function(_0x2a9398,_0x2d2018){return _0x2a9398(_0x2d2018);},'QiheC':function(_0x2801c9,_0x34eac9){return _0x2801c9(_0x34eac9);},'XobsX':'persona','sohyT':_0xd6d3(0xb8),'pvDsK':function(_0x5ece77,_0x44451f){return _0x5ece77(_0x44451f);},'pIhLT':function(_0x3dfed1,_0x4fc123){return _0x3dfed1(_0x4fc123);},'WKpdP':_0xd6d3(0xb9),'bUxke':function(_0x134a78,_0x25f6f9){return _0x134a78(_0x25f6f9);},'iEOFD':function(_0x597fd6,_0x34e6aa){return _0x597fd6(_0x34e6aa);},'cQKra':_0xd6d3(0xba),'ZNNad':_0xd6d3(0xbb),'xqlIg':_0xd6d3(0xbc),'kXKsW':_0xd6d3(0xbd),'odeMu':'dTilf','apnDQ':_0xd6d3(0xbe),'mYQaE':_0xd6d3(0xbf),'MVQiN':'gjtpo','qVgPo':_0xd6d3(0xc0),'YaVsH':_0xd6d3(0xc1),'ZzNmZ':function(_0x285acd,_0x598aec){return _0x285acd===_0x598aec;},'LAZbV':function(_0x3ef8bc,_0x305c70){return _0x3ef8bc&&_0x305c70;},'aCrgm':_0xd6d3(0xc2),'DTKaS':'📡\x20Training\x20API\x20response:','EJLWk':_0xd6d3(0xc3),'CrFbQ':'🔗\x20Connections\x20required\x20detected\x20from\x20HTTP\x20response','fAVLC':function(_0xc40766,_0x34474c){return _0xc40766(_0x34474c);},'sKzLY':function(_0xb69aac,_0x1da499){return _0xb69aac(_0x1da499);},'EJjmd':_0xd6d3(0xc4),'swkOt':function(_0x3f44bb,_0x40531a){return _0x3f44bb!==_0x40531a;},'zCMaC':'iPkyF','OqPDT':'QJDvL','ccAbs':_0xd6d3(0xc5),'vWOvE':_0xd6d3(0xc6),'UsIwy':function(_0x43c8af,_0x4a9a79){return _0x43c8af!==_0x4a9a79;},'AXrRz':_0xd6d3(0xc7),'mvBTr':function(_0x322972,_0x3e57b2){return _0x322972(_0x3e57b2);},'hnmYQ':_0xd6d3(0xc8),'Dutuv':function(_0x106bda,_0x5a2bf2){return _0x106bda(_0x5a2bf2);},'xgyBj':function(_0x162bd7){return _0x162bd7();},'jnlZn':'❌\x20Training\x20start\x20error:','kGloJ':_0xd6d3(0xc9),'mFEky':function(_0x1010a2,_0x524160){return _0x1010a2(_0x524160);},'stORi':function(_0x3ffab7){return _0x3ffab7();},'iUvgj':_0xd6d3(0xca),'zoisG':function(_0xe2a13f,_0x53da78){return _0xe2a13f===_0x53da78;},'LQEWm':function(_0x54a06a,_0x532777){return _0x54a06a===_0x532777;},'VzOuI':_0xd6d3(0xcb),'IhJqX':'RwqIL','SEOWc':function(_0xa910,_0x43ad38){return _0xa910===_0x43ad38;},'xovdo':_0xd6d3(0xcc),'XqtDs':_0xd6d3(0xcd),'GhKGp':_0xd6d3(0xce),'ZtjOl':_0xd6d3(0xcf),'PErMx':_0xd6d3(0xd0),'ahZKU':function(_0x3e212f,_0x1cccbb){return _0x3e212f===_0x1cccbb;},'DMtVJ':'training-complete-token','Pmatt':function(_0x2d9f98,_0x3fcfb8){return _0x2d9f98===_0x3fcfb8;},'uhUGe':function(_0x5efc08,_0x4164c9){return _0x5efc08===_0x4164c9;},'PSgRd':_0xd6d3(0xd1),'TJeam':_0xd6d3(0xd2),'VrmtQ':function(_0x4accf3,_0x50e900){return _0x4accf3(_0x50e900);},'ecxDj':_0xd6d3(0xd3),'Qwisn':_0xd6d3(0xd4),'mXsaF':'4|3|2|0|1','kzyjS':function(_0x456d14,_0x59db5f){return _0x456d14(_0x59db5f);},'OPxhN':function(_0x5340b1){return _0x5340b1();},'AvhOA':_0xd6d3(0xd5),'BZFCe':_0xd6d3(0xd6),'CxQRt':_0xd6d3(0xd7),'ueXRO':_0xd6d3(0xd8),'anUXv':function(_0x5b1f05,_0x23223e){return _0x5b1f05!==_0x23223e;},'qeAPI':_0xd6d3(0xd9),'iGilm':function(_0x5067b0,_0x1f0b1c){return _0x5067b0===_0x1f0b1c;},'DPhRo':'pGYHL','DmFTO':function(_0x2d3f46,_0x312388){return _0x2d3f46(_0x312388);},'Eqich':function(_0x1314bc,_0x48906e){return _0x1314bc(_0x48906e);},'cEjWa':_0xd6d3(0xda),'tICCD':_0xd6d3(0xdb),'SLkAN':_0xd6d3(0xdc),'HNOnC':_0xd6d3(0xdd),'AnafZ':function(_0x46322d,_0x7aa2ea,_0x46f9d1){return _0x46322d(_0x7aa2ea,_0x46f9d1);},'Jjtxz':_0xd6d3(0xde),'KiihE':function(_0x43ad45,_0x565e10){return _0x43ad45(_0x565e10);},'eYiHG':function(_0x459450,_0x138641){return _0x459450(_0x138641);},'OBVBd':_0xd6d3(0xdf),'ueEIs':function(_0x1098cc,_0x497d51){return _0x1098cc(_0x497d51);},'DofMS':function(_0x2b0d34,_0x541ff8){return _0x2b0d34===_0x541ff8;},'jDWwE':'NO_DATA','OfsBe':_0xd6d3(0xe0),'ACCFx':_0xd6d3(0xe1),'tujJR':function(_0xc5686,_0x441110){return _0xc5686(_0x441110);},'uLZyY':function(_0x1ea098,_0x5c53cf){return _0x1ea098(_0x5c53cf);},'uDiFI':function(_0x2fb27b,_0x151777){return _0x2fb27b(_0x151777);},'lWAVr':_0xd6d3(0xe2),'DwDtr':function(_0x12eb2e,_0x37662c){return _0x12eb2e(_0x37662c);},'HXRlL':_0xd6d3(0xe3),'CeBgQ':function(_0x5fbb96,_0x79e035){return _0x5fbb96(_0x79e035);},'yRVCY':function(_0x309244,_0x532539){return _0x309244(_0x532539);},'kXMvZ':_0xd6d3(0xe4),'iKoKS':function(_0x2306a6,_0x261392){return _0x2306a6(_0x261392);},'IkzTl':function(_0x3d4a84,_0x19e349){return _0x3d4a84(_0x19e349);},'Taekd':function(_0x2ba835,_0x43a0e8){return _0x2ba835(_0x43a0e8);},'nQnam':function(_0x32011b,_0x467f02){return _0x32011b(_0x467f02);},'mjOaP':function(_0x37892d,_0x326bac){return _0x37892d(_0x326bac);},'agiPg':_0xd6d3(0xe5),'JtRJB':_0xd6d3(0xe6),'fUeAt':function(_0x2f2902,_0x22f44c){return _0x2f2902===_0x22f44c;},'fvMCx':function(_0x4ce6cc,_0x454fa2){return _0x4ce6cc===_0x454fa2;},'pvsVd':function(_0x3eb58c,_0x242563){return _0x3eb58c===_0x242563;},'CDggc':function(_0x5cd1aa,_0x33217a){return _0x5cd1aa===_0x33217a;},'hgoSh':function(_0x3e5cf8,_0x5081f1){return _0x3e5cf8===_0x5081f1;},'glpdV':function(_0x2467ec,_0x535688){return _0x2467ec===_0x535688;},'NGbDp':'wJVoE','PxtmL':'qkrsb','HWKme':function(_0x3195cd,_0x17767f){return _0x3195cd===_0x17767f;},'RhSTe':function(_0x47fd93,_0x3e5a07){return _0x47fd93===_0x3e5a07;},'IjgBB':function(_0x376b90,_0x3647a2){return _0x376b90===_0x3647a2;},'TpaUU':function(_0x4112fa,_0x28ced7){return _0x4112fa===_0x28ced7;},'XMyKg':function(_0x4c63a2,_0x31edd8){return _0x4c63a2===_0x31edd8;},'FeoXZ':function(_0x398db1,_0xeb5611){return _0x398db1===_0xeb5611;},'RYviG':function(_0x246a9d,_0x43a476){return _0x246a9d===_0x43a476;},'tBlmo':function(_0x3af478,_0x38825e){return _0x3af478!==_0x38825e;},'BTfkZ':_0xd6d3(0xe7),'JpQQt':'qOvvD','pVRmn':'3|2|4|1|0|5','ryMSc':function(_0x208324,_0xe5ca1){return _0x208324(_0xe5ca1);},'VhGCV':function(_0x86e57a,_0x3b1ab2){return _0x86e57a(_0x3b1ab2);},'ZauEw':_0xd6d3(0xe8),'dBqdl':_0xd6d3(0xe9),'irclv':_0xd6d3(0xea),'BRIIQ':'🔌\x20Socket\x20connection\x20details:','skJvL':function(_0x34da39,_0x49fe00){return _0x34da39===_0x49fe00;},'CiBCi':function(_0x1b66fc,_0x5e7af2){return _0x1b66fc(_0x5e7af2);},'KlpYH':_0xd6d3(0xeb),'kOHxT':function(_0x3b7255,_0x3d2f9f){return _0x3b7255===_0x3d2f9f;},'KuhFp':_0xd6d3(0xec),'VDiyC':'None','pwetm':_0xd6d3(0xed),'Lqjrs':_0xd6d3(0xee),'jeuac':'🔄\x20Socket\x20reconnection\x20attempt:','pCZCJ':_0xd6d3(0xef),'KLDZv':_0xd6d3(0xf0),'eXPwv':'🧠\x20Inference\x20Complete:','zWuLE':_0xd6d3(0xf1),'pLGOp':function(_0x33cc8d,_0xcc2b92){return _0x33cc8d&&_0xcc2b92;},'YnCXK':function(_0x423260,_0x184ff7,_0x2060e7,_0x398928){return _0x423260(_0x184ff7,_0x2060e7,_0x398928);},'KaMyX':_0xd6d3(0xf2),'dUdje':'🔄\x20Attempting\x20to\x20refresh\x20YouTube\x20tokens...','ksaAY':_0xd6d3(0xf3),'uVuZp':_0xd6d3(0xf4),'VRnOc':'❌\x20Token\x20refresh\x20failed,\x20attempting\x20full\x20reconnection...','wJaqB':_0xd6d3(0xf5),'KCvGQ':'YouTube\x20reconnected\x20-\x20please\x20restart\x20from\x20connector\x20screen','qlnbh':_0xd6d3(0xf6),'xEfHP':function(_0x29dfde,_0x5e4202){return _0x29dfde(_0x5e4202);},'XCuxf':function(_0x179996){return _0x179996();},'eBxmH':'YouTube\x20connection\x20failed.\x20Please\x20try\x20again.','PHcXT':function(_0x40f729,_0x2d23bd){return _0x40f729(_0x2d23bd);},'RUepn':function(_0x46bd47,_0x5d980a){return _0x46bd47(_0x5d980a);},'ZjaQO':_0xd6d3(0xf7),'pUIjZ':function(_0x1685dc,_0x54a020){return _0x1685dc(_0x54a020);},'hkQFm':_0xd6d3(0xf8),'QNIJn':function(_0x10ef10){return _0x10ef10();},'JvfOH':_0xd6d3(0xf9),'WjVUo':_0xd6d3(0xfa),'xvZrx':_0xd6d3(0xfb),'xTcgc':_0xd6d3(0xfc),'kngBg':_0xd6d3(0xfd),'uUTVz':function(_0x5444cf,_0xdb5655){return _0x5444cf===_0xdb5655;},'ZSEwG':_0xd6d3(0xfe),'RpHqQ':'🔄\x20UserInfo\x20not\x20available,\x20attempting\x20to\x20reload...','VdjSY':function(_0x5eb2b3,_0x273301){return _0x5eb2b3===_0x273301;},'hTSgV':function(_0x445b8d,_0x30a0b6){return _0x445b8d===_0x30a0b6;},'NCqfz':function(_0x454ccf,_0x2c0cc9){return _0x454ccf===_0x2c0cc9;},'nDShf':function(_0x292965,_0x2eedcc){return _0x292965===_0x2eedcc;},'LAaju':'🧑‍💻\x20Set\x20user\x20info:','dvDoO':function(_0x1b5391,_0x2e906d){return _0x1b5391||_0x2e906d;},'DshQg':function(_0x4556c3,_0x466031){return _0x4556c3===_0x466031;},'rFXGa':function(_0x4e772f,_0x56bc0b){return _0x4e772f===_0x56bc0b;},'Gjcky':function(_0x2486e4,_0x11712b){return _0x2486e4===_0x11712b;},'YvcEI':function(_0x3b21f0,_0xce52ea){return _0x3b21f0!==_0xce52ea;},'vPBOz':'BtBhs','Kshev':'🔧\x20Setting\x20up\x20socket\x20connection\x20for\x20real\x20training...','YIBKF':'🧑‍💻\x20User\x20info\x20available:','ZkvdE':_0xd6d3(0xff),'RcVkj':_0xd6d3(0x100),'olQMR':'📱\x20Device\x20platform:','luTkI':'Connecting','XJqwI':function(_0x433a4d,_0x3f8e79){return _0x433a4d(_0x3f8e79);},'tOKMb':_0xd6d3(0x101),'ajcin':_0xd6d3(0x102),'OtHTc':_0xd6d3(0x103),'BLNgn':_0xd6d3(0x104),'zQJbz':'reconnect_attempt','fPdnW':_0xd6d3(0x105),'lVoYl':'reconnect_failed','KtfCb':'connect_error','emVcI':_0xd6d3(0x106),'giWnB':_0xd6d3(0x107),'weYos':_0xd6d3(0x108),'hAijD':_0xd6d3(0x109),'yUkYX':_0xd6d3(0x10a),'UVhFH':function(_0x28ae8b,_0x13d978,_0x197e96){return _0x28ae8b(_0x13d978,_0x197e96);},'YKZHN':function(_0x16faef,_0x28d2bb){return _0x16faef===_0x28d2bb;},'izQTs':_0xd6d3(0x10b),'cqjmQ':function(_0x5f0e45,_0x1ce20e){return _0x5f0e45(_0x1ce20e);},'CDFAL':_0xd6d3(0x10c),'EFUzk':'❌\x20YouTube\x20token\x20refresh/reconnection\x20error:','QeAOy':function(_0x16fb44,_0x550195){return _0x16fb44(_0x550195);},'eWMWM':_0xd6d3(0x10d),'RuGGF':_0xd6d3(0x10e),'MnaBi':function(_0x563504,_0x12c6c2){return _0x563504<_0x12c6c2;},'zjWya':_0xd6d3(0x10f),'lAwnF':function(_0x26f463,_0x3d4c2c){return _0x26f463<_0x3d4c2c;},'ksrFg':_0xd6d3(0x110),'eEdvB':_0xd6d3(0x111),'djZMO':function(_0x5a4f3a,_0x27ec8b){return _0x5a4f3a<_0x27ec8b;},'vmeOL':_0xd6d3(0x112),'ZbZDz':function(_0x566ede,_0xe04bd){return _0x566ede===_0xe04bd;},'oexWv':'ylYAX','dOwAD':function(_0x2543f7,_0x41143f){return _0x2543f7(_0x41143f);},'naxfv':_0xd6d3(0x113),'KnXbF':function(_0x4b2fed,_0xe1b42d){return _0x4b2fed===_0xe1b42d;},'lIazT':'jjfWZ','aErco':function(_0x4fe119,_0x8a1ec7){return _0x4fe119===_0x8a1ec7;},'yDlbB':_0xd6d3(0x114),'qPfaj':_0xd6d3(0x115),'EJQFs':'✅\x20Using\x20real\x20authentication\x20token\x20for\x20onComplete:','OUwCr':function(_0x232b19,_0x4bbce1){return _0x232b19===_0x4bbce1;},'OPcEJ':function(_0x23247a,_0x2ff04c){return _0x23247a===_0x2ff04c;},'qiwwU':function(_0x9468af,_0x185b2b){return _0x9468af===_0x185b2b;},'qwJtd':_0xd6d3(0x116),'PqmIP':_0xd6d3(0x117),'apIFT':function(_0x5bb1a3,_0x370259){return _0x5bb1a3===_0x370259;},'qaYWZ':function(_0x1df735,_0x173628){return _0x1df735===_0x173628;},'sofgz':function(_0x51a41d,_0x443a48){return _0x51a41d===_0x443a48;},'Iirqn':function(_0x38212b,_0x255c1a){return _0x38212b===_0x255c1a;},'ZzWvq':_0xd6d3(0x118),'oVADO':'⚠️\x20No\x20authentication\x20token\x20found','zZoDe':_0xd6d3(0x119),'EuoYp':_0xd6d3(0x11a),'sZurw':function(_0x552540,_0x29e403){return _0x552540(_0x29e403);},'xtMWS':_0xd6d3(0x11b),'IPanG':_0xd6d3(0x11c),'KLLqU':_0xd6d3(0x11d),'BWEfU':function(_0x3338ec,_0x251b6e){return _0x3338ec(_0x251b6e);},'ltmCX':'Collecting\x20your\x20data...','gwUhv':'pvEqR','QZPwr':_0xd6d3(0x11e),'cWhkY':function(_0x1e4ffb,_0x53736b){return _0x1e4ffb(_0x53736b);},'nufWT':_0xd6d3(0x11f),'FkWZW':function(_0x4551c5,_0x3ee63d){return _0x4551c5(_0x3ee63d);},'spJaK':_0xd6d3(0x120),'WXgKU':_0xd6d3(0x121),'WRVVv':_0xd6d3(0x122),'lzneV':'Connecting...','VHlww':'Failed\x20to\x20create\x20authentication\x20token\x20for\x20background\x20training','mexdQ':function(_0x5bd25d,_0x529cf8){return _0x5bd25d(_0x529cf8);},'QYUsJ':function(_0x89e3c5,_0x18fbda){return _0x89e3c5===_0x18fbda;},'irbGO':function(_0x30552a,_0x1a2fef){return _0x30552a===_0x1a2fef;},'aVJpS':function(_0x4ea825,_0x20880f){return _0x4ea825===_0x20880f;},'dseja':function(_0x3218e3,_0x2eb6dd){return _0x3218e3(_0x2eb6dd);},'LqLQr':_0xd6d3(0x123),'fejgu':_0xd6d3(0x124),'VLUIl':_0xd6d3(0x125),'VNRFF':'✅\x20[BACKGROUND]\x20Background\x20training\x20initiated\x20successfully','WDNqR':_0xd6d3(0x126),'tBhsm':function(_0x47e9c2,_0x40abb4){return _0x47e9c2===_0x40abb4;},'bHFYg':function(_0x157627,_0x39fb92){return _0x157627===_0x39fb92;},'byfgE':function(_0x409187,_0x42445f){return _0x409187===_0x42445f;},'FywJh':_0xd6d3(0x127),'CInlO':'📡\x20Background\x20training\x20API\x20response:','JbKKp':function(_0x54ce5f,_0x48c00b){return _0x54ce5f!==_0x48c00b;},'bcmPT':_0xd6d3(0x128),'sNsut':_0xd6d3(0x129),'hivWA':function(_0x224400,_0x36ceb5){return _0x224400(_0x36ceb5);},'GRUHQ':function(_0x157b47,_0x3b0378){return _0x157b47(_0x3b0378);},'MJRMQ':function(_0x3a4707,_0x1dbbe5){return _0x3a4707(_0x1dbbe5);},'dDsdQ':_0xd6d3(0x12a),'zZudM':_0xd6d3(0x12b),'rotiM':'🎯\x20Background\x20training\x20Features:','cMeLG':_0xd6d3(0x12c),'pZyuw':'💾\x20Storage\x20method:','SJRSS':function(_0x58014a,_0x141aa4){return _0x58014a(_0x141aa4);},'ySYks':_0xd6d3(0x12d),'QzoZa':function(_0x27a1d7,_0x393efe){return _0x27a1d7(_0x393efe);},'cjURk':_0xd6d3(0x12e),'WLyzf':_0xd6d3(0x12f),'xYXxH':function(_0x473a79,_0x53fc79){return _0x473a79(_0x53fc79);},'HkGbu':'✅\x20Returning\x20user\x20accepted\x20consent','gwBGq':function(_0x31bec8,_0x423dc6){return _0x31bec8(_0x423dc6);},'NEaMv':function(_0x5482a0,_0x34dc44){return _0x5482a0!==_0x34dc44;},'bxhRC':_0xd6d3(0x130),'nXiAJ':function(_0x4e10d4,_0x21dc09){return _0x4e10d4&&_0x21dc09;},'UljFa':_0xd6d3(0x131),'yzjmB':function(_0x2c74ed,_0x523c48){return _0x2c74ed===_0x523c48;},'bAiIJ':'❌\x20[SDK]\x20Error\x20during\x20returning\x20user\x20consent:','LWocs':function(_0xc8e0fc,_0x438557){return _0xc8e0fc===_0x438557;},'CZrJx':function(_0x2f4b72,_0x3e0b53,_0xc861d5,_0x31ccd7){return _0x2f4b72(_0x3e0b53,_0xc861d5,_0x31ccd7);},'aazJq':function(_0x38637a){return _0x38637a();},'BhETx':function(_0x21d423,_0x451ad3){return _0x21d423===_0x451ad3;},'oYrWr':_0xd6d3(0x132),'lwOgW':function(_0x262d98,_0x331b98){return _0x262d98(_0x331b98);},'haJPh':'Medium','SHlEZ':_0xd6d3(0x133),'UlBca':_0xd6d3(0x134),'JdgaY':'Pinterest','LoqbF':'#E60023','VOHAn':_0xd6d3(0x135),'MRwTg':_0xd6d3(0x136),'vAANQ':_0xd6d3(0x137),'dQErU':_0xd6d3(0x138),'nfryb':_0xd6d3(0x139),'VpxiX':_0xd6d3(0x13a),'jOpSh':_0xd6d3(0x13b),'IDWVI':_0xd6d3(0x13c),'XKKJu':'ChatGPT','LhKBe':'#10A37F','bxIml':_0xd6d3(0x13d),'JXpWT':_0xd6d3(0x13e),'JJYmU':_0xd6d3(0x13f),'JRTKC':'Handle\x20Top:\x20','SHXMm':function(_0x267eda,_0xded976){return _0x267eda===_0xded976;},'cvTxx':_0xd6d3(0x140),'GfOWo':_0xd6d3(0x141),'wvUHt':function(_0x2a0099,_0x3b3a9a){return _0x2a0099===_0x3b3a9a;},'ZUiAF':function(_0x5c40cb,_0x36e0cc){return _0x5c40cb===_0x36e0cc;}},[_0x7e46a1,_0x53b440]=(0x0,_react[_0xd6d3(0x142)])(primaryAuthOnly?_0x130a49[_0xd6d3(0x143)]:_0x130a49['pRilr']),[_0xd25f2,_0x4eb174]=(0x0,_react[_0xd6d3(0x142)])({}),[_0x1db6d6,_0x5c724e]=(0x0,_react[_0xd6d3(0x142)])(''),[_0x424bdd,_0x344bd5]=(0x0,_react[_0xd6d3(0x142)])(_0x130a49[_0xd6d3(0x144)]),[_0x1ec050]=(0x0,_react[_0xd6d3(0x142)])(new _reactNative[(_0xd6d3(0x145))]['Value'](height)),[_0x12e9f6]=(0x0,_react['useState'])(new _reactNative[(_0xd6d3(0x145))]['Value'](0x0)),[_0x15fcac,_0x13e2b6]=(0x0,_react['useState'])({}),[_0x5659a4,_0x4eb699]=(0x0,_react[_0xd6d3(0x142)])(''),[_0x46ebae,_0x33af9d]=(0x0,_react['useState'])(''),[_0x4d5af1,_0x4af85d]=(0x0,_react['useState'])(''),[_0x2e0042,_0x3f2b7b]=(0x0,_react[_0xd6d3(0x142)])(''),[_0x4a8c81,_0x417b6c]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x543dcd,_0x6abdcc]=(0x0,_react[_0xd6d3(0x142)])(''),[_0x1ff827,_0x138d9d]=(0x0,_react['useState'])(![]),[_0x47dc5f,_0x221275]=(0x0,_react[_0xd6d3(0x142)])([]),[_0x3aff6a,_0x386b65]=(0x0,_react[_0xd6d3(0x142)])(null),[_0x5500aa,_0x51bab0]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x148d46,_0xef1008]=(0x0,_react['useState'])(![]),[_0x2fa074,_0x591e1d]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x48f5bc,_0x3a1ccb]=(0x0,_react[_0xd6d3(0x142)])(0x0),[_0x1088d3,_0x318ace]=(0x0,_react[_0xd6d3(0x142)])(0x8),[_0x2926e2,_0x1a946d]=(0x0,_react[_0xd6d3(0x142)])(0x6);(0x0,_react[_0xd6d3(0x146)])(()=>{const _0x1b2745={'oeZQZ':_0x130a49[_0xd6d3(0x147)]};_0x130a49[_0xd6d3(0x148)](_0x130a49['nJsYa'],_0x130a49[_0xd6d3(0x149)])?(console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x14b)],_0x4d52ad),console['log'](_0x130a49['BODCM'],_0x5500aa),console[_0xd6d3(0x14a)](_0x130a49['diXtA'],_0x7e46a1),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x14c)],primaryAuthOnly)):_0x2bc8f5[_0xd6d3(0x14a)](_0x1b2745[_0xd6d3(0x14d)],_0x3935a8);},[_0x4d52ad,_0x5500aa,_0x7e46a1,primaryAuthOnly]),(0x0,_react[_0xd6d3(0x146)])(()=>{_0x130a49[_0xd6d3(0x14e)]('KrRyx',_0x130a49[_0xd6d3(0x14f)])?_0x130a49[_0xd6d3(0x150)](primaryAuthOnly,_0x4d52ad)&&(_0x130a49[_0xd6d3(0x151)](_0x7e46a1,_0x130a49[_0xd6d3(0x152)])||_0x130a49[_0xd6d3(0x151)](_0x7e46a1,_0x130a49[_0xd6d3(0x153)]))&&(_0x130a49[_0xd6d3(0x154)](_0x130a49[_0xd6d3(0x155)],_0x130a49[_0xd6d3(0x156)])?(_0x3db2f3[_0xd6d3(0x157)]&&(_0x130928['log'](_0x130a49['eekYO']),_0x2e6d93[_0xd6d3(0x157)]['disconnect'](),_0xb74dee[_0xd6d3(0x157)]=null),_0x130a49[_0xd6d3(0x158)](_0x267752)):(console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x159)]),console['log'](_0x130a49[_0xd6d3(0x15a)],_0x7e46a1,_0x130a49[_0xd6d3(0x15b)]),_0x130a49[_0xd6d3(0x15c)](_0x53b440,_0x130a49[_0xd6d3(0x15d)]))):(_0x1bd65e[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x15e)],_0x3f46cf?_0x1381a3['substring'](0x0,0x14)+_0xd6d3(0x15f):_0xd6d3(0x160)),_0x366710[_0xd6d3(0x14a)](_0xd6d3(0x161)),_0x130a49[_0xd6d3(0x15c)](_0x59f1c8,'Waiting\x20for\x20training\x20to\x20start\x20from\x20connector→PIN\x20transition'));},[primaryAuthOnly,_0x4d52ad]);const _0x35de15=(0x0,_react[_0xd6d3(0x162)])(![]),[_0x26e6c3,_0x160d35]=(0x0,_react[_0xd6d3(0x142)])(0x5),[_0x25ec49,_0x45b18c]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x141743]=(0x0,_react[_0xd6d3(0x142)])(new _reactNative[(_0xd6d3(0x145))][(_0xd6d3(0x163))](0x0)),_0x4b14d8=(0x0,_react[_0xd6d3(0x162)])(null),_0x17b1c4=null,[_0x47aca4,_0x5e6fc3]=(0x0,_react[_0xd6d3(0x142)])(''),[_0x2c4636,_0x222b21]=(0x0,_react['useState'])(0x0),[_0xb72ea3,_0x64e260]=(0x0,_react[_0xd6d3(0x142)])(_0x130a49[_0xd6d3(0x164)]),[_0x4d546c,_0x38e2f9]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x11d651,_0x2a817c]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x2e8e91,_0x1f50f4]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x147ec6,_0x22b8a3]=(0x0,_react['useState'])(null),[_0x15afb2,_0x3514ec]=(0x0,_react[_0xd6d3(0x142)])(null),[_0x2c2d27,_0x567a15]=(0x0,_react['useState'])(null),[_0x3a5c50,_0x915318]=(0x0,_react[_0xd6d3(0x142)])(null),[_0xc3dffd,_0xf94eef]=(0x0,_react[_0xd6d3(0x142)])(''),_0x481fa1=(0x0,_react[_0xd6d3(0x162)])(null),_0x4fe1ce=(0x0,_react['useRef'])(null),[_0x319cd1,_0x41a5e5]=(0x0,_react['useState'])(![]),[_0x643f53,_0x1c84e1]=(0x0,_react['useState'])(null),[_0x58078c,_0x170edb]=(0x0,_react[_0xd6d3(0x142)])(null),[_0x5b75ea,_0x4c1e9a]=(0x0,_react['useState'])(null),[_0x12ede8,_0x4f5556]=(0x0,_react[_0xd6d3(0x142)])(null),[_0x2a6f16,_0x158533]=(0x0,_react['useState'])(![]),[_0x5b36e9,_0xe874ea]=(0x0,_react[_0xd6d3(0x142)])(![]),[_0x4247b8,_0x43e775]=(0x0,_react['useState'])(''),[_0x46d188,_0x17a2f3]=(0x0,_react['useState'])(null),_0x156441=async _0x39c2e1=>{const _0x24773c={'AwYEy':function(_0x1e0443,_0x2ba115){return _0x1e0443(_0x2ba115);},'meRcO':_0x130a49['YXLbN']};try{if(_0x130a49[_0xd6d3(0x148)](_0x130a49[_0xd6d3(0x165)],_0xd6d3(0x166))){const _0x5803f3=await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x130a49[_0xd6d3(0x168)]);let _0x4c1b49=_0x5803f3?JSON['parse'](_0x5803f3):[];!_0x4c1b49[_0xd6d3(0x169)](_0x39c2e1)&&(_0x130a49[_0xd6d3(0x148)]('geazT',_0x130a49['bmsLW'])?(_0x4c1b49[_0xd6d3(0x16a)](_0x39c2e1),await _asyncStorage['default'][_0xd6d3(0x16b)](_0x130a49[_0xd6d3(0x168)],JSON[_0xd6d3(0x16c)](_0x4c1b49)),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x16d)],_0x39c2e1,_0x130a49[_0xd6d3(0x16e)],_0x4c1b49)):_0x3457f6[_0xd6d3(0x11)]('Error\x20handling\x20OAuth\x20callback:',_0x3af755));}else _0x17c782[_0xd6d3(0x14a)]('🔑\x20[CACHED\x20LOGIN]\x20User\x20authenticated\x20but\x20no\x20connections\x20-\x20skipping\x20to\x20platforms'),_0x4a2fec(_0x246871),_0x24773c['AwYEy'](_0x406acc,_0x24773c['meRcO']);}catch(_0x1504da){_0x130a49[_0xd6d3(0x16f)](_0x130a49[_0xd6d3(0x170)],_0x130a49['FUHLm'])?(_0x4c73d0[_0xd6d3(0x171)]=_0x290d70,_0x189fa6[_0xd6d3(0x172)]=_0x2b928a||_0x266764['split']('@')[0x0]):console[_0xd6d3(0x11)](_0xd6d3(0x6d),_0x1504da);}},_0x1a0d36=async _0x1f983a=>{try{const _0x17980e=await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x130a49['fMqHb']);let _0x4b2ad3=_0x17980e?JSON['parse'](_0x17980e):[];_0x4b2ad3=_0x4b2ad3[_0xd6d3(0x173)](_0x3090a2=>_0x3090a2!==_0x1f983a),await _asyncStorage['default'][_0xd6d3(0x16b)](_0xd6d3(0x174),JSON[_0xd6d3(0x16c)](_0x4b2ad3)),console[_0xd6d3(0x14a)](_0xd6d3(0x175),_0x1f983a,_0x130a49['hNHDG'],_0x4b2ad3);}catch(_0x1294ba){if(_0x130a49[_0xd6d3(0x176)]!==_0xd6d3(0x31)){var _0x15463d,_0x43df85,_0x3cb55c,_0xcf481f;_0x37b41a[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x177)],{'connected':(_0x15463d=_0x437720[_0xd6d3(0x157)])===null||_0x130a49[_0xd6d3(0x151)](_0x15463d,void 0x0)?void 0x0:_0x15463d[_0xd6d3(0x55)],'disconnected':_0x130a49['NmHyI'](_0x43df85=_0x3efa1b[_0xd6d3(0x157)],null)||_0x130a49['mWZth'](_0x43df85,void 0x0)?void 0x0:_0x43df85[_0xd6d3(0x56)],'id':(_0x3cb55c=_0x32c3d3[_0xd6d3(0x157)])===null||_0x130a49[_0xd6d3(0x178)](_0x3cb55c,void 0x0)?void 0x0:_0x3cb55c['id'],'engineConnected':_0x130a49[_0xd6d3(0x154)](_0xcf481f=_0x4455ca[_0xd6d3(0x157)],null)||_0x130a49[_0xd6d3(0x16f)](_0xcf481f,void 0x0)||_0x130a49[_0xd6d3(0x179)](_0xcf481f=_0xcf481f['io'],null)||_0x130a49[_0xd6d3(0x17a)](_0xcf481f,void 0x0)||(_0xcf481f=_0xcf481f[_0xd6d3(0x17b)])===null||_0x130a49[_0xd6d3(0x151)](_0xcf481f,void 0x0)?void 0x0:_0xcf481f[_0xd6d3(0x17c)]});}else console[_0xd6d3(0x11)]('Error\x20removing\x20connected\x20platform:',_0x1294ba);}},_0x3bdbe4=(_0x3d2c52,_0x547821)=>{_reactNative[_0xd6d3(0x17d)][_0xd6d3(0x17e)](_0xd6d3(0x17f),_0xd6d3(0x180)+_0x547821+'?',[{'text':'No','style':_0x130a49[_0xd6d3(0x181)]},{'text':_0xd6d3(0x182),'style':_0x130a49[_0xd6d3(0x183)],'onPress':async()=>{try{_0x130a49['QdmoJ'](_0x4937e5,_0x1d9ae5=>({..._0x1d9ae5,[_0x3d2c52]:'disconnected'})),_0x130a49['QdmoJ'](_0x4eb174,_0x49209c=>{const _0x2cda09={..._0x49209c};return delete _0x2cda09[_0x3d2c52],_0x2cda09;}),_0x130a49['AVpuj'](_0x13e2b6,_0x2e68f7=>({..._0x2e68f7,[_0x3d2c52]:![]})),await _0x130a49[_0xd6d3(0x184)](_0x1a0d36,_0x3d2c52),await _0x1c429c(),console[_0xd6d3(0x14a)](_0x130a49['BFDKY'],_0x3d2c52);}catch(_0x26d428){console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x185)],_0x26d428);}}}]);},_0x5618fc=()=>{const _0x369fb1={'lzuyG':_0x130a49[_0xd6d3(0x185)]};if(_0x130a49[_0xd6d3(0x14e)](_0x130a49[_0xd6d3(0x186)],_0x130a49[_0xd6d3(0x186)]))_0x4a89db['error'](_0x369fb1[_0xd6d3(0x187)],_0x482f9f);else{_0x4fe1ce['current']&&_0x130a49[_0xd6d3(0x184)](clearInterval,_0x4fe1ce[_0xd6d3(0x157)]);let _0x41ef4b=0x0;_0x4fe1ce['current']=_0x130a49[_0xd6d3(0x188)](setInterval,()=>{const _0x1e4748={'IoaNu':_0x130a49[_0xd6d3(0x189)],'ZXdOM':function(_0x4227d9,_0x5c0de3){return _0x130a49[_0xd6d3(0x18a)](_0x4227d9,_0x5c0de3);},'Omezn':_0xd6d3(0x18b)};_0x41ef4b=_0x130a49['WQfGz'](_0x41ef4b,0x1)%0x4,_0x41ef4b===0x0?_0x130a49[_0xd6d3(0x18c)](_0xf94eef,''):_0x130a49[_0xd6d3(0x18d)](_0x130a49['ysLfT'],_0xd6d3(0x37))?(_0x2993c8[_0xd6d3(0x14a)](_0x1e4748[_0xd6d3(0x18e)],_0x168b14[_0xd6d3(0x18f)]),_0x1e4748[_0xd6d3(0x190)](_0x3e6ff3,_0x5f4180['message']||_0x1e4748[_0xd6d3(0x191)])):_0x130a49[_0xd6d3(0x184)](_0xf94eef,'.'[_0xd6d3(0x192)](_0x41ef4b));},0x1f4);}},_0x1e1f44=()=>{_0x4fe1ce[_0xd6d3(0x157)]&&(_0x130a49[_0xd6d3(0x193)](clearInterval,_0x4fe1ce[_0xd6d3(0x157)]),_0x4fe1ce[_0xd6d3(0x157)]=null),_0x130a49[_0xd6d3(0x193)](_0xf94eef,'');},_0x80541f=[{'id':_0x130a49[_0xd6d3(0x194)],'name':_0x130a49['JdgaY'],'color':_0x130a49['LoqbF']},{'id':_0x130a49[_0xd6d3(0x195)],'name':_0x130a49[_0xd6d3(0x196)],'color':_0x130a49[_0xd6d3(0x197)]},{'id':_0x130a49[_0xd6d3(0x198)],'name':_0x130a49[_0xd6d3(0x199)],'color':_0xd6d3(0x19a)}],_0xc2b2b8=[{'id':_0x130a49[_0xd6d3(0x19b)],'name':_0xd6d3(0x19c),'color':_0xd6d3(0x137)},{'id':_0x130a49[_0xd6d3(0x19d)],'name':_0x130a49[_0xd6d3(0x19e)],'color':_0xd6d3(0x19f)},{'id':'chatgpt','name':_0x130a49[_0xd6d3(0x1a0)],'color':_0x130a49[_0xd6d3(0x1a1)]}],_0x361171=[..._0x80541f,..._0xc2b2b8],_0xe3da93=async()=>{},_0x1c429c=async()=>{},_0x50d270=()=>_0xd6d3(0x56),_0x3ebb72=![],_0x3a2cbf=()=>![],[_0x4fb8fd,_0x4937e5]=(0x0,_react['useState'])({}),[_0x49b764,_0xbd36ac]=(0x0,_react['useState'])(null),_0x5063a2=_0xdaea86=>{return(0x0,_assetRegistry[_0xd6d3(0x1a2)])(_0xdaea86);},_0x5b0b71=(0x0,_react[_0xd6d3(0x162)])(![]),_0x34692b=(0x0,_react[_0xd6d3(0x162)])(_0x59d958);(0x0,_react['useEffect'])(()=>{_0x34692b[_0xd6d3(0x157)]=_0x59d958;},[_0x59d958]),(0x0,_react['useEffect'])(()=>{const _0x12aa52={'IerxU':_0x130a49[_0xd6d3(0x1a3)],'VomJA':function(_0x3010a2,_0x1de742){return _0x130a49[_0xd6d3(0x1a4)](_0x3010a2,_0x1de742);},'fpokP':_0x130a49[_0xd6d3(0x1a5)],'fEoKY':_0x130a49[_0xd6d3(0x1a6)],'qdQPW':function(_0x2901c3,_0x5175f0){return _0x130a49[_0xd6d3(0x193)](_0x2901c3,_0x5175f0);},'CmobJ':function(_0x57f1cc,_0x5394ba){return _0x57f1cc===_0x5394ba;},'tpRZc':_0x130a49[_0xd6d3(0x1a7)],'hpHVV':_0x130a49[_0xd6d3(0x1a8)],'hVaiH':function(_0x135429,_0x311596){return _0x130a49[_0xd6d3(0x1a9)](_0x135429,_0x311596);},'KZzLm':_0x130a49['qQYXm'],'fZlaw':function(_0x2039bb,_0x77c3f6){return _0x130a49['ZQbXa'](_0x2039bb,_0x77c3f6);},'YxKvG':function(_0x44a623,_0x2afa66){return _0x130a49['TxvsD'](_0x44a623,_0x2afa66);},'EdObJ':_0x130a49[_0xd6d3(0x1aa)],'pUvNO':_0x130a49[_0xd6d3(0x1ab)],'zgiTy':'💾\x20Storage\x20method:','eNbbf':_0x130a49[_0xd6d3(0x1ac)],'MXUVE':_0xd6d3(0x77),'mdQac':_0xd6d3(0x61)};if(_0x130a49['dUsaT'](_0x130a49[_0xd6d3(0x1ad)],'aGzam'))_0x1ee3ee[_0xd6d3(0x11)](_0x12aa52[_0xd6d3(0x1ae)],_0x1d9c78),_0x12aa52[_0xd6d3(0x1af)](_0x575214,_0x12aa52[_0xd6d3(0x1b0)]);else{if(_0x4d52ad){_0x5b0b71[_0xd6d3(0x157)]=!![],_0x35de15[_0xd6d3(0x157)]=![],_0x12e9f6['setValue'](0x0),_0x130a49[_0xd6d3(0x1b1)](_0x51bab0,!![]),_0x130a49[_0xd6d3(0x1b2)](_0x51e7a5),requestAnimationFrame(()=>{_reactNative[_0xd6d3(0x145)][_0xd6d3(0x1b3)](_0x12e9f6,{'toValue':0x1,'duration':0x12c,'useNativeDriver':!![]})['start']();});const _0x13fec8=_reactNative[_0xd6d3(0x1b4)]['addEventListener'](_0x130a49[_0xd6d3(0x1b5)],_0x33436c);return()=>{const _0x428cfe={'ngTsq':_0x12aa52[_0xd6d3(0x1b6)],'qgYiZ':function(_0x552f36,_0x184603){return _0x12aa52[_0xd6d3(0x1b7)](_0x552f36,_0x184603);},'rTOTq':function(_0x5373cb,_0x6c4e87){return _0x12aa52[_0xd6d3(0x1af)](_0x5373cb,_0x6c4e87);}};_0x12aa52[_0xd6d3(0x1b8)]('lZrgY',_0x12aa52['tpRZc'])?_0x13fec8[_0xd6d3(0x1b9)]():(_0x2c96ba[_0xd6d3(0x14a)](_0x428cfe[_0xd6d3(0x1ba)]),_0x428cfe[_0xd6d3(0x1bb)](_0x4157c1,_0xd6d3(0xf4)),_0x428cfe[_0xd6d3(0x1bc)](_0x46de5c,!![]));};}else{if(_0x5b0b71[_0xd6d3(0x157)]&&!_0x35de15[_0xd6d3(0x157)])_reactNative[_0xd6d3(0x145)]['timing'](_0x12e9f6,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})[_0xd6d3(0x1bd)](()=>{const _0x2a7c24={'PWGsz':_0x12aa52[_0xd6d3(0x1be)],'notzd':function(_0xfbc4e7,_0x3ab51c){return _0x12aa52['hVaiH'](_0xfbc4e7,_0x3ab51c);},'BgKkG':_0x12aa52[_0xd6d3(0x1bf)],'hLhGv':'🔗\x20Connections\x20required\x20detected\x20from\x20HTTP\x20response','nVmgm':function(_0x1fdf6e,_0x284263){return _0x12aa52[_0xd6d3(0x1c0)](_0x1fdf6e,_0x284263);},'eoiUW':function(_0x3a9bef,_0x266f32){return _0x12aa52[_0xd6d3(0x1c1)](_0x3a9bef,_0x266f32);}};setTimeout(()=>{const _0x507e86={'xgEPb':_0x2a7c24[_0xd6d3(0x1c2)],'dvOKR':function(_0x40372f,_0x137226){return _0x2a7c24['notzd'](_0x40372f,_0x137226);},'WEIHI':_0x2a7c24[_0xd6d3(0x1c3)],'RMdJL':function(_0x7ceb93){return _0x7ceb93();},'pWeLX':_0x2a7c24[_0xd6d3(0x1c4)]};if(_0x2a7c24[_0xd6d3(0x1c5)](_0xd6d3(0x1c6),_0xd6d3(0x1c6))){const _0x1c8a40=_0x507e86['xgEPb'][_0xd6d3(0x1c7)]('|');let _0x389be5=0x0;while(!![]){switch(_0x1c8a40[_0x389be5++]){case'0':return;case'1':_0x507e86[_0xd6d3(0x1c8)](_0x43e06a,_0x507e86[_0xd6d3(0x1c9)]);continue;case'2':_0x450c81(_0xd6d3(0xc3));continue;case'3':_0x51f74d(!![]);continue;case'4':_0x507e86['RMdJL'](_0x1220e1);continue;case'5':_0x4fb762(!![]);continue;case'6':_0x507e86['dvOKR'](_0x1f5714,_0x5a08e3);continue;case'7':_0x8e4fd0[_0xd6d3(0x14a)](_0x507e86['pWeLX']);continue;}break;}}else{var _0x41a342;_0x2a7c24['notzd'](_0x51bab0,![]),_0x2a7c24[_0xd6d3(0x1ca)](_0x41a342=_0x34692b[_0xd6d3(0x157)],null)||_0x2a7c24[_0xd6d3(0x1ca)](_0x41a342,void 0x0)||_0x41a342[_0xd6d3(0x15)](_0x34692b);}},0x10);});else{if(_0x5b0b71['current']&&_0x35de15[_0xd6d3(0x157)]){if(_0x130a49[_0xd6d3(0x1cb)](_0x130a49[_0xd6d3(0x1cc)],_0x130a49[_0xd6d3(0x1cc)])){const _0x1e87f9=_0x12aa52[_0xd6d3(0x1cd)][_0xd6d3(0x1c7)]('|');let _0x439513=0x0;while(!![]){switch(_0x1e87f9[_0x439513++]){case'0':_0x276fef[_0xd6d3(0x1ce)]&&_0x403fae[_0xd6d3(0x1cf)](_0xa40230[_0xd6d3(0x1ce)])&&_0x1dadfb['log'](_0x12aa52[_0xd6d3(0x1d0)],_0x517576['databases']['join'](',\x20'));continue;case'1':_0x1718aa[_0xd6d3(0x14a)](_0x12aa52['zgiTy'],_0x92c3bc[_0xd6d3(0x1d1)]);continue;case'2':_0x346095[_0xd6d3(0x14a)](_0x12aa52[_0xd6d3(0x1d2)],_0x275fb2[_0xd6d3(0x1d3)]);continue;case'3':_0x1c5b05[_0xd6d3(0x1d4)]&&_0x580599[_0xd6d3(0x14a)](_0x12aa52[_0xd6d3(0x1d5)]);continue;case'4':_0x3ff815[_0xd6d3(0x14a)](_0x12aa52[_0xd6d3(0x1d6)],_0x59223f[_0xd6d3(0x18f)]);continue;case'5':_0x523e27[_0xd6d3(0x14a)](_0xd6d3(0x1d7),_0x1e794f['inference']);continue;}break;}}else _0x130a49['Gipfk'](_0x51bab0,![]),_0x35de15['current']=![];}}}}},[_0x4d52ad]),(0x0,_react[_0xd6d3(0x146)])(()=>{const _0x57d0fa={'BJikG':function(_0x5c5861,_0x2ef44e){return _0x130a49['Ywoqv'](_0x5c5861,_0x2ef44e);},'sekuP':function(_0x2a7f6c,_0x29fdf1){return _0x2a7f6c(_0x29fdf1);},'OHqmE':_0x130a49[_0xd6d3(0x1d8)]};if(_0x130a49[_0xd6d3(0x14e)](_0xd6d3(0x1d9),_0x130a49[_0xd6d3(0x1da)]))_0x57d0fa[_0xd6d3(0x1db)](_0x554b62,_0x30bb83),_0x57d0fa[_0xd6d3(0x1dc)](_0x123638,_0x57d0fa[_0xd6d3(0x1dd)]);else return()=>{_0x481fa1[_0xd6d3(0x157)]&&(console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1de)]),_0x481fa1['current'][_0xd6d3(0x103)](),_0x481fa1[_0xd6d3(0x157)]=null),_0x130a49['SNDNc'](_0x1e1f44);};},[_0x4d52ad]);const _0x33436c=(0x0,_react[_0xd6d3(0x1df)])(({url:_0x4cfdd7})=>{const _0x38df8c={'BIUHf':function(_0x640ef8,_0x5a0e92){return _0x130a49['KEKeU'](_0x640ef8,_0x5a0e92);},'HWviV':_0x130a49[_0xd6d3(0x152)]};(0x0,_platformAuthService[_0xd6d3(0x1e0)])(_0x4cfdd7)&&(_0x130a49[_0xd6d3(0x1e1)](_0x130a49['sQDaP'],_0x130a49[_0xd6d3(0x1e2)])?_0x137b3b(_0x4cfdd7):(_0x124739[_0xd6d3(0x11)]('❌\x20Error\x20during\x20logout:',_0x96b64a),_0x38df8c[_0xd6d3(0x1e3)](_0xa2f5ae,_0x38df8c[_0xd6d3(0x1e4)])));},[]);(0x0,_react[_0xd6d3(0x146)])(()=>{const _0x55c5bd={'sjWKy':_0x130a49[_0xd6d3(0x1e5)],'gRXJl':_0x130a49['CYFWW'],'VQAzy':function(_0x56fed8,_0x41871b){return _0x56fed8===_0x41871b;},'AjXsx':_0xd6d3(0x6b),'ojGFJ':_0x130a49[_0xd6d3(0x1e6)],'BnrIJ':_0xd6d3(0x6c),'mxeRD':_0x130a49[_0xd6d3(0x1e7)],'MfCTV':_0x130a49[_0xd6d3(0x1e8)],'Gabto':function(_0x37d5f0,_0x5a9af9){return _0x130a49[_0xd6d3(0x18a)](_0x37d5f0,_0x5a9af9);},'TQWHM':_0x130a49[_0xd6d3(0x1e9)],'dksUB':function(_0x479062,_0x3a50bd){return _0x479062&&_0x3a50bd;},'WmjSf':function(_0x416bd3,_0x439003){return _0x130a49[_0xd6d3(0x193)](_0x416bd3,_0x439003);},'fQbPO':_0x130a49[_0xd6d3(0x1ea)],'ZSmIB':_0xd6d3(0x1eb),'AnXLA':function(_0x4d58fa,_0x29be4d){return _0x130a49[_0xd6d3(0x1b1)](_0x4d58fa,_0x29be4d);},'BlZkG':_0x130a49['sicYe'],'WYNuk':_0xd6d3(0xe4),'vEJwt':function(_0x366dec,_0x56e1c6){return _0x130a49[_0xd6d3(0x1ec)](_0x366dec,_0x56e1c6);},'qbote':_0x130a49[_0xd6d3(0x1ed)],'mIjBY':function(_0x2d7fbc,_0x4c7556){return _0x130a49[_0xd6d3(0x18d)](_0x2d7fbc,_0x4c7556);},'fQiiv':_0x130a49[_0xd6d3(0x1ee)],'EbaKu':_0x130a49[_0xd6d3(0x1ef)],'DYnHT':function(_0x13428a,_0x8220a1){return _0x130a49['rSgIg'](_0x13428a,_0x8220a1);},'KBKal':_0xd6d3(0x1f0),'dqDSy':_0x130a49['JGtUk'],'QxcIM':_0xd6d3(0x1f1),'rlRRV':_0x130a49[_0xd6d3(0x1f2)],'ZmhEH':_0xd6d3(0x83),'SWgDy':'mobile_user','XZWLL':function(_0x38c964,_0x2a531a){return _0x130a49[_0xd6d3(0x1f3)](_0x38c964,_0x2a531a);},'wrYhX':_0x130a49[_0xd6d3(0x15d)],'stSZC':_0x130a49['bLbDA'],'yxRNf':_0x130a49[_0xd6d3(0x1f4)],'mNcvn':_0xd6d3(0x174),'GAgjR':function(_0x59cf7e,_0x55c8a6){return _0x130a49['dXFJy'](_0x59cf7e,_0x55c8a6);},'MLpxd':_0x130a49['UXcsa'],'eihcX':_0x130a49[_0xd6d3(0x1f5)],'TipfF':function(_0x314ef3,_0x51effe){return _0x130a49['tOpad'](_0x314ef3,_0x51effe);},'xfToK':_0x130a49[_0xd6d3(0x1f6)],'dLLXo':function(_0x4bbc61,_0x39a8f7){return _0x130a49[_0xd6d3(0x1f7)](_0x4bbc61,_0x39a8f7);},'rmZyn':_0xd6d3(0x5a),'XWEhP':'🔑\x20[CACHED\x20LOGIN]\x20User\x20authenticated\x20but\x20no\x20connections\x20-\x20skipping\x20to\x20platforms','KJeov':function(_0x405f52,_0x4f032e){return _0x130a49[_0xd6d3(0x1f8)](_0x405f52,_0x4f032e);},'CObIb':function(_0x5c6a16,_0x51608d){return _0x130a49[_0xd6d3(0x193)](_0x5c6a16,_0x51608d);},'QKCHG':_0x130a49[_0xd6d3(0x143)],'tecVM':_0x130a49['rSCac'],'kWCDV':function(_0x4f1cfd,_0x172631){return _0x130a49[_0xd6d3(0x1f9)](_0x4f1cfd,_0x172631);},'vJjOV':function(_0x5570e3,_0x24d859){return _0x130a49[_0xd6d3(0x16f)](_0x5570e3,_0x24d859);},'QBbjj':function(_0x382479,_0xa6b375){return _0x382479===_0xa6b375;},'Ttekg':function(_0x41d0ef,_0x449895){return _0x130a49[_0xd6d3(0x1fa)](_0x41d0ef,_0x449895);},'RauRY':_0x130a49[_0xd6d3(0x1fb)]};if(_0x130a49[_0xd6d3(0x1fc)]!==_0x130a49[_0xd6d3(0x1fd)]){const _0x5a33c4=async()=>{const _0x57a7b1={'AVcTt':function(_0xcfcabd,_0x23d04a){return _0xcfcabd(_0x23d04a);},'cdBRw':function(_0x1c5ba9,_0x34968e){return _0x1c5ba9===_0x34968e;},'GIiOF':_0xd6d3(0xac),'LFhZb':function(_0x1bc512,_0x2d57de){return _0x55c5bd[_0xd6d3(0x1fe)](_0x1bc512,_0x2d57de);},'ZVUOe':function(_0x2c9dfc,_0x1837b6){return _0x55c5bd[_0xd6d3(0x1ff)](_0x2c9dfc,_0x1837b6);},'qsPpB':_0x55c5bd[_0xd6d3(0x200)],'gXyag':_0x55c5bd[_0xd6d3(0x201)],'PmFwh':function(_0x3c0fbd,_0x5bfee8){return _0x55c5bd[_0xd6d3(0x202)](_0x3c0fbd,_0x5bfee8);},'IJVen':_0x55c5bd[_0xd6d3(0x203)],'RKtJJ':_0x55c5bd[_0xd6d3(0x204)],'QWWwm':function(_0x5f3755,_0x230da7){return _0x55c5bd[_0xd6d3(0x202)](_0x5f3755,_0x230da7);}};if(_0x55c5bd[_0xd6d3(0x205)](_0x55c5bd[_0xd6d3(0x206)],'WhnBv')){const _0x5ebb3c={'nDnJn':function(_0x18227b,_0x4f7c31){return _0x57a7b1[_0xd6d3(0x207)](_0x18227b,_0x4f7c31);},'MCWib':function(_0x138001,_0x1dfa43){return _0x57a7b1[_0xd6d3(0x208)](_0x138001,_0x1dfa43);}};_0x41f113[_0xd6d3(0x145)]['timing'](_0x34e65a,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})['start'](()=>{_0x548ab0(()=>{var _0x5eaae0;_0x5ebb3c['nDnJn'](_0x49c8db,![]),_0x5ebb3c[_0xd6d3(0x209)](_0x5eaae0=_0x2425b0[_0xd6d3(0x157)],null)||_0x5ebb3c['MCWib'](_0x5eaae0,void 0x0)||_0x5eaae0['call'](_0x1f4f62);},0x10);});}else try{if(_0x55c5bd['mIjBY'](_0x55c5bd[_0xd6d3(0x20a)],_0xd6d3(0x20b))){const _0x1e51f4=await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0xd6d3(0x1f1)),_0x111a5b=await _asyncStorage['default'][_0xd6d3(0x167)](_0x55c5bd['EbaKu']);if(_0x55c5bd['DYnHT'](_0x1e51f4,_0x111a5b)){if(_0x55c5bd[_0xd6d3(0x205)](_0x55c5bd[_0xd6d3(0x20c)],_0x55c5bd[_0xd6d3(0x20c)])){const _0x346d0a=_0x55c5bd[_0xd6d3(0x20d)][_0xd6d3(0x1c7)]('|');let _0x1437db=0x0;while(!![]){switch(_0x346d0a[_0x1437db++]){case'0':await _asyncStorage['default']['removeItem'](_0x55c5bd[_0xd6d3(0x20e)]);continue;case'1':await _asyncStorage['default'][_0xd6d3(0x20f)](_0x55c5bd[_0xd6d3(0x210)]);continue;case'2':_0x55c5bd[_0xd6d3(0x202)](_0x1c84e1,_0x1e51f4);continue;case'3':_0x170edb(JSON['parse'](_0x111a5b));continue;case'4':_0x55c5bd[_0xd6d3(0x1ff)](_0x41a5e5,!![]);continue;case'5':console[_0xd6d3(0x14a)](_0xd6d3(0x211));continue;}break;}}else try{_0x5ca066['log'](_0x55c5bd[_0xd6d3(0x212)]),_0x1dfcca[_0xd6d3(0x14a)](_0x55c5bd['gRXJl'],(_0x55c5bd[_0xd6d3(0x213)](_0xbfe21c,null)||_0x55c5bd[_0xd6d3(0x213)](_0x420803,void 0x0)?void 0x0:_0x498b25['substring'](0x0,0x14))+_0xd6d3(0x15f));if(!_0x36909d)throw new _0x144c52(_0x55c5bd['AjXsx']);_0x5536a5['log'](_0x55c5bd[_0xd6d3(0x214)]),_0x136803['log'](_0x55c5bd[_0xd6d3(0x215)],_0x3c8419),_0x10590d[_0xd6d3(0x14a)](_0x55c5bd['mxeRD']);}catch(_0x53dcaf){_0x9da319[_0xd6d3(0x11)](_0xd6d3(0xce),_0x53dcaf);throw _0x53dcaf;}}const _0x2883d0=await(0x0,_jwtStorageService['getJWT'])();_0x55c5bd[_0xd6d3(0x202)](_0x567a15,_0x2883d0);if(_0x2883d0){if(_0x55c5bd['VQAzy'](_0x55c5bd[_0xd6d3(0x216)],_0x55c5bd['rlRRV'])){var _0x435875;const _0x4fbccd=await(0x0,_authService[_0xd6d3(0x217)])(),_0x5c7412=await _asyncStorage['default'][_0xd6d3(0x167)](_0x55c5bd[_0xd6d3(0x218)]),_0x550ff1=_0x4fbccd||(_0x17b1c4===null||_0x55c5bd[_0xd6d3(0x213)](_0x17b1c4,void 0x0)||_0x55c5bd[_0xd6d3(0x213)](_0x435875=_0x17b1c4['email'],null)||_0x435875===void 0x0?void 0x0:_0x435875['split']('@')[0x0])||(_0x55c5bd[_0xd6d3(0x205)](_0x17b1c4,null)||_0x17b1c4===void 0x0?void 0x0:_0x17b1c4[_0xd6d3(0x219)])||_0x55c5bd[_0xd6d3(0x21a)];console['log']('🔍\x20Using\x20username\x20for\x20training:',_0x550ff1),_0x55c5bd[_0xd6d3(0x1ff)](_0x915318,{'username':_0x550ff1,'email':_0x5c7412||(_0x55c5bd[_0xd6d3(0x21b)](_0x17b1c4,null)||_0x55c5bd[_0xd6d3(0x213)](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4[_0xd6d3(0x171)])||null,'id':null}),_0x55c5bd['WmjSf'](_0x5e6fc3,_0x550ff1);if(_0x5c7412&&_0x55c5bd[_0xd6d3(0x213)](_0x7e46a1,_0x55c5bd[_0xd6d3(0x21c)])&&!primaryAuthOnly){if(_0x55c5bd[_0xd6d3(0x21b)](_0x55c5bd[_0xd6d3(0x21d)],_0xd6d3(0x21e))){const _0xe3da36=new _0x57618b(_0x101abb),_0x33ad4b=_0xe3da36['searchParams'][_0xd6d3(0xf)](_0x57a7b1[_0xd6d3(0x21f)]),_0x28fada=_0xe3da36[_0xd6d3(0x220)][_0xd6d3(0xf)](_0xd6d3(0xad))||_0x55aaba;_0x57a7b1[_0xd6d3(0x221)](_0x33ad4b,_0x28fada)&&(_0x1b8a2f(_0x111d35=>({..._0x111d35,[_0x28fada]:{'userName':_0x5c76af,'connected':!![]}})),_0x57a7b1[_0xd6d3(0x207)](_0x3e0e49,_0x1b863a=>({..._0x1b863a,[_0x28fada]:!![]})),_0x57a7b1[_0xd6d3(0x222)](_0x1b7024,_0x57a7b1[_0xd6d3(0x223)]));}else{console[_0xd6d3(0x14a)](_0x55c5bd[_0xd6d3(0x224)],_0x5c7412);const _0x341b45=await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x55c5bd[_0xd6d3(0x225)]),_0xeffa8=_0x341b45?JSON[_0xd6d3(0x226)](_0x341b45):[];if(_0x55c5bd[_0xd6d3(0x227)](_0xeffa8[_0xd6d3(0x228)],0x0)){const _0x42fe10=_0x55c5bd[_0xd6d3(0x229)][_0xd6d3(0x1c7)]('|');let _0x55f319=0x0;while(!![]){switch(_0x42fe10[_0x55f319++]){case'0':console[_0xd6d3(0x14a)](_0x55c5bd['eihcX']);continue;case'1':_0x55c5bd[_0xd6d3(0x22a)](_0x138d9d,!![]);continue;case'2':console['log'](_0x55c5bd[_0xd6d3(0x22b)],_0xeffa8);continue;case'3':_0x55c5bd[_0xd6d3(0x22c)](_0x53b440,_0x55c5bd['rmZyn']);continue;case'4':_0x55c5bd[_0xd6d3(0x22c)](_0x221275,_0xeffa8);continue;case'5':_0x55c5bd[_0xd6d3(0x22d)](_0x3f2b7b,_0x5c7412);continue;}break;}}else console[_0xd6d3(0x14a)](_0x55c5bd['XWEhP']),_0x55c5bd['KJeov'](_0x3f2b7b,_0x5c7412),_0x55c5bd[_0xd6d3(0x22e)](_0x53b440,_0x55c5bd['QKCHG']);}}}else _0x11f197['error'](_0x55c5bd[_0xd6d3(0x22f)],_0x4dce02),_0x55c5bd[_0xd6d3(0x22d)](_0x51eba4,_0x55c5bd['TQWHM']);}}else{const _0x52e2cf=_0x57a7b1[_0xd6d3(0x230)][_0xd6d3(0x1c7)]('|');let _0x2c0c2b=0x0;while(!![]){switch(_0x52e2cf[_0x2c0c2b++]){case'0':_0x57a7b1[_0xd6d3(0x231)](_0x82a5dc,_0x1f3d08[_0xd6d3(0x232)]);continue;case'1':_0x594dc7(_0x57a7b1[_0xd6d3(0x233)]);continue;case'2':_0xf790e5[_0xd6d3(0x14a)](_0xd6d3(0xe3));continue;case'3':return;case'4':_0x4970a4(_0x57a7b1[_0xd6d3(0x234)]);continue;case'5':_0x57a7b1[_0xd6d3(0x235)](_0x1be693,!![]);continue;}break;}}}catch(_0x212d03){var _0x4f9c10;console[_0xd6d3(0x11)](_0x55c5bd['tecVM'],_0x212d03);const _0x740046=(_0x55c5bd[_0xd6d3(0x213)](_0x17b1c4,null)||_0x17b1c4===void 0x0||_0x55c5bd[_0xd6d3(0x236)](_0x4f9c10=_0x17b1c4[_0xd6d3(0x171)],null)||_0x55c5bd[_0xd6d3(0x213)](_0x4f9c10,void 0x0)?void 0x0:_0x4f9c10[_0xd6d3(0x1c7)]('@')[0x0])||(_0x55c5bd[_0xd6d3(0x237)](_0x17b1c4,null)||_0x55c5bd['XZWLL'](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4[_0xd6d3(0x219)])||_0x55c5bd['SWgDy'];_0x915318({'username':_0x740046,'email':(_0x17b1c4===null||_0x55c5bd[_0xd6d3(0x238)](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4[_0xd6d3(0x171)])||null,'id':null}),_0x55c5bd[_0xd6d3(0x239)](_0x5e6fc3,_0x740046);}};_0x4d52ad&&(_0x130a49[_0xd6d3(0x14e)](_0x130a49[_0xd6d3(0x23a)],_0xd6d3(0x23b))?_0x130a49[_0xd6d3(0x23c)](_0x5a33c4):(_0x10ec94(_0x4da900),_0x130a49[_0xd6d3(0x1a4)](_0x3b6515,_0x130a49[_0xd6d3(0x1d8)])));}else _0x4fd1a0(_0xe801a['message']||_0x55c5bd['RauRY']),(0x0,_0x4ec861[_0xd6d3(0x23d)])(_0x3b0686[_0xd6d3(0x23e)][_0xd6d3(0x23f)]);},[_0x4d52ad,_0x17b1c4,_0x7e46a1,primaryAuthOnly]);const _0x51e7a5=async()=>{const _0x8fca5e={'wfuKy':function(_0x59e662,_0xcd6f43){return _0x59e662!==_0xcd6f43;},'gncHz':_0x130a49[_0xd6d3(0x240)],'qglrU':_0x130a49[_0xd6d3(0x241)],'JUuif':function(_0x551251,_0x5dac11){return _0x130a49[_0xd6d3(0x242)](_0x551251,_0x5dac11);}};try{const _0x2f9c6e=await(0x0,_authService[_0xd6d3(0x217)])(),_0x50a33c=(_0x130a49[_0xd6d3(0x243)](_0x17b1c4,null)||_0x17b1c4===void 0x0?void 0x0:_0x17b1c4[_0xd6d3(0x171)])||(_0x130a49[_0xd6d3(0x244)](_0x17b1c4,null)||_0x130a49['xFtum'](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4['name'])||_0xd6d3(0x245)+Math['floor'](Math[_0xd6d3(0x246)]()*0x2710),_0xd5e6e=_0x130a49[_0xd6d3(0x247)](_0x2f9c6e,_0x50a33c);console[_0xd6d3(0x14a)](_0x130a49['mWlID'],{'storedUsername':_0x2f9c6e,'fallbackUsername':_0x50a33c,'finalUsername':_0xd5e6e}),_0x130a49['NcUfA'](_0x5e6fc3,_0xd5e6e);const _0x2ebac1=await _0x50d270();console['log'](_0x130a49['JvMIO'],_0x2ebac1),_0x130a49[_0xd6d3(0x248)](_0x4eb174,_0x2ebac1);const _0x2573d8={};Object[_0xd6d3(0x249)](_0x2ebac1)[_0xd6d3(0x24a)](_0x3ef44c=>{var _0x58cc98;_0x2573d8[_0x3ef44c]=_0x8fca5e['wfuKy'](_0x58cc98=_0x2ebac1[_0x3ef44c],null)&&_0x8fca5e[_0xd6d3(0x24b)](_0x58cc98,void 0x0)&&_0x58cc98[_0xd6d3(0x55)]?_0x8fca5e['gncHz']:_0x8fca5e[_0xd6d3(0x24c)];}),_0x130a49[_0xd6d3(0x18c)](_0x4937e5,_0x2573d8);const _0x5e1881={};Object[_0xd6d3(0x249)](_0x2ebac1)[_0xd6d3(0x24a)](_0x3cf9b0=>{var _0x32fa6a;_0x5e1881[_0x3cf9b0]=(_0x8fca5e[_0xd6d3(0x24d)](_0x32fa6a=_0x2ebac1[_0x3cf9b0],null)||_0x8fca5e[_0xd6d3(0x24d)](_0x32fa6a,void 0x0)?void 0x0:_0x32fa6a[_0xd6d3(0x55)])||![];}),_0x130a49[_0xd6d3(0x24e)](_0x13e2b6,_0x5e1881),console[_0xd6d3(0x14a)](_0x130a49['vEacP'],_0x2573d8),console[_0xd6d3(0x14a)](_0x130a49['NWSUu'],_0x5e1881);}catch(_0x55b966){console['error'](_0x130a49[_0xd6d3(0x24f)],_0x55b966),_0x4eb174({}),_0x130a49[_0xd6d3(0x18c)](_0x4937e5,{}),_0x130a49[_0xd6d3(0x1f8)](_0x13e2b6,{});const _0x5941ee=(_0x130a49[_0xd6d3(0x250)](_0x17b1c4,null)||_0x130a49['nxRzf'](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4['email'])||(_0x130a49[_0xd6d3(0x1f9)](_0x17b1c4,null)||_0x130a49['lvMge'](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4['name'])||_0xd6d3(0x245)+Math[_0xd6d3(0x251)](Math[_0xd6d3(0x246)]()*0x2710);_0x130a49[_0xd6d3(0x1a9)](_0x5e6fc3,_0x5941ee);}},_0xa4a041=()=>{if(_0x130a49[_0xd6d3(0x252)](_0x130a49['xNWjt'],_0x130a49[_0xd6d3(0x253)]))throw new _0x1779e0(_0xd6d3(0xf9));else{const _0x213a7d=_0x35de15[_0xd6d3(0x157)];_reactNative[_0xd6d3(0x145)][_0xd6d3(0x1b3)](_0x12e9f6,{'toValue':0x0,'duration':0xfa,'useNativeDriver':!![]})['start'](()=>{const _0x2c881d={'SXhXm':function(_0x126497,_0x761144){return _0x130a49[_0xd6d3(0x254)](_0x126497,_0x761144);},'mMLfO':function(_0x12f2a6,_0x19be61){return _0x12f2a6(_0x19be61);},'vlpfu':_0x130a49[_0xd6d3(0x255)],'flhGa':function(_0xc6561d,_0x23b020){return _0x130a49[_0xd6d3(0x256)](_0xc6561d,_0x23b020);},'wuYsg':'KZhKB','JzwCk':function(_0x82b2d1){return _0x130a49[_0xd6d3(0x257)](_0x82b2d1);}};setTimeout(()=>{const _0x5661ea={'kkkSa':function(_0x5c133b,_0x1f2b0b){return _0x2c881d['SXhXm'](_0x5c133b,_0x1f2b0b);},'GbOsq':function(_0x22bb1c,_0x5b87ea){return _0x2c881d['mMLfO'](_0x22bb1c,_0x5b87ea);},'Fcplq':_0x2c881d['vlpfu']};_0x51bab0(![]);if(!_0x213a7d){if(_0x2c881d['flhGa'](_0x2c881d[_0xd6d3(0x258)],_0xd6d3(0x259)))_0x2c881d[_0xd6d3(0x25a)](_0x59d958);else{_0x137bef[_0xd6d3(0x14a)](_0xd6d3(0x25b)+_0x2cf53d[_0xd6d3(0x228)]+'\x20existing\x20connections\x20-\x20skipping\x20to\x20consent'),_0x5661ea[_0xd6d3(0x25c)](_0x3fc792,!![]),_0x5661ea[_0xd6d3(0x25c)](_0x240b60,_0x507a66['map'](_0x1b1dee=>_0x1b1dee[_0xd6d3(0xad)])),_0x5661ea[_0xd6d3(0x25d)](_0x511a4b,_0x5661ea[_0xd6d3(0x25e)]),(0x0,_0x2d3f47['triggerHaptic'])(_0x1aed7c['HapticType']['SUCCESS']);return;}}},0x64);});}},_0x27645e=()=>{if(_0x130a49[_0xd6d3(0x25f)](_0x130a49[_0xd6d3(0x260)],_0xd6d3(0x5d))){(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]);if(primaryAuthOnly){console[_0xd6d3(0x14a)](_0x130a49['gGcpa']),_0x130a49[_0xd6d3(0x262)](_0x53b440,_0xd6d3(0x263));return;}console[_0xd6d3(0x14a)](_0x130a49['fyune']),_0x53b440(_0x130a49[_0xd6d3(0x152)]);}else _0x1c15ea[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x264)]);},_0xbee958=async _0x53425f=>{(0x0,_haptics['triggerHaptic'])(_haptics[_0xd6d3(0x23e)]['BUTTON_PRESS']),_0x130a49['FHKYl'](_0x417b6c,!![]),_0x6abdcc('');try{if(_0x130a49[_0xd6d3(0x265)](_0x53425f,_0x130a49[_0xd6d3(0x266)])){if(_0x130a49[_0xd6d3(0x1cb)](_0x130a49[_0xd6d3(0x267)],_0x130a49[_0xd6d3(0x267)]))return(0x0,_0x4683df[_0xd6d3(0x1a2)])(_0x35d7da);else{const _0x1620a1=_0xd6d3(0x268)[_0xd6d3(0x1c7)]('|');let _0xf9809c=0x0;while(!![]){switch(_0x1620a1[_0xf9809c++]){case'0':await(0x0,_jwtStorageService[_0xd6d3(0x269)])(_0x130a49[_0xd6d3(0x26a)]);continue;case'1':return;case'2':await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x16b)](_0x130a49[_0xd6d3(0x26b)],_0x130a49[_0xd6d3(0x26c)]);continue;case'3':_0x53b440(_0x130a49['YXLbN']);continue;case'4':console[_0xd6d3(0x14a)](_0xd6d3(0x26d));continue;case'5':_0x417b6c(![]);continue;case'6':_0x130a49[_0xd6d3(0x18a)](_0x3f2b7b,_0x53425f);continue;}break;}}}if(_0x53425f===_0xd6d3(0x26e)){const _0x27f245=_0xd6d3(0x26f)[_0xd6d3(0x1c7)]('|');let _0x2bc3b9=0x0;while(!![]){switch(_0x27f245[_0x2bc3b9++]){case'0':console[_0xd6d3(0x14a)](_0x130a49['sjDVK']);continue;case'1':_0x130a49[_0xd6d3(0x262)](_0x417b6c,![]);continue;case'2':_0x130a49[_0xd6d3(0x270)](_0x3f2b7b,_0x130a49['TKytj']);continue;case'3':return;case'4':_0x53b440('verification');continue;}break;}}console[_0xd6d3(0x14a)]('📧\x20Sending\x20verification\x20code\x20to:',_0x53425f);const _0x1a029a=await(0x0,_authService[_0xd6d3(0x271)])(_0x53425f);_0x1a029a['success']?(console[_0xd6d3(0x14a)](_0xd6d3(0x272)),_0x130a49['mGXjM'](_0x3f2b7b,_0x53425f),_0x130a49[_0xd6d3(0x273)](_0x53b440,_0x130a49['hzNXw'])):(console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x274)],_0x1a029a[_0xd6d3(0x18f)]),_0x130a49[_0xd6d3(0x275)](_0x6abdcc,_0x1a029a[_0xd6d3(0x18f)]||_0x130a49[_0xd6d3(0x276)]));}catch(_0x3752e2){if(_0x130a49[_0xd6d3(0x14e)](_0x130a49[_0xd6d3(0x277)],_0x130a49[_0xd6d3(0x277)])){_0x18297c[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x278)],_0x1c5e0b);if(_0x41653a[_0xd6d3(0x279)]){const _0x2212c7=_0x130a49[_0xd6d3(0x27a)]['split']('|');let _0x262ae8=0x0;while(!![]){switch(_0x2212c7[_0x262ae8++]){case'0':_0x331455[_0xd6d3(0x1d4)]&&_0xa02c61[_0xd6d3(0x14a)](_0xd6d3(0x77));continue;case'1':_0x3cfcde[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1ac)],_0xd45e02[_0xd6d3(0x1d3)]);continue;case'2':_0x4a5839[_0xd6d3(0x14a)](_0xd6d3(0x1d7),_0x890f4a[_0xd6d3(0x27b)]);continue;case'3':_0x3b280d['log']('💾\x20Storage\x20method:',_0x287367['storage']);continue;case'4':_0x3ca600[_0xd6d3(0x1ce)]&&_0x2bb4ae[_0xd6d3(0x1cf)](_0x4fa009[_0xd6d3(0x1ce)])&&_0x26f1d4[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1ab)],_0x1b5418['databases'][_0xd6d3(0x27c)](',\x20'));continue;case'5':_0x5a259f[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x27d)],_0x56fad1['message']);continue;}break;}}_0x130a49[_0xd6d3(0x1a4)](_0x315f7b,!![]),_0x130a49[_0xd6d3(0x18a)](_0x52617d,_0x130a49[_0xd6d3(0x27e)]),_0x130a49[_0xd6d3(0x27f)](_0xd46cc7,0x64),_0x130a49[_0xd6d3(0x280)](_0x5099ce);}else console['error'](_0x130a49[_0xd6d3(0x1a3)],_0x3752e2),_0x130a49['zQmed'](_0x6abdcc,_0x130a49['Npcbm']);}finally{_0x130a49[_0xd6d3(0x24e)](_0x417b6c,![]);}},_0x482958=async()=>{const _0x389861={'bsUfi':_0x130a49[_0xd6d3(0x281)],'SqtZw':_0x130a49[_0xd6d3(0x282)],'qYvvb':_0x130a49['gGcpa'],'YWMZu':function(_0x1f90fe,_0x10e876){return _0x1f90fe(_0x10e876);},'MPUCk':_0x130a49[_0xd6d3(0x143)],'dRDLn':_0x130a49[_0xd6d3(0x283)],'fTBJD':function(_0x2a12b6,_0x34a01d){return _0x130a49['ZQoSs'](_0x2a12b6,_0x34a01d);},'rsfDj':_0x130a49[_0xd6d3(0x152)]};(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]),_0x417b6c(!![]),_0x130a49[_0xd6d3(0x1b1)](_0x6abdcc,'');try{if(_0x130a49[_0xd6d3(0x284)](_0x130a49[_0xd6d3(0x285)],_0x130a49[_0xd6d3(0x286)])){console['log'](_0xd6d3(0x287));const _0x2db203=await(0x0,_googleAuthService[_0xd6d3(0x288)])();if(_0x2db203[_0xd6d3(0x289)]&&_0x2db203[_0xd6d3(0x28a)]){if(_0x130a49[_0xd6d3(0x284)](_0x130a49[_0xd6d3(0x28b)],_0x130a49['eCihZ'])){const _0x352e8c=_0xd6d3(0x28c)[_0xd6d3(0x1c7)]('|');let _0x343117=0x0;while(!![]){switch(_0x352e8c[_0x343117++]){case'0':_0x5b9950[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1e7)]);continue;case'1':if(!_0xd8a134)throw new _0x1298db(_0x130a49[_0xd6d3(0x28d)]);continue;case'2':_0x41b6d6['log'](_0xd6d3(0x28e));continue;case'3':_0x42ab28['log'](_0x130a49[_0xd6d3(0x28f)],_0x232a25);continue;case'4':_0x4de434[_0xd6d3(0x14a)](_0x130a49['yzXCG']);continue;case'5':_0x31bd4c[_0xd6d3(0x14a)](_0x130a49['CYFWW'],(_0x130a49[_0xd6d3(0x151)](_0x4e9c0b,null)||_0x130a49[_0xd6d3(0x154)](_0x4409b0,void 0x0)?void 0x0:_0x3914fc['substring'](0x0,0x14))+_0xd6d3(0x15f));continue;}break;}}else{console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x290)],_0x2db203[_0xd6d3(0x28a)][_0xd6d3(0x171)]),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x291)],_0x2db203[_0xd6d3(0x292)]),_0x130a49[_0xd6d3(0x293)](_0x3f2b7b,_0x2db203[_0xd6d3(0x28a)]['email']);const _0x4fc108=_0x2db203[_0xd6d3(0x28a)][_0xd6d3(0x172)]||_0x2db203[_0xd6d3(0x28a)][_0xd6d3(0x171)][_0xd6d3(0x1c7)]('@')[0x0];_0x130a49[_0xd6d3(0x193)](_0x5e6fc3,_0x4fc108);if(_0x130a49[_0xd6d3(0x265)](_0x2db203[_0xd6d3(0x292)],![])){if(_0xd6d3(0x294)===_0x130a49[_0xd6d3(0x295)]){_0x2adbf8['error'](_0x389861['bsUfi']);throw new _0xab6ca3(_0x389861[_0xd6d3(0x296)]);}else{console['log'](_0x130a49[_0xd6d3(0x297)]);try{const _0x1f246d=await(0x0,_connectedAccountsService[_0xd6d3(0x298)])(_0x2db203[_0xd6d3(0x28a)][_0xd6d3(0x171)],_0x2db203[_0xd6d3(0x28a)]['id'],_0x4fc108);if(_0x1f246d&&_0x130a49[_0xd6d3(0x299)](_0x1f246d[_0xd6d3(0x228)],0x0)){if(_0x130a49[_0xd6d3(0x29a)]===_0x130a49[_0xd6d3(0x29a)]){console[_0xd6d3(0x14a)]('✅\x20Found\x20'+_0x1f246d[_0xd6d3(0x228)]+_0xd6d3(0x29b)),_0x130a49[_0xd6d3(0x1fa)](_0x138d9d,!![]),_0x130a49[_0xd6d3(0x29c)](_0x221275,_0x1f246d['map'](_0x3f1c02=>_0x3f1c02[_0xd6d3(0xad)])),_0x130a49[_0xd6d3(0x1a9)](_0x53b440,_0x130a49[_0xd6d3(0x255)]),(0x0,_haptics['triggerHaptic'])(_haptics[_0xd6d3(0x23e)]['SUCCESS']);return;}else _0x1916bb[_0xd6d3(0x14a)](_0xd6d3(0x29d),_0x286e25),_0x130a49[_0xd6d3(0x184)](_0x43bb3d,_0xd6d3(0x29e)+_0x5848f2+'/3)');}else console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x264)]);}catch(_0x158963){console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x147)],_0x158963);}}}_0x130a49[_0xd6d3(0x29f)](_0x53b440,_0x130a49[_0xd6d3(0x143)]),(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x2a0)]);}}else _0x2db203['cancelled']?console['log'](_0x130a49[_0xd6d3(0x2a1)]):_0x130a49[_0xd6d3(0x2a2)](_0x130a49[_0xd6d3(0x2a3)],_0x130a49[_0xd6d3(0x2a4)])?(_0x130a49['xoczK'](_0x6abdcc,_0x2db203[_0xd6d3(0x18f)]||_0x130a49['KSUaS']),(0x0,_haptics['triggerHaptic'])(_haptics[_0xd6d3(0x23e)]['ERROR'])):(_0x782cbf[_0xd6d3(0x14a)]('❌\x20Returning\x20user\x20declined\x20consent'),_0x4607ee());}else _0x1fa896[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x2a5)],_0x3f2d83);}catch(_0x37e35e){if(_0x130a49[_0xd6d3(0x2a6)](_0xd6d3(0x2a7),_0xd6d3(0x2a8))){(0x0,_0x65695['triggerHaptic'])(_0x398be0[_0xd6d3(0x23e)][_0xd6d3(0x261)]);if(_0x43fb24){_0x3a56c1['log'](_0x389861[_0xd6d3(0x2a9)]),_0x389861['YWMZu'](_0x3604a7,_0x389861[_0xd6d3(0x2aa)]);return;}_0x23ff1e[_0xd6d3(0x14a)](_0x389861[_0xd6d3(0x2ab)]),_0x389861['fTBJD'](_0x32480e,_0x389861[_0xd6d3(0x2ac)]);}else console[_0xd6d3(0x11)](_0xd6d3(0x2ad),_0x37e35e),_0x130a49[_0xd6d3(0x2ae)](_0x6abdcc,_0x37e35e[_0xd6d3(0x18f)]||_0x130a49['KSUaS']),(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x23f)]),_0x6abdcc(_0x130a49[_0xd6d3(0x1fb)]);}finally{_0x417b6c(![]);}},_0x1da089=async _0x1b37a9=>{(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]),_0x417b6c(!![]),_0x130a49[_0xd6d3(0x2af)](_0x6abdcc,'');try{if(_0x130a49[_0xd6d3(0x284)](_0x130a49['BvzHS'],'KVKYb')){if(_0x130a49[_0xd6d3(0x2b0)](_0x2e0042,_0x130a49[_0xd6d3(0x2b1)])){console[_0xd6d3(0x14a)](_0x130a49['ZVvUP']),_0x130a49[_0xd6d3(0x2b2)](_0x53b440,_0x130a49[_0xd6d3(0x143)]),_0x417b6c(![]);return;}console[_0xd6d3(0x14a)](_0x130a49['ZLhMc'],_0x2e0042,_0x1b37a9),console['log'](_0x130a49[_0xd6d3(0x2b3)],_0x26db82);const _0x11f8db=await(0x0,_authService[_0xd6d3(0x2b4)])(_0x2e0042,_0x1b37a9);if(_0x11f8db['success']){var _0x5c14d2,_0x5937f4,_0x4cda27,_0x1752ca;console[_0xd6d3(0x14a)](_0xd6d3(0x2b5)),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2b6)],{'isNewUser':_0x11f8db[_0xd6d3(0x292)],'flowType':_0x11f8db[_0xd6d3(0x2b7)],'hasExistingData':_0x130a49[_0xd6d3(0x2b8)](_0x5c14d2=_0x11f8db[_0xd6d3(0x2b9)],null)||_0x130a49[_0xd6d3(0x2ba)](_0x5c14d2,void 0x0)?void 0x0:_0x5c14d2[_0xd6d3(0x2bb)],'connectionsCount':(_0x130a49['HkYHl'](_0x5937f4=_0x11f8db[_0xd6d3(0x2b9)],null)||_0x130a49['doySp'](_0x5937f4,void 0x0)||_0x130a49[_0xd6d3(0x2bc)](_0x5937f4=_0x5937f4[_0xd6d3(0x2bd)],null)||_0x130a49['ivMcT'](_0x5937f4,void 0x0)?void 0x0:_0x5937f4[_0xd6d3(0x228)])||0x0});const _0x5b66c4=_0x130a49[_0xd6d3(0x2be)](_0x11f8db[_0xd6d3(0x292)],![])||_0x11f8db['flowType']===_0x130a49[_0xd6d3(0x2bf)],_0x55af70=_0x130a49[_0xd6d3(0x2c0)](_0x4cda27=_0x11f8db[_0xd6d3(0x2b9)],null)||_0x130a49[_0xd6d3(0x2c1)](_0x4cda27,void 0x0)?void 0x0:_0x4cda27[_0xd6d3(0x2bd)],_0x1a8844=Array['isArray'](_0x55af70)?_0x55af70:[],_0x57cfe3=_0x1a8844[_0xd6d3(0x173)](_0x3ce817=>_0x3ce817&&(_0x3ce817[_0xd6d3(0x2c2)]||_0x3ce817[_0xd6d3(0x2c3)]==='active'))[_0xd6d3(0x2c4)](_0x45551e=>_0x45551e===null||_0x45551e===void 0x0?void 0x0:_0x45551e[_0xd6d3(0xad)])[_0xd6d3(0x173)](Boolean);console[_0xd6d3(0x14a)]('🔍\x20Returning\x20user\x20check:',{'isReturning':_0x5b66c4,'connectedPlatformNames':_0x57cfe3,'showWelcomeBack':_0x130a49[_0xd6d3(0x252)](_0x1752ca=_0x11f8db[_0xd6d3(0x2c5)],null)||_0x1752ca===void 0x0?void 0x0:_0x1752ca[_0xd6d3(0x2c6)]}),_0x5b66c4&&_0x130a49[_0xd6d3(0x299)](_0x57cfe3[_0xd6d3(0x228)],0x0)?(console[_0xd6d3(0x14a)](_0x130a49['HhNyf']),_0x130a49[_0xd6d3(0x2c7)](_0x138d9d,!![]),_0x221275(_0x57cfe3),_0x53b440(_0xd6d3(0x5a))):(console['log']('🆕\x20New\x20user\x20or\x20no\x20existing\x20connections,\x20showing\x20platform\x20connection\x20screen'),_0x130a49[_0xd6d3(0x2af)](_0x138d9d,![]),_0x130a49[_0xd6d3(0x2c8)](_0x221275,[]),_0x130a49['WGYGc'](_0x53b440,_0x130a49[_0xd6d3(0x143)]));}else console[_0xd6d3(0x14a)](_0xd6d3(0x36),_0x11f8db[_0xd6d3(0x18f)]),_0x130a49[_0xd6d3(0x2c9)](_0x6abdcc,_0x11f8db[_0xd6d3(0x18f)]||'Invalid\x20verification\x20code.\x20Please\x20try\x20again.');}else _0x545c79[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2ca)]);}catch(_0x2b31eb){_0x130a49[_0xd6d3(0x2cb)]!==_0xd6d3(0x2cc)?_0x130a49[_0xd6d3(0x2cd)](_0x2fef43,null):(console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x2ce)],_0x2b31eb),_0x130a49[_0xd6d3(0x2c7)](_0x6abdcc,_0x130a49[_0xd6d3(0x2cf)]));}finally{_0x130a49['yoPCc'](_0x417b6c,![]);}},_0x4343df=()=>{(0x0,_haptics['triggerHaptic'])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]),_0x130a49[_0xd6d3(0x2d0)](_0x6abdcc,''),_0x130a49['EbJpn'](_0x53b440,_0x130a49['DKpJM']);},_0x36b8ce=async()=>{(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)]['BUTTON_PRESS']),console[_0xd6d3(0x14a)](_0x130a49['NyoNJ']);try{const _0x508738=_0x130a49[_0xd6d3(0x2d1)]['split']('|');let _0x1d392a=0x0;while(!![]){switch(_0x508738[_0x1d392a++]){case'0':_0x130a49[_0xd6d3(0x2d2)](_0x3f2b7b,'');continue;case'1':_0x130a49[_0xd6d3(0x2d3)](_0x567a15,null);continue;case'2':_0x53b440(_0x130a49[_0xd6d3(0x152)]);continue;case'3':_0x915318(null);continue;case'4':_0x130a49[_0xd6d3(0x2d4)](_0x6abdcc,'');continue;case'5':_0x130a49[_0xd6d3(0x2d0)](_0x138d9d,![]);continue;case'6':await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x2d5)]([_0x130a49[_0xd6d3(0x2d6)],_0x130a49[_0xd6d3(0x2d7)],_0x130a49['gZwaU'],_0x130a49[_0xd6d3(0x2d8)],_0x130a49['FqNnG'],_0x130a49[_0xd6d3(0x26b)]]);continue;case'7':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2d9)]);continue;case'8':_0x221275([]);continue;}break;}}catch(_0x398f58){console[_0xd6d3(0x11)](_0x130a49['RgDxi'],_0x398f58),_0x130a49['SYOul'](_0x53b440,_0xd6d3(0x23));}},_0x1c18f7=async()=>{if(_0x130a49[_0xd6d3(0x2da)]===_0x130a49[_0xd6d3(0x2da)]){(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]),_0x417b6c(!![]),_0x130a49[_0xd6d3(0x248)](_0x6abdcc,'');try{console[_0xd6d3(0x14a)](_0x130a49['SqGLD'],_0x2e0042);const _0x131444=await(0x0,_authService[_0xd6d3(0x271)])(_0x2e0042);_0x131444['success']?_0x130a49['ZQbXa'](_0x130a49[_0xd6d3(0x2db)],_0xd6d3(0x2dc))?console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2dd)]):(_0x51ecd0[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2de)],_0x36c9e4,_0x130a49[_0xd6d3(0x2df)]),_0x545ec3(!![])):_0x130a49[_0xd6d3(0x2e0)](_0x6abdcc,_0x131444['message']||_0xd6d3(0xa8));}catch(_0x4e6aa8){if(_0x130a49[_0xd6d3(0x148)](_0x130a49[_0xd6d3(0x2e1)],_0xd6d3(0x2e2)))console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x1e8)],_0x4e6aa8),_0x130a49[_0xd6d3(0x2e3)](_0x6abdcc,_0x130a49[_0xd6d3(0x1e9)]);else{_0x160bc1[_0xd6d3(0x14a)](_0xd6d3(0x2e4),_0xd25af5[_0xd6d3(0x18f)]),_0x3c0b7f[_0xd6d3(0x14a)](_0xd6d3(0xc4),_0x4e2ebd[_0xd6d3(0x2e5)]);if(_0x539740[_0xd6d3(0x2e5)]){const _0x331f4d='6|3|0|1|2|5|4'[_0xd6d3(0x1c7)]('|');let _0x14f81b=0x0;while(!![]){switch(_0x331f4d[_0x14f81b++]){case'0':_0x32ce6b['log'](_0x130a49[_0xd6d3(0x2e6)],_0x1bb0ed[_0xd6d3(0x2e5)]['compression']);continue;case'1':_0x1708ab[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1ac)],_0x1b824a[_0xd6d3(0x2e5)]['encryption']);continue;case'2':_0x43de90['log'](_0x130a49['XFuKe'],_0x118f70[_0xd6d3(0x2e5)][_0xd6d3(0x2e7)]);continue;case'3':_0x40b847['log']('💾\x20Storage\x20method:',_0x344ecb[_0xd6d3(0x2e5)][_0xd6d3(0x1d1)]);continue;case'4':_0x30e548[_0xd6d3(0x14a)](_0x130a49['JlISt'],_0x5811f0[_0xd6d3(0x2e5)]['queryScores']);continue;case'5':_0x190822[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2e8)],_0x2901b6['features']['databases']);continue;case'6':_0xc4542a[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2e9)],_0x35c790[_0xd6d3(0x2e5)][_0xd6d3(0x27b)]);continue;}break;}}_0x130a49['zttIr'](_0x4b01d2,_0xd6d3(0xc6)),_0x130a49['EsMlr'](_0x4d582a,0x19);}}finally{if(_0x130a49[_0xd6d3(0x2ea)](_0x130a49[_0xd6d3(0x2eb)],_0x130a49[_0xd6d3(0x2ec)])){var _0x563dca;_0x4bd487[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x2ed)],_0x3280b5);const _0xa5e9a5=(_0x130a49['zXeph'](_0x2cf25c,null)||_0x130a49[_0xd6d3(0x243)](_0x2b759d,void 0x0)||(_0x563dca=_0x5dac91[_0xd6d3(0x171)])===null||_0x563dca===void 0x0?void 0x0:_0x563dca[_0xd6d3(0x1c7)]('@')[0x0])||(_0x130a49[_0xd6d3(0x17a)](_0x41ec86,null)||_0x4ac34d===void 0x0?void 0x0:_0x15686e['name'])||_0x130a49[_0xd6d3(0x2ee)];_0x130a49[_0xd6d3(0x2ef)](_0x4966d8,{'username':_0xa5e9a5,'email':(_0x130a49[_0xd6d3(0x2f0)](_0x44d702,null)||_0x130a49[_0xd6d3(0x2f1)](_0x18e163,void 0x0)?void 0x0:_0x38de40[_0xd6d3(0x171)])||null,'id':null}),_0x165e1e(_0xa5e9a5);}else _0x130a49[_0xd6d3(0x2f2)](_0x417b6c,![]);}}else{const _0x49c66d=_0x130a49['SHHPv'][_0xd6d3(0x1c7)]('|');let _0x1d5d9d=0x0;while(!![]){switch(_0x49c66d[_0x1d5d9d++]){case'0':_0x130a49[_0xd6d3(0x2f3)](_0x2c8c17,_0x130a49['hzNXw']);continue;case'1':return;case'2':_0x54ab34[_0xd6d3(0x14a)]('🧪\x20Test\x20bypass\x20detected\x20-\x20skipping\x20to\x20verification\x20screen');continue;case'3':_0x130a49['NcUfA'](_0x2cee07,![]);continue;case'4':_0x130a49[_0xd6d3(0x2f4)](_0x37fbb7,'test@example.com');continue;}break;}}},_0xd06cfe=async _0x372f22=>{const _0x4569d3={'zBsfv':_0x130a49['uqcAK'],'AEGXO':function(_0x353a3e,_0x106042){return _0x130a49[_0xd6d3(0x2f5)](_0x353a3e,_0x106042);},'RjrXn':function(_0x119444,_0x1cd6d7){return _0x130a49[_0xd6d3(0x24e)](_0x119444,_0x1cd6d7);},'MzwvF':function(_0x4f00f1){return _0x130a49[_0xd6d3(0x2f6)](_0x4f00f1);}};(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x2a0)]),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2f7)],_0x372f22);try{const [_0x2bbdb5,_0x41151e,_0x54f10a]=await Promise[_0xd6d3(0x2f8)]([(0x0,_authService[_0xd6d3(0x2f9)])(),_asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x130a49[_0xd6d3(0x2fa)]),(0x0,_authService[_0xd6d3(0x217)])()]);console[_0xd6d3(0x14a)](_0x130a49['GMfAb']),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2fb)],_0x2bbdb5?_0x2bbdb5[_0xd6d3(0x2fc)](0x0,0x14)+_0xd6d3(0x15f):'NO'),console['log']('📧\x20[SDK]\x20Email\x20available:',_0x130a49['haQiG'](_0x41151e,'NO')),_0x35de15['current']=!![];const _0x2f4cb5={'connectedPlatforms':_0x372f22};_0x41151e&&(_0x130a49[_0xd6d3(0x284)](_0xd6d3(0x2fd),_0x130a49[_0xd6d3(0x2fe)])?(_0x2f4cb5[_0xd6d3(0x171)]=_0x41151e,_0x2f4cb5[_0xd6d3(0x172)]=_0x54f10a||_0x41151e[_0xd6d3(0x1c7)]('@')[0x0]):(_0x3d015f[_0xd6d3(0x11)](_0x4569d3[_0xd6d3(0x2ff)],_0x31b3c5[_0xd6d3(0x11)]),_0x4569d3[_0xd6d3(0x300)](_0x37252c,_0xd6d3(0x301)+(_0x57b6ba[_0xd6d3(0x11)]||_0xd6d3(0xc8))),_0x4569d3['RjrXn'](_0x35fa91,!![]),_0x4569d3[_0xd6d3(0x302)](_0x4272e1)));if(_0x130a49['UqZxG'](_0x2bbdb5,_0x41151e))console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x303)]),await(_0x130a49[_0xd6d3(0x304)](_0x44fc01,null)||_0x130a49[_0xd6d3(0x305)](_0x44fc01,void 0x0)?void 0x0:_0x44fc01(_api[_0xd6d3(0x306)]['BASE_URL'],_0x2bbdb5,_0x2f4cb5));else _0x41151e?(console[_0xd6d3(0x14a)](_0x130a49['dahGr']),await(_0x130a49[_0xd6d3(0x2be)](_0x44fc01,null)||_0x130a49[_0xd6d3(0x252)](_0x44fc01,void 0x0)?void 0x0:_0x130a49['cfOVA'](_0x44fc01,_api['API_CONFIG'][_0xd6d3(0x307)],'',_0x2f4cb5))):(console[_0xd6d3(0x308)](_0xd6d3(0x309)),await(_0x44fc01===null||_0x130a49[_0xd6d3(0x30a)](_0x44fc01,void 0x0)?void 0x0:_0x130a49[_0xd6d3(0x30b)](_0x44fc01,_api[_0xd6d3(0x306)][_0xd6d3(0x307)],'',_0x2f4cb5)));}catch(_0x2512bd){if(_0x130a49[_0xd6d3(0x2b0)](_0x130a49['LJQEK'],_0x130a49[_0xd6d3(0x30c)])){console['error'](_0x130a49['IeGCj'],_0x2512bd);const _0x59f5cd=await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x130a49[_0xd6d3(0x2fa)])['catch'](()=>null);await(_0x130a49[_0xd6d3(0x2f0)](_0x44fc01,null)||_0x130a49[_0xd6d3(0x30d)](_0x44fc01,void 0x0)?void 0x0:_0x130a49[_0xd6d3(0x30e)](_0x44fc01,_api[_0xd6d3(0x306)][_0xd6d3(0x307)],'',{'connectedPlatforms':_0x372f22,..._0x130a49[_0xd6d3(0x30f)](_0x59f5cd,{'email':_0x59f5cd})}));}else _0x19a56c(![]),_0x34244d[_0xd6d3(0x157)]=![];}console[_0xd6d3(0x14a)](_0xd6d3(0x310));},_0x3f9de7=async()=>{const _0x55067f={'DxZwG':function(_0x5d8a29,_0x44bd17){return _0x5d8a29(_0x44bd17);},'EHcRw':function(_0x5e7a12,_0x395809){return _0x5e7a12(_0x395809);},'Rplzl':function(_0x1bef6f,_0x38163b){return _0x130a49[_0xd6d3(0x311)](_0x1bef6f,_0x38163b);},'owirS':function(_0xe19f03,_0x332690){return _0x130a49[_0xd6d3(0x30d)](_0xe19f03,_0x332690);},'WeRNe':function(_0x1ebb36,_0x3e249d){return _0x130a49[_0xd6d3(0x312)](_0x1ebb36,_0x3e249d);}};(0x0,_haptics['triggerHaptic'])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]),console[_0xd6d3(0x14a)](_0x130a49['vFvXg']);try{const [_0x5bbf28,_0xe54ac5,_0x2102c2]=await Promise[_0xd6d3(0x2f8)]([(0x0,_authService[_0xd6d3(0x2f9)])(),_asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x130a49['gZwaU']),(0x0,_authService['getOnairosUsername'])()]);_0x35de15[_0xd6d3(0x157)]=!![];if(_0x130a49[_0xd6d3(0x313)](_0x5bbf28,_0xe54ac5))console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x314)]),await(_0x130a49[_0xd6d3(0x315)](_0x44fc01,null)||_0x130a49[_0xd6d3(0x316)](_0x44fc01,void 0x0)?void 0x0:_0x130a49[_0xd6d3(0x30b)](_0x44fc01,_api[_0xd6d3(0x306)][_0xd6d3(0x307)],_0x5bbf28,{'email':_0xe54ac5,'connectedPlatforms':[],'username':_0x2102c2||_0xe54ac5[_0xd6d3(0x1c7)]('@')[0x0],'skipped':!![]}));else{if(_0xd6d3(0x317)===_0x130a49[_0xd6d3(0x318)]){_0x13ad4a[_0xd6d3(0x11)]('Error\x20loading\x20initial\x20connection\x20status:',_0x59a37b),_0x55067f['DxZwG'](_0x490e0f,{}),_0x55067f['EHcRw'](_0xdb6e17,{}),_0x55067f[_0xd6d3(0x319)](_0x865f0d,{});const _0x53677e=(_0x55067f[_0xd6d3(0x31a)](_0x11abf3,null)||_0x55067f[_0xd6d3(0x31a)](_0x1706f6,void 0x0)?void 0x0:_0x1f8c3a['email'])||(_0x2b2a0c===null||_0x55067f[_0xd6d3(0x31b)](_0xfbd234,void 0x0)?void 0x0:_0xe7fbc8['name'])||_0xd6d3(0x245)+_0x1afae9[_0xd6d3(0x251)](_0x55067f[_0xd6d3(0x31c)](_0x3e856a[_0xd6d3(0x246)](),0x2710));_0x13582(_0x53677e);}else console[_0xd6d3(0x308)](_0x130a49[_0xd6d3(0x31d)]),await(_0x130a49['mUteb'](_0x44fc01,null)||_0x130a49[_0xd6d3(0x31e)](_0x44fc01,void 0x0)?void 0x0:_0x130a49[_0xd6d3(0x30b)](_0x44fc01,_api[_0xd6d3(0x306)]['BASE_URL'],'',{'connectedPlatforms':[],'skipped':!![]}));}}catch(_0x1ba643){_0x130a49[_0xd6d3(0x31f)]!==_0xd6d3(0x320)?(console['error'](_0x130a49[_0xd6d3(0x321)],_0x1ba643),await(_0x130a49[_0xd6d3(0x322)](_0x44fc01,null)||_0x44fc01===void 0x0?void 0x0:_0x44fc01(_api[_0xd6d3(0x306)][_0xd6d3(0x307)],'',{'connectedPlatforms':[],'skipped':!![]}))):(_0x23010b[_0xd6d3(0x14a)]('✅\x20Using\x20real\x20authentication\x20token\x20for\x20onComplete:',_0x5c678b[_0xd6d3(0x2fc)](0x0,0x1e)+_0xd6d3(0x15f)),_0x130a49[_0xd6d3(0x323)](_0x1d4e8a,null)||_0x130a49['yeRlv'](_0x4716e0,void 0x0)||_0x130a49[_0xd6d3(0x30b)](_0x399f9c,_0x1ff795['API_CONFIG'][_0xd6d3(0x307)],_0x4e703f,{'email':(_0x130a49[_0xd6d3(0x2f1)](_0x4f3eff,null)||_0x130a49[_0xd6d3(0x324)](_0x387457,void 0x0)?void 0x0:_0xb73645['email'])||'',..._0xe92032}));}console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x325)]);},_0x3323a9=async()=>{if(_0x130a49[_0xd6d3(0x326)]!==_0x130a49[_0xd6d3(0x327)]){console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x328)]),(0x0,_haptics['triggerHaptic'])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]);try{await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x16b)](_0x130a49[_0xd6d3(0x26b)],_0x130a49['lyKtm']),await(0x0,_jwtStorageService[_0xd6d3(0x269)])(_0x130a49['WNiIm']),console[_0xd6d3(0x14a)](_0xd6d3(0x329)),_0x130a49[_0xd6d3(0x32a)](_0xa4a041);}catch(_0x252eb1){console[_0xd6d3(0x11)](_0x130a49['ZsvBC'],_0x252eb1),_0x130a49[_0xd6d3(0x32b)](_0xa4a041);}}else return _0x2aef2a&&_0x1c1366[_0xd6d3(0x32c)]?_0x50505e:{'default':_0xeb1163};},_0x113aae=async _0x2ad0aa=>{const _0x5c4ee7={'bNSEX':_0x130a49[_0xd6d3(0x32d)]};(0x0,_haptics[_0xd6d3(0x23d)])(_haptics[_0xd6d3(0x23e)][_0xd6d3(0x261)]),_0xbd36ac(_0x2ad0aa);try{if(_0x130a49[_0xd6d3(0x32e)](_0x130a49[_0xd6d3(0x32f)],_0xd6d3(0x9f))){if((0x0,_platformAuthService[_0xd6d3(0x330)])(_0x2ad0aa)){if('fqwIn'===_0x130a49[_0xd6d3(0x331)]){const _0x514e03=_0xd6d3(0x332)['split']('|');let _0x29906c=0x0;while(!![]){switch(_0x514e03[_0x29906c++]){case'0':_0x3c2f10[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1f5)]);continue;case'1':_0x33f260(_0xf13346);continue;case'2':_0x130a49[_0xd6d3(0x254)](_0x123980,_0x590bdb);continue;case'3':_0x12655a(_0x130a49[_0xd6d3(0x255)]);continue;case'4':_0xae93ee['log'](_0x130a49[_0xd6d3(0x1f6)],_0x244bd5);continue;case'5':_0x130a49[_0xd6d3(0x333)](_0x19ac88,!![]);continue;}break;}}else{_0x33af9d(_0x2ad0aa);const _0x24543e=await(0x0,_platformAuthService[_0xd6d3(0x334)])(_0x2ad0aa,_0x47aca4);if(_0x24543e){if(_0x130a49[_0xd6d3(0x335)](_0x130a49[_0xd6d3(0x336)],_0x130a49[_0xd6d3(0x336)]))throw new _0x27a066(_0xd6d3(0x6b));else _0x4eb174(_0x4aed52=>({..._0x4aed52,[_0x2ad0aa]:{'userName':_0x47aca4,'connected':!![]}})),_0x130a49['YdsNW'](_0x13e2b6,_0x334851=>({..._0x334851,[_0x2ad0aa]:!![]})),_0x130a49[_0xd6d3(0x1f7)](_0x4937e5,_0x507794=>({..._0x507794,[_0x2ad0aa]:_0xd6d3(0x55)})),await _0x130a49[_0xd6d3(0x337)](_0x156441,_0x2ad0aa);}}}else{if(_0x130a49[_0xd6d3(0x338)](_0xd6d3(0x339),_0x130a49[_0xd6d3(0x33a)])){_0x5436ff[_0xd6d3(0x11)](_0x5c4ee7['bNSEX'],_0x2e6500),_0x15ac92('');throw _0x550521;}else{_0x130a49['Gaouq'](_0x33af9d,_0x2ad0aa);const _0x1315b8=await(0x0,_platformAuthService[_0xd6d3(0x33b)])(_0x2ad0aa,_0x47aca4);_0x1315b8&&(_0x130a49[_0xd6d3(0x262)](_0x4eb699,_0x1315b8),_0x130a49[_0xd6d3(0x33c)](_0x53b440,_0x130a49[_0xd6d3(0x1d8)]));}}}else _0x21ef65['log'](_0x130a49[_0xd6d3(0x33d)]),_0x130a49[_0xd6d3(0x2d0)](_0x4c8cd8,![]),_0x119cfd([]),_0x130a49[_0xd6d3(0x33e)](_0x110ec9,_0xd6d3(0x263));}catch(_0x219773){console[_0xd6d3(0x11)](_0xd6d3(0x33f)+_0x2ad0aa+':',_0x219773);}finally{if(_0x130a49['VNDQF']('XjvOD',_0xd6d3(0x340))){_0x310cb5[_0xd6d3(0x14a)](_0xd6d3(0x79)),_0x130a49[_0xd6d3(0x2e0)](_0x3f3531,_0xd6d3(0x263)),_0x130a49[_0xd6d3(0x341)](_0x177f0b,![]);return;}else _0x130a49['SXFhk'](_0xbd36ac,null);}},_0x4d27aa=(0x0,_react['useCallback'])(async _0x216ddf=>{const _0x4f8b2c={'NbRKj':function(_0x20a3de,_0x56ade5){return _0x130a49[_0xd6d3(0x342)](_0x20a3de,_0x56ade5);},'AqFLZ':function(_0x58a283){return _0x130a49['FLKWF'](_0x58a283);},'DCvgB':function(_0xfa9132,_0x33507e){return _0x130a49['xFtum'](_0xfa9132,_0x33507e);},'EbPfQ':function(_0x4d17c2,_0x28e3fb){return _0x130a49['aSYtE'](_0x4d17c2,_0x28e3fb);},'xkFZt':function(_0x7b9bdd,_0x2b156d){return _0x7b9bdd===_0x2b156d;},'fQSUh':function(_0x431f25,_0x2c5ba2){return _0x130a49[_0xd6d3(0x343)](_0x431f25,_0x2c5ba2);}};if(!_0x15fcac[_0x216ddf])try{if(_0x130a49[_0xd6d3(0x344)](_0x216ddf,_0xd6d3(0x345))){_0x130a49[_0xd6d3(0x346)](_0x13e2b6,_0x3cde41=>({..._0x3cde41,[_0x216ddf]:!_0x3cde41[_0x216ddf]})),_0x130a49['QotRT'](_0x4eb174,_0x480da6=>({..._0x480da6,[_0x216ddf]:{'userName':_0x216ddf+_0xd6d3(0x347),'connected':!![]}})),await _0x130a49['QotRT'](_0x156441,_0x216ddf);return;}if(_0x130a49[_0xd6d3(0x2b8)](_0x216ddf,_0x130a49[_0xd6d3(0x348)])||_0x130a49[_0xd6d3(0x349)](_0x216ddf,_0x130a49[_0xd6d3(0x34a)])){console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x34b)]);const _0x12c788={'userId':_0x130a49[_0xd6d3(0x34c)](_0x4d5af1,_0x47aca4),'email':_0x4d5af1||_0x47aca4+_0xd6d3(0x34d),'appName':_0x26db82,'timestamp':Date[_0xd6d3(0x34e)](),'data':{'conversations':[],'chatHistory':[],'preferences':{},'customData':{}},'accessToken':undefined,'refreshToken':undefined,'tokenExpiry':undefined},_0x4dd6fd=await(0x0,_llmDataStorage[_0xd6d3(0x34f)])(_0x12c788);if(_0x4dd6fd[_0xd6d3(0x289)]){if(_0x130a49['etrLZ']===_0x130a49['WXyNf'])_0x130a49[_0xd6d3(0x350)](_0x5b88e7,![]);else{const _0x143713=_0x130a49[_0xd6d3(0x351)][_0xd6d3(0x1c7)]('|');let _0x5bd195=0x0;while(!![]){switch(_0x143713[_0x5bd195++]){case'0':console['log']('✅\x20'+_0x216ddf+_0xd6d3(0x352));continue;case'1':_0x4eb174(_0x48071b=>({..._0x48071b,[_0x216ddf]:{'userName':_0x47aca4,'connected':!![],'connectionId':_0x4dd6fd[_0xd6d3(0x353)],'storedInBackend':!![]}}));continue;case'2':_0x13e2b6(_0xb4307b=>({..._0xb4307b,[_0x216ddf]:!![]}));continue;case'3':await _0x130a49[_0xd6d3(0x354)](_0x156441,_0x216ddf);continue;case'4':console[_0xd6d3(0x14a)]('📝\x20Connection\x20ID:',_0x4dd6fd[_0xd6d3(0x353)]);continue;case'5':console[_0xd6d3(0x14a)](_0x130a49['KPCCc']);continue;}break;}}}else throw new Error('Failed\x20to\x20send\x20LLM\x20data\x20to\x20backend:\x20'+_0x4dd6fd[_0xd6d3(0x18f)]);return;}if((0x0,_platformAuthService[_0xd6d3(0x330)])(_0x216ddf)){_0x130a49[_0xd6d3(0x355)](_0x33af9d,_0x216ddf);const _0x27cca3=await(0x0,_platformAuthService[_0xd6d3(0x334)])(_0x216ddf,_0x47aca4);_0x27cca3&&(_0x130a49['JVmCY'](_0x130a49[_0xd6d3(0x356)],_0x130a49[_0xd6d3(0x357)])?(_0x130a49[_0xd6d3(0x358)](_0x4eb174,_0x23d342=>({..._0x23d342,[_0x216ddf]:{'userName':_0x47aca4,'connected':!![]}})),_0x130a49[_0xd6d3(0x1f7)](_0x13e2b6,_0x45cb5f=>({..._0x45cb5f,[_0x216ddf]:!![]})),await _0x130a49['sAeVm'](_0x156441,_0x216ddf)):(_0x1a1f55['error'](_0xd6d3(0x359),_0x51443b),_0x4f8b2c[_0xd6d3(0x35a)](_0x34c5c8,_0xd6d3(0x10c)),_0x31e00c(!![]),_0x4f8b2c['AqFLZ'](_0x512067)));return;}_0x130a49['dZZad'](_0x33af9d,_0x216ddf);const _0x2ec4fd=await(0x0,_platformAuthService['initiateOAuth'])(_0x216ddf,_0x47aca4);_0x2ec4fd&&(_0x130a49['IgEgQ'](_0x4eb699,_0x2ec4fd),_0x53b440(_0x130a49['TkBkP']));}catch(_0x2ad581){console[_0xd6d3(0x11)]('Error\x20initiating\x20OAuth\x20for\x20'+_0x216ddf+':',_0x2ad581);return;}else{if(_0x130a49['fdMeT'](_0xd6d3(0x35b),_0xd6d3(0x35b)))_0x130a49[_0xd6d3(0x35c)](_0x13e2b6,_0x501178=>({..._0x501178,[_0x216ddf]:!_0x501178[_0x216ddf]})),_0x4eb174(_0x137197=>{const _0x50dcd7={..._0x137197};return delete _0x50dcd7[_0x216ddf],_0x50dcd7;});else{var _0x25fd77,_0x37e5c1,_0x4bd70b,_0x14f8d8;_0x48c9a5[_0xd6d3(0x14a)](_0xd6d3(0xe6),{'connected':(_0x25fd77=_0x40e04a[_0xd6d3(0x157)])===null||_0x25fd77===void 0x0?void 0x0:_0x25fd77[_0xd6d3(0x55)],'disconnected':_0x4f8b2c[_0xd6d3(0x35d)](_0x37e5c1=_0x413221[_0xd6d3(0x157)],null)||_0x4f8b2c[_0xd6d3(0x35d)](_0x37e5c1,void 0x0)?void 0x0:_0x37e5c1[_0xd6d3(0x56)],'id':_0x4f8b2c['EbPfQ'](_0x4bd70b=_0xc28e73['current'],null)||_0x4f8b2c[_0xd6d3(0x35e)](_0x4bd70b,void 0x0)?void 0x0:_0x4bd70b['id'],'engineConnected':_0x4f8b2c[_0xd6d3(0x35e)](_0x14f8d8=_0x2ad18e['current'],null)||_0x4f8b2c[_0xd6d3(0x35d)](_0x14f8d8,void 0x0)||_0x4f8b2c[_0xd6d3(0x35e)](_0x14f8d8=_0x14f8d8['io'],null)||_0x4f8b2c[_0xd6d3(0x35f)](_0x14f8d8,void 0x0)||_0x4f8b2c[_0xd6d3(0x360)](_0x14f8d8=_0x14f8d8[_0xd6d3(0x17b)],null)||_0x4f8b2c[_0xd6d3(0x35f)](_0x14f8d8,void 0x0)?void 0x0:_0x14f8d8[_0xd6d3(0x17c)]});}}},[_0x15fcac,_0x47aca4]),_0x137b3b=(0x0,_react[_0xd6d3(0x1df)])(_0x21f4a9=>{const _0x4da3ca={'QUwEG':_0x130a49[_0xd6d3(0x361)],'vxyPM':function(_0x49e113,_0x1be53c){return _0x49e113(_0x1be53c);},'oQcFn':_0x130a49['XzrZr'],'XfkSW':function(_0x33343b){return _0x33343b();}};if(_0x130a49[_0xd6d3(0x2a6)](_0x130a49[_0xd6d3(0x362)],_0x130a49[_0xd6d3(0x363)]))_0x38fe02[_0xd6d3(0x11)](_0x4da3ca[_0xd6d3(0x364)],_0x26703b['error']),_0x4da3ca['vxyPM'](_0x5aae74,_0xd6d3(0x301)+(_0x40eec2[_0xd6d3(0x11)]||_0x4da3ca[_0xd6d3(0x365)])),_0x4da3ca[_0xd6d3(0x366)](_0xda6f87,!![]),_0x4da3ca[_0xd6d3(0x367)](_0x1e6163);else try{const _0x457e9c=new URL(_0x21f4a9),_0x157d6b=_0x457e9c[_0xd6d3(0x220)][_0xd6d3(0xf)](_0x130a49[_0xd6d3(0x368)]),_0x288602=_0x457e9c[_0xd6d3(0x220)]['get'](_0x130a49[_0xd6d3(0x369)])||_0x46ebae;_0x130a49[_0xd6d3(0x36a)](_0x157d6b,_0x288602)&&(_0x130a49[_0xd6d3(0x36b)](_0x4eb174,_0x10d0a3=>({..._0x10d0a3,[_0x288602]:{'userName':_0x47aca4,'connected':!![]}})),_0x13e2b6(_0x21f825=>({..._0x21f825,[_0x288602]:!![]})),_0x130a49[_0xd6d3(0x36c)](_0x53b440,_0x130a49['DLZSi']));}catch(_0x151630){_0x130a49[_0xd6d3(0x36d)]!==_0x130a49[_0xd6d3(0x36d)]?_0x130a49['QvwrO'](_0x220d0f,_0x4921ac[_0xd6d3(0x18f)]||_0x130a49[_0xd6d3(0x36e)]):console[_0xd6d3(0x11)](_0x130a49['JLvvv'],_0x151630);}},[_0x46ebae,_0x47aca4]),_0x2d344f=(0x0,_react['useCallback'])(async _0x460cd5=>{const _0x37bc56={'WdYAG':_0x130a49['ecOgj']};if(_0x130a49[_0xd6d3(0x148)](_0x130a49[_0xd6d3(0x36f)],_0x130a49[_0xd6d3(0x36f)]))_0x1a0ecd[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x159)]),_0x53fa91[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x15a)],_0xe1da9c,_0x130a49[_0xd6d3(0x15b)]),_0x1fd7ba(_0xd6d3(0x370));else{console[_0xd6d3(0x14a)](_0xd6d3(0x371)+_0x46ebae+'\x20-\x20backend\x20callback\x20completed'),console[_0xd6d3(0x14a)](_0xd6d3(0x372),_0x460cd5);if(_0x46ebae){if(_0x130a49['KQYNf'](_0x130a49[_0xd6d3(0x373)],_0x130a49[_0xd6d3(0x374)])){const _0x27fc63=_0x130a49['lGiHA'][_0xd6d3(0x1c7)]('|');let _0x25b80e=0x0;while(!![]){switch(_0x27fc63[_0x25b80e++]){case'0':_0x130a49[_0xd6d3(0x375)](_0x4eb174,_0x1012fe=>({..._0x1012fe,[_0x46ebae]:{'userName':_0x47aca4,'connected':!![]}}));continue;case'1':await _0x156441(_0x46ebae);continue;case'2':_0x130a49['TddZx'](_0x13e2b6,_0x57c743=>({..._0x57c743,[_0x46ebae]:!![]}));continue;case'3':_0x130a49['iqkTX'](_0x4937e5,_0xe6da53=>({..._0xe6da53,[_0x46ebae]:'connected'}));continue;case'4':console[_0xd6d3(0x14a)](_0xd6d3(0x376)+_0x46ebae);continue;case'5':console[_0xd6d3(0x14a)](_0xd6d3(0x377)+_0x46ebae+_0xd6d3(0x378));continue;}break;}}else return _0x2136ec['warn'](_0x37bc56[_0xd6d3(0x379)],_0x302e9a),null;}console[_0xd6d3(0x14a)](_0xd6d3(0x37a)),_0x130a49['LArlq'](_0x4eb699,''),_0x130a49[_0xd6d3(0x37b)](_0x53b440,_0xd6d3(0x37c));}},[_0x46ebae,_0x47aca4,_0x156441]),_0x151bd3=(0x0,_react[_0xd6d3(0x1df)])(async _0x2d668f=>{const _0x5ee87f=_0x130a49[_0xd6d3(0x37d)][_0xd6d3(0x1c7)]('|');let _0x566122=0x0;while(!![]){switch(_0x5ee87f[_0x566122++]){case'0':(0x0,_pinStorageUtils[_0xd6d3(0x37e)])(_0x2d668f);continue;case'1':console['log'](_0x130a49[_0xd6d3(0x37f)]);continue;case'2':_0x130a49[_0xd6d3(0x380)](_0x5c724e,_0x2d668f);continue;case'3':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x381)]);continue;case'4':if(_0x5b36e9&&_0x46d188){console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x382)]);try{await _0x130a49[_0xd6d3(0x383)](_0x4174d9,_0x2d668f),_0x130a49['QiheC'](_0x53b440,_0x130a49[_0xd6d3(0x384)]);}catch(_0x20511f){console['error'](_0x130a49['sohyT'],_0x20511f),_0x130a49[_0xd6d3(0x385)](_0x53b440,_0x130a49[_0xd6d3(0x384)]),_0x130a49['qgzpF'](_0x64e260,_0xd6d3(0x386)),_0x130a49[_0xd6d3(0x387)](_0x1f50f4,!![]);}}else console[_0xd6d3(0x14a)](_0xd6d3(0x388)),_0x53b440(_0x130a49[_0xd6d3(0x384)]),_0x64e260(_0x130a49[_0xd6d3(0x389)]),_0x130a49['bUxke'](_0x1f50f4,!![]);continue;}break;}},[_0x5b36e9,_0x46d188]),_0x172150=async(_0x3c84c8,_0x1e2c39)=>{const _0x38b058={'ANGXJ':_0x130a49['cQKra'],'lCWFM':_0x130a49['ecOgj'],'WMwJC':_0x130a49[_0xd6d3(0x38a)],'BbMiX':_0x130a49[_0xd6d3(0x38b)],'XZLUr':_0x130a49[_0xd6d3(0x38c)],'szkgA':function(_0x34f0ed){return _0x130a49[_0xd6d3(0x32b)](_0x34f0ed);}};if(_0x130a49['odeMu']===_0x130a49['odeMu'])try{_0x130a49[_0xd6d3(0x38d)](_0x64e260,_0x130a49[_0xd6d3(0x38e)]),_0x130a49[_0xd6d3(0x1b1)](_0x222b21,0xf);const _0x5710ec=_0x1e2c39||await(0x0,_jwtStorageService[_0xd6d3(0x38f)])();if(!_0x5710ec){if(_0x130a49['yeRlv'](_0x130a49[_0xd6d3(0x390)],_0x130a49[_0xd6d3(0x391)]))_0x3bddd7[_0xd6d3(0x14a)](_0x38b058[_0xd6d3(0x392)]),_0x139f0c['current'][_0xd6d3(0x103)](),_0x42d27f['current']=null;else{console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x393)]);throw new Error(_0xd6d3(0x6e));}}console['log'](_0xd6d3(0x394),_0x3c84c8),console['log'](_0x130a49[_0xd6d3(0x395)],_0x5710ec?_0x5710ec['substring'](0x0,0x14)+_0xd6d3(0x15f):_0xd6d3(0x160));const _0x3fa340=await(0x0,_authService[_0xd6d3(0x217)])(),_0x7cb46e=_0x3fa340||(_0x130a49[_0xd6d3(0x2f1)](_0x3a5c50,null)||_0x130a49[_0xd6d3(0x32e)](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50[_0xd6d3(0x172)])||(_0x3a5c50===null||_0x3a5c50===void 0x0?void 0x0:_0x3a5c50[_0xd6d3(0x219)])||_0x47aca4||_0x130a49[_0xd6d3(0x2ee)],_0x5610e7=await _asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x130a49['fMqHb']),_0x2c0bde=_0x5610e7?JSON[_0xd6d3(0x226)](_0x5610e7):[];console['log'](_0x130a49[_0xd6d3(0x396)],_0x2c0bde);const _0x1f5235=await(0x0,_pinEncryptionService[_0xd6d3(0x397)])()[_0xd6d3(0x398)](_0x2f057d=>{return console[_0xd6d3(0x308)](_0x38b058[_0xd6d3(0x399)],_0x2f057d),null;}),_0x55926b={'socketId':_0x3c84c8,'username':_0x7cb46e,'email':(_0x130a49['ZzNmZ'](_0x3a5c50,null)||_0x130a49[_0xd6d3(0x252)](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50[_0xd6d3(0x171)])||null,'modelKey':null,'connectedPlatforms':_0x2c0bde,'platformConnections':_0xd25f2,..._0x130a49[_0xd6d3(0x39a)](_0x1f5235,{'encryptedPin':_0x1f5235,'hasPinData':!![]})};console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x39b)],_0x55926b);const _0x13a598=await(0x0,_mobileTrainingService[_0xd6d3(0x39c)])(_0x55926b);console['log'](_0x130a49[_0xd6d3(0x39d)],_0x13a598);if(_0x13a598[_0xd6d3(0x39e)]||_0x130a49['mWZth'](_0x13a598[_0xd6d3(0xac)],_0x130a49[_0xd6d3(0x39f)])){console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x3a0)]),_0x130a49[_0xd6d3(0x3a1)](_0x4c1e9a,_0x130a49[_0xd6d3(0x39f)]),_0x130a49[_0xd6d3(0x193)](_0x4f5556,_0x13a598),_0x130a49['sKzLY'](_0x158533,!![]),_0x130a49['EbJpn'](_0x64e260,_0x130a49[_0xd6d3(0x3a2)]),_0x1f50f4(!![]),_0x130a49['bTNwh'](_0x1e1f44);return;}if(_0x13a598[_0xd6d3(0x289)]){console['log'](_0xd6d3(0x2e4),_0x13a598[_0xd6d3(0x18f)]),console['log'](_0x130a49[_0xd6d3(0x3a3)],_0x13a598[_0xd6d3(0x2e5)]);if(_0x13a598[_0xd6d3(0x2e5)]){if(_0x130a49[_0xd6d3(0x3a4)](_0x130a49[_0xd6d3(0x3a5)],_0x130a49[_0xd6d3(0x3a6)])){const _0x48b71f=_0x130a49[_0xd6d3(0x3a7)][_0xd6d3(0x1c7)]('|');let _0x460542=0x0;while(!![]){switch(_0x48b71f[_0x460542++]){case'0':console[_0xd6d3(0x14a)](_0xd6d3(0x3a8),_0x13a598[_0xd6d3(0x2e5)][_0xd6d3(0x3a9)]);continue;case'1':console[_0xd6d3(0x14a)](_0xd6d3(0x40),_0x13a598['features']['encryption']);continue;case'2':console['log'](_0x130a49[_0xd6d3(0x3aa)],_0x13a598[_0xd6d3(0x2e5)][_0xd6d3(0x2e7)]);continue;case'3':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2e8)],_0x13a598[_0xd6d3(0x2e5)][_0xd6d3(0x1ce)]);continue;case'4':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2e6)],_0x13a598['features']['compression']);continue;case'5':console[_0xd6d3(0x14a)](_0xd6d3(0x8a),_0x13a598[_0xd6d3(0x2e5)][_0xd6d3(0x27b)]);continue;case'6':console[_0xd6d3(0x14a)](_0xd6d3(0x3ab),_0x13a598[_0xd6d3(0x2e5)][_0xd6d3(0x1d1)]);continue;}break;}}else{if(!_0x32c146&&_0x5c1b3f[_0xd6d3(0x157)]&&!_0x1c3861[_0xd6d3(0x157)][_0xd6d3(0x55)]){const _0x2586cb=_0xd6d3(0x3ac)[_0xd6d3(0x1c7)]('|');let _0x55013c=0x0;while(!![]){switch(_0x2586cb[_0x55013c++]){case'0':_0x1c19a7[_0xd6d3(0x11)](_0x38b058['WMwJC'],{'connected':_0x5d0bbb[_0xd6d3(0x157)][_0xd6d3(0x55)],'disconnected':_0x18868e[_0xd6d3(0x157)][_0xd6d3(0x56)],'id':_0x2cc1d3['current']['id']});continue;case'1':_0x3def2f[_0xd6d3(0x157)]&&(_0x12f374['current']['disconnect'](),_0x45d0ec['current']=null);continue;case'2':_0x436252(!![]);continue;case'3':_0x10db32(_0x38b058[_0xd6d3(0x3ad)]);continue;case'4':_0x55c169[_0xd6d3(0x11)](_0x38b058[_0xd6d3(0x3ae)]);continue;case'5':_0x38b058[_0xd6d3(0x3af)](_0x2f27ac);continue;}break;}}}}_0x130a49[_0xd6d3(0x2c7)](_0x64e260,_0x130a49['vWOvE']),_0x130a49['VmDNx'](_0x222b21,0x19);}else _0x130a49[_0xd6d3(0x3b0)](_0xd6d3(0xc7),_0x130a49[_0xd6d3(0x3b1)])?_0x590536[_0xd6d3(0x11)](_0xd6d3(0x33f)+_0x3d5915+':',_0x10d5be):(console['error'](_0x130a49[_0xd6d3(0x3b2)],_0x13a598[_0xd6d3(0x11)]),_0x130a49['mvBTr'](_0x64e260,'Error:\x20'+(_0x13a598['error']||_0x130a49[_0xd6d3(0x3b3)])),_0x130a49[_0xd6d3(0x3b4)](_0x1f50f4,!![]),_0x130a49[_0xd6d3(0x3b5)](_0x1e1f44));}catch(_0x12011f){console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x3b6)],_0x12011f),_0x130a49[_0xd6d3(0x3b7)](_0x64e260,'Error:\x20'+(_0x12011f instanceof Error?_0x12011f['message']:_0x130a49[_0xd6d3(0x3b8)])),_0x130a49['mFEky'](_0x1f50f4,!![]),_0x130a49['stORi'](_0x1e1f44);}else _0x130a49[_0xd6d3(0x3b9)](_0x165341,_0x2a50bb);},_0x4174d9=async _0x543e0b=>{const _0xa56078={'yXmXe':function(_0x3fedf9,_0x5c4bbf){return _0x130a49['cjAHa'](_0x3fedf9,_0x5c4bbf);}};try{console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1e5)]),console['log'](_0x130a49[_0xd6d3(0x395)],(_0x130a49[_0xd6d3(0x3ba)](_0x2c2d27,null)||_0x130a49[_0xd6d3(0x17a)](_0x2c2d27,void 0x0)?void 0x0:_0x2c2d27[_0xd6d3(0x2fc)](0x0,0x14))+_0xd6d3(0x15f));if(!_0x46d188){if(_0x130a49[_0xd6d3(0x3bb)](_0x130a49[_0xd6d3(0x3bc)],_0x130a49[_0xd6d3(0x3bd)]))_0x25958c=_0x130a49['iUvgj'];else throw new Error(_0x130a49[_0xd6d3(0x28d)]);}console[_0xd6d3(0x14a)](_0x130a49['yzXCG']),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x28f)],_0x46d188),console[_0xd6d3(0x14a)](_0x130a49['BIati']);}catch(_0x4dc705){if(_0x130a49['SEOWc'](_0x130a49[_0xd6d3(0x3be)],_0x130a49['XqtDs']))(0x0,_0x247d7a[_0xd6d3(0x1e0)])(_0x216b97)&&_0xa56078[_0xd6d3(0x3bf)](_0x5e30a4,_0x4140ba);else{console[_0xd6d3(0x11)](_0x130a49['GhKGp'],_0x4dc705);throw _0x4dc705;}}},_0x50a189=async()=>{const _0xd043d={'MHJqF':_0x130a49[_0xd6d3(0x3c0)],'IfAqo':function(_0x1e69d2,_0x1fa6f8){return _0x1e69d2(_0x1fa6f8);},'nzTgb':function(_0x282ced,_0x5c2784){return _0x130a49[_0xd6d3(0x2f5)](_0x282ced,_0x5c2784);},'oDFEs':_0x130a49[_0xd6d3(0x3c1)],'ndhYx':_0x130a49[_0xd6d3(0x3c2)],'WHrHe':function(_0x531bf2){return _0x531bf2();},'WRwLB':function(_0x5ebfdd,_0x889038){return _0x5ebfdd!==_0x889038;},'uJPce':_0x130a49[_0xd6d3(0x3c3)],'YYYPb':_0x130a49[_0xd6d3(0x3c4)],'PAfFI':_0x130a49[_0xd6d3(0x3c5)],'cxLFy':function(_0x5eabdd,_0x19f346){return _0x130a49[_0xd6d3(0x3c6)](_0x5eabdd,_0x19f346);},'zCjoE':function(_0x5b0ec5,_0x5a44b2){return _0x5b0ec5===_0x5a44b2;},'vDbHl':function(_0x22b40f,_0x80df9e){return _0x130a49[_0xd6d3(0x37b)](_0x22b40f,_0x80df9e);},'nnAok':function(_0x426178,_0x79f921){return _0x130a49['CiBCi'](_0x426178,_0x79f921);},'BMArg':_0x130a49[_0xd6d3(0x3c7)],'nYpyk':function(_0x220593,_0x1283bf){return _0x130a49[_0xd6d3(0x3c8)](_0x220593,_0x1283bf);},'EMLJS':_0x130a49[_0xd6d3(0x3c9)],'gYKmm':_0x130a49['uGkDk'],'ymEyo':_0x130a49[_0xd6d3(0x3ca)],'vsxjN':'Waiting\x20for\x20training\x20to\x20start\x20from\x20connector→PIN\x20transition','EKOkk':_0x130a49['pwetm'],'vMdIo':_0x130a49[_0xd6d3(0x3cb)],'ziLMG':_0x130a49[_0xd6d3(0x3cc)],'pbLUY':_0x130a49[_0xd6d3(0x3cd)],'OgtYQ':_0x130a49['pCZCJ'],'jYrjL':_0xd6d3(0xd1),'IXXgl':_0x130a49[_0xd6d3(0x3ce)],'zQVuD':function(_0x56778a,_0x210b90){return _0x56778a===_0x210b90;},'ClKsS':_0x130a49[_0xd6d3(0x3cf)],'jOJrD':_0x130a49[_0xd6d3(0x3d0)],'RnVmi':_0x130a49[_0xd6d3(0x3d1)],'IGKZp':function(_0x1519e7,_0x4d751b){return _0x130a49[_0xd6d3(0x3d2)](_0x1519e7,_0x4d751b);},'JYVgj':function(_0x375691,_0x3f70b2,_0x87c595,_0x30e1fd){return _0x130a49[_0xd6d3(0x3d3)](_0x375691,_0x3f70b2,_0x87c595,_0x30e1fd);},'KsgXJ':_0x130a49['KaMyX'],'OcMVz':_0x130a49['dUdje'],'sFCAy':_0xd6d3(0x3d4),'bKHQn':_0x130a49[_0xd6d3(0x3d5)],'cnkQP':_0xd6d3(0x3b),'QafAE':function(_0x33bfbb,_0x5f2bf5){return _0x130a49['KiihE'](_0x33bfbb,_0x5f2bf5);},'KVUmZ':_0x130a49['uVuZp'],'IooFW':_0x130a49[_0xd6d3(0x3d6)],'rTgGR':_0x130a49[_0xd6d3(0x3d7)],'SfWZG':function(_0x543dcc,_0x323304){return _0x130a49[_0xd6d3(0x2e3)](_0x543dcc,_0x323304);},'iEgJr':function(_0x4edd8f,_0x33ea5a){return _0x130a49[_0xd6d3(0x3d8)](_0x4edd8f,_0x33ea5a);},'lxdAw':_0x130a49[_0xd6d3(0x3d9)],'DPBGY':_0x130a49['qlnbh'],'hQSis':function(_0x3029e6,_0x5733bf){return _0x130a49[_0xd6d3(0x3da)](_0x3029e6,_0x5733bf);},'sWOJI':function(_0xb37c23){return _0x130a49[_0xd6d3(0x3db)](_0xb37c23);},'ASFnq':_0x130a49[_0xd6d3(0x3dc)],'bITJx':function(_0x2c9843,_0x2b8b9e){return _0x130a49[_0xd6d3(0x3dd)](_0x2c9843,_0x2b8b9e);}};_0x130a49[_0xd6d3(0x3de)](_0x222b21,0x0),_0x64e260(_0x130a49['ZjaQO']),_0x130a49['pUIjZ'](_0x38e2f9,![]),_0x1f50f4(![]),_0x130a49[_0xd6d3(0x3df)](_0x5618fc);try{if(_0x130a49[_0xd6d3(0x3e0)](_0x130a49[_0xd6d3(0x3e1)],_0x130a49[_0xd6d3(0x3e1)])){var _0x1b3cf9;console[_0xd6d3(0x14a)]('🚀\x20Starting\x20persona\x20creation...'),console[_0xd6d3(0x14a)](_0xd6d3(0x3e2));const _0xa3664e=await _0x130a49[_0xd6d3(0x3e3)](_0x20aaf3);if(!_0xa3664e){if(_0xd6d3(0x3e4)!=='dbeUl')throw new Error(_0x130a49[_0xd6d3(0x3e5)]);else _0x130a49[_0xd6d3(0x3e6)](_0x559822,_0xe9f19c['progress']),_0x130a49[_0xd6d3(0x270)](_0x40dfad,_0x5ef430[_0xd6d3(0x2c3)]||_0x130a49[_0xd6d3(0x3e7)]),_0x3a437b&&_0x130a49[_0xd6d3(0x299)](_0xc5cbc7[_0xd6d3(0x3e8)],0x1e)&&_0x39feb2(![]);}_0x567a15(_0xa3664e),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x3e9)],_0xa3664e[_0xd6d3(0x2fc)](0x0,0x14)+'...'),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x3ea)],_0xa3664e['length']);const _0x39f750=await(0x0,_jwtStorageService[_0xd6d3(0x38f)])();console['log'](_0x130a49['xTcgc'],_0x39f750?_0x39f750[_0xd6d3(0x2fc)](0x0,0x14)+_0xd6d3(0x15f):_0x130a49[_0xd6d3(0x3eb)]);if(!_0x3a5c50){if(_0x130a49[_0xd6d3(0x3ec)](_0x130a49['ZSEwG'],_0xd6d3(0xfe))){var _0x32a187;console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x3ed)]);const _0xf46225=await(0x0,_authService['getOnairosUsername'])(),_0x2ecbf4=_0xf46225||(_0x130a49[_0xd6d3(0x3ee)](_0x17b1c4,null)||_0x130a49[_0xd6d3(0x3ef)](_0x17b1c4,void 0x0)||_0x130a49['NCqfz'](_0x32a187=_0x17b1c4['email'],null)||_0x130a49[_0xd6d3(0x3f0)](_0x32a187,void 0x0)?void 0x0:_0x32a187[_0xd6d3(0x1c7)]('@')[0x0])||(_0x17b1c4===null||_0x130a49[_0xd6d3(0x3f1)](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4[_0xd6d3(0x219)])||_0x130a49[_0xd6d3(0x2ee)],_0x16e4ac={'username':_0x2ecbf4,'email':(_0x130a49['doySp'](_0x17b1c4,null)||_0x130a49['fvMCx'](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4['email'])||null,'id':null};_0x130a49[_0xd6d3(0x2d2)](_0x915318,_0x16e4ac),_0x5e6fc3(_0x2ecbf4),console[_0xd6d3(0x14a)](_0x130a49['LAaju'],_0x16e4ac),await new Promise(_0x358a62=>setTimeout(()=>_0x358a62(),0xc8));}else _0x2f8866[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x3f2)],_0x1b2fcf),_0x130a49[_0xd6d3(0x2be)](_0x4e9ee4,null)||_0x130a49[_0xd6d3(0x3f3)](_0x1d80eb,void 0x0)||_0x45934a(_0x5025a1[_0xd6d3(0x306)][_0xd6d3(0x307)],_0x130a49['DMtVJ'],{'email':(_0x130a49['Pmatt'](_0x51af1d,null)||_0x130a49['uhUGe'](_0x34b96b,void 0x0)?void 0x0:_0x2833d5[_0xd6d3(0x171)])||'',..._0x394f20});}const _0x1ee3eb=_0x130a49[_0xd6d3(0x3f4)](_0x3a5c50,{'username':_0x47aca4||(_0x130a49[_0xd6d3(0x3f5)](_0x17b1c4,null)||_0x130a49['rFXGa'](_0x17b1c4,void 0x0)||_0x130a49['Gjcky'](_0x1b3cf9=_0x17b1c4[_0xd6d3(0x171)],null)||_0x130a49[_0xd6d3(0x3c6)](_0x1b3cf9,void 0x0)?void 0x0:_0x1b3cf9[_0xd6d3(0x1c7)]('@')[0x0])||(_0x130a49[_0xd6d3(0x338)](_0x17b1c4,null)||_0x17b1c4===void 0x0?void 0x0:_0x17b1c4[_0xd6d3(0x219)])||_0xd6d3(0x3f6),'email':(_0x130a49[_0xd6d3(0x1ec)](_0x17b1c4,null)||_0x130a49[_0xd6d3(0x256)](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4[_0xd6d3(0x171)])||null,'id':null});if(!_0xa3664e){if(_0x130a49['YvcEI'](_0x130a49[_0xd6d3(0x3f7)],_0x130a49[_0xd6d3(0x3f7)])){const _0x356d12=_0xd043d[_0xd6d3(0x3f8)][_0xd6d3(0x1c7)]('|');let _0x578b51=0x0;while(!![]){switch(_0x356d12[_0x578b51++]){case'0':_0xd043d[_0xd6d3(0x3f9)](_0x222adc,!![]);continue;case'1':_0xd043d[_0xd6d3(0x3fa)](_0x553ca4,_0xd6d3(0xd5));continue;case'2':_0x496500[_0xd6d3(0x11)](_0xd043d[_0xd6d3(0x3fb)],_0x549934);continue;case'3':_0x30ec22[_0xd6d3(0x11)](_0xd043d[_0xd6d3(0x3fc)],{'message':_0xa996aa[_0xd6d3(0x18f)],'name':_0x1b5bd7[_0xd6d3(0x219)],'stack':_0x481128['stack'],'errorObject':_0x22daae});continue;case'4':_0xd043d[_0xd6d3(0x3fd)](_0x2929f0);continue;}break;}}else{console['error'](_0xd6d3(0x3fe));throw new Error(_0x130a49[_0xd6d3(0x282)]);}}console['log'](_0x130a49[_0xd6d3(0x3ff)]),console[_0xd6d3(0x14a)](_0x130a49['YIBKF'],_0x1ee3eb),console['log'](_0x130a49[_0xd6d3(0x400)],!!_0xa3664e),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x401)]),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x402)],_reactNative[_0xd6d3(0x403)]['OS']),console['log'](_0xd6d3(0x404)),_0x130a49['uDiFI'](_0x64e260,_0x130a49[_0xd6d3(0x405)]),_0x130a49[_0xd6d3(0x406)](_0x222b21,0x5),_0x481fa1[_0xd6d3(0x157)]=(0x0,_socket['io'])(_api[_0xd6d3(0x306)][_0xd6d3(0x307)],{'transports':['websocket',_0x130a49[_0xd6d3(0x407)]],'autoConnect':![],'timeout':0x3a98,'reconnection':!![],'reconnectionAttempts':0x3,'reconnectionDelay':0x3e8,'forceNew':!![]}),console['log'](_0x130a49['ajcin'],{'connected':_0x481fa1[_0xd6d3(0x157)][_0xd6d3(0x55)],'id':_0x481fa1['current']['id'],'disconnected':_0x481fa1[_0xd6d3(0x157)][_0xd6d3(0x56)]}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49['DLZSi'],()=>{if(_0xd043d[_0xd6d3(0x408)](_0xd043d[_0xd6d3(0x409)],_0xd043d[_0xd6d3(0x40a)])){var _0x4a4e08,_0x2e9ae3,_0x24c426,_0x51c570;console[_0xd6d3(0x14a)](_0xd6d3(0x40b)),console[_0xd6d3(0x14a)](_0xd043d[_0xd6d3(0x40c)],{'id':(_0x4a4e08=_0x481fa1[_0xd6d3(0x157)])===null||_0x4a4e08===void 0x0?void 0x0:_0x4a4e08['id'],'connected':(_0x2e9ae3=_0x481fa1['current'])===null||_0x2e9ae3===void 0x0?void 0x0:_0x2e9ae3[_0xd6d3(0x55)],'transport':(_0x24c426=_0x481fa1[_0xd6d3(0x157)])===null||_0x24c426===void 0x0||_0xd043d['cxLFy'](_0x24c426=_0x24c426['io'],null)||_0xd043d[_0xd6d3(0x40d)](_0x24c426,void 0x0)||(_0x24c426=_0x24c426[_0xd6d3(0x17b)])===null||_0x24c426===void 0x0||(_0x24c426=_0x24c426[_0xd6d3(0x40e)])===null||_0xd043d[_0xd6d3(0x40f)](_0x24c426,void 0x0)?void 0x0:_0x24c426['name']}),_0xd043d[_0xd6d3(0x410)](_0x2a817c,!![]),_0xd043d[_0xd6d3(0x411)](_0x64e260,_0xd043d[_0xd6d3(0x412)]),_0x222b21(0xa);const _0x3684c5=_0xd043d['zCjoE'](_0x51c570=_0x481fa1['current'],null)||_0xd043d[_0xd6d3(0x413)](_0x51c570,void 0x0)?void 0x0:_0x51c570['id'];console[_0xd6d3(0x14a)](_0xd043d['EMLJS'],_0x3684c5),_0x3684c5?(console['log'](_0xd043d[_0xd6d3(0x414)],_0xa3664e?_0xa3664e[_0xd6d3(0x2fc)](0x0,0x14)+'...':_0xd043d[_0xd6d3(0x415)]),console[_0xd6d3(0x14a)](_0xd6d3(0x161)),_0x64e260(_0xd043d['vsxjN'])):(console[_0xd6d3(0x11)](_0xd043d[_0xd6d3(0x416)]),_0x64e260(_0xd043d[_0xd6d3(0x417)]),_0x1f50f4(!![]),_0xd043d[_0xd6d3(0x3fd)](_0x1e1f44));}else _0x71a281['error'](_0xd6d3(0x11a),_0x28975d);}),_0x481fa1['current']['on'](_0x130a49[_0xd6d3(0x418)],_0x2c7772=>{var _0x24d681;console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x419)],_0x2c7772),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x3ce)],{'reason':_0x2c7772,'wasConnected':_0x11d651,'socketId':(_0x24d681=_0x481fa1[_0xd6d3(0x157)])===null||_0x130a49[_0xd6d3(0x252)](_0x24d681,void 0x0)?void 0x0:_0x24d681['id']}),_0x130a49[_0xd6d3(0x41a)](_0x2a817c,![]);}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49[_0xd6d3(0x41b)],_0x4449a7=>{console['log'](_0x130a49[_0xd6d3(0x2de)],_0x4449a7,_0x130a49[_0xd6d3(0x2df)]),_0x2a817c(!![]);}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49[_0xd6d3(0x41c)],_0x1367e8=>{const _0x16ed0d={'fJaro':_0xd043d[_0xd6d3(0x417)],'mafWM':function(_0x4e4d8a){return _0x4e4d8a();}};_0xd043d['WRwLB'](_0xd6d3(0x41d),_0xd043d[_0xd6d3(0x41e)])?(console[_0xd6d3(0x14a)](_0xd043d['pbLUY'],_0x1367e8),_0x64e260(_0xd6d3(0x29e)+_0x1367e8+_0xd6d3(0x41f))):(_0x24f9f5[_0xd6d3(0x11)]('❌\x20No\x20socket\x20ID\x20available\x20after\x20connection'),_0x3cc403(_0x16ed0d[_0xd6d3(0x420)]),_0xaadc0d(!![]),_0x16ed0d[_0xd6d3(0x421)](_0x587bee));}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49['fPdnW'],_0x283c95=>{console[_0xd6d3(0x11)](_0xd6d3(0x422),_0x283c95);}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49['lVoYl'],()=>{console[_0xd6d3(0x11)](_0xd043d['OgtYQ']),_0xd043d[_0xd6d3(0x3fa)](_0x64e260,_0xd6d3(0x423)),_0xd043d[_0xd6d3(0x411)](_0x1f50f4,!![]),_0xd043d[_0xd6d3(0x3fd)](_0x1e1f44);}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49['KtfCb'],_0x2936e7=>{if(_0x130a49[_0xd6d3(0x424)]===_0x130a49[_0xd6d3(0x425)]){var _0x5995a6;_0x3f408b[_0xd6d3(0x14a)](_0xd043d[_0xd6d3(0x426)],_0x2612ce),_0x4b476e[_0xd6d3(0x14a)](_0xd043d['IXXgl'],{'reason':_0x197058,'wasConnected':_0x3bd9b5,'socketId':(_0x5995a6=_0x441b54[_0xd6d3(0x157)])===null||_0xd043d[_0xd6d3(0x427)](_0x5995a6,void 0x0)?void 0x0:_0x5995a6['id']}),_0xd043d[_0xd6d3(0x410)](_0xcf611d,![]);}else{const _0x186b03=_0x130a49[_0xd6d3(0x428)]['split']('|');let _0x1b219a=0x0;while(!![]){switch(_0x186b03[_0x1b219a++]){case'0':_0x130a49[_0xd6d3(0x429)](_0x1f50f4,!![]);continue;case'1':_0x130a49['OPxhN'](_0x1e1f44);continue;case'2':_0x64e260(_0x130a49[_0xd6d3(0x3cb)]);continue;case'3':console[_0xd6d3(0x11)](_0x130a49['BZFCe'],{'message':_0x2936e7['message'],'name':_0x2936e7[_0xd6d3(0x219)],'stack':_0x2936e7[_0xd6d3(0x42a)],'errorObject':_0x2936e7});continue;case'4':console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x3c1)],_0x2936e7);continue;}break;}}}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49[_0xd6d3(0x42b)],_0x4f6f8e=>{console['log'](_0x130a49[_0xd6d3(0x42c)],_0x4f6f8e),_0x130a49['SnRxE'](_0x64e260,'Running\x20test\x20inference'),_0x130a49[_0xd6d3(0x29f)](_0x222b21,0x3c);}),_0x481fa1[_0xd6d3(0x157)]['on'](_0xd6d3(0x42d),_0x2f01d6=>{const _0xee1c73=_0xd043d[_0xd6d3(0x42e)][_0xd6d3(0x1c7)]('|');let _0x4b8a9c=0x0;while(!![]){switch(_0xee1c73[_0x4b8a9c++]){case'0':_0x22b8a3(_0x2f01d6['traits']);continue;case'1':console[_0xd6d3(0x14a)](_0xd043d['jOJrD'],_0x2f01d6);continue;case'2':_0xd043d['vDbHl'](_0x222b21,0x50);continue;case'3':_0xd043d[_0xd6d3(0x3fa)](_0x3514ec,_0x2f01d6[_0xd6d3(0x42f)]);continue;case'4':_0x64e260(_0xd043d[_0xd6d3(0x430)]);continue;}break;}}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49['giWnB'],_0x5b572b=>{console[_0xd6d3(0x14a)](_0xd6d3(0x5f),_0x5b572b),_0x5b572b[_0xd6d3(0x279)]&&(_0x130a49[_0xd6d3(0x431)](_0x130a49['qeAPI'],_0xd6d3(0xd9))?_0xd043d[_0xd6d3(0x3fa)](_0x34a017,_0x45e198['current']):(console['log'](_0x130a49[_0xd6d3(0x27d)],_0x5b572b[_0xd6d3(0x18f)]),console[_0xd6d3(0x14a)](_0xd6d3(0x3ab),_0x5b572b[_0xd6d3(0x1d1)]),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x1ac)],_0x5b572b['encryption']),console[_0xd6d3(0x14a)](_0xd6d3(0x1d7),_0x5b572b[_0xd6d3(0x27b)]),_0x5b572b[_0xd6d3(0x1ce)]&&Array[_0xd6d3(0x1cf)](_0x5b572b[_0xd6d3(0x1ce)])&&console[_0xd6d3(0x14a)]('🗄️\x20Databases\x20used:',_0x5b572b['databases'][_0xd6d3(0x27c)](',\x20')),_0x5b572b[_0xd6d3(0x1d4)]&&(_0x130a49['iGilm'](_0x130a49[_0xd6d3(0x432)],_0x130a49['DPhRo'])?console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2ca)]):_0xfcf6a2()))),_0x130a49[_0xd6d3(0x433)](_0x38e2f9,!![]),_0x130a49[_0xd6d3(0x434)](_0x64e260,_0x130a49[_0xd6d3(0x27e)]),_0x130a49[_0xd6d3(0x2b2)](_0x222b21,0x64),_0x1e1f44();}),_0x481fa1[_0xd6d3(0x157)]['on'](_0x130a49['weYos'],_0x2b9deb=>{console[_0xd6d3(0x14a)](_0x130a49['cEjWa'],_0x2b9deb);if(_0x2b9deb[_0xd6d3(0x11)]&&_0x2b9deb['error'][_0xd6d3(0x169)](_0x130a49['tICCD'])){console['log'](_0x130a49[_0xd6d3(0x435)]),_0x130a49[_0xd6d3(0x436)](_0x4c1e9a,null),_0x130a49[_0xd6d3(0x436)](_0x158533,![]),_0x130a49[_0xd6d3(0x341)](_0x64e260,_0x130a49[_0xd6d3(0x437)]),_0x130a49[_0xd6d3(0x438)](setTimeout,async()=>{const _0x28d707={'onnlP':function(_0x224a8d,_0xa295b0){return _0xd043d[_0xd6d3(0x439)](_0x224a8d,_0xa295b0);},'yDSyY':function(_0x1d88c4,_0xdc13c3){return _0xd043d[_0xd6d3(0x40f)](_0x1d88c4,_0xdc13c3);},'TNcET':function(_0x51b7a8,_0x4960da,_0x474346,_0xb1788c){return _0xd043d[_0xd6d3(0x43a)](_0x51b7a8,_0x4960da,_0x474346,_0xb1788c);},'oRItb':function(_0x232643,_0x2d16e0){return _0x232643==_0x2d16e0;},'RzuHy':_0xd043d[_0xd6d3(0x43b)]};try{console['log'](_0xd043d['OcMVz']);const _0x928f15=await(0x0,_platformAuthService['refreshYouTubeTokens'])();if(_0x928f15){if(_0xd043d[_0xd6d3(0x43c)]!==_0xd043d[_0xd6d3(0x43d)])console[_0xd6d3(0x14a)](_0xd043d[_0xd6d3(0x43e)]),_0xd043d['QafAE'](_0x64e260,_0xd043d[_0xd6d3(0x43f)]),_0xd043d[_0xd6d3(0x3f9)](_0x1f50f4,!![]);else{const _0x5d6ce9={'csPeD':function(_0x2ae045,_0x1362d6){return _0x28d707[_0xd6d3(0x440)](_0x2ae045,_0x1362d6);},'AyTOV':function(_0x260cc4,_0x53e690){return _0x28d707[_0xd6d3(0x441)](_0x260cc4,_0x53e690);},'uKaIv':function(_0x5cefaa,_0x5931d2){return _0x5cefaa!=_0x5931d2;},'OGIGR':function(_0x2fbf62,_0x2477eb){return _0x2fbf62!==_0x2477eb;},'FYIED':_0xd6d3(0x5),'AqwBa':function(_0x24a49a,_0x36d974,_0x24a89a,_0x3f81b7){return _0x28d707[_0xd6d3(0x442)](_0x24a49a,_0x36d974,_0x24a89a,_0x3f81b7);}};if(_0x28d707[_0xd6d3(0x443)](_0x28d707[_0xd6d3(0x444)],typeof _0x1f10b0))var _0x416347=new _0x4dce43(),_0x214994=new _0x4f1e52();return(_0x518658=function(_0x3e9469,_0x43b786){if(_0x5d6ce9[_0xd6d3(0x445)](!_0x43b786,_0x3e9469)&&_0x3e9469[_0xd6d3(0x32c)])return _0x3e9469;var _0x288e8f,_0x1ddc4f,_0x12e9ae={'__proto__':null,'default':_0x3e9469};if(_0x5d6ce9['AyTOV'](null,_0x3e9469)||_0x5d6ce9[_0xd6d3(0x446)](_0xd6d3(0x4),typeof _0x3e9469)&&'function'!=typeof _0x3e9469)return _0x12e9ae;if(_0x288e8f=_0x43b786?_0x214994:_0x416347){if(_0x288e8f['has'](_0x3e9469))return _0x288e8f[_0xd6d3(0xf)](_0x3e9469);_0x288e8f['set'](_0x3e9469,_0x12e9ae);}for(const _0x3ce0f0 in _0x3e9469)_0x5d6ce9[_0xd6d3(0x447)](_0x5d6ce9[_0xd6d3(0x448)],_0x3ce0f0)&&{}[_0xd6d3(0x449)][_0xd6d3(0x15)](_0x3e9469,_0x3ce0f0)&&((_0x1ddc4f=(_0x288e8f=_0x26dec5[_0xd6d3(0x0)])&&_0x24f009[_0xd6d3(0x16)](_0x3e9469,_0x3ce0f0))&&(_0x1ddc4f[_0xd6d3(0xf)]||_0x1ddc4f[_0xd6d3(0x10)])?_0x5d6ce9[_0xd6d3(0x44a)](_0x288e8f,_0x12e9ae,_0x3ce0f0,_0x1ddc4f):_0x12e9ae[_0x3ce0f0]=_0x3e9469[_0x3ce0f0]);return _0x12e9ae;})(_0x49733f,_0x2c5c9d);}}else{console[_0xd6d3(0x14a)](_0xd043d['IooFW']),_0xd043d['QafAE'](_0x64e260,_0xd043d[_0xd6d3(0x44b)]);try{await _0xd043d[_0xd6d3(0x44c)](_0x113aae,_0xd6d3(0x135)),console['log']('✅\x20YouTube\x20reconnected,\x20but\x20training\x20restart\x20disabled'),_0xd043d[_0xd6d3(0x44d)](_0x64e260,_0xd043d[_0xd6d3(0x44e)]),_0x1f50f4(!![]);}catch(_0x2e7de0){console[_0xd6d3(0x11)](_0xd043d[_0xd6d3(0x44f)],_0x2e7de0),_0xd043d[_0xd6d3(0x3fa)](_0x64e260,'YouTube\x20reconnection\x20failed.\x20Please\x20restart\x20from\x20connector\x20screen.'),_0xd043d[_0xd6d3(0x450)](_0x1f50f4,!![]),_0xd043d['sWOJI'](_0x1e1f44);}}}catch(_0x244615){console[_0xd6d3(0x11)](_0xd6d3(0x451),_0x244615),_0x64e260(_0xd043d[_0xd6d3(0x452)]),_0xd043d['hQSis'](_0x1f50f4,!![]),_0x1e1f44();}},0x3e8);return;}if(_0x2b9deb[_0xd6d3(0x39e)]||_0x130a49[_0xd6d3(0x323)](_0x2b9deb[_0xd6d3(0xac)],_0x130a49[_0xd6d3(0x39f)])){const _0x47b2d4=_0x130a49[_0xd6d3(0x453)][_0xd6d3(0x1c7)]('|');let _0x11186f=0x0;while(!![]){switch(_0x47b2d4[_0x11186f++]){case'0':_0x130a49[_0xd6d3(0x257)](_0x1e1f44);continue;case'1':_0x130a49[_0xd6d3(0x454)](_0x4c1e9a,_0x130a49[_0xd6d3(0x39f)]);continue;case'2':_0x130a49[_0xd6d3(0x455)](_0x64e260,'Connections\x20required');continue;case'3':_0x130a49['zTvvq'](_0x4f5556,_0x2b9deb);continue;case'4':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x456)]);continue;case'5':return;case'6':_0x130a49[_0xd6d3(0x457)](_0x1f50f4,!![]);continue;case'7':_0x130a49[_0xd6d3(0x18c)](_0x158533,!![]);continue;}break;}}if(_0x130a49['DofMS'](_0x2b9deb[_0xd6d3(0xac)],_0x130a49[_0xd6d3(0x458)])){if(_0x130a49['OfsBe']!==_0xd6d3(0x459)){const _0x3f58c6=_0x130a49[_0xd6d3(0x45a)][_0xd6d3(0x1c7)]('|');let _0x2ebd21=0x0;while(!![]){switch(_0x3f58c6[_0x2ebd21++]){case'0':_0x130a49[_0xd6d3(0x45b)](_0x158533,!![]);continue;case'1':_0x130a49['uLZyY'](_0x64e260,'No\x20interaction\x20data\x20found');continue;case'2':_0x130a49[_0xd6d3(0x45c)](_0x1f50f4,!![]);continue;case'3':return;case'4':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x45d)]);continue;case'5':_0x4c1e9a('NO_DATA');continue;case'6':_0x130a49[_0xd6d3(0x45e)](_0x1e1f44);continue;case'7':_0x130a49[_0xd6d3(0x45f)](_0x4f5556,_0x2b9deb[_0xd6d3(0x232)]);continue;}break;}}else _0x2a9210[_0xd6d3(0x145)]['timing'](_0x550e63,{'toValue':0x1,'duration':0x12c,'useNativeDriver':!![]})['start']();}if(_0x130a49['dUsaT'](_0x2b9deb[_0xd6d3(0xac)],_0xd6d3(0x47))){console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x460)]),_0x130a49[_0xd6d3(0x461)](_0x4c1e9a,_0x130a49[_0xd6d3(0x462)]),_0x4f5556(_0x2b9deb[_0xd6d3(0x232)]),_0x158533(!![]),_0x130a49[_0xd6d3(0x463)](_0x64e260,_0x130a49[_0xd6d3(0x464)]);return;}if(_0x2b9deb[_0xd6d3(0x11)])console['error'](_0xd6d3(0x465),_0x2b9deb[_0xd6d3(0x11)]),_0x130a49[_0xd6d3(0x466)](_0x64e260,_0xd6d3(0x301)+_0x2b9deb[_0xd6d3(0x11)]),_0x130a49[_0xd6d3(0x467)](_0x1f50f4,!![]),_0x1e1f44();else _0x2b9deb['progress']&&(_0x130a49[_0xd6d3(0x2ef)](_0x222b21,_0x2b9deb[_0xd6d3(0x3e8)]),_0x130a49[_0xd6d3(0x468)](_0x64e260,_0x2b9deb['status']||_0x130a49['ZtjOl']),_0x2a6f16&&_0x130a49[_0xd6d3(0x469)](_0x2b9deb[_0xd6d3(0x3e8)],0x1e)&&_0x158533(![]));}),console[_0xd6d3(0x14a)](_0xd6d3(0x46a)),console[_0xd6d3(0x14a)](_0xd6d3(0x46b),{'url':_api['API_CONFIG'][_0xd6d3(0x307)],'transports':[_0x130a49[_0xd6d3(0x46c)]],'autoConnect':![],'timeout':0x2710,'reconnection':![]}),_0x481fa1[_0xd6d3(0x157)][_0xd6d3(0x37c)](),console[_0xd6d3(0x14a)](_0x130a49['yUkYX']),_0x130a49['CJQHl'](setTimeout,()=>{const _0x337243={'hUsUh':_0x130a49['EKCmp'],'UMtEx':function(_0xcbe6c3,_0x31995c){return _0xcbe6c3&&_0x31995c;},'isROM':function(_0x4683e4,_0x97d069){return _0x130a49[_0xd6d3(0x46d)](_0x4683e4,_0x97d069);},'JBbtP':function(_0x5aea41,_0x3de23b){return _0x130a49[_0xd6d3(0x3d8)](_0x5aea41,_0x3de23b);},'FMSsC':_0x130a49[_0xd6d3(0x1ea)],'ntEiI':_0xd6d3(0xaf)};if(_0x130a49['agiPg']!==_0x130a49['agiPg'])try{const _0x86953b=new _0x4d3ab6(_0x76e7eb),_0x4e5a59=_0x86953b[_0xd6d3(0x220)][_0xd6d3(0xf)](_0x337243[_0xd6d3(0x46e)]),_0x4aae21=_0x86953b[_0xd6d3(0x220)]['get'](_0xd6d3(0xad))||_0x3d4350;_0x337243[_0xd6d3(0x46f)](_0x4e5a59,_0x4aae21)&&(_0x337243[_0xd6d3(0x470)](_0xb9a7fe,_0xe24d9b=>({..._0xe24d9b,[_0x4aae21]:{'userName':_0x18a39b,'connected':!![]}})),_0x337243[_0xd6d3(0x471)](_0xfaac8a,_0x1c213c=>({..._0x1c213c,[_0x4aae21]:!![]})),_0x337243[_0xd6d3(0x471)](_0x5cfddc,_0x337243['FMSsC']));}catch(_0x3df641){_0xe4b86f[_0xd6d3(0x11)](_0x337243[_0xd6d3(0x472)],_0x3df641);}else{var _0x28f4aa,_0x2db2bc,_0x540a46,_0x48a641;console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x473)],{'connected':_0x130a49[_0xd6d3(0x474)](_0x28f4aa=_0x481fa1[_0xd6d3(0x157)],null)||_0x130a49[_0xd6d3(0x475)](_0x28f4aa,void 0x0)?void 0x0:_0x28f4aa[_0xd6d3(0x55)],'disconnected':_0x130a49[_0xd6d3(0x476)](_0x2db2bc=_0x481fa1['current'],null)||_0x2db2bc===void 0x0?void 0x0:_0x2db2bc['disconnected'],'id':_0x130a49[_0xd6d3(0x25f)](_0x540a46=_0x481fa1[_0xd6d3(0x157)],null)||_0x130a49['CDggc'](_0x540a46,void 0x0)?void 0x0:_0x540a46['id'],'engineConnected':(_0x48a641=_0x481fa1['current'])===null||_0x130a49[_0xd6d3(0x477)](_0x48a641,void 0x0)||_0x130a49[_0xd6d3(0x2f0)](_0x48a641=_0x48a641['io'],null)||_0x48a641===void 0x0||_0x130a49[_0xd6d3(0x478)](_0x48a641=_0x48a641[_0xd6d3(0x17b)],null)||_0x130a49['YbNps'](_0x48a641,void 0x0)?void 0x0:_0x48a641[_0xd6d3(0x17c)]});}},0x3e8),_0x130a49[_0xd6d3(0x479)](setTimeout,()=>{if(_0x130a49[_0xd6d3(0x47a)]!==_0x130a49['PxtmL']){var _0x3b6fae,_0x31aac8,_0x4ad2c7,_0x15ae9d;console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x177)],{'connected':_0x130a49[_0xd6d3(0x475)](_0x3b6fae=_0x481fa1[_0xd6d3(0x157)],null)||_0x130a49['kvvLW'](_0x3b6fae,void 0x0)?void 0x0:_0x3b6fae['connected'],'disconnected':_0x130a49['HWKme'](_0x31aac8=_0x481fa1[_0xd6d3(0x157)],null)||_0x31aac8===void 0x0?void 0x0:_0x31aac8['disconnected'],'id':_0x130a49[_0xd6d3(0x47b)](_0x4ad2c7=_0x481fa1[_0xd6d3(0x157)],null)||_0x130a49['IjgBB'](_0x4ad2c7,void 0x0)?void 0x0:_0x4ad2c7['id'],'engineConnected':_0x130a49['TpaUU'](_0x15ae9d=_0x481fa1['current'],null)||_0x130a49[_0xd6d3(0x47c)](_0x15ae9d,void 0x0)||_0x130a49[_0xd6d3(0x1f9)](_0x15ae9d=_0x15ae9d['io'],null)||_0x130a49['uhUGe'](_0x15ae9d,void 0x0)||_0x130a49['FeoXZ'](_0x15ae9d=_0x15ae9d[_0xd6d3(0x17b)],null)||_0x130a49['RYviG'](_0x15ae9d,void 0x0)?void 0x0:_0x15ae9d[_0xd6d3(0x17c)]});}else{_0x213292[_0xd6d3(0x11)](_0xd6d3(0x47d)+_0x51b7f9+':',_0x5221d8);return;}},0x1388),_0x130a49[_0xd6d3(0x188)](setTimeout,()=>{const _0x5be920={'KTTpw':_0xd6d3(0x75)};if(_0x130a49[_0xd6d3(0x47e)](_0x130a49[_0xd6d3(0x47f)],_0x130a49[_0xd6d3(0x480)])){if(!_0x11d651&&_0x481fa1['current']&&!_0x481fa1[_0xd6d3(0x157)][_0xd6d3(0x55)]){const _0x1d0163=_0x130a49['pVRmn'][_0xd6d3(0x1c7)]('|');let _0x55b64d=0x0;while(!![]){switch(_0x1d0163[_0x55b64d++]){case'0':_0x1e1f44();continue;case'1':_0x130a49[_0xd6d3(0x481)](_0x1f50f4,!![]);continue;case'2':console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x38a)],{'connected':_0x481fa1[_0xd6d3(0x157)][_0xd6d3(0x55)],'disconnected':_0x481fa1[_0xd6d3(0x157)][_0xd6d3(0x56)],'id':_0x481fa1[_0xd6d3(0x157)]['id']});continue;case'3':console['error'](_0x130a49['kXKsW']);continue;case'4':_0x130a49[_0xd6d3(0x482)](_0x64e260,_0xd6d3(0xbc));continue;case'5':_0x481fa1['current']&&(_0x481fa1[_0xd6d3(0x157)][_0xd6d3(0x103)](),_0x481fa1[_0xd6d3(0x157)]=null);continue;}break;}}}else _0x5948b0[_0xd6d3(0x14a)](_0x5be920['KTTpw']);},0x4e20);}else return _0x255de7[_0xd6d3(0x14a)](_0xd6d3(0x118),_0x152665['substring'](0x0,0x14)+_0xd6d3(0x15f)),_0x7f6a36[_0xd6d3(0x14a)]('🔍\x20Token\x20length:',_0x3b822f[_0xd6d3(0x228)]),_0x3b1697;}catch(_0x26a21b){if(_0x130a49['YKZHN'](_0x130a49['izQTs'],_0xd6d3(0x10b)))console[_0xd6d3(0x11)](_0xd6d3(0x359),_0x26a21b),_0x130a49['cqjmQ'](_0x64e260,_0x130a49[_0xd6d3(0x483)]),_0x130a49[_0xd6d3(0x2c8)](_0x1f50f4,!![]),_0x130a49[_0xd6d3(0x32a)](_0x1e1f44);else{const _0x560745={'TFPDv':function(_0x37cb9c,_0x2c3b18){return _0xd043d[_0xd6d3(0x484)](_0x37cb9c,_0x2c3b18);},'efkTX':function(_0x10f846){return _0xd043d[_0xd6d3(0x485)](_0x10f846);}};_0x533abc(()=>{_0x560745[_0xd6d3(0x486)](_0x159cab,![]),!_0x26e54b&&_0x560745[_0xd6d3(0x487)](_0x5bccc4);},0x64);}}},_0x53ad20=_0xfe9d1=>{const _0x28e2ab={'gnbzf':_0x130a49[_0xd6d3(0x488)],'FHFsG':_0x130a49[_0xd6d3(0x3dc)],'UjPpA':function(_0x55da70,_0x5c1947){return _0x130a49['QeAOy'](_0x55da70,_0x5c1947);},'cebDI':function(_0x5666d1){return _0x5666d1();}};if(_0x2e8e91)return _0x130a49[_0xd6d3(0x489)];if(_0x4d546c)return _0x130a49[_0xd6d3(0x48a)];let _0x144a24='';if(_0x130a49[_0xd6d3(0x48b)](_0xfe9d1,0x14))_0x144a24=_0x130a49[_0xd6d3(0x48c)];else{if(_0x130a49['lAwnF'](_0xfe9d1,0x28))_0x144a24=_0x130a49[_0xd6d3(0x48d)];else{if(_0xfe9d1<0x3c)_0x144a24=_0x130a49[_0xd6d3(0x48e)];else{if(_0x130a49[_0xd6d3(0x48f)](_0xfe9d1,0x50))'KTuUv'===_0xd6d3(0x490)?_0x144a24=_0x130a49[_0xd6d3(0x491)]:(_0x5148ae['error'](_0x28e2ab[_0xd6d3(0x492)],_0x31339d),_0x15abe7(_0x28e2ab[_0xd6d3(0x493)]),_0x28e2ab[_0xd6d3(0x494)](_0x45c93c,!![]),_0x28e2ab[_0xd6d3(0x495)](_0x58e555));else _0x130a49['djZMO'](_0xfe9d1,0x5f)?_0x130a49[_0xd6d3(0x496)](_0x130a49['oexWv'],_0x130a49[_0xd6d3(0x497)])?_0x144a24=_0x130a49[_0xd6d3(0x498)]:_0x769b23[_0xd6d3(0x14a)](_0x130a49['pjGvE'],_0xd569a3[_0xd6d3(0x1ce)][_0xd6d3(0x27c)](',\x20')):_0x144a24=_0xd6d3(0x499);}}}return _0x130a49[_0xd6d3(0x49a)](_0x144a24,_0xc3dffd);},_0x4df8cd=async()=>{const _0x1c3ec7={'EqCGI':function(_0x9778c3,_0x5ce129){return _0x130a49[_0xd6d3(0x49b)](_0x9778c3,_0x5ce129);}};console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x49c)]);_0x481fa1['current']&&(_0x130a49[_0xd6d3(0x49d)](_0x130a49[_0xd6d3(0x49e)],_0x130a49[_0xd6d3(0x49e)])?(console['log'](_0x130a49[_0xd6d3(0x49f)]),_0x481fa1[_0xd6d3(0x157)]['disconnect'](),_0x481fa1[_0xd6d3(0x157)]=null):(_0x1c3ec7[_0xd6d3(0x4a0)](_0x381254,_0x18ac95=>({..._0x18ac95,[_0x18d1dd]:!_0x18ac95[_0x2fe14b]})),_0x333231(_0x52589a=>{const _0x2d63b9={..._0x52589a};return delete _0x2d63b9[_0x27c152],_0x2d63b9;})));(0x0,_pinStorageUtils[_0xd6d3(0x4a1)])(),_0x35de15[_0xd6d3(0x157)]=!![];try{if(_0x130a49[_0xd6d3(0x4a2)](_0x130a49['yDlbB'],_0x130a49[_0xd6d3(0x4a3)]))_0x51f2bd[_0xd6d3(0x157)]['disconnect'](),_0x526afd[_0xd6d3(0x157)]=null;else{const _0x27ffa8=await(0x0,_jwtStorageService[_0xd6d3(0x38f)])();if(_0x27ffa8)console['log'](_0x130a49['EJQFs'],_0x27ffa8[_0xd6d3(0x2fc)](0x0,0x1e)+_0xd6d3(0x15f)),_0x130a49[_0xd6d3(0x4a4)](_0x44fc01,null)||_0x130a49[_0xd6d3(0x4a5)](_0x44fc01,void 0x0)||_0x44fc01(_api[_0xd6d3(0x306)]['BASE_URL'],_0x27ffa8,{'email':(_0x3a5c50===null||_0x130a49[_0xd6d3(0x4a6)](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50[_0xd6d3(0x171)])||'',..._0x3a5c50});else{if(_0x130a49[_0xd6d3(0x4a7)](_0xd6d3(0x116),_0x130a49[_0xd6d3(0x4a8)]))console['error'](_0x130a49[_0xd6d3(0x4a9)]),_0x44fc01===null||_0x130a49[_0xd6d3(0x4aa)](_0x44fc01,void 0x0)||_0x44fc01(_api['API_CONFIG'][_0xd6d3(0x307)],_0x130a49[_0xd6d3(0x4ab)],{'email':(_0x3a5c50===null||_0x130a49['qaYWZ'](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50[_0xd6d3(0x171)])||'',..._0x3a5c50});else{_0x336708[_0xd6d3(0x11)](_0x130a49['qVgPo']);throw new _0x182f56(_0xd6d3(0x6e));}}}}catch(_0x50fa02){console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x3f2)],_0x50fa02),_0x44fc01===null||_0x130a49[_0xd6d3(0x4ac)](_0x44fc01,void 0x0)||_0x130a49[_0xd6d3(0x3d3)](_0x44fc01,_api[_0xd6d3(0x306)][_0xd6d3(0x307)],_0x130a49[_0xd6d3(0x4ab)],{'email':(_0x130a49[_0xd6d3(0x4ad)](_0x3a5c50,null)||_0x130a49[_0xd6d3(0x30d)](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50['email'])||'',..._0x3a5c50});}},_0x20aaf3=async()=>{try{const _0x41a4e4=await(0x0,_jwtStorageService[_0xd6d3(0x38f)])();if(_0x41a4e4&&_0x41a4e4[_0xd6d3(0x4ae)]()[_0xd6d3(0x228)]>0x14)return console['log'](_0x130a49[_0xd6d3(0x4af)],_0x41a4e4[_0xd6d3(0x2fc)](0x0,0x14)+_0xd6d3(0x15f)),console['log'](_0x130a49[_0xd6d3(0x3ea)],_0x41a4e4[_0xd6d3(0x228)]),_0x41a4e4;return console[_0xd6d3(0x308)](_0x130a49['oVADO']),console['warn'](_0xd6d3(0x4b0)),console['warn'](_0x130a49[_0xd6d3(0x4b1)]),null;}catch(_0x514c9d){console[_0xd6d3(0x11)]('❌\x20Error\x20checking\x20authentication\x20token:',_0x514c9d);throw _0x514c9d;}},_0xddb5c8=Object['values'](_0x15fcac)[_0xd6d3(0x4b2)](_0x4b58a9=>_0x4b58a9),_0x25bd36=()=>{const _0x246fe4={'uQZBA':function(_0x4c4d91,_0x411c67){return _0x130a49['sZurw'](_0x4c4d91,_0x411c67);},'glrMF':function(_0x4cc65b,_0x40132a){return _0x130a49[_0xd6d3(0x311)](_0x4cc65b,_0x40132a);}};if(_0xd6d3(0x4b3)!==_0x130a49[_0xd6d3(0x4b4)])_0xddb5c8&&((0x0,_haptics[_0xd6d3(0x23d)])(_haptics['HapticType'][_0xd6d3(0x261)]),console[_0xd6d3(0x14a)](_0xd6d3(0x4b5)),_0x130a49['stORi'](_0x13c6f3)[_0xd6d3(0x398)](_0x14ef56=>{console[_0xd6d3(0x11)](_0x130a49['EuoYp'],_0x14ef56);}),_0x130a49['eYiHG'](_0x53b440,_0x130a49[_0xd6d3(0x4b6)]));else{var _0x595803;_0x246fe4['uQZBA'](_0x447d72,![]),(_0x595803=_0x3a0a2d['current'])===null||_0x246fe4[_0xd6d3(0x4b7)](_0x595803,void 0x0)||_0x595803['call'](_0x138d12);}},_0x13c6f3=(0x0,_react[_0xd6d3(0x1df)])(async()=>{const _0xa933c9={'PPrPj':_0xd6d3(0xd8),'AKSZw':function(_0x5ba1c5,_0x4ec084){return _0x130a49[_0xd6d3(0x4b8)](_0x5ba1c5,_0x4ec084);},'SFrVt':_0x130a49[_0xd6d3(0x4b9)],'wZCaD':function(_0x41a6b4,_0xe1da8a){return _0x130a49[_0xd6d3(0x4ba)](_0x41a6b4,_0xe1da8a);},'oqvGW':function(_0x336f8f,_0x300baa){return _0x336f8f(_0x300baa);},'bLIJC':_0x130a49[_0xd6d3(0x4bb)]};if(_0x130a49[_0xd6d3(0x3a4)](_0x130a49['WXgKU'],_0x130a49[_0xd6d3(0x4bc)]))_0x51e5b5[_0xd6d3(0x14a)](_0xa933c9['PPrPj'],_0x1847ac),_0xa933c9['AKSZw'](_0x3ac2e5,_0xa933c9[_0xd6d3(0x4bd)]),_0xa933c9[_0xd6d3(0x4be)](_0x57022e,0x3c);else try{console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4bf)]),_0x130a49['fAVLC'](_0x43e775,_0x130a49[_0xd6d3(0x4c0)]);const _0x392050=await _0x130a49['kUYzK'](_0x20aaf3);if(!_0x392050)throw new Error(_0x130a49[_0xd6d3(0x4c1)]);console[_0xd6d3(0x14a)]('✅\x20[BACKGROUND]\x20Auth\x20token\x20ready:',_0x392050[_0xd6d3(0x2fc)](0x0,0x14)+_0xd6d3(0x15f)),_0x130a49[_0xd6d3(0x4c2)](_0x567a15,_0x392050);if(!_0x3a5c50){var _0x220081;const _0x388782=await(0x0,_authService[_0xd6d3(0x217)])(),_0xfbc5ce=_0x388782||(_0x130a49[_0xd6d3(0x4c3)](_0x17b1c4,null)||_0x130a49[_0xd6d3(0x4c4)](_0x17b1c4,void 0x0)||(_0x220081=_0x17b1c4[_0xd6d3(0x171)])===null||_0x130a49[_0xd6d3(0x4c5)](_0x220081,void 0x0)?void 0x0:_0x220081[_0xd6d3(0x1c7)]('@')[0x0])||(_0x130a49[_0xd6d3(0x304)](_0x17b1c4,null)||_0x130a49[_0xd6d3(0x4c6)](_0x17b1c4,void 0x0)?void 0x0:_0x17b1c4[_0xd6d3(0x219)])||_0x130a49[_0xd6d3(0x2ee)],_0x235bc9={'username':_0xfbc5ce,'email':(_0x17b1c4===null||_0x17b1c4===void 0x0?void 0x0:_0x17b1c4[_0xd6d3(0x171)])||null,'id':null};_0x130a49[_0xd6d3(0x454)](_0x915318,_0x235bc9),_0x130a49['dseja'](_0x5e6fc3,_0xfbc5ce),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4c7)],_0x235bc9);}console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4c8)]),_0x130a49[_0xd6d3(0x436)](_0x43e775,_0x130a49[_0xd6d3(0x4c9)]);const _0x388126=(0x0,_socket['io'])(_api['API_CONFIG'][_0xd6d3(0x307)],{'transports':[_0x130a49['hAijD'],_0x130a49[_0xd6d3(0x407)]],'autoConnect':![],'timeout':0x3a98,'reconnection':!![],'reconnectionAttempts':0x3,'reconnectionDelay':0x3e8,'forceNew':!![]});_0x388126['on'](_0x130a49['DLZSi'],async()=>{console['log'](_0x130a49[_0xd6d3(0x4ca)]);const _0x359b49=_0x388126['id'];_0x17a2f3(_0x130a49[_0xd6d3(0x34c)](_0x359b49,null)),_0x130a49[_0xd6d3(0x4cb)](_0x43e775,_0x130a49[_0xd6d3(0x4cc)]);if(_0x359b49){if(_0x130a49[_0xd6d3(0x476)](_0x130a49['gwUhv'],_0x130a49[_0xd6d3(0x4cd)]))await _0x130a49[_0xd6d3(0x479)](_0x28f9bf,_0x359b49,_0x392050);else throw new _0x1e4402(_0xd6d3(0x4ce)+_0x35aa5c[_0xd6d3(0x18f)]);}}),_0x388126['on'](_0x130a49[_0xd6d3(0x4cf)],_0x67d4d8=>{_0x67d4d8[_0xd6d3(0x3e8)]&&(_0xa933c9[_0xd6d3(0x4d0)](_0x43e775,_0x67d4d8[_0xd6d3(0x2c3)]||_0xd6d3(0x4d1)),console[_0xd6d3(0x14a)](_0xa933c9[_0xd6d3(0x4d2)],_0x67d4d8[_0xd6d3(0x3e8)],'%'));}),_0x388126['on'](_0x130a49[_0xd6d3(0x418)],()=>{console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4d3)]);}),_0x481fa1[_0xd6d3(0x157)]=_0x388126,_0x388126['connect'](),console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4d4)]);}catch(_0x4ba6d4){console['error'](_0x130a49[_0xd6d3(0x32d)],_0x4ba6d4),_0x130a49[_0xd6d3(0x262)](_0x43e775,'');throw _0x4ba6d4;}},[_0x3a5c50,_0x47aca4,_0x17b1c4]),_0x28f9bf=async(_0x48233e,_0x4453c6)=>{const _0x17fb8d={'kJeco':function(_0x42bf56,_0x523651){return _0x42bf56(_0x523651);},'Tutoz':function(_0x5d9bed){return _0x5d9bed();}};try{console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4d5)],_0x48233e),console['log'](_0xd6d3(0x43),_0x4453c6[_0xd6d3(0x2fc)](0x0,0x14)+_0xd6d3(0x15f));const _0x4a957e={'socketId':_0x48233e,'username':(_0x3a5c50===null||_0x130a49[_0xd6d3(0x4d6)](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50['username'])||(_0x130a49[_0xd6d3(0x4d7)](_0x3a5c50,null)||_0x130a49[_0xd6d3(0x4d8)](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50[_0xd6d3(0x219)])||_0x47aca4||_0x130a49['rQfNS'],'email':(_0x130a49[_0xd6d3(0x4ad)](_0x3a5c50,null)||_0x130a49[_0xd6d3(0x4d9)](_0x3a5c50,void 0x0)?void 0x0:_0x3a5c50[_0xd6d3(0x171)])||null,'modelKey':null,'connectedPlatforms':[],'platformConnections':{}};console[_0xd6d3(0x14a)](_0x130a49['FywJh'],_0x4a957e);const _0x46f3a5=await(0x0,_mobileTrainingService[_0xd6d3(0x39c)])(_0x4a957e);console['log'](_0x130a49[_0xd6d3(0x4da)],_0x46f3a5);if(_0x46f3a5[_0xd6d3(0x39e)]||_0x46f3a5[_0xd6d3(0xac)]===_0x130a49[_0xd6d3(0x39f)]){if(_0x130a49[_0xd6d3(0x4db)](_0x130a49[_0xd6d3(0x4dc)],_0xd6d3(0x128)))_0x17fb8d['kJeco'](_0x389332,'');else{const _0x257721=_0x130a49[_0xd6d3(0x4dd)][_0xd6d3(0x1c7)]('|');let _0x2ac24d=0x0;while(!![]){switch(_0x257721[_0x2ac24d++]){case'0':return;case'1':_0x130a49[_0xd6d3(0x4de)](_0x158533,!![]);continue;case'2':_0x130a49[_0xd6d3(0x4df)](_0x4c1e9a,_0xd6d3(0xc3));continue;case'3':_0x1f50f4(!![]);continue;case'4':_0x130a49['bTNwh'](_0x1e1f44);continue;case'5':_0x130a49['MJRMQ'](_0x4f5556,_0x46f3a5);continue;case'6':_0x130a49[_0xd6d3(0x3a1)](_0x64e260,_0x130a49[_0xd6d3(0x3a2)]);continue;case'7':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4e0)]);continue;}break;}}}if(_0x46f3a5[_0xd6d3(0x289)]){console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4e1)],_0x46f3a5[_0xd6d3(0x18f)]),console[_0xd6d3(0x14a)](_0x130a49['rotiM'],_0x46f3a5[_0xd6d3(0x2e5)]),_0x130a49[_0xd6d3(0x2ef)](_0xe874ea,!![]);if(_0x46f3a5[_0xd6d3(0x2e5)]){const _0x50d172=_0x130a49[_0xd6d3(0x4e2)][_0xd6d3(0x1c7)]('|');let _0xd54528=0x0;while(!![]){switch(_0x50d172[_0xd54528++]){case'0':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4e3)],_0x46f3a5[_0xd6d3(0x2e5)]['queryScores']);continue;case'1':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x3aa)],_0x46f3a5[_0xd6d3(0x2e5)][_0xd6d3(0x2e7)]);continue;case'2':console[_0xd6d3(0x14a)](_0xd6d3(0x40),_0x46f3a5[_0xd6d3(0x2e5)][_0xd6d3(0x1d3)]);continue;case'3':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x2e8)],_0x46f3a5[_0xd6d3(0x2e5)][_0xd6d3(0x1ce)]);continue;case'4':console['log'](_0x130a49[_0xd6d3(0x2e6)],_0x46f3a5[_0xd6d3(0x2e5)][_0xd6d3(0x4e4)]);continue;case'5':console[_0xd6d3(0x14a)](_0xd6d3(0x8a),_0x46f3a5['features'][_0xd6d3(0x27b)]);continue;case'6':console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x4e5)],_0x46f3a5[_0xd6d3(0x2e5)][_0xd6d3(0x1d1)]);continue;}break;}}_0x130a49['SJRSS'](_0x64e260,_0x130a49[_0xd6d3(0x4e6)]),_0x130a49[_0xd6d3(0x4e7)](_0x222b21,0x19);}else _0x130a49[_0xd6d3(0x4e8)](_0x130a49[_0xd6d3(0x4e9)],_0xd6d3(0x4ea))?_0x17fb8d[_0xd6d3(0x4eb)](_0x5913e8):(console[_0xd6d3(0x11)](_0x130a49[_0xd6d3(0x361)],_0x46f3a5[_0xd6d3(0x11)]),_0x64e260(_0xd6d3(0x301)+(_0x46f3a5['error']||_0x130a49[_0xd6d3(0x4ec)])),_0x1f50f4(!![]),_0x130a49[_0xd6d3(0x3db)](_0x1e1f44));}catch(_0x5d783f){console[_0xd6d3(0x11)](_0x130a49['WLyzf'],_0x5d783f),_0x64e260(_0xd6d3(0x301)+(_0x5d783f instanceof Error?_0x5d783f[_0xd6d3(0x18f)]:_0x130a49['kGloJ'])),_0x130a49[_0xd6d3(0x2f5)](_0x1f50f4,!![]),_0x130a49[_0xd6d3(0x2f6)](_0x1e1f44);}};return _react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ee)],{'transparent':!![],'visible':_0x5500aa,'animationType':_0x130a49['bxIml'],'onRequestClose':_0xa4a041,'statusBarTranslucent':!![]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles['modalOverlay']},_react['default']['createElement'](_reactNative[_0xd6d3(0x4f0)],{'onPress':_0xa4a041},_react['default'][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x145)][_0xd6d3(0x4ef)],{'style':[styles[_0xd6d3(0x4f1)],{'opacity':_0x12e9f6}]})),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative['View'],{'style':styles[_0xd6d3(0x4f2)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles[_0xd6d3(0x4f3)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles[_0xd6d3(0x4f4)]},_react[_0xd6d3(0x5)]['createElement'](_reactNative['TouchableOpacity'],{'onPress':_0xa4a041,'style':styles[_0xd6d3(0x4f5)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles['handle']}))),_0x2fa074&&_0x7e46a1===_0x130a49[_0xd6d3(0x143)]&&_react['default']['createElement'](_reactNative['View'],{'style':styles[_0xd6d3(0x4f6)]},_react['default'][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4f7)],{'style':styles[_0xd6d3(0x4f8)]},_0x130a49[_0xd6d3(0x4f9)]),_react[_0xd6d3(0x5)]['createElement'](_reactNative[_0xd6d3(0x4ef)],{'style':styles['debugRow']},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4f7)],{'style':styles[_0xd6d3(0x4fa)]},_0x130a49['JJYmU'],_0x48f5bc),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4fb)],{'onPress':()=>_0x3a1ccb(_0x17c720=>Math['max'](0x0,_0x17c720-0x2)),'style':styles[_0xd6d3(0x4fc)]},_react[_0xd6d3(0x5)]['createElement'](_reactNative[_0xd6d3(0x4f7)],null,'-')),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4fb)],{'onPress':()=>_0x3a1ccb(_0x3509be=>_0x3509be+0x2),'style':styles[_0xd6d3(0x4fc)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative['Text'],null,'+'))),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles['debugRow']},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4f7)],{'style':styles['debugLabel']},_0xd6d3(0x4fd),_0x1088d3),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4fb)],{'onPress':()=>_0x318ace(_0x5cca83=>Math[_0xd6d3(0x4fe)](0x0,_0x5cca83-0x2)),'style':styles[_0xd6d3(0x4fc)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4f7)],null,'-')),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4fb)],{'onPress':()=>_0x318ace(_0x27856c=>_0x27856c+0x2),'style':styles[_0xd6d3(0x4fc)]},_react[_0xd6d3(0x5)]['createElement'](_reactNative[_0xd6d3(0x4f7)],null,'+'))),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles['debugRow']},_react[_0xd6d3(0x5)]['createElement'](_reactNative['Text'],{'style':styles[_0xd6d3(0x4fa)]},_0x130a49[_0xd6d3(0x4ff)],_0x2926e2),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4fb)],{'onPress':()=>_0x1a946d(_0x56ba96=>Math[_0xd6d3(0x4fe)](0x0,_0x56ba96-0x2)),'style':styles['debugBtn']},_react['default'][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4f7)],null,'-')),_react['default'][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4fb)],{'onPress':()=>_0x1a946d(_0xfafe39=>_0xfafe39+0x2),'style':styles[_0xd6d3(0x4fc)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4f7)],null,'+'))),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4fb)],{'onPress':()=>_0x591e1d(![]),'style':styles[_0xd6d3(0x500)]},_react['default'][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4f7)],{'style':styles[_0xd6d3(0x501)]},_0xd6d3(0x502)))),_0x130a49[_0xd6d3(0x503)](_0x7e46a1,_0x130a49[_0xd6d3(0x15d)])&&_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles[_0xd6d3(0x504)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles[_0xd6d3(0x505)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_BrandMark[_0xd6d3(0x5)],null)),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles[_0xd6d3(0x506)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_HeadingGroup['default'],null)),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles['bodyContainer']},_react['default'][_0xd6d3(0x4ed)](_BodyText[_0xd6d3(0x5)],null)),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative['View'],{'style':styles['welcomeSpacer']}),_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_reactNative[_0xd6d3(0x4ef)],{'style':styles[_0xd6d3(0x507)]},_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_PrimaryButton[_0xd6d3(0x5)],{'label':_0x130a49[_0xd6d3(0x508)],'onPress':_0x27645e,'testID':_0x130a49[_0xd6d3(0x509)]}))),_0x7e46a1===_0x130a49[_0xd6d3(0x152)]&&_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_SignInStep[_0xd6d3(0x5)],{'onEmailSubmit':_0xbee958,'onGoogleSignIn':_0x482958,'onContinue':()=>_0x53b440(_0xd6d3(0x24)),'loading':_0x4a8c81,'error':_0x543dcd,'initialEmail':_0x2e0042}),_0x130a49[_0xd6d3(0x50a)](_0x7e46a1,_0x130a49[_0xd6d3(0x153)])&&_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_VerificationStep[_0xd6d3(0x5)],{'email':_0x2e0042,'onCodeSubmit':_0x1da089,'onBack':_0x4343df,'loading':_0x4a8c81,'error':_0x543dcd,'onResendCode':_0x1c18f7}),_0x130a49[_0xd6d3(0x30a)](_0x7e46a1,_0x130a49[_0xd6d3(0x143)])&&_react[_0xd6d3(0x5)][_0xd6d3(0x4ed)](_PlatformConnectorsStep[_0xd6d3(0x5)],{'onUpdate':_0xd06cfe,'onSkip':allowSkip?_0x3f9de7:undefined,'onReviewerBypass':_0x3323a9,'onLogout':_0x36b8ce,'allowedPlatforms':_0x43aa9f,'recommendedPlatforms':_0x1148a7,'initialConnectedPlatforms':_0x47dc5f}),_0x130a49['ZUiAF'](_0x7e46a1,'consent')&&_react[_0xd6d3(0x5)]['createElement'](_PersonalizationConsentScreen[_0xd6d3(0x5)],{'visible':!![],'loading':_0x148d46,'onLogout':_0x36b8ce,'onAccept':async()=>{const _0x1b415a={'ocNkM':function(_0x493132,_0x3153a6){return _0x130a49[_0xd6d3(0x50b)](_0x493132,_0x3153a6);},'atQSt':_0xd6d3(0x6a)};console[_0xd6d3(0x14a)](_0x130a49[_0xd6d3(0x50c)]),_0x130a49[_0xd6d3(0x50d)](_0xef1008,!![]),await new Promise(_0x2676f5=>setTimeout(_0x2676f5,0x32));try{if(_0x130a49[_0xd6d3(0x50e)]('wcajZ',_0x130a49[_0xd6d3(0x50f)]))_0x313bcc[_0xd6d3(0x14a)](_0xd6d3(0x69),_0x23ae28[_0xd6d3(0x18f)]),_0x1b415a[_0xd6d3(0x510)](_0x5b3070,_0xcf0b5e[_0xd6d3(0x18f)]||_0x1b415a[_0xd6d3(0x511)]);else{const [_0x12fae9,_0x4ba845,_0x333fe9]=await Promise[_0xd6d3(0x2f8)]([(0x0,_authService['getAuthToken'])(),_asyncStorage[_0xd6d3(0x5)][_0xd6d3(0x167)](_0x130a49[_0xd6d3(0x2fa)]),(0x0,_authService['getOnairosUsername'])()]);console['log']('🔑\x20[SDK]\x20Auth\x20data\x20retrieved\x20in\x20parallel\x20for\x20returning\x20user'),_0x35de15[_0xd6d3(0x157)]=!![],_0x130a49[_0xd6d3(0x512)](_0x12fae9,_0x4ba845)?(console[_0xd6d3(0x14a)](_0xd6d3(0x513)),await(_0x44fc01===null||_0x130a49['YKZHN'](_0x44fc01,void 0x0)?void 0x0:_0x44fc01(_api[_0xd6d3(0x306)]['BASE_URL'],_0x12fae9,{'email':_0x4ba845,'connectedPlatforms':_0x47dc5f,'username':_0x333fe9||_0x4ba845[_0xd6d3(0x1c7)]('@')[0x0],'isReturningUser':!![]}))):(console[_0xd6d3(0x308)](_0x130a49['UljFa']),await(_0x130a49['yzjmB'](_0x44fc01,null)||_0x130a49[_0xd6d3(0x30d)](_0x44fc01,void 0x0)?void 0x0:_0x44fc01(_api[_0xd6d3(0x306)][_0xd6d3(0x307)],'',{'connectedPlatforms':_0x47dc5f,'isReturningUser':!![]})));}}catch(_0x31eab2){console[_0xd6d3(0x11)](_0x130a49['bAiIJ'],_0x31eab2),await(_0x130a49[_0xd6d3(0x514)](_0x44fc01,null)||_0x44fc01===void 0x0?void 0x0:_0x130a49['CZrJx'](_0x44fc01,_api[_0xd6d3(0x306)][_0xd6d3(0x307)],'',{'connectedPlatforms':_0x47dc5f,'isReturningUser':!![]}));}console[_0xd6d3(0x14a)](_0xd6d3(0x515));},'onDecline':()=>{const _0x4daf82={'NRQMi':function(_0x2ae730,_0x494bfa){return _0x2ae730(_0x494bfa);},'oIbGU':function(_0x14720a){return _0x130a49[_0xd6d3(0x516)](_0x14720a);}};_0x130a49[_0xd6d3(0x517)](_0x130a49[_0xd6d3(0x518)],_0x130a49[_0xd6d3(0x518)])?(console[_0xd6d3(0x14a)]('❌\x20Returning\x20user\x20declined\x20consent'),_0x130a49['bTNwh'](_0xa4a041)):(_0x574ecb[_0xd6d3(0x11)](_0xd6d3(0x465),_0x5164bd[_0xd6d3(0x11)]),_0x4daf82[_0xd6d3(0x519)](_0x1862f0,_0xd6d3(0x301)+_0x27f8db['error']),_0x173e95(!![]),_0x4daf82[_0xd6d3(0x51a)](_0x15efd6));},'connectedPlatforms':_0x47dc5f,'onConnectMore':()=>{console[_0xd6d3(0x14a)](_0xd6d3(0x51b)),_0x130a49[_0xd6d3(0x51c)](_0x53b440,_0x130a49[_0xd6d3(0x143)]);},'isReturningUser':_0x1ff827,'appName':_0x26db82})))));};exports[_0xd6d3(0x1)]=UniversalOnboarding;const LEGACY_REMOVED=!![],styles=_reactNative[_0xd6d3(0x51d)]['create']({'modalOverlay':{'flex':0x1,'justifyContent':_0xd6d3(0x51e)},'backdrop':{..._reactNative[_0xd6d3(0x51d)][_0xd6d3(0x51f)],'backgroundColor':_0xd6d3(0x520)},'bottomSheet':{'backgroundColor':_0xd6d3(0x521),'borderTopLeftRadius':0x18,'borderTopRightRadius':0x18,'paddingTop':0x0,'paddingBottom':0x0,'minHeight':height*0.86,'overflow':'hidden','width':'100%'},'container':{'flex':0x1,'backgroundColor':'#FAFAFA'},'welcomeContainer':{'flex':0x1,'alignItems':'center','paddingTop':0x46,'paddingHorizontal':0x18},'brandMarkContainer':{'marginBottom':0x20},'headingContainer':{'marginBottom':0x18},'bodyContainer':{'marginBottom':0x20,'width':_0xd6d3(0x522)},'welcomeSpacer':{'flex':0x1,'minHeight':0x14},'welcomeButtonContainer':{'width':_0xd6d3(0x522),'paddingBottom':0x14},'handleContainer':{'alignItems':_0xd6d3(0x523),'paddingTop':0xc,'paddingBottom':0x4,'backgroundColor':_0xd6d3(0x524)},'handleButton':{'padding':0x0,'width':0x78,'alignItems':_0xd6d3(0x523)},'handle':{'width':0x64,'height':0x6,'borderRadius':0x3,'backgroundColor':_0xd6d3(0x525)},'debugPanel':{'position':_0xd6d3(0x526),'top':0x3c,'right':0xa,'backgroundColor':_0xd6d3(0x527),'padding':0xc,'borderRadius':0x8,'zIndex':0x270f,'minWidth':0xc8},'debugTitle':{'color':_0xd6d3(0x528),'fontSize':0xe,'fontWeight':_0xd6d3(0x529),'marginBottom':0x8},'debugRow':{'flexDirection':'row','alignItems':_0xd6d3(0x523),'marginBottom':0x6},'debugLabel':{'color':_0xd6d3(0x528),'fontSize':0xc,'flex':0x1},'debugBtn':{'backgroundColor':_0xd6d3(0x52a),'paddingHorizontal':0xc,'paddingVertical':0x4,'borderRadius':0x4,'marginLeft':0x4},'debugCloseBtn':{'backgroundColor':'#666','paddingVertical':0x6,'borderRadius':0x4,'marginTop':0x8,'alignItems':_0xd6d3(0x523)},'debugCloseBtnText':{'color':_0xd6d3(0x528),'fontSize':0xc},'header':{'alignItems':'center','marginBottom':0x14,'paddingHorizontal':0x18},'headerContent':{'flexDirection':_0xd6d3(0x52b),'alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x523),'marginBottom':0x18},'appIcon':{'width':0x30,'height':0x30,'borderRadius':0x18,'backgroundColor':'#F5F5F5','alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x523)},'appIconText':{'fontSize':0x18,'fontWeight':'bold','color':_0xd6d3(0x52c)},'arrow':{'marginHorizontal':0x10,'fontSize':0x18,'color':_0xd6d3(0x52d)},'onairosIcon':{'width':0x36,'height':0x36,'borderRadius':0x20,'backgroundColor':_0xd6d3(0x524),'alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x523)},'onairosIconText':{'fontSize':0x18,'fontWeight':_0xd6d3(0x52e),'color':_0xd6d3(0x528)},'onairosIconImage':{'width':0x36,'height':0x36},'titleContainer':{'alignItems':'center'},'mainTitle':{'fontSize':0x18,'fontWeight':_0xd6d3(0x52f),'color':_0xd6d3(0x52c),'textAlign':_0xd6d3(0x523),'marginBottom':0xc},'privacyMessage':{'fontSize':0xe,'color':_0xd6d3(0x52d),'textAlign':_0xd6d3(0x523),'marginBottom':0x14},'privacyLink':{'color':_0xd6d3(0x530),'fontWeight':_0xd6d3(0x52f),'textDecorationLine':'underline'},'boldText':{'fontWeight':'bold'},'content':{'flex':0x1,'paddingHorizontal':0x18},'platformsScrollView':{'flex':0x1,'width':_0xd6d3(0x522)},'platformsScrollContent':{'paddingBottom':0x0,'paddingHorizontal':0x18},'platformsContainer':{'marginTop':0x10},'platformItem':{'flexDirection':_0xd6d3(0x52b),'alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x531),'paddingVertical':0x10,'paddingHorizontal':0x8,'borderBottomWidth':0x1,'borderBottomColor':_0xd6d3(0x532)},'platformInfo':{'flexDirection':'row','alignItems':'center'},'platformIcon':{'width':0x28,'height':0x28,'borderRadius':0x14,'backgroundColor':_0xd6d3(0x533),'alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x523),'marginRight':0x10},'platformIconText':{'fontSize':0x12,'fontWeight':_0xd6d3(0x52e),'color':_0xd6d3(0x52c),'textAlign':'center','textAlignVertical':'center'},'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':_0xd6d3(0x533),'alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x523),'marginRight':0x10},'pinterestPlatformIcon':{'width':0x22,'height':0x22,'borderRadius':0x11,'backgroundColor':_0xd6d3(0x533),'alignItems':'center','justifyContent':_0xd6d3(0x523),'marginRight':0x10},'platformName':{'fontSize':0x10,'color':'#333','textAlignVertical':_0xd6d3(0x523)},'footer':{'flexDirection':'row','alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x531),'padding':0x18,'borderTopWidth':0x1,'borderTopColor':'#E5E5E5'},'footerButtonCancel':{'paddingVertical':0xc,'paddingHorizontal':0x10},'footerButtonText':{'color':_0xd6d3(0x52d),'fontSize':0x10},'footerButtonConfirm':{'paddingVertical':0xc,'paddingHorizontal':0x18,'backgroundColor':'#000000','borderRadius':0x8,'marginTop':0x14},'footerButtonConnected':{'paddingVertical':0xc,'paddingHorizontal':0x18,'backgroundColor':_0xd6d3(0x534),'borderRadius':0x8},'footerButtonDisabled':{'backgroundColor':_0xd6d3(0x532)},'footerButtonTextConfirm':{'color':_0xd6d3(0x528),'fontSize':0x10,'fontWeight':_0xd6d3(0x52f)},'footerButtonTextConnected':{'color':'#000','fontSize':0x10,'fontWeight':_0xd6d3(0x52f)},'connectContainer':{'flex':0x1},'modalContent':{'flex':0x1,'backgroundColor':_0xd6d3(0x137),'borderTopLeftRadius':0x14,'borderTopRightRadius':0x14,'padding':0x18},'backButton':{'padding':0x8,'width':0x28},'backButtonText':{'fontSize':0x18,'color':_0xd6d3(0x530)},'backButtonSpacer':{'width':0x28},'headerTitle':{'fontSize':0x12,'fontWeight':_0xd6d3(0x52f),'color':_0xd6d3(0x52c),'textAlign':'center'},'privacyHeader':{'flexDirection':_0xd6d3(0x52b),'alignItems':_0xd6d3(0x523),'justifyContent':_0xd6d3(0x531),'paddingHorizontal':0x10,'paddingVertical':0x14,'backgroundColor':_0xd6d3(0x137),'borderBottomWidth':0x1,'borderBottomColor':'#F0F0F0'},'privacyDetailsContainer':{'paddingHorizontal':0x18,'paddingVertical':0x8,'flex':0x1,'marginTop':0x14},'privacyDetailsTitle':{'fontSize':0x14,'fontWeight':_0xd6d3(0x52f),'color':_0xd6d3(0x52c),'marginBottom':0x0},'privacyBulletPoint':{'flexDirection':_0xd6d3(0x52b),'marginBottom':0x10,'alignItems':_0xd6d3(0x535)},'bulletPoint':{'fontSize':0x12,'marginRight':0x8,'color':'#333'},'privacyBulletText':{'fontSize':0x10,'color':_0xd6d3(0x52c),'flex':0x1,'lineHeight':0x18},'connectionsCountText':{'fontSize':0x12,'fontWeight':_0xd6d3(0x52f),'color':_0xd6d3(0x52c),'marginBottom':0x18},'personaContainer':{'flex':0x1,'padding':0x10,'backgroundColor':'#fff','justifyContent':_0xd6d3(0x535)},'personaHeaderWithBack':{'flexDirection':_0xd6d3(0x52b),'alignItems':'center','justifyContent':_0xd6d3(0x531),'marginBottom':0x10,'paddingVertical':0x8},'personaBackButton':{'padding':0x8},'personaHeader':{'alignItems':'center','marginBottom':0x20,'paddingHorizontal':0x18},'personaTitle':{'fontSize':0x14,'fontWeight':_0xd6d3(0x52f),'color':_0xd6d3(0x52c),'textAlign':_0xd6d3(0x523),'flex':0x1,'marginBottom':0x8},'personaSubtitle':{'fontSize':0xe,'color':_0xd6d3(0x52d),'marginBottom':0x18,'textAlign':_0xd6d3(0x523)},'personaProgressContainer':{'marginBottom':0x18,'paddingHorizontal':0x0},'personaProgressBar':{'height':0x8,'backgroundColor':_0xd6d3(0x533),'borderRadius':0x4,'overflow':_0xd6d3(0x536),'marginBottom':0xc},'personaProgressFill':{'height':_0xd6d3(0x522),'backgroundColor':_0xd6d3(0x537),'borderRadius':0x4},'personaProgressText':{'fontSize':0x10,'fontWeight':_0xd6d3(0x52f),'color':'#333','textAlign':_0xd6d3(0x523),'marginBottom':0x8},'personaStatusText':{'fontSize':0xe,'color':_0xd6d3(0x52d),'textAlign':_0xd6d3(0x523)},'personaCompleteContainer':{'alignItems':_0xd6d3(0x523),'paddingHorizontal':0x0},'personaCompleteTitle':{'fontSize':0x14,'fontWeight':_0xd6d3(0x52f),'color':_0xd6d3(0x52c),'marginBottom':0x8,'textAlign':'center'},'personaCompleteSubtitle':{'fontSize':0xe,'color':_0xd6d3(0x52d),'textAlign':_0xd6d3(0x523),'marginBottom':0x28},'personaContinueButton':{'backgroundColor':_0xd6d3(0x530),'paddingVertical':0x10,'paddingHorizontal':0x30,'borderRadius':0x10,'alignItems':_0xd6d3(0x523),'width':_0xd6d3(0x522),'marginTop':0x20,'shadowColor':'#000','shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x4,'elevation':0x3},'personaContinueButtonText':{'color':'#fff','fontSize':0x10,'fontWeight':_0xd6d3(0x52f)},'progressError':{'backgroundColor':'#FF3B30'},'dataWarningContainer':{'padding':0x10,'borderRadius':0xc,'marginTop':0x10,'borderWidth':0x1,'shadowColor':_0xd6d3(0x538),'shadowOffset':{'width':0x0,'height':0x2},'shadowOpacity':0.1,'shadowRadius':0x4,'elevation':0x3},'dataWarningHeader':{'flexDirection':_0xd6d3(0x52b),'alignItems':_0xd6d3(0x523),'marginBottom':0x8},'dataWarningIcon':{'fontSize':0x14,'marginRight':0x8},'dataWarningTitle':{'fontSize':0x10,'fontWeight':_0xd6d3(0x52f),'flex':0x1},'dataWarningMessage':{'fontSize':0xe,'marginBottom':0x0,'lineHeight':0x14},'dataWarningSuggestions':{'marginTop':0xc,'paddingTop':0xc,'borderTopWidth':0x1},'dataWarningSuggestionsTitle':{'fontSize':0xe,'fontWeight':_0xd6d3(0x52f),'marginBottom':0x6},'dataWarningSuggestionItem':{'fontSize':0xd,'marginBottom':0x4,'lineHeight':0x12},'dataWarningContinueNote':{'fontSize':0xd,'fontWeight':_0xd6d3(0x539),'marginTop':0xc,'fontStyle':_0xd6d3(0x53a)},'dataWarningError':{'backgroundColor':_0xd6d3(0x53b),'borderColor':_0xd6d3(0x53c)},'dataInfoContainer':{'backgroundColor':_0xd6d3(0x53d),'borderColor':_0xd6d3(0x53e)},'dataConnectionsRequired':{'backgroundColor':_0xd6d3(0x533),'borderColor':_0xd6d3(0x53f),'shadowColor':_0xd6d3(0x540),'shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.15,'shadowRadius':0x8},'highlightedBackButton':{'backgroundColor':_0xd6d3(0x533),'borderRadius':0x14,'borderWidth':0x2,'borderColor':_0xd6d3(0x530),'shadowColor':_0xd6d3(0x530),'shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.3,'shadowRadius':0x8,'elevation':0x5},'highlightedBackArrow':{'color':_0xd6d3(0x530),'fontWeight':'bold'},'goBackButton':{'backgroundColor':_0xd6d3(0x530),'paddingVertical':0xc,'paddingHorizontal':0x10,'borderRadius':0x8,'marginTop':0xc,'alignItems':_0xd6d3(0x523),'shadowColor':'#000000','shadowOffset':{'width':0x0,'height':0x0},'shadowOpacity':0.3,'shadowRadius':0x6,'elevation':0x3},'goBackButtonText':{'color':_0xd6d3(0x137),'fontSize':0xe,'fontWeight':_0xd6d3(0x52f)},'additionalPlatformsToggle':{'paddingVertical':0x10,'paddingHorizontal':0x8,'alignItems':_0xd6d3(0x523),'borderBottomWidth':0x1,'borderBottomColor':_0xd6d3(0x532)},'additionalPlatformsText':{'fontSize':0xe,'color':'#666','fontWeight':'500'},'asterisk':{'color':'#FF6B6B','fontSize':0x10,'fontWeight':'bold','marginLeft':0x2},'linkedinRequirementContainer':{'backgroundColor':_0xd6d3(0x541),'borderWidth':0x1,'borderColor':_0xd6d3(0x542),'borderRadius':0x8,'paddingHorizontal':0xc,'paddingVertical':0x8,'marginTop':0x8,'marginHorizontal':0x4},'linkedinRequirementText':{'fontSize':0xc,'fontStyle':_0xd6d3(0x53a),'textAlign':_0xd6d3(0x523)},'linkedinRequirementAsterisk':{'color':_0xd6d3(0x543),'fontWeight':_0xd6d3(0x52e)},'linkedinRequirementMessage':{'color':_0xd6d3(0x540)},'existingUserBanner':{'backgroundColor':_0xd6d3(0x53d),'borderWidth':0x1,'borderColor':_0xd6d3(0x544),'borderRadius':0xc,'paddingHorizontal':0x10,'paddingVertical':0xc,'marginTop':0xc},'existingUserText':{'fontSize':0xe,'fontWeight':'600','color':_0xd6d3(0x545),'marginBottom':0x4},'existingUserSubtext':{'fontSize':0xc,'color':_0xd6d3(0x546),'lineHeight':0x10}});function _0x2c72(){const _0x3d894a=['defineProperty','UniversalOnboarding','❌\x20Failed\x20to\x20store\x20reviewer\x20bypass:','rRDSb','object','default','oRZhj','CVJHZ','phtZc','HbPFR','qqJse','VNWMc','fVdrS','wpSBR','has','get','set','error','cyYyk','XZhUC','kwdHi','call','getOwnPropertyDescriptor','YBFzF','LzGkn','Dimensions','window','⚠️\x20Could\x20not\x20fetch\x20existing\x20connections,\x20proceeding\x20to\x20platforms:','XnWsG','ABVFB','🔍\x20UniversalOnboarding:\x20current\x20step\x20is:','🔍\x20UniversalOnboarding:\x20primaryAuthOnly\x20is:','🔌\x20Cleaning\x20up\x20socket\x20connection...','🔄\x20Socket\x20ready\x20for\x20persona\x20display\x20with\x20token:','TaQDh','signin','verification','ysxPd','NgdMA','🍎\x20[APPLE\x20FIX]\x20primaryAuthOnly\x20detected\x20-\x20resetting\x20to\x20welcome\x20step','🍎\x20[APPLE\x20FIX]\x20Current\x20step\x20was:','->\x20Setting\x20to:\x20welcome','HtuEX','qFSRX','📱\x20Stored\x20connected\x20platform:','Total\x20platforms:','Afmoe','taSHy','Remaining\x20platforms:','QMGJy','🔌\x20Disconnected\x20platform:','Error\x20disconnecting\x20platform:','cancel','destructive','❌\x20Email\x20verification\x20failed:','iUZdI','kAllA','❌\x20Error\x20sending\x20verification\x20code:','Network\x20error.\x20Please\x20check\x20your\x20connection\x20and\x20try\x20again.','✅\x20YouTube\x20tokens\x20refreshed,\x20but\x20training\x20restart\x20disabled','lZrgY','Connections\x20required','4|1|2|5|0|3','🗄️\x20Databases\x20used:','🔐\x20Encryption\x20enabled:','url','Vikxs','🔑\x20Using\x20auth\x20token:','✅\x20[BACKGROUND]\x20PIN\x20submitted\x20for\x20existing\x20training\x20session','❌\x20Error\x20resending\x20verification\x20code:','Network\x20error.\x20Please\x20try\x20again.','LIMITED_DATA','kLvxz','YbSwI','existing_user_info','5|4|2|3|1|0','KPkhL','eRJTI','🔑\x20[CACHED\x20LOGIN]\x20Found\x20valid\x20token\x20for\x20user:','2|0|5|1|4|3','🔑\x20[CACHED\x20LOGIN]\x20User\x20has\x20existing\x20connections:','Error\x20loading\x20user\x20data:','Google\x20Sign-In\x20failed.\x20Please\x20try\x20again.','zHByy','gLKYu','connected','disconnected','🔍\x20Loading\x20username\x20for\x20data\x20connections:','Initial\x20connection\x20status:','Error\x20loading\x20initial\x20connection\x20status:','consent','XJTEH','ℹ️\x20No\x20existing\x20connections\x20found\x20-\x20proceeding\x20to\x20platforms\x20step','drOyw','🍎\x20Get\x20Started\x20pressed\x20(Apple\x20user)\x20-\x20skipping\x20signin,\x20going\x20to\x20platforms','🎉\x20All\x20Complete:','5|3|1|2|4|0','✅\x20Training\x20completed:','Complete!','reviewer@bypass.com','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder','onairos_user','true','🧪\x20Test\x20bypass\x20detected\x20-\x20skipping\x20to\x20verification\x20screen','test@example.com','❌\x20Failed\x20to\x20send\x20verification\x20code:','Failed\x20to\x20send\x20verification\x20code.\x20Please\x20try\x20again.','No\x20background\x20socket\x20ID\x20available','🔌\x20[BACKGROUND]\x20Using\x20existing\x20socket\x20ID:','Error\x20storing\x20connected\x20platform:','No\x20authentication\x20token\x20available','iQSkM','bGVXG','🔍\x20Is\x20new\x20user?','huaXu','👤\x20Returning\x20user\x20detected\x20via\x20Google\x20Sign-In\x20-\x20checking\x20for\x20existing\x20connections','STAMS','ℹ️\x20Google\x20Sign-In\x20cancelled\x20by\x20user','VlLjO','🧪\x20Testing\x20mode\x20enabled','FSoPe','🧪\x20Test\x20bypass\x20-\x20skipping\x20code\x20verification,\x20going\x20to\x20platforms','🔍\x20Verifying\x20email\x20code:','🔍\x20App\x20name:','🔍\x20Checking\x20for\x20returning\x20user\x20data...','👋\x20Welcome\x20back!\x20User\x20has\x20existing\x20connections,\x20skipping\x20to\x20consent\x20screen','❌\x20Error\x20verifying\x20email\x20code:','Verification\x20failed.\x20Please\x20try\x20again.','6|1|3|0|5|8|4|2|7','sdk_jwt_token','onairos_jwt_token','user_email','auth_method','❌\x20Error\x20during\x20logout:','🔄\x20Socket\x20reconnected\x20after','🔒\x20Compression\x20enabled:','📊\x20Training\x20type:','🗄️\x20Databases:','✅\x20Inference\x20enabled:','2|4|0|3|1','pQBUJ','🔄\x20Resending\x20verification\x20code\x20to:','nNJKY','vgJQd','✅\x20Onboarding\x20complete!\x20Connected\x20platforms:','🔑\x20[SDK]\x20Auth\x20data\x20retrieved\x20in\x20parallel','🔑\x20[SDK]\x20Token\x20available:','MaXhb','✅\x20[SDK]\x20Calling\x20onComplete\x20with\x20token\x20and\x20user\x20data','🍎\x20[SDK]\x20Calling\x20onComplete\x20with\x20email\x20(no\x20SDK\x20token\x20-\x20Apple\x20auth)','bJjKh','❌\x20[SDK]\x20Error\x20retrieving\x20auth\x20data\x20for\x20onComplete:','BdRUf','⚠️\x20[SDK]\x20User\x20skipped\x20-\x20no\x20auth\x20data\x20available','❌\x20[SDK]\x20Error\x20during\x20skip:','✅\x20[SDK]\x20Skip\x20complete\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','rKnas','🆕\x20New\x20user\x20or\x20no\x20existing\x20connections,\x20showing\x20platform\x20connection\x20screen','❌\x20[BACKGROUND]\x20Background\x20training\x20failed:','HKCnV','lWdBA','chatgpt','llm','🤖\x20Handling\x20LLM/ChatGPT\x20connection\x20-\x20sending\x20to\x20backend...','iUCLZ','5|4|2|1|3|0','✅\x20Backend\x20received\x20and\x20stored\x20LLM\x20data','hqDOb','Failed\x20to\x20resend\x20verification\x20code.','❌\x20Background\x20training\x20start\x20failed:','Background\x20training\x20failed\x20to\x20start','wRGJQ','code','platform','MLMIY','Error\x20handling\x20OAuth\x20callback:','⚠️\x20Could\x20not\x20get\x20encrypted\x20PIN\x20for\x20training:','vchAk','PGghf','4|0|2|3|1|5','2|0|3|4|1','🔐\x20[PIN\x20SUBMIT]\x20PIN\x20stored\x20securely,\x20moved\x20to\x20persona\x20step','🔐\x20[PIN\x20SUBMIT]\x20PIN\x20submitted,\x20checking\x20for\x20background\x20training...','✅\x20[PIN\x20SUBMIT]\x20Background\x20training\x20detected,\x20continuing\x20with\x20PIN\x20validation...','❌\x20[PIN\x20SUBMIT]\x20Failed\x20to\x20continue\x20background\x20training:','No\x20training\x20in\x20progress.\x20Please\x20restart\x20the\x20flow.','🔌\x20Disconnecting\x20training\x20socket...','🔍\x20Socket\x20state:','Connection\x20timeout.\x20Please\x20check\x20your\x20internet\x20and\x20try\x20again.','❌\x20Socket\x20connection\x20timeout\x20after\x2020\x20seconds','Starting\x20training...','GiiFY','❌\x20No\x20authentication\x20token\x20available','📱\x20Connected\x20platforms\x20for\x20training:','📤\x20Sending\x20training\x20data\x20to\x20/mobile-training/enoch:','CONNECTIONS_REQUIRED','🎯\x20Training\x20Features:','5|6|4|1|2|3|0','Training\x20model...','axOix','Training\x20failed\x20to\x20start','Unknown\x20error','Almost\x20done','Tsfwg','fmpoa','lHVHG','❌\x20[BACKGROUND]\x20Failed\x20to\x20continue\x20background\x20training:','Training\x20in\x20progress','❌\x20Error\x20retrieving\x20real\x20token\x20for\x20onComplete:','❌\x20Socket\x20disconnected,\x20reason:','🔍\x20Disconnect\x20details:','rDUjZ','UfROU','Connection\x20error.\x20Please\x20try\x20again.','❌\x20Socket\x20error\x20details:','❌\x20Socket\x20connection\x20error:','✅\x20Training\x20Complete:','BZhdy','📊\x20Training\x20update:','YouTube\x20access\x20token\x20has\x20expired','🔄\x20YouTube\x20token\x20expired,\x20triggering\x20reconnection...','YouTube\x20token\x20expired\x20-\x20reconnecting...','4|1|3|7|2|6|0|5','🔗\x20Connections\x20required\x20detected\x20from\x20socket','oHjZw','4|5|7|0|1|2|6|3','🚫\x20No\x20data\x20scenario\x20detected','ℹ️\x20Limited\x20data\x20scenario\x20detected','Creating\x20your\x20persona\x20with\x20available\x20data','jgAaA','🔍\x20Socket\x20state\x20after\x201\x20second:','ZYaxE','2|3|1|0|4','ARmxj','vtwmm','Starting\x20training','🔌\x20Socket\x20ID\x20for\x20training:','❌\x20No\x20socket\x20ID\x20available\x20after\x20connection','QSDXR','❌\x20Socket\x20reconnection\x20failed\x20after\x20all\x20attempts','1|4|2|0|3','Uploading\x20to\x20S3','function','bxAwn','YouTube\x20tokens\x20refreshed\x20-\x20but\x20training\x20only\x20starts\x20from\x20connector→PIN','Token\x20refresh\x20failed\x20-\x20please\x20restart\x20from\x20connector\x20screen','❌\x20YouTube\x20reconnection\x20failed:','Initializing','diiQq','Failed\x20to\x20create\x20or\x20retrieve\x20authentication\x20token','✅\x20Authentication\x20token\x20set\x20in\x20state:','🔍\x20Token\x20length:','🔑\x20Token\x20stored\x20verification:','Not\x20stored','ZRXiF','🔑\x20Token\x20available:','🌐\x20Attempting\x20to\x20connect\x20to:\x20${API_CONFIG.BASE_URL}','polling','🔌\x20Socket\x20instance\x20created:','disconnect','reconnect','reconnect_error','trainingCompleted','modelStandby','trainingUpdate','websocket','🔌\x20Socket\x20connect()\x20called\x20-\x20waiting\x20for\x20connection...','EQcwj','Failed\x20to\x20initialize\x20training.\x20Please\x20try\x20again.','Something\x20went\x20wrong.\x20Please\x20try\x20again.','Your\x20persona\x20is\x20ready!\x20🎉','Keeping\x20your\x20data\x20private','Trying\x20to\x20understand\x20your\x20mind','You\x27re\x20more\x20interesting\x20than\x20I\x20expected','Finalizing\x20your\x20unique\x20persona','🎉\x20Real\x20persona\x20creation\x20completed\x20successfully','qrBHK','MoSUG','QxGhm','❌\x20No\x20real\x20authentication\x20token\x20found\x20after\x20training\x20completion','✅\x20Authentication\x20token\x20already\x20exists:','ℹ️\x20User\x20should\x20authenticate\x20first\x20via\x20Google/Apple/Email','❌\x20[TRANSITION]\x20Background\x20training\x20failed\x20during\x20transition:','tnglF','pin','✅\x20[BACKGROUND]\x20Socket\x20connected,\x20starting\x20background\x20data\x20collection...','❌\x20[BACKGROUND]\x20Socket\x20disconnected','Running\x20test\x20inference','📊\x20[BACKGROUND]\x20Training\x20progress:','bybSy','🚀\x20[BACKGROUND]\x20Starting\x20background\x20training\x20optimization...','🧑‍💻\x20[BACKGROUND]\x20User\x20info\x20set:','🔌\x20[BACKGROUND]\x20Setting\x20up\x20socket\x20for\x20background\x20training...','Initializing\x20data\x20collection...','🚀\x20[BACKGROUND]\x20Starting\x20background\x20training\x20with\x20socketId:','📤\x20Sending\x20background\x20training\x20data\x20to\x20/mobile-training/enoch:','fVGgz','7|2|5|1|6|3|4|0','🔗\x20Connections\x20required\x20detected\x20from\x20background\x20training','🚀\x20Background\x20training\x20started:','5|6|4|2|1|3|0','Background\x20training\x20model...','hOJbw','❌\x20Background\x20training\x20start\x20error:','wcajZ','⚠️\x20[SDK]\x20No\x20token/email\x20found\x20for\x20returning\x20user','pSdlc','Initializing...','pinterest','youtube','YouTube','#FFFFFF','linkedin','LinkedIn','reddit','gmail','Gmail','slide','Debug\x20Padding','Container\x20Top:\x20','Get\x20Started','welcome-get-started-button','useState','YXLbN','haJPh','Animated','useEffect','OWhLc','AqxFP','hIoSs','log','JoDWS','xelNG','oeZQZ','YsoKD','KjCUj','rSgIg','ojEgB','DKpJM','hzNXw','KgQFo','cVxvt','ENCAd','current','vivtb','VJSuA','TonvZ','gbvmX','AVpuj','pRilr','uGkDk','...','None','⏰\x20Socket\x20registered\x20but\x20training\x20will\x20not\x20start\x20from\x20persona\x20screen...','useRef','Value','SHlEZ','ZdrkU','VbXWr','getItem','fMqHb','includes','push','setItem','stringify','qkpfQ','qMGwm','lNnLy','uHagP','email','username','filter','connectedPlatforms','📱\x20Removed\x20connected\x20platform:','PVJmk','QFRqw','dUsaT','CzNkh','mWZth','engine','readyState','Alert','alert','Disconnect\x20Platform','Are\x20you\x20sure\x20you\x20want\x20to\x20disconnect\x20','pBSTI','Yes','MeUdE','KEKeU','qaFSh','myBaF','lzuyG','CJQHl','nVKzV','tOpad','Invalid\x20verification\x20code.\x20Please\x20try\x20again.','QdmoJ','ymYRx','IoaNu','message','ZXdOM','Omezn','repeat','FHKYl','UlBca','VOHAn','MRwTg','vAANQ','dQErU','nfryb','#0077B5','VpxiX','Reddit','jOpSh','IDWVI','#EA4335','XKKJu','LhKBe','getUniversalOnboardingIcon','JBcHa','EsMlr','Npcbm','YjWmr','fcBeu','TAGDl','IgEgQ','Nbvhi','pjGvE','WPBYT','MIBLO','IerxU','VomJA','fpokP','YjMNY','kUYzK','timing','Linking','JCEhi','fEoKY','qdQPW','CmobJ','remove','ngTsq','qgYiZ','rTOTq','start','hpHVV','KZzLm','fZlaw','YxKvG','PWGsz','BgKkG','hLhGv','nVmgm','afNGu','split','dvOKR','WEIHI','eoiUW','aPWZs','HquBI','EdObJ','databases','isArray','pUvNO','storage','eNbbf','encryption','testing','MXUVE','mdQac','🧠\x20Inference\x20enabled:','TkBkP','ywXef','yQspl','BJikG','sekuP','OHqmE','eekYO','useCallback','isOAuthCallback','TxvsD','sQDaP','BIUHf','HWviV','KsgnY','yzXCG','BIati','LthWy','wPjRn','DLZSi','2|1|0|5|4|3','kxPhT','GAzMi','DFtCR','MFTFd','cCFsg','existing_user_token','wxvbK','lvMge','WEARE','agwuL','ylJtb','GGknA','yTZNq','xBhTB','NcUfA','KSUaS','aLjId','qzuAI','dksUB','WmjSf','fQbPO','ZSmIB','AnXLA','BlZkG','WYNuk','vEJwt','qbote','AVcTt','cdBRw','MCWib','fQiiv','EplKS','KBKal','dqDSy','EbaKu','removeItem','QxcIM','🔍\x20Found\x20existing\x20user\x20info\x20-\x20user\x20wants\x20to\x20add\x20more\x20data','sjWKy','VQAzy','ojGFJ','BnrIJ','rlRRV','getOnairosUsername','ZmhEH','name','SWgDy','XZWLL','wrYhX','stSZC','yPVFo','GIiOF','searchParams','LFhZb','ZVUOe','qsPpB','yxRNf','mNcvn','parse','GAgjR','length','MLpxd','TipfF','xfToK','dLLXo','Gabto','CObIb','MfCTV','gXyag','PmFwh','details','IJVen','RKtJJ','QWWwm','kWCDV','vJjOV','QBbjj','Ttekg','Ijiwp','CiEgl','jSqyf','triggerHaptic','HapticType','ERROR','NDGMr','qgFdV','yeRlv','YbNps','PJCrD','user_','random','qqnxl','hXaZp','keys','forEach','wfuKy','qglrU','JUuif','cRtqv','JnFjH','UqLNN','floor','cIEyH','gClUi','xoczK','rOTre','BsynR','MklfM','wuYsg','KZhKB','JzwCk','✅\x20Found\x20','kkkSa','GbOsq','Fcplq','ivMcT','mCaGh','BUTTON_PRESS','NmCKf','platforms','TlCMu','kvvLW','Uwxhw','kOPJi','4|2|0|6|3|5|1','storeJWT','WNiIm','VVBTf','lyKtm','🔍\x20Reviewer\x20bypass\x20detected','test@bypass.com','0|2|4|1|3','RrFBN','sendEmailVerificationCode','✅\x20Verification\x20code\x20sent\x20successfully','XDBke','PZMrh','hCpzu','HXJqH','hZqIj','UGxOl','completed','LBHFO','inference','join','hrrts','wZzDk','rHtDE','tFaRG','vFKSs','qawNC','fyune','ZNAuk','OmYOK','pJEoz','🔗\x20Initiating\x20Google\x20Sign-In','signInWithGoogle','success','user','eCihZ','2|5|1|4|3|0','fthOq','🔐\x20[BACKGROUND]\x20Continuing\x20existing\x20background\x20training\x20with\x20PIN\x20validation','TQxqF','YKrqC','Bqfuz','isNewUser','VmDNx','lEHWw','bBdUj','SqtZw','uiYIC','getConnectedAccountsSmart','mKQHL','oxFJm','\x20existing\x20connections\x20-\x20skipping\x20to\x20consent','iGvbV','🔄\x20Socket\x20reconnection\x20attempt:','Reconnecting...\x20(','SnRxE','SUCCESS','ggpiC','PCoak','lDqnV','Aicdg','LxiZo','WMrzB','YCNEO','JjKyB','qYvvb','MPUCk','dRDLn','rsfDj','❌\x20Google\x20Sign-In\x20error:','zTvvq','QTyMH','PwLLT','TKytj','yglby','tABqE','confirmEmailVerificationCode','✅\x20Email\x20verification\x20successful','NLpUF','flowType','DZTXF','existingUserData','HtwSo','hasExistingData','ZmBEp','connections','ovrcY','bgNij','tZpRa','fdMeT','hasData','status','map','enochInstructions','showWelcomeBack','LfnAF','UQURL','ZQoSs','cavtU','CxUNO','LvyKw','qgzpF','umiBx','cBQsx','bmvBH','WLGOk','CVvrd','Ywoqv','evTvA','multiRemove','jEUVX','FFaDj','PlYxN','hVmxH','yIGnO','BeXKy','dEkqV','SaSUk','VgqtS','IBUjy','nPGmX','BFJTx','rPQdC','CbSia','🚀\x20Training\x20Started:','features','liRbd','type','gtcys','vDTwN','KvyVy','ySiiz','bETMn','rSCac','rQfNS','hxGqi','OyIfp','flaBN','ELgvp','linxC','muixr','ndJso','Ofcxv','tYQCN','all','getAuthToken','gZwaU','Rcygm','substring','vpVhA','IdygD','zBsfv','AEGXO','Error:\x20','MzwvF','eWjpN','ERCiR','HkYHl','API_CONFIG','BASE_URL','warn','⚠️\x20[SDK]\x20No\x20email\x20found\x20-\x20calling\x20onComplete\x20with\x20limited\x20data','bygDT','CGlOp','LJQEK','jKdeS','cfOVA','ELRtJ','✅\x20[SDK]\x20onComplete\x20finished\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','qHjiG','sDfUk','aAkui','JtCua','xFtum','UYxFC','qwIOy','nLVHm','DxZwG','Rplzl','owirS','WeRNe','GDPmF','xdPNX','VbCNJ','ohJRp','TrkOG','doySp','WROCh','qRDtZ','VsvNj','pxSlV','UowEP','vlEED','✅\x20Stored\x20reviewer\x20bypass\x20markers','FLKWF','bTNwh','__esModule','TwztC','bQXnf','juRok','hasNativeSDK','VZvWU','4|0|2|5|1|3','ExUGV','initiateNativeAuth','WnyTT','prhUu','dMRQF','afbLa','wcBZt','DGFZD','initiateOAuth','GUEHF','SQKTl','gVmBR','Error\x20connecting\x20to\x20','XjvOD','BGZHS','pIdki','oictJ','VZiGW','instagram','FXJJq','_user','IqwXv','GgojM','vPbqC','PoFtb','qyedh','@temp.com','now','sendLLMDataToBackend','tTlgM','dfetn','\x20successfully\x20connected\x20and\x20stored\x20in\x20backend','connectionId','QotRT','UXdEl','aDeAn','DbjDS','CNuUK','❌\x20Error\x20in\x20startPersonaCreation:','NbRKj','miREY','zQmed','DCvgB','EbPfQ','xkFZt','fQSUh','JLuRC','aLqcH','Woumo','QUwEG','oQcFn','vxyPM','XfkSW','EKCmp','WltKP','nKwRc','KaACi','ULBUD','aPgLF','MuJXf','hxDwH','welcome','🎉\x20OAuth\x20success\x20for\x20','📝\x20Received\x20result:','blrjM','nqMcu','iqkTX','✅\x20Updating\x20connection\x20state\x20for\x20','💾\x20','\x20connection\x20stored\x20successfully','WdYAG','🔄\x20Returning\x20to\x20connect\x20step','TvYqN','connect','NZaQI','setTemporaryPin','lyPFO','WGYGc','xrcZM','DWNLO','cjAHa','XobsX','pvDsK','Error:\x20Failed\x20to\x20continue\x20training','pIhLT','ℹ️\x20[PIN\x20SUBMIT]\x20No\x20background\x20training\x20detected','WKpdP','ZNNad','xqlIg','kXKsW','Gaouq','apnDQ','getJWT','mYQaE','MVQiN','ANGXJ','qVgPo','🚀\x20Starting\x20Enoch\x20training\x20with\x20socketId:','CYFWW','YaVsH','getEncryptedPinForAPI','catch','lCWFM','LAZbV','aCrgm','startEnochTrainingWithYouTubeCheck','DTKaS','requiresConnections','EJLWk','CrFbQ','fAVLC','qQYXm','EJjmd','swkOt','zCMaC','OqPDT','ccAbs','📈\x20Query\x20scores\x20enabled:','queryScores','XFuKe','💾\x20Storage\x20method:','4|0|3|2|5|1','BbMiX','XZLUr','szkgA','UsIwy','AXrRz','uqcAK','hnmYQ','Dutuv','xgyBj','jnlZn','QiheC','kGloJ','iEOFD','zoisG','LQEWm','VzOuI','IhJqX','xovdo','yXmXe','ZauEw','CxQRt','BZFCe','dBqdl','irclv','BRIIQ','skJvL','KlpYH','kOHxT','KuhFp','VDiyC','AvhOA','Lqjrs','jeuac','TJeam','KLDZv','eXPwv','zWuLE','pLGOp','YnCXK','ixLMj','ksaAY','VRnOc','wJaqB','mjOaP','KCvGQ','xEfHP','XCuxf','eBxmH','PHcXT','RUepn','SNDNc','uhUGe','hkQFm','🔐\x20Step\x201:\x20Ensuring\x20authentication\x20token...','QNIJn','nayGy','JvfOH','SYOul','ZtjOl','progress','WjVUo','xvZrx','kngBg','uUTVz','RpHqQ','VdjSY','hTSgV','iGilm','nDShf','PErMx','ahZKU','dvDoO','DshQg','mobile_user','vPBOz','MHJqF','IfAqo','nzTgb','oDFEs','ndhYx','WHrHe','❌\x20No\x20authentication\x20token\x20available\x20after\x20ensureAuthToken','Kshev','ZkvdE','RcVkj','olQMR','Platform','🔗\x20Network\x20connectivity\x20check\x20starting...','luTkI','XJqwI','tOKMb','WRwLB','uJPce','YYYPb','✅\x20Socket\x20connected\x20for\x20training','PAfFI','zCjoE','transport','cxLFy','vDbHl','nnAok','BMArg','nYpyk','gYKmm','ymEyo','EKOkk','vMdIo','OtHTc','PSgRd','VrmtQ','BLNgn','zQJbz','cnmJa','ziLMG','/3)','fJaro','mafWM','❌\x20Socket\x20reconnection\x20error:','Connection\x20failed.\x20Please\x20try\x20again.','ecxDj','Qwisn','jYrjL','zQVuD','mXsaF','kzyjS','stack','emVcI','ueXRO','inferenceCompleted','ClKsS','inferenceResults','RnVmi','anUXv','DPhRo','DmFTO','Eqich','SLkAN','SXFhk','HNOnC','AnafZ','IGKZp','JYVgj','KsgXJ','sFCAy','bKHQn','cnkQP','KVUmZ','onnlP','yDSyY','TNcET','oRItb','RzuHy','csPeD','uKaIv','OGIGR','FYIED','hasOwnProperty','AqwBa','rTgGR','SfWZG','iEgJr','lxdAw','DPBGY','hQSis','❌\x20YouTube\x20token\x20refresh/reconnection\x20error:','ASFnq','Jjtxz','KiihE','eYiHG','OBVBd','ueEIs','jDWwE','fkECu','ACCFx','tujJR','uDiFI','lWAVr','OPxhN','DwDtr','HXRlL','CeBgQ','sicYe','yRVCY','kXMvZ','❌\x20Training\x20update\x20error:','iKoKS','IkzTl','Taekd','dXFJy','🔌\x20Attempting\x20to\x20connect\x20to\x20socket...','🔌\x20Socket\x20config:','hAijD','nQnam','hUsUh','UMtEx','isROM','JBbtP','ntEiI','JtRJB','fUeAt','fvMCx','pvsVd','hgoSh','glpdV','UVhFH','NGbDp','RhSTe','XMyKg','Error\x20initiating\x20OAuth\x20for\x20','tBlmo','BTfkZ','JpQQt','ryMSc','VhGCV','CDFAL','bITJx','sWOJI','TFPDv','efkTX','EFUzk','eWMWM','RuGGF','MnaBi','zjWya','ksrFg','eEdvB','djZMO','KTuUv','vmeOL','gnbzf','FHFsG','UjPpA','cebDI','ZbZDz','oexWv','iUvgj','Just\x20a\x20few\x20more\x20seconds','WQfGz','dOwAD','naxfv','KnXbF','lIazT','cQKra','EqCGI','clearTemporaryPin','aErco','qPfaj','OUwCr','ZzNmZ','OPcEJ','qiwwU','qwJtd','PqmIP','apIFT','DMtVJ','sofgz','Iirqn','trim','ZzWvq','ℹ️\x20SDK\x20does\x20not\x20create\x20users\x20during\x20onboarding','zZoDe','some','DPBBi','xtMWS','🚀\x20[TRANSITION]\x20Starting\x20background\x20training\x20during\x20connect\x20→\x20pin\x20transition','IPanG','glrMF','cWhkY','nufWT','FkWZW','spJaK','WXgKU','SFrVt','wZCaD','WRVVv','lzneV','VHlww','mexdQ','qaYWZ','QYUsJ','irbGO','aVJpS','LqLQr','fejgu','VLUIl','KLLqU','BWEfU','ltmCX','gwUhv','Failed\x20to\x20send\x20LLM\x20data\x20to\x20backend:\x20','weYos','oqvGW','Processing...','bLIJC','QZPwr','VNRFF','WDNqR','tBhsm','zXeph','bHFYg','byfgE','CInlO','JbKKp','bcmPT','sNsut','hivWA','GRUHQ','dDsdQ','zZudM','cMeLG','JlISt','compression','pZyuw','ySYks','QzoZa','mUteb','cjURk','kTvoO','Tutoz','XzrZr','createElement','Modal','View','TouchableWithoutFeedback','backdrop','bottomSheet','container','handleContainer','handleButton','debugPanel','Text','debugTitle','JXpWT','debugLabel','TouchableOpacity','debugBtn','Container\x20Bottom:\x20','max','JRTKC','debugCloseBtn','debugCloseBtnText','Hide\x20Debug','SHXMm','welcomeContainer','brandMarkContainer','headingContainer','welcomeButtonContainer','cvTxx','GfOWo','wvUHt','xYXxH','HkGbu','gwBGq','NEaMv','bxhRC','ocNkM','atQSt','nXiAJ','✅\x20[SDK]\x20Calling\x20onComplete\x20for\x20returning\x20user','LWocs','✅\x20[SDK]\x20Returning\x20user\x20onComplete\x20finished\x20-\x20waiting\x20for\x20parent\x20to\x20close\x20modal','aazJq','BhETx','oYrWr','NRQMi','oIbGU','➕\x20Returning\x20user\x20wants\x20to\x20connect\x20more\x20platforms','lwOgW','StyleSheet','flex-end','absoluteFillObject','rgba(0,\x200,\x200,\x200.5)','#FAFAFA','100%','center','transparent','#D0D0D0','absolute','rgba(0,0,0,0.85)','#fff','700','#444','row','#333','#666','bold','600','#000000','space-between','#E5E5E5','#F5F5F5','#E9C46A','flex-start','hidden','#1BA9D4','#000','500','italic','#FFF5F5','#FEB2B2','#F0F9FF','#BAE6FD','#D1D5DB','#6B7280','#F8F9FA','#E5E7EB','#FF6B6B','#0EA5E9','#0369A1','#0C4A6E'];_0x2c72=function(){return _0x3d894a;};return _0x2c72();}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UniversalOnboarding = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
10
+ var _BrandMark = _interopRequireDefault(require("./BrandMark"));
11
+ var _HeadingGroup = _interopRequireDefault(require("./HeadingGroup"));
12
+ var _BodyText = _interopRequireDefault(require("./BodyText"));
13
+ var _PrimaryButton = _interopRequireDefault(require("./PrimaryButton"));
14
+ var _SignInStep = _interopRequireDefault(require("./SignInStep"));
15
+ var _VerificationStep = _interopRequireDefault(require("./VerificationStep"));
16
+ var _PlatformConnectorsStep = _interopRequireDefault(require("./PlatformConnectorsStep"));
17
+ var _PersonalizationConsentScreen = _interopRequireDefault(require("./PersonalizationConsentScreen"));
18
+ var _platformAuthService = require("../services/platformAuthService");
19
+ var _assetRegistry = require("../utils/assetRegistry");
20
+ var _googleAuthService = require("../services/googleAuthService");
21
+ var _haptics = require("../utils/haptics");
22
+ var _authService = require("../services/authService");
23
+ var _socket = require("socket.io-client");
24
+ var _pinStorageUtils = require("../services/pinStorageUtils");
25
+ var _pinEncryptionService = require("../services/pinEncryptionService");
26
+ var _mobileTrainingService = require("../services/mobileTrainingService");
27
+ var _llmDataStorage = require("../services/llmDataStorage");
28
+ var _connectedAccountsService = require("../services/connectedAccountsService");
29
+ var _api = require("../config/api");
30
+ var _jwtStorageService = require("../services/jwtStorageService");
31
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
32
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
33
+ // Removed navigation dependencies for SDK compatibility
34
+
35
+ // Import components and hooks
36
+
37
+ // Import Enoch-style UI components
38
+
39
+ // import { useConnections } from '../../hooks/useConnections'; // Commented out - file path issue
40
+ // import { useAuth } from '../../context/AuthContext'; // Commented out - file path issue
41
+
42
+ // CRITICAL FIX: Use static imports to avoid Hermes transpilation issues with await import()
43
+
44
+ // Import types
45
+ // import type { ConnectionStatus } from '../../hooks/useConnections'; // Commented out - file path issue
46
+ // Removed App-specific navigation types
47
+
48
+ const {
49
+ height,
50
+ width
51
+ } = _reactNative.Dimensions.get('window');
52
+ // ConnectionStatus interface is now imported from hooks/useConnections
53
+
54
+ const UniversalOnboarding = ({
55
+ visible,
56
+ onClose,
57
+ AppName,
58
+ requestData,
59
+ returnLink,
60
+ onComplete,
61
+ embedd = false,
62
+ debug = false,
63
+ test = false,
64
+ preferredPlatform,
65
+ primaryAuthOnly = false,
66
+ allowedPlatforms,
67
+ recommendedPlatforms,
68
+ allowSkip = true
69
+ }) => {
70
+ const [step, setStep] = (0, _react.useState)(primaryAuthOnly ? 'platforms' : 'welcome');
71
+ const [connections, setConnections] = (0, _react.useState)({});
72
+ const [pin, setPin] = (0, _react.useState)('');
73
+ const [selectedTier, setSelectedTier] = (0, _react.useState)('Medium');
74
+ // Training state is now handled by TrainingModal
75
+ const [slideAnim] = (0, _react.useState)(new _reactNative.Animated.Value(height));
76
+ const [backdropOpacity] = (0, _react.useState)(new _reactNative.Animated.Value(0));
77
+ const [platformToggles, setPlatformToggles] = (0, _react.useState)({});
78
+ const [oauthUrl, setOauthUrl] = (0, _react.useState)('');
79
+ const [currentPlatform, setCurrentPlatform] = (0, _react.useState)('');
80
+ const [email, setEmail] = (0, _react.useState)('');
81
+ const [userEmail, setUserEmail] = (0, _react.useState)(''); // For verification flow
82
+ const [authLoading, setAuthLoading] = (0, _react.useState)(false);
83
+ const [authError, setAuthError] = (0, _react.useState)('');
84
+
85
+ // Returning user state
86
+ const [isReturningUser, setIsReturningUser] = (0, _react.useState)(false);
87
+ const [returningUserConnections, setReturningUserConnections] = (0, _react.useState)([]);
88
+ const [longPressTimer, setLongPressTimer] = (0, _react.useState)(null);
89
+ // 🔧 FIX: Always initialize as false - let useEffect control visibility to prevent double animation glitch
90
+ const [modalVisible, setModalVisible] = (0, _react.useState)(false);
91
+
92
+ // Consent screen loading state
93
+ const [isConsentLoading, setIsConsentLoading] = (0, _react.useState)(false);
94
+
95
+ // DEBUG: Padding adjustment state (set to false to hide)
96
+ const [showDebugPanel, setShowDebugPanel] = (0, _react.useState)(false);
97
+ const [debugPaddingTop, setDebugPaddingTop] = (0, _react.useState)(0);
98
+ const [debugPaddingBottom, setDebugPaddingBottom] = (0, _react.useState)(8);
99
+ const [debugHandlePaddingTop, setDebugHandlePaddingTop] = (0, _react.useState)(6);
100
+
101
+ // Debug logging for modal visibility
102
+ (0, _react.useEffect)(() => {
103
+ console.log('🔍 UniversalOnboarding: visible prop changed to:', visible);
104
+ console.log('🔍 UniversalOnboarding: modalVisible state is:', modalVisible);
105
+ console.log('🔍 UniversalOnboarding: current step is:', step);
106
+ console.log('🔍 UniversalOnboarding: primaryAuthOnly is:', primaryAuthOnly);
107
+ }, [visible, modalVisible, step, primaryAuthOnly]);
108
+
109
+ // 🔄 FIX: Reset step when modal re-opens (visible goes false → true)
110
+ // This prevents stale step state from a previous session (e.g., stuck on 'platforms' after sign-out)
111
+ const prevVisibleRef = (0, _react.useRef)(visible);
112
+ (0, _react.useEffect)(() => {
113
+ if (visible && !prevVisibleRef.current && !primaryAuthOnly) {
114
+ console.log('🔄 [RESET] Modal re-opened - resetting step to welcome');
115
+ setStep('welcome');
116
+ }
117
+ prevVisibleRef.current = visible;
118
+ }, [visible, primaryAuthOnly]);
119
+
120
+ // 🍎 FIX: Watch for primaryAuthOnly prop changes (Apple Sign-In flow)
121
+ // When primaryAuthOnly becomes true AFTER the component mounts, go to welcome step
122
+ // This handles the case where Apple sign-in completes and then opens the SDK modal
123
+ // User will see "Welcome to Onairos" then click "Get Started" to go to platforms (skipping signin)
124
+ (0, _react.useEffect)(() => {
125
+ if (primaryAuthOnly && visible && (step === 'signin' || step === 'verification')) {
126
+ console.log('🍎 [APPLE FIX] primaryAuthOnly detected - resetting to welcome step');
127
+ console.log('🍎 [APPLE FIX] Current step was:', step, '-> Setting to: welcome');
128
+ setStep('welcome');
129
+ }
130
+ }, [primaryAuthOnly, visible]);
131
+ const isCompletingRef = (0, _react.useRef)(false);
132
+ const [connectionsCount, setConnectionsCount] = (0, _react.useState)(5); // Simulated connections count
133
+
134
+ // Add state for showing additional platforms
135
+ const [showAdditionalPlatforms, setShowAdditionalPlatforms] = (0, _react.useState)(false);
136
+ const [additionalPlatformsOpacity] = (0, _react.useState)(new _reactNative.Animated.Value(0));
137
+
138
+ // Add ref for ScrollView to control scroll position
139
+ const scrollViewRef = (0, _react.useRef)(null);
140
+ // Get the authenticated user from auth context
141
+ // const { user } = useAuth(); // Hook not available
142
+ const user = null;
143
+
144
+ // State for storing the correct username
145
+ const [username, setUsername] = (0, _react.useState)('');
146
+
147
+ // Real training state variables (replacing fake persona state)
148
+ const [personaProgress, setPersonaProgress] = (0, _react.useState)(0);
149
+ const [personaStatus, setPersonaStatus] = (0, _react.useState)('Initializing...');
150
+ const [isPersonaComplete, setIsPersonaComplete] = (0, _react.useState)(false);
151
+ const [socketConnected, setSocketConnected] = (0, _react.useState)(false);
152
+ const [hasError, setHasError] = (0, _react.useState)(false);
153
+ const [userTraits, setUserTraits] = (0, _react.useState)(null);
154
+ const [inferenceResults, setInferenceResults] = (0, _react.useState)(null);
155
+ const [userToken, setUserToken] = (0, _react.useState)(null);
156
+ const [userInfo, setUserInfo] = (0, _react.useState)(null);
157
+ const [animatedDots, setAnimatedDots] = (0, _react.useState)('');
158
+ const socketRef = (0, _react.useRef)(null);
159
+ const dotsAnimationRef = (0, _react.useRef)(null);
160
+
161
+ // Existing user state
162
+ const [isExistingUser, setIsExistingUser] = (0, _react.useState)(false);
163
+ const [existingUserToken, setExistingUserToken] = (0, _react.useState)(null);
164
+ const [existingUserInfo, setExistingUserInfo] = (0, _react.useState)(null);
165
+
166
+ // Data scenario states
167
+ const [dataScenario, setDataScenario] = (0, _react.useState)(null);
168
+ const [dataDetails, setDataDetails] = (0, _react.useState)(null);
169
+ const [showDataWarning, setShowDataWarning] = (0, _react.useState)(false);
170
+
171
+ // ✅ NEW: Background training state
172
+ const [isBackgroundTrainingStarted, setIsBackgroundTrainingStarted] = (0, _react.useState)(false);
173
+ const [backgroundTrainingProgress, setBackgroundTrainingProgress] = (0, _react.useState)('');
174
+ const [backgroundSocketId, setBackgroundSocketId] = (0, _react.useState)(null);
175
+
176
+ // Function to store connected platforms (writes to BOTH keys for consistency)
177
+ const storeConnectedPlatform = async platformId => {
178
+ try {
179
+ const storedPlatforms = await _asyncStorage.default.getItem('connectedPlatforms');
180
+ let platforms = storedPlatforms ? JSON.parse(storedPlatforms) : [];
181
+
182
+ // Add platform if not already in the list
183
+ if (!platforms.includes(platformId)) {
184
+ platforms.push(platformId);
185
+ await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(platforms));
186
+ await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(platforms));
187
+ console.log('📱 Stored connected platform:', platformId, 'Total platforms:', platforms);
188
+ }
189
+ } catch (error) {
190
+ console.error('Error storing connected platform:', error);
191
+ }
192
+ };
193
+
194
+ // Function to remove connected platform from storage (removes from BOTH keys)
195
+ const removeConnectedPlatform = async platformId => {
196
+ try {
197
+ const storedPlatforms = await _asyncStorage.default.getItem('connectedPlatforms');
198
+ let platforms = storedPlatforms ? JSON.parse(storedPlatforms) : [];
199
+
200
+ // Remove platform from the list
201
+ platforms = platforms.filter(platform => platform !== platformId);
202
+ await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(platforms));
203
+ await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(platforms));
204
+ console.log('📱 Removed connected platform:', platformId, 'Remaining platforms:', platforms);
205
+ } catch (error) {
206
+ console.error('Error removing connected platform:', error);
207
+ }
208
+ };
209
+
210
+ // Function to handle disconnect confirmation
211
+ const handleDisconnectPlatform = (platformId, platformName) => {
212
+ _reactNative.Alert.alert('Disconnect Platform', `Are you sure you want to disconnect ${platformName}?`, [{
213
+ text: 'No',
214
+ style: 'cancel'
215
+ }, {
216
+ text: 'Yes',
217
+ style: 'destructive',
218
+ onPress: async () => {
219
+ try {
220
+ // Update local state to show disconnected
221
+ setConnectionStatuses(prev => ({
222
+ ...prev,
223
+ [platformId]: 'disconnected'
224
+ }));
225
+ setConnections(prev => {
226
+ const newConnections = {
227
+ ...prev
228
+ };
229
+ delete newConnections[platformId];
230
+ return newConnections;
231
+ });
232
+ setPlatformToggles(prev => ({
233
+ ...prev,
234
+ [platformId]: false
235
+ }));
236
+
237
+ // Remove from storage
238
+ await removeConnectedPlatform(platformId);
239
+
240
+ // Call the disconnect function from the hook
241
+ await disconnectPlatform();
242
+ console.log('🔌 Disconnected platform:', platformId);
243
+ } catch (error) {
244
+ console.error('Error disconnecting platform:', error);
245
+ }
246
+ }
247
+ }]);
248
+ };
249
+
250
+ // Function to start animated dots
251
+ const startDotsAnimation = () => {
252
+ if (dotsAnimationRef.current) {
253
+ clearInterval(dotsAnimationRef.current);
254
+ }
255
+ let dotCount = 0;
256
+ dotsAnimationRef.current = setInterval(() => {
257
+ dotCount = (dotCount + 1) % 4; // 0, 1, 2, 3, then back to 0
258
+ if (dotCount === 0) {
259
+ setAnimatedDots('');
260
+ } else {
261
+ setAnimatedDots('.'.repeat(dotCount));
262
+ }
263
+ }, 500); // Change every 500ms
264
+ };
265
+
266
+ // Function to stop animated dots
267
+ const stopDotsAnimation = () => {
268
+ if (dotsAnimationRef.current) {
269
+ clearInterval(dotsAnimationRef.current);
270
+ dotsAnimationRef.current = null;
271
+ }
272
+ setAnimatedDots('');
273
+ };
274
+
275
+ // Split platforms into main and additional
276
+ const mainPlatforms = [{
277
+ id: 'pinterest',
278
+ name: 'Pinterest',
279
+ color: '#E60023'
280
+ }, {
281
+ id: 'youtube',
282
+ name: 'YouTube',
283
+ color: '#FFFFFF'
284
+ }, {
285
+ id: 'linkedin',
286
+ name: 'LinkedIn',
287
+ color: '#0077B5'
288
+ }];
289
+ const additionalPlatforms = [{
290
+ id: 'reddit',
291
+ name: 'Reddit',
292
+ color: '#FFFFFF'
293
+ }, {
294
+ id: 'gmail',
295
+ name: 'Gmail',
296
+ color: '#EA4335'
297
+ }, {
298
+ id: 'chatgpt',
299
+ name: 'ChatGPT',
300
+ color: '#10A37F'
301
+ }];
302
+
303
+ // Keep the original platforms array for compatibility
304
+ const platforms = [...mainPlatforms, ...additionalPlatforms];
305
+
306
+ // const {
307
+ // connectPlatform,
308
+ // disconnectPlatform,
309
+ // getConnectionStatus,
310
+ // isConnecting,
311
+ // } = useConnections(); // Hook not available
312
+ const connectPlatform = async () => {};
313
+ const disconnectPlatform = async () => {};
314
+ const getConnectionStatus = () => 'disconnected';
315
+ const isConnecting = false;
316
+ const isConnected = () => false;
317
+
318
+ // Track connection statuses and currently connecting platform
319
+ const [connectionStatuses, setConnectionStatuses] = (0, _react.useState)({});
320
+ const [connectingPlatform, setConnectingPlatform] = (0, _react.useState)(null);
321
+
322
+ // Function to get the platform icon based on platform ID
323
+ const getPlatformIcon = platformId => {
324
+ return (0, _assetRegistry.getUniversalOnboardingIcon)(platformId);
325
+ };
326
+
327
+ // Track if the modal has ever been visible to prevent initial onClose call
328
+ const hasBeenVisibleRef = (0, _react.useRef)(false);
329
+
330
+ // Store onClose in a ref to avoid dependency issues in useEffect
331
+ const onCloseRef = (0, _react.useRef)(onClose);
332
+ (0, _react.useEffect)(() => {
333
+ onCloseRef.current = onClose;
334
+ }, [onClose]);
335
+ (0, _react.useEffect)(() => {
336
+ if (visible) {
337
+ hasBeenVisibleRef.current = true; // Mark that modal has been visible
338
+ isCompletingRef.current = false; // Reset flag when becoming visible
339
+
340
+ // 🔧 FIX: Reset backdrop opacity before showing to prevent stale state
341
+ backdropOpacity.setValue(0);
342
+ setModalVisible(true);
343
+ loadInitialStatus();
344
+ // Fade in backdrop (slide is handled by Modal's animationType="slide")
345
+ // Small delay to ensure modal is mounted before animating backdrop
346
+ requestAnimationFrame(() => {
347
+ _reactNative.Animated.timing(backdropOpacity, {
348
+ toValue: 1,
349
+ duration: 300,
350
+ useNativeDriver: true
351
+ }).start();
352
+ });
353
+ const subscription = _reactNative.Linking.addEventListener('url', handleUrl);
354
+ return () => {
355
+ subscription.remove();
356
+ };
357
+ } else if (hasBeenVisibleRef.current && !isCompletingRef.current) {
358
+ // Only animate out if NOT completing - prevents flicker during successful completion
359
+ // Fade out backdrop (slide is handled by Modal's animationType="slide")
360
+ _reactNative.Animated.timing(backdropOpacity, {
361
+ toValue: 0,
362
+ duration: 250,
363
+ useNativeDriver: true
364
+ }).start(() => {
365
+ // Use a timeout to prevent animation state updates during unmount
366
+ setTimeout(() => {
367
+ var _onCloseRef$current;
368
+ setModalVisible(false);
369
+ (_onCloseRef$current = onCloseRef.current) === null || _onCloseRef$current === void 0 || _onCloseRef$current.call(onCloseRef); // Call onClose from ref to avoid stale closure
370
+ }, 16);
371
+ });
372
+ } else if (hasBeenVisibleRef.current && isCompletingRef.current) {
373
+ // If completing, hide modal immediately without any animation or delay
374
+ setModalVisible(false);
375
+ // Don't call onClose() when completing - let parent handle the navigation
376
+ isCompletingRef.current = false; // Reset for next time
377
+ }
378
+ }, [visible]); // Removed onClose from dependency array - using ref instead
379
+
380
+ // Cleanup socket connection and dots animation when component unmounts or becomes invisible
381
+ (0, _react.useEffect)(() => {
382
+ return () => {
383
+ if (socketRef.current) {
384
+ console.log('🔌 Cleaning up socket connection...');
385
+ socketRef.current.disconnect();
386
+ socketRef.current = null;
387
+ }
388
+ stopDotsAnimation();
389
+ };
390
+ }, [visible]);
391
+
392
+ // Set up deep link listener for OAuth callbacks
393
+ const handleUrl = (0, _react.useCallback)(({
394
+ url
395
+ }) => {
396
+ if ((0, _platformAuthService.isOAuthCallback)(url)) {
397
+ handleOAuthCallback(url);
398
+ }
399
+ }, []);
400
+
401
+ // Load user data and authentication token when modal becomes visible
402
+ // Also implements cached login - skip to consent for returning users with valid JWT
403
+ (0, _react.useEffect)(() => {
404
+ const loadUserData = async () => {
405
+ try {
406
+ // Check for existing user info first
407
+ const existingToken = await _asyncStorage.default.getItem('existing_user_token');
408
+ const existingInfo = await _asyncStorage.default.getItem('existing_user_info');
409
+ if (existingToken && existingInfo) {
410
+ console.log('🔍 Found existing user info - user wants to add more data');
411
+ setIsExistingUser(true);
412
+ setExistingUserToken(existingToken);
413
+ setExistingUserInfo(JSON.parse(existingInfo));
414
+
415
+ // Clear the temporary storage
416
+ await _asyncStorage.default.removeItem('existing_user_token');
417
+ await _asyncStorage.default.removeItem('existing_user_info');
418
+ }
419
+
420
+ // Use simplified JWT storage
421
+ const token = await (0, _jwtStorageService.getJWT)();
422
+ setUserToken(token);
423
+ if (token) {
424
+ var _user$email;
425
+ // Use provided username or get stored username
426
+ const storedUsername = await (0, _authService.getOnairosUsername)();
427
+ const storedEmail = await _asyncStorage.default.getItem('user_email');
428
+ 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';
429
+ console.log('🔍 Using username for training:', fallbackUsername);
430
+ setUserInfo({
431
+ username: fallbackUsername,
432
+ email: storedEmail || (user === null || user === void 0 ? void 0 : user.email) || null,
433
+ id: null // Will be filled by backend during training
434
+ });
435
+ setUsername(fallbackUsername);
436
+
437
+ // 🔑 CACHED LOGIN: Check if this is a returning user with a valid token
438
+ // Skip directly to consent screen like other normal logins
439
+ if (storedEmail && step === 'welcome' && !primaryAuthOnly) {
440
+ console.log('🔑 [CACHED LOGIN] Found valid token for user:', storedEmail);
441
+
442
+ // Check local storage AND server for connected platforms
443
+ const connectedPlatformsJson = await _asyncStorage.default.getItem('connectedPlatforms');
444
+ const cachedConnections = connectedPlatformsJson ? JSON.parse(connectedPlatformsJson) : [];
445
+
446
+ // Also fetch server-side connections for returning users
447
+ let serverConnections = [];
448
+ try {
449
+ const serverAccounts = await (0, _connectedAccountsService.getConnectedAccountsLookup)(storedEmail);
450
+ serverConnections = serverAccounts.map(a => a.platform.toLowerCase());
451
+ console.log('🔑 [CACHED LOGIN] Server connections:', serverConnections);
452
+ } catch (err) {
453
+ console.warn('🔑 [CACHED LOGIN] Server lookup failed, using local only:', err);
454
+ }
455
+
456
+ // Merge local + server connections (deduplicated)
457
+ const allConnections = Array.from(new Set([...cachedConnections, ...serverConnections]));
458
+
459
+ // Sync merged connections back to local storage
460
+ if (allConnections.length > 0) {
461
+ await _asyncStorage.default.setItem('connectedPlatforms', JSON.stringify(allConnections));
462
+ await _asyncStorage.default.setItem('user_connected_platforms', JSON.stringify(allConnections));
463
+ }
464
+ if (allConnections.length > 0) {
465
+ // User has existing connections - skip to consent screen
466
+ console.log('🔑 [CACHED LOGIN] User has existing connections:', allConnections);
467
+ console.log('🔑 [CACHED LOGIN] Skipping to consent screen');
468
+ setUserEmail(storedEmail);
469
+ setIsReturningUser(true);
470
+ setReturningUserConnections(allConnections);
471
+ setStep('consent');
472
+ } else {
473
+ // User has token but no connections - skip to platforms
474
+ console.log('🔑 [CACHED LOGIN] User authenticated but no connections - skipping to platforms');
475
+ setUserEmail(storedEmail);
476
+ setStep('platforms');
477
+ }
478
+ }
479
+ }
480
+ } catch (error) {
481
+ var _user$email2;
482
+ console.error('Error loading user data:', error);
483
+ // Fallback user info
484
+ 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';
485
+ setUserInfo({
486
+ username: fallbackUsername,
487
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
488
+ id: null
489
+ });
490
+ setUsername(fallbackUsername);
491
+ }
492
+ };
493
+ if (visible) {
494
+ loadUserData();
495
+ }
496
+ }, [visible, user, step, primaryAuthOnly]);
497
+ const loadInitialStatus = async () => {
498
+ try {
499
+ // Get the stored Onairos username first
500
+ const storedUsername = await (0, _authService.getOnairosUsername)();
501
+ 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)}`;
502
+ const finalUsername = storedUsername || fallbackUsername;
503
+ console.log('🔍 Loading username for data connections:', {
504
+ storedUsername,
505
+ fallbackUsername,
506
+ finalUsername
507
+ });
508
+ setUsername(finalUsername);
509
+
510
+ // Initialize connection statuses
511
+ const connectionStatus = await getConnectionStatus();
512
+ console.log('Initial connection status:', connectionStatus);
513
+
514
+ // Update the main connections state
515
+ setConnections(connectionStatus);
516
+
517
+ // Convert connections object to status strings
518
+ const statuses = {};
519
+ Object.keys(connectionStatus).forEach(platform => {
520
+ var _connectionStatus$pla;
521
+ statuses[platform] = (_connectionStatus$pla = connectionStatus[platform]) !== null && _connectionStatus$pla !== void 0 && _connectionStatus$pla.connected ? 'connected' : 'disconnected';
522
+ });
523
+ setConnectionStatuses(statuses);
524
+
525
+ // Initialize platform toggles based on connection statuses
526
+ const toggles = {};
527
+ Object.keys(connectionStatus).forEach(platform => {
528
+ var _connectionStatus$pla2;
529
+ toggles[platform] = ((_connectionStatus$pla2 = connectionStatus[platform]) === null || _connectionStatus$pla2 === void 0 ? void 0 : _connectionStatus$pla2.connected) || false;
530
+ });
531
+ setPlatformToggles(toggles);
532
+ console.log('Connection statuses set:', statuses);
533
+ console.log('Platform toggles set:', toggles);
534
+ } catch (error) {
535
+ console.error('Error loading initial connection status:', error);
536
+ // Set empty objects as fallback
537
+ setConnections({});
538
+ setConnectionStatuses({});
539
+ setPlatformToggles({});
540
+
541
+ // Still set a fallback username even if other loading fails
542
+ 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)}`;
543
+ setUsername(fallbackUsername);
544
+ }
545
+ };
546
+ const handleClose = () => {
547
+ const currentlyCompleting = isCompletingRef.current; // Capture ref's current value
548
+
549
+ // Fade out backdrop (slide out is handled by Modal's animationType="slide")
550
+ _reactNative.Animated.timing(backdropOpacity, {
551
+ toValue: 0,
552
+ duration: 250,
553
+ useNativeDriver: true
554
+ }).start(() => {
555
+ // Small delay before closing modal to ensure animation completes fully
556
+ setTimeout(() => {
557
+ setModalVisible(false);
558
+ if (!currentlyCompleting) {
559
+ // Use the captured value
560
+ onClose();
561
+ }
562
+ // Do NOT reset isCompletingRef.current here. The useEffect watching props.visible is responsible for that.
563
+ }, 100);
564
+ });
565
+ };
566
+
567
+ // ============================================
568
+ // ENOCH-STYLE FLOW HANDLERS
569
+ // ============================================
570
+
571
+ const handleGetStarted = () => {
572
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
573
+
574
+ // 🍎 Apple Sign-In flow: Skip signin step since user already authenticated
575
+ if (primaryAuthOnly) {
576
+ console.log('🍎 Get Started pressed (Apple user) - skipping signin, going to platforms');
577
+ setStep('platforms');
578
+ return;
579
+ }
580
+ console.log('🚀 Get Started pressed - moving to signin');
581
+ setStep('signin');
582
+ };
583
+ const handleEmailSubmit = async emailInput => {
584
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
585
+ setAuthLoading(true);
586
+ setAuthError('');
587
+ try {
588
+ // Check for reviewer bypass
589
+ if (emailInput === 'reviewer@bypass.com') {
590
+ console.log('🔍 Reviewer bypass detected');
591
+ await _asyncStorage.default.setItem('onairos_user', 'true');
592
+ // Note: Reviewer bypass uses a placeholder token
593
+ // Store a valid-looking placeholder JWT for reviewer bypass
594
+ await (0, _jwtStorageService.storeJWT)('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder');
595
+ setUserEmail(emailInput);
596
+ setStep('platforms');
597
+ setAuthLoading(false);
598
+ return;
599
+ }
600
+
601
+ // Check for test bypass - skip to verification screen without sending email
602
+ if (emailInput === 'test@bypass.com') {
603
+ console.log('🧪 Test bypass detected - skipping to verification screen');
604
+ setUserEmail('test@example.com');
605
+ setStep('verification');
606
+ setAuthLoading(false);
607
+ return;
608
+ }
609
+ console.log('📧 Sending verification code to:', emailInput);
610
+
611
+ // Use the email verification API
612
+ const result = await (0, _authService.sendEmailVerificationCode)(emailInput);
613
+ if (result.success) {
614
+ console.log('✅ Verification code sent successfully');
615
+ setUserEmail(emailInput);
616
+ setStep('verification');
617
+ } else {
618
+ console.log('❌ Failed to send verification code:', result.message);
619
+ setAuthError(result.message || 'Failed to send verification code. Please try again.');
620
+ }
621
+ } catch (error) {
622
+ console.error('❌ Error sending verification code:', error);
623
+ setAuthError('Network error. Please check your connection and try again.');
624
+ } finally {
625
+ setAuthLoading(false);
626
+ }
627
+ };
628
+ const handleGoogleSignIn = async () => {
629
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
630
+ setAuthLoading(true);
631
+ setAuthError('');
632
+ try {
633
+ console.log('🔗 Initiating Google Sign-In');
634
+
635
+ // Use the Google Auth Service to trigger native Google Sign-In
636
+ const result = await (0, _googleAuthService.signInWithGoogle)();
637
+ if (result.success && result.user) {
638
+ console.log('✅ Google Sign-In successful:', result.user.email);
639
+ console.log('🔍 Is new user?', result.isNewUser);
640
+
641
+ // Store the user email for later use
642
+ setUserEmail(result.user.email);
643
+
644
+ // Store username in state
645
+ const derivedUsername = result.user.username || result.user.email.split('@')[0];
646
+ setUsername(derivedUsername);
647
+
648
+ // ✅ FIX: Check if user is returning (already has an account)
649
+ if (result.isNewUser === false) {
650
+ console.log('👤 Returning user detected via Google Sign-In - checking for existing connections');
651
+ try {
652
+ // Try to fetch existing connected accounts
653
+ const existingConnections = await (0, _connectedAccountsService.getConnectedAccountsSmart)(result.user.email, result.user.id, derivedUsername);
654
+ if (existingConnections && existingConnections.length > 0) {
655
+ console.log(`✅ Found ${existingConnections.length} existing connections - skipping to consent`);
656
+ // Store connections for the consent screen and mark as returning user
657
+ setIsReturningUser(true);
658
+ setReturningUserConnections(existingConnections.map(c => c.platform));
659
+ setStep('consent');
660
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
661
+ return;
662
+ } else {
663
+ console.log('ℹ️ No existing connections found - proceeding to platforms step');
664
+ }
665
+ } catch (connError) {
666
+ console.log('⚠️ Could not fetch existing connections, proceeding to platforms:', connError);
667
+ }
668
+ }
669
+
670
+ // New user or no existing connections - proceed to platforms step
671
+ setStep('platforms');
672
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
673
+ } else if (result.cancelled) {
674
+ // User cancelled - just return without error
675
+ console.log('ℹ️ Google Sign-In cancelled by user');
676
+ } else {
677
+ // Show error message
678
+ setAuthError(result.message || 'Google Sign-In failed. Please try again.');
679
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
680
+ }
681
+ } catch (error) {
682
+ console.error('❌ Google Sign-In error:', error);
683
+ setAuthError(error.message || 'Google Sign-In failed. Please try again.');
684
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.ERROR);
685
+ setAuthError('Google Sign-In failed. Please try again.');
686
+ } finally {
687
+ setAuthLoading(false);
688
+ }
689
+ };
690
+ const handleCodeSubmit = async code => {
691
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
692
+ setAuthLoading(true);
693
+ setAuthError('');
694
+ try {
695
+ // Test bypass - any code works for test@example.com
696
+ if (userEmail === 'test@example.com') {
697
+ console.log('🧪 Test bypass - skipping code verification, going to platforms');
698
+ setStep('platforms');
699
+ setAuthLoading(false);
700
+ return;
701
+ }
702
+ console.log('🔍 Verifying email code:', userEmail, code);
703
+ console.log('🔍 App name:', AppName);
704
+ const result = await (0, _authService.confirmEmailVerificationCode)(userEmail, code);
705
+ if (result.success) {
706
+ var _result$existingUserD, _result$existingUserD2, _result$existingUserD3, _result$enochInstruct;
707
+ console.log('✅ Email verification successful');
708
+ console.log('🔍 Checking for returning user data...', {
709
+ isNewUser: result.isNewUser,
710
+ flowType: result.flowType,
711
+ hasExistingData: (_result$existingUserD = result.existingUserData) === null || _result$existingUserD === void 0 ? void 0 : _result$existingUserD.hasExistingData,
712
+ 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
713
+ });
714
+
715
+ // Check if this is a returning user with existing connections
716
+ const isReturning = result.isNewUser === false || result.flowType === 'returning_user';
717
+ // 🔧 FIX: Ensure connections is always an array to prevent crash
718
+ const rawConnections = (_result$existingUserD3 = result.existingUserData) === null || _result$existingUserD3 === void 0 ? void 0 : _result$existingUserD3.connections;
719
+ const existingConnections = Array.isArray(rawConnections) ? rawConnections : [];
720
+
721
+ // Extract platform names from connections
722
+ // 🔧 FIX: Add null check for each connection item
723
+ 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
724
+
725
+ console.log('🔍 Returning user check:', {
726
+ isReturning,
727
+ connectedPlatformNames,
728
+ showWelcomeBack: (_result$enochInstruct = result.enochInstructions) === null || _result$enochInstruct === void 0 ? void 0 : _result$enochInstruct.showWelcomeBack
729
+ });
730
+ if (isReturning && connectedPlatformNames.length > 0) {
731
+ // Returning user with connected platforms - skip to consent screen
732
+ console.log('👋 Welcome back! User has existing connections, skipping to consent screen');
733
+ setIsReturningUser(true);
734
+ setReturningUserConnections(connectedPlatformNames);
735
+ setStep('consent');
736
+ } else {
737
+ // New user or returning user without connections - show platform connection
738
+ console.log('🆕 New user or no existing connections, showing platform connection screen');
739
+ setIsReturningUser(false);
740
+ setReturningUserConnections([]);
741
+ setStep('platforms');
742
+ }
743
+ } else {
744
+ console.log('❌ Email verification failed:', result.message);
745
+ setAuthError(result.message || 'Invalid verification code. Please try again.');
746
+ }
747
+ } catch (error) {
748
+ console.error('❌ Error verifying email code:', error);
749
+ setAuthError('Verification failed. Please try again.');
750
+ } finally {
751
+ setAuthLoading(false);
752
+ }
753
+ };
754
+ const handleBackToSignIn = () => {
755
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
756
+ setAuthError('');
757
+ setStep('signin');
758
+ };
759
+
760
+ // Handle logout - clears token and navigates to login page (not close overlay)
761
+ const handleLogout = async () => {
762
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
763
+ console.log('👋 Logout requested - clearing tokens and navigating to login');
764
+ try {
765
+ // Clear all auth tokens AND SDK-specific storage keys
766
+ await _asyncStorage.default.multiRemove(['sdk_jwt_token', 'onairos_jwt_token', 'user_email', 'onairos_username', 'auth_method', 'onairos_user', 'connectedPlatforms', 'user_connected_platforms', 'platform_account_details']);
767
+
768
+ // Clear LLM and LinkedIn connection keys
769
+ const llmPlatforms = ['chatgpt', 'claude', 'gemini', 'grok'];
770
+ for (const llm of llmPlatforms) {
771
+ await _asyncStorage.default.removeItem(`@onairos:llm_connected:${llm}`);
772
+ }
773
+ await _asyncStorage.default.removeItem('@onairos:linkedin_connected');
774
+
775
+ // Clear state
776
+ setUserToken(null);
777
+ setUserInfo(null);
778
+ setUserEmail('');
779
+ setIsReturningUser(false);
780
+ setReturningUserConnections([]);
781
+
782
+ // Navigate to signin step (NOT close the overlay)
783
+ setAuthError('');
784
+ setStep('signin');
785
+ console.log('✅ Logout complete - user is now on login page');
786
+ } catch (error) {
787
+ console.error('❌ Error during logout:', error);
788
+ // Still navigate to signin even on error
789
+ setStep('signin');
790
+ }
791
+ };
792
+ const handleResendCode = async () => {
793
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
794
+ setAuthLoading(true);
795
+ setAuthError('');
796
+ try {
797
+ console.log('🔄 Resending verification code to:', userEmail);
798
+ const result = await (0, _authService.sendEmailVerificationCode)(userEmail);
799
+ if (result.success) {
800
+ console.log('✅ Verification code resent successfully');
801
+ } else {
802
+ setAuthError(result.message || 'Failed to resend verification code.');
803
+ }
804
+ } catch (error) {
805
+ console.error('❌ Error resending verification code:', error);
806
+ setAuthError('Network error. Please try again.');
807
+ } finally {
808
+ setAuthLoading(false);
809
+ }
810
+ };
811
+ const handlePlatformUpdate = async connectedPlatforms => {
812
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.SUCCESS);
813
+ console.log('✅ Onboarding complete! Connected platforms:', connectedPlatforms);
814
+
815
+ // 🚀 OPTIMIZATION: Load auth data in parallel (fast!)
816
+ try {
817
+ const [token, email, storedUsername] = await Promise.all([(0, _authService.getAuthToken)(), _asyncStorage.default.getItem('user_email'), (0, _authService.getOnairosUsername)()]);
818
+ console.log('🔑 [SDK] Auth data retrieved in parallel');
819
+ console.log('🔑 [SDK] Token available:', token ? `${token.substring(0, 20)}...` : 'NO');
820
+ console.log('📧 [SDK] Email available:', email || 'NO');
821
+
822
+ // Set completing flag before closing
823
+ isCompletingRef.current = true;
824
+
825
+ // 🍎 FIX: Always include email if available (critical for Apple sign-in)
826
+ // Apple auth may not have SDK token, but app needs email for platform sync
827
+ const userData = {
828
+ connectedPlatforms
829
+ };
830
+ if (email) {
831
+ userData.email = email;
832
+ userData.username = storedUsername || email.split('@')[0];
833
+ }
834
+ if (token && email) {
835
+ // Full data available - include token
836
+ console.log('✅ [SDK] Calling onComplete with token and user data');
837
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, token, userData));
838
+ } else if (email) {
839
+ // 🍎 Apple sign-in case: Email available but no SDK token
840
+ // App can still sync platforms using email
841
+ console.log('🍎 [SDK] Calling onComplete with email (no SDK token - Apple auth)');
842
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', userData));
843
+ } else {
844
+ // Fallback: No email available
845
+ console.warn('⚠️ [SDK] No email found - calling onComplete with limited data');
846
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', userData));
847
+ }
848
+ } catch (error) {
849
+ console.error('❌ [SDK] Error retrieving auth data for onComplete:', error);
850
+ // Still close the modal even on error - try to get email one more time
851
+ const fallbackEmail = await _asyncStorage.default.getItem('user_email').catch(() => null);
852
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
853
+ connectedPlatforms,
854
+ ...(fallbackEmail && {
855
+ email: fallbackEmail
856
+ })
857
+ }));
858
+ }
859
+
860
+ // NOTE: Modal closes when parent sets visible={false} after onComplete finishes
861
+ // Do NOT call handleClose() here - let the loading animation stay visible
862
+ console.log('✅ [SDK] onComplete finished - waiting for parent to close modal');
863
+ };
864
+ const handlePlatformSkip = async () => {
865
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
866
+ console.log('⏭️ Skipping platform connections');
867
+
868
+ // Even when skipping, pass back the token so the app can register the user
869
+ try {
870
+ // 🚀 OPTIMIZATION: Load data in parallel (fast!)
871
+ const [token, email, storedUsername] = await Promise.all([(0, _authService.getAuthToken)(), _asyncStorage.default.getItem('user_email'), (0, _authService.getOnairosUsername)()]);
872
+
873
+ // Set completing flag before closing
874
+ isCompletingRef.current = true;
875
+ if (token && email) {
876
+ console.log('✅ [SDK] User skipped platforms - still calling onComplete with auth data');
877
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, token, {
878
+ email,
879
+ connectedPlatforms: [],
880
+ username: storedUsername || email.split('@')[0],
881
+ skipped: true
882
+ }));
883
+ } else {
884
+ console.warn('⚠️ [SDK] User skipped - no auth data available');
885
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
886
+ connectedPlatforms: [],
887
+ skipped: true
888
+ }));
889
+ }
890
+ } catch (error) {
891
+ console.error('❌ [SDK] Error during skip:', error);
892
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
893
+ connectedPlatforms: [],
894
+ skipped: true
895
+ }));
896
+ }
897
+
898
+ // NOTE: Modal closes when parent sets visible={false} after onComplete finishes
899
+ console.log('✅ [SDK] Skip complete - waiting for parent to close modal');
900
+ };
901
+ const handleReviewerBypass = async () => {
902
+ console.log('🔍 Reviewer bypass triggered from platforms');
903
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
904
+ try {
905
+ await _asyncStorage.default.setItem('onairos_user', 'true');
906
+ // Note: Reviewer bypass uses a placeholder token
907
+ await (0, _jwtStorageService.storeJWT)('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXZpZXdlciI6dHJ1ZSwiaWF0IjoxNzA0MDY3MjAwfQ.reviewer-bypass-signature-placeholder');
908
+ console.log('✅ Stored reviewer bypass markers');
909
+ handleClose();
910
+ } catch (error) {
911
+ console.error('❌ Failed to store reviewer bypass:', error);
912
+ handleClose();
913
+ }
914
+ };
915
+
916
+ // ============================================
917
+ // END ENOCH-STYLE FLOW HANDLERS
918
+ // ============================================
919
+
920
+ const handleConnectPlatform = async platformId => {
921
+ // Trigger haptic feedback when connect button is pressed
922
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
923
+ setConnectingPlatform(platformId);
924
+ try {
925
+ // Check if the platform has a native SDK
926
+ if ((0, _platformAuthService.hasNativeSDK)(platformId)) {
927
+ // Use native SDK authentication
928
+ setCurrentPlatform(platformId);
929
+ const success = await (0, _platformAuthService.initiateNativeAuth)(platformId, username);
930
+ if (success) {
931
+ // Update connections state
932
+ setConnections(prev => ({
933
+ ...prev,
934
+ [platformId]: {
935
+ userName: username,
936
+ connected: true
937
+ }
938
+ }));
939
+
940
+ // Update platform toggles
941
+ setPlatformToggles(prev => ({
942
+ ...prev,
943
+ [platformId]: true
944
+ }));
945
+
946
+ // Update connection statuses
947
+ setConnectionStatuses(prev => ({
948
+ ...prev,
949
+ [platformId]: 'connected'
950
+ }));
951
+
952
+ // Store the connected platform
953
+ await storeConnectedPlatform(platformId);
954
+ }
955
+ } else {
956
+ // For other platforms, use the web OAuth flow
957
+ setCurrentPlatform(platformId);
958
+ const oauthUrl = await (0, _platformAuthService.initiateOAuth)(platformId, username);
959
+ if (oauthUrl) {
960
+ setOauthUrl(oauthUrl);
961
+ setStep('oauth');
962
+ }
963
+ }
964
+ } catch (error) {
965
+ console.error(`Error connecting to ${platformId}:`, error);
966
+ } finally {
967
+ setConnectingPlatform(null);
968
+ }
969
+ };
970
+ const togglePlatform = (0, _react.useCallback)(async platformId => {
971
+ // If toggling on, initiate the OAuth flow for the platform
972
+ if (!platformToggles[platformId]) {
973
+ try {
974
+ // Special case for Instagram which uses the existing flow
975
+ if (platformId === 'instagram') {
976
+ setPlatformToggles(prev => ({
977
+ ...prev,
978
+ [platformId]: !prev[platformId]
979
+ }));
980
+ setConnections(prev => ({
981
+ ...prev,
982
+ [platformId]: {
983
+ userName: `${platformId}_user`,
984
+ connected: true
985
+ }
986
+ }));
987
+ // Store the connected platform
988
+ await storeConnectedPlatform(platformId);
989
+ return;
990
+ }
991
+
992
+ // ChatGPT/LLM: Full backend implementation - send data directly to backend
993
+ if (platformId === 'chatgpt' || platformId === 'llm') {
994
+ console.log('🤖 Handling LLM/ChatGPT connection - sending to backend...');
995
+
996
+ // In production, this would trigger OAuth flow to get actual ChatGPT data
997
+ // For now, using mock data structure
998
+ const llmData = {
999
+ userId: email || username,
1000
+ email: email || `${username}@temp.com`,
1001
+ appName: AppName,
1002
+ timestamp: Date.now(),
1003
+ data: {
1004
+ conversations: [],
1005
+ chatHistory: [],
1006
+ preferences: {},
1007
+ customData: {}
1008
+ },
1009
+ // These would come from actual OAuth flow
1010
+ accessToken: undefined,
1011
+ refreshToken: undefined,
1012
+ tokenExpiry: undefined
1013
+ };
1014
+
1015
+ // Send LLM data directly to backend for processing and storage
1016
+ const result = await (0, _llmDataStorage.sendLLMDataToBackend)(llmData);
1017
+ if (result.success) {
1018
+ console.log('✅ Backend received and stored LLM data');
1019
+ console.log('📝 Connection ID:', result.connectionId);
1020
+
1021
+ // Update platform toggle state
1022
+ setPlatformToggles(prev => ({
1023
+ ...prev,
1024
+ [platformId]: true
1025
+ }));
1026
+
1027
+ // Update connections state
1028
+ setConnections(prev => ({
1029
+ ...prev,
1030
+ [platformId]: {
1031
+ userName: username,
1032
+ connected: true,
1033
+ connectionId: result.connectionId,
1034
+ storedInBackend: true
1035
+ }
1036
+ }));
1037
+
1038
+ // Store the connected platform
1039
+ await storeConnectedPlatform(platformId);
1040
+ console.log(`✅ ${platformId} successfully connected and stored in backend`);
1041
+ } else {
1042
+ throw new Error(`Failed to send LLM data to backend: ${result.message}`);
1043
+ }
1044
+ return;
1045
+ }
1046
+
1047
+ // Check if the platform has a native SDK
1048
+ if ((0, _platformAuthService.hasNativeSDK)(platformId)) {
1049
+ // Use native SDK authentication
1050
+ setCurrentPlatform(platformId);
1051
+ const success = await (0, _platformAuthService.initiateNativeAuth)(platformId, username);
1052
+ if (success) {
1053
+ // Update connections state
1054
+ setConnections(prev => ({
1055
+ ...prev,
1056
+ [platformId]: {
1057
+ userName: username,
1058
+ connected: true
1059
+ }
1060
+ }));
1061
+
1062
+ // Update platform toggles
1063
+ setPlatformToggles(prev => ({
1064
+ ...prev,
1065
+ [platformId]: true
1066
+ }));
1067
+
1068
+ // Store the connected platform
1069
+ await storeConnectedPlatform(platformId);
1070
+ }
1071
+ return;
1072
+ }
1073
+
1074
+ // For other platforms, use the web OAuth flow
1075
+ setCurrentPlatform(platformId);
1076
+ const oauthUrl = await (0, _platformAuthService.initiateOAuth)(platformId, username);
1077
+
1078
+ // If oauthUrl is null, it means we should use native SDK (which should have been caught above)
1079
+ if (oauthUrl) {
1080
+ setOauthUrl(oauthUrl);
1081
+ setStep('oauth');
1082
+ }
1083
+ } catch (error) {
1084
+ console.error(`Error initiating OAuth for ${platformId}:`, error);
1085
+ // If there's an error, don't toggle the platform
1086
+ return;
1087
+ }
1088
+ } else {
1089
+ // If toggling off, just update the state
1090
+ setPlatformToggles(prev => ({
1091
+ ...prev,
1092
+ [platformId]: !prev[platformId]
1093
+ }));
1094
+
1095
+ // Remove connection
1096
+ setConnections(prev => {
1097
+ const newConnections = {
1098
+ ...prev
1099
+ };
1100
+ delete newConnections[platformId];
1101
+ return newConnections;
1102
+ });
1103
+ }
1104
+ }, [platformToggles, username]);
1105
+
1106
+ /**
1107
+ * Handles OAuth callback URLs
1108
+ */
1109
+ const handleOAuthCallback = (0, _react.useCallback)(url => {
1110
+ try {
1111
+ // Extract the authorization code from the URL
1112
+ const parsedUrl = new URL(url);
1113
+ const code = parsedUrl.searchParams.get('code');
1114
+ const platform = parsedUrl.searchParams.get('platform') || currentPlatform;
1115
+ if (code && platform) {
1116
+ // Update connections state
1117
+ setConnections(prev => ({
1118
+ ...prev,
1119
+ [platform]: {
1120
+ userName: username,
1121
+ connected: true
1122
+ }
1123
+ }));
1124
+
1125
+ // Update platform toggles
1126
+ setPlatformToggles(prev => ({
1127
+ ...prev,
1128
+ [platform]: true
1129
+ }));
1130
+
1131
+ // Return to the connect step
1132
+ setStep('connect');
1133
+ }
1134
+ } catch (error) {
1135
+ console.error('Error handling OAuth callback:', error);
1136
+ }
1137
+ }, [currentPlatform, username]);
1138
+
1139
+ /**
1140
+ * Handles successful OAuth authentication from the OAuthWebView
1141
+ */
1142
+ const handleOAuthSuccess = (0, _react.useCallback)(async code => {
1143
+ console.log(`🎉 OAuth success for ${currentPlatform} - backend callback completed`);
1144
+ console.log(`📝 Received result:`, code);
1145
+ if (currentPlatform) {
1146
+ console.log(`✅ Updating connection state for ${currentPlatform}`);
1147
+
1148
+ // Update connections state
1149
+ setConnections(prev => ({
1150
+ ...prev,
1151
+ [currentPlatform]: {
1152
+ userName: username,
1153
+ connected: true
1154
+ }
1155
+ }));
1156
+
1157
+ // Update platform toggles
1158
+ setPlatformToggles(prev => ({
1159
+ ...prev,
1160
+ [currentPlatform]: true
1161
+ }));
1162
+
1163
+ // Update connection statuses
1164
+ setConnectionStatuses(prev => ({
1165
+ ...prev,
1166
+ [currentPlatform]: 'connected'
1167
+ }));
1168
+
1169
+ // Store the connected platform
1170
+ await storeConnectedPlatform(currentPlatform);
1171
+ console.log(`💾 ${currentPlatform} connection stored successfully`);
1172
+ }
1173
+
1174
+ // Close the OAuth window by returning to the connect step
1175
+ console.log('🔄 Returning to connect step');
1176
+ setOauthUrl('');
1177
+ setStep('connect');
1178
+ }, [currentPlatform, username, storeConnectedPlatform]);
1179
+ const handlePinSubmit = (0, _react.useCallback)(async userPin => {
1180
+ setPin(userPin);
1181
+
1182
+ // Store PIN temporarily for training component access
1183
+ (0, _pinStorageUtils.setTemporaryPin)(userPin);
1184
+ console.log('🔐 [PIN SUBMIT] PIN submitted, checking for background training...');
1185
+
1186
+ // ✅ NEW: Check if background training is already running
1187
+ if (isBackgroundTrainingStarted && backgroundSocketId) {
1188
+ console.log('✅ [PIN SUBMIT] Background training detected, continuing with PIN validation...');
1189
+
1190
+ // Continue with existing training by sending PIN validation
1191
+ try {
1192
+ await continueBackgroundTrainingWithPin(userPin);
1193
+ setStep('persona'); // Move to persona step to show training progress
1194
+ } catch (error) {
1195
+ console.error('❌ [PIN SUBMIT] Failed to continue background training:', error);
1196
+ // ❌ DISABLED: Don't start new training when PIN is submitted
1197
+ // Just show persona step with error state
1198
+ setStep('persona');
1199
+ setPersonaStatus('Error: Failed to continue training');
1200
+ setHasError(true);
1201
+ }
1202
+ } else {
1203
+ console.log('ℹ️ [PIN SUBMIT] No background training detected');
1204
+ // ❌ DISABLED: Don't start training when PIN is submitted
1205
+ // Training should only start during connector→PIN transition
1206
+ setStep('persona');
1207
+ setPersonaStatus('No training in progress. Please restart the flow.');
1208
+ setHasError(true);
1209
+ }
1210
+ console.log('🔐 [PIN SUBMIT] PIN stored securely, moved to persona step');
1211
+ }, [isBackgroundTrainingStarted, backgroundSocketId]);
1212
+
1213
+ // Start real Enoch training via API (restored for backwards compatibility)
1214
+ const startEnochTraining = async (socketId, authToken) => {
1215
+ try {
1216
+ setPersonaStatus('Starting training...');
1217
+ setPersonaProgress(15);
1218
+
1219
+ // Use provided token or get from simplified JWT storage
1220
+ const token = authToken || (await (0, _jwtStorageService.getJWT)());
1221
+ if (!token) {
1222
+ console.error('❌ No authentication token available');
1223
+ throw new Error('No authentication token available');
1224
+ }
1225
+ console.log('🚀 Starting Enoch training with socketId:', socketId);
1226
+ console.log('🔑 Using auth token:', token ? `${token.substring(0, 20)}...` : 'None');
1227
+
1228
+ // Get stored Onairos username for API calls
1229
+ const storedUsername = await (0, _authService.getOnairosUsername)();
1230
+ const finalUsername = storedUsername || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user';
1231
+
1232
+ // Get connected platforms information
1233
+ const connectedPlatforms = await _asyncStorage.default.getItem('connectedPlatforms');
1234
+ const platformsList = connectedPlatforms ? JSON.parse(connectedPlatforms) : [];
1235
+ console.log('📱 Connected platforms for training:', platformsList);
1236
+
1237
+ // Get encrypted PIN for training (if available)
1238
+ const encryptedPin = await (0, _pinEncryptionService.getEncryptedPinForAPI)().catch(error => {
1239
+ console.warn('⚠️ Could not get encrypted PIN for training:', error);
1240
+ return null;
1241
+ });
1242
+
1243
+ // Prepare user data for training - match backend expected format
1244
+ const trainingData = {
1245
+ socketId,
1246
+ username: finalUsername,
1247
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
1248
+ modelKey: null,
1249
+ connectedPlatforms: platformsList,
1250
+ platformConnections: connections,
1251
+ ...(encryptedPin && {
1252
+ encryptedPin: encryptedPin,
1253
+ hasPinData: true
1254
+ })
1255
+ };
1256
+ console.log('📤 Sending training data to /mobile-training/enoch:', trainingData);
1257
+
1258
+ // Use the new training function that includes YouTube migration check
1259
+ const result = await (0, _mobileTrainingService.startEnochTrainingWithYouTubeCheck)(trainingData);
1260
+ console.log('📡 Training API response:', result);
1261
+
1262
+ // Handle CONNECTIONS_REQUIRED scenario (pre-training validation)
1263
+ if (result.requiresConnections || result.code === 'CONNECTIONS_REQUIRED') {
1264
+ console.log('🔗 Connections required detected from HTTP response');
1265
+ setDataScenario('CONNECTIONS_REQUIRED');
1266
+ setDataDetails(result);
1267
+ setShowDataWarning(true);
1268
+ setPersonaStatus('Connections required');
1269
+ setHasError(true);
1270
+ stopDotsAnimation();
1271
+ return;
1272
+ }
1273
+ if (result.success) {
1274
+ console.log('🚀 Training Started:', result.message);
1275
+ console.log('🎯 Training Features:', result.features);
1276
+
1277
+ // Log the new features from the spec
1278
+ if (result.features) {
1279
+ console.log('✅ Inference enabled:', result.features.inference);
1280
+ console.log('💾 Storage method:', result.features.storage);
1281
+ console.log('🔒 Compression enabled:', result.features.compression);
1282
+ console.log('🔐 Encryption enabled:', result.features.encryption);
1283
+ console.log('📊 Training type:', result.features.type);
1284
+ console.log('🗄️ Databases:', result.features.databases);
1285
+ console.log('📈 Query scores enabled:', result.features.queryScores);
1286
+ }
1287
+ setPersonaStatus('Training model...');
1288
+ setPersonaProgress(25);
1289
+ } else {
1290
+ console.error('❌ Training start failed:', result.error);
1291
+ setPersonaStatus(`Error: ${result.error || 'Training failed to start'}`);
1292
+ setHasError(true);
1293
+ stopDotsAnimation();
1294
+ }
1295
+ } catch (error) {
1296
+ console.error('❌ Training start error:', error);
1297
+ setPersonaStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
1298
+ setHasError(true);
1299
+ stopDotsAnimation();
1300
+ }
1301
+ };
1302
+
1303
+ // ✅ NEW: Continue background training with PIN validation
1304
+ const continueBackgroundTrainingWithPin = async userPin => {
1305
+ try {
1306
+ console.log('🔐 [BACKGROUND] Continuing existing background training with PIN validation');
1307
+ console.log('🔑 Using auth token:', `${userToken === null || userToken === void 0 ? void 0 : userToken.substring(0, 20)}...`);
1308
+
1309
+ // Check if we have a valid socket ID
1310
+ if (!backgroundSocketId) {
1311
+ throw new Error('No background socket ID available');
1312
+ }
1313
+
1314
+ // ❌ REMOVED: Don't send new training signal - training already started!
1315
+ // We should just validate the PIN with the existing training, not start new training
1316
+
1317
+ console.log('🔐 [BACKGROUND] PIN validation - continuing with existing training session');
1318
+ console.log('🔌 [BACKGROUND] Using existing socket ID:', backgroundSocketId);
1319
+
1320
+ // Just log that we're continuing - the existing training should handle PIN internally
1321
+ console.log('✅ [BACKGROUND] PIN submitted for existing training session');
1322
+ } catch (error) {
1323
+ console.error('❌ [BACKGROUND] Failed to continue background training:', error);
1324
+ throw error;
1325
+ }
1326
+ };
1327
+
1328
+ // Replace fake persona creation with real training setup
1329
+ const startPersonaCreation = async () => {
1330
+ setPersonaProgress(0);
1331
+ setPersonaStatus('Initializing');
1332
+ setIsPersonaComplete(false);
1333
+ setHasError(false);
1334
+
1335
+ // Start the dots animation
1336
+ startDotsAnimation();
1337
+ try {
1338
+ var _user$email4;
1339
+ console.log('🚀 Starting persona creation...');
1340
+
1341
+ // Ensure we have a valid authentication token before starting
1342
+ console.log('🔐 Step 1: Ensuring authentication token...');
1343
+ const authToken = await ensureAuthToken();
1344
+ if (!authToken) {
1345
+ throw new Error('Failed to create or retrieve authentication token');
1346
+ }
1347
+
1348
+ // Set the token in state
1349
+ setUserToken(authToken);
1350
+ console.log('✅ Authentication token set in state:', `${authToken.substring(0, 20)}...`);
1351
+ console.log('🔍 Token length:', authToken.length);
1352
+
1353
+ // Also verify it was stored properly using simplified JWT storage
1354
+ const storedToken = await (0, _jwtStorageService.getJWT)();
1355
+ console.log('🔑 Token stored verification:', storedToken ? `${storedToken.substring(0, 20)}...` : 'Not stored');
1356
+
1357
+ // If userInfo is not set, try to reload it
1358
+ if (!userInfo) {
1359
+ var _user$email3;
1360
+ console.log('🔄 UserInfo not available, attempting to reload...');
1361
+ const storedUsername = await (0, _authService.getOnairosUsername)();
1362
+ 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';
1363
+ const newUserInfo = {
1364
+ username: fallbackUsername,
1365
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1366
+ id: null
1367
+ };
1368
+ setUserInfo(newUserInfo);
1369
+ setUsername(fallbackUsername);
1370
+ console.log('🧑‍💻 Set user info:', newUserInfo);
1371
+
1372
+ // Give a moment for state to update
1373
+ await new Promise(resolve => setTimeout(() => resolve(), 200));
1374
+ }
1375
+
1376
+ // Check again after potential reload
1377
+ const currentUserInfo = userInfo || {
1378
+ 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',
1379
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1380
+ id: null
1381
+ };
1382
+ if (!authToken) {
1383
+ console.error('❌ No authentication token available after ensureAuthToken');
1384
+ throw new Error('No authentication token available');
1385
+ }
1386
+ console.log('🔧 Setting up socket connection for real training...');
1387
+ console.log('🧑‍💻 User info available:', currentUserInfo);
1388
+ console.log('🔑 Token available:', !!authToken);
1389
+ console.log('🌐 Attempting to connect to: ${API_CONFIG.BASE_URL}');
1390
+ console.log('📱 Device platform:', _reactNative.Platform.OS);
1391
+ console.log('🔗 Network connectivity check starting...');
1392
+ setPersonaStatus('Connecting');
1393
+ setPersonaProgress(5);
1394
+
1395
+ // Initialize socket connection with enhanced configuration
1396
+ socketRef.current = (0, _socket.io)(_api.API_CONFIG.BASE_URL, {
1397
+ transports: ['websocket', 'polling'],
1398
+ // Add polling as fallback
1399
+ autoConnect: false,
1400
+ timeout: 15000,
1401
+ // Increase timeout to 15 seconds
1402
+ reconnection: true,
1403
+ // Enable reconnection with limits
1404
+ reconnectionAttempts: 3,
1405
+ reconnectionDelay: 1000,
1406
+ forceNew: true // Force a new connection
1407
+ });
1408
+ console.log('🔌 Socket instance created:', {
1409
+ connected: socketRef.current.connected,
1410
+ id: socketRef.current.id,
1411
+ disconnected: socketRef.current.disconnected
1412
+ });
1413
+
1414
+ // Socket event listeners with enhanced error handling
1415
+ socketRef.current.on('connect', () => {
1416
+ var _socketRef$current, _socketRef$current2, _socketRef$current3, _socketRef$current4;
1417
+ console.log('✅ Socket connected for training');
1418
+ console.log('🔌 Socket connection details:', {
1419
+ id: (_socketRef$current = socketRef.current) === null || _socketRef$current === void 0 ? void 0 : _socketRef$current.id,
1420
+ connected: (_socketRef$current2 = socketRef.current) === null || _socketRef$current2 === void 0 ? void 0 : _socketRef$current2.connected,
1421
+ 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
1422
+ });
1423
+ setSocketConnected(true);
1424
+ setPersonaStatus('Starting training');
1425
+ setPersonaProgress(10);
1426
+ const socketId = (_socketRef$current4 = socketRef.current) === null || _socketRef$current4 === void 0 ? void 0 : _socketRef$current4.id;
1427
+ console.log('🔌 Socket ID for training:', socketId);
1428
+ if (socketId) {
1429
+ // Add a small delay to ensure socket is fully ready and registered on backend
1430
+ console.log('🔄 Socket ready for persona display with token:', authToken ? `${authToken.substring(0, 20)}...` : 'None');
1431
+ console.log('⏰ Socket registered but training will not start from persona screen...');
1432
+ // ❌ DISABLED: Don't start training from persona screen
1433
+ // Training should only start during connector→PIN transition
1434
+ // setTimeout(() => {
1435
+ // console.log('🚀 Now starting training with socket ID:', socketId);
1436
+ // startEnochTraining(socketId, authToken);
1437
+ // }, 2000);
1438
+
1439
+ // Just show the persona screen without starting training
1440
+ setPersonaStatus('Waiting for training to start from connector→PIN transition');
1441
+ } else {
1442
+ console.error('❌ No socket ID available after connection');
1443
+ setPersonaStatus('Connection error. Please try again.');
1444
+ setHasError(true);
1445
+ stopDotsAnimation();
1446
+ }
1447
+ });
1448
+ socketRef.current.on('disconnect', reason => {
1449
+ var _socketRef$current5;
1450
+ console.log('❌ Socket disconnected, reason:', reason);
1451
+ console.log('🔍 Disconnect details:', {
1452
+ reason: reason,
1453
+ wasConnected: socketConnected,
1454
+ socketId: (_socketRef$current5 = socketRef.current) === null || _socketRef$current5 === void 0 ? void 0 : _socketRef$current5.id
1455
+ });
1456
+ setSocketConnected(false);
1457
+ });
1458
+ socketRef.current.on('reconnect', attemptNumber => {
1459
+ console.log('🔄 Socket reconnected after', attemptNumber, 'attempts');
1460
+ setSocketConnected(true);
1461
+ });
1462
+ socketRef.current.on('reconnect_attempt', attemptNumber => {
1463
+ console.log('🔄 Socket reconnection attempt:', attemptNumber);
1464
+ setPersonaStatus(`Reconnecting... (${attemptNumber}/3)`);
1465
+ });
1466
+ socketRef.current.on('reconnect_error', error => {
1467
+ console.error('❌ Socket reconnection error:', error);
1468
+ });
1469
+ socketRef.current.on('reconnect_failed', () => {
1470
+ console.error('❌ Socket reconnection failed after all attempts');
1471
+ setPersonaStatus('Connection failed. Please try again.');
1472
+ setHasError(true);
1473
+ stopDotsAnimation();
1474
+ });
1475
+ socketRef.current.on('connect_error', error => {
1476
+ console.error('❌ Socket connection error:', error);
1477
+ console.error('❌ Socket error details:', {
1478
+ message: error.message,
1479
+ name: error.name,
1480
+ stack: error.stack,
1481
+ errorObject: error
1482
+ });
1483
+ setPersonaStatus('Connection error. Please try again.');
1484
+ setHasError(true);
1485
+ stopDotsAnimation();
1486
+ });
1487
+ socketRef.current.on('trainingCompleted', data => {
1488
+ console.log('✅ Training Complete:', data);
1489
+ setPersonaStatus('Running test inference');
1490
+ setPersonaProgress(60);
1491
+ });
1492
+ socketRef.current.on('inferenceCompleted', data => {
1493
+ console.log('🧠 Inference Complete:', data);
1494
+ setPersonaStatus('Uploading to S3');
1495
+ setPersonaProgress(80);
1496
+ setUserTraits(data.traits);
1497
+ setInferenceResults(data.inferenceResults);
1498
+ });
1499
+ socketRef.current.on('modelStandby', data => {
1500
+ console.log('🎉 All Complete:', data);
1501
+
1502
+ // Log completion details based on new spec
1503
+ if (data.completed) {
1504
+ console.log('✅ Training completed:', data.message);
1505
+ console.log('💾 Storage method:', data.storage);
1506
+ console.log('🔐 Encryption enabled:', data.encryption);
1507
+ console.log('🧠 Inference enabled:', data.inference);
1508
+
1509
+ // Log database info for Enoch mode
1510
+ if (data.databases && Array.isArray(data.databases)) {
1511
+ console.log('🗄️ Databases used:', data.databases.join(', '));
1512
+ }
1513
+
1514
+ // Log testing mode
1515
+ if (data.testing) {
1516
+ console.log('🧪 Testing mode enabled');
1517
+ }
1518
+ }
1519
+ setIsPersonaComplete(true);
1520
+ setPersonaStatus('Complete!');
1521
+ setPersonaProgress(100);
1522
+ stopDotsAnimation();
1523
+ });
1524
+ socketRef.current.on('trainingUpdate', data => {
1525
+ console.log('📊 Training update:', data);
1526
+
1527
+ // Handle YouTube token expiry
1528
+ if (data.error && data.error.includes('YouTube access token has expired')) {
1529
+ console.log('🔄 YouTube token expired, triggering reconnection...');
1530
+ setDataScenario(null);
1531
+ setShowDataWarning(false);
1532
+ setPersonaStatus('YouTube token expired - reconnecting...');
1533
+
1534
+ // Try to refresh tokens first before full reconnection
1535
+ setTimeout(async () => {
1536
+ try {
1537
+ console.log('🔄 Attempting to refresh YouTube tokens...');
1538
+ const refreshSuccess = await (0, _platformAuthService.refreshYouTubeTokens)();
1539
+ if (refreshSuccess) {
1540
+ console.log('✅ YouTube tokens refreshed, but training restart disabled');
1541
+ setPersonaStatus('YouTube tokens refreshed - but training only starts from connector→PIN');
1542
+
1543
+ // ❌ DISABLED: Don't restart training from persona screen
1544
+ // Training should only start during connector→PIN transition
1545
+ // if (socketRef.current?.id) {
1546
+ // startEnochTraining(socketRef.current.id, userToken ?? undefined);
1547
+ // }
1548
+
1549
+ setHasError(true); // Show error so user can restart flow properly
1550
+ } else {
1551
+ console.log('❌ Token refresh failed, attempting full reconnection...');
1552
+ setPersonaStatus('Token refresh failed - please restart from connector screen');
1553
+
1554
+ // ❌ DISABLED: Don't restart training from persona screen
1555
+ // Fall back to full reconnection
1556
+ try {
1557
+ await handleConnectPlatform('youtube');
1558
+ console.log('✅ YouTube reconnected, but training restart disabled');
1559
+ setPersonaStatus('YouTube reconnected - please restart from connector screen');
1560
+
1561
+ // ❌ DISABLED: Don't restart training from persona screen
1562
+ // Training should only start during connector→PIN transition
1563
+ // if (socketRef.current?.id) {
1564
+ // startEnochTraining(socketRef.current.id, userToken ?? undefined);
1565
+ // }
1566
+
1567
+ setHasError(true); // Show error so user can restart flow properly
1568
+ } catch (reconnectError) {
1569
+ console.error('❌ YouTube reconnection failed:', reconnectError);
1570
+ setPersonaStatus('YouTube reconnection failed. Please restart from connector screen.');
1571
+ setHasError(true);
1572
+ stopDotsAnimation();
1573
+ }
1574
+ }
1575
+ } catch (error) {
1576
+ console.error('❌ YouTube token refresh/reconnection error:', error);
1577
+ setPersonaStatus('YouTube connection failed. Please try again.');
1578
+ setHasError(true);
1579
+ stopDotsAnimation();
1580
+ }
1581
+ }, 1000);
1582
+ return;
1583
+ }
1584
+
1585
+ // Handle connections required scenario (pre-training validation)
1586
+ if (data.requiresConnections || data.code === 'CONNECTIONS_REQUIRED') {
1587
+ console.log('🔗 Connections required detected from socket');
1588
+ setDataScenario('CONNECTIONS_REQUIRED');
1589
+ setDataDetails(data);
1590
+ setShowDataWarning(true);
1591
+ setPersonaStatus('Connections required');
1592
+ setHasError(true);
1593
+ stopDotsAnimation();
1594
+ return;
1595
+ }
1596
+
1597
+ // Handle data scenario responses
1598
+ if (data.code === 'NO_DATA') {
1599
+ console.log('🚫 No data scenario detected');
1600
+ setDataScenario('NO_DATA');
1601
+ setDataDetails(data.details);
1602
+ setShowDataWarning(true);
1603
+ setPersonaStatus('No interaction data found');
1604
+ setHasError(true);
1605
+ stopDotsAnimation();
1606
+ return;
1607
+ }
1608
+ if (data.code === 'LIMITED_DATA') {
1609
+ console.log('ℹ️ Limited data scenario detected');
1610
+ setDataScenario('LIMITED_DATA');
1611
+ setDataDetails(data.details);
1612
+ setShowDataWarning(true);
1613
+ setPersonaStatus('Creating your persona with available data');
1614
+ // Don't set hasError - training continues
1615
+ return;
1616
+ }
1617
+
1618
+ // Handle regular training updates
1619
+ if (data.error) {
1620
+ console.error('❌ Training update error:', data.error);
1621
+ setPersonaStatus(`Error: ${data.error}`);
1622
+ setHasError(true);
1623
+ stopDotsAnimation();
1624
+ } else if (data.progress) {
1625
+ setPersonaProgress(data.progress);
1626
+ setPersonaStatus(data.status || 'Training in progress');
1627
+ // Clear data warning if training progresses normally
1628
+ if (showDataWarning && data.progress > 30) {
1629
+ setShowDataWarning(false);
1630
+ }
1631
+ }
1632
+ });
1633
+
1634
+ // Connect to socket with timeout
1635
+ console.log('🔌 Attempting to connect to socket...');
1636
+ console.log('🔌 Socket config:', {
1637
+ url: _api.API_CONFIG.BASE_URL,
1638
+ transports: ['websocket'],
1639
+ autoConnect: false,
1640
+ timeout: 10000,
1641
+ reconnection: false
1642
+ });
1643
+ socketRef.current.connect();
1644
+ console.log('🔌 Socket connect() called - waiting for connection...');
1645
+
1646
+ // Add immediate state check
1647
+ setTimeout(() => {
1648
+ var _socketRef$current6, _socketRef$current7, _socketRef$current8, _socketRef$current9;
1649
+ console.log('🔍 Socket state after 1 second:', {
1650
+ connected: (_socketRef$current6 = socketRef.current) === null || _socketRef$current6 === void 0 ? void 0 : _socketRef$current6.connected,
1651
+ disconnected: (_socketRef$current7 = socketRef.current) === null || _socketRef$current7 === void 0 ? void 0 : _socketRef$current7.disconnected,
1652
+ id: (_socketRef$current8 = socketRef.current) === null || _socketRef$current8 === void 0 ? void 0 : _socketRef$current8.id,
1653
+ 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
1654
+ });
1655
+ }, 1000);
1656
+ setTimeout(() => {
1657
+ var _socketRef$current0, _socketRef$current1, _socketRef$current10, _socketRef$current11;
1658
+ console.log('🔍 Socket state after 5 seconds:', {
1659
+ connected: (_socketRef$current0 = socketRef.current) === null || _socketRef$current0 === void 0 ? void 0 : _socketRef$current0.connected,
1660
+ disconnected: (_socketRef$current1 = socketRef.current) === null || _socketRef$current1 === void 0 ? void 0 : _socketRef$current1.disconnected,
1661
+ id: (_socketRef$current10 = socketRef.current) === null || _socketRef$current10 === void 0 ? void 0 : _socketRef$current10.id,
1662
+ 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
1663
+ });
1664
+ }, 5000);
1665
+
1666
+ // Set a timeout for socket connection with enhanced fallback
1667
+ setTimeout(() => {
1668
+ if (!socketConnected && socketRef.current && !socketRef.current.connected) {
1669
+ console.error('❌ Socket connection timeout after 20 seconds');
1670
+ console.error('🔍 Socket state:', {
1671
+ connected: socketRef.current.connected,
1672
+ disconnected: socketRef.current.disconnected,
1673
+ id: socketRef.current.id
1674
+ });
1675
+ setPersonaStatus('Connection timeout. Please check your internet and try again.');
1676
+ setHasError(true);
1677
+ stopDotsAnimation();
1678
+
1679
+ // Cleanup socket
1680
+ if (socketRef.current) {
1681
+ socketRef.current.disconnect();
1682
+ socketRef.current = null;
1683
+ }
1684
+ }
1685
+ }, 20000); // Increased timeout to 20 seconds
1686
+ } catch (error) {
1687
+ console.error('❌ Error in startPersonaCreation:', error);
1688
+ setPersonaStatus('Failed to initialize training. Please try again.');
1689
+ setHasError(true);
1690
+ stopDotsAnimation();
1691
+ }
1692
+ };
1693
+
1694
+ // Get user-friendly status message based on progress (updated for real training)
1695
+ const getPersonaStatusMessage = progress => {
1696
+ if (hasError) return 'Something went wrong. Please try again.';
1697
+ if (isPersonaComplete) return 'Your persona is ready! 🎉';
1698
+ let baseMessage = '';
1699
+ if (progress < 20) {
1700
+ baseMessage = 'Keeping your data private';
1701
+ } else if (progress < 40) {
1702
+ baseMessage = 'Trying to understand your mind';
1703
+ } else if (progress < 60) {
1704
+ baseMessage = 'You\'re more interesting than I expected';
1705
+ } else if (progress < 80) {
1706
+ baseMessage = 'Finalizing your unique persona';
1707
+ } else if (progress < 95) {
1708
+ baseMessage = 'Almost done';
1709
+ } else {
1710
+ baseMessage = 'Just a few more seconds';
1711
+ }
1712
+ return baseMessage + animatedDots;
1713
+ };
1714
+
1715
+ // Handle persona completion - now continues the onboarding flow instead of going to separate training
1716
+ const handlePersonaComplete = async () => {
1717
+ console.log('🎉 Real persona creation completed successfully');
1718
+ // Cleanup socket connection
1719
+ if (socketRef.current) {
1720
+ console.log('🔌 Disconnecting training socket...');
1721
+ socketRef.current.disconnect();
1722
+ socketRef.current = null;
1723
+ }
1724
+ // Clear temporary PIN since training is complete
1725
+ (0, _pinStorageUtils.clearTemporaryPin)();
1726
+ // Set the completion flag BEFORE calling onComplete
1727
+ isCompletingRef.current = true;
1728
+
1729
+ // Get the real authentication token using simplified JWT storage
1730
+ try {
1731
+ const realToken = await (0, _jwtStorageService.getJWT)();
1732
+ if (realToken) {
1733
+ console.log('✅ Using real authentication token for onComplete:', `${realToken.substring(0, 30)}...`);
1734
+ // Call onComplete with the REAL token that was created during ensureAuthToken
1735
+ onComplete === null || onComplete === void 0 || onComplete(_api.API_CONFIG.BASE_URL, realToken, {
1736
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1737
+ ...userInfo
1738
+ });
1739
+ } else {
1740
+ console.error('❌ No real authentication token found after training completion');
1741
+ // Fallback to placeholder token if no real token exists
1742
+ onComplete === null || onComplete === void 0 || onComplete(_api.API_CONFIG.BASE_URL, 'training-complete-token', {
1743
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1744
+ ...userInfo
1745
+ });
1746
+ }
1747
+ } catch (error) {
1748
+ console.error('❌ Error retrieving real token for onComplete:', error);
1749
+ // Fallback to placeholder token on error
1750
+ onComplete === null || onComplete === void 0 || onComplete(_api.API_CONFIG.BASE_URL, 'training-complete-token', {
1751
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || '',
1752
+ ...userInfo
1753
+ });
1754
+ }
1755
+ };
1756
+
1757
+ // Ensure authentication token exists before training
1758
+ // NOTE: SDK no longer creates users - user should be authenticated first via Google/Apple/Email
1759
+ const ensureAuthToken = async () => {
1760
+ try {
1761
+ // Use simplified JWT storage to check for existing token
1762
+ const existingToken = await (0, _jwtStorageService.getJWT)();
1763
+ if (existingToken && existingToken.trim().length > 20) {
1764
+ console.log('✅ Authentication token already exists:', `${existingToken.substring(0, 20)}...`);
1765
+ console.log('🔍 Token length:', existingToken.length);
1766
+ return existingToken;
1767
+ }
1768
+
1769
+ // NOTE: SDK no longer creates users during onboarding
1770
+ // User should be authenticated first via Google/Apple/Email
1771
+ console.warn('⚠️ No authentication token found');
1772
+ console.warn('ℹ️ SDK does not create users during onboarding');
1773
+ console.warn('ℹ️ User should authenticate first via Google/Apple/Email');
1774
+
1775
+ // Return null - consuming app is responsible for ensuring user is authenticated
1776
+ return null;
1777
+ } catch (error) {
1778
+ console.error('❌ Error checking authentication token:', error);
1779
+ throw error;
1780
+ }
1781
+ };
1782
+ const canProceed = Object.values(platformToggles).some(value => value);
1783
+ const handleProceed = () => {
1784
+ if (canProceed) {
1785
+ // Trigger haptic feedback when continue button is pressed
1786
+ (0, _haptics.triggerHaptic)(_haptics.HapticType.BUTTON_PRESS);
1787
+
1788
+ // ✅ NEW: Start background training when transitioning from connectors to PIN screen
1789
+ console.log('🚀 [TRANSITION] Starting background training during connect → pin transition');
1790
+ startBackgroundTraining().catch(error => {
1791
+ console.error('❌ [TRANSITION] Background training failed during transition:', error);
1792
+ // Continue to PIN screen even if training fails
1793
+ });
1794
+ setStep('pin');
1795
+ }
1796
+ };
1797
+
1798
+ // Removed navigation dependency for SDK compatibility
1799
+
1800
+ // Training is now handled by the TrainingModal component
1801
+
1802
+ // ✅ NEW: Background training function - starts when PIN screen appears
1803
+ const startBackgroundTraining = (0, _react.useCallback)(async () => {
1804
+ try {
1805
+ console.log('🚀 [BACKGROUND] Starting background training optimization...');
1806
+ setBackgroundTrainingProgress('Connecting...');
1807
+
1808
+ // Step 1: Ensure authentication token exists
1809
+ const authToken = await ensureAuthToken();
1810
+ if (!authToken) {
1811
+ throw new Error('Failed to create authentication token for background training');
1812
+ }
1813
+ console.log('✅ [BACKGROUND] Auth token ready:', `${authToken.substring(0, 20)}...`);
1814
+ setUserToken(authToken);
1815
+
1816
+ // Step 2: Set up user info if not available
1817
+ if (!userInfo) {
1818
+ var _user$email5;
1819
+ const storedUsername = await (0, _authService.getOnairosUsername)();
1820
+ 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';
1821
+ const newUserInfo = {
1822
+ username: fallbackUsername,
1823
+ email: (user === null || user === void 0 ? void 0 : user.email) || null,
1824
+ id: null
1825
+ };
1826
+ setUserInfo(newUserInfo);
1827
+ setUsername(fallbackUsername);
1828
+ console.log('🧑‍💻 [BACKGROUND] User info set:', newUserInfo);
1829
+ }
1830
+
1831
+ // Step 3: Initialize socket connection for background training
1832
+ console.log('🔌 [BACKGROUND] Setting up socket for background training...');
1833
+ setBackgroundTrainingProgress('Initializing data collection...');
1834
+ const backgroundSocket = (0, _socket.io)(_api.API_CONFIG.BASE_URL, {
1835
+ transports: ['websocket', 'polling'],
1836
+ autoConnect: false,
1837
+ timeout: 15000,
1838
+ reconnection: true,
1839
+ reconnectionAttempts: 3,
1840
+ reconnectionDelay: 1000,
1841
+ forceNew: true
1842
+ });
1843
+
1844
+ // Set up socket event listeners for background training
1845
+ backgroundSocket.on('connect', async () => {
1846
+ console.log('✅ [BACKGROUND] Socket connected, starting background data collection...');
1847
+ const socketId = backgroundSocket.id;
1848
+ setBackgroundSocketId(socketId || null);
1849
+ setBackgroundTrainingProgress('Collecting your data...');
1850
+ if (socketId) {
1851
+ // Step 4: Start background training WITHOUT PIN (per backend instructions)
1852
+ await startBackgroundEnochTraining(socketId, authToken);
1853
+ }
1854
+ });
1855
+ backgroundSocket.on('trainingUpdate', data => {
1856
+ if (data.progress) {
1857
+ setBackgroundTrainingProgress(data.status || 'Processing...');
1858
+ console.log('📊 [BACKGROUND] Training progress:', data.progress, '%');
1859
+ }
1860
+ });
1861
+ backgroundSocket.on('disconnect', () => {
1862
+ console.log('❌ [BACKGROUND] Socket disconnected');
1863
+ });
1864
+
1865
+ // Store socket reference for later use
1866
+ socketRef.current = backgroundSocket;
1867
+
1868
+ // Connect the socket to start background training
1869
+ backgroundSocket.connect();
1870
+ console.log('✅ [BACKGROUND] Background training initiated successfully');
1871
+ } catch (error) {
1872
+ console.error('❌ [BACKGROUND] Background training failed:', error);
1873
+ setBackgroundTrainingProgress('');
1874
+ throw error;
1875
+ }
1876
+ }, [userInfo, username, user]);
1877
+
1878
+ // ✅ NEW: Background training API call - starts data collection without PIN
1879
+ const startBackgroundEnochTraining = async (socketId, authToken) => {
1880
+ try {
1881
+ console.log('🚀 [BACKGROUND] Starting background training with socketId:', socketId);
1882
+ console.log('🔑 Using auth token:', `${authToken.substring(0, 20)}...`);
1883
+
1884
+ // Prepare background training data
1885
+ const backgroundData = {
1886
+ socketId,
1887
+ username: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user',
1888
+ email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
1889
+ modelKey: null,
1890
+ connectedPlatforms: [],
1891
+ // No connected platforms for background training
1892
+ platformConnections: {} // No platform connections for background training
1893
+ // No encrypted PIN for background training
1894
+ };
1895
+ console.log('📤 Sending background training data to /mobile-training/enoch:', backgroundData);
1896
+
1897
+ // Use the new training function that includes YouTube migration check
1898
+ const backgroundResult = await (0, _mobileTrainingService.startEnochTrainingWithYouTubeCheck)(backgroundData);
1899
+ console.log('📡 Background training API response:', backgroundResult);
1900
+
1901
+ // Handle CONNECTIONS_REQUIRED scenario (pre-training validation)
1902
+ if (backgroundResult.requiresConnections || backgroundResult.code === 'CONNECTIONS_REQUIRED') {
1903
+ console.log('🔗 Connections required detected from background training');
1904
+ setDataScenario('CONNECTIONS_REQUIRED');
1905
+ setDataDetails(backgroundResult);
1906
+ setShowDataWarning(true);
1907
+ setPersonaStatus('Connections required');
1908
+ setHasError(true);
1909
+ stopDotsAnimation();
1910
+ return;
1911
+ }
1912
+ if (backgroundResult.success) {
1913
+ console.log('🚀 Background training started:', backgroundResult.message);
1914
+ console.log('🎯 Background training Features:', backgroundResult.features);
1915
+
1916
+ // ✅ CRITICAL: Set background training started flag
1917
+ setIsBackgroundTrainingStarted(true);
1918
+
1919
+ // Log the new features from the spec
1920
+ if (backgroundResult.features) {
1921
+ console.log('✅ Inference enabled:', backgroundResult.features.inference);
1922
+ console.log('💾 Storage method:', backgroundResult.features.storage);
1923
+ console.log('🔒 Compression enabled:', backgroundResult.features.compression);
1924
+ console.log('🔐 Encryption enabled:', backgroundResult.features.encryption);
1925
+ console.log('📊 Training type:', backgroundResult.features.type);
1926
+ console.log('🗄️ Databases:', backgroundResult.features.databases);
1927
+ console.log('📈 Query scores enabled:', backgroundResult.features.queryScores);
1928
+ }
1929
+ setPersonaStatus('Background training model...');
1930
+ setPersonaProgress(25);
1931
+ } else {
1932
+ console.error('❌ Background training start failed:', backgroundResult.error);
1933
+ setPersonaStatus(`Error: ${backgroundResult.error || 'Background training failed to start'}`);
1934
+ setHasError(true);
1935
+ stopDotsAnimation();
1936
+ }
1937
+ } catch (error) {
1938
+ console.error('❌ Background training start error:', error);
1939
+ setPersonaStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
1940
+ setHasError(true);
1941
+ stopDotsAnimation();
1942
+ }
1943
+ };
1944
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
1945
+ transparent: true,
1946
+ visible: modalVisible,
1947
+ animationType: "slide",
1948
+ onRequestClose: handleClose,
1949
+ statusBarTranslucent: true
1950
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1951
+ style: styles.modalOverlay
1952
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableWithoutFeedback, {
1953
+ onPress: handleClose
1954
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
1955
+ style: [styles.backdrop, {
1956
+ opacity: backdropOpacity
1957
+ }]
1958
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1959
+ style: styles.bottomSheet
1960
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1961
+ style: styles.container
1962
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1963
+ style: styles.handleContainer
1964
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1965
+ onPress: handleClose,
1966
+ style: styles.handleButton
1967
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1968
+ style: styles.handle
1969
+ }))), showDebugPanel && step === 'platforms' && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1970
+ style: styles.debugPanel
1971
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1972
+ style: styles.debugTitle
1973
+ }, "Debug Padding"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1974
+ style: styles.debugRow
1975
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1976
+ style: styles.debugLabel
1977
+ }, "Container Top: ", debugPaddingTop), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1978
+ onPress: () => setDebugPaddingTop(p => Math.max(0, p - 2)),
1979
+ style: styles.debugBtn
1980
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "-")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1981
+ onPress: () => setDebugPaddingTop(p => p + 2),
1982
+ style: styles.debugBtn
1983
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "+"))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1984
+ style: styles.debugRow
1985
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1986
+ style: styles.debugLabel
1987
+ }, "Container Bottom: ", debugPaddingBottom), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1988
+ onPress: () => setDebugPaddingBottom(p => Math.max(0, p - 2)),
1989
+ style: styles.debugBtn
1990
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "-")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1991
+ onPress: () => setDebugPaddingBottom(p => p + 2),
1992
+ style: styles.debugBtn
1993
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "+"))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
1994
+ style: styles.debugRow
1995
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
1996
+ style: styles.debugLabel
1997
+ }, "Handle Top: ", debugHandlePaddingTop), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
1998
+ onPress: () => setDebugHandlePaddingTop(p => Math.max(0, p - 2)),
1999
+ style: styles.debugBtn
2000
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "-")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
2001
+ onPress: () => setDebugHandlePaddingTop(p => p + 2),
2002
+ style: styles.debugBtn
2003
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "+"))), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
2004
+ onPress: () => setShowDebugPanel(false),
2005
+ style: styles.debugCloseBtn
2006
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
2007
+ style: styles.debugCloseBtnText
2008
+ }, "Hide Debug"))), step === 'welcome' && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2009
+ style: styles.welcomeContainer
2010
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2011
+ style: styles.brandMarkContainer
2012
+ }, /*#__PURE__*/_react.default.createElement(_BrandMark.default, null)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2013
+ style: styles.headingContainer
2014
+ }, /*#__PURE__*/_react.default.createElement(_HeadingGroup.default, null)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2015
+ style: styles.bodyContainer
2016
+ }, /*#__PURE__*/_react.default.createElement(_BodyText.default, null)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2017
+ style: styles.welcomeSpacer
2018
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
2019
+ style: styles.welcomeButtonContainer
2020
+ }, /*#__PURE__*/_react.default.createElement(_PrimaryButton.default, {
2021
+ label: "Get Started",
2022
+ onPress: handleGetStarted,
2023
+ testID: "welcome-get-started-button"
2024
+ }))), step === 'signin' && /*#__PURE__*/_react.default.createElement(_SignInStep.default, {
2025
+ onEmailSubmit: handleEmailSubmit,
2026
+ onGoogleSignIn: handleGoogleSignIn,
2027
+ onContinue: () => setStep('verification'),
2028
+ loading: authLoading,
2029
+ error: authError,
2030
+ initialEmail: userEmail
2031
+ }), step === 'verification' && /*#__PURE__*/_react.default.createElement(_VerificationStep.default, {
2032
+ email: userEmail,
2033
+ onCodeSubmit: handleCodeSubmit,
2034
+ onBack: handleBackToSignIn,
2035
+ loading: authLoading,
2036
+ error: authError,
2037
+ onResendCode: handleResendCode
2038
+ }), step === 'platforms' && /*#__PURE__*/_react.default.createElement(_PlatformConnectorsStep.default, {
2039
+ onUpdate: handlePlatformUpdate,
2040
+ onSkip: allowSkip ? handlePlatformSkip : undefined,
2041
+ onReviewerBypass: handleReviewerBypass,
2042
+ onLogout: handleLogout,
2043
+ allowedPlatforms: allowedPlatforms,
2044
+ recommendedPlatforms: recommendedPlatforms,
2045
+ initialConnectedPlatforms: returningUserConnections,
2046
+ userEmail: userEmail
2047
+ }), step === 'consent' && /*#__PURE__*/_react.default.createElement(_PersonalizationConsentScreen.default, {
2048
+ visible: true,
2049
+ loading: isConsentLoading,
2050
+ onLogout: handleLogout,
2051
+ onAccept: async () => {
2052
+ console.log('✅ Returning user accepted consent');
2053
+
2054
+ // 🚀 Show loading on button immediately
2055
+ setIsConsentLoading(true);
2056
+
2057
+ // Small delay to ensure React renders the loading state
2058
+ await new Promise(resolve => setTimeout(resolve, 50));
2059
+
2060
+ // Call onComplete with the returning user's data
2061
+ try {
2062
+ // 🚀 OPTIMIZATION: Load data in parallel (fast!)
2063
+ const [token, email, storedUsername] = await Promise.all([(0, _authService.getAuthToken)(), _asyncStorage.default.getItem('user_email'), (0, _authService.getOnairosUsername)()]);
2064
+ console.log('🔑 [SDK] Auth data retrieved in parallel for returning user');
2065
+
2066
+ // Set completing flag before calling onComplete
2067
+ isCompletingRef.current = true;
2068
+ if (token && email) {
2069
+ console.log('✅ [SDK] Calling onComplete for returning user');
2070
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, token, {
2071
+ email,
2072
+ connectedPlatforms: returningUserConnections,
2073
+ username: storedUsername || email.split('@')[0],
2074
+ isReturningUser: true
2075
+ }));
2076
+ } else {
2077
+ console.warn('⚠️ [SDK] No token/email found for returning user');
2078
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
2079
+ connectedPlatforms: returningUserConnections,
2080
+ isReturningUser: true
2081
+ }));
2082
+ }
2083
+ } catch (error) {
2084
+ console.error('❌ [SDK] Error during returning user consent:', error);
2085
+ await (onComplete === null || onComplete === void 0 ? void 0 : onComplete(_api.API_CONFIG.BASE_URL, '', {
2086
+ connectedPlatforms: returningUserConnections,
2087
+ isReturningUser: true
2088
+ }));
2089
+ }
2090
+ // NOTE: Keep loading=true - modal stays open until parent sets visible={false}
2091
+ console.log('✅ [SDK] Returning user onComplete finished - waiting for parent to close modal');
2092
+ },
2093
+ onDecline: () => {
2094
+ console.log('❌ Returning user declined consent');
2095
+ handleClose();
2096
+ },
2097
+ connectedPlatforms: returningUserConnections,
2098
+ onConnectMore: () => {
2099
+ // Allow returning users to connect more platforms
2100
+ console.log('➕ Returning user wants to connect more platforms');
2101
+ setStep('platforms');
2102
+ },
2103
+ isReturningUser: isReturningUser,
2104
+ appName: AppName
2105
+ })))));
2106
+ };
2107
+
2108
+ // ============================================
2109
+ // LEGACY CODE REMOVED - The following step handlers were removed:
2110
+ // - step === 'connect' (old platform connection UI)
2111
+ // - step === 'pin' (old PIN input)
2112
+ // - step === 'persona' (old persona screen)
2113
+ // - step === 'oauth' (moved to PlatformConnectorsStep)
2114
+ // - step === 'privacy' (old privacy screen)
2115
+ // - step === 'connections' (old connections screen)
2116
+ // ============================================
2117
+ exports.UniversalOnboarding = UniversalOnboarding;
2118
+ const LEGACY_REMOVED = true; // Marker for removed legacy code
2119
+
2120
+ const styles = _reactNative.StyleSheet.create({
2121
+ modalOverlay: {
2122
+ flex: 1,
2123
+ justifyContent: 'flex-end'
2124
+ },
2125
+ backdrop: {
2126
+ ..._reactNative.StyleSheet.absoluteFillObject,
2127
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
2128
+ },
2129
+ bottomSheet: {
2130
+ backgroundColor: '#FAFAFA',
2131
+ borderTopLeftRadius: 24,
2132
+ borderTopRightRadius: 24,
2133
+ paddingTop: 0,
2134
+ paddingBottom: 0,
2135
+ minHeight: height * .86,
2136
+ overflow: 'hidden',
2137
+ width: '100%'
2138
+ },
2139
+ container: {
2140
+ flex: 1,
2141
+ backgroundColor: '#FAFAFA'
2142
+ },
2143
+ // ============================================
2144
+ // ENOCH-STYLE WELCOME FLOW STYLES
2145
+ // ============================================
2146
+ welcomeContainer: {
2147
+ flex: 1,
2148
+ alignItems: 'center',
2149
+ paddingTop: 70,
2150
+ paddingHorizontal: 24
2151
+ },
2152
+ brandMarkContainer: {
2153
+ marginBottom: 32
2154
+ },
2155
+ headingContainer: {
2156
+ marginBottom: 24
2157
+ },
2158
+ bodyContainer: {
2159
+ marginBottom: 32,
2160
+ width: '100%'
2161
+ },
2162
+ welcomeSpacer: {
2163
+ flex: 1,
2164
+ minHeight: 20
2165
+ },
2166
+ welcomeButtonContainer: {
2167
+ width: '100%',
2168
+ paddingBottom: 20
2169
+ },
2170
+ // ============================================
2171
+ handleContainer: {
2172
+ alignItems: 'center',
2173
+ paddingTop: 12,
2174
+ paddingBottom: 4,
2175
+ backgroundColor: 'transparent'
2176
+ },
2177
+ handleButton: {
2178
+ padding: 0,
2179
+ width: 120,
2180
+ alignItems: 'center'
2181
+ },
2182
+ handle: {
2183
+ width: 100,
2184
+ height: 6,
2185
+ borderRadius: 3,
2186
+ backgroundColor: '#D0D0D0'
2187
+ },
2188
+ debugPanel: {
2189
+ position: 'absolute',
2190
+ top: 60,
2191
+ right: 10,
2192
+ backgroundColor: 'rgba(0,0,0,0.85)',
2193
+ padding: 12,
2194
+ borderRadius: 8,
2195
+ zIndex: 9999,
2196
+ minWidth: 200
2197
+ },
2198
+ debugTitle: {
2199
+ color: '#fff',
2200
+ fontSize: 14,
2201
+ fontWeight: '700',
2202
+ marginBottom: 8
2203
+ },
2204
+ debugRow: {
2205
+ flexDirection: 'row',
2206
+ alignItems: 'center',
2207
+ marginBottom: 6
2208
+ },
2209
+ debugLabel: {
2210
+ color: '#fff',
2211
+ fontSize: 12,
2212
+ flex: 1
2213
+ },
2214
+ debugBtn: {
2215
+ backgroundColor: '#444',
2216
+ paddingHorizontal: 12,
2217
+ paddingVertical: 4,
2218
+ borderRadius: 4,
2219
+ marginLeft: 4
2220
+ },
2221
+ debugCloseBtn: {
2222
+ backgroundColor: '#666',
2223
+ paddingVertical: 6,
2224
+ borderRadius: 4,
2225
+ marginTop: 8,
2226
+ alignItems: 'center'
2227
+ },
2228
+ debugCloseBtnText: {
2229
+ color: '#fff',
2230
+ fontSize: 12
2231
+ },
2232
+ header: {
2233
+ alignItems: 'center',
2234
+ marginBottom: 20,
2235
+ paddingHorizontal: 24
2236
+ },
2237
+ headerContent: {
2238
+ flexDirection: 'row',
2239
+ alignItems: 'center',
2240
+ justifyContent: 'center',
2241
+ marginBottom: 24
2242
+ },
2243
+ appIcon: {
2244
+ width: 48,
2245
+ height: 48,
2246
+ borderRadius: 24,
2247
+ backgroundColor: '#F5F5F5',
2248
+ alignItems: 'center',
2249
+ justifyContent: 'center'
2250
+ },
2251
+ appIconText: {
2252
+ fontSize: 24,
2253
+ fontWeight: 'bold',
2254
+ color: '#333'
2255
+ },
2256
+ arrow: {
2257
+ marginHorizontal: 16,
2258
+ fontSize: 24,
2259
+ color: '#666'
2260
+ },
2261
+ onairosIcon: {
2262
+ width: 54,
2263
+ height: 54,
2264
+ borderRadius: 32,
2265
+ backgroundColor: 'transparent',
2266
+ alignItems: 'center',
2267
+ justifyContent: 'center'
2268
+ },
2269
+ onairosIconText: {
2270
+ fontSize: 24,
2271
+ fontWeight: 'bold',
2272
+ color: '#fff'
2273
+ },
2274
+ onairosIconImage: {
2275
+ width: 54,
2276
+ height: 54
2277
+ },
2278
+ titleContainer: {
2279
+ alignItems: 'center'
2280
+ },
2281
+ mainTitle: {
2282
+ fontSize: 24,
2283
+ fontWeight: '600',
2284
+ color: '#333',
2285
+ textAlign: 'center',
2286
+ marginBottom: 12
2287
+ },
2288
+ privacyMessage: {
2289
+ fontSize: 14,
2290
+ color: '#666',
2291
+ textAlign: 'center',
2292
+ marginBottom: 20
2293
+ },
2294
+ privacyLink: {
2295
+ color: '#000000',
2296
+ fontWeight: '600',
2297
+ textDecorationLine: 'underline'
2298
+ },
2299
+ boldText: {
2300
+ fontWeight: 'bold'
2301
+ },
2302
+ content: {
2303
+ flex: 1,
2304
+ paddingHorizontal: 24
2305
+ },
2306
+ platformsScrollView: {
2307
+ flex: 1,
2308
+ width: '100%'
2309
+ },
2310
+ platformsScrollContent: {
2311
+ paddingBottom: 0,
2312
+ paddingHorizontal: 24
2313
+ },
2314
+ platformsContainer: {
2315
+ marginTop: 16
2316
+ },
2317
+ platformItem: {
2318
+ flexDirection: 'row',
2319
+ alignItems: 'center',
2320
+ justifyContent: 'space-between',
2321
+ paddingVertical: 16,
2322
+ paddingHorizontal: 8,
2323
+ borderBottomWidth: 1,
2324
+ borderBottomColor: '#E5E5E5'
2325
+ },
2326
+ platformInfo: {
2327
+ flexDirection: 'row',
2328
+ alignItems: 'center'
2329
+ },
2330
+ platformIcon: {
2331
+ width: 40,
2332
+ height: 40,
2333
+ borderRadius: 20,
2334
+ backgroundColor: '#F5F5F5',
2335
+ alignItems: 'center',
2336
+ justifyContent: 'center',
2337
+ marginRight: 16
2338
+ },
2339
+ platformIconText: {
2340
+ fontSize: 18,
2341
+ fontWeight: 'bold',
2342
+ color: '#333',
2343
+ textAlign: 'center',
2344
+ textAlignVertical: 'center'
2345
+ },
2346
+ platformIconImage: {
2347
+ width: 24,
2348
+ height: 24
2349
+ },
2350
+ youtubeIconImage: {
2351
+ width: 58,
2352
+ height: 58
2353
+ },
2354
+ redditIconImage: {
2355
+ width: 34,
2356
+ height: 34
2357
+ },
2358
+ pinterestIconImage: {
2359
+ width: 48,
2360
+ height: 48
2361
+ },
2362
+ gmailIconImage: {
2363
+ width: 32,
2364
+ height: 32
2365
+ },
2366
+ linkedinPlatformIcon: {
2367
+ width: 40,
2368
+ height: 40,
2369
+ borderRadius: 8,
2370
+ backgroundColor: '#F5F5F5',
2371
+ alignItems: 'center',
2372
+ justifyContent: 'center',
2373
+ marginRight: 16
2374
+ },
2375
+ pinterestPlatformIcon: {
2376
+ width: 34,
2377
+ height: 34,
2378
+ borderRadius: 17,
2379
+ backgroundColor: '#F5F5F5',
2380
+ alignItems: 'center',
2381
+ justifyContent: 'center',
2382
+ marginRight: 16
2383
+ },
2384
+ platformName: {
2385
+ fontSize: 16,
2386
+ color: '#333',
2387
+ textAlignVertical: 'center'
2388
+ },
2389
+ footer: {
2390
+ flexDirection: 'row',
2391
+ alignItems: 'center',
2392
+ justifyContent: 'space-between',
2393
+ padding: 24,
2394
+ borderTopWidth: 1,
2395
+ borderTopColor: '#E5E5E5'
2396
+ },
2397
+ footerButtonCancel: {
2398
+ paddingVertical: 12,
2399
+ paddingHorizontal: 16
2400
+ },
2401
+ footerButtonText: {
2402
+ color: '#666',
2403
+ fontSize: 16
2404
+ },
2405
+ footerButtonConfirm: {
2406
+ paddingVertical: 12,
2407
+ paddingHorizontal: 24,
2408
+ backgroundColor: '#000000',
2409
+ borderRadius: 8,
2410
+ marginTop: 20
2411
+ },
2412
+ footerButtonConnected: {
2413
+ paddingVertical: 12,
2414
+ paddingHorizontal: 24,
2415
+ backgroundColor: '#E9C46A',
2416
+ borderRadius: 8
2417
+ },
2418
+ footerButtonDisabled: {
2419
+ backgroundColor: '#E5E5E5'
2420
+ },
2421
+ footerButtonTextConfirm: {
2422
+ color: '#fff',
2423
+ fontSize: 16,
2424
+ fontWeight: '600'
2425
+ },
2426
+ footerButtonTextConnected: {
2427
+ color: '#000',
2428
+ fontSize: 16,
2429
+ fontWeight: '600'
2430
+ },
2431
+ connectContainer: {
2432
+ flex: 1
2433
+ },
2434
+ modalContent: {
2435
+ flex: 1,
2436
+ backgroundColor: '#FFFFFF',
2437
+ borderTopLeftRadius: 20,
2438
+ borderTopRightRadius: 20,
2439
+ padding: 24
2440
+ },
2441
+ backButton: {
2442
+ padding: 8,
2443
+ width: 40
2444
+ },
2445
+ backButtonText: {
2446
+ fontSize: 24,
2447
+ color: '#000000'
2448
+ },
2449
+ backButtonSpacer: {
2450
+ width: 40
2451
+ },
2452
+ headerTitle: {
2453
+ fontSize: 18,
2454
+ fontWeight: '600',
2455
+ color: '#333',
2456
+ textAlign: 'center'
2457
+ },
2458
+ privacyHeader: {
2459
+ flexDirection: 'row',
2460
+ alignItems: 'center',
2461
+ justifyContent: 'space-between',
2462
+ paddingHorizontal: 16,
2463
+ paddingVertical: 20,
2464
+ backgroundColor: '#FFFFFF',
2465
+ borderBottomWidth: 1,
2466
+ borderBottomColor: '#F0F0F0'
2467
+ },
2468
+ privacyDetailsContainer: {
2469
+ paddingHorizontal: 24,
2470
+ paddingVertical: 8,
2471
+ flex: 1,
2472
+ marginTop: 20
2473
+ },
2474
+ privacyDetailsTitle: {
2475
+ fontSize: 20,
2476
+ fontWeight: '600',
2477
+ color: '#333',
2478
+ marginBottom: 0
2479
+ },
2480
+ privacyBulletPoint: {
2481
+ flexDirection: 'row',
2482
+ marginBottom: 16,
2483
+ alignItems: 'flex-start'
2484
+ },
2485
+ bulletPoint: {
2486
+ fontSize: 18,
2487
+ marginRight: 8,
2488
+ color: '#333'
2489
+ },
2490
+ privacyBulletText: {
2491
+ fontSize: 16,
2492
+ color: '#333',
2493
+ flex: 1,
2494
+ lineHeight: 24
2495
+ },
2496
+ connectionsCountText: {
2497
+ fontSize: 18,
2498
+ fontWeight: '600',
2499
+ color: '#333',
2500
+ marginBottom: 24
2501
+ },
2502
+ personaContainer: {
2503
+ flex: 1,
2504
+ padding: 16,
2505
+ backgroundColor: '#fff',
2506
+ justifyContent: 'flex-start'
2507
+ },
2508
+ personaHeaderWithBack: {
2509
+ flexDirection: 'row',
2510
+ alignItems: 'center',
2511
+ justifyContent: 'space-between',
2512
+ marginBottom: 16,
2513
+ paddingVertical: 8
2514
+ },
2515
+ personaBackButton: {
2516
+ padding: 8
2517
+ },
2518
+ personaHeader: {
2519
+ alignItems: 'center',
2520
+ marginBottom: 32,
2521
+ paddingHorizontal: 24
2522
+ },
2523
+ personaTitle: {
2524
+ fontSize: 20,
2525
+ fontWeight: '600',
2526
+ color: '#333',
2527
+ textAlign: 'center',
2528
+ flex: 1,
2529
+ marginBottom: 8
2530
+ },
2531
+ personaSubtitle: {
2532
+ fontSize: 14,
2533
+ color: '#666',
2534
+ marginBottom: 24,
2535
+ textAlign: 'center'
2536
+ },
2537
+ personaProgressContainer: {
2538
+ marginBottom: 24,
2539
+ paddingHorizontal: 0
2540
+ },
2541
+ personaProgressBar: {
2542
+ height: 8,
2543
+ backgroundColor: '#F5F5F5',
2544
+ borderRadius: 4,
2545
+ overflow: 'hidden',
2546
+ marginBottom: 12
2547
+ },
2548
+ personaProgressFill: {
2549
+ height: '100%',
2550
+ backgroundColor: '#1BA9D4',
2551
+ borderRadius: 4
2552
+ },
2553
+ personaProgressText: {
2554
+ fontSize: 16,
2555
+ fontWeight: '600',
2556
+ color: '#333',
2557
+ textAlign: 'center',
2558
+ marginBottom: 8
2559
+ },
2560
+ personaStatusText: {
2561
+ fontSize: 14,
2562
+ color: '#666',
2563
+ textAlign: 'center'
2564
+ },
2565
+ personaCompleteContainer: {
2566
+ alignItems: 'center',
2567
+ paddingHorizontal: 0
2568
+ },
2569
+ personaCompleteTitle: {
2570
+ fontSize: 20,
2571
+ fontWeight: '600',
2572
+ color: '#333',
2573
+ marginBottom: 8,
2574
+ textAlign: 'center'
2575
+ },
2576
+ personaCompleteSubtitle: {
2577
+ fontSize: 14,
2578
+ color: '#666',
2579
+ textAlign: 'center',
2580
+ marginBottom: 40
2581
+ },
2582
+ personaContinueButton: {
2583
+ backgroundColor: '#000000',
2584
+ paddingVertical: 16,
2585
+ paddingHorizontal: 48,
2586
+ borderRadius: 16,
2587
+ alignItems: 'center',
2588
+ width: '100%',
2589
+ marginTop: 32,
2590
+ shadowColor: '#000',
2591
+ shadowOffset: {
2592
+ width: 0,
2593
+ height: 2
2594
+ },
2595
+ shadowOpacity: 0.1,
2596
+ shadowRadius: 4,
2597
+ elevation: 3
2598
+ },
2599
+ personaContinueButtonText: {
2600
+ color: '#fff',
2601
+ fontSize: 16,
2602
+ fontWeight: '600'
2603
+ },
2604
+ progressError: {
2605
+ backgroundColor: '#FF3B30'
2606
+ },
2607
+ dataWarningContainer: {
2608
+ padding: 16,
2609
+ borderRadius: 12,
2610
+ marginTop: 16,
2611
+ borderWidth: 1,
2612
+ shadowColor: '#000',
2613
+ shadowOffset: {
2614
+ width: 0,
2615
+ height: 2
2616
+ },
2617
+ shadowOpacity: 0.1,
2618
+ shadowRadius: 4,
2619
+ elevation: 3
2620
+ },
2621
+ dataWarningHeader: {
2622
+ flexDirection: 'row',
2623
+ alignItems: 'center',
2624
+ marginBottom: 8
2625
+ },
2626
+ dataWarningIcon: {
2627
+ fontSize: 20,
2628
+ marginRight: 8
2629
+ },
2630
+ dataWarningTitle: {
2631
+ fontSize: 16,
2632
+ fontWeight: '600',
2633
+ flex: 1
2634
+ },
2635
+ dataWarningMessage: {
2636
+ fontSize: 14,
2637
+ marginBottom: 0,
2638
+ lineHeight: 20
2639
+ },
2640
+ dataWarningSuggestions: {
2641
+ marginTop: 12,
2642
+ paddingTop: 12,
2643
+ borderTopWidth: 1
2644
+ },
2645
+ dataWarningSuggestionsTitle: {
2646
+ fontSize: 14,
2647
+ fontWeight: '600',
2648
+ marginBottom: 6
2649
+ },
2650
+ dataWarningSuggestionItem: {
2651
+ fontSize: 13,
2652
+ marginBottom: 4,
2653
+ lineHeight: 18
2654
+ },
2655
+ dataWarningContinueNote: {
2656
+ fontSize: 13,
2657
+ fontWeight: '500',
2658
+ marginTop: 12,
2659
+ fontStyle: 'italic'
2660
+ },
2661
+ dataWarningError: {
2662
+ backgroundColor: '#FFF5F5',
2663
+ borderColor: '#FEB2B2'
2664
+ },
2665
+ dataInfoContainer: {
2666
+ backgroundColor: '#F0F9FF',
2667
+ borderColor: '#BAE6FD'
2668
+ },
2669
+ dataConnectionsRequired: {
2670
+ backgroundColor: '#F5F5F5',
2671
+ borderColor: '#D1D5DB',
2672
+ shadowColor: '#6B7280',
2673
+ shadowOffset: {
2674
+ width: 0,
2675
+ height: 0
2676
+ },
2677
+ shadowOpacity: 0.15,
2678
+ shadowRadius: 8
2679
+ },
2680
+ highlightedBackButton: {
2681
+ backgroundColor: '#F5F5F5',
2682
+ borderRadius: 20,
2683
+ borderWidth: 2,
2684
+ borderColor: '#000000',
2685
+ shadowColor: '#000000',
2686
+ shadowOffset: {
2687
+ width: 0,
2688
+ height: 0
2689
+ },
2690
+ shadowOpacity: 0.3,
2691
+ shadowRadius: 8,
2692
+ elevation: 5
2693
+ },
2694
+ highlightedBackArrow: {
2695
+ color: '#000000',
2696
+ fontWeight: 'bold'
2697
+ },
2698
+ goBackButton: {
2699
+ backgroundColor: '#000000',
2700
+ paddingVertical: 12,
2701
+ paddingHorizontal: 16,
2702
+ borderRadius: 8,
2703
+ marginTop: 12,
2704
+ alignItems: 'center',
2705
+ shadowColor: '#000000',
2706
+ shadowOffset: {
2707
+ width: 0,
2708
+ height: 0
2709
+ },
2710
+ shadowOpacity: 0.3,
2711
+ shadowRadius: 6,
2712
+ elevation: 3
2713
+ },
2714
+ goBackButtonText: {
2715
+ color: '#FFFFFF',
2716
+ fontSize: 14,
2717
+ fontWeight: '600'
2718
+ },
2719
+ additionalPlatformsToggle: {
2720
+ paddingVertical: 16,
2721
+ paddingHorizontal: 8,
2722
+ alignItems: 'center',
2723
+ borderBottomWidth: 1,
2724
+ borderBottomColor: '#E5E5E5'
2725
+ },
2726
+ additionalPlatformsText: {
2727
+ fontSize: 14,
2728
+ color: '#666',
2729
+ fontWeight: '500'
2730
+ },
2731
+ asterisk: {
2732
+ color: '#FF6B6B',
2733
+ fontSize: 16,
2734
+ fontWeight: 'bold',
2735
+ marginLeft: 2
2736
+ },
2737
+ linkedinRequirementContainer: {
2738
+ backgroundColor: '#F8F9FA',
2739
+ borderWidth: 1,
2740
+ borderColor: '#E5E7EB',
2741
+ borderRadius: 8,
2742
+ paddingHorizontal: 12,
2743
+ paddingVertical: 8,
2744
+ marginTop: 8,
2745
+ marginHorizontal: 4
2746
+ },
2747
+ linkedinRequirementText: {
2748
+ fontSize: 12,
2749
+ fontStyle: 'italic',
2750
+ textAlign: 'center'
2751
+ },
2752
+ linkedinRequirementAsterisk: {
2753
+ color: '#FF6B6B',
2754
+ fontWeight: 'bold'
2755
+ },
2756
+ linkedinRequirementMessage: {
2757
+ color: '#6B7280'
2758
+ },
2759
+ existingUserBanner: {
2760
+ backgroundColor: '#F0F9FF',
2761
+ borderWidth: 1,
2762
+ borderColor: '#0EA5E9',
2763
+ borderRadius: 12,
2764
+ paddingHorizontal: 16,
2765
+ paddingVertical: 12,
2766
+ marginTop: 12
2767
+ },
2768
+ existingUserText: {
2769
+ fontSize: 14,
2770
+ fontWeight: '600',
2771
+ color: '#0369A1',
2772
+ marginBottom: 4
2773
+ },
2774
+ existingUserSubtext: {
2775
+ fontSize: 12,
2776
+ color: '#0C4A6E',
2777
+ lineHeight: 16
2778
+ }
2779
+ });
2780
+ //# sourceMappingURL=UniversalOnboarding.js.map