@evomap/evolver 1.88.3 → 1.89.0
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 +1123 -0
- package/README.md +86 -543
- package/README.public.md +594 -0
- package/SECURITY.md +108 -0
- package/assets/gep/events.jsonl +3 -0
- package/examples/atp-consumer-quickstart.md +100 -0
- package/examples/hello-world.md +38 -0
- package/index.js +30 -1
- package/package.json +5 -15
- package/proxy-package.json +39 -0
- package/public.manifest.json +141 -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 +434 -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/gep/a2aProtocol.js +4395 -1
- package/src/gep/assetCallLog.js +30 -2
- 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/oauthLogin.js +143 -0
- 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/schemas/capsule.js +26 -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 -0
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +99 -1
- package/src/proxy/index.js +36 -6
- package/src/proxy/inject.js +52 -1
- package/src/proxy/trace/extractor.js +534 -1
- package/src/proxy/trace/usage.js +105 -0
- package/CONTRIBUTING.md +0 -11
- package/assets/cover.png +0 -0
- 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/assets/gep/{genes.seed.json → genes.json} +0 -0
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
package/src/gep/strategy.js
CHANGED
|
@@ -1 +1,136 @@
|
|
|
1
|
-
var _0x3f6400=_0x25d5;(function(_0x52592e,_0x2287cc){var _0x7ef369=_0x25d5,_0x32ca9a=_0x52592e();while(!![]){try{var _0x4f9ba1=-parseInt(_0x7ef369(0xd8,'\x58\x32\x38\x24'))/(0x92b+-0xc82+0x6b*0x8)*(parseInt(_0x7ef369(0x164,'\x23\x65\x6a\x4d'))/(-0x23bd+-0x2512+0x1*0x48d1))+-parseInt(_0x7ef369(0x18a,'\x50\x72\x46\x55'))/(-0x1b06+-0x2513*0x1+0x1*0x401c)*(-parseInt(_0x7ef369(0x1be,'\x6c\x76\x78\x46'))/(-0x591*0x2+0x13c4+-0x89e))+parseInt(_0x7ef369(0x1ae,'\x5d\x35\x39\x6a'))/(0xc01+-0x74e*-0x1+-0x66e*0x3)+-parseInt(_0x7ef369(0x1af,'\x39\x76\x25\x50'))/(-0x1db1*-0x1+0x4*0x8e7+0x3d7*-0x11)+-parseInt(_0x7ef369(0x156,'\x6e\x4b\x4b\x71'))/(-0x17b2+-0x2*0xc5b+0x306f)+parseInt(_0x7ef369(0xed,'\x23\x65\x6a\x4d'))/(-0x26ec+-0x15d+0x2851)*(parseInt(_0x7ef369(0x123,'\x77\x6e\x6a\x63'))/(-0x1d*-0x8b+0x9*0x2c9+0x3b5*-0xb))+-parseInt(_0x7ef369(0x1a4,'\x6e\x37\x59\x31'))/(0xd03*-0x3+0x133f+0x1*0x13d4)*(-parseInt(_0x7ef369(0x1b6,'\x58\x32\x38\x24'))/(-0xb*0xd+0x23a4*-0x1+0x243e));if(_0x4f9ba1===_0x2287cc)break;else _0x32ca9a['push'](_0x32ca9a['shift']());}catch(_0x15ec78){_0x32ca9a['push'](_0x32ca9a['shift']());}}}(_0x5895,0x1*0x7b54+-0x512c4+0x5f*0x13b8));var _0x578dba=(function(){var _0x5f1cdd=_0x25d5,_0x1d1301={};_0x1d1301[_0x5f1cdd(0x15a,'\x46\x75\x31\x73')]=_0x5f1cdd(0x1c5,'\x6e\x4b\x4b\x71')+_0x5f1cdd(0x15c,'\x4d\x68\x4c\x72'),_0x1d1301[_0x5f1cdd(0x145,'\x50\x72\x46\x55')]=_0x5f1cdd(0x18b,'\x33\x55\x64\x55'),_0x1d1301[_0x5f1cdd(0xe7,'\x77\x6d\x71\x47')]=_0x5f1cdd(0x1ca,'\x54\x7a\x69\x4d')+_0x5f1cdd(0x12d,'\x5a\x28\x42\x75')+'\x6a\x73\x6f\x6e',_0x1d1301['\x62\x74\x51\x68\x67']=_0x5f1cdd(0x1c6,'\x37\x72\x4d\x6b')+'\x6e',_0x1d1301[_0x5f1cdd(0x1ce,'\x6e\x37\x59\x31')]=function(_0xa2b837,_0x398390){return _0xa2b837<_0x398390;},_0x1d1301[_0x5f1cdd(0x199,'\x71\x72\x5a\x50')]=_0x5f1cdd(0xf4,'\x46\x75\x31\x73'),_0x1d1301[_0x5f1cdd(0x1c9,'\x6e\x4b\x4b\x71')]=function(_0x34a192,_0x32a51f){return _0x34a192===_0x32a51f;},_0x1d1301[_0x5f1cdd(0xcf,'\x50\x72\x46\x55')]=_0x5f1cdd(0x14c,'\x38\x76\x26\x2a'),_0x1d1301[_0x5f1cdd(0x10d,'\x32\x51\x64\x63')]=_0x5f1cdd(0x122,'\x5a\x28\x42\x75');var _0x359a61=_0x1d1301,_0x4f7311=!![];return function(_0xa0a88d,_0x5618cc){var _0x5d2d84=_0x4f7311?function(){var _0x229f10=_0x25d5,_0x125394={'\x54\x41\x52\x6f\x49':_0x359a61[_0x229f10(0x12e,'\x75\x4b\x67\x56')],'\x54\x5a\x48\x72\x6c':_0x359a61[_0x229f10(0x16e,'\x43\x48\x64\x32')],'\x47\x6b\x79\x75\x6d':_0x359a61[_0x229f10(0x1a7,'\x53\x36\x6f\x62')],'\x73\x59\x55\x65\x4e':_0x359a61[_0x229f10(0xf2,'\x71\x72\x5a\x50')],'\x6f\x4f\x62\x50\x4e':function(_0x5235de,_0x2b1f35){var _0x15aa32=_0x229f10;return _0x359a61[_0x15aa32(0x1bb,'\x39\x4f\x4d\x44')](_0x5235de,_0x2b1f35);},'\x7a\x49\x4a\x76\x65':_0x359a61['\x6c\x52\x6c\x6a\x69']};if(_0x359a61[_0x229f10(0x189,'\x40\x46\x76\x51')](_0x359a61[_0x229f10(0x119,'\x47\x7a\x77\x79')],_0x359a61[_0x229f10(0x1a9,'\x32\x7a\x7a\x39')])){if(_0x5618cc){if(_0x359a61[_0x229f10(0x101,'\x33\x55\x64\x55')]===_0x229f10(0x173,'\x57\x62\x38\x70'))return _0x78c6[_0x229f10(0x1bc,'\x33\x5e\x49\x6b')]()[_0x229f10(0x179,'\x43\x48\x64\x32')](_0x229f10(0x1b7,'\x57\x75\x42\x30')+_0x229f10(0x166,'\x28\x42\x6c\x29'))['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x229f10(0x131,'\x26\x74\x69\x29')+'\x74\x6f\x72'](_0x2a1ca2)[_0x229f10(0x163,'\x77\x6e\x6a\x63')](_0x125394[_0x229f10(0x136,'\x54\x7a\x69\x4d')]);else{var _0x253e8b=_0x5618cc['\x61\x70\x70\x6c\x79'](_0xa0a88d,arguments);return _0x5618cc=null,_0x253e8b;}}}else{var _0x2201d3=_0x4dd01d[_0x229f10(0x161,'\x76\x37\x2a\x23')](_0x52ad59,'\x2e\x2e','\x2e\x2e',_0x125394[_0x229f10(0xeb,'\x28\x56\x56\x74')],_0x125394[_0x229f10(0xd7,'\x34\x40\x6e\x53')]),_0x15b36f=_0x1680a4[_0x229f10(0x19a,'\x47\x7a\x77\x79')](_0x5031c1,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x125394['\x54\x5a\x48\x72\x6c'],_0x125394[_0x229f10(0x104,'\x77\x6e\x6a\x63')],_0x125394[_0x229f10(0x16f,'\x37\x72\x4d\x6b')]),_0xcbaf6d=[_0x2201d3,_0x15b36f];for(var _0x38f241=0x190c+-0x2277+0x96b;_0x125394[_0x229f10(0x19b,'\x28\x42\x6c\x29')](_0x38f241,_0xcbaf6d[_0x229f10(0x162,'\x43\x48\x64\x32')]);_0x38f241++){if(_0x4dadcd[_0x229f10(0x147,'\x6c\x53\x61\x44')+'\x6e\x63'](_0xcbaf6d[_0x38f241])){var _0x4dceeb=_0x2fb4ee[_0x229f10(0x114,'\x5d\x35\x39\x6a')](_0x4d1e44[_0x229f10(0xe1,'\x75\x4b\x67\x56')+_0x229f10(0xd1,'\x67\x35\x58\x51')](_0xcbaf6d[_0x38f241],_0x125394[_0x229f10(0x18c,'\x37\x37\x6e\x28')]));return _0x4dceeb&&_0x1664b9[_0x229f10(0xca,'\x71\x72\x5a\x50')](_0x4dceeb[_0x229f10(0x137,'\x47\x7a\x77\x79')+'\x6e\x74'])?_0x4dceeb['\x63\x79\x63\x6c\x65\x43\x6f\x75'+'\x6e\x74']:0x1b*0x16f+0x46*-0x1f+-0x1e3b*0x1;}}}}:function(){};return _0x4f7311=![],_0x5d2d84;};}()),_0xb0164b=_0x578dba(this,function(){var _0x35af95=_0x25d5;return _0xb0164b[_0x35af95(0x149,'\x28\x56\x56\x74')]()['\x73\x65\x61\x72\x63\x68'](_0x35af95(0x10b,'\x50\x29\x66\x4b')+_0x35af95(0x176,'\x50\x72\x46\x55'))[_0x35af95(0xd2,'\x4d\x68\x4c\x72')]()[_0x35af95(0x125,'\x47\x7a\x77\x79')+_0x35af95(0x17f,'\x5b\x6c\x45\x21')](_0xb0164b)[_0x35af95(0x12a,'\x36\x44\x43\x36')]('\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x35af95(0xd4,'\x34\x64\x4a\x34'));});_0xb0164b();function _0x25d5(_0x8e3c46,_0x1de77e){_0x8e3c46=_0x8e3c46-(0x1*-0x1285+0x212b*-0x1+0x3477);var _0x24141f=_0x5895();var _0x4af5c0=_0x24141f[_0x8e3c46];if(_0x25d5['\x51\x48\x75\x6a\x4f\x43']===undefined){var _0x29f4b0=function(_0x3d4e0d){var _0x38a162='\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';var _0x120212='',_0x3284d0='',_0x34040d=_0x120212+_0x29f4b0,_0x77df2d=(''+function(){return 0x57a+-0x24c+-0x32e;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1932*0x1+-0x21d1+0x3b04);for(var _0x3918dc=0xfb+0xf26+-0x1021,_0x2b073b,_0x5c17a8,_0x5895f4=0x5d1*-0x5+0x1af6+0x21f*0x1;_0x5c17a8=_0x3d4e0d['\x63\x68\x61\x72\x41\x74'](_0x5895f4++);~_0x5c17a8&&(_0x2b073b=_0x3918dc%(0x692+-0xe*-0x76+-0xd02)?_0x2b073b*(-0x38f*-0x4+0x4+0x100*-0xe)+_0x5c17a8:_0x5c17a8,_0x3918dc++%(0x8f6+-0x81e+-0xd4*0x1))?_0x120212+=_0x77df2d||_0x34040d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5895f4+(-0x2374+0xe17+0x1*0x1567))-(0x22a9+0x1e88+-0x4127*0x1)!==0x181c+-0x417*0x9+0xcb3?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x294+0x15*0xa8+-0xf5d&_0x2b073b>>(-(-0x22d4+-0x3b1+0x2687)*_0x3918dc&0x24c9+-0x59+0x76*-0x4f)):_0x3918dc:0xb38*0x1+0x1502+-0x203a){_0x5c17a8=_0x38a162['\x69\x6e\x64\x65\x78\x4f\x66'](_0x5c17a8);}for(var _0x29a491=-0x230e+0x743+0x1bcb,_0x220951=_0x120212['\x6c\x65\x6e\x67\x74\x68'];_0x29a491<_0x220951;_0x29a491++){_0x3284d0+='\x25'+('\x30\x30'+_0x120212['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x29a491)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x2414+-0x131*0xa+-0x181a))['\x73\x6c\x69\x63\x65'](-(0x1*-0x27+-0x1*-0xcf4+-0xccb*0x1));}return decodeURIComponent(_0x3284d0);};var _0x37d6e1=function(_0xa76f20,_0x4723b4){var _0x223d87=[],_0x118c80=0x1828*0x1+0x64b+-0x617*0x5,_0x756b41,_0x1c6b91='';_0xa76f20=_0x29f4b0(_0xa76f20);var _0x8068d3;for(_0x8068d3=-0x3da+0x26c4+-0x22ea;_0x8068d3<-0x18*0x12d+0x74*-0x47+-0xf59*-0x4;_0x8068d3++){_0x223d87[_0x8068d3]=_0x8068d3;}for(_0x8068d3=-0x179f+0x860+0xf3f;_0x8068d3<-0xb0f+0x2a8*-0x3+0x1407;_0x8068d3++){_0x118c80=(_0x118c80+_0x223d87[_0x8068d3]+_0x4723b4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x8068d3%_0x4723b4['\x6c\x65\x6e\x67\x74\x68']))%(0x641+-0x1452+0xf11),_0x756b41=_0x223d87[_0x8068d3],_0x223d87[_0x8068d3]=_0x223d87[_0x118c80],_0x223d87[_0x118c80]=_0x756b41;}_0x8068d3=-0x7c*0x9+-0x247d+0x28d9,_0x118c80=0x2*0x98f+0xa*0x1a5+0x472*-0x8;for(var _0x50c5e0=-0x411*-0x4+-0x1*0x1ae3+-0xa9f*-0x1;_0x50c5e0<_0xa76f20['\x6c\x65\x6e\x67\x74\x68'];_0x50c5e0++){_0x8068d3=(_0x8068d3+(0x9c2*-0x1+0x1d65+-0x1*0x13a2))%(0x984+-0x30*0x9e+0x182*0xe),_0x118c80=(_0x118c80+_0x223d87[_0x8068d3])%(0x11*0x56+-0x5f*-0x44+-0x1df2),_0x756b41=_0x223d87[_0x8068d3],_0x223d87[_0x8068d3]=_0x223d87[_0x118c80],_0x223d87[_0x118c80]=_0x756b41,_0x1c6b91+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0xa76f20['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x50c5e0)^_0x223d87[(_0x223d87[_0x8068d3]+_0x223d87[_0x118c80])%(0x26*0x5d+0x3c2+0x1*-0x1090)]);}return _0x1c6b91;};_0x25d5['\x58\x63\x74\x45\x79\x46']=_0x37d6e1,_0x25d5['\x77\x6f\x45\x55\x4a\x62']={},_0x25d5['\x51\x48\x75\x6a\x4f\x43']=!![];}var _0x52664d=_0x24141f[0x1*0x1b09+-0x11ea+-0x91f],_0x4a03dc=_0x8e3c46+_0x52664d,_0x33885b=_0x25d5['\x77\x6f\x45\x55\x4a\x62'][_0x4a03dc];if(!_0x33885b){if(_0x25d5['\x54\x71\x79\x6f\x58\x6e']===undefined){var _0x1c67c6=function(_0x5a5ed9){this['\x5a\x55\x61\x6a\x6e\x61']=_0x5a5ed9,this['\x46\x67\x68\x4d\x4c\x44']=[0x60a+-0x1*-0x649+-0x53*0x26,0x4d1*0x8+0xf*-0x173+-0x10cb,-0x15ba+-0xa3*0x1d+0x2831],this['\x47\x53\x76\x4f\x49\x55']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x59\x68\x75\x48\x64\x59']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x55\x49\x70\x4d\x55\x55']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x1c67c6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x66\x49\x58\x4e\x5a\x7a']=function(){var _0x1f85d2=new RegExp(this['\x59\x68\x75\x48\x64\x59']+this['\x55\x49\x70\x4d\x55\x55']),_0x41bf42=_0x1f85d2['\x74\x65\x73\x74'](this['\x47\x53\x76\x4f\x49\x55']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x46\x67\x68\x4d\x4c\x44'][-0x817+0x1*-0x1459+0x1c71]:--this['\x46\x67\x68\x4d\x4c\x44'][-0xe1c+-0x560+0x137c];return this['\x5a\x59\x57\x49\x46\x55'](_0x41bf42);},_0x1c67c6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x5a\x59\x57\x49\x46\x55']=function(_0x2bbc6a){if(!Boolean(~_0x2bbc6a))return _0x2bbc6a;return this['\x70\x79\x4c\x45\x4d\x52'](this['\x5a\x55\x61\x6a\x6e\x61']);},_0x1c67c6['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x70\x79\x4c\x45\x4d\x52']=function(_0x297312){for(var _0x5e5cfc=0x23d*0x1+-0xacd+0x2*0x448,_0x28ffa4=this['\x46\x67\x68\x4d\x4c\x44']['\x6c\x65\x6e\x67\x74\x68'];_0x5e5cfc<_0x28ffa4;_0x5e5cfc++){this['\x46\x67\x68\x4d\x4c\x44']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x28ffa4=this['\x46\x67\x68\x4d\x4c\x44']['\x6c\x65\x6e\x67\x74\x68'];}return _0x297312(this['\x46\x67\x68\x4d\x4c\x44'][0x11f9+0x166b+-0x2864]);},(''+function(){return-0x10b2+0xfb*0x16+-0x8*0x9c;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1*0x1343+0x4*-0x199+0x19a8)&&new _0x1c67c6(_0x25d5)['\x66\x49\x58\x4e\x5a\x7a'](),_0x25d5['\x54\x71\x79\x6f\x58\x6e']=!![];}_0x4af5c0=_0x25d5['\x58\x63\x74\x45\x79\x46'](_0x4af5c0,_0x1de77e),_0x25d5['\x77\x6f\x45\x55\x4a\x62'][_0x4a03dc]=_0x4af5c0;}else _0x4af5c0=_0x33885b;return _0x4af5c0;}var _0x46de85=require('\x66\x73'),_0x4bad95=require(_0x3f6400(0x124,'\x57\x75\x42\x30')),_0x17e87d={};_0x17e87d[_0x3f6400(0x1cd,'\x58\x32\x38\x24')]=0.2,_0x17e87d[_0x3f6400(0xe4,'\x6e\x4b\x4b\x71')]=0.2,_0x17e87d[_0x3f6400(0x168,'\x32\x7a\x7a\x39')]=0.5,_0x17e87d[_0x3f6400(0xcd,'\x75\x4b\x67\x56')]=0.1,_0x17e87d[_0x3f6400(0xc7,'\x39\x76\x25\x50')+_0x3f6400(0x182,'\x57\x75\x42\x30')+'\x6f\x6c\x64']=0.5,_0x17e87d[_0x3f6400(0x150,'\x33\x55\x64\x55')]=_0x3f6400(0x170,'\x5a\x28\x42\x75'),_0x17e87d[_0x3f6400(0x132,'\x32\x7a\x7a\x39')+_0x3f6400(0x1ac,'\x6c\x76\x78\x46')]=_0x3f6400(0x110,'\x36\x44\x43\x36')+_0x3f6400(0x19c,'\x36\x44\x43\x36')+'\x2e\x20\x53\x74\x65\x61\x64\x79'+'\x20\x67\x72\x6f\x77\x74\x68\x20'+_0x3f6400(0xde,'\x75\x4b\x67\x56')+_0x3f6400(0x11a,'\x76\x37\x2a\x23');var _0xbf2d89={};_0xbf2d89[_0x3f6400(0x15d,'\x71\x72\x5a\x50')]=0.05,_0xbf2d89[_0x3f6400(0x106,'\x28\x42\x6c\x29')]=0.1,_0xbf2d89[_0x3f6400(0x11d,'\x38\x76\x26\x2a')]=0.8,_0xbf2d89[_0x3f6400(0x169,'\x50\x72\x46\x55')]=0.05,_0xbf2d89['\x72\x65\x70\x61\x69\x72\x4c\x6f'+_0x3f6400(0x135,'\x75\x4b\x67\x56')+_0x3f6400(0x160,'\x34\x64\x4a\x34')]=0.3,_0xbf2d89[_0x3f6400(0xff,'\x5b\x6c\x45\x21')]=_0x3f6400(0xdc,'\x73\x26\x56\x59')+_0x3f6400(0x172,'\x76\x37\x2a\x23'),_0xbf2d89[_0x3f6400(0x1a1,'\x52\x70\x42\x6d')+_0x3f6400(0x19d,'\x38\x76\x26\x2a')]=_0x3f6400(0x1cc,'\x71\x72\x5a\x50')+_0x3f6400(0xf0,'\x71\x72\x5a\x50')+'\x2e\x20\x4d\x61\x78\x69\x6d\x69'+_0x3f6400(0xd0,'\x50\x72\x46\x55')+_0x3f6400(0xee,'\x67\x35\x58\x51')+_0x3f6400(0xf8,'\x75\x4b\x67\x56')+_0x3f6400(0x154,'\x40\x46\x76\x51')+'\x2e';var _0x37f075={};_0x37f075[_0x3f6400(0x141,'\x5a\x28\x42\x75')]=0.4,_0x37f075[_0x3f6400(0xe4,'\x6e\x4b\x4b\x71')]=0.35,_0x37f075[_0x3f6400(0xe0,'\x39\x4f\x4d\x44')]=0.2,_0x37f075[_0x3f6400(0x1b9,'\x37\x72\x4d\x6b')]=0.05,_0x37f075[_0x3f6400(0x188,'\x5b\x6c\x45\x21')+_0x3f6400(0x140,'\x71\x72\x5a\x50')+_0x3f6400(0x15e,'\x32\x7a\x7a\x39')]=0.7,_0x37f075['\x6c\x61\x62\x65\x6c']=_0x3f6400(0x144,'\x36\x44\x43\x36')+'\x67',_0x37f075[_0x3f6400(0xf5,'\x28\x42\x6c\x29')+_0x3f6400(0x13d,'\x54\x7a\x69\x4d')]=_0x3f6400(0x12f,'\x37\x72\x4d\x6b')+_0x3f6400(0x17c,'\x57\x75\x42\x30')+_0x3f6400(0x1bf,'\x23\x65\x6a\x4d')+'\x73\x20\x6f\x6e\x20\x73\x74\x61'+'\x62\x69\x6c\x69\x74\x79\x20\x61'+_0x3f6400(0xcb,'\x6e\x37\x59\x31')+_0x3f6400(0x16b,'\x28\x42\x6c\x29');var _0x19bfd0={};_0x19bfd0[_0x3f6400(0x133,'\x4a\x58\x53\x44')]=0.8,_0x19bfd0['\x6f\x70\x74\x69\x6d\x69\x7a\x65']=0.18,_0x19bfd0[_0x3f6400(0xf9,'\x79\x55\x4f\x30')]=0x0,_0x19bfd0[_0x3f6400(0xe8,'\x58\x32\x38\x24')]=0.02,_0x19bfd0['\x72\x65\x70\x61\x69\x72\x4c\x6f'+_0x3f6400(0x102,'\x77\x6d\x71\x47')+_0x3f6400(0x193,'\x50\x72\x46\x55')]=0x1,_0x19bfd0[_0x3f6400(0x17a,'\x76\x37\x2a\x23')]=_0x3f6400(0x16c,'\x28\x42\x6c\x29')+_0x3f6400(0xe5,'\x28\x56\x56\x74'),_0x19bfd0['\x64\x65\x73\x63\x72\x69\x70\x74'+_0x3f6400(0x130,'\x37\x37\x6e\x28')]=_0x3f6400(0x107,'\x37\x37\x6e\x28')+_0x3f6400(0xdb,'\x58\x32\x38\x24')+_0x3f6400(0xfa,'\x5a\x28\x42\x75')+'\x67\x20\x62\x65\x66\x6f\x72\x65'+_0x3f6400(0x17b,'\x38\x76\x26\x2a')+_0x3f6400(0x14e,'\x67\x35\x58\x51')+_0x3f6400(0x184,'\x77\x6e\x6a\x63');var _0x3a4667={};_0x3a4667['\x72\x65\x70\x61\x69\x72']=0.6,_0x3a4667[_0x3f6400(0x175,'\x77\x6d\x71\x47')]=0.22,_0x3a4667[_0x3f6400(0x1a3,'\x28\x56\x56\x74')]=0.15,_0x3a4667[_0x3f6400(0xe3,'\x36\x44\x43\x36')]=0.03,_0x3a4667[_0x3f6400(0x120,'\x26\x74\x69\x29')+_0x3f6400(0x105,'\x75\x48\x73\x6c')+'\x6f\x6c\x64']=0.8,_0x3a4667[_0x3f6400(0x116,'\x51\x55\x66\x5d')]=_0x3f6400(0xfe,'\x6c\x76\x78\x46')+_0x3f6400(0x1c7,'\x43\x48\x64\x32')+_0x3f6400(0xe2,'\x79\x55\x4f\x30'),_0x3a4667[_0x3f6400(0x194,'\x58\x32\x38\x24')+_0x3f6400(0x183,'\x32\x51\x64\x63')]=_0x3f6400(0x121,'\x76\x37\x2a\x23')+'\x63\x6c\x65\x73\x2e\x20\x50\x72'+_0x3f6400(0x12c,'\x5a\x28\x42\x75')+_0x3f6400(0x10f,'\x23\x65\x6a\x4d')+_0x3f6400(0x177,'\x47\x7a\x77\x79')+_0x3f6400(0xd6,'\x47\x7a\x77\x79')+_0x3f6400(0xdf,'\x28\x56\x56\x74')+_0x3f6400(0x1ab,'\x28\x71\x7a\x4f')+'\x67\x2e';var _0x135fa5={};_0x135fa5[_0x3f6400(0x117,'\x33\x55\x64\x55')]=0.55,_0x135fa5[_0x3f6400(0x1b1,'\x30\x36\x44\x62')]=0.25,_0x135fa5[_0x3f6400(0xe6,'\x5d\x35\x39\x6a')]=0.05,_0x135fa5[_0x3f6400(0x18f,'\x75\x48\x73\x6c')]=0.15,_0x135fa5['\x72\x65\x70\x61\x69\x72\x4c\x6f'+_0x3f6400(0xc8,'\x57\x62\x38\x70')+_0x3f6400(0x15f,'\x36\x44\x43\x36')]=0.9,_0x135fa5['\x6c\x61\x62\x65\x6c']=_0x3f6400(0x157,'\x5a\x28\x42\x75')+'\x74\x61\x74\x65',_0x135fa5[_0x3f6400(0x186,'\x57\x62\x38\x70')+_0x3f6400(0xd3,'\x37\x72\x4d\x6b')]=_0x3f6400(0x100,'\x71\x72\x5a\x50')+_0x3f6400(0xdd,'\x32\x51\x64\x63')+'\x74\x65\x64\x2e\x20\x4d\x61\x69'+_0x3f6400(0xf7,'\x33\x5e\x49\x6b')+_0x3f6400(0x13a,'\x77\x6d\x71\x47')+_0x3f6400(0xfc,'\x5b\x6c\x45\x21')+_0x3f6400(0x174,'\x47\x7a\x77\x79')+_0x3f6400(0x139,'\x28\x71\x7a\x4f')+_0x3f6400(0x1b4,'\x34\x40\x6e\x53')+_0x3f6400(0x129,'\x52\x70\x42\x6d');function _0x5895(){var _0x364b13=['\x78\x53\x6f\x6d\x57\x34\x44\x69\x6e\x43\x6f\x48\x57\x50\x4f\x47\x57\x4f\x70\x63\x50\x53\x6f\x77\x45\x71','\x57\x50\x4e\x64\x4b\x62\x70\x63\x4c\x74\x61','\x57\x4f\x78\x64\x52\x77\x30\x34','\x66\x4b\x4e\x63\x4f\x38\x6f\x7a\x57\x34\x57\x44\x70\x63\x79','\x69\x73\x74\x63\x4d\x6d\x6f\x33\x57\x51\x78\x64\x47\x63\x78\x63\x4c\x47','\x73\x6d\x6f\x72\x45\x38\x6b\x34\x57\x37\x68\x64\x4e\x61','\x62\x38\x6f\x37\x64\x61\x78\x63\x50\x53\x6b\x33\x44\x38\x6b\x4a\x57\x36\x66\x35','\x65\x43\x6b\x6f\x6a\x4e\x70\x64\x4b\x59\x70\x63\x51\x61','\x76\x6d\x6b\x39\x44\x4d\x79\x2f','\x64\x43\x6b\x32\x65\x4b\x33\x64\x53\x61','\x57\x51\x38\x4a\x57\x51\x71\x69\x69\x71','\x57\x34\x6c\x63\x56\x59\x65\x48\x57\x35\x56\x64\x52\x71','\x57\x36\x4e\x64\x50\x62\x37\x63\x48\x6d\x6b\x75','\x69\x57\x70\x64\x4c\x38\x6b\x69\x57\x52\x53','\x57\x34\x47\x69\x66\x48\x2f\x64\x56\x53\x6f\x51\x57\x52\x53','\x57\x51\x61\x37\x57\x51\x75\x62\x6b\x66\x5a\x64\x54\x30\x79','\x57\x37\x7a\x51\x57\x51\x57\x76\x6d\x33\x2f\x63\x4b\x38\x6b\x66','\x74\x43\x6f\x41\x45\x38\x6b\x57\x57\x37\x70\x64\x4c\x43\x6b\x6d\x57\x52\x34','\x57\x51\x34\x4f\x57\x37\x62\x74\x7a\x47','\x57\x51\x70\x64\x47\x6d\x6b\x71\x57\x37\x57','\x72\x6d\x6b\x54\x73\x31\x42\x63\x56\x6d\x6b\x63\x76\x6d\x6b\x67','\x57\x36\x57\x69\x63\x61\x78\x64\x56\x53\x6b\x5a\x57\x37\x7a\x65','\x57\x34\x31\x41\x57\x50\x71\x65\x67\x57','\x71\x43\x6b\x74\x66\x30\x5a\x64\x48\x73\x70\x63\x47\x61','\x57\x37\x50\x69\x65\x72\x30','\x6a\x57\x2f\x64\x4b\x43\x6b\x71\x57\x52\x34\x78\x57\x36\x78\x63\x56\x47','\x68\x6d\x6b\x62\x69\x6d\x6f\x51\x57\x52\x33\x64\x53\x43\x6b\x51\x57\x52\x50\x6b\x74\x38\x6b\x59','\x57\x35\x37\x63\x54\x49\x47','\x57\x35\x4a\x64\x49\x53\x6b\x57\x57\x37\x6e\x74\x57\x51\x35\x44\x57\x34\x65','\x42\x38\x6b\x74\x65\x38\x6f\x30\x67\x72\x2f\x64\x4e\x6d\x6f\x4d','\x68\x63\x37\x63\x49\x38\x6f\x4f\x57\x51\x46\x64\x48\x61','\x57\x37\x4e\x63\x54\x5a\x4c\x6f\x57\x35\x4c\x52\x41\x59\x65','\x57\x37\x66\x36\x57\x51\x71\x62\x62\x66\x46\x63\x56\x67\x69','\x57\x37\x7a\x6b\x57\x51\x75\x43\x65\x75\x52\x63\x4f\x59\x4b','\x67\x38\x6f\x49\x57\x35\x4e\x63\x49\x71\x75','\x57\x50\x2f\x63\x49\x6d\x6f\x6b\x57\x36\x52\x64\x48\x78\x72\x62\x57\x34\x30','\x45\x38\x6f\x33\x57\x50\x34','\x76\x43\x6b\x4e\x76\x75\x74\x63\x4f\x43\x6b\x63\x42\x43\x6b\x6b','\x7a\x53\x6b\x31\x68\x61\x43\x39\x57\x37\x6c\x63\x47\x38\x6f\x65','\x57\x36\x5a\x63\x54\x5a\x31\x38\x57\x34\x72\x52','\x57\x34\x33\x63\x48\x48\x39\x43\x57\x37\x4c\x43\x74\x72\x57','\x6d\x53\x6f\x51\x57\x35\x74\x63\x54\x47\x64\x64\x52\x53\x6b\x68\x42\x47','\x57\x4f\x61\x73\x74\x4c\x30\x61','\x6a\x58\x4e\x64\x4e\x6d\x6b\x70\x57\x51\x38\x4d\x57\x37\x2f\x63\x51\x61','\x57\x50\x53\x37\x57\x50\x38\x56\x6c\x57','\x41\x43\x6b\x68\x57\x34\x53\x53\x57\x52\x5a\x63\x4c\x53\x6f\x34\x57\x34\x30','\x57\x35\x46\x64\x4c\x53\x6b\x32\x57\x37\x4c\x79\x57\x50\x79\x6f\x57\x35\x79','\x57\x37\x74\x63\x47\x68\x7a\x5a\x63\x57','\x46\x38\x6f\x66\x57\x4f\x66\x34\x57\x37\x37\x64\x54\x57\x78\x63\x47\x57','\x57\x52\x30\x38\x43\x47','\x68\x53\x6b\x76\x57\x50\x79\x46\x79\x43\x6b\x39\x57\x52\x53','\x6e\x38\x6b\x71\x57\x34\x7a\x50\x57\x4f\x79\x71\x45\x38\x6b\x63\x57\x52\x43','\x57\x51\x50\x66\x57\x52\x47\x38\x57\x34\x5a\x63\x49\x31\x33\x64\x4d\x47','\x57\x36\x50\x57\x57\x51\x79\x6a\x67\x75\x57','\x57\x37\x39\x49\x65\x64\x4e\x64\x56\x71','\x57\x51\x52\x64\x4f\x4e\x39\x37\x57\x36\x39\x6d\x41\x59\x5a\x63\x52\x47','\x6a\x59\x52\x63\x4d\x6d\x6f\x2b\x57\x51\x68\x64\x47\x4d\x5a\x63\x4c\x57','\x45\x53\x6b\x49\x45\x6d\x6f\x34\x68\x57','\x64\x58\x4e\x64\x53\x53\x6b\x7a\x57\x36\x53\x67\x69\x4d\x46\x64\x49\x4b\x43','\x6c\x6d\x6b\x63\x57\x4f\x33\x63\x56\x67\x6c\x63\x54\x48\x76\x79','\x75\x49\x4b\x38\x57\x4f\x42\x64\x56\x71','\x57\x36\x4b\x6e\x69\x77\x52\x64\x55\x38\x6b\x36\x77\x38\x6f\x73','\x71\x43\x6f\x49\x57\x52\x47\x57\x6a\x61','\x75\x38\x6b\x2b\x76\x66\x56\x63\x4f\x6d\x6b\x65\x43\x43\x6b\x67','\x74\x38\x6f\x58\x45\x6d\x6b\x4d\x57\x37\x79','\x57\x37\x7a\x76\x57\x52\x70\x64\x51\x6d\x6b\x70\x63\x6d\x6f\x2f','\x57\x37\x6c\x64\x54\x75\x69\x34\x45\x38\x6b\x4d\x57\x37\x66\x7a','\x64\x53\x6f\x53\x57\x36\x4a\x63\x50\x48\x47','\x57\x35\x5a\x63\x55\x5a\x6d\x4c\x57\x35\x34','\x43\x6d\x6f\x6d\x57\x52\x50\x70\x57\x51\x71','\x57\x52\x79\x59\x43\x66\x6d\x4e\x57\x52\x79\x4a\x73\x61','\x67\x43\x6b\x6f\x57\x50\x61\x66\x7a\x43\x6b\x32\x57\x52\x65','\x57\x36\x7a\x62\x57\x4f\x4f\x42\x66\x53\x6b\x51\x74\x75\x79','\x57\x51\x79\x32\x42\x31\x30\x4c\x57\x51\x6d\x4a\x46\x57','\x57\x34\x6c\x63\x56\x63\x39\x4b\x78\x6d\x6b\x5a\x67\x53\x6b\x75\x6c\x48\x68\x64\x56\x63\x34','\x57\x34\x54\x48\x57\x52\x6d\x6a\x66\x65\x46\x64\x50\x4c\x71','\x57\x37\x57\x72\x61\x78\x46\x64\x52\x53\x6b\x39','\x57\x37\x64\x63\x48\x68\x6e\x67\x70\x47','\x57\x35\x56\x63\x49\x68\x35\x69\x68\x47','\x43\x43\x6b\x52\x77\x6d\x6f\x54\x57\x4f\x42\x64\x4d\x30\x52\x63\x4f\x47','\x57\x36\x42\x63\x49\x6d\x6f\x77\x57\x52\x30','\x57\x52\x44\x71\x57\x50\x57\x31\x57\x35\x46\x63\x4e\x61','\x42\x43\x6b\x38\x63\x57','\x61\x63\x46\x63\x4a\x47','\x57\x52\x65\x4c\x57\x36\x79','\x57\x35\x47\x65\x63\x72\x4e\x64\x50\x53\x6f\x4c\x57\x37\x61','\x57\x37\x39\x55\x57\x52\x61\x45\x70\x4a\x4f','\x63\x38\x6b\x79\x62\x4e\x70\x64\x47\x49\x4f','\x61\x48\x4a\x64\x55\x6d\x6f\x75\x57\x36\x47\x31\x6c\x33\x74\x64\x47\x71','\x57\x34\x44\x65\x57\x51\x70\x64\x4e\x53\x6b\x56','\x57\x35\x46\x64\x55\x53\x6f\x61\x57\x52\x57','\x71\x53\x6f\x4d\x76\x38\x6b\x72\x57\x35\x65','\x41\x38\x6b\x2b\x61\x71\x53\x35\x57\x37\x52\x63\x48\x38\x6f\x76','\x75\x53\x6b\x50\x79\x53\x6f\x57\x61\x68\x76\x41','\x6e\x63\x64\x63\x4c\x68\x42\x63\x4a\x57','\x57\x4f\x4a\x63\x56\x43\x6b\x6f\x57\x36\x56\x64\x52\x4b\x65','\x57\x51\x37\x63\x54\x53\x6b\x42\x57\x37\x4e\x64\x54\x62\x33\x64\x4b\x53\x6f\x63','\x7a\x38\x6b\x65\x6d\x38\x6f\x65\x69\x71','\x57\x35\x35\x34\x57\x52\x71\x44\x6f\x47','\x57\x50\x4e\x63\x48\x43\x6f\x68\x57\x37\x52\x64\x4d\x47','\x57\x35\x50\x30\x57\x52\x4f\x6a\x68\x4c\x33\x63\x4f\x32\x6d','\x76\x53\x6b\x5a\x45\x38\x6f\x57\x62\x4e\x31\x41','\x57\x34\x75\x70\x77\x4a\x64\x64\x50\x43\x6f\x57\x57\x36\x62\x6f','\x42\x4e\x71\x6a\x57\x36\x76\x49','\x6c\x71\x78\x64\x4a\x6d\x6f\x6e\x57\x36\x4f\x47\x57\x36\x4a\x63\x52\x71','\x57\x35\x68\x64\x4c\x43\x6b\x32\x57\x37\x4c\x42\x57\x50\x48\x75\x57\x35\x61','\x68\x6d\x6f\x34\x6f\x43\x6b\x34','\x69\x72\x4a\x64\x4c\x53\x6b\x71\x57\x52\x34\x6d\x57\x37\x37\x63\x55\x47','\x57\x37\x6c\x64\x4f\x64\x52\x63\x48\x61','\x57\x36\x62\x55\x57\x52\x38\x6c\x6b\x74\x4f','\x57\x34\x79\x61\x67\x62\x70\x64\x50\x47','\x62\x6d\x6f\x71\x45\x53\x6b\x32\x57\x36\x56\x64\x4b\x38\x6f\x79\x57\x52\x4f','\x57\x36\x48\x61\x61\x4c\x78\x64\x4a\x58\x61\x45\x57\x50\x65','\x57\x37\x6c\x64\x4b\x30\x75\x58\x7a\x53\x6b\x39\x57\x36\x71\x79','\x57\x36\x4e\x64\x52\x53\x6b\x5a\x57\x37\x4c\x76','\x57\x34\x4f\x4f\x57\x36\x65','\x67\x5a\x6c\x63\x4c\x4c\x42\x63\x4c\x6d\x6b\x2f','\x7a\x53\x6f\x35\x57\x4f\x71\x68','\x57\x36\x76\x7a\x6d\x72\x33\x64\x4e\x48\x30\x6d\x57\x50\x43','\x57\x51\x46\x64\x55\x64\x65','\x68\x43\x6b\x72\x66\x67\x74\x63\x4a\x57','\x57\x35\x33\x64\x4c\x6d\x6b\x5a\x57\x34\x72\x61','\x74\x67\x69\x70\x57\x36\x58\x4a\x57\x37\x64\x63\x52\x53\x6f\x32','\x57\x36\x56\x64\x56\x38\x6b\x73\x73\x31\x43','\x57\x34\x57\x49\x57\x36\x70\x63\x54\x6d\x6b\x35\x43\x43\x6f\x41\x57\x51\x75','\x57\x34\x76\x70\x57\x52\x43\x31\x64\x61','\x61\x38\x6f\x48\x69\x6d\x6f\x36\x6c\x76\x6a\x45\x69\x6d\x6b\x64','\x57\x35\x33\x63\x56\x5a\x57\x56\x57\x34\x64\x64\x50\x47','\x41\x6d\x6f\x72\x57\x52\x4f\x75\x6e\x57','\x57\x37\x34\x42\x65\x78\x6c\x64\x52\x6d\x6b\x71\x77\x53\x6f\x61','\x57\x34\x4a\x64\x48\x6d\x6f\x78','\x6f\x57\x61\x4b\x57\x4f\x74\x64\x4b\x68\x30\x4e','\x46\x6d\x6f\x68\x57\x4f\x6d\x77\x6d\x38\x6f\x52\x6b\x47\x65','\x61\x53\x6f\x4f\x6b\x38\x6b\x53\x77\x5a\x66\x6d\x65\x43\x6b\x4f\x73\x6d\x6b\x46\x57\x51\x30','\x74\x53\x6b\x56\x41\x33\x53','\x77\x6d\x6b\x39\x44\x47','\x7a\x38\x6f\x63\x57\x4f\x44\x2f\x57\x52\x4b\x2f\x46\x38\x6b\x65','\x67\x43\x6b\x74\x57\x52\x30\x45\x44\x38\x6b\x30\x57\x52\x4f\x59','\x57\x51\x58\x42\x57\x4f\x69\x37\x57\x34\x4a\x63\x4a\x31\x52\x64\x4c\x57','\x57\x4f\x47\x62\x57\x4f\x53\x50\x61\x71','\x76\x53\x6b\x35\x44\x68\x71\x5a\x57\x51\x6e\x59\x76\x61','\x57\x51\x4c\x4e\x57\x4f\x61\x2b\x57\x35\x43','\x6e\x47\x78\x64\x4a\x6d\x6b\x6d\x57\x51\x79\x74\x57\x37\x75','\x57\x50\x70\x63\x4e\x6d\x6b\x6a\x57\x34\x4a\x64\x4b\x57','\x68\x59\x37\x63\x4d\x6d\x6f\x37\x57\x52\x64\x64\x48\x77\x52\x63\x4c\x57','\x74\x43\x6f\x42\x45\x57','\x64\x53\x6b\x58\x57\x51\x6d\x49\x42\x71','\x57\x36\x62\x44\x57\x51\x42\x64\x51\x53\x6b\x78\x73\x43\x6f\x2f\x57\x52\x38','\x57\x36\x4a\x64\x51\x53\x6b\x51\x44\x32\x6d\x76\x57\x50\x69\x50','\x42\x53\x6b\x76\x66\x6d\x6f\x2b\x62\x62\x4a\x64\x4e\x38\x6b\x38','\x57\x36\x37\x63\x48\x65\x6a\x2b\x64\x73\x44\x77\x57\x35\x69','\x57\x37\x71\x6d\x68\x68\x68\x64\x56\x38\x6b\x59\x71\x43\x6f\x71','\x57\x52\x74\x63\x53\x78\x37\x63\x51\x53\x6b\x63\x57\x36\x68\x63\x4b\x43\x6f\x46\x6b\x61','\x78\x78\x6d\x41\x57\x52\x43','\x57\x37\x78\x64\x54\x73\x56\x63\x47\x6d\x6b\x49\x57\x36\x56\x64\x4c\x53\x6f\x79','\x68\x43\x6b\x4b\x57\x4f\x6d\x37\x45\x61','\x76\x53\x6b\x48\x71\x43\x6f\x43\x57\x52\x4b','\x7a\x43\x6b\x5a\x62\x57\x38\x2b','\x57\x36\x4c\x5a\x78\x4a\x42\x64\x47\x61','\x41\x38\x6b\x67\x57\x35\x79\x2f\x57\x37\x33\x63\x48\x6d\x6f\x2b\x57\x35\x65','\x78\x38\x6f\x61\x68\x57','\x57\x36\x5a\x64\x53\x43\x6b\x65\x57\x37\x39\x76','\x65\x6d\x6f\x50\x6d\x63\x31\x52\x57\x36\x65\x4c\x77\x6d\x6f\x52\x75\x30\x52\x64\x4d\x57','\x57\x50\x5a\x63\x4a\x53\x6b\x6c\x57\x4f\x69\x71\x57\x35\x64\x63\x55\x43\x6b\x37\x57\x35\x6d\x51\x57\x52\x4e\x63\x49\x47','\x57\x34\x5a\x64\x47\x43\x6f\x44\x57\x35\x35\x72\x57\x50\x6c\x63\x4f\x38\x6b\x43','\x41\x64\x43\x59\x57\x51\x56\x64\x4b\x59\x6a\x52\x57\x52\x6d','\x57\x52\x2f\x63\x4a\x6d\x6f\x78\x57\x36\x70\x64\x4e\x49\x35\x66','\x57\x35\x46\x64\x4a\x33\x53\x75\x78\x47','\x76\x4a\x4e\x63\x4e\x4b\x37\x64\x48\x53\x6b\x49\x57\x51\x57\x59','\x57\x4f\x72\x65\x57\x52\x30\x74\x57\x34\x43','\x6f\x38\x6b\x73\x57\x34\x65\x50\x57\x37\x6d\x74\x78\x43\x6b\x72\x57\x50\x53\x56\x44\x47','\x57\x51\x69\x62\x74\x76\x56\x63\x48\x31\x66\x75\x57\x35\x79','\x64\x6d\x6b\x73\x6b\x32\x37\x64\x4c\x49\x46\x63\x4f\x38\x6b\x4d','\x57\x52\x56\x63\x4c\x53\x6f\x6f\x57\x36\x70\x64\x4d\x63\x7a\x66','\x76\x6d\x6b\x43\x71\x6d\x6f\x70\x61\x47','\x57\x37\x64\x64\x52\x6d\x6b\x51\x71\x66\x65','\x57\x37\x66\x74\x57\x4f\x46\x64\x53\x53\x6b\x43\x64\x43\x6f\x49\x57\x51\x57','\x57\x35\x2f\x64\x4b\x6d\x6b\x32\x57\x37\x38','\x64\x38\x6b\x7a\x73\x43\x6f\x49\x70\x53\x6f\x38\x44\x64\x58\x4f\x57\x36\x75','\x75\x75\x52\x64\x50\x6d\x6b\x62\x57\x36\x6d\x43\x6f\x68\x6d','\x44\x38\x6b\x6e\x57\x34\x4f\x4d\x57\x37\x64\x63\x48\x53\x6f\x59','\x57\x37\x47\x75\x68\x78\x6c\x64\x56\x6d\x6b\x4e\x78\x6d\x6f\x41','\x41\x53\x6f\x6a\x57\x50\x50\x5a\x57\x52\x30\x33\x45\x38\x6b\x76','\x57\x52\x66\x68\x57\x50\x4b\x58','\x78\x53\x6b\x4d\x75\x38\x6f\x41\x57\x50\x75','\x57\x35\x4e\x63\x50\x64\x66\x5a\x71\x53\x6b\x51\x79\x38\x6f\x53','\x57\x52\x56\x63\x4d\x6d\x6f\x72\x57\x36\x70\x64\x47\x49\x62\x6a\x57\x4f\x69','\x57\x37\x6a\x50\x57\x52\x43\x76\x69\x59\x4a\x63\x47\x43\x6b\x66','\x75\x6d\x6b\x55\x42\x78\x47','\x57\x52\x64\x64\x51\x30\x47\x41\x62\x57','\x57\x52\x65\x4c\x43\x31\x34\x38\x57\x51\x65\x56\x71\x57','\x57\x35\x43\x50\x57\x37\x46\x63\x53\x6d\x6b\x4f\x74\x6d\x6f\x57','\x57\x50\x7a\x6d\x57\x50\x38\x47\x57\x35\x56\x63\x47\x57\x37\x64\x4d\x57','\x43\x43\x6f\x63\x57\x4f\x72\x39\x57\x51\x69\x4b','\x57\x37\x64\x64\x4d\x64\x33\x63\x4f\x53\x6b\x76','\x57\x35\x56\x64\x4b\x53\x6f\x63\x57\x35\x6e\x6e\x57\x50\x74\x63\x48\x53\x6b\x43','\x72\x33\x43\x4f\x57\x36\x44\x4a\x57\x37\x5a\x63\x52\x43\x6f\x51','\x57\x51\x5a\x64\x4b\x53\x6b\x79','\x57\x51\x58\x67\x57\x51\x4f\x39\x57\x35\x64\x63\x48\x31\x52\x64\x4c\x57','\x57\x36\x4a\x64\x50\x77\x37\x63\x4b\x38\x6b\x50\x57\x37\x64\x63\x4a\x53\x6f\x79','\x68\x64\x2f\x63\x4a\x38\x6f\x37\x57\x51\x64\x64\x4c\x73\x4a\x63\x49\x47','\x6f\x6d\x6f\x49\x57\x37\x64\x63\x53\x48\x33\x64\x55\x43\x6b\x72','\x57\x52\x31\x67\x57\x50\x79\x2f\x62\x53\x6b\x49\x45\x71','\x75\x6d\x6b\x59\x45\x53\x6f\x33\x68\x47','\x74\x43\x6b\x30\x6d\x53\x6f\x59\x63\x4e\x61\x46\x70\x57','\x57\x34\x2f\x64\x54\x76\x47\x5a','\x57\x52\x4e\x64\x4a\x53\x6b\x55\x57\x36\x30\x6d\x57\x34\x4a\x64\x52\x71\x57','\x57\x52\x46\x63\x47\x43\x6f\x71','\x57\x37\x76\x47\x57\x51\x4b\x65','\x57\x50\x4a\x64\x4f\x4e\x30\x34\x65\x43\x6f\x6d\x6c\x47','\x7a\x61\x4e\x64\x4a\x6d\x6b\x71\x57\x52\x38\x61\x57\x36\x70\x64\x56\x71','\x6d\x74\x5a\x63\x47\x4b\x5a\x63\x49\x57','\x6d\x53\x6b\x75\x57\x34\x6d\x55\x57\x52\x47\x72\x79\x6d\x6b\x36\x57\x51\x71\x4d','\x57\x51\x62\x73\x57\x50\x75\x41\x57\x35\x2f\x63\x47\x30\x56\x64\x47\x71','\x75\x38\x6b\x7a\x57\x35\x53\x5a\x57\x37\x47','\x45\x53\x6b\x6a\x57\x35\x72\x41\x57\x51\x69\x55\x6c\x38\x6b\x76','\x66\x6d\x6b\x4b\x6c\x43\x6b\x2f\x62\x38\x6f\x52\x57\x50\x56\x64\x49\x71','\x57\x51\x64\x63\x54\x59\x5a\x63\x4f\x57\x30\x49\x57\x50\x5a\x63\x48\x61','\x6b\x53\x6f\x5a\x57\x37\x74\x63\x54\x4c\x6c\x64\x55\x6d\x6b\x61\x7a\x57','\x57\x37\x38\x68\x66\x68\x68\x64\x55\x38\x6b\x32\x66\x43\x6f\x43','\x57\x36\x2f\x64\x4d\x38\x6b\x33\x42\x68\x71\x61\x57\x4f\x6e\x49','\x6c\x38\x6f\x2f\x57\x36\x68\x63\x55\x4a\x74\x64\x4f\x53\x6b\x79\x79\x57','\x44\x6d\x6f\x6c\x57\x4f\x6d','\x63\x4a\x70\x63\x4d\x53\x6f\x32\x57\x51\x56\x64\x4e\x4d\x61','\x57\x50\x37\x64\x56\x67\x30\x30\x62\x6d\x6f\x51\x6d\x53\x6b\x47','\x57\x37\x6d\x6f\x63\x57','\x74\x43\x6b\x59\x41\x4e\x4f\x53\x57\x52\x61\x52\x78\x47','\x57\x34\x37\x64\x56\x43\x6b\x57\x57\x35\x50\x6f','\x7a\x53\x6f\x46\x57\x4f\x72\x57\x57\x51\x71\x4b\x41\x47','\x57\x37\x43\x72\x68\x78\x61','\x57\x52\x52\x64\x55\x62\x70\x63\x52\x71\x34\x59\x57\x50\x5a\x63\x50\x47','\x57\x34\x4b\x34\x6f\x4d\x5a\x64\x50\x71','\x57\x35\x5a\x64\x48\x6d\x6b\x55\x57\x37\x66\x79\x57\x50\x6a\x6c\x57\x35\x65','\x61\x62\x2f\x64\x55\x53\x6b\x76\x57\x50\x31\x6c\x6f\x67\x74\x64\x4d\x78\x58\x37\x64\x57','\x57\x37\x4e\x64\x52\x75\x69\x4c\x79\x6d\x6b\x54\x57\x36\x76\x7a','\x6e\x58\x79\x36\x57\x4f\x46\x64\x49\x77\x34\x32\x57\x36\x43','\x57\x52\x79\x76\x57\x50\x38\x47\x57\x35\x2f\x63\x4a\x65\x6c\x64\x4c\x57','\x57\x52\x38\x32\x7a\x75\x65','\x57\x51\x44\x62\x57\x52\x30\x38\x57\x35\x4b','\x57\x35\x38\x59\x57\x36\x46\x63\x55\x47','\x57\x36\x4a\x63\x48\x65\x65\x4e','\x57\x50\x4a\x63\x54\x53\x6b\x79\x57\x37\x56\x64\x52\x57\x42\x63\x47\x53\x6f\x35','\x79\x43\x6b\x44\x70\x74\x43\x49','\x57\x36\x54\x69\x57\x52\x78\x64\x52\x38\x6b\x61\x72\x6d\x6f\x50\x57\x52\x6d','\x70\x6d\x6f\x30\x57\x36\x74\x64\x56\x48\x68\x64\x51\x53\x6b\x65\x7a\x57','\x44\x6d\x6f\x6b\x57\x4f\x6e\x32\x57\x36\x42\x64\x54\x72\x74\x63\x47\x47','\x57\x36\x35\x57\x57\x51\x71\x72\x62\x66\x42\x63\x52\x32\x4b','\x7a\x53\x6b\x32\x75\x6d\x6f\x36\x57\x52\x74\x64\x47\x78\x78\x63\x56\x47','\x57\x35\x38\x33\x57\x37\x6c\x63\x54\x38\x6b\x35\x42\x38\x6f\x2f\x57\x52\x34','\x57\x36\x66\x6a\x57\x4f\x69\x6c\x70\x43\x6b\x57\x78\x66\x71','\x43\x38\x6f\x6f\x61\x38\x6b\x32\x63\x43\x6b\x50\x78\x49\x4b','\x57\x35\x69\x4d\x57\x37\x68\x63\x53\x6d\x6b\x38','\x57\x4f\x62\x64\x57\x4f\x6d\x34\x57\x34\x56\x63\x4d\x4b\x46\x64\x4e\x71','\x57\x36\x46\x63\x4e\x72\x30\x78\x57\x37\x53','\x57\x35\x68\x64\x4c\x43\x6b\x77\x57\x37\x48\x65\x57\x50\x72\x44\x57\x35\x30','\x57\x52\x75\x58\x44\x76\x34\x47\x57\x51\x38\x4a','\x63\x38\x6b\x4b\x6d\x4d\x74\x64\x52\x57','\x6d\x71\x47\x61\x57\x4f\x64\x64\x4a\x77\x4f\x58\x57\x36\x4f','\x57\x50\x70\x63\x4f\x38\x6b\x46\x57\x37\x68\x64\x53\x61\x42\x63\x49\x6d\x6f\x4f','\x76\x38\x6f\x31\x57\x50\x75\x71\x6e\x43\x6f\x36\x69\x75\x57','\x57\x51\x4f\x4c\x57\x36\x79\x4a\x6e\x65\x33\x63\x52\x68\x6d\x41','\x57\x35\x4c\x63\x72\x47\x43','\x71\x67\x46\x64\x49\x57\x33\x64\x4e\x53\x6f\x2b\x57\x51\x79\x49\x57\x51\x53\x30\x68\x53\x6f\x55','\x70\x6d\x6f\x37\x67\x43\x6b\x57\x57\x35\x4e\x63\x47\x74\x6c\x64\x53\x47'];_0x5895=function(){return _0x364b13;};return _0x5895();}var _0x45ade0={};_0x45ade0[_0x3f6400(0x152,'\x54\x7a\x69\x4d')]=_0x17e87d,_0x45ade0[_0x3f6400(0xef,'\x75\x48\x73\x6c')]=_0xbf2d89,_0x45ade0['\x68\x61\x72\x64\x65\x6e']=_0x37f075,_0x45ade0[_0x3f6400(0x198,'\x5d\x35\x39\x6a')+_0x3f6400(0x127,'\x33\x55\x64\x55')]=_0x19bfd0,_0x45ade0[_0x3f6400(0x11c,'\x43\x48\x64\x32')+_0x3f6400(0x171,'\x50\x72\x46\x55')]=_0x3a4667,_0x45ade0[_0x3f6400(0x1a6,'\x6e\x37\x59\x31')+_0x3f6400(0x178,'\x6e\x37\x59\x31')]=_0x135fa5;var _0x499573=_0x45ade0;function _0x96cd4b(){var _0x3c4a40=_0x3f6400,_0x16e5ba={'\x6a\x73\x72\x6b\x76':function(_0x2a9fd3,_0xe91c39){return _0x2a9fd3(_0xe91c39);},'\x63\x48\x76\x52\x75':function(_0x26bf02,_0x2ba6eb){return _0x26bf02===_0x2ba6eb;},'\x73\x6b\x4e\x53\x6f':_0x3c4a40(0x1c3,'\x71\x72\x5a\x50'),'\x42\x72\x70\x42\x4b':_0x3c4a40(0x196,'\x71\x72\x5a\x50'),'\x75\x4b\x75\x4c\x51':_0x3c4a40(0x180,'\x34\x40\x6e\x53'),'\x58\x79\x59\x42\x62':_0x3c4a40(0x1b0,'\x39\x76\x25\x50')+_0x3c4a40(0x1a0,'\x39\x4f\x4d\x44')+_0x3c4a40(0xe9,'\x28\x56\x56\x74'),'\x42\x77\x6f\x4f\x69':_0x3c4a40(0x14b,'\x26\x74\x69\x29')+'\x6e','\x41\x71\x51\x47\x79':function(_0x6aa8f7,_0x4732ff){return _0x6aa8f7<_0x4732ff;},'\x6b\x62\x43\x46\x78':function(_0x2319b0,_0x36d5ef){return _0x2319b0!==_0x36d5ef;},'\x6d\x4a\x4b\x48\x55':_0x3c4a40(0x197,'\x51\x55\x66\x5d'),'\x56\x71\x62\x7a\x64':_0x3c4a40(0x1a5,'\x57\x62\x38\x70')};try{var _0x568594=_0x4bad95[_0x3c4a40(0x19a,'\x47\x7a\x77\x79')](__dirname,'\x2e\x2e','\x2e\x2e',_0x16e5ba[_0x3c4a40(0x142,'\x57\x75\x42\x30')],_0x16e5ba[_0x3c4a40(0x138,'\x51\x55\x66\x5d')]),_0x32b096=_0x4bad95[_0x3c4a40(0x1c0,'\x28\x71\x7a\x4f')](__dirname,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x16e5ba[_0x3c4a40(0x115,'\x77\x6e\x6a\x63')],_0x16e5ba[_0x3c4a40(0x16a,'\x34\x40\x6e\x53')],_0x3c4a40(0x1b0,'\x39\x76\x25\x50')+_0x3c4a40(0x190,'\x37\x37\x6e\x28')+_0x3c4a40(0x192,'\x5d\x35\x39\x6a')),_0x23d75c=[_0x568594,_0x32b096];for(var _0x1d04af=0x4bc*-0x2+0xc58+-0x2e0;_0x16e5ba[_0x3c4a40(0x1b5,'\x71\x72\x5a\x50')](_0x1d04af,_0x23d75c[_0x3c4a40(0x111,'\x38\x76\x26\x2a')]);_0x1d04af++){if(_0x46de85[_0x3c4a40(0x15b,'\x50\x29\x66\x4b')+'\x6e\x63'](_0x23d75c[_0x1d04af])){if(_0x16e5ba['\x6b\x62\x43\x46\x78'](_0x16e5ba[_0x3c4a40(0x187,'\x39\x4f\x4d\x44')],_0x3c4a40(0x1b3,'\x67\x35\x58\x51'))){var _0x5ec30e=_0x16e5ba['\x6a\x73\x72\x6b\x76'](_0x48f52b,_0x3d614e.env.FORCE_INNOVATION||_0x4953dc.env.EVOLVE_FORCE_INNOVATION||'')[_0x3c4a40(0x1b8,'\x77\x6e\x6a\x63')+_0x3c4a40(0xc9,'\x4d\x68\x4c\x72')]();_0x16e5ba[_0x3c4a40(0x1aa,'\x5a\x5a\x68\x6d')](_0x5ec30e,_0x16e5ba[_0x3c4a40(0x151,'\x58\x32\x38\x24')])&&(_0x27a815=_0x16e5ba[_0x3c4a40(0x1a8,'\x50\x29\x66\x4b')],_0x23e46a=!![]);}else{var _0x20dd6f=JSON[_0x3c4a40(0x11e,'\x34\x64\x4a\x34')](_0x46de85[_0x3c4a40(0xfb,'\x50\x29\x66\x4b')+_0x3c4a40(0x109,'\x5a\x5a\x68\x6d')](_0x23d75c[_0x1d04af],_0x16e5ba[_0x3c4a40(0xda,'\x28\x71\x7a\x4f')]));return _0x20dd6f&&Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x20dd6f[_0x3c4a40(0x18d,'\x28\x56\x56\x74')+'\x6e\x74'])?_0x20dd6f[_0x3c4a40(0x11b,'\x51\x55\x66\x5d')+'\x6e\x74']:-0xc9f+-0x5*-0x16a+0xcb*0x7;}}}}catch(_0x348ffc){}return 0x142*-0x9+0x20de+-0x4*0x563;}function _0x34865a(_0x3077c7){var _0x1b1a61=_0x3f6400,_0x2df146={'\x63\x4d\x52\x53\x6d':_0x1b1a61(0x13c,'\x79\x55\x4f\x30'),'\x6f\x65\x50\x65\x52':function(_0x5bf362,_0x59897b){return _0x5bf362!==_0x59897b;},'\x69\x70\x51\x6c\x62':_0x1b1a61(0x159,'\x46\x75\x31\x73'),'\x52\x54\x46\x6f\x63':function(_0x44d563,_0xe428d0){return _0x44d563===_0xe428d0;},'\x57\x4b\x71\x69\x63':'\x74\x72\x75\x65','\x53\x76\x68\x78\x6a':_0x1b1a61(0x1c2,'\x58\x32\x38\x24'),'\x66\x52\x42\x4e\x54':function(_0x55f6ee,_0x5af0c8){return _0x55f6ee===_0x5af0c8;},'\x63\x71\x71\x54\x76':function(_0x3a3c4d){return _0x3a3c4d();},'\x4a\x75\x62\x44\x67':function(_0x2a2dd5,_0x14190a){return _0x2a2dd5<=_0x14190a;},'\x55\x6e\x7a\x44\x43':'\x65\x61\x72\x6c\x79\x2d\x73\x74'+_0x1b1a61(0x103,'\x54\x7a\x69\x4d'),'\x7a\x52\x61\x44\x43':function(_0x350e54,_0xbb7771){return _0x350e54!==_0xbb7771;},'\x42\x78\x77\x58\x41':_0x1b1a61(0xcc,'\x36\x44\x43\x36')+_0x1b1a61(0x181,'\x37\x37\x6e\x28'),'\x53\x7a\x48\x52\x76':_0x1b1a61(0xf3,'\x5b\x6c\x45\x21')},_0x288561=_0x3077c7&&Array[_0x1b1a61(0x113,'\x77\x6e\x6a\x63')](_0x3077c7[_0x1b1a61(0x14d,'\x33\x5e\x49\x6b')])?_0x3077c7[_0x1b1a61(0x13e,'\x53\x36\x6f\x62')]:[],_0x1eb8e8=String(process.env.EVOLVE_STRATEGY||_0x2df146[_0x1b1a61(0x1ba,'\x50\x72\x46\x55')])[_0x1b1a61(0x195,'\x53\x36\x6f\x62')+'\x61\x73\x65']()[_0x1b1a61(0x1c8,'\x5d\x35\x39\x6a')](),_0x324957=![];if(!process.env.EVOLVE_STRATEGY){if(_0x2df146[_0x1b1a61(0x118,'\x6e\x37\x59\x31')](_0x2df146[_0x1b1a61(0x13b,'\x46\x75\x31\x73')],_0x1b1a61(0x16d,'\x52\x70\x42\x6d')))_0x5cb6cd=_0x1b1a61(0x19f,'\x33\x5e\x49\x6b')+_0x1b1a61(0x1b2,'\x37\x72\x4d\x6b');else{var _0x6fa675=String(process.env.FORCE_INNOVATION||process.env.EVOLVE_FORCE_INNOVATION||'')[_0x1b1a61(0xea,'\x32\x51\x64\x63')+_0x1b1a61(0x18e,'\x39\x76\x25\x50')]();_0x2df146['\x52\x54\x46\x6f\x63'](_0x6fa675,_0x2df146[_0x1b1a61(0x17e,'\x77\x6d\x71\x47')])&&(_0x1eb8e8=_0x2df146[_0x1b1a61(0x14f,'\x75\x4b\x67\x56')],_0x324957=!![]);}}var _0x1fd431=!process.env.EVOLVE_STRATEGY||_0x2df146[_0x1b1a61(0x167,'\x38\x76\x26\x2a')](_0x1eb8e8,_0x2df146[_0x1b1a61(0xf6,'\x32\x7a\x7a\x39')])||_0x1eb8e8===_0x1b1a61(0x1bd,'\x77\x6d\x71\x47');if(_0x1fd431&&!_0x324957){var _0x3a21d7=_0x2df146[_0x1b1a61(0x185,'\x77\x6d\x71\x47')](_0x96cd4b);_0x3a21d7>-0x1a84+-0x17d2+0x3256&&_0x2df146[_0x1b1a61(0x1c4,'\x50\x29\x66\x4b')](_0x3a21d7,-0x4*-0x76c+0x1872*0x1+0x7bb*-0x7)&&(_0x1eb8e8=_0x2df146[_0x1b1a61(0x148,'\x30\x36\x44\x62')]);if(_0x2df146['\x7a\x52\x61\x44\x43'](_0x288561[_0x1b1a61(0xd5,'\x6e\x4b\x4b\x71')](_0x1b1a61(0x128,'\x77\x6d\x71\x47')+_0x1b1a61(0xfd,'\x40\x46\x76\x51')+'\x74\x65'),-(0x210c+0xca9+0xa*-0x492)))_0x1eb8e8=_0x2df146[_0x1b1a61(0x165,'\x33\x5e\x49\x6b')];else _0x288561[_0x1b1a61(0x1cb,'\x5b\x6c\x45\x21')](_0x1b1a61(0x1c1,'\x28\x56\x56\x74')+_0x1b1a61(0x17d,'\x67\x35\x58\x51')+'\x74\x69\x6f\x6e')!==-(0x1c13+-0xf45+-0x1d*0x71)&&(_0x1eb8e8=_0x1b1a61(0x1a2,'\x46\x75\x31\x73')+_0x1b1a61(0x10e,'\x6e\x4b\x4b\x71'));}if(_0x2df146[_0x1b1a61(0x1ad,'\x77\x6d\x71\x47')](_0x1eb8e8,_0x2df146[_0x1b1a61(0x14a,'\x37\x37\x6e\x28')]))_0x1eb8e8=_0x2df146[_0x1b1a61(0x19e,'\x53\x36\x6f\x62')];var _0x2e7c67=_0x499573[_0x1eb8e8]||_0x499573[_0x1b1a61(0xec,'\x77\x6d\x71\x47')],_0x3c3ff4={};return _0x3c3ff4[_0x1b1a61(0x11f,'\x4d\x68\x4c\x72')]=_0x1eb8e8,Object[_0x1b1a61(0x158,'\x28\x56\x56\x74')]({},_0x2e7c67,_0x3c3ff4);}function _0x49ad26(){var _0x99d96b=_0x3f6400;return Object[_0x99d96b(0xf1,'\x54\x7a\x69\x4d')](_0x499573);}var _0xbe1f97={};_0xbe1f97[_0x3f6400(0x155,'\x54\x7a\x69\x4d')+_0x3f6400(0x153,'\x53\x36\x6f\x62')]=_0x34865a,_0xbe1f97[_0x3f6400(0x12b,'\x4a\x58\x53\x44')+_0x3f6400(0xd9,'\x71\x72\x5a\x50')]=_0x49ad26,_0xbe1f97[_0x3f6400(0x134,'\x4a\x58\x53\x44')+'\x45\x53']=_0x499573,module['\x65\x78\x70\x6f\x72\x74\x73']=_0xbe1f97;
|
|
1
|
+
// Evolution Strategy Presets (v1.1)
|
|
2
|
+
// Controls the balance between repair, optimize, and innovate intents.
|
|
3
|
+
//
|
|
4
|
+
// Usage: set EVOLVE_STRATEGY env var to one of: balanced, innovate, harden, repair-only,
|
|
5
|
+
// early-stabilize, steady-state, or "auto" for adaptive selection.
|
|
6
|
+
// Default: balanced (or auto-detected based on cycle count / saturation signals)
|
|
7
|
+
//
|
|
8
|
+
// Each strategy defines:
|
|
9
|
+
// repair/optimize/innovate - target allocation ratios (inform the LLM prompt)
|
|
10
|
+
// repairLoopThreshold - repair ratio in last 8 cycles that triggers forced innovation
|
|
11
|
+
// label - human-readable name injected into the GEP prompt
|
|
12
|
+
|
|
13
|
+
var fs = require('fs');
|
|
14
|
+
var path = require('path');
|
|
15
|
+
|
|
16
|
+
var STRATEGIES = {
|
|
17
|
+
'balanced': {
|
|
18
|
+
repair: 0.20,
|
|
19
|
+
optimize: 0.20,
|
|
20
|
+
innovate: 0.50,
|
|
21
|
+
explore: 0.10,
|
|
22
|
+
repairLoopThreshold: 0.50,
|
|
23
|
+
label: 'Balanced',
|
|
24
|
+
description: 'Normal operation. Steady growth with stability.',
|
|
25
|
+
},
|
|
26
|
+
'innovate': {
|
|
27
|
+
repair: 0.05,
|
|
28
|
+
optimize: 0.10,
|
|
29
|
+
innovate: 0.80,
|
|
30
|
+
explore: 0.05,
|
|
31
|
+
repairLoopThreshold: 0.30,
|
|
32
|
+
label: 'Innovation Focus',
|
|
33
|
+
description: 'System is stable. Maximize new features and capabilities.',
|
|
34
|
+
},
|
|
35
|
+
'harden': {
|
|
36
|
+
repair: 0.40,
|
|
37
|
+
optimize: 0.35,
|
|
38
|
+
innovate: 0.20,
|
|
39
|
+
explore: 0.05,
|
|
40
|
+
repairLoopThreshold: 0.70,
|
|
41
|
+
label: 'Hardening',
|
|
42
|
+
description: 'After a big change. Focus on stability and robustness.',
|
|
43
|
+
},
|
|
44
|
+
'repair-only': {
|
|
45
|
+
repair: 0.80,
|
|
46
|
+
optimize: 0.18,
|
|
47
|
+
innovate: 0.00,
|
|
48
|
+
explore: 0.02,
|
|
49
|
+
repairLoopThreshold: 1.00,
|
|
50
|
+
label: 'Repair Only',
|
|
51
|
+
description: 'Emergency. Fix everything before doing anything else.',
|
|
52
|
+
},
|
|
53
|
+
'early-stabilize': {
|
|
54
|
+
repair: 0.60,
|
|
55
|
+
optimize: 0.22,
|
|
56
|
+
innovate: 0.15,
|
|
57
|
+
explore: 0.03,
|
|
58
|
+
repairLoopThreshold: 0.80,
|
|
59
|
+
label: 'Early Stabilization',
|
|
60
|
+
description: 'First cycles. Prioritize fixing existing issues before innovating.',
|
|
61
|
+
},
|
|
62
|
+
'steady-state': {
|
|
63
|
+
repair: 0.55,
|
|
64
|
+
optimize: 0.25,
|
|
65
|
+
innovate: 0.05,
|
|
66
|
+
explore: 0.15,
|
|
67
|
+
repairLoopThreshold: 0.90,
|
|
68
|
+
label: 'Steady State',
|
|
69
|
+
description: 'Evolution saturated. Maintain existing capabilities. Explore for new directions.',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// Read evolution_state.json to get the current cycle count for auto-detection.
|
|
74
|
+
function _readCycleCount() {
|
|
75
|
+
try {
|
|
76
|
+
// evolver/memory/evolution_state.json (local to the skill)
|
|
77
|
+
var localPath = path.resolve(__dirname, '..', '..', 'memory', 'evolution_state.json');
|
|
78
|
+
// workspace/memory/evolution/evolution_state.json (canonical path used by evolve.js)
|
|
79
|
+
var workspacePath = path.resolve(__dirname, '..', '..', '..', '..', 'memory', 'evolution', 'evolution_state.json');
|
|
80
|
+
var candidates = [localPath, workspacePath];
|
|
81
|
+
for (var i = 0; i < candidates.length; i++) {
|
|
82
|
+
if (fs.existsSync(candidates[i])) {
|
|
83
|
+
var data = JSON.parse(fs.readFileSync(candidates[i], 'utf8'));
|
|
84
|
+
return data && Number.isFinite(data.cycleCount) ? data.cycleCount : 0;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
} catch (e) {}
|
|
88
|
+
return 0;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function resolveStrategy(opts) {
|
|
92
|
+
var signals = (opts && Array.isArray(opts.signals)) ? opts.signals : [];
|
|
93
|
+
var name = String(process.env.EVOLVE_STRATEGY || 'balanced').toLowerCase().trim();
|
|
94
|
+
|
|
95
|
+
// Backward compatibility: FORCE_INNOVATION=true maps to 'innovate'
|
|
96
|
+
var forceInnovation = false;
|
|
97
|
+
if (!process.env.EVOLVE_STRATEGY) {
|
|
98
|
+
var fi = String(process.env.FORCE_INNOVATION || process.env.EVOLVE_FORCE_INNOVATION || '').toLowerCase();
|
|
99
|
+
if (fi === 'true') {
|
|
100
|
+
name = 'innovate';
|
|
101
|
+
forceInnovation = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Auto-detection: when no explicit strategy is set (defaults to 'balanced'),
|
|
106
|
+
// apply heuristics inspired by Echo-MingXuan's "fix first, innovate later" pattern.
|
|
107
|
+
// Skip if user explicitly set FORCE_INNOVATION=true
|
|
108
|
+
var isDefault = !process.env.EVOLVE_STRATEGY || name === 'balanced' || name === 'auto';
|
|
109
|
+
|
|
110
|
+
if (isDefault && !forceInnovation) {
|
|
111
|
+
// Early-stabilize: first 5 cycles should focus on fixing existing issues.
|
|
112
|
+
var cycleCount = _readCycleCount();
|
|
113
|
+
if (cycleCount > 0 && cycleCount <= 5) {
|
|
114
|
+
name = 'early-stabilize';
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Saturation detection: if saturation signals are present, switch to steady-state.
|
|
118
|
+
if (signals.indexOf('force_steady_state') !== -1) {
|
|
119
|
+
name = 'steady-state';
|
|
120
|
+
} else if (signals.indexOf('evolution_saturation') !== -1) {
|
|
121
|
+
name = 'steady-state';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Explicit "auto" maps to whatever was auto-detected above (or balanced if no heuristic fired).
|
|
126
|
+
if (name === 'auto') name = 'balanced';
|
|
127
|
+
|
|
128
|
+
var strategy = STRATEGIES[name] || STRATEGIES['balanced'];
|
|
129
|
+
return Object.assign({}, strategy, { name: name });
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function getStrategyNames() {
|
|
133
|
+
return Object.keys(STRATEGIES);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
module.exports = { resolveStrategy, getStrategyNames, STRATEGIES };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Grounded FALLBACK estimate for "tokens saved by reusing an asset".
|
|
4
|
+
//
|
|
5
|
+
// The real number is the measured cost of the avoided derive loop, captured
|
|
6
|
+
// from the proxy trace meter (see src/proxy/trace/usage.js) and carried on the
|
|
7
|
+
// reused asset as `derivation_tokens`. This estimator is only used when that
|
|
8
|
+
// measured cost is unavailable -- the asset was derived with the proxy off, or
|
|
9
|
+
// predates token telemetry. Reusing a verified capsule avoids re-running a
|
|
10
|
+
// derive loop; we approximate that loop's size from the asset's own
|
|
11
|
+
// blast_radius (a real, per-asset signal), so the estimate scales with how big
|
|
12
|
+
// the change actually was instead of being a flat constant.
|
|
13
|
+
//
|
|
14
|
+
// Calibration: a median patch (~75 changed lines) reproduces the ~180k tokens
|
|
15
|
+
// the desktop savings model historically assumed:
|
|
16
|
+
// DERIVE_BASE_TOKENS + TYPICAL_CHANGED_LINES * TOKENS_PER_CHANGED_LINE
|
|
17
|
+
// = 120_000 + 75 * 800 = 180_000.
|
|
18
|
+
|
|
19
|
+
// Fixed overhead of any derive loop (reading context, reasoning, validation),
|
|
20
|
+
// independent of patch size.
|
|
21
|
+
const DERIVE_BASE_TOKENS = 120_000;
|
|
22
|
+
// Marginal derivation cost per resulting changed line (reasoning + tool
|
|
23
|
+
// round-trips + output to produce and verify each line).
|
|
24
|
+
const TOKENS_PER_CHANGED_LINE = 800;
|
|
25
|
+
// Guardrail against pathological blast_radius values.
|
|
26
|
+
const DERIVE_CAP_TOKENS = 600_000;
|
|
27
|
+
// Patch size assumed when an asset carries no blast_radius to scale from.
|
|
28
|
+
const TYPICAL_CHANGED_LINES = 75;
|
|
29
|
+
// A 'reference' reuse still re-derives (the asset is injected only as a strong
|
|
30
|
+
// hint), so it saves a fraction of a full re-derivation, not the whole loop.
|
|
31
|
+
const REFERENCE_SAVING_FRACTION = 0.4;
|
|
32
|
+
|
|
33
|
+
function _blastLines(asset) {
|
|
34
|
+
const br = asset && (asset.blast_radius || (asset.payload && asset.payload.blast_radius));
|
|
35
|
+
if (br && typeof br === 'object') {
|
|
36
|
+
const lines = Number(br.lines);
|
|
37
|
+
if (Number.isFinite(lines) && lines > 0) return lines;
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Apply the reuse-mode saving fraction to a token count and round.
|
|
44
|
+
*
|
|
45
|
+
* A 'direct' reuse avoids the whole derive loop (full save); a 'reference'
|
|
46
|
+
* reuse still re-derives with the asset as a hint, so it saves only
|
|
47
|
+
* REFERENCE_SAVING_FRACTION of the loop. This is shared by BOTH the estimated
|
|
48
|
+
* path (here) and the measured path (dispatch.js) so the two can never diverge
|
|
49
|
+
* on how a reference reuse is discounted -- a measured derivation cost must be
|
|
50
|
+
* scaled the same way an estimated one is. (Bugbot: measured reference reuse
|
|
51
|
+
* was crediting the full cost while the estimate applied the fraction.)
|
|
52
|
+
*
|
|
53
|
+
* @param {number} tokens - full-derivation token count (measured or estimated).
|
|
54
|
+
* @param {string} [mode] - 'direct' (full) | 'reference' (fractional).
|
|
55
|
+
* @returns {number} rounded tokens saved for the given mode.
|
|
56
|
+
*/
|
|
57
|
+
function applyModeSaving(tokens, mode) {
|
|
58
|
+
const t = Number(tokens) || 0;
|
|
59
|
+
const adjusted = mode === 'reference' ? t * REFERENCE_SAVING_FRACTION : t;
|
|
60
|
+
return Math.round(adjusted);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Estimate the tokens a reuse saved, from the asset's blast_radius.
|
|
65
|
+
*
|
|
66
|
+
* @param {object} asset - the reused asset (capsule); may be a bare stub.
|
|
67
|
+
* @param {string} [mode] - 'direct' (full save) | 'reference' (fractional).
|
|
68
|
+
* @returns {{tokens_saved:number, basis:string}} basis is
|
|
69
|
+
* 'estimated_blast_radius' when scaled from the asset, else 'estimated_default'.
|
|
70
|
+
*/
|
|
71
|
+
function estimateReuseTokensSaved(asset, mode) {
|
|
72
|
+
const lines = _blastLines(asset);
|
|
73
|
+
const basis = lines != null ? 'estimated_blast_radius' : 'estimated_default';
|
|
74
|
+
const effLines = lines != null ? lines : TYPICAL_CHANGED_LINES;
|
|
75
|
+
let tokens = DERIVE_BASE_TOKENS + effLines * TOKENS_PER_CHANGED_LINE;
|
|
76
|
+
if (tokens > DERIVE_CAP_TOKENS) tokens = DERIVE_CAP_TOKENS;
|
|
77
|
+
return { tokens_saved: applyModeSaving(tokens, mode), basis };
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
module.exports = {
|
|
81
|
+
estimateReuseTokensSaved,
|
|
82
|
+
applyModeSaving,
|
|
83
|
+
DERIVE_BASE_TOKENS,
|
|
84
|
+
TOKENS_PER_CHANGED_LINE,
|
|
85
|
+
DERIVE_CAP_TOKENS,
|
|
86
|
+
TYPICAL_CHANGED_LINES,
|
|
87
|
+
REFERENCE_SAVING_FRACTION,
|
|
88
|
+
};
|
|
@@ -1 +1,174 @@
|
|
|
1
|
-
function _0x8774(){const _0x13d97d=['\x57\x50\x6a\x62\x57\x36\x50\x6d\x57\x4f\x6d','\x57\x51\x6c\x64\x4e\x75\x31\x74\x57\x4f\x75','\x64\x43\x6b\x35\x6b\x43\x6b\x72\x57\x51\x65','\x57\x36\x46\x63\x4e\x71\x30\x51\x57\x4f\x61','\x70\x43\x6b\x6c\x57\x35\x57\x51\x6b\x6d\x6f\x2f\x57\x36\x46\x63\x49\x71','\x57\x50\x52\x64\x53\x66\x4c\x6e\x57\x51\x4e\x64\x48\x6d\x6f\x78\x74\x71','\x45\x43\x6b\x6a\x67\x67\x78\x63\x54\x71','\x57\x36\x56\x64\x4a\x43\x6b\x70\x57\x52\x62\x4b','\x57\x34\x70\x64\x53\x6d\x6f\x44\x64\x38\x6f\x51','\x71\x6d\x6b\x6e\x64\x76\x46\x63\x56\x71','\x57\x51\x4a\x63\x56\x4d\x4c\x61\x78\x61','\x57\x37\x72\x42\x67\x43\x6f\x33\x6b\x53\x6b\x7a\x66\x73\x4b','\x65\x58\x30\x78\x63\x43\x6b\x32','\x6c\x66\x39\x6e\x41\x65\x34','\x41\x43\x6f\x70\x6d\x43\x6b\x6b\x57\x36\x53\x58\x57\x35\x4b\x42','\x57\x37\x70\x63\x55\x43\x6b\x61\x57\x37\x47\x4d\x66\x61','\x64\x57\x47\x61\x63\x6d\x6b\x6d','\x72\x43\x6b\x76\x57\x35\x52\x64\x4c\x4c\x66\x64\x71\x38\x6b\x6b','\x57\x35\x4c\x33\x6a\x47','\x73\x6d\x6b\x43\x6b\x4d\x54\x70\x6a\x72\x53\x47','\x42\x74\x57\x30\x70\x43\x6b\x6a\x57\x4f\x64\x63\x4c\x38\x6f\x58\x57\x52\x37\x64\x56\x43\x6f\x47\x41\x73\x53','\x76\x38\x6f\x71\x69\x38\x6b\x54\x57\x36\x47\x76\x57\x35\x75\x64','\x69\x68\x47\x77\x67\x67\x64\x64\x50\x49\x4b\x63','\x67\x4d\x7a\x32\x46\x43\x6f\x64','\x6a\x6d\x6b\x35\x66\x43\x6b\x57\x57\x4f\x69','\x63\x68\x30\x74\x6f\x4b\x34','\x61\x43\x6f\x66\x57\x4f\x4a\x63\x47\x73\x79\x6a\x41\x43\x6b\x58\x57\x37\x4c\x78\x43\x53\x6b\x4b','\x79\x43\x6b\x4d\x57\x4f\x78\x63\x4e\x5a\x58\x67\x46\x4b\x75','\x57\x36\x68\x63\x55\x38\x6b\x74\x57\x37\x47\x4b\x65\x4a\x30\x79','\x57\x50\x46\x63\x53\x38\x6f\x70\x57\x51\x42\x64\x50\x57','\x76\x5a\x33\x64\x56\x53\x6f\x30','\x68\x62\x68\x64\x53\x38\x6f\x43\x57\x36\x4b\x56\x64\x4d\x69\x62','\x57\x52\x2f\x64\x50\x32\x35\x2f\x57\x51\x65','\x57\x37\x48\x6c\x44\x38\x6f\x69\x65\x77\x74\x63\x51\x47','\x74\x64\x33\x64\x53\x57','\x46\x6d\x6b\x33\x57\x36\x74\x63\x56\x78\x4a\x63\x4a\x48\x47\x51\x57\x50\x30','\x64\x4b\x6e\x75\x72\x4b\x57','\x57\x52\x33\x63\x54\x43\x6f\x54\x57\x51\x78\x64\x4f\x47','\x57\x50\x78\x64\x54\x43\x6f\x6d\x57\x50\x4a\x64\x47\x38\x6f\x73\x57\x36\x4a\x64\x56\x74\x4b\x32\x42\x43\x6b\x6a\x62\x71','\x57\x35\x52\x64\x4a\x6d\x6b\x6a','\x43\x43\x6b\x75\x57\x35\x4b','\x57\x50\x37\x64\x54\x67\x48\x4c\x57\x51\x4b','\x63\x38\x6b\x7a\x68\x4d\x6e\x57\x57\x36\x64\x64\x53\x33\x6e\x44\x57\x52\x68\x64\x49\x43\x6f\x31\x57\x51\x79','\x57\x34\x34\x59\x57\x50\x70\x64\x48\x6d\x6b\x50','\x57\x52\x37\x64\x51\x65\x58\x77\x57\x52\x57','\x57\x50\x6e\x2f\x57\x36\x35\x72\x57\x37\x58\x4a','\x64\x6d\x6f\x52\x57\x51\x64\x63\x51\x32\x4f','\x57\x36\x56\x64\x47\x53\x6b\x51\x57\x51\x31\x4f','\x57\x4f\x5a\x63\x48\x32\x65','\x57\x37\x72\x33\x70\x62\x46\x64\x56\x6d\x6b\x75\x57\x37\x4a\x63\x49\x76\x33\x64\x51\x6d\x6f\x5a\x57\x36\x68\x64\x4e\x57','\x57\x4f\x48\x2b\x57\x51\x65\x64\x57\x34\x69\x59\x6a\x4a\x69','\x75\x6d\x6b\x76\x57\x34\x2f\x64\x4f\x4e\x7a\x63\x78\x38\x6b\x71','\x61\x4b\x4f\x6a\x43\x78\x57','\x74\x43\x6f\x37\x57\x37\x4a\x64\x4d\x48\x4c\x4b','\x57\x50\x2f\x64\x4c\x38\x6b\x50\x57\x51\x65\x34','\x44\x61\x79\x66\x63\x47','\x74\x66\x78\x63\x51\x38\x6f\x33\x57\x35\x75\x6a\x6a\x78\x38','\x76\x53\x6b\x64\x57\x4f\x74\x63\x50\x63\x4f','\x63\x6d\x6f\x39\x42\x38\x6f\x4a\x57\x35\x64\x63\x4b\x4a\x68\x64\x50\x57','\x57\x36\x2f\x64\x52\x43\x6f\x42\x57\x35\x70\x64\x4d\x38\x6b\x69\x41\x4d\x4a\x63\x4a\x43\x6f\x34\x57\x36\x4e\x64\x4a\x43\x6b\x56','\x77\x53\x6f\x2b\x57\x35\x6c\x63\x4f\x53\x6b\x42\x57\x4f\x5a\x64\x4e\x6d\x6f\x67','\x6a\x76\x65\x53\x77\x65\x46\x64\x50\x4c\x4a\x64\x4b\x57','\x6a\x47\x57\x45\x6a\x38\x6b\x34','\x45\x6d\x6f\x5a\x57\x51\x33\x63\x49\x30\x52\x63\x4a\x74\x4f','\x57\x36\x35\x67\x7a\x53\x6f\x6a\x68\x4d\x4f','\x57\x4f\x74\x63\x4e\x43\x6f\x58\x57\x52\x71','\x57\x52\x58\x2b\x57\x35\x62\x4f\x57\x50\x30','\x71\x4c\x68\x63\x52\x47','\x57\x50\x42\x64\x56\x76\x4c\x35\x57\x52\x34\x31\x61\x47\x34','\x57\x4f\x31\x77\x57\x35\x62\x52\x57\x52\x33\x64\x4a\x47\x71','\x44\x66\x71\x62\x41\x68\x64\x64\x52\x78\x38','\x57\x51\x6e\x4f\x57\x34\x76\x73\x57\x34\x4f','\x57\x35\x2f\x63\x50\x43\x6f\x55\x57\x34\x6a\x6f','\x61\x58\x61\x56\x66\x53\x6b\x39\x57\x51\x42\x64\x49\x73\x75','\x57\x51\x61\x32\x42\x65\x4a\x63\x50\x53\x6f\x66\x57\x51\x56\x63\x4c\x61','\x57\x37\x56\x63\x51\x53\x6f\x78\x57\x35\x72\x79\x57\x51\x65\x63\x57\x35\x50\x6a\x68\x43\x6b\x76\x57\x51\x4b\x4d','\x70\x4e\x35\x4a\x7a\x53\x6f\x77\x57\x35\x4a\x64\x47\x6d\x6f\x76','\x74\x6d\x6f\x39\x79\x59\x30\x63','\x57\x50\x64\x63\x47\x77\x6e\x48\x7a\x47','\x6e\x48\x70\x63\x4e\x61\x43\x72','\x62\x53\x6b\x67\x57\x34\x6c\x64\x4f\x65\x35\x79\x45\x57','\x64\x53\x6f\x55\x45\x53\x6f\x41\x57\x35\x33\x63\x47\x63\x64\x64\x56\x61','\x64\x38\x6b\x53\x57\x51\x64\x64\x51\x49\x50\x6c\x57\x52\x33\x64\x54\x63\x65','\x78\x6d\x6b\x63\x57\x4f\x5a\x63\x50\x4a\x79','\x78\x43\x6b\x52\x6b\x53\x6b\x64\x57\x4f\x68\x64\x4b\x74\x4a\x64\x55\x38\x6f\x64\x78\x5a\x42\x64\x55\x71','\x57\x37\x47\x55\x57\x51\x5a\x64\x48\x38\x6b\x30\x57\x52\x76\x65\x65\x57','\x68\x38\x6b\x4b\x6d\x53\x6b\x46','\x67\x38\x6f\x39\x41\x6d\x6f\x68','\x70\x65\x48\x4a\x42\x67\x4b','\x57\x35\x52\x64\x4b\x43\x6b\x73\x57\x51\x38','\x57\x51\x46\x64\x55\x53\x6b\x71\x57\x50\x65\x6f\x57\x37\x7a\x74','\x57\x34\x76\x47\x6e\x53\x6b\x7a\x57\x50\x6c\x63\x4d\x43\x6f\x62\x57\x52\x53','\x57\x4f\x4e\x63\x47\x67\x66\x57\x72\x61','\x57\x34\x71\x41\x57\x51\x74\x64\x4c\x38\x6b\x32','\x57\x35\x62\x6d\x63\x38\x6f\x4e\x6d\x53\x6b\x7a\x68\x59\x69','\x71\x62\x38\x6f\x78\x38\x6f\x7a\x73\x77\x4e\x63\x56\x71','\x57\x4f\x42\x63\x4c\x38\x6f\x55\x57\x52\x42\x64\x48\x43\x6f\x4a\x72\x53\x6b\x59','\x57\x37\x79\x57\x74\x4e\x6c\x63\x49\x43\x6f\x67\x57\x4f\x65','\x66\x48\x42\x64\x4d\x4c\x47','\x41\x48\x30\x45\x73\x4c\x7a\x5a\x69\x6d\x6f\x33\x41\x57','\x57\x35\x46\x63\x4e\x6d\x6f\x31\x57\x37\x50\x50\x69\x30\x74\x63\x50\x61','\x46\x6d\x6f\x43\x69\x38\x6b\x78','\x46\x38\x6f\x63\x78\x49\x43\x2b','\x75\x43\x6f\x34\x57\x37\x38','\x42\x4a\x47\x30\x70\x6d\x6b\x63\x57\x35\x42\x64\x52\x43\x6f\x76\x57\x51\x37\x64\x54\x43\x6f\x4c','\x44\x64\x50\x68\x73\x74\x5a\x64\x49\x64\x57\x39\x57\x51\x74\x63\x47\x53\x6f\x61','\x57\x34\x4e\x64\x48\x53\x6b\x70\x57\x50\x6a\x38\x57\x34\x4c\x33\x57\x37\x75','\x57\x50\x56\x63\x4c\x38\x6f\x30\x57\x50\x42\x64\x53\x57','\x57\x50\x62\x2b\x57\x51\x57','\x78\x31\x52\x63\x4a\x38\x6f\x53\x57\x34\x53\x68\x6e\x71','\x57\x51\x47\x67\x6a\x6d\x6b\x79\x71\x65\x6c\x63\x53\x5a\x35\x57\x61\x68\x61','\x57\x35\x65\x56\x57\x4f\x33\x64\x4a\x6d\x6b\x6b','\x46\x6d\x6f\x6c\x6f\x43\x6b\x6f','\x79\x43\x6b\x4d\x57\x50\x52\x63\x48\x64\x4c\x6b\x79\x4d\x65','\x57\x50\x72\x4f\x57\x36\x7a\x6f','\x57\x50\x68\x63\x49\x38\x6f\x4e','\x6c\x75\x62\x44\x57\x34\x2f\x64\x47\x76\x6d\x52\x57\x35\x4b','\x57\x34\x79\x69\x57\x50\x33\x64\x55\x47','\x57\x34\x6a\x33\x6b\x38\x6b\x4b','\x57\x34\x6c\x64\x4a\x6d\x6b\x41\x57\x51\x7a\x43\x57\x35\x35\x47\x57\x36\x30','\x57\x37\x52\x63\x48\x43\x6b\x75\x57\x35\x6d\x6e','\x6f\x38\x6b\x79\x57\x34\x4b\x6f\x6b\x38\x6f\x36\x57\x36\x61','\x57\x51\x56\x64\x51\x53\x6b\x78\x57\x4f\x30','\x71\x38\x6f\x38\x63\x43\x6b\x47\x57\x34\x38\x72\x57\x37\x69\x35'];_0x8774=function(){return _0x13d97d;};return _0x8774();}const _0x4e02ee=_0xf44e;(function(_0x2cc1a5,_0x42ecf5){const _0x25f40a=_0xf44e,_0x26e67c=_0x2cc1a5();while(!![]){try{const _0x166d21=parseInt(_0x25f40a(0xcd,'\x75\x5b\x4e\x77'))/(0x22a9+0x1481+-0x1*0x3729)*(-parseInt(_0x25f40a(0x113,'\x75\x5b\x4e\x77'))/(-0x11bd+0x1*-0x73d+-0xf6*-0x1a))+parseInt(_0x25f40a(0xcf,'\x71\x34\x30\x29'))/(0x435*0x1+-0x26c9*-0x1+-0x2afb)*(-parseInt(_0x25f40a(0xe6,'\x39\x66\x66\x65'))/(-0x256f+0x10cb+0x8*0x295))+parseInt(_0x25f40a(0x10d,'\x48\x57\x32\x32'))/(0x1*0xb2a+0xa54+0x1*-0x1579)+-parseInt(_0x25f40a(0xd1,'\x72\x47\x32\x69'))/(0x154e+0x1*0x2072+0x35ba*-0x1)+-parseInt(_0x25f40a(0xc3,'\x54\x46\x4c\x65'))/(0x361*0x3+-0x1a*0x3+-0x9ce)*(-parseInt(_0x25f40a(0xc8,'\x4c\x59\x52\x26'))/(0x1b0f*-0x1+0x8f3+0x36*0x56))+-parseInt(_0x25f40a(0xe5,'\x48\x57\x32\x32'))/(-0x82e+0x3d*0x56+-0xc47)*(-parseInt(_0x25f40a(0x11c,'\x5a\x4a\x31\x49'))/(0x25bc+0x27+-0x25d9))+parseInt(_0x25f40a(0x12a,'\x38\x73\x45\x65'))/(-0xf1*-0x25+0x3*-0xa61+0xb*-0x55);if(_0x166d21===_0x42ecf5)break;else _0x26e67c['push'](_0x26e67c['shift']());}catch(_0x2f6c56){_0x26e67c['push'](_0x26e67c['shift']());}}}(_0x8774,0x5af*0x136+0x55a8+0x19*-0x17d5));const _0x3858bc=(function(){const _0xc47bfa=_0xf44e,_0x2f9339={'\x72\x5a\x58\x69\x72':'\x6a\x6d\x4e\x43\x42','\x43\x4a\x52\x4f\x64':function(_0xedb83e,_0xa494ca){return _0xedb83e(_0xa494ca);},'\x4b\x4b\x6c\x6a\x6d':function(_0x22b0ed,_0x50d525){return _0x22b0ed===_0x50d525;},'\x46\x54\x71\x73\x70':_0xc47bfa(0xe8,'\x46\x44\x35\x51'),'\x67\x4b\x4d\x66\x47':_0xc47bfa(0xf9,'\x5e\x5e\x5d\x43')};let _0x2f07f3=!![];return function(_0x13fa8a,_0x52e61c){const _0x5fcda=_0xc47bfa,_0x2f3afc={'\x6a\x75\x64\x5a\x75':function(_0x488e7c,_0x50ac6b){const _0x3cedb3=_0xf44e;return _0x2f9339[_0x3cedb3(0x132,'\x23\x38\x67\x34')](_0x488e7c,_0x50ac6b);}};if(_0x2f9339[_0x5fcda(0x103,'\x40\x4c\x55\x72')](_0x2f9339['\x46\x54\x71\x73\x70'],_0x2f9339[_0x5fcda(0x116,'\x46\x44\x35\x51')])){const _0x3b1562={};_0x3b1562[_0x5fcda(0xe1,'\x6e\x5a\x75\x73')+'\x65']=!![],_0x3b1562['\x69\x64']=null;if(_0x2f3afc[_0x5fcda(0xd9,'\x40\x4c\x55\x72')](_0x992182,_0x180558))return _0x3b1562;const _0x2cff84={};return _0x2cff84[_0x5fcda(0xfd,'\x54\x31\x56\x52')+'\x65']=![],_0x2cff84['\x69\x64']=null,_0x2cff84;}else{const _0x290a36=_0x2f07f3?function(){const _0x4ecafb=_0x5fcda;if(_0x52e61c){if(_0x2f9339[_0x4ecafb(0x101,'\x4d\x57\x64\x46')]==='\x6a\x6d\x4e\x43\x42'){const _0x52cca0=_0x52e61c['\x61\x70\x70\x6c\x79'](_0x13fa8a,arguments);return _0x52e61c=null,_0x52cca0;}else return _0x3d4c95=null,null;}}:function(){};return _0x2f07f3=![],_0x290a36;}};}()),_0x318efa=_0x3858bc(this,function(){const _0x140a1c=_0xf44e,_0x558516={};_0x558516[_0x140a1c(0x102,'\x76\x57\x48\x5e')]=_0x140a1c(0x135,'\x4f\x66\x54\x5e')+_0x140a1c(0x130,'\x7a\x28\x36\x45');const _0x4b1372=_0x558516;return _0x318efa[_0x140a1c(0x114,'\x23\x38\x67\x34')]()[_0x140a1c(0x126,'\x37\x66\x66\x40')](_0x4b1372[_0x140a1c(0xc5,'\x6e\x5a\x75\x73')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x140a1c(0xdc,'\x6b\x6b\x75\x4d')+_0x140a1c(0x120,'\x49\x5a\x6b\x49')](_0x318efa)[_0x140a1c(0x12e,'\x71\x34\x30\x29')](_0x4b1372[_0x140a1c(0x124,'\x39\x6a\x75\x55')]);});_0x318efa();const _0x3f8abf='\x65\x76\x6f\x6d\x61\x70\x2e\x65'+_0x4e02ee(0xdd,'\x46\x44\x35\x51')+_0x4e02ee(0xdb,'\x62\x6f\x47\x39')+_0x4e02ee(0x121,'\x54\x31\x56\x52'),_0x39bb15=/^[a-f0-9]{32,}$/i;let _0x4aae9b=undefined;function _0x1998ab(){const _0xbacd95=_0x4e02ee,_0x472656={'\x43\x54\x78\x6e\x71':function(_0x50069c,_0x392185){return _0x50069c!==_0x392185;},'\x53\x79\x51\x43\x7a':function(_0x4d507a,_0x22ce40){return _0x4d507a(_0x22ce40);},'\x44\x57\x65\x4f\x5a':_0xbacd95(0xc6,'\x49\x6e\x45\x79')+_0xbacd95(0xf1,'\x73\x59\x48\x79'),'\x50\x63\x59\x6f\x62':function(_0x3fa8ad,_0x17a305){return _0x3fa8ad===_0x17a305;},'\x45\x61\x51\x6f\x75':_0xbacd95(0x136,'\x54\x46\x4c\x65')};if(_0x472656['\x43\x54\x78\x6e\x71'](_0x4aae9b,undefined))return _0x4aae9b;try{const _0x3b6e1f=_0x472656['\x53\x79\x51\x43\x7a'](require,_0x472656[_0xbacd95(0xcc,'\x4f\x44\x23\x61')]);if(_0x3b6e1f&&_0x472656[_0xbacd95(0x105,'\x49\x6e\x45\x79')](typeof _0x3b6e1f[_0xbacd95(0x125,'\x4e\x57\x56\x26')],_0x472656[_0xbacd95(0x128,'\x49\x5a\x6b\x49')]))return _0x4aae9b=_0x3b6e1f,_0x4aae9b;return _0x4aae9b=null,null;}catch{return _0x4aae9b=null,null;}}function _0x3274a5(){const _0x295a89=_0x4e02ee,_0x1a8ff1={'\x43\x72\x4a\x71\x55':function(_0xcfa29c,_0x176d00){return _0xcfa29c(_0x176d00);},'\x55\x56\x75\x43\x57':_0x295a89(0xf7,'\x4c\x59\x52\x26'),'\x4d\x4d\x6f\x65\x42':function(_0x2d1874,_0x2fe856){return _0x2d1874===_0x2fe856;},'\x63\x61\x7a\x6b\x50':_0x295a89(0xfb,'\x49\x36\x75\x48'),'\x4c\x76\x4e\x6e\x58':_0x295a89(0xe4,'\x71\x34\x30\x29')},_0x5ab68c=_0x1a8ff1[_0x295a89(0xc4,'\x37\x66\x66\x40')](String,process.env.EVOLVER_WORKSPACE_KEYCHAIN||_0x1a8ff1[_0x295a89(0xfa,'\x30\x4a\x24\x32')])[_0x295a89(0xee,'\x23\x38\x67\x34')+_0x295a89(0xf0,'\x46\x44\x35\x51')]()[_0x295a89(0xd6,'\x49\x5a\x6b\x49')]();if(_0x1a8ff1['\x4d\x4d\x6f\x65\x42'](_0x5ab68c,_0x1a8ff1['\x63\x61\x7a\x6b\x50'])||_0x1a8ff1[_0x295a89(0x11e,'\x46\x44\x35\x51')](_0x5ab68c,_0x1a8ff1[_0x295a89(0x109,'\x49\x6e\x45\x79')])||_0x5ab68c===_0x295a89(0xf2,'\x39\x6a\x75\x55'))return _0x5ab68c;return _0x1a8ff1['\x55\x56\x75\x43\x57'];}const _0x3820ea=[/no\s+matching\s+entry/i,/could\s+not\s+be\s+found/i,/element\s+not\s+found/i,/\bnoentry\b/i,/\bno\s*entry\b/i,/not\s+found\s+in\s+(?:secure|keychain)/i];function _0x4c0a41(_0x4123db){const _0x4084bd=_0x4e02ee,_0x2e3a24=_0x4123db&&_0x4123db[_0x4084bd(0xd7,'\x4c\x59\x52\x26')]||'';return _0x3820ea[_0x4084bd(0xdf,'\x6c\x52\x6a\x5d')](_0x19cacc=>_0x19cacc[_0x4084bd(0x13a,'\x46\x44\x35\x51')](_0x2e3a24));}function _0x32669f(_0x343f9c){const _0x3d0bfd=_0x4e02ee,_0x22b4ee={'\x48\x6c\x56\x6f\x73':function(_0x44d6ff,_0x48c340){return _0x44d6ff===_0x48c340;},'\x76\x52\x64\x59\x68':_0x3d0bfd(0x139,'\x66\x43\x29\x44'),'\x49\x73\x64\x4b\x42':function(_0x349228){return _0x349228();},'\x76\x51\x49\x78\x45':function(_0x4e1a8d,_0x3f3647){return _0x4e1a8d===_0x3f3647;},'\x4f\x6f\x4e\x42\x46':_0x3d0bfd(0x106,'\x7a\x28\x36\x45'),'\x65\x72\x50\x41\x6c':_0x3d0bfd(0x12f,'\x4c\x59\x52\x26'),'\x51\x6c\x7a\x68\x71':function(_0x3c2e5b,_0x4875ea){return _0x3c2e5b(_0x4875ea);}},_0x3c9e74=_0x22b4ee[_0x3d0bfd(0x112,'\x39\x66\x66\x65')](_0x1998ab),_0x152b27={};_0x152b27[_0x3d0bfd(0xce,'\x72\x47\x32\x69')+'\x65']=![],_0x152b27['\x69\x64']=null;if(!_0x3c9e74)return _0x152b27;try{const _0x2fbbd7=new _0x3c9e74[(_0x3d0bfd(0xe3,'\x25\x68\x35\x42'))](_0x3f8abf,_0x343f9c),_0x3f79e2=_0x2fbbd7[_0x3d0bfd(0x12c,'\x75\x5b\x4e\x77')+_0x3d0bfd(0x10b,'\x79\x38\x6e\x66')]();if(_0x22b4ee[_0x3d0bfd(0x119,'\x30\x4a\x24\x32')](typeof _0x3f79e2,_0x22b4ee['\x76\x52\x64\x59\x68'])&&_0x39bb15[_0x3d0bfd(0xe2,'\x67\x4a\x48\x6c')](_0x3f79e2[_0x3d0bfd(0xf3,'\x79\x38\x6e\x66')]())){if(_0x22b4ee[_0x3d0bfd(0xca,'\x25\x68\x35\x42')](_0x3d0bfd(0xf5,'\x4c\x63\x59\x64'),_0x22b4ee[_0x3d0bfd(0x111,'\x49\x36\x75\x48')])){const _0x40a3ce=new _0x2f64fc[(_0x3d0bfd(0xfc,'\x61\x71\x45\x47'))](_0x25810,_0x1f0bee),_0xc1b742=_0x40a3ce[_0x3d0bfd(0xe7,'\x49\x5a\x6b\x49')+_0x3d0bfd(0x129,'\x40\x4c\x55\x72')]();if(_0x22b4ee['\x48\x6c\x56\x6f\x73'](typeof _0xc1b742,_0x22b4ee[_0x3d0bfd(0xec,'\x39\x6a\x75\x55')])&&_0x220647[_0x3d0bfd(0xd4,'\x72\x47\x32\x69')](_0xc1b742[_0x3d0bfd(0xd6,'\x49\x5a\x6b\x49')]()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0xc1b742[_0x3d0bfd(0xef,'\x37\x66\x66\x40')]()};const _0x5e2f38={};return _0x5e2f38[_0x3d0bfd(0xfe,'\x4e\x57\x56\x26')+'\x65']=!![],_0x5e2f38['\x69\x64']=null,_0x5e2f38;}else return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x3f79e2[_0x3d0bfd(0xed,'\x67\x4a\x48\x6c')]()};}const _0x1a570c={};return _0x1a570c[_0x3d0bfd(0xc1,'\x30\x4a\x24\x32')+'\x65']=!![],_0x1a570c['\x69\x64']=null,_0x1a570c;}catch(_0x584eb0){if(_0x22b4ee[_0x3d0bfd(0x122,'\x4e\x57\x56\x26')]!==_0x22b4ee[_0x3d0bfd(0x137,'\x49\x6e\x45\x79')]){const _0x3d5575=_0xffb317();if(!_0x3d5575)return![];try{const _0xdce415=new _0x3d5575[(_0x3d0bfd(0x100,'\x49\x5a\x6b\x49'))](_0x4cd593,_0x1c0df9);return _0xdce415[_0x3d0bfd(0x10c,'\x39\x42\x62\x58')+_0x3d0bfd(0xc0,'\x66\x4a\x21\x59')](_0x198964),!![];}catch{return![];}}else{const _0x2224da={};_0x2224da[_0x3d0bfd(0x131,'\x66\x4a\x21\x59')+'\x65']=!![],_0x2224da['\x69\x64']=null;if(_0x22b4ee[_0x3d0bfd(0x11d,'\x7a\x28\x36\x45')](_0x4c0a41,_0x584eb0))return _0x2224da;const _0x179af2={};return _0x179af2[_0x3d0bfd(0xc7,'\x38\x73\x45\x65')+'\x65']=![],_0x179af2['\x69\x64']=null,_0x179af2;}}}function _0x166a27(_0x360878,_0x28a48d){const _0x20b16b=_0x4e02ee,_0x541cf2={'\x50\x4b\x6f\x63\x43':function(_0x5da355){return _0x5da355();},'\x41\x6e\x4b\x4a\x4f':_0x20b16b(0x108,'\x4c\x63\x59\x64'),'\x54\x50\x70\x6c\x52':function(_0x1b3f15,_0x3ec508){return _0x1b3f15(_0x3ec508);},'\x73\x74\x66\x4b\x57':function(_0x56036b){return _0x56036b();},'\x49\x4b\x5a\x4d\x78':function(_0x31279d,_0x38e1a7){return _0x31279d===_0x38e1a7;},'\x63\x67\x4d\x42\x54':'\x66\x62\x6f\x47\x43'},_0x4088fc=_0x541cf2[_0x20b16b(0xcb,'\x40\x4c\x55\x72')](_0x1998ab);if(!_0x4088fc)return![];try{const _0x104b34=new _0x4088fc[(_0x20b16b(0x127,'\x5a\x4a\x31\x49'))](_0x3f8abf,_0x360878);return _0x104b34[_0x20b16b(0xd8,'\x79\x38\x6e\x66')+_0x20b16b(0x11b,'\x32\x6f\x56\x21')](_0x28a48d),!![];}catch{if(_0x541cf2[_0x20b16b(0xd0,'\x23\x38\x67\x34')](_0x541cf2[_0x20b16b(0xd5,'\x7a\x28\x36\x45')],_0x541cf2[_0x20b16b(0xda,'\x39\x6a\x75\x55')]))return![];else{const _0x1a1f0b=nQcnNN[_0x20b16b(0xff,'\x76\x57\x48\x5e')](_0x2ff940),_0xe12978={};_0xe12978[_0x20b16b(0x10f,'\x39\x66\x66\x65')+'\x65']=![],_0xe12978['\x69\x64']=null;if(!_0x1a1f0b)return _0xe12978;try{const _0x169ca4=new _0x1a1f0b[(_0x20b16b(0x110,'\x48\x57\x32\x32'))](_0x4f2e3a,_0x3bbdfe),_0x460d8d=_0x169ca4[_0x20b16b(0x133,'\x72\x47\x32\x69')+_0x20b16b(0xe9,'\x25\x35\x43\x29')]();if(typeof _0x460d8d===nQcnNN[_0x20b16b(0x12d,'\x54\x46\x4c\x65')]&&_0x4aa494[_0x20b16b(0x13a,'\x46\x44\x35\x51')](_0x460d8d[_0x20b16b(0xd3,'\x49\x36\x75\x48')]()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x460d8d[_0x20b16b(0x117,'\x32\x6f\x56\x21')]()};const _0x2540f3={};return _0x2540f3[_0x20b16b(0x115,'\x4c\x63\x59\x64')+'\x65']=!![],_0x2540f3['\x69\x64']=null,_0x2540f3;}catch(_0x4f2c4b){const _0x1855ba={};_0x1855ba[_0x20b16b(0xc9,'\x48\x57\x32\x32')+'\x65']=!![],_0x1855ba['\x69\x64']=null;if(nQcnNN[_0x20b16b(0x13b,'\x5e\x5e\x5d\x43')](_0x4e839f,_0x4f2c4b))return _0x1855ba;const _0x27c054={};return _0x27c054[_0x20b16b(0x107,'\x67\x4a\x48\x6c')+'\x65']=![],_0x27c054['\x69\x64']=null,_0x27c054;}}}}function _0xf44e(_0x3ab9d1,_0x526b4c){_0x3ab9d1=_0x3ab9d1-(0xf95*0x1+0x135f+-0x2234);const _0x231cce=_0x8774();let _0x386730=_0x231cce[_0x3ab9d1];if(_0xf44e['\x6d\x6e\x6d\x53\x4b\x6f']===undefined){var _0x3d3c1f=function(_0x5e30db){const _0x3356b0='\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 _0x1bda2e='',_0x376dda='',_0x2d531a=_0x1bda2e+_0x3d3c1f,_0x3c73b8=(''+function(){return-0xaa*0x28+-0x1af*-0xd+-0x85*-0x9;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x17f0+0x2*-0x336+-0x1183);for(let _0x2fbede=-0x2c*-0x7c+0x25ac*-0x1+-0x4*-0x417,_0x9e8e54,_0x5b6ead,_0xfa396c=-0x95e+-0x4*-0x484+-0x6a*0x15;_0x5b6ead=_0x5e30db['\x63\x68\x61\x72\x41\x74'](_0xfa396c++);~_0x5b6ead&&(_0x9e8e54=_0x2fbede%(-0x530*0x3+0x8*-0x388+0xdc*0x33)?_0x9e8e54*(-0x5*-0x33d+-0xc*-0x2ab+-0x1*0x2ff5)+_0x5b6ead:_0x5b6ead,_0x2fbede++%(0x7bd*-0x4+-0x61f+0x279*0xf))?_0x1bda2e+=_0x3c73b8||_0x2d531a['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xfa396c+(-0x1*0x2629+0x64*0x2f+0x69d*0x3))-(-0x61*-0x3+0x1*-0xa3f+-0x926*-0x1)!==0xf*-0x13d+0x1*-0x1da+0x15*0xf9?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x6*0x523+0x1*0x3e5+-0x298*0xd&_0x9e8e54>>(-(-0x14d6+0xc5a+0x87e)*_0x2fbede&0x844+0x1c1a+-0x2458)):_0x2fbede:-0xb32+-0x4*0x80d+0x457*0xa){_0x5b6ead=_0x3356b0['\x69\x6e\x64\x65\x78\x4f\x66'](_0x5b6ead);}for(let _0x4aab00=-0x267*0xd+-0x1364+-0x329f*-0x1,_0x2f31a4=_0x1bda2e['\x6c\x65\x6e\x67\x74\x68'];_0x4aab00<_0x2f31a4;_0x4aab00++){_0x376dda+='\x25'+('\x30\x30'+_0x1bda2e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4aab00)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x3a9*0x4+-0x88d+-0x607))['\x73\x6c\x69\x63\x65'](-(-0xa*-0x1a3+-0x1*-0x45d+0x425*-0x5));}return decodeURIComponent(_0x376dda);};const _0x22a69a=function(_0x4ec505,_0x43cf4c){let _0x1204d2=[],_0x46badf=-0x1*0x1ec1+0x184+0x1*0x1d3d,_0x353483,_0xa12cfe='';_0x4ec505=_0x3d3c1f(_0x4ec505);let _0x59224d;for(_0x59224d=0x1*-0x18d0+0xb5*-0x1c+-0x8ec*-0x5;_0x59224d<0x115b+0x5c4+-0x161f;_0x59224d++){_0x1204d2[_0x59224d]=_0x59224d;}for(_0x59224d=-0x1*0x65a+0x20fc+0x7*-0x3ce;_0x59224d<-0x1*-0x110b+0xc27+-0x322*0x9;_0x59224d++){_0x46badf=(_0x46badf+_0x1204d2[_0x59224d]+_0x43cf4c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x59224d%_0x43cf4c['\x6c\x65\x6e\x67\x74\x68']))%(-0x1fb1+0x6bb*0x5+-0xf6),_0x353483=_0x1204d2[_0x59224d],_0x1204d2[_0x59224d]=_0x1204d2[_0x46badf],_0x1204d2[_0x46badf]=_0x353483;}_0x59224d=-0x95+0x3*0x3f2+-0xb41,_0x46badf=-0x3*0x509+-0x2*0x11e7+-0x1*-0x32e9;for(let _0x33011f=0x1*0x1951+0xfb0*0x2+-0x38b1;_0x33011f<_0x4ec505['\x6c\x65\x6e\x67\x74\x68'];_0x33011f++){_0x59224d=(_0x59224d+(0x38c*-0x1+-0x32f*0x3+0xd1a))%(-0x1202*0x1+0x952+0x9b0),_0x46badf=(_0x46badf+_0x1204d2[_0x59224d])%(-0x25ab*-0x1+0xd*-0xb7+0x2*-0xdb0),_0x353483=_0x1204d2[_0x59224d],_0x1204d2[_0x59224d]=_0x1204d2[_0x46badf],_0x1204d2[_0x46badf]=_0x353483,_0xa12cfe+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x4ec505['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x33011f)^_0x1204d2[(_0x1204d2[_0x59224d]+_0x1204d2[_0x46badf])%(-0x1919+-0x1*0x7f6+0x220f)]);}return _0xa12cfe;};_0xf44e['\x6d\x4e\x51\x70\x72\x7a']=_0x22a69a,_0xf44e['\x4d\x4c\x64\x78\x47\x6b']={},_0xf44e['\x6d\x6e\x6d\x53\x4b\x6f']=!![];}const _0x1b3b28=_0x231cce[-0x7*0x1f1+-0xe83+0x1c1a],_0x1a41b0=_0x3ab9d1+_0x1b3b28,_0x2b6e9f=_0xf44e['\x4d\x4c\x64\x78\x47\x6b'][_0x1a41b0];if(!_0x2b6e9f){if(_0xf44e['\x45\x78\x52\x50\x41\x77']===undefined){const _0x4d77da=function(_0x55780d){this['\x6a\x7a\x43\x63\x50\x51']=_0x55780d,this['\x6a\x50\x63\x6b\x52\x71']=[0x262d+-0xee8+0x5d1*-0x4,0xa83+-0x239a*-0x1+0xf5f*-0x3,0x18c8+-0x18b1+0x17*-0x1],this['\x6e\x51\x78\x49\x43\x46']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x53\x5a\x65\x4b\x50\x41']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x76\x66\x6a\x47\x6b\x52']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x4d77da['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6c\x48\x59\x71\x78\x6d']=function(){const _0x1d0d0c=new RegExp(this['\x53\x5a\x65\x4b\x50\x41']+this['\x76\x66\x6a\x47\x6b\x52']),_0x184049=_0x1d0d0c['\x74\x65\x73\x74'](this['\x6e\x51\x78\x49\x43\x46']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x6a\x50\x63\x6b\x52\x71'][0x2*-0xd55+0x63a*-0x2+0x271f]:--this['\x6a\x50\x63\x6b\x52\x71'][-0x26a2+-0x241*0x4+0x26*0x141];return this['\x6e\x71\x51\x70\x78\x4c'](_0x184049);},_0x4d77da['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6e\x71\x51\x70\x78\x4c']=function(_0x32004b){if(!Boolean(~_0x32004b))return _0x32004b;return this['\x58\x7a\x75\x4f\x4c\x47'](this['\x6a\x7a\x43\x63\x50\x51']);},_0x4d77da['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x58\x7a\x75\x4f\x4c\x47']=function(_0x4287de){for(let _0x40d1a9=0x1b04+0x167b+-0x317f,_0x2fe3ce=this['\x6a\x50\x63\x6b\x52\x71']['\x6c\x65\x6e\x67\x74\x68'];_0x40d1a9<_0x2fe3ce;_0x40d1a9++){this['\x6a\x50\x63\x6b\x52\x71']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x2fe3ce=this['\x6a\x50\x63\x6b\x52\x71']['\x6c\x65\x6e\x67\x74\x68'];}return _0x4287de(this['\x6a\x50\x63\x6b\x52\x71'][0x1047+0x1074+-0x20bb]);},(''+function(){return 0x39*-0x2+0x1354+-0x12e2;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x51b*0x3+0x9*-0xf+0xfd9)&&new _0x4d77da(_0xf44e)['\x6c\x48\x59\x71\x78\x6d'](),_0xf44e['\x45\x78\x52\x50\x41\x77']=!![];}_0x386730=_0xf44e['\x6d\x4e\x51\x70\x72\x7a'](_0x386730,_0x526b4c),_0xf44e['\x4d\x4c\x64\x78\x47\x6b'][_0x1a41b0]=_0x386730;}else _0x386730=_0x2b6e9f;return _0x386730;}const _0x472e74={};_0x472e74[_0x4e02ee(0xf8,'\x67\x4a\x48\x6c')+_0x4e02ee(0xd2,'\x39\x6a\x75\x55')]=_0x3f8abf,_0x472e74[_0x4e02ee(0xf6,'\x54\x31\x56\x52')]=_0x3274a5,_0x472e74[_0x4e02ee(0xf4,'\x49\x5a\x6b\x49')+'\x6e']=_0x1998ab,_0x472e74[_0x4e02ee(0x10a,'\x75\x5b\x4e\x77')+_0x4e02ee(0x104,'\x62\x6f\x47\x39')]=_0x32669f,_0x472e74[_0x4e02ee(0x12b,'\x25\x35\x43\x29')+_0x4e02ee(0x11a,'\x66\x43\x29\x44')]=_0x166a27,_0x472e74[_0x4e02ee(0x10e,'\x67\x4a\x48\x6c')+_0x4e02ee(0xea,'\x66\x4a\x21\x59')]=_0x4c0a41,module[_0x4e02ee(0xc2,'\x5e\x5e\x5d\x43')]=_0x472e74;
|
|
1
|
+
// Keychain-backed workspace-id resolver (issue #111 Phase 1).
|
|
2
|
+
//
|
|
3
|
+
// Layered with paths.js#getWorkspaceId(). The current FS-only secret
|
|
4
|
+
// (`<workspace>/.evolver/workspace-id`, mode 0600) closes the *forgery*
|
|
5
|
+
// gap from PR #109 but leaves a *readability* gap: any process running
|
|
6
|
+
// under the same uid can still read the file and impersonate a workspace
|
|
7
|
+
// it does not own. This module gates that secret behind the OS keychain
|
|
8
|
+
// (macOS Keychain Services / libsecret on Linux / Windows Credential
|
|
9
|
+
// Manager) via the optional `@napi-rs/keyring` native addon.
|
|
10
|
+
//
|
|
11
|
+
// PLATFORM NOTES:
|
|
12
|
+
//
|
|
13
|
+
// macOS — backed by Keychain Services (Security.framework). Entries
|
|
14
|
+
// are encrypted by the OS and scoped to the user login session.
|
|
15
|
+
//
|
|
16
|
+
// Linux — backed by libsecret / GNOME Keyring (or the secret-service
|
|
17
|
+
// D-Bus protocol). Unavailable on headless servers without a
|
|
18
|
+
// D-Bus session; the addon load will succeed but getPassword()
|
|
19
|
+
// throws, causing `available: false` and transparent FS fallback.
|
|
20
|
+
//
|
|
21
|
+
// Windows — backed by Windows Credential Manager (CredRead/CredWrite via
|
|
22
|
+
// DPAPI-encrypted blobs). No extra installation needed when the
|
|
23
|
+
// @napi-rs/keyring addon is present. If the addon is absent (bun
|
|
24
|
+
// binary, stripped package, etc.) the resolver falls back to
|
|
25
|
+
// plaintext FS storage — see WINDOWS SECURITY NOTE below.
|
|
26
|
+
//
|
|
27
|
+
// WINDOWS SECURITY NOTE (fallback path):
|
|
28
|
+
// When @napi-rs/keyring is unavailable on Windows (addon load fails),
|
|
29
|
+
// getWorkspaceId() falls back to a plaintext file at
|
|
30
|
+
// <workspace>/.evolver/workspace-id. On Windows, mode 0o600 passed to
|
|
31
|
+
// fs.writeFileSync / fs.openSync is silently ignored, so the file is NOT
|
|
32
|
+
// restricted to the current user at the filesystem ACL level. The only
|
|
33
|
+
// isolation boundary is the Windows user-profile directory
|
|
34
|
+
// (%USERPROFILE%\.evolver or the workspace path), which is ACL-protected
|
|
35
|
+
// by default but grants access to the SYSTEM account and local Admins.
|
|
36
|
+
// This is weaker than the Unix 0o600 guarantee. Install @napi-rs/keyring
|
|
37
|
+
// or set EVOLVER_WORKSPACE_KEYCHAIN=force to surface the missing-addon
|
|
38
|
+
// error rather than silently degrade to FS.
|
|
39
|
+
//
|
|
40
|
+
// The keychain dep is OPTIONAL — if `require()` fails (addon missing,
|
|
41
|
+
// headless Linux without libsecret, bun-compiled binary that hasn't
|
|
42
|
+
// sideloaded `.node` yet), the resolver returns null and paths.js
|
|
43
|
+
// transparently falls back to the existing FS implementation. Behavior
|
|
44
|
+
// for *every* deployment that doesn't actively opt in stays identical
|
|
45
|
+
// to v1.85.x.
|
|
46
|
+
//
|
|
47
|
+
// Mode is controlled by `EVOLVER_WORKSPACE_KEYCHAIN`:
|
|
48
|
+
// - `auto` (default) — try keychain, fall back to FS on any failure.
|
|
49
|
+
// - `force` — keychain only; throw if unavailable. Use in
|
|
50
|
+
// CI to assert the addon is loaded.
|
|
51
|
+
// - `off` — skip keychain entirely; use FS path.
|
|
52
|
+
//
|
|
53
|
+
// Service / account naming:
|
|
54
|
+
// service = "evomap.evolver.workspace-id"
|
|
55
|
+
// account = absolute path to the workspace root
|
|
56
|
+
// The account is the workspace-root path because that's the natural
|
|
57
|
+
// identity boundary — multiple evolver installs sharing the same
|
|
58
|
+
// workspace root must resolve to the SAME secret (writer/reader parity,
|
|
59
|
+
// PR #109 round-1 MEDIUM).
|
|
60
|
+
|
|
61
|
+
const KEYCHAIN_SERVICE = 'evomap.evolver.workspace-id';
|
|
62
|
+
|
|
63
|
+
// 32 hex chars (16 random bytes) — same shape as the FS impl, kept
|
|
64
|
+
// strict so a legacy migration from FS into keychain validates cleanly.
|
|
65
|
+
const ID_RE = /^[a-f0-9]{32,}$/i;
|
|
66
|
+
|
|
67
|
+
let _cachedAddon = undefined; // undefined = not tried, null = failed, fn = ok
|
|
68
|
+
|
|
69
|
+
function loadAddon() {
|
|
70
|
+
if (_cachedAddon !== undefined) return _cachedAddon;
|
|
71
|
+
try {
|
|
72
|
+
// eslint-disable-next-line global-require
|
|
73
|
+
const mod = require('@napi-rs/keyring');
|
|
74
|
+
if (mod && typeof mod.Entry === 'function') {
|
|
75
|
+
// On Windows this uses the Credential Manager (DPAPI-backed) backend
|
|
76
|
+
// from keyring-rs — no extra setup required when the addon is present.
|
|
77
|
+
_cachedAddon = mod;
|
|
78
|
+
return _cachedAddon;
|
|
79
|
+
}
|
|
80
|
+
// Addon present but does not expose the expected Entry constructor —
|
|
81
|
+
// treat as unavailable; callers fall back to FS storage.
|
|
82
|
+
_cachedAddon = null;
|
|
83
|
+
return null;
|
|
84
|
+
} catch {
|
|
85
|
+
// Addon absent or failed to load (bun binary, stripped package, Windows
|
|
86
|
+
// without the prebuilt .node, etc.). On Windows this means Credential
|
|
87
|
+
// Manager is NOT used and the secret falls back to a plaintext file —
|
|
88
|
+
// see WINDOWS SECURITY NOTE at the top of this file.
|
|
89
|
+
_cachedAddon = null;
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function getMode() {
|
|
95
|
+
const raw = String(process.env.EVOLVER_WORKSPACE_KEYCHAIN || 'auto').toLowerCase().trim();
|
|
96
|
+
if (raw === 'force' || raw === 'off' || raw === 'auto') return raw;
|
|
97
|
+
return 'auto';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Patterns indicating a clean "entry not present" miss across the
|
|
101
|
+
// platform backends keyring-rs talks to:
|
|
102
|
+
// - Linux libsecret → "No matching entry found in secure storage"
|
|
103
|
+
// - macOS Keychain → "The specified item could not be found in the keychain"
|
|
104
|
+
// - Windows Cred Mgr → "Element not found"
|
|
105
|
+
// Anything else thrown by getPassword (locked keyring, no D-Bus, version
|
|
106
|
+
// mismatch, ambiguous entry, …) means the keychain itself isn't usable
|
|
107
|
+
// and MUST surface as `available: false` so callers — particularly
|
|
108
|
+
// `force` mode — can refuse to fall back to FS instead of silently
|
|
109
|
+
// papering over the failure (Bugbot PR #121 round-3 MEDIUM: dead code
|
|
110
|
+
// in force-mode unavailable path).
|
|
111
|
+
const NO_ENTRY_PATTERNS = [
|
|
112
|
+
/no\s+matching\s+entry/i, // libsecret
|
|
113
|
+
/could\s+not\s+be\s+found/i, // macOS
|
|
114
|
+
/element\s+not\s+found/i, // Windows
|
|
115
|
+
/\bnoentry\b/i, // keyring-rs NoEntry (CamelCase)
|
|
116
|
+
/\bno\s*entry\b/i, // generic spaced "no entry"
|
|
117
|
+
/not\s+found\s+in\s+(?:secure|keychain)/i,
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
function _isNoEntryError(err) {
|
|
121
|
+
const msg = (err && err.message) || '';
|
|
122
|
+
return NO_ENTRY_PATTERNS.some((re) => re.test(msg));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Read the secret for `account` from the OS keychain.
|
|
126
|
+
// Returns:
|
|
127
|
+
// { available: true, id: "<32-hex>" } on hit
|
|
128
|
+
// { available: true, id: null } on clean miss (NoEntry-class throw)
|
|
129
|
+
// { available: false, id: null } when the addon isn't loaded OR
|
|
130
|
+
// the keychain throws any non-
|
|
131
|
+
// NoEntry error (locked, no
|
|
132
|
+
// backend, version mismatch, …)
|
|
133
|
+
function readFromKeychain(account) {
|
|
134
|
+
const addon = loadAddon();
|
|
135
|
+
if (!addon) return { available: false, id: null };
|
|
136
|
+
try {
|
|
137
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
138
|
+
const raw = entry.getPassword();
|
|
139
|
+
if (typeof raw === 'string' && ID_RE.test(raw.trim())) {
|
|
140
|
+
return { available: true, id: raw.trim() };
|
|
141
|
+
}
|
|
142
|
+
// getPassword resolved with empty / non-hex — treat as miss; the
|
|
143
|
+
// keychain itself is responding so we stay "available".
|
|
144
|
+
return { available: true, id: null };
|
|
145
|
+
} catch (err) {
|
|
146
|
+
if (_isNoEntryError(err)) return { available: true, id: null };
|
|
147
|
+
return { available: false, id: null };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Persist `id` for `account` in the OS keychain. Returns true on
|
|
152
|
+
// success, false on any failure (callers fall back to FS).
|
|
153
|
+
function writeToKeychain(account, id) {
|
|
154
|
+
const addon = loadAddon();
|
|
155
|
+
if (!addon) return false;
|
|
156
|
+
try {
|
|
157
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
158
|
+
entry.setPassword(id);
|
|
159
|
+
return true;
|
|
160
|
+
} catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
module.exports = {
|
|
166
|
+
KEYCHAIN_SERVICE,
|
|
167
|
+
getMode,
|
|
168
|
+
loadAddon,
|
|
169
|
+
readFromKeychain,
|
|
170
|
+
writeToKeychain,
|
|
171
|
+
// Exported for test coverage of the NoEntry-vs-PlatformFailure
|
|
172
|
+
// discrimination (Bugbot PR #121 round-3 MEDIUM).
|
|
173
|
+
_isNoEntryError,
|
|
174
|
+
};
|