@evomap/evolver 1.89.2 → 1.89.4
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.
- package/.cursor/BUGBOT.md +182 -0
- package/.env.example +68 -0
- package/.git-commit-guard-token +1 -0
- package/.github/CODEOWNERS +63 -0
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
- package/.github/pull_request_template.md +45 -0
- package/.github/workflows/test.yml +75 -0
- package/CHANGELOG.md +1237 -0
- package/README.ja-JP.md +1 -3
- package/README.ko-KR.md +1 -3
- package/README.md +86 -530
- package/README.public.md +569 -0
- package/README.zh-CN.md +1 -3
- package/SECURITY.md +108 -0
- package/assets/gep/events.jsonl +3 -0
- package/assets/gep/genes.json +496 -0
- package/examples/atp-consumer-quickstart.md +100 -0
- package/examples/hello-world.md +38 -0
- package/index.js +44 -48
- package/package.json +6 -17
- package/proxy-package.json +39 -0
- package/public.manifest.json +143 -0
- package/src/adapters/hookAdapter.js +2 -0
- package/src/adapters/scripts/_lockPaths.js +74 -0
- package/src/adapters/scripts/evolver-session-start.js +19 -27
- package/src/config.js +23 -0
- package/src/evolve/guards.js +721 -1
- package/src/evolve/pipeline/collect.js +1283 -1
- package/src/evolve/pipeline/dispatch.js +421 -1
- package/src/evolve/pipeline/enrich.js +440 -1
- package/src/evolve/pipeline/hub.js +319 -1
- package/src/evolve/pipeline/select.js +274 -1
- package/src/evolve/pipeline/signals.js +206 -1
- package/src/evolve/utils.js +264 -1
- package/src/evolve.js +350 -1
- package/src/experiment/agentRunner.js +229 -0
- package/src/experiment/cli.js +159 -0
- package/src/experiment/comparison.js +233 -0
- package/src/experiment/metrics.js +75 -0
- package/src/forceUpdate.js +311 -30
- package/src/gep/a2aProtocol.js +4455 -1
- package/src/gep/antiAbuseTelemetry.js +233 -0
- package/src/gep/autoDistillConv.js +205 -1
- package/src/gep/autoDistillLlm.js +315 -1
- package/src/gep/candidateEval.js +92 -1
- package/src/gep/candidates.js +198 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +89 -1
- package/src/gep/curriculum.js +163 -1
- package/src/gep/deviceId.js +218 -1
- package/src/gep/envFingerprint.js +118 -1
- package/src/gep/epigenetics.js +31 -1
- package/src/gep/execBridge.js +711 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +359 -1
- package/src/gep/hubReview.js +207 -1
- package/src/gep/hubSearch.js +526 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +89 -1
- package/src/gep/memoryGraph.js +1374 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +203 -1
- package/src/gep/narrativeMemory.js +108 -1
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +423 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/prompt.js +836 -1
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/sanitize.js +9 -0
- package/src/gep/selector.js +602 -1
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1699 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +88 -1
- package/src/gep/validator/sandboxExecutor.js +29 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +99 -1
- package/src/proxy/index.js +14 -5
- package/src/proxy/inject.js +52 -1
- package/src/proxy/lifecycle/manager.js +30 -0
- package/src/proxy/mailbox/store.js +2 -1
- package/src/proxy/router/messages_route.js +13 -2
- package/src/proxy/trace/extractor.js +646 -1
- package/src/proxy/trace/usage.js +105 -1
- package/CONTRIBUTING.md +0 -19
- package/assets/cover.png +0 -0
- package/assets/gep/genes.seed.json +0 -245
- package/scripts/a2a_export.js +0 -63
- package/scripts/a2a_ingest.js +0 -79
- package/scripts/a2a_promote.js +0 -118
- package/scripts/analyze_by_skill.js +0 -121
- package/scripts/build_binaries.js +0 -479
- package/scripts/check-changelog.js +0 -166
- package/scripts/extract_log.js +0 -85
- package/scripts/generate_history.js +0 -75
- package/scripts/gep_append_event.js +0 -96
- package/scripts/gep_personality_report.js +0 -234
- package/scripts/human_report.js +0 -147
- package/scripts/recall-verify-report.js +0 -234
- package/scripts/recover_loop.js +0 -61
- package/scripts/seed-merchants.js +0 -91
- package/scripts/suggest_version.js +0 -89
- package/scripts/validate-modules.js +0 -38
- package/scripts/validate-suite.js +0 -78
- package/skills/index.json +0 -14
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
package/src/gep/recallInject.js
CHANGED
|
@@ -1 +1,409 @@
|
|
|
1
|
-
const _0x1c396c=_0x45bb;(function(_0x4b4cb7,_0x4a36ec){const _0x52a14a=_0x45bb,_0x1b73e4=_0x4b4cb7();while(!![]){try{const _0x29c7b4=-parseInt(_0x52a14a(0x2c4,'\x6b\x4c\x6d\x63'))/(0x692*-0x3+-0x1*-0x862+-0x3c7*-0x3)+parseInt(_0x52a14a(0x389,'\x61\x79\x43\x7a'))/(0x192c+0x1343+-0x29d*0x11)*(-parseInt(_0x52a14a(0x297,'\x26\x68\x43\x2a'))/(-0x23c7+-0x1aca+-0xb4*-0x59))+-parseInt(_0x52a14a(0x3b5,'\x74\x42\x23\x52'))/(-0x2005+0x1bd2+0x53*0xd)*(parseInt(_0x52a14a(0x1be,'\x45\x67\x62\x4d'))/(-0x25fc+-0x1eb3+-0x225a*-0x2))+-parseInt(_0x52a14a(0x2f8,'\x34\x6c\x75\x65'))/(-0x1c01+0x25d7+0x13a*-0x8)*(-parseInt(_0x52a14a(0x245,'\x63\x69\x79\x68'))/(0x76d*0x3+-0x8bd+-0xd83))+parseInt(_0x52a14a(0x29b,'\x6e\x4a\x58\x6e'))/(0x57d+0x12*-0x166+-0x13b7*-0x1)+parseInt(_0x52a14a(0x320,'\x61\x79\x43\x7a'))/(0xbe4+-0x2*0x7d5+0x3cf)+-parseInt(_0x52a14a(0x39d,'\x30\x58\x38\x24'))/(0x1c1*-0xb+-0x2*-0x1307+0x1*-0x12b9);if(_0x29c7b4===_0x4a36ec)break;else _0x1b73e4['push'](_0x1b73e4['shift']());}catch(_0x2e4a7a){_0x1b73e4['push'](_0x1b73e4['shift']());}}}(_0x4733,0x11972e*0x1+0x37a*0x2ba+-0xd810d));const _0xac9253=(function(){const _0x49d6ed=_0x45bb,_0x1d7405={};_0x1d7405[_0x49d6ed(0x31e,'\x71\x4e\x58\x67')]=_0x49d6ed(0x3b0,'\x5d\x6f\x23\x70')+'\x2b\x29\x2b\x24',_0x1d7405[_0x49d6ed(0x232,'\x70\x62\x5a\x26')]=function(_0x6b78c0,_0x3e0320){return _0x6b78c0===_0x3e0320;};const _0x10a320=_0x1d7405;let _0x388672=!![];return function(_0xee4e,_0x16a825){const _0x4f2e2c=_0x49d6ed,_0x25c602={'\x4f\x71\x75\x68\x4c':_0x10a320[_0x4f2e2c(0x1d5,'\x61\x39\x72\x55')],'\x69\x44\x6a\x63\x59':function(_0x2ba616,_0xcbb194){const _0x3ba934=_0x4f2e2c;return _0x10a320[_0x3ba934(0x1e9,'\x63\x75\x29\x46')](_0x2ba616,_0xcbb194);},'\x61\x73\x56\x6a\x41':'\x4d\x6f\x6b\x51\x78'},_0x37784c=_0x388672?function(){const _0x29db25=_0x4f2e2c;if(_0x16a825){if(_0x25c602[_0x29db25(0x31b,'\x61\x30\x31\x78')](_0x25c602[_0x29db25(0x1c6,'\x30\x58\x38\x24')],_0x25c602['\x61\x73\x56\x6a\x41'])){const _0x2af9c7=_0x16a825[_0x29db25(0x391,'\x63\x69\x79\x68')](_0xee4e,arguments);return _0x16a825=null,_0x2af9c7;}else return _0x392b0d[_0x29db25(0x3a0,'\x29\x30\x45\x2a')]()[_0x29db25(0x24a,'\x6e\x4a\x58\x6e')](_0x25c602[_0x29db25(0x39c,'\x79\x5a\x4e\x52')])[_0x29db25(0x338,'\x5d\x6f\x23\x70')]()[_0x29db25(0x2f6,'\x30\x40\x39\x49')+'\x74\x6f\x72'](_0x1eb706)['\x73\x65\x61\x72\x63\x68'](_0x25c602[_0x29db25(0x272,'\x41\x69\x62\x34')]);}}:function(){};return _0x388672=![],_0x37784c;};}()),_0x39b586=_0xac9253(this,function(){const _0x1dacc7=_0x45bb,_0x31e2c1={};_0x31e2c1[_0x1dacc7(0x209,'\x76\x53\x24\x28')]='\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x1dacc7(0x37b,'\x40\x62\x46\x76');const _0x10b7bc=_0x31e2c1;return _0x39b586[_0x1dacc7(0x1c0,'\x25\x34\x43\x77')]()[_0x1dacc7(0x1f8,'\x4d\x4a\x4e\x35')](_0x10b7bc[_0x1dacc7(0x36c,'\x63\x69\x79\x68')])[_0x1dacc7(0x1e0,'\x79\x5a\x4e\x52')]()[_0x1dacc7(0x208,'\x41\x69\x62\x34')+'\x74\x6f\x72'](_0x39b586)[_0x1dacc7(0x368,'\x39\x4f\x6f\x73')](_0x10b7bc['\x49\x6c\x50\x65\x54']);});_0x39b586();function _0x4733(){const _0x18c86e=['\x57\x35\x42\x64\x4f\x73\x37\x64\x54\x43\x6f\x61\x57\x37\x64\x64\x49\x53\x6f\x31','\x41\x6d\x6b\x57\x57\x34\x4f\x78\x6e\x66\x4a\x63\x55\x61','\x69\x38\x6b\x6f\x57\x36\x74\x64\x51\x59\x74\x63\x54\x6d\x6b\x77','\x57\x35\x72\x61\x57\x36\x6c\x63\x52\x47','\x57\x35\x66\x38\x69\x48\x31\x30\x57\x36\x33\x63\x56\x68\x4f','\x57\x50\x68\x64\x4f\x53\x6f\x73\x44\x38\x6b\x45\x72\x53\x6f\x6d\x6c\x61','\x76\x38\x6b\x6c\x57\x34\x47\x54\x6b\x71','\x57\x50\x4c\x4d\x57\x34\x62\x56\x57\x52\x69\x6c','\x43\x43\x6b\x2b\x57\x37\x57','\x57\x51\x2f\x64\x4e\x43\x6b\x69\x77\x6d\x6f\x75','\x57\x37\x35\x66\x57\x36\x65\x65\x57\x4f\x65','\x62\x53\x6b\x73\x57\x35\x52\x64\x56\x63\x57','\x68\x53\x6b\x62\x57\x36\x42\x64\x49\x63\x38','\x6e\x43\x6f\x35\x63\x73\x6a\x37','\x57\x36\x78\x64\x48\x38\x6b\x65\x57\x4f\x42\x63\x4e\x38\x6b\x35\x62\x43\x6f\x51','\x79\x43\x6f\x6c\x57\x52\x2f\x63\x54\x4e\x74\x64\x53\x53\x6f\x7a\x69\x53\x6b\x6d\x57\x51\x56\x64\x47\x4c\x6e\x4b','\x57\x35\x43\x70\x57\x35\x52\x64\x4a\x47','\x65\x43\x6b\x55\x72\x68\x75\x30','\x45\x53\x6f\x6e\x57\x50\x39\x67\x6e\x6d\x6f\x71\x79\x53\x6b\x35','\x6e\x43\x6b\x35\x57\x37\x61\x32','\x57\x36\x6d\x57\x57\x37\x68\x63\x4e\x57','\x73\x4a\x48\x6d\x57\x36\x61\x4d\x6e\x74\x4b','\x43\x53\x6b\x33\x62\x76\x43\x47','\x72\x74\x48\x64\x57\x36\x66\x4a\x7a\x71','\x70\x6d\x6b\x45\x57\x36\x46\x64\x4f\x74\x68\x63\x52\x47','\x71\x6d\x6b\x76\x6b\x68\x61\x62','\x65\x64\x4a\x63\x4a\x6d\x6f\x34\x72\x33\x47','\x45\x53\x6b\x68\x57\x51\x4c\x4e\x6b\x53\x6f\x65\x64\x57','\x57\x36\x5a\x64\x4e\x61\x42\x64\x47\x6d\x6b\x72','\x70\x4c\x4a\x64\x53\x43\x6f\x47\x57\x36\x5a\x64\x4a\x43\x6b\x37\x65\x57','\x57\x50\x35\x51\x57\x35\x7a\x4f\x57\x50\x79','\x42\x38\x6f\x38\x57\x4f\x35\x51\x6c\x71','\x57\x4f\x68\x64\x50\x6d\x6f\x6e\x42\x6d\x6b\x78\x73\x38\x6f\x46\x6d\x71','\x41\x62\x37\x64\x56\x53\x6f\x7a\x57\x36\x30','\x43\x73\x48\x61\x57\x36\x4b\x49\x6e\x74\x6d','\x45\x38\x6f\x62\x57\x4f\x6e\x54\x69\x38\x6f\x68','\x64\x63\x78\x63\x4b\x6d\x6f\x54\x74\x78\x70\x63\x51\x74\x30','\x57\x51\x33\x64\x55\x6d\x6f\x7a\x57\x34\x64\x63\x4a\x53\x6f\x2f\x65\x75\x30','\x77\x43\x6b\x68\x57\x51\x72\x52','\x57\x36\x6c\x64\x47\x6d\x6b\x34\x57\x4f\x64\x63\x4d\x43\x6b\x70\x68\x38\x6f\x4b','\x64\x68\x70\x64\x54\x47','\x57\x35\x6a\x67\x57\x36\x31\x50\x65\x71','\x62\x63\x56\x63\x47\x77\x74\x64\x4b\x43\x6b\x79\x57\x36\x33\x64\x51\x71','\x6d\x58\x4a\x63\x49\x38\x6f\x70\x79\x47','\x67\x6d\x6b\x4f\x57\x36\x75\x33\x63\x71','\x57\x37\x35\x31\x57\x51\x53\x74\x57\x52\x61\x55\x57\x50\x76\x52','\x57\x4f\x70\x64\x56\x53\x6f\x6a\x78\x43\x6b\x74','\x6d\x38\x6b\x59\x7a\x4c\x43\x4f\x44\x57','\x57\x34\x6d\x45\x44\x49\x54\x61','\x64\x68\x70\x64\x4f\x6d\x6b\x59\x57\x37\x52\x64\x4a\x4e\x4a\x63\x56\x61','\x57\x34\x62\x51\x57\x52\x37\x64\x55\x53\x6b\x6e','\x57\x37\x58\x56\x57\x35\x57\x78\x57\x50\x69','\x66\x38\x6b\x32\x57\x52\x64\x63\x55\x4e\x6e\x48\x57\x34\x76\x69\x6a\x31\x70\x64\x53\x59\x4e\x64\x56\x57','\x78\x4d\x56\x63\x4f\x78\x78\x64\x4a\x38\x6b\x75\x57\x36\x64\x64\x55\x47','\x6f\x64\x68\x64\x55\x31\x48\x44\x74\x67\x7a\x73','\x67\x63\x74\x63\x48\x6d\x6f\x5a\x78\x71','\x6a\x5a\x31\x57\x77\x4b\x57\x4a\x57\x4f\x53\x32','\x6e\x59\x62\x6d\x78\x4b\x34\x56\x57\x4f\x65','\x57\x34\x6c\x64\x47\x6d\x6f\x6c\x57\x4f\x42\x63\x4a\x53\x6b\x74\x61\x53\x6f\x4d','\x57\x52\x68\x64\x54\x59\x46\x64\x50\x6d\x6b\x31\x45\x30\x58\x45','\x57\x51\x4a\x63\x51\x4b\x57\x56\x57\x35\x30','\x57\x36\x78\x63\x4e\x76\x78\x63\x49\x57','\x45\x6d\x6b\x57\x57\x37\x53','\x57\x37\x68\x64\x49\x53\x6b\x42\x57\x51\x56\x63\x4d\x43\x6b\x64\x65\x53\x6f\x49','\x57\x50\x38\x48\x7a\x43\x6f\x4d\x42\x67\x2f\x64\x56\x61','\x57\x52\x74\x64\x4f\x6d\x6b\x39\x75\x71','\x45\x43\x6b\x47\x6c\x68\x4f\x48\x57\x50\x56\x64\x4e\x61','\x57\x52\x64\x63\x48\x4c\x69\x47\x57\x34\x4f','\x66\x38\x6b\x4a\x57\x37\x47\x66\x6f\x4e\x47\x68\x57\x37\x38','\x57\x50\x4b\x41\x57\x4f\x4e\x63\x4a\x53\x6f\x5a\x57\x52\x69\x53\x57\x36\x65','\x69\x30\x5a\x64\x54\x53\x6b\x66\x57\x34\x75','\x57\x34\x50\x42\x57\x34\x54\x58\x65\x47','\x57\x36\x6d\x42\x57\x35\x46\x63\x4d\x57','\x73\x43\x6f\x56\x57\x37\x65','\x57\x36\x4a\x63\x47\x53\x6f\x4e\x57\x4f\x53\x6b','\x57\x34\x4a\x64\x52\x59\x2f\x64\x50\x6d\x6f\x6c\x57\x34\x78\x64\x54\x6d\x6f\x56','\x57\x35\x76\x42\x57\x37\x58\x31\x62\x57','\x57\x52\x70\x64\x56\x64\x78\x64\x48\x53\x6b\x55\x44\x4e\x4f','\x44\x4a\x48\x76\x57\x37\x61','\x57\x50\x68\x64\x50\x43\x6f\x62\x42\x6d\x6b\x76\x44\x43\x6f\x65\x70\x61','\x57\x34\x6c\x63\x48\x31\x78\x63\x49\x43\x6b\x78','\x73\x53\x6b\x54\x57\x35\x79\x46\x67\x57','\x57\x37\x4e\x63\x4e\x38\x6b\x50\x57\x34\x43\x70\x57\x35\x74\x63\x54\x31\x38','\x6d\x43\x6f\x4e\x6d\x61\x58\x32','\x70\x53\x6b\x76\x79\x53\x6f\x61\x57\x50\x7a\x67','\x57\x36\x72\x54\x57\x36\x69\x65\x57\x52\x30','\x65\x43\x6f\x6b\x70\x64\x44\x32','\x57\x36\x2f\x63\x4a\x53\x6f\x59\x57\x50\x75\x6d\x57\x35\x53','\x72\x53\x6b\x6b\x69\x31\x38\x68','\x6a\x6d\x6b\x46\x57\x35\x71\x7a\x67\x61','\x61\x53\x6b\x32\x57\x37\x72\x72','\x66\x63\x78\x64\x4e\x30\x39\x4f','\x43\x74\x76\x6d\x57\x36\x61\x53\x6d\x61','\x57\x36\x64\x64\x52\x73\x37\x64\x4e\x6d\x6b\x38','\x57\x34\x34\x4b\x69\x64\x61\x78','\x6a\x38\x6b\x4b\x72\x43\x6f\x61\x57\x51\x57','\x6c\x31\x4c\x33\x46\x53\x6b\x64\x57\x52\x54\x77\x66\x57','\x43\x72\x70\x64\x56\x71','\x6c\x49\x64\x64\x51\x65\x72\x44\x71\x32\x65','\x57\x35\x79\x59\x6c\x47\x30\x58\x6b\x38\x6b\x63\x57\x51\x4f','\x62\x67\x70\x64\x4c\x53\x6b\x35\x57\x36\x2f\x64\x53\x33\x33\x63\x56\x71','\x57\x37\x6e\x47\x57\x51\x78\x64\x52\x38\x6b\x74\x74\x32\x76\x7a','\x44\x38\x6b\x39\x66\x62\x4a\x64\x4e\x61','\x72\x38\x6f\x64\x57\x4f\x35\x70\x57\x37\x65\x56\x68\x43\x6b\x7a','\x79\x43\x6b\x33\x6a\x57','\x6f\x38\x6b\x63\x41\x6d\x6f\x74\x57\x51\x62\x42\x57\x51\x56\x64\x48\x57','\x6b\x6d\x6f\x4b\x7a\x33\x34','\x71\x33\x46\x63\x54\x67\x4a\x64\x4b\x38\x6b\x75\x57\x37\x52\x64\x55\x61','\x57\x36\x78\x64\x56\x4e\x2f\x64\x54\x43\x6f\x72\x61\x71\x47','\x57\x52\x68\x64\x4f\x53\x6f\x6e\x57\x36\x65','\x57\x52\x52\x63\x54\x68\x4b\x49\x57\x36\x71\x4f\x75\x53\x6b\x43','\x57\x34\x72\x37\x69\x4c\x66\x48','\x57\x34\x78\x64\x52\x38\x6f\x68\x43\x43\x6b\x6f\x79\x43\x6f\x4f','\x6b\x38\x6b\x55\x45\x66\x75','\x65\x49\x56\x63\x4b\x43\x6f\x38\x72\x4b\x42\x63\x4c\x59\x43','\x57\x34\x69\x43\x57\x34\x42\x64\x4c\x6d\x6f\x35\x57\x36\x62\x54\x57\x37\x65','\x57\x36\x2f\x64\x50\x65\x4a\x64\x50\x53\x6f\x6f','\x62\x63\x43\x38\x45\x53\x6f\x46\x67\x53\x6b\x62\x78\x57','\x57\x50\x52\x64\x4f\x62\x42\x64\x49\x53\x6b\x66','\x57\x37\x48\x75\x57\x50\x52\x64\x53\x43\x6b\x4b','\x79\x53\x6b\x79\x57\x35\x5a\x64\x50\x63\x4a\x63\x53\x6d\x6b\x6c','\x6d\x66\x39\x35\x44\x53\x6b\x64\x57\x37\x79\x65\x63\x57','\x57\x35\x6e\x67\x57\x37\x4e\x63\x4f\x53\x6f\x71\x57\x37\x57\x7a\x73\x47','\x57\x52\x58\x67\x43\x61','\x57\x37\x50\x31\x65\x33\x35\x78','\x57\x35\x47\x6e\x57\x35\x37\x63\x4e\x38\x6f\x6b','\x79\x61\x6c\x64\x51\x53\x6f\x39','\x57\x36\x61\x53\x57\x36\x2f\x63\x4e\x53\x6f\x33\x57\x37\x4e\x64\x4c\x31\x4f','\x70\x64\x4e\x64\x56\x30\x7a\x66','\x69\x43\x6f\x37\x6e\x63\x50\x49\x6a\x4e\x4b\x50','\x6f\x53\x6b\x4c\x57\x37\x75\x2b\x65\x68\x34','\x57\x37\x42\x64\x4e\x72\x4e\x64\x56\x53\x6b\x46\x57\x34\x4c\x48\x43\x47','\x57\x50\x62\x51\x57\x36\x48\x37\x57\x52\x43','\x57\x4f\x65\x50\x43\x47','\x41\x43\x6f\x45\x57\x37\x70\x64\x4d\x5a\x65','\x41\x43\x6f\x68\x57\x51\x6e\x32\x6d\x43\x6f\x71\x43\x38\x6b\x42','\x62\x73\x43\x38\x75\x43\x6f\x63\x6b\x38\x6b\x58\x71\x61','\x57\x34\x38\x38\x66\x47\x65\x55','\x6c\x53\x6b\x66\x57\x34\x7a\x43\x65\x61','\x57\x36\x30\x53\x66\x57\x4f\x6b','\x57\x51\x6a\x77\x57\x50\x70\x64\x48\x53\x6b\x6a\x57\x36\x75\x55\x57\x35\x31\x66\x78\x38\x6f\x6b\x62\x6d\x6b\x49','\x69\x32\x69\x34\x41\x38\x6f\x45\x6a\x53\x6b\x77\x65\x47','\x57\x36\x61\x53\x76\x59\x48\x59\x57\x4f\x34\x56\x57\x35\x61','\x57\x52\x50\x6b\x73\x38\x6f\x66\x6d\x38\x6f\x73\x78\x47\x53','\x57\x34\x44\x78\x57\x37\x2f\x63\x4a\x53\x6f\x66\x57\x36\x65\x33\x78\x71','\x68\x4a\x4e\x63\x4c\x53\x6f\x36\x77\x4b\x4e\x63\x4e\x5a\x43','\x57\x52\x4f\x4c\x43\x6d\x6f\x62\x78\x71','\x41\x43\x6f\x68\x57\x52\x58\x54\x6e\x6d\x6f\x43\x42\x38\x6b\x2f','\x6a\x68\x70\x64\x53\x53\x6b\x54\x57\x35\x38','\x46\x49\x68\x64\x54\x38\x6f\x37\x57\x35\x79','\x57\x51\x33\x64\x51\x6d\x6f\x79\x43\x43\x6b\x6a\x73\x38\x6f\x6f\x6c\x61','\x57\x4f\x72\x41\x6a\x6d\x6b\x59\x57\x35\x78\x63\x53\x53\x6b\x58\x78\x57','\x57\x4f\x69\x34\x44\x38\x6f\x51\x79\x77\x52\x64\x56\x62\x47','\x69\x43\x6b\x55\x57\x36\x38\x33\x65\x4d\x4e\x64\x4f\x61','\x57\x36\x42\x63\x4e\x65\x46\x63\x47\x43\x6b\x79\x57\x50\x79\x77\x57\x4f\x65','\x41\x6d\x6b\x58\x61\x38\x6f\x4b\x57\x34\x6d','\x57\x4f\x6d\x6b\x57\x36\x4e\x63\x4f\x33\x79','\x57\x35\x66\x57\x62\x65\x76\x30','\x42\x43\x6b\x6f\x57\x51\x6e\x54\x6b\x57','\x57\x52\x37\x63\x48\x38\x6f\x64\x57\x35\x52\x64\x47\x6d\x6f\x70\x77\x53\x6b\x51','\x6d\x38\x6b\x75\x57\x37\x56\x64\x4f\x57','\x57\x37\x50\x39\x65\x66\x66\x47','\x7a\x38\x6b\x79\x57\x52\x58\x38\x61\x71','\x70\x43\x6b\x69\x41\x6d\x6f\x67\x57\x50\x6d\x65\x57\x36\x70\x64\x4b\x57','\x6e\x77\x71\x42\x57\x37\x34\x6d\x66\x58\x57\x65\x6b\x61','\x44\x53\x6b\x59\x6d\x31\x6d\x38\x57\x52\x46\x64\x47\x76\x75','\x70\x38\x6f\x5a\x6c\x73\x62\x4d\x69\x4e\x48\x36','\x57\x52\x46\x64\x53\x53\x6f\x6d\x57\x36\x64\x63\x48\x53\x6f\x53\x76\x65\x57','\x57\x37\x53\x34\x57\x34\x42\x63\x54\x43\x6f\x33','\x57\x35\x53\x6a\x57\x37\x64\x63\x50\x38\x6f\x73','\x57\x37\x7a\x4c\x57\x36\x38','\x6d\x43\x6b\x46\x57\x36\x30','\x6f\x53\x6b\x4d\x57\x34\x43\x57\x6d\x61','\x43\x6d\x6b\x4b\x6b\x5a\x74\x64\x4b\x4c\x44\x74\x74\x57','\x6d\x43\x6f\x36\x6f\x63\x50\x47\x67\x67\x69\x4b','\x57\x52\x70\x64\x56\x53\x6f\x6b\x57\x37\x61','\x57\x35\x64\x64\x4f\x49\x2f\x64\x54\x61','\x57\x36\x61\x45\x57\x34\x4a\x63\x4d\x53\x6f\x65','\x57\x36\x65\x50\x76\x58\x39\x74','\x57\x34\x6d\x35\x62\x47','\x57\x4f\x35\x75\x69\x6d\x6b\x48\x57\x36\x34','\x57\x37\x7a\x30\x57\x37\x38\x70\x57\x52\x43\x31\x57\x52\x4b\x4c','\x62\x53\x6b\x4d\x57\x37\x39\x6e','\x57\x4f\x31\x33\x64\x53\x6b\x57\x57\x36\x69','\x46\x6d\x6f\x69\x57\x51\x44\x71\x57\x34\x65','\x57\x51\x39\x77\x41\x38\x6f\x75\x6e\x43\x6f\x4b\x77\x71\x47','\x74\x6d\x6b\x65\x6e\x4c\x4b\x4b\x57\x50\x37\x64\x4a\x75\x6d','\x71\x6d\x6f\x39\x57\x37\x68\x64\x52\x64\x6a\x33','\x57\x34\x61\x4f\x63\x57\x34\x49\x62\x38\x6b\x45\x57\x4f\x6d','\x6f\x57\x31\x62\x74\x31\x61\x55','\x66\x43\x6f\x46\x6c\x64\x6a\x6b','\x57\x50\x34\x70\x57\x37\x2f\x63\x56\x65\x57\x30\x6b\x4e\x4f','\x57\x34\x42\x64\x50\x4e\x56\x64\x51\x53\x6f\x63\x57\x36\x5a\x63\x54\x43\x6f\x39','\x69\x43\x6b\x6c\x43\x53\x6f\x6f\x57\x50\x66\x70\x57\x36\x30','\x57\x36\x70\x64\x56\x31\x46\x64\x4f\x6d\x6f\x6b\x64\x47','\x63\x43\x6b\x31\x79\x6d\x6f\x67\x57\x51\x79','\x57\x36\x42\x64\x4a\x62\x6c\x64\x51\x38\x6f\x47','\x69\x43\x6f\x39\x6c\x64\x66\x54\x69\x4c\x71\x55','\x57\x51\x54\x44\x41\x6d\x6f\x45\x6d\x38\x6f\x70\x71\x57','\x63\x53\x6b\x72\x42\x32\x61\x75','\x78\x53\x6f\x6a\x57\x50\x72\x73','\x44\x6d\x6b\x48\x6f\x53\x6f\x74','\x57\x37\x74\x63\x4e\x53\x6f\x58\x57\x52\x47\x43\x57\x35\x42\x63\x56\x30\x34','\x57\x35\x72\x74\x57\x37\x4a\x63\x51\x6d\x6b\x6b\x57\x52\x4b\x2f\x76\x57','\x57\x35\x47\x54\x57\x35\x7a\x7a\x57\x52\x57\x62\x57\x34\x4e\x63\x53\x71','\x57\x36\x44\x55\x57\x34\x54\x6e\x66\x71','\x71\x4e\x68\x63\x4b\x61','\x57\x34\x78\x64\x54\x72\x37\x64\x4f\x43\x6b\x70','\x57\x37\x68\x64\x4b\x71\x42\x64\x55\x43\x6b\x4e\x57\x34\x44\x61\x43\x47','\x6e\x2b\x6b\x64\x4c\x77\x62\x65\x6c\x43\x6b\x65\x57\x34\x31\x68','\x57\x37\x6c\x63\x4a\x38\x6b\x6b\x57\x4f\x74\x63\x4d\x38\x6b\x75\x68\x53\x6f\x49','\x72\x38\x6f\x70\x57\x50\x50\x73\x57\x37\x4b\x53\x61\x61','\x46\x43\x6b\x4b\x69\x30\x69','\x57\x37\x50\x6b\x57\x4f\x78\x63\x4b\x53\x6f\x56\x57\x52\x65','\x57\x34\x76\x75\x57\x50\x46\x64\x55\x65\x4b\x62\x65\x4c\x50\x6c\x6c\x57','\x57\x36\x37\x64\x4a\x64\x4e\x64\x50\x6d\x6b\x54','\x67\x77\x2f\x64\x47\x6d\x6b\x4a\x57\x37\x5a\x64\x55\x68\x2f\x63\x56\x57','\x57\x37\x70\x63\x4e\x67\x64\x63\x4b\x43\x6b\x46','\x57\x36\x46\x63\x48\x4e\x4e\x63\x49\x38\x6b\x44\x57\x4f\x43','\x71\x43\x6b\x49\x62\x76\x75\x35','\x6a\x38\x6b\x4e\x57\x37\x4f','\x63\x59\x78\x63\x54\x53\x6f\x52\x78\x68\x2f\x63\x4d\x64\x71','\x57\x37\x69\x44\x57\x37\x6c\x63\x4d\x43\x6f\x58','\x42\x38\x6b\x5a\x57\x36\x75\x44\x6b\x71','\x57\x52\x52\x64\x53\x59\x46\x64\x4a\x6d\x6b\x39\x79\x61','\x57\x35\x2f\x64\x4d\x31\x4a\x64\x4f\x38\x6f\x48','\x57\x36\x33\x64\x4e\x47\x30','\x57\x35\x39\x32\x6d\x32\x6a\x54\x57\x37\x53','\x57\x35\x4c\x48\x62\x76\x48\x50\x57\x37\x37\x63\x55\x32\x65','\x7a\x53\x6b\x58\x6c\x6d\x6f\x65\x57\x36\x78\x63\x4c\x38\x6f\x50\x57\x50\x38','\x57\x4f\x6e\x53\x57\x34\x35\x45\x57\x52\x71\x79\x57\x34\x79','\x66\x62\x70\x63\x48\x6d\x6f\x44\x74\x71','\x57\x36\x68\x63\x4a\x76\x37\x63\x4c\x57','\x70\x64\x52\x64\x56\x65\x39\x69\x43\x68\x54\x4c','\x64\x75\x58\x37\x75\x43\x6b\x66','\x57\x37\x46\x64\x4e\x38\x6b\x42\x57\x4f\x42\x63\x48\x6d\x6b\x68\x65\x53\x6f\x52','\x6a\x38\x6b\x51\x57\x36\x57\x57\x6c\x68\x4a\x64\x4f\x64\x71','\x43\x6d\x6b\x51\x65\x66\x43\x39','\x57\x35\x4a\x64\x4a\x48\x4a\x64\x47\x43\x6b\x73','\x57\x4f\x6d\x70\x57\x34\x4e\x63\x51\x30\x61','\x57\x37\x42\x63\x48\x31\x74\x63\x48\x47','\x6a\x74\x39\x51\x42\x76\x75','\x57\x51\x42\x64\x53\x53\x6f\x6b\x57\x34\x74\x63\x4a\x38\x6f\x58\x65\x71','\x6a\x53\x6b\x56\x74\x33\x34\x70','\x43\x6d\x6b\x34\x69\x74\x46\x64\x4b\x4b\x4c\x7a','\x57\x36\x47\x4e\x45\x48\x62\x38','\x6a\x31\x6e\x33\x44\x53\x6b\x6c\x57\x37\x69\x73','\x46\x38\x6f\x61\x57\x4f\x7a\x6d\x64\x61','\x57\x35\x79\x59\x6d\x72\x79\x30\x6a\x38\x6b\x45\x57\x4f\x34','\x70\x38\x6b\x51\x57\x36\x53\x2b\x65\x4e\x38','\x57\x50\x47\x63\x57\x35\x6d','\x57\x4f\x6e\x62\x67\x53\x6b\x38\x57\x35\x42\x63\x53\x53\x6b\x4b\x7a\x71','\x57\x50\x65\x74\x57\x35\x64\x63\x55\x4b\x4f\x48\x6a\x78\x43','\x57\x35\x68\x64\x50\x5a\x42\x64\x4f\x53\x6f\x6d\x57\x36\x64\x64\x4f\x43\x6f\x77','\x57\x36\x64\x64\x49\x53\x6b\x7a\x57\x50\x33\x63\x4a\x43\x6b\x46\x75\x43\x6f\x48','\x57\x35\x66\x48\x6a\x76\x48\x57\x57\x34\x64\x63\x56\x68\x65','\x57\x37\x2f\x64\x47\x43\x6b\x62\x57\x50\x68\x63\x49\x6d\x6b\x73','\x66\x33\x35\x45\x41\x53\x6b\x69','\x57\x36\x46\x64\x52\x53\x6b\x54\x57\x50\x64\x63\x56\x57','\x45\x43\x6f\x41\x57\x4f\x62\x50\x6e\x53\x6f\x71\x7a\x71','\x57\x37\x66\x4f\x57\x36\x43\x74\x57\x52\x30\x31','\x65\x53\x6b\x49\x57\x34\x34\x2b\x6d\x61','\x57\x34\x69\x6f\x57\x50\x70\x63\x48\x53\x6f\x38\x57\x51\x44\x50\x57\x37\x65','\x57\x36\x39\x63\x57\x35\x54\x63\x67\x57','\x57\x4f\x56\x64\x4f\x53\x6f\x4b\x57\x34\x6c\x63\x47\x71','\x61\x59\x79\x53','\x46\x38\x6b\x74\x57\x51\x54\x65\x69\x71','\x57\x34\x74\x64\x49\x53\x6b\x6d\x57\x50\x68\x63\x4b\x57','\x57\x4f\x62\x74\x57\x51\x56\x63\x53\x38\x6f\x72\x57\x37\x53\x73\x77\x47','\x57\x37\x37\x64\x51\x66\x33\x64\x50\x53\x6f\x70\x64\x64\x44\x6b','\x69\x59\x44\x71\x72\x47','\x57\x34\x37\x64\x49\x4d\x5a\x64\x4f\x43\x6f\x48','\x75\x53\x6f\x52\x57\x36\x70\x64\x55\x59\x75\x2f','\x66\x6d\x6b\x55\x57\x37\x65\x2b','\x57\x4f\x69\x51\x57\x52\x5a\x63\x51\x43\x6b\x61\x46\x4e\x72\x63','\x44\x38\x6b\x72\x57\x4f\x58\x4e\x69\x6d\x6f\x69\x68\x38\x6f\x4c','\x57\x50\x47\x4e\x75\x43\x6f\x38\x46\x32\x52\x64\x4f\x72\x43','\x57\x4f\x7a\x33\x57\x35\x7a\x79','\x57\x34\x6e\x39\x69\x30\x39\x4e\x57\x37\x52\x63\x49\x4e\x53','\x70\x43\x6b\x73\x57\x36\x43','\x46\x6d\x6f\x58\x57\x50\x58\x62\x6c\x61','\x57\x4f\x44\x42\x6a\x43\x6b\x37','\x64\x73\x2f\x63\x4c\x43\x6f\x5a\x74\x33\x78\x63\x4b\x57','\x6f\x38\x6b\x50\x57\x34\x35\x33\x6d\x61','\x6a\x30\x37\x63\x52\x38\x6f\x56\x57\x34\x68\x64\x4a\x53\x6b\x69\x69\x72\x69','\x57\x52\x64\x63\x48\x77\x61\x55\x57\x36\x4f\x31','\x57\x34\x70\x64\x4e\x59\x4a\x64\x54\x53\x6f\x42','\x57\x51\x31\x4b\x6d\x6d\x6b\x65\x57\x37\x43','\x66\x43\x6b\x38\x57\x36\x6a\x77\x6a\x33\x35\x6a\x57\x52\x57','\x57\x34\x57\x4d\x41\x64\x39\x64','\x79\x5a\x6e\x7a\x57\x36\x30\x47\x66\x73\x38\x4b','\x66\x47\x4a\x64\x47\x75\x72\x53','\x41\x6d\x6b\x48\x57\x4f\x72\x50\x68\x71','\x66\x38\x6b\x45\x57\x36\x46\x64\x4f\x32\x78\x64\x50\x61','\x57\x4f\x76\x33\x57\x34\x48\x44\x57\x52\x4f\x44\x57\x35\x65','\x57\x37\x6c\x64\x56\x58\x56\x64\x4e\x6d\x6b\x44','\x57\x36\x44\x62\x57\x35\x56\x63\x52\x6d\x6f\x78','\x6d\x53\x6b\x37\x57\x36\x38\x50\x68\x67\x56\x64\x50\x4a\x38','\x43\x6d\x6f\x6a\x57\x50\x54\x36\x6c\x53\x6f\x71\x43\x53\x6f\x49','\x69\x43\x6f\x4d\x6f\x64\x66\x36\x6e\x66\x57\x50','\x65\x38\x6b\x32\x7a\x6d\x6f\x55\x57\x52\x53','\x57\x35\x72\x5a\x57\x50\x4a\x63\x54\x6d\x6f\x39','\x43\x6d\x6b\x48\x6a\x74\x4e\x64\x4c\x47','\x57\x52\x6c\x64\x51\x53\x6b\x2f\x77\x6d\x6f\x54\x62\x61\x69','\x57\x51\x47\x34\x79\x38\x6f\x63\x45\x57','\x64\x63\x2f\x63\x48\x6d\x6f\x54\x74\x78\x37\x63\x56\x49\x79','\x57\x51\x4e\x64\x56\x6d\x6b\x6f\x72\x53\x6f\x2b\x62\x48\x34','\x69\x43\x6f\x37\x70\x49\x31\x56\x6b\x33\x47\x46','\x57\x34\x79\x34\x61\x71\x53\x49\x6b\x38\x6b\x75','\x57\x50\x48\x33\x6f\x6d\x6b\x76\x57\x36\x79','\x57\x34\x66\x62\x57\x36\x34','\x42\x31\x33\x63\x50\x4b\x74\x64\x53\x71','\x6f\x59\x62\x6d\x74\x65\x34','\x57\x34\x4c\x6c\x57\x37\x58\x41\x68\x43\x6b\x6c','\x78\x4d\x56\x63\x4b\x77\x37\x64\x4b\x71','\x6a\x77\x52\x64\x4c\x38\x6b\x4a\x57\x37\x38','\x43\x43\x6b\x2b\x57\x37\x71','\x6c\x4a\x5a\x64\x4f\x4b\x44\x44\x78\x77\x53','\x71\x76\x33\x63\x4b\x30\x70\x64\x4e\x47','\x6f\x38\x6b\x43\x57\x37\x71\x6d\x6e\x61','\x57\x51\x64\x64\x50\x6d\x6f\x6e\x57\x36\x5a\x63\x4c\x6d\x6f\x6b\x68\x75\x4f','\x57\x37\x64\x63\x49\x31\x6c\x63\x54\x38\x6b\x72\x57\x4f\x53\x39','\x42\x4a\x48\x64\x57\x36\x6d\x33\x6c\x57','\x69\x53\x6b\x6f\x57\x36\x46\x64\x4a\x59\x65','\x43\x53\x6b\x6c\x57\x52\x35\x33\x65\x57','\x57\x37\x43\x6c\x57\x34\x78\x63\x4c\x38\x6f\x43\x57\x52\x35\x57\x57\x37\x34','\x74\x38\x6b\x67\x62\x53\x6f\x62\x57\x34\x4b','\x67\x48\x4e\x63\x47\x6d\x6f\x59\x74\x33\x4a\x63\x47\x4a\x4f','\x69\x77\x6c\x64\x48\x38\x6b\x57\x57\x34\x57','\x67\x77\x4e\x64\x50\x38\x6b\x37\x57\x36\x53','\x57\x37\x68\x64\x48\x48\x68\x64\x53\x53\x6f\x65','\x44\x6d\x6b\x32\x6b\x38\x6f\x6b','\x6e\x63\x42\x64\x4f\x75\x54\x71\x43\x68\x35\x55','\x57\x34\x57\x47\x57\x37\x52\x63\x47\x38\x6f\x50\x57\x37\x4e\x64\x48\x4b\x43','\x57\x36\x75\x48\x57\x36\x47\x67\x57\x51\x47\x4d\x57\x4f\x71\x49','\x72\x63\x42\x64\x4e\x53\x6f\x2f\x57\x34\x53','\x6e\x38\x6f\x4d\x67\x59\x39\x49','\x63\x67\x37\x64\x54\x43\x6b\x34\x57\x37\x5a\x64\x53\x4e\x71','\x57\x37\x78\x63\x4d\x6d\x6f\x73\x57\x50\x75\x44\x57\x35\x6c\x63\x51\x57','\x57\x34\x4c\x61\x57\x35\x31\x6c\x61\x57','\x57\x37\x4c\x58\x57\x37\x34\x66\x57\x52\x71\x55\x57\x50\x75\x4a','\x57\x34\x72\x33\x6a\x75\x4b','\x6a\x6d\x6b\x34\x57\x34\x72\x71\x6b\x71','\x57\x34\x30\x35\x62\x5a\x30\x56\x6b\x47','\x61\x53\x6b\x48\x57\x36\x76\x69','\x62\x63\x56\x63\x4d\x4e\x74\x64\x4e\x38\x6b\x55\x57\x36\x56\x64\x56\x61','\x57\x34\x56\x64\x51\x66\x64\x64\x4f\x47','\x57\x35\x79\x30\x66\x47\x34\x4a','\x57\x35\x4c\x48\x65\x66\x72\x51\x57\x37\x42\x63\x4f\x78\x61','\x41\x49\x56\x64\x51\x66\x35\x6a\x7a\x66\x43','\x57\x35\x72\x42\x57\x37\x2f\x63\x52\x38\x6f\x62','\x79\x58\x2f\x64\x55\x6d\x6f\x58\x57\x36\x68\x64\x51\x71','\x67\x48\x5a\x64\x56\x66\x48\x6a','\x57\x4f\x33\x64\x56\x6d\x6f\x41\x57\x35\x64\x63\x48\x47','\x57\x35\x6e\x78\x57\x36\x52\x63\x53\x43\x6f\x68\x57\x37\x65','\x65\x49\x46\x63\x50\x38\x6f\x76\x72\x71','\x44\x38\x6b\x4b\x69\x74\x2f\x64\x4e\x65\x35\x75\x78\x71','\x57\x4f\x69\x53\x42\x38\x6f\x79\x76\x57','\x57\x36\x38\x4e\x69\x64\x61\x4c','\x57\x35\x65\x4f\x64\x57\x38\x4e\x70\x6d\x6b\x6a','\x46\x53\x6b\x59\x61\x75\x71\x36\x57\x4f\x4e\x64\x4b\x71','\x57\x34\x66\x62\x57\x37\x4a\x63\x50\x53\x6f\x71\x57\x52\x4b','\x64\x63\x70\x63\x49\x6d\x6f\x32\x71\x4e\x46\x63\x48\x64\x4f','\x57\x52\x53\x48\x57\x37\x47\x6f\x57\x52\x76\x4e','\x66\x49\x53\x4c\x46\x6d\x6f\x79\x70\x6d\x6b\x71\x46\x57','\x69\x63\x7a\x72\x72\x31\x61\x54','\x57\x4f\x68\x64\x4f\x43\x6f\x6a\x7a\x53\x6b\x45','\x62\x43\x6b\x2f\x57\x36\x76\x67\x6e\x47','\x77\x43\x6f\x49\x57\x36\x4a\x64\x56\x57\x6d','\x72\x6d\x6f\x74\x57\x4f\x35\x75','\x57\x52\x6c\x63\x53\x4a\x6c\x64\x4d\x43\x6b\x53\x7a\x33\x62\x77','\x57\x51\x33\x64\x55\x38\x6f\x45\x57\x51\x64\x64\x4a\x47','\x57\x52\x78\x64\x56\x53\x6f\x6b\x57\x36\x78\x63\x48\x71','\x57\x34\x7a\x51\x57\x52\x74\x64\x54\x71','\x57\x37\x68\x63\x49\x53\x6f\x4e\x57\x4f\x71\x68','\x70\x6d\x6b\x75\x57\x36\x4a\x64\x4f\x47\x6c\x63\x4f\x38\x6b\x62\x64\x57','\x57\x51\x52\x63\x47\x4d\x43\x49\x57\x36\x75\x47\x74\x6d\x6b\x75','\x6f\x38\x6b\x69\x79\x53\x6f\x6a','\x57\x34\x53\x46\x57\x34\x46\x64\x47\x43\x6f\x4f\x57\x51\x47','\x70\x53\x6f\x39\x6f\x49\x6a\x49\x67\x67\x57\x4c','\x57\x37\x54\x67\x57\x50\x33\x63\x52\x53\x6f\x2f\x57\x51\x66\x53\x78\x61','\x57\x50\x7a\x63\x6f\x47','\x77\x66\x46\x63\x55\x4b\x42\x64\x56\x61','\x57\x35\x79\x6a\x43\x62\x72\x38','\x6b\x38\x6b\x4c\x79\x76\x30','\x57\x37\x54\x65\x69\x4d\x4c\x2b','\x65\x53\x6b\x48\x57\x36\x6e\x76\x69\x32\x4c\x79','\x66\x5a\x75\x58\x74\x38\x6f\x57','\x64\x53\x6b\x5a\x71\x31\x30\x56','\x43\x43\x6b\x55\x6a\x61','\x57\x37\x57\x72\x6c\x43\x6b\x67\x44\x43\x6b\x6d\x46\x61\x2f\x63\x50\x4c\x46\x63\x52\x4b\x4b','\x57\x36\x78\x64\x56\x4e\x4a\x64\x52\x53\x6f\x6e\x63\x71\x76\x61','\x57\x51\x48\x6d\x44\x6d\x6f\x66\x6a\x6d\x6f\x6a','\x57\x34\x47\x73\x77\x71\x62\x55','\x6f\x43\x6b\x49\x57\x37\x4c\x6e\x68\x57','\x57\x35\x72\x66\x6d\x33\x7a\x2b','\x57\x50\x54\x6c\x6f\x6d\x6b\x30\x57\x35\x78\x63\x56\x57','\x57\x36\x37\x64\x49\x38\x6f\x57\x57\x4f\x79\x46\x57\x35\x6c\x63\x53\x65\x79','\x57\x52\x64\x63\x4d\x65\x57\x49\x57\x36\x43\x4f\x73\x53\x6b\x79','\x57\x37\x4c\x52\x57\x51\x52\x63\x4b\x38\x6f\x37','\x57\x52\x58\x43\x74\x43\x6f\x41\x69\x61','\x57\x36\x74\x64\x53\x71\x42\x64\x49\x38\x6b\x58\x79\x33\x53','\x57\x37\x72\x50\x57\x36\x4f\x6f\x57\x52\x79\x79\x57\x4f\x38\x56','\x6c\x31\x6e\x36\x45\x6d\x6b\x42\x57\x37\x38','\x6d\x61\x44\x48\x74\x30\x79','\x57\x37\x4c\x44\x57\x37\x58\x57\x62\x38\x6b\x6b\x74\x4b\x79','\x57\x37\x71\x47\x57\x37\x42\x63\x55\x43\x6f\x30\x57\x37\x5a\x64\x47\x68\x4f','\x57\x35\x37\x63\x4a\x76\x2f\x63\x4c\x6d\x6b\x42\x57\x4f\x65\x54\x57\x51\x65','\x57\x35\x58\x57\x57\x51\x37\x64\x53\x57','\x57\x35\x6e\x75\x57\x35\x2f\x63\x4b\x38\x6f\x44','\x6c\x6d\x6b\x71\x57\x35\x47\x53\x46\x38\x6b\x68\x6d\x43\x6b\x45\x64\x4c\x4a\x63\x51\x38\x6b\x32\x76\x57','\x57\x51\x68\x64\x56\x6d\x6b\x38\x75\x43\x6f\x34\x6f\x61\x37\x63\x51\x47','\x57\x35\x35\x49\x69\x31\x39\x4f\x57\x37\x42\x63\x50\x4e\x30','\x72\x38\x6f\x73\x57\x50\x48\x6d\x57\x36\x53','\x43\x38\x6b\x4b\x6c\x66\x6d\x38\x57\x4f\x30','\x6e\x53\x6b\x4c\x57\x37\x4b\x30\x61\x77\x4e\x64\x4f\x61','\x43\x43\x6b\x67\x57\x51\x39\x72\x6a\x38\x6f\x66','\x57\x4f\x4b\x42\x7a\x38\x6f\x4c\x42\x67\x33\x64\x55\x58\x4b','\x57\x37\x31\x55\x57\x36\x69\x6a','\x69\x64\x54\x51\x72\x77\x30','\x57\x51\x79\x59\x57\x52\x54\x45\x57\x36\x35\x2f\x57\x35\x44\x39\x6a\x58\x72\x57\x57\x37\x4f\x62\x57\x36\x30','\x6a\x6d\x6b\x78\x57\x36\x57','\x57\x36\x71\x35\x73\x5a\x39\x4a\x57\x37\x65\x4e\x57\x34\x71','\x6f\x49\x66\x49\x78\x65\x57\x52\x57\x50\x57','\x64\x38\x6b\x75\x79\x75\x79\x6c','\x57\x51\x37\x64\x53\x38\x6f\x42\x57\x35\x42\x63\x49\x43\x6f\x58','\x57\x35\x6e\x45\x57\x36\x6c\x63\x4f\x6d\x6f\x62','\x46\x38\x6b\x67\x57\x51\x34','\x57\x51\x56\x64\x4e\x38\x6f\x70\x75\x6d\x6b\x49','\x57\x51\x2f\x64\x50\x43\x6b\x52\x42\x53\x6f\x39','\x57\x4f\x72\x62\x69\x38\x6b\x48\x57\x34\x6c\x63\x53\x53\x6b\x6a\x73\x61','\x57\x50\x6e\x6b\x57\x50\x56\x63\x4c\x53\x6b\x4f\x57\x37\x69\x31\x57\x36\x75\x48\x57\x4f\x71\x39\x78\x6d\x6f\x6b','\x57\x52\x70\x64\x4f\x38\x6b\x4d\x76\x38\x6f\x50','\x57\x50\x38\x48\x42\x38\x6f\x48\x79\x77\x6c\x64\x56\x72\x4b','\x62\x38\x6b\x30\x57\x36\x39\x57\x69\x71','\x57\x50\x65\x62\x57\x52\x56\x64\x55\x53\x6b\x73\x57\x51\x66\x70\x62\x71\x68\x64\x56\x47\x4a\x64\x4d\x53\x6f\x4c\x57\x51\x71','\x6f\x38\x6b\x38\x57\x36\x70\x64\x54\x61\x57','\x57\x4f\x2f\x64\x56\x6d\x6b\x32\x75\x53\x6f\x7a','\x69\x43\x6f\x30\x64\x72\x6e\x33','\x57\x51\x33\x63\x4d\x77\x6d\x4d','\x75\x53\x6f\x36\x57\x37\x64\x64\x51\x64\x69\x59\x57\x50\x72\x44','\x57\x4f\x70\x64\x53\x43\x6f\x76\x57\x34\x78\x63\x4c\x47','\x57\x52\x46\x64\x4f\x73\x64\x64\x4a\x6d\x6b\x4f\x73\x4e\x7a\x74','\x57\x35\x6d\x76\x57\x37\x52\x64\x4b\x53\x6f\x55\x57\x51\x4c\x49\x57\x36\x79','\x76\x58\x6c\x64\x54\x38\x6f\x57\x57\x51\x37\x63\x56\x61','\x41\x53\x6b\x71\x57\x51\x6e\x4a','\x64\x49\x43\x4d\x46\x53\x6f\x64\x69\x71','\x42\x64\x66\x59\x57\x37\x43\x32\x6b\x49\x43\x32','\x77\x78\x68\x63\x4e\x32\x5a\x64\x4e\x6d\x6b\x70\x57\x37\x43','\x57\x4f\x6c\x64\x4d\x6d\x6b\x78\x7a\x53\x6f\x54','\x57\x35\x72\x42\x57\x36\x74\x63\x52\x43\x6f\x78','\x72\x38\x6f\x4e\x57\x36\x37\x64\x56\x73\x6d\x4c','\x73\x6d\x6b\x4a\x66\x53\x6f\x5a\x57\x37\x6d','\x62\x71\x52\x64\x51\x4c\x50\x2b','\x43\x49\x48\x45\x57\x36\x57','\x57\x36\x4a\x63\x4a\x53\x6f\x48\x57\x4f\x4b\x37\x57\x35\x5a\x63\x47\x75\x79','\x57\x51\x43\x54\x45\x38\x6f\x2f\x79\x4e\x68\x64\x51\x59\x6d','\x57\x35\x39\x53\x57\x52\x52\x64\x54\x43\x6b\x61\x71\x4e\x75','\x70\x38\x6b\x2b\x57\x34\x35\x49\x70\x61','\x57\x37\x2f\x64\x55\x75\x5a\x64\x50\x53\x6f\x78\x62\x72\x7a\x43','\x57\x51\x5a\x63\x4c\x58\x4a\x64\x55\x43\x6b\x53\x57\x34\x48\x74\x44\x57','\x41\x53\x6b\x52\x6b\x38\x6f\x6a','\x57\x51\x33\x63\x48\x65\x57\x49\x57\x37\x65\x4b\x77\x47','\x57\x52\x31\x72\x41\x53\x6f\x71\x6e\x43\x6f\x45\x76\x58\x75','\x71\x43\x6b\x68\x57\x52\x6a\x36\x70\x6d\x6f\x61\x63\x6d\x6f\x30','\x68\x4d\x5a\x64\x55\x53\x6b\x30\x57\x36\x53','\x57\x36\x61\x31\x57\x36\x37\x63\x4e\x53\x6f\x56','\x69\x64\x4a\x63\x47\x6d\x6f\x51\x78\x78\x70\x64\x4c\x4d\x38','\x70\x43\x6b\x41\x57\x37\x33\x64\x50\x73\x33\x63\x49\x53\x6b\x61\x63\x71','\x57\x37\x75\x43\x57\x34\x56\x63\x4e\x47','\x6e\x53\x6b\x63\x46\x38\x6f\x56\x57\x4f\x50\x6b\x57\x50\x42\x64\x4c\x61','\x57\x52\x46\x63\x4e\x76\x4b\x70\x57\x35\x47','\x76\x38\x6b\x36\x57\x37\x75\x6a\x69\x30\x2f\x63\x55\x61\x6d','\x57\x50\x4a\x64\x4f\x53\x6f\x6a\x41\x57','\x57\x52\x6c\x64\x4f\x38\x6f\x46\x57\x37\x56\x63\x4c\x6d\x6f\x4d\x69\x30\x43','\x77\x78\x64\x63\x47\x67\x64\x64\x49\x43\x6b\x79\x57\x36\x4e\x64\x50\x61','\x75\x68\x7a\x39\x6c\x53\x6b\x64\x46\x53\x6b\x4f\x75\x43\x6b\x77\x74\x38\x6f\x78\x57\x36\x57','\x45\x53\x6b\x43\x57\x35\x75\x43\x68\x57','\x57\x4f\x6d\x51\x41\x6d\x6f\x54\x42\x4e\x43','\x57\x4f\x30\x37\x7a\x57','\x57\x52\x74\x63\x55\x65\x38\x4d\x57\x36\x69','\x57\x51\x48\x44\x6d\x38\x6b\x2b\x57\x34\x64\x63\x55\x43\x6b\x49\x74\x57','\x46\x43\x6b\x6b\x57\x36\x50\x4a\x6c\x38\x6f\x79\x73\x38\x6f\x4d','\x69\x43\x6f\x58\x6e\x4a\x66\x52\x61\x67\x34\x55','\x57\x36\x64\x64\x4f\x76\x37\x63\x52\x53\x6b\x6e','\x6a\x6d\x6b\x6a\x57\x36\x64\x64\x51\x57','\x57\x4f\x6d\x55\x7a\x61','\x57\x36\x48\x6b\x57\x50\x33\x63\x49\x53\x6f\x56','\x65\x73\x53\x4c\x43\x6d\x6f\x42\x6b\x6d\x6b\x77\x77\x57','\x70\x38\x6b\x55\x57\x37\x65\x38\x62\x32\x69','\x57\x34\x48\x4f\x57\x36\x75\x74\x57\x52\x30\x31\x57\x4f\x47\x51','\x72\x68\x6c\x63\x4f\x75\x78\x64\x52\x61','\x57\x37\x62\x66\x57\x37\x4e\x63\x4d\x53\x6f\x49','\x57\x34\x65\x74\x57\x34\x78\x64\x4b\x53\x6f\x35\x57\x52\x69','\x57\x35\x43\x69\x57\x34\x42\x64\x49\x38\x6f\x53\x57\x52\x71','\x57\x37\x78\x64\x49\x33\x4b\x49\x57\x36\x72\x48','\x57\x37\x52\x64\x4c\x61\x68\x64\x50\x53\x6b\x6f','\x69\x43\x6f\x4d\x6b\x59\x50\x47\x69\x61','\x42\x53\x6f\x65\x57\x4f\x7a\x36\x69\x57','\x57\x37\x69\x32\x57\x37\x68\x63\x4b\x53\x6f\x56\x57\x34\x46\x64\x4a\x66\x30','\x57\x36\x74\x64\x56\x62\x56\x64\x47\x53\x6b\x56','\x77\x38\x6f\x2f\x57\x50\x6e\x36\x57\x35\x38','\x41\x6d\x6b\x36\x57\x37\x38\x6b','\x57\x36\x42\x64\x52\x57\x37\x64\x4d\x38\x6b\x58','\x57\x37\x64\x63\x4a\x53\x6f\x39\x57\x4f\x61\x42\x57\x35\x53','\x65\x4a\x43\x37\x43\x71','\x57\x35\x6d\x69\x6f\x58\x65\x43','\x57\x35\x37\x64\x55\x68\x56\x64\x47\x6d\x6f\x52','\x6f\x38\x6f\x48\x63\x49\x7a\x4a\x6a\x4d\x75\x30','\x57\x51\x39\x62\x46\x61','\x57\x36\x42\x64\x4a\x53\x6b\x46\x57\x50\x57','\x57\x36\x6d\x46\x57\x35\x33\x64\x47\x6d\x6f\x70','\x57\x34\x53\x5a\x63\x61\x43\x4c\x6f\x47','\x57\x4f\x42\x49\x47\x6c\x56\x63\x55\x71','\x57\x37\x4e\x63\x4a\x75\x4a\x63\x48\x6d\x6b\x61\x57\x50\x53','\x46\x53\x6b\x4d\x6c\x4c\x43\x4b\x57\x50\x56\x64\x55\x65\x71','\x57\x35\x4f\x44\x57\x34\x78\x63\x49\x43\x6f\x48','\x71\x53\x6f\x4a\x57\x52\x34\x76\x7a\x5a\x34\x66\x57\x52\x56\x64\x51\x66\x68\x63\x4e\x6d\x6f\x71\x57\x51\x65','\x57\x34\x66\x62\x57\x37\x4a\x63\x50\x53\x6f\x71\x57\x34\x79\x78\x76\x57','\x65\x74\x37\x63\x4a\x6d\x6f\x38\x43\x78\x37\x63\x4e\x5a\x71','\x72\x32\x56\x63\x4c\x4d\x71','\x57\x36\x64\x64\x51\x66\x64\x64\x4f\x6d\x6f\x78\x63\x61','\x71\x73\x64\x64\x4f\x6d\x6b\x2b\x57\x36\x70\x63\x53\x71','\x57\x36\x44\x6f\x57\x37\x39\x5a\x67\x47','\x57\x35\x50\x74\x57\x4f\x2f\x64\x52\x38\x6b\x57','\x77\x43\x6f\x70\x57\x50\x6d','\x57\x36\x68\x64\x4c\x57\x78\x64\x4f\x38\x6b\x2f\x57\x35\x72\x68\x45\x61','\x57\x36\x47\x45\x57\x34\x64\x64\x4f\x53\x6f\x42','\x7a\x38\x6f\x46\x6f\x43\x6b\x75\x57\x34\x4f\x45\x57\x37\x78\x64\x49\x4c\x78\x63\x49\x74\x44\x51\x42\x61','\x57\x36\x42\x63\x48\x65\x2f\x63\x47\x6d\x6b\x72','\x57\x50\x56\x63\x55\x75\x75\x41\x57\x34\x43','\x69\x6d\x6b\x33\x71\x53\x6f\x6c\x57\x50\x34','\x57\x35\x53\x34\x66\x63\x75\x59','\x57\x51\x52\x64\x4f\x6d\x6b\x4d\x77\x47','\x7a\x61\x78\x64\x53\x6d\x6f\x34','\x57\x37\x76\x31\x57\x52\x2f\x63\x49\x43\x6f\x55','\x42\x38\x6f\x37\x57\x51\x44\x45\x62\x57','\x57\x37\x50\x72\x57\x4f\x42\x63\x49\x57','\x79\x74\x6a\x46\x57\x36\x65','\x57\x50\x7a\x44\x6a\x43\x6b\x32\x57\x35\x78\x64\x54\x57','\x57\x37\x76\x61\x57\x51\x5a\x63\x49\x6d\x6f\x52\x57\x51\x66\x76\x73\x57','\x6a\x76\x39\x34\x41\x38\x6b\x6b\x57\x36\x75','\x57\x34\x6a\x67\x57\x36\x50\x58\x68\x43\x6b\x64\x61\x48\x38','\x45\x6d\x6b\x6a\x57\x51\x4c\x4f\x64\x71','\x57\x34\x50\x44\x57\x36\x6c\x63\x52\x71','\x72\x53\x6f\x64\x57\x4f\x31\x71\x57\x37\x4b\x4a\x66\x47','\x57\x36\x6c\x64\x47\x6d\x6b\x69\x57\x50\x56\x63\x48\x57','\x57\x37\x72\x6b\x57\x37\x35\x47\x64\x61','\x57\x37\x42\x64\x4c\x59\x33\x64\x55\x43\x6b\x5a\x57\x34\x6e\x77','\x63\x4d\x78\x64\x4b\x4e\x68\x64\x49\x6d\x6b\x46\x57\x36\x6c\x64\x54\x61','\x75\x53\x6f\x37\x57\x36\x2f\x64\x50\x63\x43\x4c\x57\x4f\x4f','\x57\x34\x42\x64\x48\x68\x70\x64\x56\x38\x6f\x78','\x61\x6d\x6f\x4e\x68\x61\x72\x67'];_0x4733=function(){return _0x18c86e;};return _0x4733();}const _0x5d8976=require(_0x1c396c(0x2e6,'\x5d\x6f\x23\x70'));function _0x4d559b(){const _0x41851d=_0x1c396c,_0x1694b9={};_0x1694b9[_0x41851d(0x258,'\x4d\x4a\x4e\x35')]=function(_0xec3879,_0x5f208c){return _0xec3879===_0x5f208c;},_0x1694b9[_0x41851d(0x214,'\x34\x6c\x75\x65')]=_0x41851d(0x239,'\x25\x34\x43\x77'),_0x1694b9[_0x41851d(0x30f,'\x78\x6e\x6f\x47')]=_0x41851d(0x2ce,'\x69\x48\x54\x6e');const _0x1a60bb=_0x1694b9,_0x5203b3=String(process.env.EVOLVER_RECALL_MODE||'')[_0x41851d(0x398,'\x78\x4a\x6e\x6a')+_0x41851d(0x339,'\x25\x34\x43\x77')]()[_0x41851d(0x2a5,'\x54\x69\x58\x41')]();return _0x5203b3===_0x41851d(0x247,'\x50\x6a\x47\x31')||_0x1a60bb[_0x41851d(0x2d8,'\x30\x40\x39\x49')](_0x5203b3,_0x1a60bb['\x42\x51\x6f\x49\x44'])?_0x5203b3:_0x1a60bb['\x4a\x49\x4d\x78\x74'];}function _0xd0b1f5(){const _0x205468=_0x1c396c,_0x18280c={'\x62\x55\x45\x4c\x77':function(_0x16b042,_0x468157){return _0x16b042(_0x468157);},'\x41\x41\x52\x48\x61':function(_0x3e4d80,_0x47d2d4){return _0x3e4d80>_0x47d2d4;},'\x50\x77\x72\x59\x46':function(_0x129423,_0x10a63c){return _0x129423<=_0x10a63c;}},_0x5bdc04=_0x18280c[_0x205468(0x36e,'\x30\x40\x39\x49')](Number,process.env.EVOLVER_RECALL_MIN_SIM);return Number[_0x205468(0x26f,'\x78\x6e\x6f\x47')](_0x5bdc04)&&_0x18280c[_0x205468(0x1b5,'\x23\x7a\x48\x30')](_0x5bdc04,0x1*-0x145b+-0x23b9+0x3814)&&_0x18280c[_0x205468(0x2d4,'\x6e\x4a\x58\x6e')](_0x5bdc04,-0x2f*0x19+0x1eb6+0x1a1e*-0x1)?_0x5bdc04:-0x75f+0x939+-0x1da+0.75;}function _0x5cffec(){const _0x44b76f=_0x1c396c,_0x25f69b={'\x5a\x4a\x66\x57\x56':function(_0x9e1727,_0x45d1c8,_0x4146ac){return _0x9e1727(_0x45d1c8,_0x4146ac);},'\x4a\x67\x45\x43\x53':function(_0x1d0103,_0x58dd0a){return _0x1d0103>_0x58dd0a;},'\x58\x52\x6b\x61\x59':function(_0x437b3d,_0x590333){return _0x437b3d<=_0x590333;}},_0x15aa57=_0x25f69b[_0x44b76f(0x207,'\x69\x51\x69\x48')](parseInt,process.env.EVOLVER_RECALL_MAX,-0x26f8+-0x1277*-0x1+-0x3*-0x6d9);return Number[_0x44b76f(0x276,'\x4f\x6c\x73\x28')](_0x15aa57)&&_0x25f69b[_0x44b76f(0x38d,'\x58\x4a\x6a\x49')](_0x15aa57,-0x14db*0x1+0x1688+-0x1ad)&&_0x25f69b[_0x44b76f(0x1ab,'\x34\x6c\x75\x65')](_0x15aa57,-0xb63+0x2cf*0xb+-0x1378)?_0x15aa57:-0x62c+0x193f*0x1+0x1312*-0x1;}const _0x539eb5=0x1*-0x10c+0xd46+-0x91a,_0x1d651a=0x1a06*-0x1+0x7*-0x8b+0x61f*0x5;function _0x495ba4(_0x3d6e4c){const _0x363cd0=_0x1c396c,_0x5595cf={'\x4b\x54\x44\x53\x65':function(_0x57d919,_0x3c529b){return _0x57d919(_0x3c529b);},'\x79\x78\x47\x4e\x53':function(_0x53ef2d,_0x3203cc){return _0x53ef2d===_0x3203cc;},'\x4b\x63\x7a\x6c\x7a':_0x363cd0(0x230,'\x25\x34\x43\x77')},_0x2efddc=_0x5595cf[_0x363cd0(0x317,'\x61\x61\x63\x46')](String,_0x3d6e4c||''),_0x13a849=_0x2efddc[_0x363cd0(0x374,'\x79\x5a\x4e\x52')+_0x363cd0(0x21e,'\x6e\x4a\x58\x6e')](),_0x33b003=/\b(error|exception|fail(?:ed|ure)?)\b|错误|异常|报错|失败/i[_0x363cd0(0x2de,'\x61\x61\x63\x46')](_0x13a849);let _0xe4c010=[],_0x3da33e=[];try{if(_0x5595cf[_0x363cd0(0x1db,'\x57\x4b\x78\x56')](_0x5595cf[_0x363cd0(0x33d,'\x74\x72\x4b\x43')],_0x5595cf[_0x363cd0(0x38e,'\x30\x58\x38\x24')])){const _0x56dc70=require(_0x363cd0(0x2b4,'\x30\x40\x39\x49')+'\x73');_0xe4c010=_0x56dc70['\x5f\x65\x78\x74\x72\x61\x63\x74'+_0x363cd0(0x1f3,'\x5d\x6f\x23\x70')](_0x2efddc,_0x13a849,_0x33b003)||[],_0x3da33e=_0x56dc70[_0x363cd0(0x235,'\x44\x51\x4f\x6c')+_0x363cd0(0x2b0,'\x69\x48\x54\x6e')+_0x363cd0(0x1d8,'\x6b\x46\x26\x75')](_0x13a849)||[];}else try{if(_0x424128[_0x363cd0(0x35c,'\x70\x62\x5a\x26')+_0x363cd0(0x394,'\x30\x40\x39\x49')+_0x363cd0(0x348,'\x77\x59\x6a\x46')](_0x136ff5,_0x30fd3c))_0x371836++;}catch(_0x2570a7){}}catch(_0x4939c1){return[];}const _0x4f26ac=new Set();for(const _0x4a1f9c of _0xe4c010)_0x4f26ac[_0x363cd0(0x2e5,'\x29\x30\x45\x2a')](_0x4a1f9c);for(const _0x14a773 of _0x3da33e)_0x4f26ac[_0x363cd0(0x1f1,'\x6b\x4c\x6d\x63')](_0x14a773);return _0x4f26ac[_0x363cd0(0x286,'\x61\x39\x72\x55')]('\x73\x74\x61\x62\x6c\x65\x5f\x73'+'\x75\x63\x63\x65\x73\x73\x5f\x70'+_0x363cd0(0x1e1,'\x74\x72\x4b\x43')),Array[_0x363cd0(0x324,'\x74\x72\x4b\x43')](_0x4f26ac);}const _0x49b237=-0xee2+0xd38+0x1b6;function _0x36d4dc(_0x490893){const _0x26dd11=_0x1c396c,_0x51d452={'\x4f\x73\x79\x66\x55':function(_0x2e69f0,_0x401863){return _0x2e69f0(_0x401863);},'\x42\x66\x6b\x4c\x76':_0x26dd11(0x3ab,'\x6b\x46\x26\x75')+'\x75\x63\x63\x65\x73\x73\x5f\x70'+_0x26dd11(0x1c8,'\x39\x4e\x77\x5b'),'\x71\x41\x46\x64\x54':function(_0x5509c0,_0x3a2975){return _0x5509c0(_0x3a2975);},'\x51\x79\x53\x72\x66':'\x2e\x2f\x73\x65\x6c\x65\x63\x74'+'\x6f\x72','\x49\x6d\x42\x47\x6f':function(_0x136a8b,_0xc9a243){return _0x136a8b===_0xc9a243;},'\x61\x62\x52\x78\x70':_0x26dd11(0x377,'\x40\x62\x46\x76'),'\x63\x55\x42\x61\x78':function(_0x4fb48e,_0x3e5c64){return _0x4fb48e>=_0x3e5c64;},'\x71\x50\x49\x6c\x61':'\x66\x68\x4d\x4b\x6c'},_0xf9d72b=_0x495ba4(_0x490893);let _0x4f0103=[];try{const {tokenize:_0x3625f8}=_0x51d452[_0x26dd11(0x34d,'\x4f\x6c\x73\x28')](require,_0x51d452['\x51\x79\x53\x72\x66']),_0x9297d4=new Set();for(const _0x4078c7 of _0x51d452[_0x26dd11(0x1ea,'\x5d\x6f\x23\x70')](_0x3625f8,_0x490893)){!_0x9297d4[_0x26dd11(0x1e2,'\x45\x67\x62\x4d')](_0x4078c7)&&(_0x51d452[_0x26dd11(0x2b2,'\x41\x69\x62\x34')](_0x51d452[_0x26dd11(0x3ae,'\x58\x4a\x6a\x49')],_0x51d452['\x61\x62\x52\x78\x70'])?(_0x9297d4[_0x26dd11(0x372,'\x50\x6a\x47\x31')](_0x4078c7),_0x4f0103[_0x26dd11(0x359,'\x30\x58\x38\x24')](_0x4078c7)):_0x46562c=_0x5c1931[_0x26dd11(0x2cb,'\x71\x4e\x58\x67')+_0x26dd11(0x22f,'\x77\x59\x6a\x46')+'\x63'](_0x3639d2,_0x553f45)||-0x523+-0x38d*0x5+0x16e4);if(_0x51d452[_0x26dd11(0x27c,'\x52\x64\x30\x25')](_0x4f0103['\x6c\x65\x6e\x67\x74\x68'],_0x49b237))break;}}catch(_0x161f06){if(_0x51d452[_0x26dd11(0x1ef,'\x23\x7a\x48\x30')](_0x51d452[_0x26dd11(0x2fb,'\x34\x6c\x75\x65')],_0x26dd11(0x395,'\x6a\x66\x50\x4e')))_0x4f0103=[];else{const _0x5b826b=FLLDJD[_0x26dd11(0x29d,'\x35\x71\x50\x4e')](_0x44a0cc,_0x557687||''),_0x5767a4=_0x5b826b[_0x26dd11(0x1e3,'\x69\x51\x69\x48')+_0x26dd11(0x2c7,'\x69\x48\x54\x6e')](),_0x1058cf=/\b(error|exception|fail(?:ed|ure)?)\b|错误|异常|报错|失败/i[_0x26dd11(0x23d,'\x58\x4a\x6a\x49')](_0x5767a4);let _0xeb9381=[],_0x288d6c=[];try{const _0xab5246=_0x3f1f82('\x2e\x2f\x73\x69\x67\x6e\x61\x6c'+'\x73');_0xeb9381=_0xab5246[_0x26dd11(0x2b8,'\x54\x69\x58\x41')+_0x26dd11(0x1f3,'\x5d\x6f\x23\x70')](_0x5b826b,_0x5767a4,_0x1058cf)||[],_0x288d6c=_0xab5246['\x5f\x65\x78\x74\x72\x61\x63\x74'+_0x26dd11(0x2c0,'\x61\x61\x63\x46')+_0x26dd11(0x3b1,'\x61\x79\x43\x7a')](_0x5767a4)||[];}catch(_0x5016b3){return[];}const _0x22b01f=new _0x49993a();for(const _0x39c3e8 of _0xeb9381)_0x22b01f['\x61\x64\x64'](_0x39c3e8);for(const _0x5931d5 of _0x288d6c)_0x22b01f['\x61\x64\x64'](_0x5931d5);return _0x22b01f['\x64\x65\x6c\x65\x74\x65'](FLLDJD[_0x26dd11(0x2a1,'\x76\x35\x28\x48')]),_0x1f08b2[_0x26dd11(0x301,'\x30\x4a\x6f\x58')](_0x22b01f);}}const _0x456849=new Set();for(const _0xb69ac1 of _0xf9d72b)_0x456849[_0x26dd11(0x3bb,'\x61\x30\x31\x78')](_0xb69ac1);for(const _0x49cbe7 of _0x4f0103)_0x456849[_0x26dd11(0x3bc,'\x61\x79\x43\x7a')](_0x49cbe7);return Array[_0x26dd11(0x2bd,'\x30\x58\x38\x24')](_0x456849);}async function _0x2e9bc6(_0xd0bb58,_0x1272ad){const _0x4c5796=_0x1c396c,_0x30e17e={'\x51\x4b\x63\x69\x4f':'\x5b\x45\x76\x6f\x6c\x76\x65\x72'+'\x20\u2014\x20\x72\x65\x6c\x65\x76'+'\x61\x6e\x74\x20\x70\x72\x69\x6f'+_0x4c5796(0x236,'\x61\x30\x31\x78')+_0x4c5796(0x22c,'\x54\x69\x58\x41'),'\x65\x48\x43\x75\x71':_0x4c5796(0x3b4,'\x34\x6c\x75\x65')+_0x4c5796(0x3a9,'\x69\x48\x54\x6e')+'\x65\x64','\x69\x6e\x6d\x6a\x6d':_0x4c5796(0x337,'\x54\x69\x58\x41'),'\x42\x57\x58\x52\x61':'\x54\x6f\x20\x72\x65\x75\x73\x65'+_0x4c5796(0x1f4,'\x6e\x4a\x58\x6e')+'\x73\x68\x65\x64\x20\x61\x73\x73'+_0x4c5796(0x363,'\x39\x4f\x6f\x73')+_0x4c5796(0x27d,'\x23\x7a\x48\x30')+_0x4c5796(0x1d1,'\x63\x69\x79\x68')+_0x4c5796(0x356,'\x26\x68\x43\x2a')+_0x4c5796(0x323,'\x78\x4a\x6e\x6a')+_0x4c5796(0x25b,'\x76\x35\x28\x48'),'\x4f\x42\x44\x66\x58':function(_0x814f05,_0x35b236){return _0x814f05>_0x35b236;},'\x43\x66\x57\x55\x48':_0x4c5796(0x2d9,'\x71\x4e\x58\x67'),'\x71\x67\x63\x55\x72':'\x20\u2014\x20','\x52\x6b\x48\x75\x7a':_0x4c5796(0x1b4,'\x6a\x66\x50\x4e')+'\x73','\x69\x6d\x58\x6b\x43':function(_0xdf0114,_0x1964a){return _0xdf0114===_0x1964a;},'\x4c\x6b\x64\x59\x66':'\x56\x57\x67\x70\x77','\x45\x6d\x7a\x4f\x54':_0x4c5796(0x26c,'\x57\x4b\x78\x56'),'\x64\x57\x65\x4b\x7a':function(_0x44da48,_0x22b18f){return _0x44da48(_0x22b18f);},'\x64\x63\x6f\x45\x44':_0x4c5796(0x241,'\x28\x61\x33\x4b')+_0x4c5796(0x26d,'\x40\x62\x46\x76'),'\x6e\x56\x6e\x6e\x58':function(_0xb3bdf4,_0x8adbb8){return _0xb3bdf4(_0x8adbb8);},'\x53\x43\x48\x4e\x6b':_0x4c5796(0x1fa,'\x44\x62\x37\x38')+_0x4c5796(0x222,'\x28\x61\x33\x4b'),'\x44\x70\x61\x4a\x76':function(_0x53b74c,_0x1d925c){return _0x53b74c===_0x1d925c;},'\x6f\x52\x47\x6c\x58':_0x4c5796(0x2f3,'\x23\x7a\x48\x30'),'\x66\x6b\x63\x66\x43':_0x4c5796(0x2c5,'\x61\x61\x63\x46'),'\x47\x4d\x75\x71\x44':_0x4c5796(0x1cd,'\x6c\x67\x4c\x32'),'\x6c\x74\x52\x74\x66':_0x4c5796(0x1d9,'\x52\x64\x30\x25'),'\x52\x75\x45\x47\x48':function(_0x143369,_0x377c7e){return _0x143369!==_0x377c7e;},'\x55\x46\x67\x50\x48':_0x4c5796(0x300,'\x78\x4a\x6e\x6a'),'\x42\x47\x52\x66\x42':function(_0x28d994,_0x2315c3){return _0x28d994===_0x2315c3;},'\x4b\x41\x4e\x6e\x50':_0x4c5796(0x19c,'\x69\x51\x69\x48'),'\x62\x68\x69\x55\x4a':function(_0xf398b){return _0xf398b();},'\x68\x57\x6b\x57\x47':_0x4c5796(0x23b,'\x23\x7a\x48\x30'),'\x77\x54\x4b\x42\x6b':_0x4c5796(0x2fc,'\x79\x5a\x4e\x52'),'\x50\x43\x69\x76\x57':_0x4c5796(0x210,'\x6e\x4a\x58\x6e'),'\x71\x55\x59\x73\x5a':function(_0x2c9567,_0x57d383){return _0x2c9567!==_0x57d383;},'\x4a\x6f\x46\x6c\x64':function(_0x3d151b,_0x23bb35){return _0x3d151b<_0x23bb35;},'\x76\x56\x52\x74\x51':function(_0x344a80,_0x1e985e){return _0x344a80===_0x1e985e;},'\x68\x75\x41\x43\x52':_0x4c5796(0x1b6,'\x28\x61\x33\x4b')};let _0x1f3f34,_0x43c4e7;try{_0x30e17e[_0x4c5796(0x3bd,'\x74\x72\x4b\x43')](_0x30e17e[_0x4c5796(0x249,'\x76\x35\x28\x48')],_0x30e17e['\x45\x6d\x7a\x4f\x54'])?_0x1e61ac=-0x1b7a+0x9a9*0x3+-0x181:(_0x1f3f34=_0x30e17e[_0x4c5796(0x273,'\x58\x4a\x6a\x49')](require,_0x30e17e[_0x4c5796(0x19a,'\x76\x53\x24\x28')]),_0x43c4e7=_0x30e17e[_0x4c5796(0x3a6,'\x50\x6a\x47\x31')](require,_0x30e17e[_0x4c5796(0x267,'\x76\x53\x24\x28')]));}catch(_0x38661d){if(_0x30e17e[_0x4c5796(0x218,'\x69\x48\x54\x6e')](_0x30e17e[_0x4c5796(0x31a,'\x35\x71\x50\x4e')],_0x30e17e[_0x4c5796(0x307,'\x54\x69\x58\x41')])){const _0xa35eea=(_0x2381fa||[])[_0x4c5796(0x2d5,'\x26\x68\x43\x2a')](_0x2144cf);if(!_0xa35eea[_0x4c5796(0x2a6,'\x6b\x4c\x6d\x63')])return'';const _0x189efd=[_0x30e17e[_0x4c5796(0x369,'\x61\x39\x72\x55')]];let _0x54020b=![];for(const _0x58c067 of _0xa35eea){const _0x5e3e4b=(_0x58c067[_0x4c5796(0x33a,'\x23\x7a\x48\x30')]||'')[_0x4c5796(0x346,'\x28\x61\x33\x4b')]()[_0x4c5796(0x1d7,'\x45\x67\x62\x4d')](0xd9*-0x2b+0x228a+0xa3*0x3,-0xc05+0x418+0x83d),_0x467f23=(_0x58c067[_0x4c5796(0x225,'\x63\x69\x79\x68')]||'')['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4c5796(0x202,'\x77\x59\x6a\x46')](/\s+/g,'\x20')[_0x4c5796(0x233,'\x6c\x67\x4c\x32')]()[_0x4c5796(0x2b9,'\x25\x34\x43\x77')](0x76d*-0x1+0x1*-0x53b+0xca8,_0x1bf008),_0x3b5f2e=_0x58c067[_0x4c5796(0x260,'\x4f\x6c\x73\x28')+'\x74\x79']!=null?_0x58c067[_0x4c5796(0x390,'\x44\x51\x4f\x6c')+'\x74\x79'][_0x4c5796(0x2b6,'\x4f\x6c\x73\x28')](-0x2371+0x753+0x5a*0x50):'\x3f',_0x580a71=_0x58c067['\x61\x73\x73\x65\x74\x5f\x69\x64']?_0x4c5796(0x303,'\x69\x51\x69\x48')+_0x58c067[_0x4c5796(0x1d1,'\x63\x69\x79\x68')]:_0x30e17e[_0x4c5796(0x277,'\x30\x4a\x6f\x58')];if(_0x58c067[_0x4c5796(0x3a2,'\x77\x59\x6a\x46')])_0x54020b=!![];_0x189efd[_0x4c5796(0x2e1,'\x6b\x4c\x6d\x63')]('\x2d\x20'+(_0x5e3e4b?_0x4c5796(0x328,'\x74\x42\x23\x52')+_0x5e3e4b+'\x22':_0x30e17e['\x69\x6e\x6d\x6a\x6d'])+'\x20\x28'+_0x580a71+_0x4c5796(0x2d7,'\x4f\x6c\x73\x28')+_0x3b5f2e+'\x29'+(_0x467f23?'\x3a\x20'+_0x467f23:''));}_0x189efd[_0x4c5796(0x19e,'\x41\x69\x62\x34')]('\x41\x20\x70\x72\x69\x6f\x72\x20'+_0x4c5796(0x306,'\x23\x7a\x48\x30')+_0x4c5796(0x1ba,'\x5d\x6f\x23\x70')+_0x4c5796(0x2ca,'\x54\x69\x58\x41')+_0x4c5796(0x33e,'\x61\x30\x31\x78')+_0x4c5796(0x1b3,'\x6e\x4a\x58\x6e')+_0x4c5796(0x355,'\x41\x69\x62\x34')+_0x4c5796(0x3b8,'\x76\x35\x28\x48')+_0x4c5796(0x384,'\x26\x68\x43\x2a')+_0x4c5796(0x1a9,'\x34\x6c\x75\x65'));if(_0x54020b)_0x189efd[_0x4c5796(0x321,'\x26\x68\x43\x2a')](_0x30e17e[_0x4c5796(0x2a9,'\x35\x71\x50\x4e')]);const _0x2ad03a=_0x189efd[_0x4c5796(0x261,'\x34\x6c\x75\x65')]('\x0a');return _0x30e17e[_0x4c5796(0x22e,'\x6c\x67\x4c\x32')](_0x2ad03a[_0x4c5796(0x2d1,'\x74\x72\x4b\x43')],_0x3ce3a1)?_0x2ad03a[_0x4c5796(0x3af,'\x54\x69\x58\x41')](-0xb99*-0x1+-0x2*0xb23+0xaad,_0x587c8e):_0x2ad03a;}else return[];}try{if(typeof _0x1f3f34[_0x4c5796(0x2e4,'\x71\x4e\x58\x67')+_0x4c5796(0x304,'\x30\x4a\x6f\x58')+'\x64']===_0x30e17e[_0x4c5796(0x1a6,'\x71\x4e\x58\x67')]&&!_0x1f3f34[_0x4c5796(0x1cc,'\x58\x4a\x6a\x49')+_0x4c5796(0x375,'\x25\x34\x43\x77')+'\x64']())return[];}catch(_0x1f0f6b){}let _0x2b2cd1='';try{if(_0x30e17e[_0x4c5796(0x354,'\x4f\x6c\x73\x28')](_0x30e17e[_0x4c5796(0x1bf,'\x30\x40\x39\x49')],_0x30e17e[_0x4c5796(0x358,'\x23\x7a\x48\x30')]))_0x2b2cd1=(typeof _0x43c4e7[_0x4c5796(0x399,'\x6b\x4c\x6d\x63')+'\x6c']===_0x30e17e[_0x4c5796(0x1b7,'\x30\x40\x39\x49')]?_0x43c4e7[_0x4c5796(0x264,'\x30\x4a\x6f\x58')+'\x6c']():_0x1f3f34[_0x4c5796(0x2be,'\x34\x6c\x75\x65')+'\x6c']())||'',_0x2b2cd1=_0x2b2cd1[_0x4c5796(0x3aa,'\x74\x72\x4b\x43')](/\/+$/,'');else{const _0x3e2d47=[];if(_0x253e85[_0x4c5796(0x250,'\x61\x39\x72\x55')](_0x1fbc35[_0x4c5796(0x38b,'\x6e\x4a\x58\x6e')][_0x4c5796(0x285,'\x39\x31\x4c\x21')]))_0x3e2d47[_0x4c5796(0x38f,'\x50\x6a\x47\x31')](_0x5f50ba['\x73\x74\x72\x61\x74\x65\x67\x79'][_0x4c5796(0x35d,'\x23\x7a\x48\x30')][_0x4c5796(0x2b9,'\x25\x34\x43\x77')](-0x8*0x4b2+-0x1*0x20ed+0x467d,0x1d57+0x321*0x1+-0x7*0x4a3)[_0x4c5796(0x2c1,'\x5b\x78\x70\x44')]('\x3b\x20'));if(typeof _0x588c96[_0x4c5796(0x2b7,'\x29\x30\x45\x2a')][_0x4c5796(0x1e4,'\x45\x67\x62\x4d')]===_0x30e17e['\x43\x66\x57\x55\x48'])_0x3e2d47[_0x4c5796(0x1fd,'\x6a\x66\x50\x4e')](_0x4ea885[_0x4c5796(0x2c3,'\x28\x61\x33\x4b')][_0x4c5796(0x1d3,'\x5d\x6f\x23\x70')]);_0x4ea8a5=_0x3e2d47[_0x4c5796(0x270,'\x29\x30\x45\x2a')](_0x5af7c5)[_0x4c5796(0x2b5,'\x6c\x67\x4c\x32')](_0x30e17e[_0x4c5796(0x29a,'\x41\x69\x62\x34')])[_0x4c5796(0x29f,'\x4f\x6c\x73\x28')]();}}catch(_0x2165a6){_0x2b2cd1='';}if(!_0x2b2cd1)return[];let _0x5b39c9={};try{_0x5b39c9=_0x43c4e7['\x62\x75\x69\x6c\x64\x48\x75\x62'+_0x4c5796(0x326,'\x74\x42\x23\x52')]();}catch(_0x3120f2){if(_0x30e17e[_0x4c5796(0x310,'\x71\x4e\x58\x67')](_0x30e17e[_0x4c5796(0x1af,'\x57\x4b\x78\x56')],_0x4c5796(0x266,'\x28\x61\x33\x4b')))return[];else _0x5b39c9={};}let _0x2231a8=[];try{_0x30e17e[_0x4c5796(0x1f7,'\x78\x6e\x6f\x47')](_0x30e17e[_0x4c5796(0x20b,'\x63\x69\x79\x68')],_0x4c5796(0x3b3,'\x54\x69\x58\x41'))?_0x2231a8=await _0x1f3f34[_0x4c5796(0x386,'\x6b\x4c\x6d\x63')+_0x4c5796(0x20a,'\x74\x42\x23\x52')+_0x4c5796(0x3c1,'\x70\x62\x5a\x26')](_0x2b2cd1,_0x5b39c9,_0xd0bb58,_0x1272ad):(_0x45f19d[_0x4c5796(0x293,'\x54\x69\x58\x41')](_0x2ee4e3),_0x1558c2[_0x4c5796(0x321,'\x26\x68\x43\x2a')](_0x37573c));}catch(_0xb86d47){return[];}if(!Array[_0x4c5796(0x28f,'\x52\x64\x30\x25')](_0x2231a8))return[];const _0xd40e2f=_0x30e17e[_0x4c5796(0x1df,'\x78\x4a\x6e\x6a')](_0xd0b1f5);let _0x5d37be='';try{if(_0x30e17e[_0x4c5796(0x2e3,'\x78\x6e\x6f\x47')](_0x4c5796(0x295,'\x35\x71\x50\x4e'),_0x30e17e[_0x4c5796(0x227,'\x74\x72\x4b\x43')]))_0x5d37be=_0x43c4e7[_0x4c5796(0x27e,'\x44\x51\x4f\x6c')+'\x64']()||'';else return;}catch(_0x17faf9){if(_0x30e17e[_0x4c5796(0x36a,'\x74\x72\x4b\x43')]===_0x30e17e[_0x4c5796(0x290,'\x57\x4b\x78\x56')]){const _0x40c65d=_0x39319a(REIAlM[_0x4c5796(0x23e,'\x41\x69\x62\x34')]);_0x18e76b=_0x40c65d[_0x4c5796(0x3a7,'\x5b\x78\x70\x44')+_0x4c5796(0x30b,'\x23\x7a\x48\x30')](_0x215203,_0x50579d,_0x534cdb)||[],_0x2c6cc3=_0x40c65d[_0x4c5796(0x376,'\x44\x62\x37\x38')+_0x4c5796(0x27f,'\x6b\x46\x26\x75')+_0x4c5796(0x302,'\x74\x42\x23\x52')](_0x4f2d68)||[];}else _0x5d37be='';}const _0x13b882=[];for(const _0x59febf of _0x2231a8){if(!_0x59febf||_0x30e17e[_0x4c5796(0x2e2,'\x79\x5a\x4e\x52')](typeof _0x59febf,_0x4c5796(0x2c6,'\x69\x48\x54\x6e')))continue;const _0x169bd6=_0x30e17e[_0x4c5796(0x2df,'\x30\x40\x39\x49')](Number,_0x59febf[_0x4c5796(0x2c9,'\x69\x51\x69\x48')+_0x4c5796(0x37f,'\x4f\x6c\x73\x28')+_0x4c5796(0x3c0,'\x76\x35\x28\x48')]);if(!Number[_0x4c5796(0x244,'\x58\x4a\x6a\x49')](_0x169bd6)||_0x30e17e[_0x4c5796(0x3b2,'\x58\x4a\x6a\x49')](_0x169bd6,_0xd40e2f))continue;if(_0x5d37be&&_0x59febf[_0x4c5796(0x311,'\x70\x62\x5a\x26')+_0x4c5796(0x1cb,'\x58\x4a\x6a\x49')]&&_0x30e17e[_0x4c5796(0x2f4,'\x44\x62\x37\x38')](_0x59febf['\x73\x6f\x75\x72\x63\x65\x5f\x6e'+_0x4c5796(0x318,'\x6a\x66\x50\x4e')],_0x5d37be))continue;const _0x7851fe={};_0x7851fe['\x61\x73\x73\x65\x74\x5f\x69\x64']=_0x59febf[_0x4c5796(0x228,'\x76\x35\x28\x48')]||_0x59febf['\x61\x73\x73\x65\x74\x49\x64']||'',_0x7851fe[_0x4c5796(0x335,'\x77\x59\x6a\x46')+_0x4c5796(0x23f,'\x79\x5a\x4e\x52')]=_0x59febf[_0x4c5796(0x296,'\x69\x51\x69\x48')+_0x4c5796(0x291,'\x76\x35\x28\x48')]||'',_0x7851fe['\x63\x68\x61\x69\x6e\x5f\x69\x64']=_0x59febf[_0x4c5796(0x360,'\x5b\x78\x70\x44')]||'',_0x7851fe[_0x4c5796(0x38a,'\x63\x75\x29\x46')+'\x74\x79']=_0x169bd6,_0x7851fe[_0x4c5796(0x2cf,'\x30\x4a\x6f\x58')]=_0x59febf['\x73\x68\x6f\x72\x74\x5f\x74\x69'+_0x4c5796(0x1c4,'\x74\x72\x4b\x43')]||_0x59febf[_0x4c5796(0x1a7,'\x45\x67\x62\x4d')]||_0x59febf['\x6e\x61\x6d\x65']||'',_0x7851fe[_0x4c5796(0x24f,'\x79\x5a\x4e\x52')]=_0x59febf[_0x4c5796(0x2a7,'\x74\x42\x23\x52')+'\x72\x79']||_0x59febf[_0x4c5796(0x2a8,'\x28\x61\x33\x4b')]||'',_0x7851fe[_0x4c5796(0x32b,'\x77\x59\x6a\x46')]=_0x30e17e[_0x4c5796(0x3ac,'\x6c\x67\x4c\x32')],_0x13b882[_0x4c5796(0x201,'\x69\x51\x69\x48')](_0x7851fe);}return _0x13b882;}function _0x45bb(_0x2c90bc,_0x45d5a7){_0x2c90bc=_0x2c90bc-(-0x52f+-0x177f+0x4c*0x66);const _0x5d5804=_0x4733();let _0x242b5a=_0x5d5804[_0x2c90bc];if(_0x45bb['\x59\x54\x6a\x52\x50\x77']===undefined){var _0xb1d98d=function(_0x29dfb6){const _0x57117f='\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 _0x1e0e5d='',_0x1ffcba='',_0x2f8cc0=_0x1e0e5d+_0xb1d98d,_0xf1f623=(''+function(){return 0x1210+-0x1ce7+0xad7*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1bd1+-0x1d*-0xd6+0x394);for(let _0x271ccb=-0x1*-0x15e0+-0x2*-0xee1+0x3*-0x1136,_0x4e5b4b,_0x137ec2,_0x6f08fc=-0xb6+-0xb17*0x2+0x16e4;_0x137ec2=_0x29dfb6['\x63\x68\x61\x72\x41\x74'](_0x6f08fc++);~_0x137ec2&&(_0x4e5b4b=_0x271ccb%(0x234d+0xdd3+-0x311c*0x1)?_0x4e5b4b*(0x11*-0x13+-0x1f*0xc1+-0x23*-0xb6)+_0x137ec2:_0x137ec2,_0x271ccb++%(-0x1*-0xca5+0x2*0x1bc+-0x1019))?_0x1e0e5d+=_0xf1f623||_0x2f8cc0['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x6f08fc+(-0x1301+-0x1a*0x13d+0x1*0x333d))-(-0x1422+0x2*0x3bf+0xcae)!==-0x1*0xbc6+0x2f9*0x9+-0xefb?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x735+-0x1*-0x256b+-0x1d37&_0x4e5b4b>>(-(0x645+0x1d21+-0x2364)*_0x271ccb&-0x55d*0x1+-0xd*-0x10c+0x1*-0x839)):_0x271ccb:0x772+0x875+-0x3*0x54d){_0x137ec2=_0x57117f['\x69\x6e\x64\x65\x78\x4f\x66'](_0x137ec2);}for(let _0x42e16f=0x2131+-0xb6d+-0x15c4,_0x4b0d92=_0x1e0e5d['\x6c\x65\x6e\x67\x74\x68'];_0x42e16f<_0x4b0d92;_0x42e16f++){_0x1ffcba+='\x25'+('\x30\x30'+_0x1e0e5d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x42e16f)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xda8+0x14f6+-0x12*0x67))['\x73\x6c\x69\x63\x65'](-(-0x19ea+0xe51+0xb9b));}return decodeURIComponent(_0x1ffcba);};const _0x2b1bb4=function(_0x1979a8,_0x22bc73){let _0x2e7b13=[],_0x473fdc=0xab8+-0x1*-0xd3+-0x1*0xb8b,_0x5e6beb,_0x147848='';_0x1979a8=_0xb1d98d(_0x1979a8);let _0x514bce;for(_0x514bce=-0x35b*-0x3+-0x6*0x58d+0x1*0x173d;_0x514bce<-0x66a+-0x24fb+-0x1*-0x2c65;_0x514bce++){_0x2e7b13[_0x514bce]=_0x514bce;}for(_0x514bce=0x20ca+0x3*0x512+-0x2*0x1800;_0x514bce<0x23*0xe9+-0x7*-0x551+0x1*-0x4412;_0x514bce++){_0x473fdc=(_0x473fdc+_0x2e7b13[_0x514bce]+_0x22bc73['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x514bce%_0x22bc73['\x6c\x65\x6e\x67\x74\x68']))%(0xfbc+0x25a6*-0x1+0xb75*0x2),_0x5e6beb=_0x2e7b13[_0x514bce],_0x2e7b13[_0x514bce]=_0x2e7b13[_0x473fdc],_0x2e7b13[_0x473fdc]=_0x5e6beb;}_0x514bce=0x1c1b*-0x1+-0xe2e+-0x19*-0x1b1,_0x473fdc=-0xffa+0x1f1f+0xf25*-0x1;for(let _0x143755=0xe*0x1d0+0x1960+0x3a*-0xe0;_0x143755<_0x1979a8['\x6c\x65\x6e\x67\x74\x68'];_0x143755++){_0x514bce=(_0x514bce+(-0x8e2+-0x56d*0x4+0x1e97))%(-0xa09+0x3d1*0x1+0x1*0x738),_0x473fdc=(_0x473fdc+_0x2e7b13[_0x514bce])%(0x17dd*0x1+0x10d3*-0x2+0xac9),_0x5e6beb=_0x2e7b13[_0x514bce],_0x2e7b13[_0x514bce]=_0x2e7b13[_0x473fdc],_0x2e7b13[_0x473fdc]=_0x5e6beb,_0x147848+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x1979a8['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x143755)^_0x2e7b13[(_0x2e7b13[_0x514bce]+_0x2e7b13[_0x473fdc])%(0x22*-0x24+-0x26a6+-0xf2*-0x2f)]);}return _0x147848;};_0x45bb['\x6f\x76\x51\x67\x50\x72']=_0x2b1bb4,_0x45bb['\x59\x59\x64\x73\x42\x71']={},_0x45bb['\x59\x54\x6a\x52\x50\x77']=!![];}const _0x435616=_0x5d5804[-0x1f6+0x1b04+-0x190e],_0x1cd64c=_0x2c90bc+_0x435616,_0x4fb66f=_0x45bb['\x59\x59\x64\x73\x42\x71'][_0x1cd64c];if(!_0x4fb66f){if(_0x45bb['\x73\x6a\x65\x6a\x47\x51']===undefined){const _0x3babc8=function(_0x147b14){this['\x62\x4d\x68\x42\x4b\x6c']=_0x147b14,this['\x43\x4e\x48\x65\x64\x41']=[-0x1*0xcf1+0xad1+0x221*0x1,-0xa3*0x13+-0xc1*0x2a+0x2bc3,0xf1*-0x4+-0x1*-0x8b4+-0x4f0],this['\x58\x77\x4d\x55\x64\x6e']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6c\x5a\x4e\x54\x74\x53']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x4c\x4a\x63\x46\x61\x53']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x3babc8['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x57\x57\x76\x42\x65\x48']=function(){const _0x4a5dce=new RegExp(this['\x6c\x5a\x4e\x54\x74\x53']+this['\x4c\x4a\x63\x46\x61\x53']),_0x32c816=_0x4a5dce['\x74\x65\x73\x74'](this['\x58\x77\x4d\x55\x64\x6e']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x43\x4e\x48\x65\x64\x41'][-0x2d*0x6f+0x1*0xb5b+0x1*0x829]:--this['\x43\x4e\x48\x65\x64\x41'][-0x1644+-0xb*0x1d+0x1783*0x1];return this['\x77\x41\x4b\x7a\x4f\x67'](_0x32c816);},_0x3babc8['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x77\x41\x4b\x7a\x4f\x67']=function(_0x449631){if(!Boolean(~_0x449631))return _0x449631;return this['\x68\x53\x71\x75\x4c\x67'](this['\x62\x4d\x68\x42\x4b\x6c']);},_0x3babc8['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x68\x53\x71\x75\x4c\x67']=function(_0x759f02){for(let _0x5c8045=-0x2001*-0x1+0x1*-0x2065+-0x14*-0x5,_0x2049bf=this['\x43\x4e\x48\x65\x64\x41']['\x6c\x65\x6e\x67\x74\x68'];_0x5c8045<_0x2049bf;_0x5c8045++){this['\x43\x4e\x48\x65\x64\x41']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x2049bf=this['\x43\x4e\x48\x65\x64\x41']['\x6c\x65\x6e\x67\x74\x68'];}return _0x759f02(this['\x43\x4e\x48\x65\x64\x41'][-0x1*-0x1546+0x1888+0xb*-0x42a]);},(''+function(){return-0xb13+-0x12cb+0x1dde;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x117*-0xd+0x12b9+0x48d*-0x1)&&new _0x3babc8(_0x45bb)['\x57\x57\x76\x42\x65\x48'](),_0x45bb['\x73\x6a\x65\x6a\x47\x51']=!![];}_0x242b5a=_0x45bb['\x6f\x76\x51\x67\x50\x72'](_0x242b5a,_0x45d5a7),_0x45bb['\x59\x59\x64\x73\x42\x71'][_0x1cd64c]=_0x242b5a;}else _0x242b5a=_0x4fb66f;return _0x242b5a;}function _0x238974(_0x116dfa){const _0x12152c=_0x1c396c,_0x4af539={'\x6a\x4e\x52\x41\x48':function(_0x2bcf64,_0x2e38bd){return _0x2bcf64!=_0x2e38bd;},'\x6b\x59\x61\x42\x63':_0x12152c(0x242,'\x78\x6e\x6f\x47'),'\x4e\x7a\x6f\x4e\x6a':function(_0x45d420,_0x1af474){return _0x45d420+_0x1af474;},'\x54\x51\x47\x6a\x45':function(_0x148bb6,_0x517fce){return _0x148bb6(_0x517fce);},'\x48\x6e\x5a\x6c\x59':function(_0x58d288,_0x245bd0){return _0x58d288===_0x245bd0;},'\x4d\x7a\x42\x52\x63':function(_0x4d98a0,_0x4764c5){return _0x4d98a0===_0x4764c5;},'\x75\x78\x42\x71\x46':_0x12152c(0x1ca,'\x30\x40\x39\x49'),'\x78\x69\x67\x4c\x63':function(_0x4388d2,_0x24a134){return _0x4388d2(_0x24a134);},'\x43\x42\x49\x6c\x43':_0x12152c(0x32e,'\x50\x6a\x47\x31')+_0x12152c(0x38c,'\x29\x30\x45\x2a'),'\x53\x56\x66\x64\x42':'\x2e\x2f\x61\x32\x61\x50\x72\x6f'+_0x12152c(0x30a,'\x5d\x6f\x23\x70'),'\x57\x54\x68\x46\x49':function(_0x48f03f,_0x103498){return _0x48f03f+_0x103498;},'\x56\x72\x5a\x61\x57':_0x12152c(0x33b,'\x28\x61\x33\x4b')+'\x6f\x72','\x6b\x6e\x57\x70\x4a':function(_0x3721eb,_0x2df520){return _0x3721eb===_0x2df520;},'\x6d\x6d\x42\x4a\x6b':'\x44\x67\x77\x4c\x79','\x56\x69\x53\x7a\x69':function(_0x4f184b,_0x1b7f05){return _0x4f184b===_0x1b7f05;},'\x7a\x59\x58\x63\x43':_0x12152c(0x2f7,'\x26\x68\x43\x2a'),'\x66\x51\x73\x71\x78':function(_0x40b17a,_0x49df47){return _0x40b17a<_0x49df47;},'\x4f\x53\x42\x7a\x7a':function(_0x2e7e6d,_0x1c114f){return _0x2e7e6d===_0x1c114f;},'\x6e\x76\x53\x44\x51':_0x12152c(0x33c,'\x77\x59\x6a\x46'),'\x45\x59\x54\x45\x4c':function(_0x37a535,_0x2dcaf5){return _0x37a535===_0x2dcaf5;},'\x58\x43\x65\x70\x42':_0x12152c(0x255,'\x52\x64\x30\x25'),'\x65\x76\x45\x61\x68':_0x12152c(0x2e9,'\x23\x7a\x48\x30'),'\x63\x69\x76\x61\x6d':function(_0x320887,_0x5426bc){return _0x320887!==_0x5426bc;},'\x70\x47\x70\x4c\x56':_0x12152c(0x294,'\x5b\x78\x70\x44'),'\x44\x65\x74\x66\x53':function(_0x286797,_0x310d25){return _0x286797+_0x310d25;},'\x68\x68\x73\x58\x4d':function(_0x3ba201,_0x5e64e6){return _0x3ba201*_0x5e64e6;},'\x63\x75\x69\x4f\x78':function(_0x4654c4,_0x453cb8){return _0x4654c4*_0x453cb8;}};let _0x5a2e05=[],_0x5d289a;try{_0x5a2e05=require('\x2e\x2f\x61\x73\x73\x65\x74\x53'+_0x12152c(0x352,'\x35\x71\x50\x4e'))[_0x12152c(0x25f,'\x61\x79\x43\x7a')+'\x73']()||[],_0x5d289a=require(_0x4af539[_0x12152c(0x362,'\x61\x61\x63\x46')]);}catch(_0x2a3a00){if(_0x4af539[_0x12152c(0x344,'\x61\x30\x31\x78')](_0x4af539[_0x12152c(0x24b,'\x77\x59\x6a\x46')],_0x4af539[_0x12152c(0x1dd,'\x76\x53\x24\x28')]))return[];else{const _0x39fa7c=(_0x1a4883[_0x12152c(0x25c,'\x76\x35\x28\x48')]||'')[_0x12152c(0x3a4,'\x78\x4a\x6e\x6a')]()[_0x12152c(0x2f9,'\x6b\x46\x26\x75')](-0x313*0x1+-0x6a1+0x9b4,-0x12af+-0x1a36+0x2d35),_0x19d1f4=(_0x4bf1fb['\x73\x75\x6d\x6d\x61\x72\x79']||'')[_0x12152c(0x1c5,'\x77\x59\x6a\x46')]()[_0x12152c(0x309,'\x39\x31\x4c\x21')](/\s+/g,'\x20')[_0x12152c(0x268,'\x57\x4b\x78\x56')]()[_0x12152c(0x216,'\x40\x62\x46\x76')](-0x3*0x161+0x181*-0xd+-0x10*-0x17b,_0x30aa8d),_0x107274=_0x4af539['\x6a\x4e\x52\x41\x48'](_0x425086[_0x12152c(0x252,'\x77\x59\x6a\x46')+'\x74\x79'],null)?_0x46d656['\x73\x69\x6d\x69\x6c\x61\x72\x69'+'\x74\x79'][_0x12152c(0x312,'\x61\x61\x63\x46')](0x7c2+0x96c*-0x1+0x4*0x6b):'\x3f',_0x1d5f2c=_0x148354[_0x12152c(0x342,'\x25\x34\x43\x77')]?_0x12152c(0x1a3,'\x4d\x4a\x4e\x35')+_0x2e2adc[_0x12152c(0x28e,'\x76\x53\x24\x28')]:'\x6c\x6f\x63\x61\x6c\x2c\x20\x75'+_0x12152c(0x23c,'\x61\x30\x31\x78')+'\x65\x64';if(_0x1e839d[_0x12152c(0x283,'\x35\x71\x50\x4e')])_0x3f53b4=!![];_0x1dd33e[_0x12152c(0x34e,'\x6b\x46\x26\x75')]('\x2d\x20'+(_0x39fa7c?_0x12152c(0x2a4,'\x50\x6a\x47\x31')+_0x39fa7c+'\x22':_0x4af539[_0x12152c(0x1cf,'\x77\x59\x6a\x46')])+'\x20\x28'+_0x1d5f2c+_0x12152c(0x253,'\x61\x30\x31\x78')+_0x107274+'\x29'+(_0x19d1f4?_0x4af539[_0x12152c(0x1d2,'\x63\x75\x29\x46')]('\x3a\x20',_0x19d1f4):''));}}if(!Array[_0x12152c(0x21a,'\x35\x71\x50\x4e')](_0x5a2e05)||_0x4af539[_0x12152c(0x31c,'\x61\x79\x43\x7a')](_0x5a2e05[_0x12152c(0x2f1,'\x78\x6e\x6f\x47')],0x60*-0x5e+0x123*-0x8+0x2c58)||!_0x5d289a)return[];const _0x339796=[];for(const _0x534b8d of _0x5a2e05){if(_0x4af539[_0x12152c(0x203,'\x41\x69\x62\x34')](_0x4af539['\x7a\x59\x58\x63\x43'],_0x4af539[_0x12152c(0x19f,'\x69\x51\x69\x48')])){if(!_0x534b8d||_0x534b8d[_0x12152c(0x382,'\x57\x4b\x78\x56')]!==_0x4af539[_0x12152c(0x226,'\x28\x61\x33\x4b')])continue;const _0x498630=Array[_0x12152c(0x23a,'\x39\x4f\x6f\x73')](_0x534b8d[_0x12152c(0x3be,'\x40\x62\x46\x76')+_0x12152c(0x39a,'\x79\x5a\x4e\x52')])?_0x534b8d[_0x12152c(0x21b,'\x71\x4e\x58\x67')+_0x12152c(0x25e,'\x39\x4f\x6f\x73')]:[];let _0x35a5ad=-0x1b08+0x1989+0x17f;for(const _0x1f1695 of _0x498630){try{if(_0x12152c(0x29e,'\x71\x4e\x58\x67')===_0x12152c(0x281,'\x6e\x4a\x58\x6e')){if(_0x5d289a[_0x12152c(0x383,'\x77\x59\x6a\x46')+_0x12152c(0x2af,'\x39\x4f\x6f\x73')+'\x67\x6e\x61\x6c\x73'](_0x1f1695,_0x116dfa))_0x35a5ad++;}else{const _0x393d6=hWEObH[_0x12152c(0x388,'\x44\x62\x37\x38')](_0x54027b,_0x524850.env.EVOLVER_RECALL_MODE||'')['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x12152c(0x379,'\x6c\x67\x4c\x32')]()['\x74\x72\x69\x6d']();return hWEObH[_0x12152c(0x1a0,'\x39\x31\x4c\x21')](_0x393d6,_0x12152c(0x36d,'\x74\x42\x23\x52'))||hWEObH[_0x12152c(0x24e,'\x79\x5a\x4e\x52')](_0x393d6,_0x12152c(0x35e,'\x39\x4e\x77\x5b'))?_0x393d6:hWEObH['\x75\x78\x42\x71\x46'];}}catch(_0x42cd3c){}}if(_0x4af539[_0x12152c(0x206,'\x70\x62\x5a\x26')](_0x35a5ad,0x1c23+-0x1f25*-0x1+0xbdb*-0x5))continue;let _0x3a2af2=-0x20ae+-0x1a2*0x9+0x2f60;try{_0x4af539['\x4f\x53\x42\x7a\x7a'](_0x4af539[_0x12152c(0x2bf,'\x4f\x6c\x73\x28')],_0x4af539[_0x12152c(0x2d3,'\x28\x61\x33\x4b')])?_0x3a2af2=_0x5d289a['\x73\x63\x6f\x72\x65\x47\x65\x6e'+_0x12152c(0x289,'\x69\x48\x54\x6e')+'\x63'](_0x534b8d,_0x116dfa)||-0x6cf+-0x1*0xa18+-0x1*-0x10e7:_0x2eb425=[];}catch(_0x4228cf){_0x3a2af2=-0x100+0x249a*-0x1+0x2*0x12cd;}let _0x299692=(_0x534b8d[_0x12152c(0x24f,'\x79\x5a\x4e\x52')]||'')[_0x12152c(0x2a3,'\x26\x68\x43\x2a')]()[_0x12152c(0x314,'\x6e\x4a\x58\x6e')]();if(!_0x299692&&_0x534b8d['\x73\x74\x72\x61\x74\x65\x67\x79']&&typeof _0x534b8d[_0x12152c(0x3a8,'\x69\x51\x69\x48')]===_0x12152c(0x2c6,'\x69\x48\x54\x6e')){const _0x2cf1ee=[];if(Array[_0x12152c(0x37d,'\x78\x6e\x6f\x47')](_0x534b8d[_0x12152c(0x2a0,'\x4d\x4a\x4e\x35')][_0x12152c(0x35d,'\x23\x7a\x48\x30')]))_0x2cf1ee[_0x12152c(0x280,'\x44\x62\x37\x38')](_0x534b8d[_0x12152c(0x2b3,'\x78\x6e\x6f\x47')]['\x73\x74\x65\x70\x73'][_0x12152c(0x2b9,'\x25\x34\x43\x77')](0x19d9+0x24bb+-0x3e94,0x302*0x3+-0x2293+0xcc8*0x2)[_0x12152c(0x28a,'\x61\x30\x31\x78')]('\x3b\x20'));if(_0x4af539[_0x12152c(0x21f,'\x28\x61\x33\x4b')](typeof _0x534b8d[_0x12152c(0x2b7,'\x29\x30\x45\x2a')][_0x12152c(0x211,'\x74\x72\x4b\x43')],_0x4af539[_0x12152c(0x2ad,'\x63\x69\x79\x68')]))_0x2cf1ee[_0x12152c(0x37e,'\x76\x35\x28\x48')](_0x534b8d[_0x12152c(0x2b3,'\x78\x6e\x6f\x47')]['\x61\x70\x70\x72\x6f\x61\x63\x68']);_0x299692=_0x2cf1ee[_0x12152c(0x1bd,'\x30\x4a\x6f\x58')](Boolean)[_0x12152c(0x2fd,'\x35\x71\x50\x4e')](_0x4af539[_0x12152c(0x327,'\x61\x39\x72\x55')])[_0x12152c(0x314,'\x6e\x4a\x58\x6e')]();}if(!_0x299692){if(_0x4af539[_0x12152c(0x385,'\x78\x6e\x6f\x47')](_0x4af539[_0x12152c(0x20f,'\x30\x40\x39\x49')],_0x12152c(0x1f2,'\x54\x69\x58\x41'))){const _0x2326f4=_0x498630[_0x12152c(0x319,'\x61\x61\x63\x46')](_0x16fab0=>String(_0x16fab0)[_0x12152c(0x2ba,'\x44\x51\x4f\x6c')]('\x7c')[0xe68*-0x1+0x26b7+0x1*-0x184f])[_0x12152c(0x305,'\x63\x75\x29\x46')](_0x140fe0=>_0x140fe0&&!_0x140fe0[_0x12152c(0x213,'\x71\x4e\x58\x67')+'\x74\x68']('\x2f'))[_0x12152c(0x1c7,'\x61\x61\x63\x46')](0x4*-0x435+0x682+0xa52,-0x4*-0xaa+-0x1ec3+0x1c1f);if(_0x2326f4[_0x12152c(0x340,'\x57\x4b\x78\x56')])_0x299692=_0x4af539[_0x12152c(0x2e7,'\x26\x68\x43\x2a')](_0x12152c(0x212,'\x78\x4a\x6e\x6a')+'\x20',_0x2326f4[_0x12152c(0x308,'\x6e\x4a\x58\x6e')]('\x2c\x20'));}else _0x52ad61=hWEObH[_0x12152c(0x332,'\x50\x6a\x47\x31')](_0x156b63,hWEObH[_0x12152c(0x1ac,'\x70\x62\x5a\x26')]),_0x466df7=hWEObH[_0x12152c(0x237,'\x50\x6a\x47\x31')](_0x20de05,hWEObH[_0x12152c(0x1c9,'\x78\x6e\x6f\x47')]);}_0x339796[_0x12152c(0x259,'\x39\x31\x4c\x21')]({'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x534b8d[_0x12152c(0x3b6,'\x61\x39\x72\x55')]||'','\x73\x6f\x75\x72\x63\x65\x5f\x6e\x6f\x64\x65\x5f\x69\x64':_0x534b8d[_0x12152c(0x1ad,'\x71\x4e\x58\x67')+_0x12152c(0x288,'\x54\x69\x58\x41')]||_0x534b8d[_0x12152c(0x19d,'\x61\x30\x31\x78')+_0x12152c(0x221,'\x23\x7a\x48\x30')]||'','\x63\x68\x61\x69\x6e\x5f\x69\x64':_0x534b8d[_0x12152c(0x27a,'\x61\x30\x31\x78')]||'','\x73\x69\x6d\x69\x6c\x61\x72\x69\x74\x79':Math[_0x12152c(0x2f5,'\x39\x31\x4c\x21')](-0x119*-0x10+-0x4b6+-0xcd9,_0x4af539[_0x12152c(0x32a,'\x61\x39\x72\x55')](_0x4af539[_0x12152c(0x31d,'\x61\x79\x43\x7a')](-0xd*-0xa3+0x1ced+-0x2534+0.75,_0x4af539[_0x12152c(0x32f,'\x6a\x66\x50\x4e')](0xbc5+-0x74c+-0x479*0x1+0.05,_0x35a5ad)),_0x4af539[_0x12152c(0x364,'\x71\x4e\x58\x67')](0x61c+-0x148*0x2+0x38c*-0x1+0.1,_0x3a2af2))),'\x74\x69\x74\x6c\x65':_0x534b8d['\x69\x64']||_0x534b8d[_0x12152c(0x31f,'\x5d\x6f\x23\x70')+_0x12152c(0x28d,'\x61\x79\x43\x7a')]||'','\x73\x75\x6d\x6d\x61\x72\x79':_0x299692,'\x6f\x72\x69\x67\x69\x6e':_0x12152c(0x343,'\x44\x62\x37\x38'),'\x5f\x68\x69\x74\x73':_0x35a5ad});}else{const _0x2edcf3=_0x24d8e8[_0x12152c(0x396,'\x69\x48\x54\x6e')](_0x4305ec=>_0x581e2a(_0x4305ec)[_0x12152c(0x3c2,'\x30\x58\x38\x24')]('\x7c')[0x2*-0xa94+-0x75d*-0x1+-0x1*-0xdcb])[_0x12152c(0x1ec,'\x61\x30\x31\x78')](_0x166e7c=>_0x166e7c&&!_0x166e7c[_0x12152c(0x2c2,'\x76\x35\x28\x48')+'\x74\x68']('\x2f'))[_0x12152c(0x366,'\x61\x30\x31\x78')](-0x1a7d+0x2372+0x8f5*-0x1,0x13a*-0x12+0x113b+0xf9*0x5);if(_0x2edcf3[_0x12152c(0x22a,'\x74\x42\x23\x52')])_0x5a61d8=_0x4af539['\x57\x54\x68\x46\x49'](_0x12152c(0x3b7,'\x71\x4e\x58\x67')+'\x20',_0x2edcf3[_0x12152c(0x1b0,'\x39\x31\x4c\x21')]('\x2c\x20'));}}return _0x339796;}function _0x13859e(_0x60459f){const _0xe8c3b7=_0x1c396c,_0x5b84ac={'\x41\x6c\x66\x69\x6d':function(_0x41a3f8,_0x498ce8){return _0x41a3f8(_0x498ce8);},'\x65\x74\x42\x6c\x6c':function(_0x18a0c6,_0x3dc173){return _0x18a0c6(_0x3dc173);},'\x6d\x53\x45\x6d\x6b':function(_0x58ed3a,_0x273842){return _0x58ed3a||_0x273842;}},_0x2217be=(_0x60459f&&_0x60459f[_0xe8c3b7(0x246,'\x6e\x4a\x58\x6e')]?_0x5b84ac['\x41\x6c\x66\x69\x6d'](String,_0x60459f[_0xe8c3b7(0x243,'\x79\x5a\x4e\x52')]):'')[_0xe8c3b7(0x2a5,'\x54\x69\x58\x41')](),_0x2ac8f9=(_0x60459f&&_0x60459f[_0xe8c3b7(0x30e,'\x4d\x4a\x4e\x35')]?_0x5b84ac[_0xe8c3b7(0x238,'\x71\x4e\x58\x67')](String,_0x60459f[_0xe8c3b7(0x20e,'\x6a\x66\x50\x4e')]):'')[_0xe8c3b7(0x2fe,'\x50\x6a\x47\x31')]();return!!_0x5b84ac[_0xe8c3b7(0x2c8,'\x4f\x6c\x73\x28')](_0x2217be,_0x2ac8f9);}function _0x543b89(_0x60c7c6){const _0x1d55e6=_0x1c396c,_0x57bdd2={};_0x57bdd2[_0x1d55e6(0x215,'\x30\x4a\x6f\x58')]=_0x1d55e6(0x1a2,'\x61\x39\x72\x55')+_0x1d55e6(0x1b9,'\x61\x39\x72\x55')+_0x1d55e6(0x315,'\x58\x4a\x6a\x49')+_0x1d55e6(0x275,'\x39\x4f\x6f\x73')+'\x6c\x69\x74\x79\x5d',_0x57bdd2[_0x1d55e6(0x2dc,'\x30\x40\x39\x49')]=_0x1d55e6(0x371,'\x63\x75\x29\x46')+_0x1d55e6(0x284,'\x58\x4a\x6a\x49')+'\x65\x64',_0x57bdd2[_0x1d55e6(0x20c,'\x54\x69\x58\x41')]=_0x1d55e6(0x1f9,'\x74\x72\x4b\x43'),_0x57bdd2[_0x1d55e6(0x2ac,'\x6c\x67\x4c\x32')]=_0x1d55e6(0x39e,'\x6b\x4c\x6d\x63')+_0x1d55e6(0x306,'\x23\x7a\x48\x30')+_0x1d55e6(0x25a,'\x39\x4e\x77\x5b')+_0x1d55e6(0x1a8,'\x70\x62\x5a\x26')+'\x69\x74\x20\x74\x68\x69\x73\x20'+'\x74\x61\x73\x6b\x2e\x20\x41\x64'+'\x61\x70\x74\x20\x69\x74\x3b\x20'+_0x1d55e6(0x1e6,'\x5d\x6f\x23\x70')+_0x1d55e6(0x39f,'\x76\x53\x24\x28')+_0x1d55e6(0x1a9,'\x34\x6c\x75\x65'),_0x57bdd2[_0x1d55e6(0x3ad,'\x45\x67\x62\x4d')]=_0x1d55e6(0x34b,'\x5d\x6f\x23\x70')+_0x1d55e6(0x30d,'\x28\x61\x33\x4b')+'\x73\x68\x65\x64\x20\x61\x73\x73'+_0x1d55e6(0x1ee,'\x26\x68\x43\x2a')+_0x1d55e6(0x2bb,'\x77\x59\x6a\x46')+_0x1d55e6(0x1e7,'\x58\x4a\x6a\x49')+'\x3e\x60\x20\x28\x6f\x72\x20\x60'+_0x1d55e6(0x350,'\x5d\x6f\x23\x70')+_0x1d55e6(0x2cc,'\x78\x6e\x6f\x47'),_0x57bdd2['\x4e\x79\x4c\x45\x68']=function(_0x303176,_0x4f536d){return _0x303176>_0x4f536d;};const _0x22bb42=_0x57bdd2,_0x448c70=(_0x60c7c6||[])[_0x1d55e6(0x334,'\x78\x4a\x6e\x6a')](_0x13859e);if(!_0x448c70[_0x1d55e6(0x2ea,'\x6b\x46\x26\x75')])return'';const _0x27972a=[_0x22bb42[_0x1d55e6(0x397,'\x4d\x4a\x4e\x35')]];let _0x7a464d=![];for(const _0x34672a of _0x448c70){const _0x211190=(_0x34672a[_0x1d55e6(0x35b,'\x39\x4f\x6f\x73')]||'')[_0x1d55e6(0x1fc,'\x69\x48\x54\x6e')]()[_0x1d55e6(0x257,'\x41\x69\x62\x34')](0x1abc+0x223a+0x12*-0x363,-0x1089+-0x1f8d+0x3066),_0x1dff8d=(_0x34672a[_0x1d55e6(0x1dc,'\x40\x62\x46\x76')]||'')[_0x1d55e6(0x349,'\x52\x64\x30\x25')]()[_0x1d55e6(0x217,'\x35\x71\x50\x4e')](/\s+/g,'\x20')['\x74\x72\x69\x6d']()[_0x1d55e6(0x298,'\x35\x71\x50\x4e')](-0x4*-0x36b+-0x1b84*-0x1+-0x2930,_0x1d651a),_0x2eeafc=_0x34672a[_0x1d55e6(0x2d0,'\x6b\x4c\x6d\x63')+'\x74\x79']!=null?_0x34672a[_0x1d55e6(0x331,'\x5b\x78\x70\x44')+'\x74\x79'][_0x1d55e6(0x30c,'\x30\x40\x39\x49')](-0x1ad1+-0xb28+0x3*0xca9):'\x3f',_0xf70890=_0x34672a[_0x1d55e6(0x2a2,'\x39\x4e\x77\x5b')]?_0x1d55e6(0x251,'\x6e\x4a\x58\x6e')+_0x34672a['\x61\x73\x73\x65\x74\x5f\x69\x64']:_0x22bb42['\x66\x44\x70\x52\x64'];if(_0x34672a[_0x1d55e6(0x1a1,'\x29\x30\x45\x2a')])_0x7a464d=!![];_0x27972a['\x70\x75\x73\x68']('\x2d\x20'+(_0x211190?_0x1d55e6(0x20d,'\x61\x79\x43\x7a')+_0x211190+'\x22':_0x22bb42[_0x1d55e6(0x370,'\x34\x6c\x75\x65')])+'\x20\x28'+_0xf70890+_0x1d55e6(0x2f2,'\x25\x34\x43\x77')+_0x2eeafc+'\x29'+(_0x1dff8d?'\x3a\x20'+_0x1dff8d:''));}_0x27972a[_0x1d55e6(0x1f6,'\x52\x64\x30\x25')](_0x22bb42[_0x1d55e6(0x3ba,'\x30\x58\x38\x24')]);if(_0x7a464d)_0x27972a[_0x1d55e6(0x325,'\x44\x51\x4f\x6c')](_0x22bb42[_0x1d55e6(0x28b,'\x52\x64\x30\x25')]);const _0x445256=_0x27972a[_0x1d55e6(0x25d,'\x44\x62\x37\x38')]('\x0a');return _0x22bb42[_0x1d55e6(0x322,'\x57\x4b\x78\x56')](_0x445256[_0x1d55e6(0x2f1,'\x78\x6e\x6f\x47')],_0x539eb5)?_0x445256[_0x1d55e6(0x256,'\x5b\x78\x70\x44')](-0x1*-0x11a1+0x6e1*0x1+-0x1*0x1882,_0x539eb5):_0x445256;}function _0x47b311(_0x4a3622,_0x2f2a7e,_0x20f8d9,_0x46bdc9){const _0x323013=_0x1c396c,_0x334ca9={'\x68\x56\x62\x46\x47':function(_0x53c4df,_0x42bcee){return _0x53c4df(_0x42bcee);},'\x49\x5a\x77\x55\x55':function(_0x678a0,_0x14df1){return _0x678a0||_0x14df1;},'\x41\x69\x51\x65\x43':function(_0xe0a97b,_0x19513f){return _0xe0a97b!==_0x19513f;},'\x58\x56\x4a\x79\x43':_0x323013(0x361,'\x6b\x46\x26\x75'),'\x56\x63\x45\x63\x71':function(_0x15ba2d,_0xad6f0b){return _0x15ba2d===_0xad6f0b;},'\x4b\x56\x74\x54\x7a':_0x323013(0x287,'\x74\x72\x4b\x43'),'\x4e\x4e\x5a\x66\x55':_0x323013(0x2db,'\x44\x51\x4f\x6c')+'\x6a\x65\x63\x74','\x72\x79\x55\x6b\x61':'\x61\x73\x73\x65\x74\x5f\x69\x6e'+_0x323013(0x37a,'\x34\x6c\x75\x65')+_0x323013(0x34f,'\x61\x61\x63\x46'),'\x61\x59\x73\x58\x6a':function(_0x5c53ed,_0x9495f3){return _0x5c53ed!==_0x9495f3;},'\x56\x6d\x72\x49\x50':'\x5a\x76\x73\x51\x59','\x46\x54\x4e\x71\x57':'\x47\x65\x6e\x65','\x42\x52\x4f\x51\x4e':function(_0x25a43c,_0x40003f){return _0x25a43c===_0x40003f;},'\x68\x72\x6f\x62\x70':'\x68\x75\x62','\x6b\x47\x6a\x72\x49':_0x323013(0x1b2,'\x39\x4f\x6f\x73')+_0x323013(0x2ef,'\x77\x59\x6a\x46')+_0x323013(0x1a5,'\x52\x64\x30\x25'),'\x4d\x58\x61\x5a\x79':_0x323013(0x263,'\x71\x4e\x58\x67')+'\x6e\x65\x5f\x70\x61\x74\x74\x65'+_0x323013(0x1c2,'\x6b\x46\x26\x75'),'\x4e\x4c\x65\x52\x4b':_0x323013(0x1d4,'\x74\x72\x4b\x43')+_0x323013(0x265,'\x69\x51\x69\x48'),'\x4c\x72\x45\x63\x59':_0x323013(0x316,'\x5b\x78\x70\x44')+_0x323013(0x234,'\x63\x69\x79\x68')+'\x63\x61\x6c'};let _0x1b4cb8;try{if(_0x334ca9[_0x323013(0x1ed,'\x74\x72\x4b\x43')](_0x334ca9[_0x323013(0x39b,'\x41\x69\x62\x34')],_0x323013(0x367,'\x71\x4e\x58\x67')))({logAssetCall:_0x1b4cb8}=require('\x2e\x2f\x61\x73\x73\x65\x74\x43'+'\x61\x6c\x6c\x4c\x6f\x67'));else{const _0x3dbeea=(_0x4a41dc&&_0x56ae54[_0x323013(0x380,'\x58\x4a\x6a\x49')]?_0x5657e7(_0x566daa[_0x323013(0x231,'\x25\x34\x43\x77')]):'')[_0x323013(0x240,'\x41\x69\x62\x34')](),_0x5c3b17=(_0x150e0b&&_0x29da3e[_0x323013(0x333,'\x74\x42\x23\x52')]?nzMcIg[_0x323013(0x3b9,'\x30\x58\x38\x24')](_0x83d8f,_0x434850[_0x323013(0x313,'\x61\x79\x43\x7a')]):'')[_0x323013(0x2cd,'\x61\x79\x43\x7a')]();return!!nzMcIg['\x49\x5a\x77\x55\x55'](_0x3dbeea,_0x5c3b17);}}catch(_0x1f9ba6){return;}const _0xd10c71=_0x334ca9[_0x323013(0x1c3,'\x61\x39\x72\x55')](_0x2f2a7e,_0x334ca9[_0x323013(0x269,'\x58\x4a\x6a\x49')])?_0x334ca9['\x4e\x4e\x5a\x66\x55']:_0x334ca9[_0x323013(0x278,'\x29\x30\x45\x2a')];for(const _0x10d5cf of _0x4a3622){try{if(_0x334ca9[_0x323013(0x200,'\x78\x4a\x6e\x6a')](_0x323013(0x1d6,'\x30\x40\x39\x49'),_0x334ca9[_0x323013(0x3a3,'\x69\x48\x54\x6e')]))return[];else _0x1b4cb8({'\x72\x75\x6e\x5f\x69\x64':_0x20f8d9,'\x61\x63\x74\x69\x6f\x6e':_0xd10c71,'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x10d5cf[_0x323013(0x2ee,'\x6e\x4a\x58\x6e')]||undefined,'\x61\x73\x73\x65\x74\x5f\x74\x79\x70\x65':_0x334ca9[_0x323013(0x341,'\x76\x53\x24\x28')],'\x73\x6f\x75\x72\x63\x65\x5f\x6e\x6f\x64\x65\x5f\x69\x64':_0x10d5cf[_0x323013(0x1fe,'\x58\x4a\x6a\x49')+'\x6f\x64\x65\x5f\x69\x64']||undefined,'\x63\x68\x61\x69\x6e\x5f\x69\x64':_0x10d5cf[_0x323013(0x3bf,'\x71\x4e\x58\x67')]||undefined,'\x73\x63\x6f\x72\x65':_0x10d5cf[_0x323013(0x299,'\x69\x48\x54\x6e')+'\x74\x79'],'\x73\x69\x67\x6e\x61\x6c\x73':_0x46bdc9[_0x323013(0x292,'\x6e\x4a\x58\x6e')](-0x1a6*0x1+-0x1*-0x565+0x7*-0x89,0x1d+0x13d6+-0x13eb),'\x72\x65\x61\x73\x6f\x6e':_0x334ca9[_0x323013(0x2fa,'\x4f\x6c\x73\x28')](_0x10d5cf[_0x323013(0x365,'\x34\x6c\x75\x65')],_0x334ca9[_0x323013(0x220,'\x52\x64\x30\x25')])?_0x334ca9[_0x323013(0x29c,'\x61\x79\x43\x7a')]:_0x334ca9[_0x323013(0x271,'\x76\x53\x24\x28')],'\x65\x78\x74\x72\x61':{'\x76\x69\x61':_0x334ca9[_0x323013(0x357,'\x25\x34\x43\x77')],'\x61\x74\x74\x72\x69\x62\x75\x74\x69\x6f\x6e':_0x334ca9[_0x323013(0x387,'\x39\x4e\x77\x5b')],'\x6f\x72\x69\x67\x69\x6e':_0x10d5cf['\x6f\x72\x69\x67\x69\x6e']}});}catch(_0x22d019){}}}async function _0x2f3a97(_0x4e3c11){const _0x4fa4f5=_0x1c396c,_0x3ed725={'\x75\x77\x79\x56\x47':function(_0x25db3b,_0x217fd3){return _0x25db3b||_0x217fd3;},'\x6c\x79\x42\x52\x51':function(_0x10201e){return _0x10201e();},'\x6f\x59\x6e\x46\x47':function(_0x4816f6,_0xc39b35){return _0x4816f6===_0xc39b35;},'\x65\x4a\x5a\x75\x58':'\x6f\x66\x66','\x49\x73\x61\x7a\x51':function(_0x58b6fd,_0x46d05d){return _0x58b6fd(_0x46d05d);},'\x6e\x64\x6d\x50\x5a':_0x4fa4f5(0x2ff,'\x30\x4a\x6f\x58'),'\x48\x7a\x67\x45\x67':function(_0x3cf549,_0x35924a,_0x49eba1){return _0x3cf549(_0x35924a,_0x49eba1);},'\x4a\x75\x5a\x4b\x61':function(_0xa81be3){return _0xa81be3();},'\x71\x73\x69\x58\x68':function(_0x1eaa8a,_0x2e4659){return _0x1eaa8a-_0x2e4659;},'\x47\x55\x73\x72\x75':function(_0x36c291,_0x4488c6){return _0x36c291+_0x4488c6;},'\x48\x6a\x44\x74\x71':'\x72\x65\x63\x61\x6c\x6c\x3a','\x79\x78\x68\x4e\x79':function(_0x34e3fe,_0x1baf40,_0x544ff6,_0x12a78d,_0x573177){return _0x34e3fe(_0x1baf40,_0x544ff6,_0x12a78d,_0x573177);},'\x66\x74\x46\x72\x6b':'\x65\x6e\x66\x6f\x72\x63\x65'},_0x4b8673=_0x3ed725[_0x4fa4f5(0x26b,'\x6b\x4c\x6d\x63')](_0x4e3c11,{}),_0x523b70=_0x4b8673[_0x4fa4f5(0x2f0,'\x28\x61\x33\x4b')]||_0x3ed725[_0x4fa4f5(0x36f,'\x79\x5a\x4e\x52')](_0x4d559b),_0x59018c={};_0x59018c[_0x4fa4f5(0x393,'\x74\x72\x4b\x43')]=![],_0x59018c[_0x4fa4f5(0x1d0,'\x6b\x46\x26\x75')]=null,_0x59018c['\x64\x65\x63\x69\x64\x65\x64']=[],_0x59018c[_0x4fa4f5(0x26a,'\x41\x69\x62\x34')]=0x0,_0x59018c[_0x4fa4f5(0x351,'\x69\x48\x54\x6e')]=[];if(_0x3ed725[_0x4fa4f5(0x21d,'\x69\x51\x69\x48')](_0x523b70,_0x3ed725['\x65\x4a\x5a\x75\x58']))return _0x59018c;const _0x12d4ad=_0x36d4dc(_0x4b8673[_0x4fa4f5(0x2d6,'\x26\x68\x43\x2a')]),_0x8a5211={};_0x8a5211[_0x4fa4f5(0x2e8,'\x79\x5a\x4e\x52')]=![],_0x8a5211[_0x4fa4f5(0x35f,'\x74\x42\x23\x52')]=null,_0x8a5211[_0x4fa4f5(0x21c,'\x79\x5a\x4e\x52')]=[],_0x8a5211[_0x4fa4f5(0x1eb,'\x78\x4a\x6e\x6a')]=0x0,_0x8a5211[_0x4fa4f5(0x1bb,'\x39\x31\x4c\x21')]=[];if(!_0x12d4ad[_0x4fa4f5(0x329,'\x61\x79\x43\x7a')])return _0x8a5211;const _0x5bdd19=_0x3ed725[_0x4fa4f5(0x2ec,'\x30\x58\x38\x24')](_0x238974,_0x12d4ad),_0x296547=0x2495+-0xd3*0x5+0x18*-0x154;let _0x22ab18=Number[_0x4fa4f5(0x37c,'\x28\x61\x33\x4b')](_0x4b8673[_0x4fa4f5(0x254,'\x6b\x4c\x6d\x63')+'\x73'])&&_0x4b8673[_0x4fa4f5(0x24c,'\x40\x62\x46\x76')+'\x73']>0x143f+0x12*-0x175+-0x5fb*-0x1?_0x4b8673[_0x4fa4f5(0x1e5,'\x70\x62\x5a\x26')+'\x73']:-0x24fa+0x6d4+0x2*0x12fb;if(Number[_0x4fa4f5(0x1fb,'\x54\x69\x58\x41')](_0x4b8673['\x64\x65\x61\x64\x6c\x69\x6e\x65'+'\x4d\x73'])){if(_0x3ed725[_0x4fa4f5(0x32d,'\x30\x40\x39\x49')]!==_0x3ed725[_0x4fa4f5(0x24d,'\x69\x48\x54\x6e')])_0x1d1348=_0x5f05f3['\x67\x65\x74\x4e\x6f\x64\x65\x49'+'\x64']()||'';else{const _0x54b39e=_0x4b8673[_0x4fa4f5(0x22d,'\x30\x58\x38\x24')+'\x4d\x73']-Date['\x6e\x6f\x77']()-_0x296547;_0x22ab18=Math[_0x4fa4f5(0x1ff,'\x61\x79\x43\x7a')](_0x22ab18,_0x54b39e);}}const _0x47c098=_0x22ab18>=0xe*0x122+0x1769+-0x2619*0x1?await _0x3ed725['\x48\x7a\x67\x45\x67'](_0x2e9bc6,_0x12d4ad,_0x22ab18):[],_0x5b3c3a=new Set(),_0x4bc54d=[];let _0x4e901f=0xb5*-0x5+0x1*0xa6d+0x2*-0x372;for(const _0x4a4085 of[..._0x47c098,..._0x5bdd19]){const _0x4b095f=_0x4a4085[_0x4fa4f5(0x342,'\x25\x34\x43\x77')]||_0x4a4085[_0x4fa4f5(0x1aa,'\x78\x6e\x6f\x47')]+'\x3a'+_0x4a4085['\x74\x69\x74\x6c\x65'];if(_0x4b095f&&_0x5b3c3a[_0x4fa4f5(0x35a,'\x4d\x4a\x4e\x35')](_0x4b095f)){_0x4e901f++;continue;}if(_0x4b095f)_0x5b3c3a[_0x4fa4f5(0x19b,'\x79\x5a\x4e\x52')](_0x4b095f);_0x4bc54d[_0x4fa4f5(0x2ae,'\x74\x42\x23\x52')](_0x4a4085);}_0x4bc54d['\x73\x6f\x72\x74']((_0x360709,_0x4c2068)=>(_0x4c2068[_0x4fa4f5(0x1b8,'\x30\x40\x39\x49')+'\x74\x79']||-0x24b2+0xe8b+0x1627)-(_0x360709[_0x4fa4f5(0x392,'\x71\x4e\x58\x67')+'\x74\x79']||0x4*-0x4bc+0x23dd+-0x1*0x10ed));const _0x28a2da=_0x4bc54d[_0x4fa4f5(0x2da,'\x78\x4a\x6e\x6a')](-0x2e*-0xb7+0x1*-0x52f+-0x1bb3,_0x3ed725[_0x4fa4f5(0x1f0,'\x76\x35\x28\x48')](_0x5cffec));_0x4e901f+=Math[_0x4fa4f5(0x224,'\x61\x61\x63\x46')](-0x7f*0x49+0x2*0xa9+0x22e5*0x1,_0x3ed725[_0x4fa4f5(0x33f,'\x5b\x78\x70\x44')](_0x4bc54d['\x6c\x65\x6e\x67\x74\x68'],_0x28a2da[_0x4fa4f5(0x262,'\x26\x68\x43\x2a')]));const _0x4e27f8=_0x28a2da[_0x4fa4f5(0x2ab,'\x4d\x4a\x4e\x35')](_0x13859e);_0x4e901f+=_0x28a2da[_0x4fa4f5(0x274,'\x69\x51\x69\x48')]-_0x4e27f8[_0x4fa4f5(0x27b,'\x63\x75\x29\x46')];const _0x2b32ee={};_0x2b32ee[_0x4fa4f5(0x1e8,'\x5d\x6f\x23\x70')]=![],_0x2b32ee[_0x4fa4f5(0x1b1,'\x6c\x67\x4c\x32')]=null,_0x2b32ee[_0x4fa4f5(0x32c,'\x54\x69\x58\x41')]=[],_0x2b32ee[_0x4fa4f5(0x34a,'\x52\x64\x30\x25')]=_0x4e901f,_0x2b32ee[_0x4fa4f5(0x2b1,'\x44\x62\x37\x38')]=_0x12d4ad;if(!_0x4e27f8[_0x4fa4f5(0x2e0,'\x39\x4f\x6f\x73')])return _0x2b32ee;const _0x1af2fc=_0x3ed725[_0x4fa4f5(0x3a5,'\x25\x34\x43\x77')](_0x543b89,_0x4e27f8),_0x10e223={};_0x10e223[_0x4fa4f5(0x205,'\x4f\x6c\x73\x28')]=![],_0x10e223[_0x4fa4f5(0x36b,'\x41\x69\x62\x34')]=null,_0x10e223[_0x4fa4f5(0x1de,'\x63\x75\x29\x46')]=[],_0x10e223[_0x4fa4f5(0x34a,'\x52\x64\x30\x25')]=_0x4e901f,_0x10e223[_0x4fa4f5(0x373,'\x63\x69\x79\x68')]=_0x12d4ad;if(!_0x1af2fc)return _0x10e223;const _0x3048c3=_0x4b8673[_0x4fa4f5(0x22b,'\x61\x79\x43\x7a')]||_0x3ed725[_0x4fa4f5(0x248,'\x63\x69\x79\x68')](_0x3ed725[_0x4fa4f5(0x223,'\x25\x34\x43\x77')],_0x4b8673[_0x4fa4f5(0x378,'\x39\x31\x4c\x21')+'\x64']||_0x4fa4f5(0x1ce,'\x6a\x66\x50\x4e'));return _0x3ed725['\x79\x78\x68\x4e\x79'](_0x47b311,_0x4e27f8,_0x523b70,_0x3048c3,_0x12d4ad),{'\x69\x6e\x6a\x65\x63\x74':_0x3ed725[_0x4fa4f5(0x2dd,'\x39\x31\x4c\x21')](_0x523b70,_0x3ed725[_0x4fa4f5(0x1c1,'\x6b\x46\x26\x75')]),'\x74\x65\x78\x74':_0x1af2fc,'\x64\x65\x63\x69\x64\x65\x64':_0x4e27f8,'\x64\x72\x6f\x70\x70\x65\x64':_0x4e901f,'\x73\x69\x67\x6e\x61\x6c\x73':_0x12d4ad};}const _0x262acb={};_0x262acb[_0x1c396c(0x219,'\x77\x59\x6a\x46')+'\x62']=_0x2e9bc6,_0x262acb[_0x1c396c(0x2bc,'\x61\x79\x43\x7a')+'\x61\x6c\x47\x65\x6e\x65\x73']=_0x238974,_0x262acb[_0x1c396c(0x336,'\x76\x35\x28\x48')+_0x1c396c(0x2aa,'\x6e\x4a\x58\x6e')]=_0x47b311;const _0x40bce5={};_0x40bce5[_0x1c396c(0x1f5,'\x78\x6e\x6f\x47')+_0x1c396c(0x330,'\x78\x4a\x6e\x6a')]=_0x2f3a97,_0x40bce5[_0x1c396c(0x1da,'\x76\x35\x28\x48')]=_0x4d559b,_0x40bce5[_0x1c396c(0x34c,'\x39\x4e\x77\x5b')+'\x6d']=_0xd0b1f5,_0x40bce5[_0x1c396c(0x3a1,'\x6e\x4a\x58\x6e')+_0x1c396c(0x1bc,'\x61\x39\x72\x55')]=_0x5cffec,_0x40bce5[_0x1c396c(0x347,'\x63\x69\x79\x68')+_0x1c396c(0x2eb,'\x61\x39\x72\x55')+'\x72\x65']=_0x495ba4,_0x40bce5['\x62\x75\x69\x6c\x64\x53\x69\x67'+_0x1c396c(0x353,'\x61\x39\x72\x55')]=_0x36d4dc,_0x40bce5[_0x1c396c(0x1a4,'\x79\x5a\x4e\x52')+_0x1c396c(0x229,'\x6b\x46\x26\x75')]=_0x543b89,_0x40bce5[_0x1c396c(0x2d2,'\x61\x30\x31\x78')+'\x6c\x73']=_0x262acb,module[_0x1c396c(0x1ae,'\x29\x30\x45\x2a')]=_0x40bce5;
|
|
1
|
+
// recallInject.js
|
|
2
|
+
// Harness-agnostic core for "runtime asset injection" (P4-c): when a general
|
|
3
|
+
// agent is about to work on a task, find GEP assets (Hub genes + local genes)
|
|
4
|
+
// that match the task and surface a distilled hint the agent can use.
|
|
5
|
+
//
|
|
6
|
+
// This module is PURE: no stdin/stdout, no process.exit. It is driven by the
|
|
7
|
+
// per-harness hook entrypoint (src/adapters/scripts/evolver-task-recall.js) and
|
|
8
|
+
// is unit-testable in isolation. The entrypoint owns the fail-open latch +
|
|
9
|
+
// watchdog + stdout shape; this module owns the matching/gating/logging.
|
|
10
|
+
//
|
|
11
|
+
// HARD INVARIANTS (do not regress — these are the P4-c scope contract):
|
|
12
|
+
// 1. SEARCH-ONLY. We call fetchSemanticResults (a free GET
|
|
13
|
+
// /a2a/assets/semantic-search) and NEVER hubSearch()/fetchAssetById() —
|
|
14
|
+
// Phase-2 fetch SPENDS CREDITS (hubSearch.js:379 logs "Fetch cost"). The
|
|
15
|
+
// recall path must never spend a credit, in any mode. No money surface.
|
|
16
|
+
// 2. LLM-FREE / NO CHILD PROCESS. We extract signals with ONLY the pure
|
|
17
|
+
// extractors _extractRegex + _extractKeywordScore. We must NOT call
|
|
18
|
+
// extractSignals() — it calls _extractLLM(), a SYNC execFileSync('curl',
|
|
19
|
+
// ['-m','10',...]) that (a) blocks the event loop for up to 10s so the
|
|
20
|
+
// entrypoint watchdog can't fire, and (b) ships a raw-prompt corpus to the
|
|
21
|
+
// Hub. Both are forbidden here.
|
|
22
|
+
// 3. SHADOW-FIRST. In 'shadow' we compute + log what WOULD inject but return
|
|
23
|
+
// inject:false (the entrypoint injects nothing). In 'off' the entrypoint
|
|
24
|
+
// never calls us. Only 'enforce' returns inject:true.
|
|
25
|
+
// 4. HIGH-CONFIDENCE ONLY. Hub rows must clear the similarity HIGH band
|
|
26
|
+
// (>= EVOLVER_RECALL_MIN_SIM, default 0.75). Local genes must have >=1
|
|
27
|
+
// real signal-pattern hit (not bag-of-words noise).
|
|
28
|
+
// 5. NO Hub used_asset_ids / reuse-credit reporting. Attribution is a LOCAL
|
|
29
|
+
// JSONL artifact only (assetCallLog). Promoting it to Hub credit needs a
|
|
30
|
+
// stronger usage signal AND team sign-off (it changes money).
|
|
31
|
+
|
|
32
|
+
const path = require('path');
|
|
33
|
+
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Mode parsing: EVOLVER_RECALL_MODE ∈ off (default) | shadow | enforce.
|
|
36
|
+
// Anything unknown/absent -> off (safest). Mirrors the conv-distill/P3 cadence
|
|
37
|
+
// of a single 3-state env var.
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
function getMode() {
|
|
40
|
+
const v = String(process.env.EVOLVER_RECALL_MODE || '').toLowerCase().trim();
|
|
41
|
+
return v === 'shadow' || v === 'enforce' ? v : 'off';
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Similarity HIGH band. Ported as an in-repo literal from
|
|
45
|
+
// gep-mcp-server/src/searchEnrich.js (SIMILARITY_BAND_HIGH = 0.75) — that file
|
|
46
|
+
// is a separate ESM repo and must NOT be imported. Operator-tunable.
|
|
47
|
+
function getMinSim() {
|
|
48
|
+
const n = Number(process.env.EVOLVER_RECALL_MIN_SIM);
|
|
49
|
+
return Number.isFinite(n) && n > 0 && n <= 1 ? n : 0.75;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Max assets injected per turn. Default 1 (top hit only) to minimise context
|
|
53
|
+
// pollution; the entrypoint blocks every prompt, so we stay terse.
|
|
54
|
+
function getMaxInject() {
|
|
55
|
+
const n = parseInt(process.env.EVOLVER_RECALL_MAX, 10);
|
|
56
|
+
return Number.isFinite(n) && n > 0 && n <= 10 ? n : 1;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Hard ceiling on injected text length (defense against a giant nl_summary
|
|
60
|
+
// bloating the agent's context window).
|
|
61
|
+
const INJECT_CHAR_CEILING = 800;
|
|
62
|
+
const SUMMARY_CLIP = 200;
|
|
63
|
+
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// LLM-free signal extraction. Uses ONLY the pure extractors. We deliberately
|
|
66
|
+
// do NOT call signals.extractSignals (curl/event-loop-block, see invariant 2)
|
|
67
|
+
// and do NOT call _mergeSignals (it console.log()s to STDOUT — which would
|
|
68
|
+
// corrupt the hook's single-JSON stdout contract; we inline a Set-merge).
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
function extractSignalsPure(prompt) {
|
|
71
|
+
const corpus = String(prompt || '');
|
|
72
|
+
const lower = corpus.toLowerCase();
|
|
73
|
+
const errorHit = /\b(error|exception|fail(?:ed|ure)?)\b|错误|异常|报错|失败/i.test(lower);
|
|
74
|
+
|
|
75
|
+
let regexSignals = [];
|
|
76
|
+
let scoreSignals = [];
|
|
77
|
+
try {
|
|
78
|
+
const sig = require('./signals');
|
|
79
|
+
regexSignals = sig._extractRegex(corpus, lower, errorHit) || [];
|
|
80
|
+
scoreSignals = sig._extractKeywordScore(lower) || [];
|
|
81
|
+
} catch (_) {
|
|
82
|
+
// signals.js unreachable — degrade to no signals (local/Hub then no-op).
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Inline Set-merge (do NOT use sig._mergeSignals — it writes to stdout).
|
|
87
|
+
const merged = new Set();
|
|
88
|
+
for (const s of regexSignals) merged.add(s);
|
|
89
|
+
for (const s of scoreSignals) merged.add(s);
|
|
90
|
+
// 'stable_success_plateau' is the extractor's "nothing interesting" default;
|
|
91
|
+
// it carries no task content, so drop it to avoid a noise query.
|
|
92
|
+
merged.delete('stable_success_plateau');
|
|
93
|
+
return Array.from(merged);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// The closed-vocabulary extractors above only fire on the evolver's own corpus
|
|
97
|
+
// shapes (errors, specific feature-request phrasings). A normal task prompt
|
|
98
|
+
// ("add retry with backoff to the http client") yields NO closed-vocab signal,
|
|
99
|
+
// so on its own the recall hook would almost never fire for real coding work.
|
|
100
|
+
// Embedding-based semantic search wants the actual task WORDS, so we also add a
|
|
101
|
+
// token projection of the prompt. tokenize() drops stop-words and short tokens;
|
|
102
|
+
// buildSemanticQuery (inside fetchSemanticResults) caps the outgoing query to
|
|
103
|
+
// 12 terms, so this stays a bounded token-projection — never the verbatim
|
|
104
|
+
// prompt. Capped here too as defense-in-depth.
|
|
105
|
+
const MAX_QUERY_TOKENS = 12;
|
|
106
|
+
function buildSignalList(prompt) {
|
|
107
|
+
const coreSignals = extractSignalsPure(prompt);
|
|
108
|
+
let tokens = [];
|
|
109
|
+
try {
|
|
110
|
+
const { tokenize } = require('./selector');
|
|
111
|
+
// De-dup while preserving order, then cap.
|
|
112
|
+
const seen = new Set();
|
|
113
|
+
for (const t of tokenize(prompt)) {
|
|
114
|
+
if (!seen.has(t)) { seen.add(t); tokens.push(t); }
|
|
115
|
+
if (tokens.length >= MAX_QUERY_TOKENS) break;
|
|
116
|
+
}
|
|
117
|
+
} catch (_) { tokens = []; }
|
|
118
|
+
|
|
119
|
+
const merged = new Set();
|
|
120
|
+
for (const s of coreSignals) merged.add(s);
|
|
121
|
+
for (const t of tokens) merged.add(t);
|
|
122
|
+
return Array.from(merged);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
// Hub search — SEARCH-ONLY, credit-free. Returns the rows that clear the HIGH
|
|
127
|
+
// similarity band, best-effort self-suppressed, never spending a credit.
|
|
128
|
+
// ---------------------------------------------------------------------------
|
|
129
|
+
async function searchHub(signalList, timeoutMs) {
|
|
130
|
+
let hs, a2a;
|
|
131
|
+
try {
|
|
132
|
+
hs = require('./hubSearch');
|
|
133
|
+
a2a = require('./a2aProtocol');
|
|
134
|
+
} catch (_) {
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
// Honor the HUBSEARCH_SEMANTIC kill-switch the same way hubSearch() does:
|
|
138
|
+
// an operator who set it to false/0 to stop semantic Hub traffic must not
|
|
139
|
+
// have this hook keep issuing semantic GETs on every prompt (Bugbot #183
|
|
140
|
+
// medium). When disabled -> no Hub call, local genes only.
|
|
141
|
+
try { if (typeof hs.isSemanticEnabled === 'function' && !hs.isSemanticEnabled()) return []; } catch (_) {}
|
|
142
|
+
// Resolve the Hub URL via a2aProtocol.getHubUrl(), the canonical resolver
|
|
143
|
+
// that honors BOTH A2A_HUB_URL and the legacy EVOMAP_HUB_URL fallback.
|
|
144
|
+
// hubSearch.getHubUrl() reads only A2A_HUB_URL, so a node configured with the
|
|
145
|
+
// legacy var alone would silently skip recall while every other Hub feature
|
|
146
|
+
// (auth, heartbeat, memory) still worked (Bugbot #183 medium). Strip trailing
|
|
147
|
+
// slashes to match hubSearch's own normalization. Fall back to hs.getHubUrl()
|
|
148
|
+
// only if a2a is unavailable.
|
|
149
|
+
let hubUrl = '';
|
|
150
|
+
try {
|
|
151
|
+
hubUrl = (typeof a2a.getHubUrl === 'function' ? a2a.getHubUrl() : hs.getHubUrl()) || '';
|
|
152
|
+
hubUrl = hubUrl.replace(/\/+$/, '');
|
|
153
|
+
} catch (_) { hubUrl = ''; }
|
|
154
|
+
// Air-gapped / no Hub configured -> zero egress, local genes only.
|
|
155
|
+
if (!hubUrl) return [];
|
|
156
|
+
|
|
157
|
+
let headers = {};
|
|
158
|
+
try { headers = a2a.buildHubHeaders(); } catch (_) { headers = {}; }
|
|
159
|
+
|
|
160
|
+
let rows = [];
|
|
161
|
+
try {
|
|
162
|
+
// fetchSemanticResults already owns an AbortController bound to timeoutMs
|
|
163
|
+
// and returns [] on timeout/error/non-200 (hubSearch.js:160). It hits
|
|
164
|
+
// GET /a2a/assets/semantic-search?...&type=Gene -> genes only, no fetch,
|
|
165
|
+
// no credit. The query is a token-trimmed projection of the signals
|
|
166
|
+
// (buildSemanticQuery), NOT the verbatim prompt.
|
|
167
|
+
rows = await hs.fetchSemanticResults(hubUrl, headers, signalList, timeoutMs);
|
|
168
|
+
} catch (_) {
|
|
169
|
+
return [];
|
|
170
|
+
}
|
|
171
|
+
if (!Array.isArray(rows)) return [];
|
|
172
|
+
|
|
173
|
+
const minSim = getMinSim();
|
|
174
|
+
let selfId = '';
|
|
175
|
+
try { selfId = a2a.getNodeId() || ''; } catch (_) { selfId = ''; }
|
|
176
|
+
|
|
177
|
+
const out = [];
|
|
178
|
+
for (const r of rows) {
|
|
179
|
+
if (!r || typeof r !== 'object') continue;
|
|
180
|
+
const sim = Number(r._semantic_similarity);
|
|
181
|
+
if (!Number.isFinite(sim) || sim < minSim) continue; // drop drag-net matches
|
|
182
|
+
// Best-effort self-suppression: only when source_node_id is present (the
|
|
183
|
+
// semantic endpoint often omits it — do NOT treat absence as a hard gate).
|
|
184
|
+
if (selfId && r.source_node_id && r.source_node_id === selfId) continue;
|
|
185
|
+
out.push({
|
|
186
|
+
asset_id: r.asset_id || r.assetId || '',
|
|
187
|
+
source_node_id: r.source_node_id || '',
|
|
188
|
+
chain_id: r.chain_id || '',
|
|
189
|
+
similarity: sim,
|
|
190
|
+
title: r.short_title || r.nl_title || r.name || '',
|
|
191
|
+
summary: r.nl_summary || r.summary || '',
|
|
192
|
+
origin: 'hub',
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return out;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// ---------------------------------------------------------------------------
|
|
199
|
+
// Local genes — match against on-disk genes with a real signal-pattern hit.
|
|
200
|
+
// We use the EXPORTED scorers (scoreGene is NOT exported, and selectGene uses
|
|
201
|
+
// Math.random + env I/O so it's unsuitable). Require >=1 pattern hit so we
|
|
202
|
+
// inject only genes whose signals_match actually fire for this task, not
|
|
203
|
+
// bag-of-words near-misses.
|
|
204
|
+
// ---------------------------------------------------------------------------
|
|
205
|
+
function matchLocalGenes(signalList) {
|
|
206
|
+
let genes = [];
|
|
207
|
+
let sel;
|
|
208
|
+
try {
|
|
209
|
+
genes = require('./assetStore').loadGenes() || [];
|
|
210
|
+
sel = require('./selector');
|
|
211
|
+
} catch (_) {
|
|
212
|
+
return [];
|
|
213
|
+
}
|
|
214
|
+
if (!Array.isArray(genes) || genes.length === 0 || !sel) return [];
|
|
215
|
+
|
|
216
|
+
const out = [];
|
|
217
|
+
for (const gene of genes) {
|
|
218
|
+
if (!gene || gene.type !== 'Gene') continue;
|
|
219
|
+
const patterns = Array.isArray(gene.signals_match) ? gene.signals_match : [];
|
|
220
|
+
let hits = 0;
|
|
221
|
+
for (const p of patterns) {
|
|
222
|
+
try { if (sel.matchPatternToSignals(p, signalList)) hits++; } catch (_) { /* skip */ }
|
|
223
|
+
}
|
|
224
|
+
if (hits < 1) continue; // require a real pattern hit, not noise
|
|
225
|
+
let sem = 0;
|
|
226
|
+
try { sem = sel.scoreGeneSemantic(gene, signalList) || 0; } catch (_) { sem = 0; }
|
|
227
|
+
// Many genes (incl. genesis genes) carry no `summary`. Fall back to a terse
|
|
228
|
+
// projection of the strategy/avoid text or the matched signal patterns so
|
|
229
|
+
// the injected line is actionable rather than a dangling "...: " (caught by
|
|
230
|
+
// real-gene E2E where synthetic fixtures had summaries).
|
|
231
|
+
let summary = (gene.summary || '').toString().trim();
|
|
232
|
+
if (!summary && gene.strategy && typeof gene.strategy === 'object') {
|
|
233
|
+
const pieces = [];
|
|
234
|
+
if (Array.isArray(gene.strategy.steps)) pieces.push(gene.strategy.steps.slice(0, 3).join('; '));
|
|
235
|
+
if (typeof gene.strategy.approach === 'string') pieces.push(gene.strategy.approach);
|
|
236
|
+
summary = pieces.filter(Boolean).join(' — ').trim();
|
|
237
|
+
}
|
|
238
|
+
if (!summary) {
|
|
239
|
+
const pats = patterns
|
|
240
|
+
.map(p => String(p).split('|')[0]) // first alias of each multi-lang pattern
|
|
241
|
+
.filter(p => p && !p.startsWith('/'))
|
|
242
|
+
.slice(0, 4);
|
|
243
|
+
if (pats.length) summary = 'matches: ' + pats.join(', ');
|
|
244
|
+
}
|
|
245
|
+
out.push({
|
|
246
|
+
asset_id: gene.asset_id || '',
|
|
247
|
+
source_node_id: gene.source_node_id || gene.author_node_id || '',
|
|
248
|
+
chain_id: gene.chain_id || '',
|
|
249
|
+
// Map local score into a 0..1-ish band for ranking next to Hub similarity.
|
|
250
|
+
// hits dominate; semantic cosine breaks ties.
|
|
251
|
+
similarity: Math.min(1, 0.75 + 0.05 * hits + 0.1 * sem),
|
|
252
|
+
title: gene.id || gene.short_title || '',
|
|
253
|
+
summary,
|
|
254
|
+
origin: 'local',
|
|
255
|
+
_hits: hits,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
return out;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// ---------------------------------------------------------------------------
|
|
262
|
+
// Build the injected text. Distilled hint, NOT raw JSON. Each line uses
|
|
263
|
+
// nl_summary/title (always present in list/search responses) — never
|
|
264
|
+
// payload.strategy (often empty for distilled/sybil assets). Hard char ceiling.
|
|
265
|
+
// ---------------------------------------------------------------------------
|
|
266
|
+
// A candidate is "hollow" when it has neither a title nor a summary: there is
|
|
267
|
+
// nothing actionable to render (a dangling "Gene "": " helps no one). Hollow
|
|
268
|
+
// candidates are excluded from BOTH the injected text and the attribution log,
|
|
269
|
+
// so the log can never claim an asset was injected that never appeared in the
|
|
270
|
+
// hook context (Bugbot #183 low: log/inject must agree by construction).
|
|
271
|
+
function isRenderable(d) {
|
|
272
|
+
const title = (d && d.title ? String(d.title) : '').trim();
|
|
273
|
+
const summary = (d && d.summary ? String(d.summary) : '').trim();
|
|
274
|
+
return !!(title || summary);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
function buildInjectText(decided) {
|
|
278
|
+
const renderable = (decided || []).filter(isRenderable);
|
|
279
|
+
if (!renderable.length) return '';
|
|
280
|
+
const lines = ['[Evolver — relevant prior capability]'];
|
|
281
|
+
let anyPublished = false;
|
|
282
|
+
for (const d of renderable) {
|
|
283
|
+
const title = (d.title || '').toString().slice(0, 80);
|
|
284
|
+
const summary = (d.summary || '').toString().replace(/\s+/g, ' ').trim().slice(0, SUMMARY_CLIP);
|
|
285
|
+
const sim = d.similarity != null ? d.similarity.toFixed(2) : '?';
|
|
286
|
+
const idTag = d.asset_id ? `asset ${d.asset_id}` : 'local, unpublished';
|
|
287
|
+
if (d.asset_id) anyPublished = true;
|
|
288
|
+
lines.push(`- ${title ? `Gene "${title}"` : 'Gene'} (${idTag}, sim ${sim})${summary ? ': ' + summary : ''}`);
|
|
289
|
+
}
|
|
290
|
+
lines.push('A prior distilled approach may fit this task. Adapt it; verify before applying.');
|
|
291
|
+
if (anyPublished) lines.push('To reuse a published asset: `gep_reuse <asset_id>` (or `gep_recall`).');
|
|
292
|
+
const text = lines.join('\n');
|
|
293
|
+
return text.length > INJECT_CHAR_CEILING ? text.slice(0, INJECT_CHAR_CEILING) : text;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// ---------------------------------------------------------------------------
|
|
297
|
+
// Local reuse logging. Records WHICH assets were (would be) injected, keyed by
|
|
298
|
+
// a stable run_id derived from the session, so a later Stop hook can correlate
|
|
299
|
+
// "asset injected -> session outcome" LOCALLY. This is correlational/local
|
|
300
|
+
// only — it is NOT Hub credit and must not be promoted to one without sign-off.
|
|
301
|
+
// ---------------------------------------------------------------------------
|
|
302
|
+
function logInjections(decided, mode, runId, signalList) {
|
|
303
|
+
let logAssetCall;
|
|
304
|
+
try { ({ logAssetCall } = require('./assetCallLog')); } catch (_) { return; }
|
|
305
|
+
const action = mode === 'enforce' ? 'asset_inject' : 'asset_inject_shadow';
|
|
306
|
+
for (const d of decided) {
|
|
307
|
+
try {
|
|
308
|
+
logAssetCall({
|
|
309
|
+
run_id: runId,
|
|
310
|
+
action,
|
|
311
|
+
asset_id: d.asset_id || undefined,
|
|
312
|
+
asset_type: 'Gene',
|
|
313
|
+
source_node_id: d.source_node_id || undefined,
|
|
314
|
+
chain_id: d.chain_id || undefined,
|
|
315
|
+
score: d.similarity,
|
|
316
|
+
signals: signalList.slice(0, 8),
|
|
317
|
+
reason: d.origin === 'hub' ? 'hub_semantic_high_band' : 'local_gene_pattern_hit',
|
|
318
|
+
extra: { via: 'task_recall', attribution: 'correlational_local', origin: d.origin },
|
|
319
|
+
});
|
|
320
|
+
} catch (_) { /* logging is best-effort; never block injection */ }
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// ---------------------------------------------------------------------------
|
|
325
|
+
// Entry point of the core. Returns:
|
|
326
|
+
// { inject: bool, text: string|null, decided: [], dropped: number, signals: [] }
|
|
327
|
+
// inject is true ONLY in enforce mode with >=1 decided asset. In shadow we log
|
|
328
|
+
// but return inject:false. Throwing is acceptable — the hook entrypoint wraps
|
|
329
|
+
// this in try/.catch -> finish({}) (fail-open).
|
|
330
|
+
// ---------------------------------------------------------------------------
|
|
331
|
+
async function recallForTask(opts) {
|
|
332
|
+
const o = opts || {};
|
|
333
|
+
const mode = o.mode || getMode();
|
|
334
|
+
if (mode === 'off') return { inject: false, text: null, decided: [], dropped: 0, signals: [] };
|
|
335
|
+
|
|
336
|
+
const signalList = buildSignalList(o.prompt);
|
|
337
|
+
if (!signalList.length) return { inject: false, text: null, decided: [], dropped: 0, signals: [] };
|
|
338
|
+
|
|
339
|
+
// Do LOCAL gene work (synchronous disk I/O via loadGenes + ranking) BEFORE
|
|
340
|
+
// the Hub await, so it runs while the full budget is available — never after
|
|
341
|
+
// the Hub search has consumed most of the watchdog window (Bugbot #183
|
|
342
|
+
// medium: post-await local work could overrun the watchdog and spuriously
|
|
343
|
+
// skip injection). After the Hub await, only in-memory merge/text/log remain.
|
|
344
|
+
const localRows = matchLocalGenes(signalList);
|
|
345
|
+
|
|
346
|
+
// Bound the Hub call by the time REMAINING until the entrypoint's absolute
|
|
347
|
+
// deadline (passed as deadlineMs, ms-since-epoch), minus a safety margin for
|
|
348
|
+
// the in-memory post-processing + finish(). If too little remains, skip the
|
|
349
|
+
// Hub call (local genes still apply). Falls back to the static timeoutMs when
|
|
350
|
+
// no deadline is supplied (e.g. unit tests / non-hook callers).
|
|
351
|
+
const POST_AWAIT_SAFETY_MS = 150;
|
|
352
|
+
let hubBudget = Number.isFinite(o.timeoutMs) && o.timeoutMs > 0 ? o.timeoutMs : 2000;
|
|
353
|
+
if (Number.isFinite(o.deadlineMs)) {
|
|
354
|
+
const remaining = o.deadlineMs - Date.now() - POST_AWAIT_SAFETY_MS;
|
|
355
|
+
hubBudget = Math.min(hubBudget, remaining);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
// Hub (search-only, credit-free), only if there's a usable budget left.
|
|
359
|
+
const hubRows = hubBudget >= 300 ? await searchHub(signalList, hubBudget) : [];
|
|
360
|
+
|
|
361
|
+
const seen = new Set();
|
|
362
|
+
const candidates = [];
|
|
363
|
+
let dropped = 0;
|
|
364
|
+
for (const r of [...hubRows, ...localRows]) {
|
|
365
|
+
const key = r.asset_id || `${r.origin}:${r.title}`;
|
|
366
|
+
if (key && seen.has(key)) { dropped++; continue; } // de-dup local vs hub
|
|
367
|
+
if (key) seen.add(key);
|
|
368
|
+
candidates.push(r);
|
|
369
|
+
}
|
|
370
|
+
candidates.sort((a, b) => (b.similarity || 0) - (a.similarity || 0));
|
|
371
|
+
|
|
372
|
+
const topN = candidates.slice(0, getMaxInject());
|
|
373
|
+
dropped += Math.max(0, candidates.length - topN.length);
|
|
374
|
+
|
|
375
|
+
// Filter out hollow candidates ONCE, so the injected text and the attribution
|
|
376
|
+
// log operate on the exact same set — the log can never claim an asset was
|
|
377
|
+
// injected that wasn't rendered into the hook context (Bugbot #183 low).
|
|
378
|
+
const decided = topN.filter(isRenderable);
|
|
379
|
+
dropped += topN.length - decided.length;
|
|
380
|
+
if (!decided.length) return { inject: false, text: null, decided: [], dropped, signals: signalList };
|
|
381
|
+
|
|
382
|
+
const text = buildInjectText(decided);
|
|
383
|
+
if (!text) return { inject: false, text: null, decided: [], dropped, signals: signalList };
|
|
384
|
+
|
|
385
|
+
const runId = o.runId || ('recall:' + (o.sessionId || 'unknown'));
|
|
386
|
+
logInjections(decided, mode, runId, signalList);
|
|
387
|
+
|
|
388
|
+
// SHADOW returns the computed text (for tests/inspection) but inject:false —
|
|
389
|
+
// the entrypoint only injects when inject is true (enforce).
|
|
390
|
+
return {
|
|
391
|
+
inject: mode === 'enforce',
|
|
392
|
+
text,
|
|
393
|
+
decided,
|
|
394
|
+
dropped,
|
|
395
|
+
signals: signalList,
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
module.exports = {
|
|
400
|
+
recallForTask,
|
|
401
|
+
// exported for unit tests:
|
|
402
|
+
getMode,
|
|
403
|
+
getMinSim,
|
|
404
|
+
getMaxInject,
|
|
405
|
+
extractSignalsPure,
|
|
406
|
+
buildSignalList,
|
|
407
|
+
buildInjectText,
|
|
408
|
+
_internals: { searchHub, matchLocalGenes, logInjections },
|
|
409
|
+
};
|