@evomap/evolver 1.89.10 → 1.89.12

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 (112) hide show
  1. package/.cursor/BUGBOT.md +182 -0
  2. package/.env.example +68 -0
  3. package/.git-commit-guard-token +1 -0
  4. package/.github/CODEOWNERS +63 -0
  5. package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
  6. package/.github/pull_request_template.md +45 -0
  7. package/.github/workflows/test.yml +75 -0
  8. package/CHANGELOG.md +1367 -0
  9. package/README.ja-JP.md +1 -1
  10. package/README.ko-KR.md +1 -1
  11. package/README.md +90 -536
  12. package/README.public.md +578 -0
  13. package/README.zh-CN.md +1 -1
  14. package/SECURITY.md +108 -0
  15. package/assets/gep/events.jsonl +3 -0
  16. package/examples/atp-consumer-quickstart.md +100 -0
  17. package/examples/hello-world.md +38 -0
  18. package/index.js +5 -3
  19. package/package.json +6 -18
  20. package/proxy-package.json +39 -0
  21. package/public.manifest.json +145 -0
  22. package/src/adapters/scripts/evolver-session-end.js +18 -37
  23. package/src/atp/atpExecute.js +27 -71
  24. package/src/atp/serviceHelper.js +28 -36
  25. package/src/config.js +17 -0
  26. package/src/evolve/guards.js +721 -1
  27. package/src/evolve/pipeline/collect.js +1283 -1
  28. package/src/evolve/pipeline/dispatch.js +421 -1
  29. package/src/evolve/pipeline/enrich.js +440 -1
  30. package/src/evolve/pipeline/hub.js +319 -1
  31. package/src/evolve/pipeline/select.js +274 -1
  32. package/src/evolve/pipeline/signals.js +206 -1
  33. package/src/evolve/utils.js +264 -1
  34. package/src/evolve.js +350 -1
  35. package/src/gep/a2aProtocol.js +4463 -1
  36. package/src/gep/antiAbuseTelemetry.js +233 -1
  37. package/src/gep/autoDistillConv.js +205 -1
  38. package/src/gep/autoDistillLlm.js +315 -1
  39. package/src/gep/candidateEval.js +92 -1
  40. package/src/gep/candidates.js +198 -1
  41. package/src/gep/contentHash.js +30 -1
  42. package/src/gep/conversationDistiller.js +270 -0
  43. package/src/gep/conversationSniffer.js +266 -1
  44. package/src/gep/crypto.js +89 -1
  45. package/src/gep/curriculum.js +163 -1
  46. package/src/gep/deviceId.js +218 -1
  47. package/src/gep/envFingerprint.js +118 -1
  48. package/src/gep/epigenetics.js +31 -1
  49. package/src/gep/execBridge.js +712 -1
  50. package/src/gep/explore.js +289 -1
  51. package/src/gep/hash.js +15 -1
  52. package/src/gep/hubFetch.js +608 -1
  53. package/src/gep/hubReview.js +207 -1
  54. package/src/gep/hubSearch.js +526 -1
  55. package/src/gep/hubVerify.js +306 -1
  56. package/src/gep/learningSignals.js +89 -1
  57. package/src/gep/memoryGraph.js +1449 -1
  58. package/src/gep/memoryGraphAdapter.js +203 -1
  59. package/src/gep/mutation.js +203 -1
  60. package/src/gep/narrativeMemory.js +108 -1
  61. package/src/gep/oauthLogin.js +9 -3
  62. package/src/gep/openPRRegistry.js +205 -1
  63. package/src/gep/personality.js +423 -1
  64. package/src/gep/policyCheck.js +599 -1
  65. package/src/gep/privacyClient.js +10 -9
  66. package/src/gep/prompt.js +836 -1
  67. package/src/gep/questionGenerator.js +103 -0
  68. package/src/gep/recallInject.js +409 -1
  69. package/src/gep/recallVerifier.js +318 -1
  70. package/src/gep/reflection.js +177 -1
  71. package/src/gep/savingsCore.js +112 -1
  72. package/src/gep/selector.js +602 -1
  73. package/src/gep/signals.js +85 -17
  74. package/src/gep/skillDistiller.js +1294 -1
  75. package/src/gep/solidify.js +1699 -1
  76. package/src/gep/strategy.js +136 -1
  77. package/src/gep/tokenSavings.js +95 -1
  78. package/src/gep/workspaceKeychain.js +174 -1
  79. package/src/proxy/extensions/traceControl.js +109 -1
  80. package/src/proxy/index.js +100 -3
  81. package/src/proxy/inject.js +52 -1
  82. package/src/proxy/lifecycle/manager.js +108 -7
  83. package/src/proxy/server/routes.js +41 -7
  84. package/src/proxy/server/settings.js +6 -2
  85. package/src/proxy/sync/engine.js +31 -15
  86. package/src/proxy/sync/inbound.js +87 -9
  87. package/src/proxy/sync/outbound.js +57 -4
  88. package/src/proxy/trace/extractor.js +1403 -1
  89. package/src/proxy/trace/usage.js +105 -1
  90. package/CONTRIBUTING.md +0 -19
  91. package/assets/cover.png +0 -0
  92. package/scripts/a2a_export.js +0 -63
  93. package/scripts/a2a_ingest.js +0 -79
  94. package/scripts/a2a_promote.js +0 -118
  95. package/scripts/analyze_by_skill.js +0 -121
  96. package/scripts/build_binaries.js +0 -479
  97. package/scripts/check-changelog.js +0 -166
  98. package/scripts/extract_log.js +0 -85
  99. package/scripts/generate_history.js +0 -75
  100. package/scripts/gep_append_event.js +0 -96
  101. package/scripts/gep_personality_report.js +0 -234
  102. package/scripts/human_report.js +0 -147
  103. package/scripts/recall-verify-report.js +0 -234
  104. package/scripts/recover_loop.js +0 -61
  105. package/scripts/refresh_stars_badge.js +0 -168
  106. package/scripts/seed-merchants.js +0 -91
  107. package/scripts/suggest_version.js +0 -89
  108. package/scripts/validate-modules.js +0 -38
  109. package/scripts/validate-suite.js +0 -78
  110. package/skills/index.json +0 -14
  111. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  112. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,264 @@
1
- const _0x355ca1=_0x24c1;(function(_0x11d96c,_0x3ef8ba){const _0x42a193=_0x24c1,_0x2bf0b0=_0x11d96c();while(!![]){try{const _0x9c8e56=parseInt(_0x42a193(0x23a,'\x34\x69\x76\x7a'))/(-0x3b9*0x9+0xff4*0x2+0xa*0x29)+parseInt(_0x42a193(0x2a0,'\x68\x46\x71\x58'))/(0x69d+-0x247+0x115*-0x4)*(-parseInt(_0x42a193(0x232,'\x68\x46\x71\x58'))/(-0x1*-0x1121+0x151*-0x6+-0x938))+-parseInt(_0x42a193(0x1a0,'\x64\x69\x6a\x5b'))/(-0x2*-0x685+0x236+0x4*-0x3cf)*(parseInt(_0x42a193(0x1d8,'\x21\x74\x25\x4c'))/(-0x1*0x919+-0x9c2+-0x97*-0x20))+-parseInt(_0x42a193(0x1f5,'\x34\x69\x76\x7a'))/(-0x151e+0xb*-0x295+0x318b)*(-parseInt(_0x42a193(0x265,'\x52\x46\x31\x6f'))/(-0xfa*0xd+0xa*0x20d+-0x7c9))+parseInt(_0x42a193(0x28f,'\x6c\x26\x49\x73'))/(-0x16dc*-0x1+0x1374+-0x84*0x52)+parseInt(_0x42a193(0x28a,'\x48\x5e\x5a\x62'))/(-0x232c+0x2151+0x1e4)*(parseInt(_0x42a193(0x1c8,'\x65\x51\x5e\x28'))/(0x12f7+0x1cef+-0x2fdc))+-parseInt(_0x42a193(0x28c,'\x65\x51\x5e\x28'))/(0xbf5*-0x3+-0x6*0x50c+-0x4a*-0xe5);if(_0x9c8e56===_0x3ef8ba)break;else _0x2bf0b0['push'](_0x2bf0b0['shift']());}catch(_0x526c5b){_0x2bf0b0['push'](_0x2bf0b0['shift']());}}}(_0x17a9,0x279de+0x20f95+-0x1253c));const _0x56fb83=(function(){const _0x34677a=_0x24c1,_0x4f972b={};_0x4f972b['\x57\x4f\x65\x41\x73']=function(_0x49c801,_0x23b0ac){return _0x49c801!==_0x23b0ac;},_0x4f972b[_0x34677a(0x1db,'\x73\x6e\x31\x4f')]=_0x34677a(0x1e6,'\x54\x4e\x4c\x5a');const _0x29df2c=_0x4f972b;let _0x39d9f3=!![];return function(_0x3b5053,_0x239a24){const _0x4be32d=_0x39d9f3?function(){const _0x4ff773=_0x24c1;if(_0x29df2c[_0x4ff773(0x2ab,'\x5d\x33\x25\x41')](_0x4ff773(0x258,'\x73\x6e\x31\x4f'),_0x29df2c[_0x4ff773(0x212,'\x29\x59\x4f\x43')]))return _0x7dc8a4;else{if(_0x239a24){const _0x374235=_0x239a24[_0x4ff773(0x25c,'\x52\x46\x31\x6f')](_0x3b5053,arguments);return _0x239a24=null,_0x374235;}}}:function(){};return _0x39d9f3=![],_0x4be32d;};}()),_0x5d7259=_0x56fb83(this,function(){const _0x4de571=_0x24c1;return _0x5d7259[_0x4de571(0x1fb,'\x65\x51\x5e\x28')]()[_0x4de571(0x1cb,'\x54\x75\x32\x69')](_0x4de571(0x1c7,'\x6c\x26\x49\x73')+_0x4de571(0x1e5,'\x36\x46\x58\x34'))[_0x4de571(0x1c3,'\x35\x37\x4d\x35')]()[_0x4de571(0x204,'\x2a\x39\x47\x6b')+_0x4de571(0x1e7,'\x59\x39\x7a\x71')](_0x5d7259)[_0x4de571(0x2a3,'\x6a\x53\x5a\x36')]('\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x4de571(0x1f0,'\x52\x46\x31\x6f'));});function _0x17a9(){const _0x3973ea=['\x57\x50\x4a\x63\x52\x32\x72\x51','\x77\x58\x4a\x64\x4f\x38\x6b\x6e\x57\x51\x53\x53\x57\x37\x5a\x63\x54\x71','\x57\x36\x47\x79\x78\x64\x79','\x65\x4b\x75\x46\x72\x4b\x43','\x64\x5a\x75\x66\x79\x6d\x6b\x45\x57\x37\x52\x64\x51\x43\x6f\x4c','\x57\x35\x54\x56\x77\x43\x6b\x38\x73\x71','\x57\x51\x38\x51\x68\x53\x6f\x47\x74\x58\x42\x63\x4e\x38\x6b\x34','\x65\x6d\x6f\x46\x72\x72\x71','\x63\x73\x69\x66\x41\x53\x6b\x2f\x57\x37\x5a\x64\x55\x6d\x6f\x50','\x6e\x6d\x6f\x42\x70\x4b\x47','\x57\x50\x57\x6d\x6a\x74\x74\x63\x54\x71','\x57\x50\x56\x64\x55\x43\x6f\x46\x57\x4f\x56\x64\x48\x4a\x65\x6b','\x57\x52\x70\x63\x4d\x72\x30\x2f\x57\x4f\x70\x64\x47\x6d\x6f\x4b\x75\x61','\x57\x52\x39\x4d\x57\x51\x5a\x64\x55\x43\x6b\x6a','\x57\x51\x37\x64\x48\x53\x6f\x30\x57\x37\x42\x64\x56\x71','\x57\x35\x5a\x64\x49\x38\x6f\x53\x57\x50\x33\x63\x52\x61\x6d','\x57\x36\x50\x73\x57\x34\x78\x64\x48\x71\x75','\x57\x4f\x4c\x6f\x6e\x74\x4a\x63\x48\x71','\x71\x53\x6f\x58\x71\x77\x4f','\x68\x6d\x6f\x55\x57\x37\x70\x63\x47\x47\x4a\x64\x4e\x53\x6b\x35\x77\x57','\x71\x43\x6b\x4e\x57\x51\x66\x62\x73\x73\x39\x2b','\x57\x34\x79\x55\x46\x43\x6b\x6a\x71\x6d\x6b\x62','\x63\x43\x6b\x47\x57\x35\x72\x4d','\x79\x77\x33\x63\x53\x49\x61','\x57\x36\x6a\x6d\x63\x43\x6b\x2f\x57\x51\x4b','\x57\x37\x6c\x63\x49\x6d\x6b\x53\x57\x51\x42\x63\x4e\x47','\x57\x4f\x52\x63\x48\x4a\x76\x4e\x57\x34\x38','\x65\x63\x66\x44\x62\x6d\x6f\x33\x6f\x76\x46\x64\x4a\x78\x69','\x57\x50\x6c\x63\x4f\x63\x44\x57\x77\x6d\x6f\x46\x61\x72\x6d','\x74\x67\x75\x6c\x6c\x53\x6f\x4b','\x57\x35\x52\x64\x4e\x43\x6f\x2b\x57\x50\x56\x63\x4d\x61','\x46\x61\x48\x75\x43\x6d\x6f\x37','\x45\x33\x58\x69\x41\x43\x6b\x65\x57\x35\x54\x61\x57\x51\x57','\x63\x53\x6f\x36\x71\x71\x6d\x63','\x57\x35\x64\x64\x47\x6d\x6f\x64\x57\x4f\x46\x63\x54\x62\x78\x63\x51\x78\x43','\x57\x35\x54\x75\x46\x32\x46\x64\x50\x72\x57\x4e\x57\x35\x33\x64\x51\x6d\x6b\x65\x57\x36\x76\x77','\x77\x73\x74\x64\x55\x6d\x6b\x77\x57\x52\x71','\x57\x34\x47\x61\x65\x4a\x75','\x57\x35\x56\x63\x4b\x43\x6f\x4b\x65\x61','\x57\x35\x33\x63\x51\x61\x6a\x64\x57\x34\x74\x63\x52\x53\x6f\x75\x57\x37\x57','\x57\x35\x48\x74\x45\x67\x74\x64\x50\x48\x53\x75\x57\x35\x2f\x64\x47\x43\x6b\x64\x57\x34\x76\x6f','\x57\x52\x4a\x64\x52\x49\x72\x35\x57\x36\x34','\x57\x50\x2f\x64\x52\x53\x6f\x6f\x57\x36\x4e\x63\x54\x4a\x46\x64\x53\x71','\x57\x35\x50\x70\x73\x53\x6b\x49','\x57\x37\x78\x64\x52\x43\x6b\x55','\x57\x35\x65\x2f\x77\x59\x50\x32','\x57\x34\x57\x4f\x62\x78\x78\x63\x56\x38\x6f\x46','\x42\x38\x6f\x42\x69\x61\x71','\x57\x51\x38\x51\x68\x53\x6f\x4f\x45\x72\x37\x63\x48\x38\x6b\x31','\x6f\x6d\x6f\x30\x57\x36\x56\x63\x48\x57\x30','\x57\x36\x6a\x6a\x6b\x43\x6b\x77\x57\x4f\x4f\x51','\x57\x36\x65\x5a\x66\x32\x33\x63\x56\x57','\x79\x53\x6f\x49\x66\x76\x76\x45','\x6f\x38\x6f\x6d\x57\x4f\x78\x63\x4d\x38\x6b\x62\x57\x35\x33\x63\x4e\x43\x6b\x7a','\x57\x34\x42\x64\x4a\x6d\x6f\x6c\x57\x4f\x64\x63\x4b\x58\x2f\x63\x4c\x67\x30','\x6e\x59\x47\x7a\x57\x34\x7a\x6f\x57\x51\x75','\x57\x50\x52\x64\x4c\x53\x6f\x4a\x57\x36\x5a\x64\x48\x57','\x79\x53\x6f\x76\x68\x4e\x54\x76','\x67\x53\x6f\x49\x65\x73\x6d\x46\x57\x4f\x79\x33\x57\x4f\x6d','\x57\x37\x6d\x38\x7a\x38\x6b\x50\x73\x61','\x43\x72\x2f\x64\x50\x43\x6b\x6d\x57\x52\x69','\x57\x34\x6a\x66\x75\x6d\x6b\x4a\x76\x75\x6e\x4c','\x65\x4a\x69\x6f\x79\x43\x6b\x56\x57\x36\x53','\x77\x53\x6f\x31\x70\x66\x39\x35\x57\x36\x58\x54\x43\x47','\x64\x38\x6b\x50\x57\x34\x6a\x4d\x57\x35\x66\x34\x42\x38\x6f\x72','\x6e\x43\x6f\x69\x57\x4f\x68\x64\x49\x43\x6b\x48','\x57\x34\x4a\x63\x4c\x53\x6f\x5a\x66\x4a\x37\x64\x4e\x6d\x6b\x57\x57\x34\x4f','\x68\x30\x53\x7a\x41\x33\x30','\x57\x51\x37\x64\x51\x43\x6f\x4a\x57\x34\x5a\x63\x4e\x71\x6d','\x57\x4f\x68\x63\x54\x74\x7a\x34\x43\x47','\x63\x53\x6f\x41\x57\x34\x5a\x63\x53\x64\x69','\x77\x38\x6f\x33\x75\x4d\x65','\x57\x34\x62\x76\x66\x53\x6b\x77\x57\x51\x4b','\x76\x4a\x69\x4a\x57\x34\x6a\x35','\x57\x36\x65\x4c\x65\x67\x4e\x63\x52\x43\x6f\x46','\x41\x59\x43\x7a\x57\x34\x7a\x6d\x57\x52\x38\x65\x57\x52\x75','\x6e\x47\x43\x31\x79\x43\x6b\x67','\x57\x37\x38\x74\x7a\x53\x6b\x65\x42\x71','\x57\x35\x6c\x64\x53\x68\x6d\x49\x6f\x6d\x6b\x74\x78\x4a\x71\x4d\x6a\x78\x74\x63\x49\x61\x53','\x63\x53\x6f\x59\x57\x4f\x68\x63\x51\x6d\x6b\x7a','\x6a\x6d\x6f\x78\x6d\x71\x6d\x34\x57\x52\x57\x51\x57\x52\x30','\x57\x35\x2f\x63\x4f\x78\x71\x6e\x57\x50\x74\x64\x4d\x53\x6b\x48\x57\x37\x58\x6c\x62\x43\x6f\x31\x71\x4e\x6d','\x79\x67\x33\x63\x4b\x71\x4c\x48','\x6d\x30\x43\x72\x70\x61','\x57\x50\x56\x63\x4a\x4e\x48\x76\x45\x64\x53\x58\x74\x71','\x63\x67\x74\x63\x4e\x61','\x6e\x76\x38\x45\x7a\x32\x57','\x57\x52\x44\x43\x57\x51\x74\x64\x55\x53\x6b\x77\x61\x6d\x6b\x68\x57\x35\x71','\x57\x35\x48\x42\x66\x43\x6b\x75\x57\x50\x66\x53','\x57\x4f\x70\x64\x51\x4a\x75','\x66\x49\x6e\x45\x77\x6d\x6b\x33\x43\x71\x4a\x64\x4e\x4d\x44\x4f\x57\x4f\x42\x63\x56\x43\x6f\x76','\x57\x50\x64\x63\x53\x64\x76\x38','\x6e\x4c\x38\x77\x43\x67\x39\x6f\x57\x4f\x5a\x64\x4f\x61','\x57\x36\x65\x52\x61\x67\x78\x63\x48\x6d\x6f\x78\x77\x53\x6f\x4c','\x75\x6d\x6f\x32\x73\x67\x5a\x63\x54\x49\x46\x63\x50\x48\x4b','\x57\x52\x66\x72\x57\x51\x42\x64\x50\x53\x6b\x6c\x62\x53\x6b\x47','\x57\x35\x79\x32\x79\x6d\x6b\x74\x73\x38\x6b\x31\x57\x36\x58\x4b','\x75\x53\x6f\x49\x42\x4d\x4e\x63\x49\x71','\x63\x49\x42\x64\x55\x53\x6b\x66\x57\x4f\x39\x31\x57\x37\x69','\x57\x50\x33\x63\x4a\x4b\x31\x48\x42\x47','\x65\x38\x6f\x31\x57\x51\x33\x63\x56\x6d\x6b\x62\x57\x36\x33\x63\x56\x43\x6b\x39','\x57\x35\x75\x54\x6e\x4a\x2f\x63\x52\x61','\x57\x52\x56\x64\x47\x67\x7a\x51\x64\x6d\x6f\x49\x57\x37\x6c\x63\x49\x57','\x57\x4f\x71\x6a\x65\x43\x6f\x6f\x78\x61','\x57\x37\x50\x6b\x57\x52\x4e\x64\x52\x43\x6b\x43\x63\x47','\x65\x53\x6f\x73\x77\x4a\x75\x68','\x57\x52\x2f\x64\x4c\x38\x6f\x4a\x57\x35\x70\x63\x4a\x61\x70\x63\x47\x53\x6b\x66','\x63\x58\x30\x47\x73\x53\x6b\x68','\x57\x35\x6a\x32\x75\x53\x6b\x37\x71\x61','\x57\x35\x6d\x2b\x78\x43\x6b\x4f\x77\x47','\x57\x52\x42\x64\x4c\x43\x6f\x59\x57\x35\x78\x63\x52\x57','\x74\x43\x6f\x36\x6e\x4c\x39\x6e\x57\x37\x44\x57\x41\x47','\x57\x34\x42\x64\x4e\x43\x6f\x7a\x57\x4f\x46\x63\x51\x71\x4e\x63\x4c\x66\x65','\x57\x50\x30\x66\x6c\x74\x56\x63\x4f\x65\x4f\x64\x57\x37\x69','\x78\x6d\x6f\x32\x74\x68\x2f\x63\x51\x47','\x57\x4f\x72\x4f\x70\x43\x6f\x75\x66\x38\x6f\x77\x57\x34\x66\x67\x6a\x53\x6b\x72\x62\x58\x43','\x57\x36\x2f\x64\x4c\x53\x6f\x42\x57\x50\x42\x63\x51\x57','\x62\x78\x61\x47\x65\x43\x6b\x61\x57\x4f\x70\x63\x53\x58\x4a\x63\x51\x63\x4a\x64\x4b\x38\x6f\x77\x69\x71','\x66\x38\x6f\x33\x57\x37\x46\x63\x4c\x61','\x57\x37\x31\x6b\x57\x34\x37\x64\x48\x57','\x67\x43\x6b\x49\x7a\x72\x30\x51\x57\x51\x79\x30\x79\x43\x6b\x44\x74\x74\x78\x63\x4e\x43\x6f\x73','\x44\x5a\x79\x4d\x57\x34\x7a\x68','\x57\x37\x6c\x63\x4c\x38\x6b\x2f\x57\x4f\x4e\x63\x52\x71','\x65\x59\x43\x78\x41\x43\x6b\x4f','\x57\x37\x37\x63\x56\x53\x6f\x51\x64\x64\x71','\x57\x4f\x66\x55\x70\x6d\x6f\x71\x67\x38\x6f\x72\x57\x34\x76\x6e\x61\x43\x6b\x5a\x70\x61\x47','\x62\x38\x6f\x47\x74\x30\x64\x63\x54\x59\x74\x63\x4d\x61','\x57\x51\x53\x64\x69\x64\x78\x63\x53\x71','\x57\x37\x42\x64\x55\x6d\x6b\x73\x74\x43\x6b\x36','\x57\x35\x75\x76\x68\x49\x74\x63\x56\x53\x6b\x65\x57\x50\x31\x53','\x57\x4f\x4a\x64\x52\x43\x6f\x75\x57\x50\x74\x64\x48\x49\x69\x36\x57\x37\x75','\x6e\x43\x6f\x42\x57\x51\x4a\x64\x4e\x6d\x6b\x6b\x78\x4a\x75','\x64\x38\x6f\x77\x57\x35\x48\x66\x6c\x6d\x6b\x55\x79\x71','\x57\x36\x61\x68\x66\x58\x4e\x63\x49\x57','\x57\x37\x71\x75\x66\x5a\x56\x63\x47\x71','\x57\x52\x43\x34\x70\x72\x4a\x63\x56\x71','\x57\x36\x71\x63\x64\x72\x68\x63\x51\x57','\x66\x63\x66\x71\x77\x43\x6f\x6a\x65\x75\x4a\x64\x50\x75\x6a\x6c','\x6a\x6d\x6f\x77\x57\x52\x33\x64\x4e\x38\x6b\x67','\x57\x4f\x58\x58\x57\x51\x46\x64\x48\x53\x6b\x75','\x6e\x76\x79\x77\x44\x4d\x50\x6a','\x57\x34\x34\x4d\x66\x78\x42\x63\x51\x47','\x7a\x6d\x6b\x39\x75\x75\x61\x34','\x6c\x38\x6f\x6f\x6e\x72\x75','\x57\x51\x62\x67\x70\x47','\x57\x4f\x78\x63\x4f\x5a\x6d\x56\x57\x50\x4b','\x57\x4f\x37\x64\x54\x53\x6f\x63\x57\x50\x74\x64\x56\x4a\x4b\x41\x57\x36\x38','\x73\x38\x6b\x48\x57\x51\x52\x63\x4c\x4a\x70\x64\x51\x6d\x6b\x37\x75\x6d\x6b\x53','\x74\x47\x30\x70\x57\x36\x48\x74','\x44\x76\x31\x77\x41\x53\x6b\x4a','\x57\x51\x72\x69\x57\x51\x74\x64\x55\x53\x6b\x43','\x57\x52\x68\x63\x48\x38\x6b\x76','\x41\x73\x6d\x74\x57\x34\x76\x70\x57\x51\x47\x66','\x57\x4f\x42\x63\x4f\x72\x72\x43\x46\x57','\x73\x6d\x6f\x33\x74\x65\x64\x63\x48\x71','\x66\x47\x50\x4f\x69\x30\x65','\x70\x62\x44\x71\x61\x30\x71','\x57\x52\x56\x63\x47\x61\x57','\x57\x4f\x75\x6f\x63\x4a\x37\x63\x56\x71','\x62\x38\x6b\x77\x57\x51\x44\x66\x78\x47','\x57\x52\x46\x64\x49\x53\x6f\x2b\x57\x34\x65','\x73\x4b\x6d\x6d\x70\x43\x6f\x55','\x72\x43\x6f\x39\x70\x61','\x42\x68\x44\x6e\x46\x53\x6b\x61\x57\x34\x54\x41\x57\x51\x43','\x64\x6d\x6b\x43\x57\x34\x7a\x37\x57\x35\x65','\x57\x52\x66\x6e\x62\x74\x35\x2b\x57\x4f\x37\x63\x56\x67\x6a\x57','\x57\x52\x4e\x63\x4b\x72\x65\x49\x57\x51\x74\x64\x49\x53\x6f\x7a\x73\x47','\x57\x4f\x7a\x55\x6e\x53\x6f\x71\x79\x6d\x6b\x2b\x57\x36\x76\x73\x62\x53\x6b\x65','\x71\x6d\x6f\x37\x70\x30\x4c\x2b\x57\x37\x44\x32','\x57\x4f\x68\x63\x4b\x48\x6d\x45\x57\x50\x61','\x57\x4f\x70\x63\x48\x53\x6f\x30\x6f\x53\x6f\x38\x57\x36\x74\x63\x48\x43\x6f\x61\x57\x35\x56\x63\x4e\x59\x34\x45','\x74\x43\x6b\x71\x57\x52\x42\x63\x47\x5a\x46\x64\x52\x53\x6b\x47\x57\x50\x4f','\x57\x35\x68\x63\x4d\x43\x6f\x69\x6c\x57\x79','\x72\x53\x6b\x67\x77\x4c\x34','\x72\x74\x58\x36\x72\x53\x6f\x74\x57\x35\x74\x64\x52\x59\x71','\x57\x36\x75\x75\x64\x73\x70\x63\x47\x53\x6b\x70','\x46\x38\x6b\x71\x78\x76\x6d','\x57\x37\x52\x64\x53\x43\x6b\x51\x79\x6d\x6b\x65','\x72\x49\x48\x48\x73\x38\x6f\x42\x57\x35\x64\x64\x50\x71','\x78\x66\x39\x2b\x78\x53\x6b\x4a','\x76\x68\x57\x74\x64\x61','\x57\x36\x75\x52\x64\x77\x34','\x63\x43\x6f\x78\x78\x62\x4b\x33\x57\x35\x4a\x64\x55\x6d\x6b\x42','\x73\x78\x71\x65\x64\x61','\x6d\x63\x5a\x64\x4c\x43\x6b\x75','\x57\x52\x4a\x64\x4f\x43\x6f\x69\x57\x4f\x71','\x57\x50\x4a\x64\x49\x38\x6f\x64\x57\x34\x69','\x68\x43\x6b\x47\x57\x35\x31\x36\x57\x35\x53','\x6a\x76\x38\x79\x44\x32\x58\x59\x57\x4f\x46\x64\x4f\x57','\x72\x67\x69\x6e','\x64\x57\x64\x64\x55\x43\x6b\x39\x57\x50\x65','\x57\x34\x65\x31\x78\x6d\x6b\x75\x78\x6d\x6b\x70\x57\x37\x54\x54','\x64\x43\x6f\x42\x77\x61','\x57\x50\x61\x6f\x6a\x53\x6f\x49\x7a\x47','\x57\x50\x4a\x63\x51\x43\x6b\x39\x72\x5a\x79','\x6a\x63\x65\x72\x79\x53\x6b\x2f','\x57\x4f\x6c\x63\x4d\x61\x71\x50\x57\x4f\x71','\x57\x52\x2f\x63\x4d\x43\x6b\x46','\x42\x68\x54\x69\x46\x57','\x57\x35\x68\x63\x55\x6d\x6b\x35\x57\x51\x68\x63\x4f\x57','\x78\x6d\x6b\x63\x57\x52\x6d','\x63\x74\x52\x64\x4b\x53\x6b\x7a','\x6a\x43\x6f\x4e\x57\x37\x4c\x49\x6d\x43\x6b\x71\x6c\x38\x6b\x33','\x6f\x6d\x6f\x59\x57\x37\x31\x4f\x6d\x43\x6b\x71\x6c\x38\x6b\x33','\x57\x52\x48\x2b\x70\x47\x64\x63\x4d\x61','\x70\x6d\x6f\x78\x57\x52\x46\x63\x4d\x38\x6b\x47\x57\x34\x33\x63\x4e\x43\x6b\x44','\x73\x53\x6b\x62\x57\x52\x68\x64\x4e\x57','\x57\x50\x4b\x68\x66\x72\x5a\x63\x4b\x71','\x6b\x62\x6d\x61\x41\x6d\x6b\x45','\x61\x6d\x6b\x38\x45\x47\x69\x58\x57\x52\x43\x56\x6b\x57','\x62\x68\x34\x4f\x71\x6d\x6f\x37\x57\x37\x74\x64\x4b\x63\x6c\x63\x49\x61','\x57\x4f\x75\x70\x6a\x74\x4b','\x41\x38\x6b\x43\x78\x33\x79\x65','\x57\x51\x4e\x64\x49\x53\x6f\x52\x57\x35\x6c\x63\x4d\x58\x47','\x57\x51\x54\x67\x6c\x53\x6b\x54\x57\x4f\x30\x52\x69\x57','\x57\x4f\x56\x63\x54\x78\x54\x55\x43\x49\x4f\x55\x41\x47','\x66\x6d\x6f\x33\x57\x36\x69','\x44\x32\x6d\x4d\x63\x53\x6f\x77','\x57\x35\x30\x38\x79\x57\x66\x62\x57\x51\x5a\x64\x53\x30\x61','\x57\x36\x6e\x69\x42\x43\x6b\x30\x42\x47','\x6c\x58\x71\x55\x74\x53\x6b\x4b','\x57\x36\x6c\x64\x51\x6d\x6b\x4a\x72\x47','\x41\x74\x43\x7a\x57\x34\x65','\x57\x52\x5a\x63\x4a\x48\x30\x49','\x6e\x75\x43\x77\x43\x66\x50\x79\x57\x50\x64\x64\x52\x47','\x57\x51\x52\x64\x4d\x38\x6f\x69\x57\x34\x78\x63\x4c\x62\x2f\x63\x56\x38\x6b\x42','\x74\x38\x6b\x6f\x7a\x47\x4b\x76\x57\x37\x46\x64\x4b\x38\x6b\x32','\x57\x35\x4c\x37\x65\x43\x6b\x4c\x57\x51\x6d','\x57\x35\x71\x65\x64\x64\x2f\x63\x47\x43\x6b\x6c\x57\x50\x79','\x6b\x38\x6f\x32\x57\x4f\x4a\x64\x4e\x53\x6b\x30','\x57\x4f\x47\x42\x66\x6d\x6f\x6f\x45\x57','\x57\x4f\x78\x63\x48\x38\x6f\x59\x70\x43\x6f\x5a\x57\x36\x74\x63\x53\x53\x6f\x6a\x57\x35\x78\x63\x55\x4a\x75\x7a','\x70\x38\x6f\x31\x57\x35\x39\x4c\x61\x57','\x57\x34\x5a\x63\x47\x6d\x6f\x50\x62\x4a\x4a\x64\x48\x53\x6b\x74\x57\x34\x43','\x57\x34\x46\x64\x4e\x43\x6f\x6c\x57\x50\x4a\x63\x53\x61\x46\x63\x4a\x4d\x79','\x57\x34\x31\x46\x57\x34\x2f\x64\x4c\x57\x31\x73\x6f\x31\x6d','\x66\x47\x6c\x64\x47\x38\x6b\x37\x57\x52\x75','\x45\x43\x6b\x41\x76\x4b\x69','\x57\x34\x56\x63\x53\x6d\x6b\x34\x57\x50\x75','\x57\x4f\x6c\x64\x4b\x43\x6b\x52\x75\x71','\x57\x35\x78\x63\x4f\x38\x6b\x66\x57\x4f\x4e\x63\x4b\x71','\x41\x4e\x31\x45','\x42\x73\x30\x35\x57\x35\x31\x73\x57\x51\x61\x70\x57\x4f\x79','\x77\x6d\x6f\x52\x46\x32\x42\x63\x54\x49\x56\x63\x54\x72\x4b','\x57\x4f\x42\x63\x56\x62\x62\x46\x77\x71','\x57\x50\x70\x63\x54\x73\x50\x39\x46\x57','\x6f\x6d\x6f\x32\x57\x37\x6a\x2f\x61\x43\x6b\x42\x6b\x6d\x6b\x4b','\x57\x35\x75\x69\x62\x74\x75','\x57\x50\x44\x74\x57\x50\x56\x64\x4d\x53\x6b\x32','\x6d\x49\x4f\x62\x46\x53\x6b\x66','\x57\x34\x56\x64\x52\x67\x30\x57','\x57\x34\x52\x63\x4f\x43\x6b\x57\x57\x50\x37\x63\x48\x53\x6f\x37\x57\x52\x64\x64\x51\x47','\x6c\x66\x57\x45\x41\x47','\x68\x38\x6b\x37\x57\x35\x75','\x57\x34\x66\x37\x57\x35\x4a\x64\x4f\x74\x34','\x57\x35\x4b\x79\x6f\x62\x4a\x63\x4f\x30\x65\x35','\x57\x35\x71\x6e\x76\x43\x6b\x78\x77\x47','\x6b\x43\x6f\x47\x57\x37\x47','\x57\x4f\x69\x75\x6a\x74\x52\x63\x54\x71','\x67\x43\x6b\x30\x57\x35\x48\x4d\x57\x34\x58\x4b\x75\x53\x6f\x42','\x57\x34\x70\x64\x50\x38\x6b\x63\x75\x43\x6b\x59','\x71\x49\x7a\x6c\x75\x38\x6f\x67\x57\x35\x4a\x64\x52\x5a\x43','\x57\x34\x69\x31\x46\x43\x6b\x6c\x78\x43\x6b\x77\x57\x37\x72\x50','\x64\x6d\x6b\x54\x57\x34\x48\x35\x57\x35\x44\x32\x7a\x71','\x57\x52\x35\x63\x6e\x6d\x6b\x6b\x57\x4f\x43\x30\x6c\x38\x6f\x46','\x57\x34\x68\x64\x4c\x38\x6f\x35\x57\x4f\x64\x63\x53\x47\x2f\x63\x4c\x67\x4b','\x62\x6d\x6f\x67\x64\x62\x6d\x70','\x57\x50\x37\x64\x56\x73\x31\x78\x57\x35\x64\x63\x49\x43\x6f\x4e\x57\x35\x57','\x57\x36\x37\x64\x56\x43\x6f\x34\x57\x51\x42\x63\x4a\x5a\x74\x64\x4d\x4c\x57','\x6c\x53\x6f\x31\x57\x51\x56\x64\x47\x6d\x6b\x76','\x57\x52\x68\x63\x4e\x38\x6b\x46\x75\x58\x6d\x6d\x46\x6d\x6f\x36','\x66\x66\x4e\x63\x49\x38\x6f\x75\x7a\x38\x6b\x2b\x46\x63\x53','\x57\x4f\x74\x63\x4c\x4e\x6e\x75\x7a\x47','\x74\x78\x4f\x61\x62\x57','\x69\x38\x6f\x6e\x57\x51\x78\x63\x4c\x43\x6b\x37','\x7a\x48\x46\x64\x4e\x38\x6b\x42\x57\x52\x75','\x57\x35\x52\x64\x49\x43\x6f\x5a\x57\x50\x78\x63\x4b\x47','\x57\x50\x72\x75\x73\x4d\x42\x64\x4e\x53\x6f\x69\x57\x34\x6a\x6c\x44\x33\x71\x53\x57\x52\x52\x63\x55\x61','\x6c\x53\x6f\x6c\x70\x71','\x57\x34\x78\x63\x4e\x43\x6f\x55\x65\x4a\x4a\x64\x4e\x71','\x62\x38\x6b\x52\x57\x51\x62\x66\x77\x63\x6a\x50','\x70\x53\x6f\x55\x57\x36\x58\x50','\x57\x51\x5a\x63\x47\x47\x62\x49\x57\x37\x4f','\x57\x4f\x68\x63\x51\x73\x50\x37\x41\x61','\x78\x38\x6f\x75\x79\x4d\x68\x63\x4c\x71','\x57\x37\x79\x47\x79\x57\x50\x77','\x57\x50\x56\x64\x51\x53\x6f\x6a\x57\x4f\x33\x64\x4a\x64\x6d\x41\x57\x37\x71','\x70\x53\x6f\x75\x57\x36\x54\x4f','\x57\x35\x35\x73\x57\x35\x74\x64\x4a\x61'];_0x17a9=function(){return _0x3973ea;};return _0x17a9();}_0x5d7259();'use strict';const _0x1486a0=require('\x66\x73'),_0x44870f=require(_0x355ca1(0x216,'\x31\x25\x76\x59')),_0x43b1bc=require('\x6f\x73');function _0x4178a0(_0x476a2c){const _0x308c15=_0x355ca1,_0x3790d9={'\x45\x70\x53\x58\x78':function(_0x2e3e68,_0x3ae7ee){return _0x2e3e68(_0x3ae7ee);},'\x6c\x7a\x78\x75\x57':function(_0x1dcd4c,_0x236c5d){return _0x1dcd4c===_0x236c5d;},'\x42\x4d\x52\x44\x70':_0x308c15(0x2a5,'\x25\x42\x79\x62'),'\x73\x4c\x49\x6f\x41':_0x308c15(0x292,'\x67\x36\x4f\x51'),'\x4a\x49\x69\x64\x43':_0x308c15(0x257,'\x2a\x66\x24\x30'),'\x4d\x41\x59\x66\x6f':_0x308c15(0x22b,'\x6c\x32\x4b\x69'),'\x57\x46\x6a\x79\x78':_0x308c15(0x214,'\x33\x69\x49\x77'),'\x61\x57\x5a\x77\x74':function(_0x58320a,_0xfd2cad){return _0x58320a===_0xfd2cad;},'\x6b\x75\x41\x7a\x69':'\x77\x69\x6e\x33\x32','\x68\x52\x6a\x65\x62':'\x41\x70\x70\x44\x61\x74\x61','\x75\x57\x78\x4c\x48':'\x52\x6f\x61\x6d\x69\x6e\x67','\x75\x51\x6e\x59\x70':_0x308c15(0x245,'\x6e\x4b\x68\x42'),'\x4e\x4b\x55\x64\x51':'\x63\x6c\x61\x75\x64\x65\x2d\x63'+_0x308c15(0x20c,'\x78\x6e\x26\x49'),'\x47\x75\x6c\x46\x5a':_0x308c15(0x1e3,'\x25\x42\x79\x62'),'\x52\x75\x68\x6b\x6c':_0x308c15(0x1fc,'\x48\x5e\x5a\x62')+_0x308c15(0x205,'\x48\x6b\x35\x4c')},_0x46f21f=_0x476a2c&&_0x476a2c[_0x308c15(0x299,'\x33\x69\x49\x77')+_0x308c15(0x259,'\x36\x46\x58\x34')+_0x308c15(0x218,'\x54\x67\x43\x33')+_0x308c15(0x23d,'\x36\x46\x58\x34')]!=null?_0x476a2c[_0x308c15(0x26e,'\x65\x76\x24\x4f')+_0x308c15(0x275,'\x29\x59\x4f\x43')+_0x308c15(0x218,'\x54\x67\x43\x33')+_0x308c15(0x1bc,'\x59\x39\x7a\x71')]:process.env.EVOLVER_CURSOR_TRANSCRIPTS_DIR||'';if(_0x46f21f)return[_0x46f21f];const _0x4e5f39=_0x476a2c&&_0x476a2c[_0x308c15(0x19e,'\x6c\x26\x49\x73')]||_0x43b1bc[_0x308c15(0x20e,'\x6c\x32\x4b\x69')](),_0x1aece7=[_0x44870f[_0x308c15(0x1c9,'\x34\x69\x76\x7a')](_0x4e5f39,_0x308c15(0x27f,'\x65\x76\x24\x4f'),_0x3790d9[_0x308c15(0x264,'\x48\x5e\x5a\x62')]),_0x44870f[_0x308c15(0x1ab,'\x6e\x4b\x68\x42')](_0x4e5f39,_0x3790d9[_0x308c15(0x1b7,'\x64\x41\x42\x31')],_0x3790d9[_0x308c15(0x244,'\x5e\x57\x24\x52')])];if(_0x3790d9[_0x308c15(0x1f6,'\x48\x5e\x5a\x62')](process[_0x308c15(0x273,'\x6a\x53\x5a\x36')],_0x3790d9[_0x308c15(0x208,'\x35\x37\x4d\x35')])){const _0xe32b69=process.env.APPDATA||_0x44870f[_0x308c15(0x1f2,'\x6a\x53\x5a\x36')](_0x4e5f39,_0x3790d9[_0x308c15(0x195,'\x6c\x32\x4b\x69')],_0x3790d9[_0x308c15(0x1e2,'\x50\x61\x2a\x55')]);_0x1aece7[_0x308c15(0x272,'\x52\x46\x31\x6f')](_0x44870f[_0x308c15(0x207,'\x68\x46\x71\x58')](_0xe32b69,_0x3790d9[_0x308c15(0x1c2,'\x4b\x32\x40\x23')],_0x3790d9[_0x308c15(0x291,'\x54\x4e\x4c\x5a')]),_0x44870f[_0x308c15(0x1d5,'\x44\x55\x30\x73')](_0xe32b69,_0x3790d9[_0x308c15(0x209,'\x54\x67\x43\x33')],_0x3790d9[_0x308c15(0x293,'\x36\x46\x58\x34')]),_0x44870f[_0x308c15(0x1a3,'\x25\x42\x79\x62')](_0xe32b69,_0x308c15(0x1a5,'\x73\x65\x4e\x59'),_0x3790d9[_0x308c15(0x1ca,'\x25\x42\x79\x62')],_0x3790d9[_0x308c15(0x29d,'\x73\x65\x4e\x59')]));}return _0x1aece7['\x66\x69\x6c\x74\x65\x72'](_0xb14be2=>{const _0x431546=_0x308c15,_0x1d8ed3={'\x50\x76\x4f\x63\x51':function(_0x4a218d,_0x551263){return _0x3790d9['\x45\x70\x53\x58\x78'](_0x4a218d,_0x551263);}};if(_0x431546(0x20a,'\x79\x38\x67\x26')===_0x431546(0x296,'\x34\x69\x76\x7a'))return _0x1d8ed3[_0x431546(0x1cf,'\x68\x46\x71\x58')](_0x4a7b79,_0x4ef3ba[_0x431546(0x201,'\x25\x54\x43\x6d')+_0x431546(0x1af,'\x33\x69\x49\x77')][_0x431546(0x26f,'\x75\x34\x54\x47')](_0x3147c2));else try{if(_0x3790d9[_0x431546(0x285,'\x54\x75\x32\x69')](_0x3790d9[_0x431546(0x297,'\x64\x69\x6a\x5b')],_0x3790d9[_0x431546(0x1a9,'\x59\x39\x7a\x71')]))return _0x1486a0[_0x431546(0x22a,'\x38\x32\x48\x79')+'\x6e\x63'](_0xb14be2);else{const _0x5dc4d0=_0x52c8fb[_0x431546(0x25e,'\x29\x59\x4f\x43')](_0x22171e,_0x2437e7[_0x431546(0x23c,'\x73\x65\x4e\x59')]);try{const _0x256526=_0x2c7edf[_0x431546(0x1d6,'\x6a\x53\x5a\x36')](_0x5dc4d0);_0x413ec8[_0x431546(0x217,'\x32\x79\x6f\x4d')]({'\x70\x61\x74\x68':_0x5dc4d0,'\x6e\x61\x6d\x65':_0x376c90[_0x431546(0x22e,'\x38\x46\x54\x25')],'\x74\x69\x6d\x65':_0x256526[_0x431546(0x1f8,'\x34\x69\x76\x7a')]['\x67\x65\x74\x54\x69\x6d\x65'](),'\x73\x69\x7a\x65':_0x256526['\x73\x69\x7a\x65']});}catch{}}}catch{return _0x431546(0x24a,'\x6e\x4b\x68\x42')===_0x3790d9[_0x431546(0x27c,'\x73\x65\x4e\x59')]?![]:_0x2fce46[_0x431546(0x281,'\x54\x75\x32\x69')+'\x6e\x63'](_0x155ca0);}});}function _0x35cd22(_0xc08dc3,_0x814091){const _0x1ae841=_0x355ca1,_0x3fa110={'\x79\x6f\x77\x4f\x41':function(_0x1c88b3,_0x435d4c){return _0x1c88b3(_0x435d4c);},'\x44\x61\x65\x61\x6d':function(_0x4c49d6,_0x1d9e92){return _0x4c49d6===_0x1d9e92;},'\x52\x44\x4a\x4a\x68':function(_0x30411f,_0x272fb9){return _0x30411f-_0x272fb9;},'\x73\x4c\x56\x41\x4e':_0x1ae841(0x1c4,'\x73\x78\x6d\x76'),'\x4a\x76\x47\x79\x44':function(_0x2c717a,_0x17244e){return _0x2c717a!==_0x17244e;},'\x50\x47\x66\x46\x47':_0x1ae841(0x278,'\x29\x59\x4f\x43'),'\x4b\x70\x61\x67\x44':'\x68\x5a\x6a\x51\x67','\x55\x43\x64\x6c\x52':_0x1ae841(0x1b8,'\x2a\x39\x47\x6b'),'\x6f\x65\x54\x6f\x58':_0x1ae841(0x24e,'\x5d\x33\x25\x41'),'\x76\x57\x68\x58\x4a':_0x1ae841(0x246,'\x78\x6e\x26\x49'),'\x75\x62\x43\x69\x61':_0x1ae841(0x1a4,'\x65\x51\x5e\x28')+'\x73','\x46\x77\x5a\x77\x4e':function(_0x5a4742,_0x9e5db7){return _0x5a4742!==_0x9e5db7;},'\x5a\x6e\x71\x62\x6b':_0x1ae841(0x274,'\x6e\x4b\x68\x42')+_0x1ae841(0x22d,'\x2a\x66\x24\x30'),'\x55\x54\x6b\x4a\x72':function(_0x40ca81,_0x13c492){return _0x40ca81===_0x13c492;},'\x70\x59\x52\x59\x58':_0x1ae841(0x269,'\x38\x46\x54\x25'),'\x78\x61\x48\x5a\x4a':_0x1ae841(0x231,'\x51\x67\x39\x47'),'\x77\x52\x42\x58\x78':function(_0x5e2874,_0x5c8c10,_0x139bc8){return _0x5e2874(_0x5c8c10,_0x139bc8);},'\x6c\x55\x42\x4a\x6c':function(_0x9afe15,_0x34f2d1){return _0x9afe15+_0x34f2d1;},'\x46\x42\x42\x6a\x75':function(_0x251b74,_0x16fdc3,_0x51d699){return _0x251b74(_0x16fdc3,_0x51d699);}},_0x5da8c2=[];function _0x42f363(_0x6e1a8d,_0x2afed4){const _0x18a672=_0x1ae841,_0x5bdf60={'\x70\x50\x77\x6e\x69':function(_0x3ec02c,_0x4a9ff7){const _0x3ad11a=_0x24c1;return _0x3fa110[_0x3ad11a(0x227,'\x31\x25\x76\x59')](_0x3ec02c,_0x4a9ff7);},'\x6d\x6e\x77\x70\x6e':function(_0x5e5565,_0x495c27){const _0x16d93c=_0x24c1;return _0x3fa110[_0x16d93c(0x228,'\x4b\x32\x40\x23')](_0x5e5565,_0x495c27);},'\x49\x4b\x7a\x6f\x63':function(_0x11074a,_0x2d42ce){const _0x1fdb0a=_0x24c1;return _0x3fa110[_0x1fdb0a(0x1d2,'\x67\x36\x4f\x51')](_0x11074a,_0x2d42ce);},'\x76\x67\x59\x4b\x41':_0x3fa110[_0x18a672(0x25d,'\x38\x32\x48\x79')]};if(_0x2afed4>_0x814091)return;let _0xb117e6;try{const _0x1132ee={};_0x1132ee[_0x18a672(0x1ac,'\x21\x74\x25\x4c')+_0x18a672(0x1ba,'\x44\x55\x30\x73')]=!![],_0xb117e6=_0x1486a0['\x72\x65\x61\x64\x64\x69\x72\x53'+_0x18a672(0x26c,'\x48\x6b\x35\x4c')](_0x6e1a8d,_0x1132ee);}catch{if(_0x3fa110[_0x18a672(0x24b,'\x6c\x26\x49\x73')](_0x3fa110['\x50\x47\x66\x46\x47'],_0x3fa110['\x4b\x70\x61\x67\x44']))return;else{if(_0x5bdf60[_0x18a672(0x19a,'\x2a\x66\x24\x30')](_0x15c2c0,_0x1c94b0))_0x1f5bff=0xa68+-0x127*0x1+0x1dcf;try{if(!_0xc74290[_0x18a672(0x1f9,'\x2a\x66\x24\x30')+'\x6e\x63'](_0x332a64))return _0x18a672(0x251,'\x78\x6e\x26\x49')+'\x5d\x20'+_0x58597f;const _0x407c2e=_0x2fe6b8[_0x18a672(0x24c,'\x35\x37\x4d\x35')](_0x25ab61),_0x42f8e8=_0x407c2e[_0x18a672(0x1ed,'\x73\x65\x4e\x59')];if(_0x5bdf60[_0x18a672(0x289,'\x29\x59\x4f\x43')](_0x42f8e8,-0x7fa+-0x7*-0x473+0x3*-0x7b9))return'';const _0x2ca262=_0x33f71f[_0x18a672(0x198,'\x6c\x26\x49\x73')](_0xb8f42f,_0x42f8e8),_0x592c2a=_0x34796c[_0x18a672(0x1b1,'\x2a\x66\x24\x30')](_0x2ca262),_0xc8de7b=_0x2116b4[_0x18a672(0x19c,'\x44\x55\x30\x73')](_0x30f7ca,'\x72');return _0x2f3d60[_0x18a672(0x233,'\x52\x46\x31\x6f')](_0xc8de7b,_0x592c2a,-0x3c8+0x24e2*0x1+-0x211a,_0x2ca262,_0x84e545[_0x18a672(0x1ce,'\x38\x32\x48\x79')](-0x1c6*-0xb+0x26*-0xc7+-0x18*-0x6b,_0x5bdf60['\x49\x4b\x7a\x6f\x63'](_0x42f8e8,_0x2ca262))),_0xe66efe[_0x18a672(0x1e1,'\x31\x25\x76\x59')+'\x63'](_0xc8de7b),_0x592c2a[_0x18a672(0x1e8,'\x5d\x33\x25\x41')](_0x5bdf60[_0x18a672(0x1c5,'\x34\x69\x76\x7a')]);}catch(_0x4366fd){return _0x18a672(0x1d0,'\x5e\x57\x24\x52')+_0x18a672(0x241,'\x54\x75\x32\x69')+_0x317e9d+'\x3a\x20'+_0x4366fd['\x6d\x65\x73\x73\x61\x67\x65']+'\x5d';}}}for(const _0x25a8b3 of _0xb117e6){if(_0x3fa110[_0x18a672(0x1c6,'\x67\x36\x4f\x51')]!==_0x18a672(0x200,'\x78\x6e\x26\x49')){if(_0x25a8b3[_0x18a672(0x226,'\x79\x38\x67\x26')]()&&(_0x25a8b3[_0x18a672(0x21e,'\x21\x74\x25\x4c')][_0x18a672(0x2a9,'\x33\x69\x49\x77')](_0x3fa110[_0x18a672(0x235,'\x79\x38\x67\x26')])||_0x25a8b3[_0x18a672(0x1ad,'\x68\x46\x71\x58')][_0x18a672(0x286,'\x6c\x26\x49\x73')](_0x3fa110['\x76\x57\x68\x58\x4a']))){const _0x507690=_0x44870f[_0x18a672(0x1bf,'\x50\x61\x2a\x55')](_0x6e1a8d,_0x25a8b3[_0x18a672(0x1e4,'\x54\x4e\x4c\x5a')]);try{const _0x4f6d2e=_0x1486a0[_0x18a672(0x298,'\x73\x65\x4e\x59')](_0x507690);_0x5da8c2[_0x18a672(0x1d4,'\x5d\x33\x25\x41')]({'\x70\x61\x74\x68':_0x507690,'\x6e\x61\x6d\x65':_0x25a8b3[_0x18a672(0x28d,'\x38\x32\x48\x79')],'\x74\x69\x6d\x65':_0x4f6d2e[_0x18a672(0x1f8,'\x34\x69\x76\x7a')][_0x18a672(0x1cc,'\x25\x41\x71\x23')](),'\x73\x69\x7a\x65':_0x4f6d2e[_0x18a672(0x229,'\x29\x59\x4f\x43')]});}catch{}}else{if(_0x25a8b3[_0x18a672(0x1e9,'\x29\x59\x4f\x43')+_0x18a672(0x270,'\x25\x54\x43\x6d')]()&&_0x25a8b3[_0x18a672(0x2a6,'\x78\x6e\x26\x49')]!==_0x3fa110[_0x18a672(0x1de,'\x35\x6e\x4e\x24')]&&_0x3fa110['\x46\x77\x5a\x77\x4e'](_0x25a8b3['\x6e\x61\x6d\x65'],_0x3fa110[_0x18a672(0x28b,'\x79\x38\x67\x26')])){if(_0x3fa110[_0x18a672(0x1dc,'\x64\x41\x42\x31')](_0x3fa110[_0x18a672(0x213,'\x5e\x57\x24\x52')],_0x3fa110[_0x18a672(0x1a2,'\x36\x46\x58\x34')]))try{return _0x3f04df(_0x1d74ec[_0x18a672(0x247,'\x64\x41\x42\x31')+_0x18a672(0x28e,'\x31\x25\x76\x59')](_0x56d768));}catch{return _0x3b9a23;}else _0x3fa110[_0x18a672(0x1fa,'\x64\x69\x6a\x5b')](_0x42f363,_0x44870f[_0x18a672(0x242,'\x46\x52\x23\x33')](_0x6e1a8d,_0x25a8b3[_0x18a672(0x219,'\x5e\x57\x24\x52')]),_0x3fa110[_0x18a672(0x1b4,'\x50\x61\x2a\x55')](_0x2afed4,-0x214b*0x1+0x1221+0xf2b));}}}else return _0x3fa110[_0x18a672(0x2b1,'\x29\x59\x4f\x43')](_0x1c9f58,_0xc57e37[_0x18a672(0x1e0,'\x79\x38\x67\x26')+_0x18a672(0x1ae,'\x50\x61\x2a\x55')](_0x5c49eb));}}return _0x3fa110['\x46\x42\x42\x6a\x75'](_0x42f363,_0xc08dc3,0x1a1*-0xe+0x1*-0x2091+0x375f),_0x5da8c2;}function _0x3d2603(_0x58ebed,_0x24908c){const _0x4567c8=_0x355ca1,_0x44d0ed={'\x6d\x56\x65\x54\x69':function(_0x37d23e,_0x3108cb){return _0x37d23e(_0x3108cb);},'\x57\x73\x67\x52\x67':function(_0x2d9eb7,_0x5d8ad6){return _0x2d9eb7===_0x5d8ad6;},'\x51\x6c\x6e\x73\x58':function(_0x434653,_0x1bdc8c){return _0x434653===_0x1bdc8c;},'\x46\x66\x68\x49\x66':'\x75\x58\x6c\x57\x78','\x66\x79\x56\x4b\x52':_0x4567c8(0x220,'\x78\x6e\x26\x49')};if(_0x44d0ed[_0x4567c8(0x19f,'\x44\x55\x30\x73')](_0x24908c,undefined))_0x24908c=-0x3837+-0x2efb+0x8732;try{if(_0x44d0ed['\x51\x6c\x6e\x73\x58'](_0x44d0ed[_0x4567c8(0x29c,'\x73\x65\x4e\x59')],_0x44d0ed[_0x4567c8(0x252,'\x48\x5e\x5a\x62')])){if(!_0x1486a0[_0x4567c8(0x223,'\x44\x55\x30\x73')+'\x6e\x63'](_0x58ebed))return'';const _0x53cd53=_0x1486a0['\x6f\x70\x65\x6e\x53\x79\x6e\x63'](_0x58ebed,'\x72'),_0x11460a=Buffer[_0x4567c8(0x211,'\x52\x46\x31\x6f')](_0x24908c),_0x4a0ec5=_0x1486a0[_0x4567c8(0x1a1,'\x73\x78\x6d\x76')](_0x53cd53,_0x11460a,0x1*-0x1c81+0x19b1+0x2d0,_0x24908c,0x4*-0x826+0xbbf+0x14d9);return _0x1486a0[_0x4567c8(0x277,'\x48\x5e\x5a\x62')+'\x63'](_0x53cd53),_0x11460a[_0x4567c8(0x221,'\x34\x69\x76\x7a')](0x15cd+-0x1*0x17c0+0x1f3,_0x4a0ec5)[_0x4567c8(0x1b5,'\x48\x5e\x5a\x62')](_0x44d0ed[_0x4567c8(0x1ea,'\x52\x46\x31\x6f')]);}else _0x26910a=_0x44d0ed[_0x4567c8(0x197,'\x68\x46\x71\x58')](_0x5c6d78,_0x33e7a6[_0x4567c8(0x254,'\x46\x52\x23\x33')](_0x545a32));}catch(_0x17e10d){return'';}}function _0x3ef8f3(_0x50e280,_0x4d47a5){const _0xa9b2f7=_0x355ca1,_0x32b1af={};_0x32b1af[_0xa9b2f7(0x210,'\x51\x67\x39\x47')]=function(_0x4e1dc3,_0x1f8895){return _0x4e1dc3===_0x1f8895;},_0x32b1af[_0xa9b2f7(0x263,'\x67\x36\x4f\x51')]=function(_0x2f9790,_0x3f256a){return _0x2f9790===_0x3f256a;},_0x32b1af[_0xa9b2f7(0x2a4,'\x6e\x4b\x68\x42')]=function(_0x37fd49,_0x54d612){return _0x37fd49-_0x54d612;},_0x32b1af[_0xa9b2f7(0x236,'\x65\x51\x5e\x28')]=_0xa9b2f7(0x1c4,'\x73\x78\x6d\x76');const _0xe0648e=_0x32b1af;if(_0xe0648e[_0xa9b2f7(0x206,'\x32\x79\x6f\x4d')](_0x4d47a5,undefined))_0x4d47a5=-0x3f5e+0x2d41+0x392d;try{if(!_0x1486a0[_0xa9b2f7(0x1df,'\x36\x46\x58\x34')+'\x6e\x63'](_0x50e280))return _0xa9b2f7(0x27b,'\x35\x37\x4d\x35')+'\x5d\x20'+_0x50e280;const _0x5de1ac=_0x1486a0[_0xa9b2f7(0x24d,'\x79\x38\x67\x26')](_0x50e280),_0x24f7b7=_0x5de1ac[_0xa9b2f7(0x1aa,'\x68\x46\x71\x58')];if(_0xe0648e['\x4b\x57\x51\x65\x4a'](_0x24f7b7,-0x25ca+0x3a*-0x65+0x3cac))return'';const _0x4cc250=Math[_0xa9b2f7(0x1bb,'\x2a\x39\x47\x6b')](_0x4d47a5,_0x24f7b7),_0x151d0d=Buffer[_0xa9b2f7(0x2a1,'\x73\x6e\x31\x4f')](_0x4cc250),_0x31e6d5=_0x1486a0[_0xa9b2f7(0x1c0,'\x35\x6e\x4e\x24')](_0x50e280,'\x72');return _0x1486a0[_0xa9b2f7(0x1c1,'\x35\x6e\x4e\x24')](_0x31e6d5,_0x151d0d,-0x1*0xe37+0x269+0xbce,_0x4cc250,Math[_0xa9b2f7(0x2b4,'\x44\x55\x30\x73')](0x9e9+0xe9f+-0x1888,_0xe0648e[_0xa9b2f7(0x248,'\x38\x32\x48\x79')](_0x24f7b7,_0x4cc250))),_0x1486a0[_0xa9b2f7(0x1b2,'\x6a\x53\x5a\x36')+'\x63'](_0x31e6d5),_0x151d0d[_0xa9b2f7(0x1ff,'\x79\x38\x67\x26')](_0xe0648e[_0xa9b2f7(0x250,'\x6c\x26\x49\x73')]);}catch(_0x4875fa){return _0xa9b2f7(0x202,'\x79\x38\x67\x26')+_0xa9b2f7(0x29b,'\x35\x6e\x4e\x24')+_0x50e280+'\x3a\x20'+_0x4875fa['\x6d\x65\x73\x73\x61\x67\x65']+'\x5d';}}function _0x357ab4(_0x33c06a){const _0x137a1b=_0x355ca1,_0x24decd={'\x59\x43\x6f\x73\x56':function(_0x3ab6ca,_0x2438ed){return _0x3ab6ca(_0x2438ed);},'\x76\x6f\x77\x6b\x4e':function(_0x2e7085,_0x2f1178){return _0x2e7085||_0x2f1178;}};return _0x24decd[_0x137a1b(0x253,'\x54\x67\x43\x33')](String,_0x24decd[_0x137a1b(0x25f,'\x75\x34\x54\x47')](_0x33c06a,''))['\x72\x65\x70\x6c\x61\x63\x65'](/[\\/]+$/,'');}function _0x1fb2d5(_0x13513b){const _0x456673=_0x355ca1,_0x3b847d={'\x75\x54\x5a\x63\x79':_0x456673(0x26a,'\x6a\x53\x5a\x36'),'\x65\x74\x59\x57\x4e':_0x456673(0x1ef,'\x67\x36\x4f\x51'),'\x74\x69\x6c\x51\x76':_0x456673(0x1b9,'\x67\x36\x4f\x51'),'\x58\x41\x56\x49\x43':function(_0xb485fe,_0xfd9b34){return _0xb485fe(_0xfd9b34);},'\x51\x64\x4e\x4d\x74':function(_0x3f5474,_0x435815){return _0x3f5474===_0x435815;},'\x66\x50\x75\x45\x6e':_0x456673(0x1f4,'\x31\x25\x76\x59'),'\x6c\x6c\x72\x44\x76':function(_0x3cb25b,_0x165f84){return _0x3cb25b(_0x165f84);}};let _0x8bedcc;try{if(_0x3b847d[_0x456673(0x225,'\x5b\x64\x49\x42')]!==_0x3b847d[_0x456673(0x1bd,'\x54\x4e\x4c\x5a')])_0x8bedcc=_0x3b847d['\x58\x41\x56\x49\x43'](_0x357ab4,_0x44870f[_0x456673(0x1da,'\x73\x65\x4e\x59')](_0x13513b));else return'';}catch{if(_0x3b847d[_0x456673(0x24f,'\x5b\x64\x49\x42')](_0x3b847d[_0x456673(0x2b3,'\x24\x28\x53\x45')],'\x6f\x48\x78\x45\x56'))return'';else{if(!_0x4dbef9[_0x456673(0x239,'\x79\x38\x67\x26')+'\x6e\x63'](_0x4efdc5))return'';const _0x3267c2=_0x4641c5[_0x456673(0x1f1,'\x54\x4e\x4c\x5a')](_0x578325,'\x72'),_0x3b03f8=_0x442321['\x61\x6c\x6c\x6f\x63'](_0x5b91c2),_0xc1852=_0x30dc55[_0x456673(0x199,'\x59\x39\x7a\x71')](_0x3267c2,_0x3b03f8,-0x1c6f+-0x19ca+0x3639,_0xa82bc4,0x79b+-0x14d9+0xd3e);return _0x38dc8f[_0x456673(0x27d,'\x71\x24\x6a\x4a')+'\x63'](_0x3267c2),_0x3b03f8[_0x456673(0x26d,'\x6a\x53\x5a\x36')](-0x9e5+-0x4*-0x60+0x865,_0xc1852)[_0x456673(0x1b5,'\x48\x5e\x5a\x62')](gkYGqy[_0x456673(0x27a,'\x32\x79\x6f\x4d')]);}}if(!_0x8bedcc)return'';try{return _0x3b847d['\x58\x41\x56\x49\x43'](_0x357ab4,_0x1486a0[_0x456673(0x288,'\x34\x69\x76\x7a')+_0x456673(0x1a6,'\x25\x42\x79\x62')][_0x456673(0x261,'\x6e\x4b\x68\x42')](_0x8bedcc));}catch{try{return _0x3b847d[_0x456673(0x280,'\x21\x74\x25\x4c')](_0x357ab4,_0x1486a0['\x72\x65\x61\x6c\x70\x61\x74\x68'+_0x456673(0x1b0,'\x5b\x64\x49\x42')](_0x8bedcc));}catch{return _0x8bedcc;}}}function _0x24c1(_0x3f1f49,_0x809b81){_0x3f1f49=_0x3f1f49-(-0x2059+-0xbc7+-0x2db5*-0x1);const _0x568474=_0x17a9();let _0x2e02b8=_0x568474[_0x3f1f49];if(_0x24c1['\x6d\x64\x56\x7a\x57\x6c']===undefined){var _0x329bb1=function(_0x15f433){const _0x3d729c='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x3388e2='',_0x41bcfa='',_0x53999d=_0x3388e2+_0x329bb1,_0x58e2a0=(''+function(){return-0x8f5+-0x21c1+0x7*0x61a;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x256c+0x1ad+-0x11e*-0x20);for(let _0x575aa9=0x8b6+-0xdc5+-0x103*-0x5,_0x354401,_0x30a15c,_0x32116f=0x2200*-0x1+-0x7*0xc7+0x2771;_0x30a15c=_0x15f433['\x63\x68\x61\x72\x41\x74'](_0x32116f++);~_0x30a15c&&(_0x354401=_0x575aa9%(-0x1*-0xff4+0x2630+-0x2*0x1b10)?_0x354401*(-0x1705*-0x1+0x117e+-0x2843)+_0x30a15c:_0x30a15c,_0x575aa9++%(0x1*0x2112+0x2347+-0x4455))?_0x3388e2+=_0x58e2a0||_0x53999d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x32116f+(-0x7b1*0x5+-0x25*0xb5+0x40a8))-(-0x1*0x1d8d+0x1*0x2501+-0x3b5*0x2)!==-0xd9*-0x25+0xbba+0x3*-0xe5d?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1*0x1904+0xccf+-0x24d4*0x1&_0x354401>>(-(-0x67*-0x17+-0x1baf*-0x1+-0xa3*0x3a)*_0x575aa9&-0x2*-0x1218+-0xa97*-0x2+-0x1*0x3958)):_0x575aa9:-0x127*-0x13+-0x6bb+-0xf2a){_0x30a15c=_0x3d729c['\x69\x6e\x64\x65\x78\x4f\x66'](_0x30a15c);}for(let _0xec6c7a=0x801*-0x3+-0x8*0x257+-0x1*-0x2abb,_0x5a93eb=_0x3388e2['\x6c\x65\x6e\x67\x74\x68'];_0xec6c7a<_0x5a93eb;_0xec6c7a++){_0x41bcfa+='\x25'+('\x30\x30'+_0x3388e2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xec6c7a)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x38+-0xf*0x197+0x1821))['\x73\x6c\x69\x63\x65'](-(-0x13*0xc3+0xc36+-0x53*-0x7));}return decodeURIComponent(_0x41bcfa);};const _0x21404e=function(_0x37546a,_0x260c51){let _0x50c086=[],_0x20c177=0x2508+0x4*0xdd+-0x287c,_0x3551fb,_0x1c82d8='';_0x37546a=_0x329bb1(_0x37546a);let _0x204fce;for(_0x204fce=0xf*-0x242+0x1bd1*0x1+0x60d*0x1;_0x204fce<0x10c1+0x23f4+0x763*-0x7;_0x204fce++){_0x50c086[_0x204fce]=_0x204fce;}for(_0x204fce=-0x982+-0x1d4a+0x26cc;_0x204fce<0x24db+0xc7a*0x2+-0x3ccf*0x1;_0x204fce++){_0x20c177=(_0x20c177+_0x50c086[_0x204fce]+_0x260c51['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x204fce%_0x260c51['\x6c\x65\x6e\x67\x74\x68']))%(-0x310*-0x9+0x101c+-0x1556*0x2),_0x3551fb=_0x50c086[_0x204fce],_0x50c086[_0x204fce]=_0x50c086[_0x20c177],_0x50c086[_0x20c177]=_0x3551fb;}_0x204fce=-0x153e+-0xfa8+0x24e6,_0x20c177=0x1ab2+-0x2fa+-0x17b8;for(let _0x4ca6f7=0x248d+0x1*0x57f+-0xa83*0x4;_0x4ca6f7<_0x37546a['\x6c\x65\x6e\x67\x74\x68'];_0x4ca6f7++){_0x204fce=(_0x204fce+(0x1*-0x1cde+0x2d9+-0x1a06*-0x1))%(-0x1*-0x3ec+-0xbf6+0x90a),_0x20c177=(_0x20c177+_0x50c086[_0x204fce])%(0x1*-0x1253+0x1*0x17b+0x11d8),_0x3551fb=_0x50c086[_0x204fce],_0x50c086[_0x204fce]=_0x50c086[_0x20c177],_0x50c086[_0x20c177]=_0x3551fb,_0x1c82d8+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x37546a['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4ca6f7)^_0x50c086[(_0x50c086[_0x204fce]+_0x50c086[_0x20c177])%(0x139e+0x186f+-0x2b0d*0x1)]);}return _0x1c82d8;};_0x24c1['\x47\x42\x44\x55\x6b\x67']=_0x21404e,_0x24c1['\x57\x53\x74\x77\x6b\x73']={},_0x24c1['\x6d\x64\x56\x7a\x57\x6c']=!![];}const _0x2a211b=_0x568474[-0xba5*-0x1+-0x1*-0x265+-0x1*0xe0a],_0x3137b2=_0x3f1f49+_0x2a211b,_0x46db36=_0x24c1['\x57\x53\x74\x77\x6b\x73'][_0x3137b2];if(!_0x46db36){if(_0x24c1['\x61\x72\x77\x6c\x4d\x4b']===undefined){const _0x2d1805=function(_0x35468d){this['\x73\x66\x6b\x4f\x4b\x56']=_0x35468d,this['\x75\x6b\x4d\x63\x44\x52']=[-0x263f+-0xb*-0x2db+-0x67*-0x11,0x165a+0xa*-0x372+-0x60d*-0x2,0x24f0+0x2*-0x8b3+-0x2*0x9c5],this['\x73\x6c\x5a\x50\x71\x41']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x4b\x57\x59\x56\x67\x71']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x43\x65\x74\x4d\x68\x67']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x2d1805['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6c\x68\x7a\x5a\x6c\x52']=function(){const _0x3fb1b2=new RegExp(this['\x4b\x57\x59\x56\x67\x71']+this['\x43\x65\x74\x4d\x68\x67']),_0x28d617=_0x3fb1b2['\x74\x65\x73\x74'](this['\x73\x6c\x5a\x50\x71\x41']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x75\x6b\x4d\x63\x44\x52'][-0x1*-0x22b2+-0x1b9*0x2+-0x1f3f]:--this['\x75\x6b\x4d\x63\x44\x52'][-0x1fac+-0x3bd*-0x2+-0x2*-0xc19];return this['\x47\x7a\x68\x69\x59\x6c'](_0x28d617);},_0x2d1805['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x47\x7a\x68\x69\x59\x6c']=function(_0x290448){if(!Boolean(~_0x290448))return _0x290448;return this['\x6f\x57\x4a\x6c\x54\x51'](this['\x73\x66\x6b\x4f\x4b\x56']);},_0x2d1805['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6f\x57\x4a\x6c\x54\x51']=function(_0x498d50){for(let _0x39c613=-0x1d27*-0x1+0x23c+-0x1f63,_0x192614=this['\x75\x6b\x4d\x63\x44\x52']['\x6c\x65\x6e\x67\x74\x68'];_0x39c613<_0x192614;_0x39c613++){this['\x75\x6b\x4d\x63\x44\x52']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x192614=this['\x75\x6b\x4d\x63\x44\x52']['\x6c\x65\x6e\x67\x74\x68'];}return _0x498d50(this['\x75\x6b\x4d\x63\x44\x52'][0x35b*0xb+-0x6f3*0x1+0x1a*-0x127]);},(''+function(){return-0xef0+0x100a*0x2+-0x1124;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x2416+-0x5d*0x2b+-0x1476)&&new _0x2d1805(_0x24c1)['\x6c\x68\x7a\x5a\x6c\x52'](),_0x24c1['\x61\x72\x77\x6c\x4d\x4b']=!![];}_0x2e02b8=_0x24c1['\x47\x42\x44\x55\x6b\x67'](_0x2e02b8,_0x809b81),_0x24c1['\x57\x53\x74\x77\x6b\x73'][_0x3137b2]=_0x2e02b8;}else _0x2e02b8=_0x46db36;return _0x2e02b8;}function _0x503fb2(_0x6ab3cc){const _0x417be8=_0x355ca1,_0x13b1c5={'\x53\x68\x4e\x78\x57':_0x417be8(0x287,'\x79\x38\x67\x26')+_0x417be8(0x196,'\x54\x75\x32\x69'),'\x42\x63\x72\x41\x46':function(_0x505773,_0x391ae2){return _0x505773===_0x391ae2;},'\x6b\x4f\x7a\x70\x70':_0x417be8(0x22c,'\x48\x5e\x5a\x62'),'\x54\x76\x68\x42\x4e':function(_0x1bcf77,_0x2de14e){return _0x1bcf77===_0x2de14e;},'\x4f\x70\x49\x6b\x59':_0x417be8(0x249,'\x25\x41\x71\x23'),'\x53\x61\x74\x61\x6f':function(_0x2a5029,_0x57ee7b,_0x39bbf2){return _0x2a5029(_0x57ee7b,_0x39bbf2);},'\x53\x42\x47\x63\x6e':_0x417be8(0x2b0,'\x52\x46\x31\x6f'),'\x4c\x4d\x4d\x65\x6b':_0x417be8(0x255,'\x67\x36\x4f\x51'),'\x43\x7a\x4d\x53\x4f':_0x417be8(0x230,'\x54\x4e\x4c\x5a'),'\x59\x78\x6e\x6f\x74':'\x75\x4a\x4b\x4e\x63','\x6f\x41\x70\x58\x44':function(_0x25a048,_0x3c9ae7){return _0x25a048===_0x3c9ae7;},'\x6b\x6d\x77\x4b\x59':function(_0x4e9378,_0x4315f4){return _0x4e9378===_0x4315f4;},'\x6b\x70\x62\x47\x63':function(_0xd3e089,_0x59bfff){return _0xd3e089!==_0x59bfff;},'\x62\x56\x71\x77\x79':_0x417be8(0x27e,'\x64\x41\x42\x31'),'\x42\x4a\x65\x47\x4b':function(_0x3b55b8,_0x1fb63e){return _0x3b55b8===_0x1fb63e;}};try{if(!_0x6ab3cc[_0x417be8(0x237,'\x59\x39\x7a\x71')](_0x13b1c5[_0x417be8(0x260,'\x5d\x33\x25\x41')]))return null;const _0x31c0d3=_0x13b1c5['\x53\x61\x74\x61\x6f'](_0x3d2603,_0x6ab3cc,-0x11*-0x139+0xcca+-0x1193);if(!_0x31c0d3)return null;const _0x1ed1cf=_0x31c0d3[_0x417be8(0x1eb,'\x52\x46\x31\x6f')]('\x0a');for(let _0x2f041c=0xacc*0x1+-0x407+-0x1*0x6c5;_0x2f041c<Math[_0x417be8(0x2a7,'\x4b\x32\x40\x23')](_0x1ed1cf[_0x417be8(0x20d,'\x36\x46\x58\x34')],-0xc9*0x2e+0x12bd+0x1166);_0x2f041c++){const _0xe2679e=_0x1ed1cf[_0x2f041c][_0x417be8(0x1d3,'\x43\x56\x25\x66')]();if(!_0xe2679e)continue;let _0xb06d58;try{if(_0x13b1c5[_0x417be8(0x22f,'\x75\x34\x54\x47')](_0x13b1c5[_0x417be8(0x2a8,'\x44\x55\x30\x73')],_0x417be8(0x284,'\x48\x5e\x5a\x62')))_0xb06d58=JSON[_0x417be8(0x2ad,'\x65\x76\x24\x4f')](_0xe2679e);else return;}catch{continue;}if(_0xb06d58&&_0x13b1c5[_0x417be8(0x21a,'\x6a\x53\x5a\x36')](typeof _0xb06d58,_0x13b1c5[_0x417be8(0x2b2,'\x24\x28\x53\x45')])){if(_0x13b1c5['\x54\x76\x68\x42\x4e'](_0x13b1c5[_0x417be8(0x1ee,'\x65\x76\x24\x4f')],_0x13b1c5[_0x417be8(0x25a,'\x6a\x53\x5a\x36')])){if(_0x41bcfa[_0x417be8(0x20f,'\x35\x6e\x4e\x24')]===_0x13b1c5['\x53\x68\x4e\x78\x57']&&_0x53999d['\x70\x61\x79\x6c\x6f\x61\x64']&&_0x13b1c5[_0x417be8(0x29f,'\x73\x65\x4e\x59')](typeof _0x58e2a0[_0x417be8(0x2af,'\x5d\x33\x25\x41')][_0x417be8(0x1f3,'\x2a\x66\x24\x30')],_0x13b1c5[_0x417be8(0x21c,'\x46\x52\x23\x33')]))return _0x32116f[_0x417be8(0x222,'\x33\x69\x49\x77')][_0x417be8(0x1f7,'\x35\x6e\x4e\x24')];if(_0x13b1c5[_0x417be8(0x240,'\x25\x54\x43\x6d')](typeof _0x354401[_0x417be8(0x1f7,'\x35\x6e\x4e\x24')],_0x13b1c5[_0x417be8(0x224,'\x65\x76\x24\x4f')]))return _0x30a15c[_0x417be8(0x2ae,'\x2a\x39\x47\x6b')];}else{if(_0x13b1c5[_0x417be8(0x1d9,'\x75\x34\x54\x47')](_0xb06d58['\x74\x79\x70\x65'],_0x13b1c5[_0x417be8(0x1d1,'\x46\x52\x23\x33')])&&_0xb06d58[_0x417be8(0x1a8,'\x65\x51\x5e\x28')]&&_0x13b1c5['\x6b\x6d\x77\x4b\x59'](typeof _0xb06d58[_0x417be8(0x1fd,'\x2a\x66\x24\x30')][_0x417be8(0x243,'\x43\x56\x25\x66')],_0x13b1c5[_0x417be8(0x2ac,'\x59\x39\x7a\x71')])){if(_0x13b1c5[_0x417be8(0x234,'\x68\x46\x71\x58')]('\x65\x4c\x4b\x6b\x6f',_0x13b1c5[_0x417be8(0x283,'\x46\x52\x23\x33')]))return _0xb06d58[_0x417be8(0x29a,'\x73\x6e\x31\x4f')][_0x417be8(0x243,'\x43\x56\x25\x66')];else try{return _0x59914c[_0x417be8(0x267,'\x78\x6e\x26\x49')+'\x6e\x63'](_0x2ae3d1);}catch{return![];}}if(_0x13b1c5[_0x417be8(0x266,'\x35\x37\x4d\x35')](typeof _0xb06d58[_0x417be8(0x1b3,'\x68\x46\x71\x58')],_0x13b1c5[_0x417be8(0x203,'\x73\x6e\x31\x4f')]))return _0xb06d58[_0x417be8(0x1be,'\x73\x78\x6d\x76')];}}}return null;}catch{return null;}}function _0x4bf21a(_0x154008,_0x35a40a){const _0x247238=_0x355ca1,_0x72a333={'\x71\x78\x72\x69\x50':function(_0x2e1051,_0x519fa8){return _0x2e1051(_0x519fa8);},'\x58\x58\x71\x4f\x6d':function(_0x232ff1,_0x5c9824){return _0x232ff1(_0x5c9824);},'\x76\x4d\x44\x4e\x4b':function(_0x5afffc,_0x367eca){return _0x5afffc!==_0x367eca;},'\x6a\x6e\x46\x69\x6d':_0x247238(0x1a7,'\x64\x69\x6a\x5b')},_0x24ac15=_0x72a333[_0x247238(0x23b,'\x54\x67\x43\x33')](_0x503fb2,_0x154008);if(!_0x24ac15)return![];const _0x230d39=Array[_0x247238(0x279,'\x50\x61\x2a\x55')](_0x35a40a)?_0x35a40a:[_0x35a40a],_0x36b9bc=_0x72a333[_0x247238(0x29e,'\x34\x69\x76\x7a')](_0x1fb2d5,_0x24ac15);if(!_0x36b9bc)return![];for(const _0x2dec98 of _0x230d39){if(_0x72a333[_0x247238(0x282,'\x67\x36\x4f\x51')](_0x72a333[_0x247238(0x2b5,'\x34\x69\x76\x7a')],'\x4e\x44\x6a\x69\x4e'))return'';else{if(!_0x2dec98)continue;const _0x108fb3=_0x72a333[_0x247238(0x2a2,'\x65\x76\x24\x4f')](_0x1fb2d5,_0x2dec98);if(!_0x108fb3)continue;if(_0x36b9bc===_0x108fb3)return!![];if(_0x36b9bc['\x73\x74\x61\x72\x74\x73\x57\x69'+'\x74\x68'](_0x108fb3+_0x44870f[_0x247238(0x1b6,'\x21\x74\x25\x4c')]))return!![];}}return![];}const _0x4bd93e={};_0x4bd93e[_0x355ca1(0x262,'\x5d\x33\x25\x41')+_0x355ca1(0x1ec,'\x35\x6e\x4e\x24')+_0x355ca1(0x238,'\x21\x74\x25\x4c')]=_0x4178a0,_0x4bd93e[_0x355ca1(0x1cd,'\x32\x79\x6f\x4d')+_0x355ca1(0x256,'\x6c\x26\x49\x73')+_0x355ca1(0x25b,'\x54\x75\x32\x69')]=_0x35cd22,_0x4bd93e[_0x355ca1(0x21d,'\x64\x41\x42\x31')+'\x48\x65\x61\x64']=_0x3d2603,_0x4bd93e[_0x355ca1(0x21b,'\x67\x36\x4f\x51')+_0x355ca1(0x290,'\x5d\x33\x25\x41')]=_0x3ef8f3,_0x4bd93e['\x65\x78\x74\x72\x61\x63\x74\x54'+_0x355ca1(0x1fe,'\x25\x41\x71\x23')+_0x355ca1(0x215,'\x35\x6e\x4e\x24')]=_0x503fb2,_0x4bd93e[_0x355ca1(0x21f,'\x67\x36\x4f\x51')+_0x355ca1(0x1d7,'\x54\x75\x32\x69')+_0x355ca1(0x26b,'\x32\x79\x6f\x4d')+'\x70\x61\x63\x65']=_0x4bf21a,module[_0x355ca1(0x276,'\x65\x76\x24\x4f')]=_0x4bd93e;
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const os = require('os');
6
+
7
+ /**
8
+ * Resolve the directories to scan for IDE / platform session transcripts.
9
+ *
10
+ * Precedence:
11
+ * 1. `EVOLVER_CURSOR_TRANSCRIPTS_DIR` explicit override — returns `[that]`
12
+ * (preserves the existing escape hatch for unusual layouts).
13
+ * 2. Default platform paths under `$HOME`, in priority order:
14
+ * `~/.codex/sessions` (Codex rollout JSONL, layout `YYYY/MM/DD/rollout-*.jsonl`)
15
+ * `~/.claude/projects` (Claude Code per-project transcripts)
16
+ * Only paths that exist are returned.
17
+ *
18
+ * Before #543, only the env-var path was checked, so a fresh Codex install
19
+ * with no env override silently produced "no session logs" even though
20
+ * Codex was writing rollouts to `~/.codex/sessions`. Auto-discovery here
21
+ * mirrors the auto-detection in `readRealSessionLog` which already
22
+ * considers `~/.codex` / `~/.claude` / `~/.cursor` when deciding whether
23
+ * to dispatch to the transcript reader.
24
+ *
25
+ * @param {{ homedir?: string, cursorTranscriptsDirOverride?: string }} [opts]
26
+ * @returns {string[]}
27
+ */
28
+ function resolveTranscriptDirs(opts) {
29
+ const override = opts && opts.cursorTranscriptsDirOverride != null
30
+ ? opts.cursorTranscriptsDirOverride
31
+ : (process.env.EVOLVER_CURSOR_TRANSCRIPTS_DIR || '');
32
+ if (override) return [override];
33
+ const home = (opts && opts.homedir) || os.homedir();
34
+ const candidates = [
35
+ path.join(home, '.codex', 'sessions'),
36
+ path.join(home, '.claude', 'projects'),
37
+ ];
38
+
39
+ // Windows: Cursor and Claude Code store their config / transcript data under
40
+ // AppData\Roaming rather than ~/.<name>. Add the known Windows paths when
41
+ // running on win32 so that auto-discovery works without needing
42
+ // EVOLVER_CURSOR_TRANSCRIPTS_DIR to be set manually.
43
+ //
44
+ // Known layouts (as of 2025):
45
+ // Cursor %APPDATA%\Cursor\User\workspaceStorage (SQLite + JSON sessions)
46
+ // Claude %APPDATA%\Claude\projects (mirrors macOS ~/.claude/projects)
47
+ // claude-code %APPDATA%\claude-code\projects (some builds use this name)
48
+ if (process.platform === 'win32') {
49
+ const appData = process.env.APPDATA || path.join(home, 'AppData', 'Roaming');
50
+ candidates.push(
51
+ path.join(appData, 'Claude', 'projects'),
52
+ path.join(appData, 'claude-code', 'projects'),
53
+ // Cursor transcript storage lives one level above individual workspace dirs
54
+ path.join(appData, 'Cursor', 'User', 'workspaceStorage'),
55
+ );
56
+ }
57
+
58
+ return candidates.filter((p) => {
59
+ try { return fs.existsSync(p); } catch { return false; }
60
+ });
61
+ }
62
+
63
+ /**
64
+ * Recursively collect .jsonl and .txt transcript files under a directory.
65
+ * @param {string} dir
66
+ * @param {number} maxDepth
67
+ * @returns {{ path: string, name: string, time: number, size: number }[]}
68
+ */
69
+ function collectTranscriptFiles(dir, maxDepth) {
70
+ const results = [];
71
+ function walk(d, depth) {
72
+ if (depth > maxDepth) return;
73
+ let entries;
74
+ try { entries = fs.readdirSync(d, { withFileTypes: true }); } catch { return; }
75
+ for (const ent of entries) {
76
+ if (ent.isFile() && (ent.name.endsWith('.jsonl') || ent.name.endsWith('.txt'))) {
77
+ const fp = path.join(d, ent.name);
78
+ try {
79
+ const st = fs.statSync(fp);
80
+ results.push({ path: fp, name: ent.name, time: st.mtime.getTime(), size: st.size });
81
+ } catch { /* skip unreadable */ }
82
+ } else if (ent.isDirectory() && ent.name !== 'subagents' && ent.name !== 'node_modules') {
83
+ walk(path.join(d, ent.name), depth + 1);
84
+ }
85
+ }
86
+ }
87
+ walk(dir, 0);
88
+ return results;
89
+ }
90
+
91
+ /**
92
+ * Read the first maxBytes bytes of a file.
93
+ * @param {string} filePath
94
+ * @param {number} [maxBytes=8192]
95
+ * @returns {string}
96
+ */
97
+ function readFileHead(filePath, maxBytes) {
98
+ if (maxBytes === undefined) maxBytes = 8192;
99
+ try {
100
+ if (!fs.existsSync(filePath)) return '';
101
+ const fd = fs.openSync(filePath, 'r');
102
+ const buffer = Buffer.alloc(maxBytes);
103
+ const bytesRead = fs.readSync(fd, buffer, 0, maxBytes, 0);
104
+ fs.closeSync(fd);
105
+ return buffer.slice(0, bytesRead).toString('utf8');
106
+ } catch (e) {
107
+ return '';
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Read the last `size` bytes of a file (tail read for recent logs).
113
+ * @param {string} filePath
114
+ * @param {number} [size=10000]
115
+ * @returns {string}
116
+ */
117
+ function readRecentLog(filePath, size) {
118
+ if (size === undefined) size = 10000;
119
+ try {
120
+ if (!fs.existsSync(filePath)) return `[MISSING] ${filePath}`;
121
+ const stat = fs.statSync(filePath);
122
+ const fileSize = stat.size;
123
+ if (fileSize === 0) return '';
124
+ const readSize = Math.min(size, fileSize);
125
+ const buffer = Buffer.alloc(readSize);
126
+ const fd = fs.openSync(filePath, 'r');
127
+ fs.readSync(fd, buffer, 0, readSize, Math.max(0, fileSize - readSize));
128
+ fs.closeSync(fd);
129
+ return buffer.toString('utf8');
130
+ } catch (e) {
131
+ return `[ERROR READING ${filePath}: ${e.message}]`;
132
+ }
133
+ }
134
+
135
+ function stripTrailingSeparators(value) {
136
+ return String(value || '').replace(/[\\/]+$/, '');
137
+ }
138
+
139
+ /**
140
+ * Normalize a workspace identity for provenance comparisons.
141
+ *
142
+ * macOS commonly exposes the same temporary directory through both `/var/...`
143
+ * and `/private/var/...`. `path.resolve()` keeps those strings different even
144
+ * though they identify the same directory, so use realpath when possible and
145
+ * fall back to the resolved path for stale transcript cwd values.
146
+ *
147
+ * @param {string} value
148
+ * @returns {string}
149
+ */
150
+ function normalizeWorkspaceIdentity(value) {
151
+ let resolved;
152
+ try {
153
+ resolved = stripTrailingSeparators(path.resolve(value));
154
+ } catch {
155
+ return '';
156
+ }
157
+ if (!resolved) return '';
158
+ try {
159
+ return stripTrailingSeparators(fs.realpathSync.native(resolved));
160
+ } catch {
161
+ try {
162
+ return stripTrailingSeparators(fs.realpathSync(resolved));
163
+ } catch {
164
+ return resolved;
165
+ }
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Read the first record(s) of a JSONL transcript and try to extract the
171
+ * originating workspace cwd. Codex rollouts start with a `session_meta`
172
+ * record whose `payload.cwd` is the workspace the session ran in
173
+ * (`{"type":"session_meta","payload":{"cwd":"/home/u/workspace/X", ...}}`).
174
+ * Claude Code may emit a top-level `cwd` on its first record; generic
175
+ * fallback also checks `data.cwd`.
176
+ *
177
+ * Returns the cwd string or null when no recognisable cwd is found in
178
+ * the first ~4 KB of the file. Bounded read so a malformed multi-MB
179
+ * transcript can't stall the discovery pass.
180
+ *
181
+ * @param {string} filePath
182
+ * @returns {string|null}
183
+ */
184
+ function extractTranscriptCwd(filePath) {
185
+ try {
186
+ if (!filePath.endsWith('.jsonl')) return null;
187
+ const head = readFileHead(filePath, 4096);
188
+ if (!head) return null;
189
+ const lines = head.split('\n');
190
+ // Scan at most the first 5 records — `session_meta` should be first
191
+ // for Codex; widen the window slightly in case a writer prepends an
192
+ // envelope record (e.g. version preamble).
193
+ for (let i = 0; i < Math.min(lines.length, 5); i++) {
194
+ const ln = lines[i].trim();
195
+ if (!ln) continue;
196
+ let data;
197
+ try { data = JSON.parse(ln); } catch { continue; }
198
+ if (data && typeof data === 'object') {
199
+ if (data.type === 'session_meta' && data.payload && typeof data.payload.cwd === 'string') {
200
+ return data.payload.cwd;
201
+ }
202
+ if (typeof data.cwd === 'string') return data.cwd;
203
+ }
204
+ }
205
+ return null;
206
+ } catch { return null; }
207
+ }
208
+
209
+ /**
210
+ * Decide whether a transcript file belongs to the workspace we're
211
+ * evolving. The user-level discovery paths (`~/.codex/sessions`,
212
+ * `~/.claude/projects`) hold transcripts from EVERY project the user
213
+ * has touched — pulling them in unfiltered would import unrelated
214
+ * session content into another repo's evolution run (Bugbot PR #130
215
+ * Agentic Security Review MEDIUM: cross-project prompt/context
216
+ * contamination + possible unintended disclosure of prior session
217
+ * data).
218
+ *
219
+ * Match semantics: a session's recorded cwd belongs to "this
220
+ * workspace" if it equals OR is a subdir of ANY of the candidate
221
+ * roots passed in. We accept multiple candidates so a user who
222
+ * `cd`'d into a non-git directory still gets their own sessions
223
+ * back: `getWorkspaceRoot()` may fall back to the evolver install
224
+ * dir when no `.git` is found, but `process.cwd()` still points
225
+ * at the user's actual working dir (which is what the Codex
226
+ * session also recorded). Without this multi-candidate match,
227
+ * issue #543's follow-up scenario — tammypi running evolver from
228
+ * `/home/u/workspace/foo` with no `git init` — silently dropped
229
+ * every transcript even though Codex was active there.
230
+ *
231
+ * Files without a recognisable cwd (older formats, third-party
232
+ * writers) are dropped — fail-closed is the conservative answer
233
+ * when we can't prove provenance.
234
+ *
235
+ * @param {string} filePath
236
+ * @param {string|string[]} candidateRoots — one or more workspace
237
+ * identities; the transcript's cwd matches if any of these
238
+ * equals or is a parent of it.
239
+ * @returns {boolean}
240
+ */
241
+ function transcriptBelongsToWorkspace(filePath, candidateRoots) {
242
+ const cwd = extractTranscriptCwd(filePath);
243
+ if (!cwd) return false;
244
+ const roots = Array.isArray(candidateRoots) ? candidateRoots : [candidateRoots];
245
+ const normCwd = normalizeWorkspaceIdentity(cwd);
246
+ if (!normCwd) return false;
247
+ for (const root of roots) {
248
+ if (!root) continue;
249
+ const normRoot = normalizeWorkspaceIdentity(root);
250
+ if (!normRoot) continue;
251
+ if (normCwd === normRoot) return true;
252
+ if (normCwd.startsWith(normRoot + path.sep)) return true;
253
+ }
254
+ return false;
255
+ }
256
+
257
+ module.exports = {
258
+ resolveTranscriptDirs,
259
+ collectTranscriptFiles,
260
+ readFileHead,
261
+ readRecentLog,
262
+ extractTranscriptCwd,
263
+ transcriptBelongsToWorkspace,
264
+ };