@evomap/evolver 1.89.12 → 1.89.14
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/CONTRIBUTING.md +19 -0
- package/README.md +537 -90
- package/assets/cover.png +0 -0
- package/index.js +24 -11
- package/package.json +18 -6
- package/scripts/a2a_export.js +63 -0
- package/scripts/a2a_ingest.js +79 -0
- package/scripts/a2a_promote.js +118 -0
- package/scripts/analyze_by_skill.js +121 -0
- package/scripts/build_binaries.js +479 -0
- package/scripts/check-changelog.js +166 -0
- package/scripts/extract_log.js +85 -0
- package/scripts/generate_history.js +75 -0
- package/scripts/gep_append_event.js +96 -0
- package/scripts/gep_personality_report.js +234 -0
- package/scripts/human_report.js +147 -0
- package/scripts/recall-verify-report.js +234 -0
- package/scripts/recover_loop.js +61 -0
- package/scripts/refresh_stars_badge.js +168 -0
- package/scripts/seed-merchants.js +91 -0
- package/scripts/suggest_version.js +89 -0
- package/scripts/validate-modules.js +38 -0
- package/scripts/validate-suite.js +78 -0
- package/skills/index.json +14 -0
- package/src/evolve/guards.js +1 -721
- package/src/evolve/pipeline/collect.js +1 -1283
- package/src/evolve/pipeline/dispatch.js +1 -421
- package/src/evolve/pipeline/enrich.js +1 -440
- package/src/evolve/pipeline/hub.js +1 -319
- package/src/evolve/pipeline/select.js +1 -274
- package/src/evolve/pipeline/signals.js +1 -206
- package/src/evolve/utils.js +1 -264
- package/src/evolve.js +1 -350
- package/src/gep/a2aProtocol.js +1 -4463
- package/src/gep/antiAbuseTelemetry.js +1 -233
- package/src/gep/autoDistillConv.js +1 -205
- package/src/gep/autoDistillLlm.js +1 -315
- package/src/gep/candidateEval.js +1 -92
- package/src/gep/candidates.js +1 -198
- package/src/gep/contentHash.js +1 -30
- package/src/gep/conversationDistiller.js +1 -270
- package/src/gep/conversationSniffer.js +1 -266
- package/src/gep/crypto.js +1 -89
- package/src/gep/curriculum.js +1 -163
- package/src/gep/deviceId.js +1 -218
- package/src/gep/envFingerprint.js +1 -118
- package/src/gep/epigenetics.js +1 -31
- package/src/gep/execBridge.js +1 -712
- package/src/gep/explore.js +1 -289
- package/src/gep/hash.js +1 -15
- package/src/gep/hubFetch.js +1 -608
- package/src/gep/hubReview.js +1 -207
- package/src/gep/hubSearch.js +1 -526
- package/src/gep/hubVerify.js +1 -306
- package/src/gep/learningSignals.js +1 -89
- package/src/gep/memoryGraph.js +1 -1449
- package/src/gep/memoryGraphAdapter.js +1 -203
- package/src/gep/mutation.js +1 -203
- package/src/gep/narrativeMemory.js +1 -108
- package/src/gep/openPRRegistry.js +1 -205
- package/src/gep/personality.js +1 -423
- package/src/gep/policyCheck.js +1 -599
- package/src/gep/prompt.js +1 -836
- package/src/gep/recallInject.js +1 -409
- package/src/gep/recallVerifier.js +1 -318
- package/src/gep/reflection.js +1 -177
- package/src/gep/savingsCore.js +1 -112
- package/src/gep/selector.js +1 -602
- package/src/gep/skillDistiller.js +1 -1294
- package/src/gep/solidify.js +1 -1699
- package/src/gep/strategy.js +1 -136
- package/src/gep/tokenSavings.js +1 -95
- package/src/gep/workspaceKeychain.js +1 -174
- package/src/proxy/extensions/traceControl.js +1 -109
- package/src/proxy/index.js +50 -0
- package/src/proxy/inject.js +1 -52
- package/src/proxy/lifecycle/manager.js +40 -1
- package/src/proxy/server/routes.js +10 -0
- package/src/proxy/sync/outbound.js +1 -1
- package/src/proxy/trace/extractor.js +1 -1403
- package/src/proxy/trace/usage.js +1 -105
- package/.cursor/BUGBOT.md +0 -182
- package/.env.example +0 -68
- package/.git-commit-guard-token +0 -1
- package/.github/CODEOWNERS +0 -63
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +0 -23
- package/.github/pull_request_template.md +0 -45
- package/.github/workflows/test.yml +0 -75
- package/CHANGELOG.md +0 -1367
- package/README.public.md +0 -578
- package/SECURITY.md +0 -108
- package/assets/gep/events.jsonl +0 -3
- package/examples/atp-consumer-quickstart.md +0 -100
- package/examples/hello-world.md +0 -38
- package/proxy-package.json +0 -39
- package/public.manifest.json +0 -145
- /package/assets/gep/{genes.json → genes.seed.json} +0 -0
- /package/{bundled-skills → skills}/_meta/SKILL.md +0 -0
package/src/gep/strategy.js
CHANGED
|
@@ -1,136 +1 @@
|
|
|
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 };
|
|
1
|
+
var _0xb5b3ca=_0xd701;(function(_0x58d78f,_0x5f423c){var _0x44dee1=_0xd701,_0x389c9d=_0x58d78f();while(!![]){try{var _0x3bfb3c=parseInt(_0x44dee1(0x1db,'\x47\x4e\x72\x28'))/(-0x2*-0x11ea+-0x9c*-0x29+-0x3ccf*0x1)+parseInt(_0x44dee1(0x173,'\x30\x63\x48\x4f'))/(-0x16ff+0x12b+0x1ae*0xd)*(parseInt(_0x44dee1(0x228,'\x46\x49\x45\x33'))/(-0x8*0x313+0x2086+0x7eb*-0x1))+-parseInt(_0x44dee1(0x1b2,'\x31\x69\x5e\x7a'))/(0x2291*0x1+-0x3*0xced+0x21d*0x2)*(parseInt(_0x44dee1(0x1a4,'\x72\x48\x76\x62'))/(0x8d4+-0x1acb+0x11fc))+parseInt(_0x44dee1(0x160,'\x67\x26\x51\x71'))/(-0x6*0x4b3+-0x25+0x35*0x89)+parseInt(_0x44dee1(0x1b9,'\x28\x73\x2a\x29'))/(-0x2446+-0xbd7+-0x2*-0x1812)+-parseInt(_0x44dee1(0x201,'\x6a\x71\x40\x77'))/(0x4b0+-0x102f+-0xd*-0xe3)+-parseInt(_0x44dee1(0x213,'\x65\x5e\x40\x7a'))/(-0x2580+-0x102e+0x35b7);if(_0x3bfb3c===_0x5f423c)break;else _0x389c9d['push'](_0x389c9d['shift']());}catch(_0x221197){_0x389c9d['push'](_0x389c9d['shift']());}}}(_0x319e,-0xf2842+-0xb1779*0x1+0x27ce75));var _0x5e7811=(function(){var _0x3a0699=_0xd701,_0x2a6a92={};_0x2a6a92[_0x3a0699(0x192,'\x4f\x77\x51\x4a')]=function(_0x545c05,_0x1e4f69){return _0x545c05===_0x1e4f69;},_0x2a6a92[_0x3a0699(0x16a,'\x65\x5e\x40\x7a')]=_0x3a0699(0x21a,'\x28\x73\x2a\x29'),_0x2a6a92[_0x3a0699(0x1a8,'\x49\x77\x4f\x75')]=_0x3a0699(0x15f,'\x58\x58\x44\x44'),_0x2a6a92[_0x3a0699(0x1ec,'\x47\x4e\x72\x28')]=_0x3a0699(0x16e,'\x58\x58\x44\x44')+'\x6e',_0x2a6a92[_0x3a0699(0x215,'\x5a\x69\x4b\x4b')]=function(_0x26b736,_0x55ff2f){return _0x26b736<_0x55ff2f;},_0x2a6a92[_0x3a0699(0x1b0,'\x38\x5e\x56\x34')]=_0x3a0699(0x1e7,'\x6a\x47\x35\x29'),_0x2a6a92[_0x3a0699(0x18b,'\x38\x5e\x56\x34')]='\x57\x6f\x44\x6d\x43';var _0x15d68f=_0x2a6a92,_0x1fb947=!![];return function(_0x150e7b,_0xcf557b){var _0x4324e6=_0x3a0699,_0x282023={'\x50\x48\x6c\x49\x74':_0x15d68f['\x75\x47\x48\x70\x41'],'\x63\x59\x77\x4e\x6a':_0x15d68f[_0x4324e6(0x1ec,'\x47\x4e\x72\x28')],'\x50\x63\x53\x76\x4b':'\x65\x76\x6f\x6c\x75\x74\x69\x6f'+_0x4324e6(0x1ed,'\x6f\x41\x4a\x41')+_0x4324e6(0x14b,'\x67\x26\x51\x71'),'\x4d\x6f\x71\x4e\x41':function(_0x1eebe2,_0xb65d06){var _0xffa82e=_0x4324e6;return _0x15d68f[_0xffa82e(0x204,'\x66\x52\x5d\x51')](_0x1eebe2,_0xb65d06);},'\x46\x62\x6a\x69\x5a':_0x4324e6(0x1f1,'\x35\x40\x33\x67')};if(_0x15d68f[_0x4324e6(0x1fb,'\x5a\x69\x4b\x4b')]===_0x15d68f['\x68\x6a\x62\x62\x6c'])return _0x147065[_0x4324e6(0x214,'\x4f\x77\x51\x4a')](_0x30fbe3);else{var _0x2e630b=_0x1fb947?function(){var _0x4dc8ca=_0x4324e6;if(_0xcf557b){if(_0x15d68f[_0x4dc8ca(0x1d7,'\x45\x24\x74\x61')](_0x15d68f[_0x4dc8ca(0x151,'\x4c\x25\x64\x75')],'\x4f\x64\x4d\x79\x44')){var _0x2251c8=_0xcf557b[_0x4dc8ca(0x156,'\x38\x5e\x56\x34')](_0x150e7b,arguments);return _0xcf557b=null,_0x2251c8;}else{var _0x48e859=_0x1a8bc7['\x72\x65\x73\x6f\x6c\x76\x65'](_0x2296b6,'\x2e\x2e','\x2e\x2e',_0x282023['\x50\x48\x6c\x49\x74'],_0x4dc8ca(0x183,'\x33\x48\x6b\x28')+_0x4dc8ca(0x217,'\x45\x24\x74\x61')+_0x4dc8ca(0x15d,'\x74\x66\x51\x31')),_0x179642=_0x24ca6d[_0x4dc8ca(0x1ce,'\x72\x48\x76\x62')](_0x1f4765,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x282023[_0x4dc8ca(0x1dc,'\x28\x73\x2a\x29')],_0x282023[_0x4dc8ca(0x1f2,'\x4e\x42\x4e\x4a')],_0x282023['\x50\x63\x53\x76\x4b']),_0x5d4b90=[_0x48e859,_0x179642];for(var _0x194527=-0xbf1+0x38c*0x9+-0x21*0x9b;_0x282023[_0x4dc8ca(0x18d,'\x69\x53\x4e\x28')](_0x194527,_0x5d4b90[_0x4dc8ca(0x21f,'\x35\x4f\x59\x24')]);_0x194527++){if(_0x2e79c7[_0x4dc8ca(0x20a,'\x72\x48\x76\x62')+'\x6e\x63'](_0x5d4b90[_0x194527])){var _0x165e8b=_0xeda399['\x70\x61\x72\x73\x65'](_0x122bdc[_0x4dc8ca(0x203,'\x35\x4f\x59\x24')+'\x53\x79\x6e\x63'](_0x5d4b90[_0x194527],_0x282023[_0x4dc8ca(0x190,'\x67\x78\x74\x30')]));return _0x165e8b&&_0x2b39a8[_0x4dc8ca(0x170,'\x46\x49\x45\x33')](_0x165e8b[_0x4dc8ca(0x147,'\x6c\x28\x48\x36')+'\x6e\x74'])?_0x165e8b[_0x4dc8ca(0x1a7,'\x41\x68\x28\x70')+'\x6e\x74']:-0x20c5+0x157c+0x1b*0x6b;}}}}}:function(){};return _0x1fb947=![],_0x2e630b;}};}()),_0x2b3085=_0x5e7811(this,function(){var _0xa60dc2=_0xd701;return _0x2b3085[_0xa60dc2(0x193,'\x47\x63\x79\x30')]()[_0xa60dc2(0x1b6,'\x48\x5d\x68\x70')](_0xa60dc2(0x223,'\x67\x26\x51\x71')+_0xa60dc2(0x17b,'\x72\x71\x50\x38'))[_0xa60dc2(0x153,'\x46\x49\x45\x33')]()[_0xa60dc2(0x172,'\x6f\x41\x4a\x41')+_0xa60dc2(0x197,'\x41\x68\x28\x70')](_0x2b3085)[_0xa60dc2(0x15b,'\x59\x5a\x31\x59')](_0xa60dc2(0x167,'\x58\x58\x44\x44')+_0xa60dc2(0x20b,'\x28\x73\x2a\x29'));});_0x2b3085();function _0x319e(){var _0x2d6f4d=['\x64\x43\x6b\x46\x57\x34\x75\x52\x72\x43\x6b\x74\x6b\x6d\x6b\x33','\x57\x34\x64\x64\x51\x53\x6b\x35\x66\x47\x6e\x77\x78\x4a\x61\x6b\x57\x50\x46\x64\x52\x58\x42\x64\x4d\x57','\x68\x4e\x4a\x64\x4b\x38\x6b\x63\x44\x4b\x2f\x63\x51\x67\x75','\x57\x34\x75\x69\x57\x50\x76\x2b\x75\x4a\x78\x64\x51\x57','\x57\x34\x38\x75\x57\x52\x50\x2f\x76\x63\x42\x64\x50\x32\x75','\x78\x4d\x46\x63\x53\x6d\x6f\x52\x79\x38\x6f\x58\x57\x4f\x68\x64\x4b\x47','\x42\x62\x70\x64\x49\x31\x69\x41\x41\x38\x6f\x67\x42\x57','\x64\x65\x4a\x63\x53\x33\x79\x32','\x66\x73\x50\x6f','\x71\x53\x6b\x4f\x74\x38\x6f\x79\x6d\x57','\x57\x52\x62\x59\x41\x5a\x75','\x66\x68\x6c\x64\x54\x53\x6b\x68\x46\x77\x78\x63\x53\x33\x75','\x67\x68\x56\x64\x4f\x43\x6b\x63\x44\x75\x2f\x63\x50\x4d\x75','\x76\x32\x57\x6c\x6b\x61','\x57\x36\x2f\x64\x55\x47\x79\x5a\x57\x50\x37\x63\x4c\x72\x42\x63\x56\x71','\x57\x51\x37\x64\x53\x53\x6f\x51\x79\x49\x69','\x57\x51\x78\x64\x48\x53\x6f\x47\x74\x57','\x71\x4e\x4e\x63\x52\x53\x6b\x47\x57\x34\x50\x61\x57\x51\x5a\x64\x4e\x71','\x57\x36\x74\x63\x47\x53\x6b\x6e\x57\x52\x74\x63\x53\x47','\x57\x4f\x5a\x64\x4e\x43\x6b\x77\x57\x36\x65','\x57\x52\x42\x63\x55\x38\x6f\x2f\x73\x65\x54\x67\x70\x74\x34','\x65\x4b\x68\x64\x52\x43\x6f\x77\x57\x52\x5a\x64\x4e\x65\x4f\x77','\x57\x35\x75\x73\x57\x35\x64\x63\x47\x61','\x79\x38\x6f\x56\x75\x53\x6b\x47','\x79\x53\x6f\x49\x77\x57','\x63\x49\x74\x63\x48\x53\x6f\x65\x71\x53\x6f\x78','\x57\x37\x43\x34\x57\x50\x33\x63\x54\x38\x6b\x63\x7a\x71','\x57\x35\x76\x70\x57\x52\x35\x77\x6d\x43\x6b\x52','\x64\x53\x6f\x48\x57\x4f\x65\x4f\x57\x51\x4b','\x57\x4f\x37\x64\x48\x6d\x6b\x42\x57\x36\x30\x36','\x69\x5a\x42\x63\x48\x38\x6f\x6a\x71\x6d\x6f\x78\x57\x51\x46\x64\x4b\x47','\x57\x50\x4f\x34\x57\x35\x33\x63\x51\x6d\x6f\x77','\x62\x4a\x46\x64\x4e\x76\x31\x70','\x75\x4c\x46\x63\x52\x4a\x39\x65\x64\x43\x6f\x77\x70\x57','\x64\x71\x5a\x64\x4a\x75\x35\x53','\x46\x38\x6f\x4b\x77\x38\x6b\x54\x57\x51\x31\x4c\x66\x53\x6b\x31','\x42\x53\x6b\x41\x71\x43\x6b\x75\x57\x35\x34','\x6e\x64\x69\x73\x65\x4b\x4a\x63\x54\x64\x7a\x33','\x57\x35\x68\x63\x4a\x4b\x70\x64\x47\x76\x6c\x63\x48\x47','\x57\x37\x35\x6d\x44\x6d\x6f\x4b\x70\x43\x6f\x64\x57\x35\x6c\x63\x52\x71','\x57\x50\x6c\x64\x47\x6d\x6b\x43\x57\x37\x57\x4c\x57\x35\x43','\x71\x30\x37\x63\x53\x57','\x57\x51\x30\x50\x74\x53\x6f\x63\x61\x72\x43\x63\x41\x61','\x57\x52\x74\x64\x4c\x43\x6f\x37\x74\x4b\x56\x63\x54\x53\x6f\x2b\x70\x61','\x71\x4c\x4e\x63\x4e\x4d\x79\x63','\x76\x53\x6b\x73\x45\x53\x6f\x71\x63\x64\x4f\x34','\x64\x47\x39\x66\x41\x38\x6f\x4d\x62\x32\x5a\x63\x52\x57','\x41\x6d\x6f\x32\x76\x53\x6b\x32\x57\x51\x6c\x63\x4c\x48\x46\x63\x4c\x71','\x57\x50\x43\x61\x68\x43\x6b\x30\x6f\x43\x6b\x42\x57\x37\x39\x69','\x57\x51\x74\x64\x53\x53\x6f\x39','\x57\x36\x47\x6f\x57\x34\x56\x63\x49\x53\x6f\x78\x57\x52\x4a\x64\x4d\x33\x4f','\x57\x37\x6d\x63\x6d\x6d\x6f\x59','\x57\x34\x35\x65\x57\x51\x50\x73\x69\x6d\x6b\x77\x78\x71','\x63\x38\x6f\x55\x57\x4f\x30\x49\x57\x52\x70\x64\x4b\x4e\x57\x62','\x75\x43\x6b\x57\x57\x35\x44\x2f\x57\x37\x74\x63\x47\x5a\x47\x45\x57\x4f\x56\x63\x47\x6d\x6f\x54\x77\x6d\x6f\x63','\x57\x52\x70\x64\x4b\x43\x6f\x56\x74\x75\x64\x64\x56\x53\x6b\x54\x69\x71','\x43\x53\x6f\x4b\x77\x38\x6f\x47\x57\x37\x39\x6a\x68\x53\x6b\x58','\x76\x66\x4a\x63\x4f\x4a\x39\x75\x6f\x53\x6f\x71\x6a\x71','\x57\x50\x4e\x63\x4d\x4d\x6c\x64\x52\x75\x6d','\x71\x5a\x56\x63\x4f\x53\x6f\x45\x6b\x48\x68\x63\x52\x75\x48\x49\x6b\x4d\x75\x68','\x75\x43\x6b\x72\x73\x38\x6b\x62\x57\x35\x4a\x63\x55\x57\x34','\x57\x36\x53\x45\x57\x34\x79\x56\x75\x32\x57\x68\x75\x57','\x57\x36\x64\x63\x53\x43\x6b\x65\x57\x51\x70\x63\x4e\x5a\x34','\x57\x50\x46\x63\x56\x38\x6f\x2b\x72\x30\x61\x70\x68\x4a\x34','\x75\x68\x64\x64\x55\x43\x6f\x4b\x41\x53\x6b\x5a\x57\x4f\x34\x47','\x57\x51\x38\x54\x73\x53\x6f\x6c','\x57\x4f\x70\x64\x4a\x38\x6b\x56\x57\x37\x75\x79','\x57\x34\x4c\x6f\x57\x36\x35\x66\x6e\x38\x6b\x37\x74\x4a\x71','\x57\x36\x78\x64\x4b\x38\x6f\x52\x42\x4e\x37\x64\x52\x53\x6f\x37','\x66\x4c\x70\x63\x49\x53\x6b\x78','\x57\x4f\x30\x68\x64\x6d\x6b\x38\x6d\x38\x6b\x66\x57\x37\x6a\x79','\x57\x50\x37\x64\x4c\x76\x6a\x7a\x44\x71','\x57\x52\x52\x64\x52\x6d\x6b\x6b\x74\x4b\x70\x63\x4c\x57','\x57\x37\x39\x2f\x79\x57','\x71\x43\x6b\x70\x45\x43\x6f\x74\x63\x5a\x34\x34','\x57\x50\x6d\x45\x57\x37\x47\x63\x42\x53\x6f\x56\x64\x5a\x6a\x64\x73\x31\x47\x58\x57\x37\x75','\x57\x34\x70\x64\x54\x62\x47\x2f\x57\x50\x68\x63\x4d\x4c\x70\x63\x54\x47','\x41\x62\x56\x64\x4c\x75\x61\x61\x6b\x6d\x6f\x61\x43\x47','\x57\x50\x5a\x64\x54\x76\x6e\x30\x42\x76\x6c\x63\x4c\x43\x6f\x32','\x61\x4a\x4a\x63\x4d\x57','\x57\x35\x76\x70\x57\x52\x35\x77\x6d\x43\x6b\x52\x44\x59\x47','\x57\x37\x5a\x63\x54\x43\x6b\x79\x57\x52\x46\x63\x4a\x47','\x57\x36\x47\x34\x57\x4f\x64\x63\x55\x43\x6b\x7a\x42\x47','\x42\x58\x74\x64\x4b\x31\x79\x67\x6b\x6d\x6f\x63\x6b\x57','\x57\x35\x68\x63\x4a\x4b\x70\x64\x47\x76\x6c\x63\x48\x53\x6b\x76\x57\x50\x57','\x41\x43\x6f\x52\x74\x6d\x6b\x4d\x57\x51\x74\x63\x4a\x64\x74\x63\x4d\x61','\x57\x35\x42\x64\x4c\x53\x6f\x6a\x41\x32\x30','\x76\x32\x78\x64\x51\x6d\x6f\x47','\x57\x50\x65\x64\x68\x43\x6b\x30\x6f\x53\x6b\x76\x57\x51\x76\x6f','\x67\x38\x6f\x67\x43\x6d\x6b\x6e\x57\x52\x71\x33\x57\x37\x7a\x73','\x73\x77\x4e\x63\x50\x66\x71\x65','\x61\x43\x6b\x67\x57\x34\x71','\x6c\x5a\x66\x66\x42\x43\x6f\x53\x79\x31\x72\x34','\x57\x52\x74\x63\x4e\x53\x6b\x48\x64\x73\x79\x34\x57\x36\x64\x63\x4a\x57','\x57\x37\x71\x77\x57\x50\x39\x39\x73\x61','\x64\x6d\x6f\x41\x66\x47\x68\x64\x50\x53\x6f\x79\x57\x35\x65\x76','\x65\x6d\x6f\x4c\x57\x50\x61\x49\x57\x51\x4e\x64\x48\x77\x30','\x65\x4e\x70\x64\x50\x43\x6b\x68\x44\x31\x74\x63\x55\x71','\x57\x34\x47\x45\x57\x51\x44\x56\x75\x4a\x33\x64\x4f\x4e\x69','\x65\x5a\x76\x75\x7a\x43\x6f\x4c\x43\x57\x35\x6f','\x57\x36\x72\x36\x42\x63\x6d\x54\x57\x51\x5a\x64\x4b\x38\x6f\x48','\x57\x50\x4a\x63\x50\x4c\x76\x58\x57\x34\x79\x46\x57\x34\x5a\x63\x48\x57','\x45\x6d\x6f\x54\x75\x71','\x62\x38\x6b\x7a\x57\x37\x34\x56\x71\x53\x6b\x63\x6d\x53\x6b\x57','\x57\x34\x61\x74\x57\x34\x61','\x6c\x68\x42\x63\x4a\x4e\x30\x6d','\x74\x62\x70\x64\x49\x31\x69\x41\x41\x38\x6f\x67\x42\x57','\x46\x76\x42\x63\x54\x43\x6b\x30\x57\x35\x71','\x46\x47\x76\x54\x57\x35\x54\x59\x43\x32\x54\x64','\x76\x75\x38\x4d\x6e\x53\x6b\x4d\x76\x77\x37\x63\x4a\x33\x58\x48\x65\x33\x4f','\x57\x37\x44\x49\x57\x51\x6a\x2b\x6c\x61','\x57\x4f\x68\x63\x56\x38\x6f\x2b\x73\x31\x34\x71\x63\x57','\x57\x50\x47\x2f\x69\x38\x6b\x6e\x67\x61','\x57\x51\x70\x64\x47\x38\x6b\x43\x57\x37\x30\x58\x57\x50\x57\x59\x6e\x47','\x7a\x47\x54\x64\x57\x35\x66\x50','\x68\x32\x68\x64\x50\x43\x6f\x6b\x57\x50\x61','\x57\x35\x71\x6b\x57\x51\x66\x7a\x45\x6d\x6b\x51\x74\x59\x79','\x68\x48\x56\x64\x54\x43\x6b\x79\x76\x59\x6e\x4d\x57\x34\x47','\x57\x37\x33\x63\x4c\x53\x6b\x56\x57\x51\x64\x63\x56\x57','\x57\x35\x30\x50\x57\x37\x4f\x45\x72\x71','\x6e\x64\x47\x4c\x73\x62\x52\x63\x4b\x64\x4c\x35','\x57\x34\x78\x64\x4c\x63\x65\x45\x57\x4f\x4f','\x57\x50\x5a\x63\x51\x53\x6f\x35\x74\x76\x38\x70\x66\x63\x38','\x57\x36\x61\x69\x57\x34\x61\x51\x72\x4e\x65\x61\x77\x47','\x77\x78\x37\x63\x53\x49\x44\x71\x64\x43\x6f\x41\x46\x47','\x57\x35\x6e\x36\x78\x53\x6f\x71\x68\x57','\x6d\x72\x6e\x33\x76\x6d\x6f\x58','\x57\x34\x69\x4b\x57\x51\x44\x34\x71\x73\x64\x64\x54\x59\x47','\x57\x52\x47\x4e\x57\x37\x4a\x63\x4a\x53\x6f\x4c\x78\x6d\x6f\x49\x6c\x57','\x57\x37\x66\x39\x79\x38\x6b\x4c\x6b\x53\x6f\x78\x57\x35\x64\x63\x52\x71','\x57\x37\x38\x4c\x57\x4f\x64\x63\x54\x38\x6b\x63\x41\x6d\x6f\x39','\x46\x58\x35\x68\x57\x4f\x57','\x57\x36\x30\x2f\x57\x35\x47\x73\x74\x71','\x45\x6d\x6b\x48\x77\x38\x6f\x49\x57\x37\x4c\x76\x68\x6d\x6b\x4b','\x57\x52\x69\x77\x69\x6d\x6b\x5a\x6a\x47','\x46\x6d\x6f\x6a\x57\x52\x79\x4f\x57\x37\x33\x64\x4b\x32\x6a\x52','\x57\x37\x78\x63\x4d\x53\x6b\x48\x67\x73\x79\x53\x57\x36\x69','\x57\x52\x2f\x64\x53\x43\x6f\x76\x41\x68\x56\x63\x4a\x6d\x6b\x71\x63\x71','\x43\x6d\x6f\x55\x77\x53\x6f\x47\x57\x36\x48\x2f\x68\x43\x6b\x58','\x67\x74\x31\x71\x79\x6d\x6f\x4e\x41\x62\x65','\x6b\x47\x72\x65\x57\x34\x6d\x4c\x43\x4e\x62\x59','\x72\x4d\x78\x64\x49\x53\x6f\x2f\x71\x61','\x63\x53\x6f\x66\x6d\x61\x64\x64\x4f\x6d\x6f\x75\x57\x35\x47\x79','\x71\x43\x6b\x70\x45\x53\x6f\x44\x64\x4a\x4f','\x73\x6d\x6b\x67\x72\x38\x6b\x41\x57\x34\x2f\x63\x50\x71','\x57\x36\x52\x64\x51\x53\x6f\x5a\x44\x31\x43\x4a\x57\x37\x57','\x57\x37\x71\x50\x57\x50\x68\x63\x53\x43\x6b\x45\x70\x6d\x6f\x52\x57\x52\x43','\x57\x37\x52\x63\x52\x38\x6b\x53\x6d\x5a\x56\x64\x4d\x38\x6f\x74\x46\x68\x4a\x63\x47\x73\x72\x47\x45\x53\x6b\x73','\x57\x4f\x52\x64\x47\x43\x6b\x6c\x57\x36\x50\x32\x57\x50\x38\x5a\x6a\x57','\x57\x50\x5a\x64\x54\x75\x6a\x58\x71\x4b\x4e\x64\x4c\x6d\x6f\x38','\x57\x35\x4b\x33\x57\x52\x68\x63\x4a\x53\x6b\x34','\x57\x35\x79\x34\x57\x52\x4e\x63\x54\x53\x6b\x62','\x70\x57\x2f\x64\x4b\x30\x69','\x66\x32\x52\x63\x4c\x33\x30\x42\x57\x4f\x58\x45\x67\x47','\x57\x50\x35\x6e\x57\x36\x57\x2f\x65\x77\x64\x63\x4f\x77\x2f\x63\x4a\x57\x43\x61\x57\x52\x38\x79','\x46\x38\x6f\x55\x72\x47','\x62\x38\x6f\x34\x57\x4f\x4f\x2b\x57\x52\x68\x64\x47\x66\x53\x44','\x57\x4f\x57\x64\x57\x36\x75\x74','\x57\x37\x61\x74\x6a\x6d\x6b\x5a\x68\x57\x38\x64\x57\x51\x30','\x69\x4a\x71\x54\x64\x30\x37\x63\x50\x68\x79','\x66\x6d\x6f\x41\x78\x53\x6b\x4f\x57\x51\x43','\x63\x63\x37\x63\x4c\x53\x6f\x62\x71\x6d\x6f\x36\x57\x51\x68\x64\x49\x71','\x61\x63\x33\x64\x4f\x65\x6a\x35','\x64\x48\x4a\x64\x49\x65\x54\x64\x42\x74\x6e\x6b','\x57\x52\x56\x64\x52\x6d\x6b\x42\x78\x75\x4e\x63\x4a\x71','\x61\x43\x6f\x43\x6d\x53\x6b\x70\x76\x4e\x58\x55\x57\x34\x58\x43\x45\x53\x6f\x32\x57\x4f\x7a\x72','\x74\x53\x6b\x67\x75\x38\x6b\x67','\x79\x67\x37\x64\x4e\x43\x6f\x74\x72\x47','\x57\x34\x4b\x41\x57\x52\x62\x31\x46\x59\x46\x64\x50\x4d\x43','\x63\x76\x64\x63\x4c\x4d\x47\x6f\x57\x50\x66\x75\x77\x47','\x61\x4a\x4e\x63\x4d\x38\x6f\x63\x75\x38\x6f\x79\x57\x52\x52\x64\x4d\x71','\x67\x47\x52\x64\x4f\x6d\x6b\x70\x74\x63\x50\x38\x57\x50\x57','\x57\x36\x48\x6f\x57\x4f\x6e\x6f\x68\x61','\x73\x33\x65\x77\x6e\x6d\x6b\x39\x6b\x4b\x6a\x72\x57\x34\x44\x4c\x57\x52\x79\x55\x57\x51\x79','\x66\x53\x6f\x4d\x45\x6d\x6b\x72\x57\x50\x47','\x75\x4c\x4e\x63\x53\x74\x39\x45\x63\x38\x6f\x41','\x57\x4f\x70\x64\x4d\x6d\x6b\x77\x57\x36\x6d\x4a\x57\x4f\x30\x31\x6f\x47','\x57\x4f\x6c\x64\x54\x75\x31\x59\x43\x65\x47','\x57\x50\x4b\x77\x68\x43\x6b\x6f\x69\x38\x6b\x6f\x57\x52\x35\x46','\x57\x52\x30\x39\x70\x58\x79\x58\x57\x52\x68\x63\x47\x6d\x6b\x4b','\x57\x51\x30\x4e\x6f\x38\x6b\x43\x61\x38\x6b\x35\x57\x50\x48\x49','\x57\x51\x46\x63\x55\x53\x6b\x52\x6e\x72\x6e\x34\x57\x52\x6c\x64\x55\x57','\x65\x43\x6f\x45\x70\x38\x6b\x4e\x57\x51\x34\x47\x57\x36\x50\x6f','\x45\x49\x4a\x63\x47\x43\x6f\x72\x6e\x4c\x68\x63\x54\x67\x69','\x57\x36\x43\x69\x57\x34\x65\x5a\x75\x77\x71\x44\x75\x71','\x46\x6d\x6b\x4e\x79\x6d\x6b\x66\x57\x36\x47','\x72\x4a\x52\x63\x50\x53\x6f\x43\x69\x62\x68\x63\x4e\x75\x50\x38\x61\x4e\x71\x6f','\x57\x35\x47\x73\x57\x52\x54\x49','\x61\x43\x6b\x68\x57\x34\x71\x4f\x72\x53\x6b\x67\x6e\x43\x6b\x39','\x6f\x38\x6b\x71\x57\x34\x71\x4b','\x6f\x53\x6b\x6d\x57\x35\x4f\x4d\x77\x43\x6b\x76\x79\x43\x6b\x78','\x57\x4f\x56\x64\x53\x76\x66\x35\x46\x71\x33\x64\x49\x38\x6f\x54','\x63\x78\x42\x63\x4b\x78\x71\x67\x57\x4f\x54\x77\x76\x61','\x57\x36\x7a\x4d\x57\x50\x4e\x64\x4b\x53\x6b\x47\x63\x38\x6b\x47\x43\x73\x33\x64\x51\x43\x6f\x6f\x77\x76\x62\x4e','\x6b\x4e\x4e\x64\x48\x6d\x6b\x68\x43\x47\x37\x64\x53\x67\x70\x64\x47\x53\x6b\x2f\x71\x62\x52\x63\x52\x57','\x63\x31\x5a\x63\x4b\x6d\x6b\x44\x6b\x73\x70\x63\x56\x4b\x38','\x57\x37\x47\x30\x57\x50\x5a\x63\x53\x43\x6b\x65\x44\x43\x6f\x52\x57\x52\x57','\x57\x34\x52\x63\x48\x76\x46\x64\x48\x75\x70\x63\x55\x38\x6b\x2f','\x42\x32\x68\x64\x4c\x43\x6f\x52\x46\x57','\x57\x36\x75\x64\x57\x35\x79\x56','\x57\x51\x44\x51\x46\x64\x57\x39\x57\x4f\x52\x64\x4a\x38\x6b\x30','\x79\x57\x72\x70\x57\x35\x54\x5a\x44\x32\x31\x4c','\x75\x53\x6f\x6d\x78\x6d\x6f\x69\x57\x36\x69','\x43\x53\x6b\x6f\x57\x4f\x4b\x4d\x57\x37\x6c\x64\x4a\x4d\x43\x49','\x57\x36\x78\x64\x4f\x43\x6f\x53\x44\x71','\x43\x63\x68\x63\x49\x57','\x67\x31\x42\x64\x4f\x6d\x6f\x46\x57\x51\x75','\x64\x75\x6c\x63\x49\x53\x6b\x42\x6d\x49\x56\x63\x53\x65\x38','\x63\x43\x6f\x7a\x41\x38\x6b\x6a\x57\x36\x65\x57\x57\x36\x54\x43','\x57\x37\x2f\x63\x56\x43\x6b\x6e\x57\x51\x52\x63\x49\x4a\x50\x55','\x6c\x43\x6f\x42\x57\x52\x6d\x6a\x57\x34\x6d','\x57\x50\x56\x64\x4c\x6d\x6f\x41\x73\x4b\x47','\x61\x32\x74\x64\x48\x53\x6b\x46\x41\x4b\x2f\x63\x53\x4d\x43','\x69\x68\x64\x63\x55\x6d\x6b\x38\x6b\x61','\x57\x50\x75\x30\x70\x38\x6b\x33\x64\x47','\x57\x4f\x46\x64\x4e\x53\x6b\x6a\x57\x36\x6d\x56','\x57\x52\x5a\x64\x51\x6d\x6b\x39\x57\x35\x53\x53','\x57\x52\x47\x37\x57\x34\x47','\x66\x57\x52\x64\x50\x53\x6b\x45\x77\x59\x65','\x75\x47\x44\x51\x57\x34\x76\x54','\x42\x73\x4a\x63\x4b\x38\x6f\x61\x6a\x31\x61','\x62\x43\x6b\x68\x72\x43\x6b\x43\x57\x35\x70\x63\x55\x31\x46\x64\x49\x57','\x57\x37\x50\x47\x41\x6d\x6f\x52','\x57\x52\x69\x56\x57\x35\x5a\x63\x49\x53\x6f\x34\x73\x38\x6f\x30','\x62\x43\x6b\x6d\x57\x34\x43\x4f\x71\x53\x6b\x45','\x57\x52\x4a\x63\x50\x53\x6b\x31\x69\x57\x31\x48\x57\x51\x2f\x63\x51\x6d\x6b\x66\x45\x38\x6f\x56\x57\x4f\x69\x31','\x66\x77\x52\x63\x4c\x78\x30\x67\x57\x50\x44\x39\x67\x57','\x57\x36\x69\x68\x57\x34\x30\x35\x73\x57','\x6f\x38\x6b\x6f\x57\x51\x79\x49\x57\x36\x5a\x64\x49\x68\x47\x55','\x57\x52\x4f\x36\x75\x43\x6f\x70\x68\x72\x65\x4e\x41\x61','\x65\x66\x46\x63\x4a\x43\x6b\x44\x6d\x5a\x74\x63\x52\x33\x4b','\x65\x4c\x74\x64\x54\x53\x6f\x74\x57\x51\x42\x64\x48\x4c\x62\x78','\x71\x6d\x6f\x62\x57\x4f\x6a\x50\x67\x38\x6f\x6f\x41\x53\x6f\x58','\x7a\x75\x4a\x63\x52\x66\x53\x30','\x64\x43\x6f\x31\x6d\x72\x33\x64\x54\x43\x6f\x6a\x57\x34\x44\x74','\x71\x53\x6b\x46\x46\x43\x6f\x59\x6c\x47','\x78\x38\x6b\x6c\x41\x6d\x6f\x7a\x63\x57','\x57\x36\x61\x45\x57\x50\x31\x49\x75\x71','\x62\x38\x6b\x66\x57\x34\x34'];_0x319e=function(){return _0x2d6f4d;};return _0x319e();}var _0x4fc8d8=require('\x66\x73'),_0x33ddfb=require(_0xb5b3ca(0x1af,'\x52\x6b\x4f\x53')),_0x333938={};_0x333938[_0xb5b3ca(0x1fd,'\x65\x5e\x40\x7a')]=0.2,_0x333938[_0xb5b3ca(0x17a,'\x46\x49\x45\x33')]=0.2,_0x333938[_0xb5b3ca(0x22a,'\x58\x58\x44\x44')]=0.5,_0x333938[_0xb5b3ca(0x15e,'\x69\x53\x4e\x28')]=0.1,_0x333938['\x72\x65\x70\x61\x69\x72\x4c\x6f'+_0xb5b3ca(0x19c,'\x47\x4e\x72\x28')+_0xb5b3ca(0x19f,'\x6a\x71\x40\x77')]=0.5,_0x333938[_0xb5b3ca(0x18a,'\x72\x48\x76\x62')]=_0xb5b3ca(0x174,'\x57\x4e\x21\x4a'),_0x333938[_0xb5b3ca(0x225,'\x59\x5a\x31\x59')+_0xb5b3ca(0x1c9,'\x58\x58\x44\x44')]=_0xb5b3ca(0x1ba,'\x6a\x47\x35\x29')+_0xb5b3ca(0x207,'\x45\x24\x74\x61')+'\x2e\x20\x53\x74\x65\x61\x64\x79'+_0xb5b3ca(0x1f5,'\x4c\x25\x64\x75')+_0xb5b3ca(0x14f,'\x34\x64\x64\x73')+_0xb5b3ca(0x20d,'\x47\x63\x79\x30');var _0xecf2cc={};_0xecf2cc[_0xb5b3ca(0x194,'\x46\x4f\x23\x6b')]=0.05,_0xecf2cc[_0xb5b3ca(0x1e8,'\x4f\x32\x73\x71')]=0.1,_0xecf2cc[_0xb5b3ca(0x218,'\x30\x63\x48\x4f')]=0.8,_0xecf2cc[_0xb5b3ca(0x19b,'\x65\x5e\x40\x7a')]=0.05,_0xecf2cc[_0xb5b3ca(0x1be,'\x28\x73\x2a\x29')+'\x6f\x70\x54\x68\x72\x65\x73\x68'+_0xb5b3ca(0x16d,'\x58\x58\x44\x44')]=0.3,_0xecf2cc[_0xb5b3ca(0x16b,'\x65\x5e\x40\x7a')]=_0xb5b3ca(0x1a0,'\x6b\x75\x6c\x24')+_0xb5b3ca(0x224,'\x34\x64\x64\x73'),_0xecf2cc[_0xb5b3ca(0x1ad,'\x4f\x32\x73\x71')+'\x69\x6f\x6e']='\x53\x79\x73\x74\x65\x6d\x20\x69'+'\x73\x20\x73\x74\x61\x62\x6c\x65'+_0xb5b3ca(0x14a,'\x4c\x25\x64\x75')+'\x7a\x65\x20\x6e\x65\x77\x20\x66'+_0xb5b3ca(0x219,'\x61\x50\x61\x46')+_0xb5b3ca(0x1ef,'\x74\x66\x51\x31')+_0xb5b3ca(0x232,'\x66\x52\x5d\x51')+'\x2e';var _0x2699b5={};_0x2699b5[_0xb5b3ca(0x189,'\x28\x73\x2a\x29')]=0.4,_0x2699b5['\x6f\x70\x74\x69\x6d\x69\x7a\x65']=0.35,_0x2699b5[_0xb5b3ca(0x231,'\x43\x6c\x61\x33')]=0.2,_0x2699b5[_0xb5b3ca(0x1f9,'\x72\x71\x50\x38')]=0.05,_0x2699b5[_0xb5b3ca(0x17f,'\x77\x4c\x59\x4e')+_0xb5b3ca(0x1ee,'\x69\x53\x4e\x28')+_0xb5b3ca(0x1b7,'\x74\x66\x51\x31')]=0.7,_0x2699b5[_0xb5b3ca(0x19a,'\x26\x74\x76\x36')]=_0xb5b3ca(0x18c,'\x30\x63\x48\x4f')+'\x67',_0x2699b5[_0xb5b3ca(0x1a6,'\x5a\x70\x76\x5b')+'\x69\x6f\x6e']=_0xb5b3ca(0x1c1,'\x57\x4e\x21\x4a')+'\x62\x69\x67\x20\x63\x68\x61\x6e'+_0xb5b3ca(0x1d3,'\x4c\x6f\x4d\x4b')+_0xb5b3ca(0x1e2,'\x28\x73\x2a\x29')+'\x62\x69\x6c\x69\x74\x79\x20\x61'+_0xb5b3ca(0x1b1,'\x28\x73\x2a\x29')+_0xb5b3ca(0x196,'\x38\x5e\x56\x34');function _0xd701(_0x5db6d8,_0x3ea2a1){_0x5db6d8=_0x5db6d8-(-0x1c*-0x10a+0x7dd+-0x8ec*0x4);var _0x2d0099=_0x319e();var _0x55f097=_0x2d0099[_0x5db6d8];if(_0xd701['\x75\x4e\x71\x74\x6e\x55']===undefined){var _0x267e4e=function(_0x1cbc7d){var _0x317398='\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 _0x16f17a='',_0x3d6073='',_0x4b43bf=_0x16f17a+_0x267e4e,_0x14874e=(''+function(){return-0xcf4+0x69*0x35+-0x8c9;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x160c+0x240+0x13cd);for(var _0xa9233b=-0x241c+-0x6b*-0xb+-0x1f83*-0x1,_0x58f5f3,_0x879201,_0x57902c=-0x1153+-0xabc+0x1c0f;_0x879201=_0x1cbc7d['\x63\x68\x61\x72\x41\x74'](_0x57902c++);~_0x879201&&(_0x58f5f3=_0xa9233b%(0x9ea+-0x73f+0x2a7*-0x1)?_0x58f5f3*(0x24a0+-0x1ae7+-0x5*0x1e5)+_0x879201:_0x879201,_0xa9233b++%(0x2e7*0x9+0x50f*0x5+0x306*-0x11))?_0x16f17a+=_0x14874e||_0x4b43bf['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x57902c+(0xa*0x1c5+0x347*-0x5+-0x145))-(-0x26ab+0x4a0+0x2215)!==-0x11ea+-0x355+0x7*0x309?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x16af+0x1*-0x255d+0x3d0b&_0x58f5f3>>(-(0x18b1+0x38c+0x291*-0xb)*_0xa9233b&0x3*-0x795+-0x17*0x17f+-0x1a*-0x233)):_0xa9233b:-0x21e7+0x258*0x1+0x1f8f){_0x879201=_0x317398['\x69\x6e\x64\x65\x78\x4f\x66'](_0x879201);}for(var _0xc2beb0=0x1013+-0x6cd*-0x3+0x3a*-0xa1,_0x21fbe7=_0x16f17a['\x6c\x65\x6e\x67\x74\x68'];_0xc2beb0<_0x21fbe7;_0xc2beb0++){_0x3d6073+='\x25'+('\x30\x30'+_0x16f17a['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xc2beb0)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x167+0x258f+0x6*-0x604))['\x73\x6c\x69\x63\x65'](-(0x629+-0x1275+0x19*0x7e));}return decodeURIComponent(_0x3d6073);};var _0x3d3a81=function(_0x342162,_0x115a8f){var _0x314285=[],_0x56a415=-0x15c4+0x1521+0xa3,_0x3d6d9f,_0x4fbf27='';_0x342162=_0x267e4e(_0x342162);var _0x5e7831;for(_0x5e7831=-0x27f*0x6+-0x1653+0x425*0x9;_0x5e7831<-0x1*-0x1534+0xb*-0x307+-0xd19*-0x1;_0x5e7831++){_0x314285[_0x5e7831]=_0x5e7831;}for(_0x5e7831=0x25c7+0xe5*0x25+0x60*-0xbd;_0x5e7831<-0x10e+-0x7c*-0x46+0x36*-0x97;_0x5e7831++){_0x56a415=(_0x56a415+_0x314285[_0x5e7831]+_0x115a8f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5e7831%_0x115a8f['\x6c\x65\x6e\x67\x74\x68']))%(-0x1*0x7be+0x4b3*-0x1+-0x1f*-0x6f),_0x3d6d9f=_0x314285[_0x5e7831],_0x314285[_0x5e7831]=_0x314285[_0x56a415],_0x314285[_0x56a415]=_0x3d6d9f;}_0x5e7831=0x3*0xbc5+-0xb*-0xbf+-0x14*0x22d,_0x56a415=-0x1*0x425+-0x1*-0x268a+0x1*-0x2265;for(var _0xdd1cbf=-0x1*-0x1f9+0x445*0x2+0x3*-0x381;_0xdd1cbf<_0x342162['\x6c\x65\x6e\x67\x74\x68'];_0xdd1cbf++){_0x5e7831=(_0x5e7831+(-0xe7a+-0x110f*0x1+0x16f*0x16))%(-0x1631+-0xac0+0x21f1),_0x56a415=(_0x56a415+_0x314285[_0x5e7831])%(-0x53*-0x41+0x36+0x241*-0x9),_0x3d6d9f=_0x314285[_0x5e7831],_0x314285[_0x5e7831]=_0x314285[_0x56a415],_0x314285[_0x56a415]=_0x3d6d9f,_0x4fbf27+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x342162['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xdd1cbf)^_0x314285[(_0x314285[_0x5e7831]+_0x314285[_0x56a415])%(0x4f*0x75+-0x1d30+0x5*-0x12f)]);}return _0x4fbf27;};_0xd701['\x50\x4c\x7a\x69\x68\x79']=_0x3d3a81,_0xd701['\x6d\x56\x71\x64\x53\x70']={},_0xd701['\x75\x4e\x71\x74\x6e\x55']=!![];}var _0x327f8d=_0x2d0099[-0x15a6+0x6*0x223+0x71*0x14],_0x24d969=_0x5db6d8+_0x327f8d,_0x3b86f1=_0xd701['\x6d\x56\x71\x64\x53\x70'][_0x24d969];if(!_0x3b86f1){if(_0xd701['\x73\x67\x52\x75\x63\x76']===undefined){var _0x3f8986=function(_0x7b7672){this['\x49\x64\x47\x78\x73\x6a']=_0x7b7672,this['\x6d\x66\x49\x62\x67\x44']=[0x15*0x1c8+0x2527+-0x2*0x2547,-0x22a3+-0x22d*-0x11+-0x25a,0xfe4+-0x1*-0x17c9+-0x27ad*0x1],this['\x79\x4f\x58\x4b\x49\x53']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6d\x51\x49\x74\x4e\x76']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x55\x6c\x61\x65\x48\x73']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x3f8986['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x48\x56\x4d\x75\x61\x76']=function(){var _0x1b50e6=new RegExp(this['\x6d\x51\x49\x74\x4e\x76']+this['\x55\x6c\x61\x65\x48\x73']),_0x56f75e=_0x1b50e6['\x74\x65\x73\x74'](this['\x79\x4f\x58\x4b\x49\x53']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x6d\x66\x49\x62\x67\x44'][-0x3*0x7cd+-0x181f+0x1*0x2f87]:--this['\x6d\x66\x49\x62\x67\x44'][-0x593*0x1+0x23f5+-0x1e62*0x1];return this['\x75\x72\x4a\x56\x68\x4e'](_0x56f75e);},_0x3f8986['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x75\x72\x4a\x56\x68\x4e']=function(_0x2f0829){if(!Boolean(~_0x2f0829))return _0x2f0829;return this['\x59\x47\x4b\x56\x59\x41'](this['\x49\x64\x47\x78\x73\x6a']);},_0x3f8986['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x59\x47\x4b\x56\x59\x41']=function(_0x482cc9){for(var _0xe06bd4=-0x20*0xc7+-0x1*0x1a6b+0x5b3*0x9,_0x508c99=this['\x6d\x66\x49\x62\x67\x44']['\x6c\x65\x6e\x67\x74\x68'];_0xe06bd4<_0x508c99;_0xe06bd4++){this['\x6d\x66\x49\x62\x67\x44']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x508c99=this['\x6d\x66\x49\x62\x67\x44']['\x6c\x65\x6e\x67\x74\x68'];}return _0x482cc9(this['\x6d\x66\x49\x62\x67\x44'][-0x504*-0x2+-0x2*-0xc80+-0x2308]);},(''+function(){return-0x2685+-0x2e*0xc5+0x49eb;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x577*-0x1+0x148b+0xf13*-0x1)&&new _0x3f8986(_0xd701)['\x48\x56\x4d\x75\x61\x76'](),_0xd701['\x73\x67\x52\x75\x63\x76']=!![];}_0x55f097=_0xd701['\x50\x4c\x7a\x69\x68\x79'](_0x55f097,_0x3ea2a1),_0xd701['\x6d\x56\x71\x64\x53\x70'][_0x24d969]=_0x55f097;}else _0x55f097=_0x3b86f1;return _0x55f097;}var _0x55a09d={};_0x55a09d['\x72\x65\x70\x61\x69\x72']=0.8,_0x55a09d[_0xb5b3ca(0x1d1,'\x72\x71\x50\x38')]=0.18,_0x55a09d['\x69\x6e\x6e\x6f\x76\x61\x74\x65']=0x0,_0x55a09d[_0xb5b3ca(0x1ff,'\x67\x26\x51\x71')]=0.02,_0x55a09d[_0xb5b3ca(0x161,'\x45\x24\x74\x61')+_0xb5b3ca(0x1d5,'\x58\x58\x44\x44')+_0xb5b3ca(0x158,'\x69\x53\x4e\x28')]=0x1,_0x55a09d[_0xb5b3ca(0x162,'\x4e\x42\x4e\x4a')]=_0xb5b3ca(0x22c,'\x58\x58\x44\x44')+_0xb5b3ca(0x14c,'\x59\x5a\x31\x59'),_0x55a09d['\x64\x65\x73\x63\x72\x69\x70\x74'+_0xb5b3ca(0x1bd,'\x30\x63\x48\x4f')]=_0xb5b3ca(0x1df,'\x38\x5e\x56\x34')+_0xb5b3ca(0x221,'\x6c\x28\x48\x36')+_0xb5b3ca(0x20c,'\x57\x24\x7a\x63')+_0xb5b3ca(0x163,'\x4c\x25\x64\x75')+_0xb5b3ca(0x15c,'\x4f\x77\x51\x4a')+_0xb5b3ca(0x22e,'\x45\x24\x74\x61')+_0xb5b3ca(0x17d,'\x6a\x71\x40\x77');var _0x27a0d4={};_0x27a0d4[_0xb5b3ca(0x1c0,'\x66\x52\x5d\x51')]=0.6,_0x27a0d4[_0xb5b3ca(0x14e,'\x43\x6c\x61\x33')]=0.22,_0x27a0d4['\x69\x6e\x6e\x6f\x76\x61\x74\x65']=0.15,_0x27a0d4[_0xb5b3ca(0x21d,'\x41\x68\x28\x70')]=0.03,_0x27a0d4[_0xb5b3ca(0x1c2,'\x46\x4f\x23\x6b')+_0xb5b3ca(0x1cd,'\x65\x63\x25\x71')+_0xb5b3ca(0x186,'\x29\x37\x42\x31')]=0.8,_0x27a0d4[_0xb5b3ca(0x14d,'\x33\x48\x6b\x28')]=_0xb5b3ca(0x182,'\x4f\x32\x73\x71')+'\x61\x62\x69\x6c\x69\x7a\x61\x74'+_0xb5b3ca(0x176,'\x72\x71\x50\x38'),_0x27a0d4[_0xb5b3ca(0x1c3,'\x29\x37\x42\x31')+_0xb5b3ca(0x209,'\x5a\x70\x76\x5b')]=_0xb5b3ca(0x1bb,'\x57\x4e\x21\x4a')+'\x63\x6c\x65\x73\x2e\x20\x50\x72'+_0xb5b3ca(0x1fc,'\x65\x63\x25\x71')+_0xb5b3ca(0x1cb,'\x69\x29\x76\x6b')+_0xb5b3ca(0x1ab,'\x4e\x42\x4e\x4a')+_0xb5b3ca(0x1d2,'\x6c\x28\x48\x36')+_0xb5b3ca(0x1a5,'\x31\x69\x5e\x7a')+_0xb5b3ca(0x1e9,'\x4e\x42\x4e\x4a')+'\x67\x2e';var _0x119894={};_0x119894[_0xb5b3ca(0x212,'\x48\x5d\x68\x70')]=0.55,_0x119894[_0xb5b3ca(0x1c6,'\x39\x34\x4b\x51')]=0.25,_0x119894[_0xb5b3ca(0x1a3,'\x72\x48\x76\x62')]=0.05,_0x119894[_0xb5b3ca(0x1cf,'\x46\x49\x45\x33')]=0.15,_0x119894[_0xb5b3ca(0x198,'\x52\x6b\x4f\x53')+'\x6f\x70\x54\x68\x72\x65\x73\x68'+'\x6f\x6c\x64']=0.9,_0x119894[_0xb5b3ca(0x1e0,'\x35\x40\x33\x67')]=_0xb5b3ca(0x1ca,'\x72\x71\x50\x38')+_0xb5b3ca(0x206,'\x67\x78\x74\x30'),_0x119894[_0xb5b3ca(0x1d0,'\x6f\x41\x4a\x41')+'\x69\x6f\x6e']=_0xb5b3ca(0x211,'\x67\x78\x74\x30')+_0xb5b3ca(0x1f3,'\x5a\x70\x76\x5b')+_0xb5b3ca(0x1e6,'\x47\x63\x79\x30')+_0xb5b3ca(0x200,'\x66\x52\x5d\x51')+_0xb5b3ca(0x19e,'\x39\x34\x4b\x51')+_0xb5b3ca(0x1e3,'\x61\x50\x61\x46')+_0xb5b3ca(0x191,'\x5a\x70\x76\x5b')+_0xb5b3ca(0x202,'\x38\x5e\x56\x34')+_0xb5b3ca(0x1fa,'\x35\x40\x33\x67')+_0xb5b3ca(0x166,'\x33\x48\x6b\x28');var _0xd51c92={};_0xd51c92[_0xb5b3ca(0x17c,'\x6a\x47\x35\x29')]=_0x333938,_0xd51c92[_0xb5b3ca(0x148,'\x35\x40\x33\x67')]=_0xecf2cc,_0xd51c92[_0xb5b3ca(0x159,'\x61\x50\x61\x46')]=_0x2699b5,_0xd51c92[_0xb5b3ca(0x1bc,'\x35\x4f\x59\x24')+_0xb5b3ca(0x1d4,'\x5a\x70\x76\x5b')]=_0x55a09d,_0xd51c92[_0xb5b3ca(0x22d,'\x35\x4f\x59\x24')+_0xb5b3ca(0x1f6,'\x69\x29\x76\x6b')]=_0x27a0d4,_0xd51c92['\x73\x74\x65\x61\x64\x79\x2d\x73'+_0xb5b3ca(0x178,'\x6c\x28\x48\x36')]=_0x119894;var _0x3cbc8f=_0xd51c92;function _0x307482(){var _0x3747f2=_0xb5b3ca,_0x5cd47b={};_0x5cd47b[_0x3747f2(0x177,'\x65\x5e\x40\x7a')]=_0x3747f2(0x1fe,'\x4f\x77\x51\x4a');var _0x3aa793=_0x5cd47b;try{var _0xee93ad=_0x33ddfb[_0x3747f2(0x1b8,'\x65\x5e\x40\x7a')](__dirname,'\x2e\x2e','\x2e\x2e',_0x3aa793[_0x3747f2(0x1e4,'\x34\x66\x41\x46')],_0x3747f2(0x164,'\x52\x6b\x4f\x53')+_0x3747f2(0x1ea,'\x41\x68\x28\x70')+_0x3747f2(0x181,'\x38\x5e\x56\x34')),_0x1ac8f6=_0x33ddfb[_0x3747f2(0x1dd,'\x4f\x32\x73\x71')](__dirname,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x3747f2(0x188,'\x66\x52\x5d\x51'),_0x3747f2(0x1c7,'\x34\x64\x64\x73')+'\x6e',_0x3747f2(0x18f,'\x41\x68\x28\x70')+_0x3747f2(0x169,'\x65\x63\x25\x71')+'\x6a\x73\x6f\x6e'),_0x4b36a0=[_0xee93ad,_0x1ac8f6];for(var _0x27f4d9=-0x2286+0xa87*0x2+-0x4*-0x35e;_0x27f4d9<_0x4b36a0[_0x3747f2(0x1ac,'\x34\x66\x41\x46')];_0x27f4d9++){if(_0x4fc8d8[_0x3747f2(0x19d,'\x29\x37\x42\x31')+'\x6e\x63'](_0x4b36a0[_0x27f4d9])){var _0x419e27=JSON[_0x3747f2(0x1bf,'\x34\x66\x41\x46')](_0x4fc8d8[_0x3747f2(0x203,'\x35\x4f\x59\x24')+_0x3747f2(0x22b,'\x58\x58\x44\x44')](_0x4b36a0[_0x27f4d9],_0x3747f2(0x1a1,'\x57\x24\x7a\x63')));return _0x419e27&&Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x419e27[_0x3747f2(0x179,'\x46\x49\x45\x33')+'\x6e\x74'])?_0x419e27[_0x3747f2(0x20f,'\x30\x63\x48\x4f')+'\x6e\x74']:0x1*0x1d5c+0x1221+-0x1*0x2f7d;}}}catch(_0x1889fc){}return-0x2142+-0x1*-0x472+0xe68*0x2;}function _0x2be1f9(_0x50c7c3){var _0x489acd=_0xb5b3ca,_0x301584={'\x59\x44\x4a\x70\x55':_0x489acd(0x1ae,'\x5a\x69\x4b\x4b')+_0x489acd(0x1b3,'\x43\x6c\x61\x33'),'\x50\x4a\x43\x4d\x44':_0x489acd(0x148,'\x35\x40\x33\x67'),'\x4d\x4a\x6b\x75\x77':function(_0x5b9578,_0x2da883){return _0x5b9578(_0x2da883);},'\x4c\x65\x49\x6e\x71':_0x489acd(0x1d8,'\x57\x4e\x21\x4a'),'\x68\x56\x67\x70\x59':function(_0x3f89e7,_0x313b11){return _0x3f89e7===_0x313b11;},'\x58\x6d\x4b\x71\x68':_0x489acd(0x149,'\x5a\x70\x76\x5b'),'\x4b\x70\x50\x58\x5a':function(_0x866d75,_0x4c2c48){return _0x866d75(_0x4c2c48);},'\x4b\x43\x47\x65\x4f':_0x489acd(0x184,'\x6b\x75\x6c\x24'),'\x6b\x47\x56\x6a\x59':'\x61\x75\x74\x6f','\x6a\x6a\x41\x49\x66':function(_0x139926,_0x5964c2){return _0x139926&&_0x5964c2;},'\x41\x70\x69\x68\x76':'\x42\x42\x46\x4e\x77','\x53\x4f\x55\x42\x62':function(_0x1a82ba,_0x150c2b){return _0x1a82ba>_0x150c2b;},'\x5a\x46\x44\x54\x7a':function(_0x32ced9,_0xeed16f){return _0x32ced9<=_0xeed16f;},'\x43\x69\x59\x55\x56':_0x489acd(0x199,'\x31\x69\x5e\x7a')+'\x61\x62\x69\x6c\x69\x7a\x65','\x4d\x59\x7a\x7a\x79':function(_0x38db75,_0x5c96e1){return _0x38db75!==_0x5c96e1;},'\x66\x4c\x4a\x50\x4f':_0x489acd(0x1f8,'\x5a\x70\x76\x5b')+_0x489acd(0x216,'\x6f\x41\x4a\x41')+'\x74\x65','\x67\x51\x58\x57\x6a':function(_0x54e6bb,_0x5adfba){return _0x54e6bb!==_0x5adfba;},'\x70\x45\x71\x4c\x71':_0x489acd(0x21e,'\x38\x5e\x56\x34')+_0x489acd(0x195,'\x74\x66\x51\x31')+_0x489acd(0x229,'\x6f\x41\x4a\x41')},_0x36a79e=_0x50c7c3&&Array[_0x489acd(0x171,'\x6f\x41\x4a\x41')](_0x50c7c3[_0x489acd(0x150,'\x34\x66\x41\x46')])?_0x50c7c3['\x73\x69\x67\x6e\x61\x6c\x73']:[],_0x5917cc=_0x301584[_0x489acd(0x1d9,'\x77\x4c\x59\x4e')](String,process.env.EVOLVE_STRATEGY||_0x301584[_0x489acd(0x1f4,'\x39\x34\x4b\x51')])[_0x489acd(0x1f7,'\x6a\x71\x40\x77')+_0x489acd(0x1d6,'\x6b\x75\x6c\x24')]()[_0x489acd(0x17e,'\x31\x69\x5e\x7a')](),_0x333a52=![];if(!process.env.EVOLVE_STRATEGY){if(_0x301584[_0x489acd(0x180,'\x34\x66\x41\x46')](_0x301584[_0x489acd(0x15a,'\x35\x40\x33\x67')],_0x301584[_0x489acd(0x1cc,'\x6f\x41\x4a\x41')])){var _0x2eb840=_0x301584[_0x489acd(0x168,'\x26\x74\x76\x36')](String,process.env.FORCE_INNOVATION||process.env.EVOLVE_FORCE_INNOVATION||'')[_0x489acd(0x1da,'\x35\x40\x33\x67')+'\x61\x73\x65']();_0x2eb840===_0x301584[_0x489acd(0x210,'\x67\x78\x74\x30')]&&(_0x5917cc=_0x489acd(0x226,'\x4e\x42\x4e\x4a'),_0x333a52=!![]);}else _0x208165=_0x301584[_0x489acd(0x227,'\x4f\x77\x51\x4a')];}var _0x52035e=!process.env.EVOLVE_STRATEGY||_0x5917cc===_0x301584[_0x489acd(0x16c,'\x6f\x41\x4a\x41')]||_0x301584[_0x489acd(0x21c,'\x34\x64\x64\x73')](_0x5917cc,_0x301584[_0x489acd(0x175,'\x45\x24\x74\x61')]);if(_0x301584[_0x489acd(0x20e,'\x34\x64\x64\x73')](_0x52035e,!_0x333a52)){if(_0x301584['\x41\x70\x69\x68\x76']!==_0x489acd(0x154,'\x43\x6c\x61\x33'))_0xee77cb=_0x301584[_0x489acd(0x152,'\x6a\x71\x40\x77')],_0x434e2e=!![];else{var _0x51fcc8=_0x307482();_0x301584[_0x489acd(0x1e5,'\x4e\x42\x4e\x4a')](_0x51fcc8,0xe1b+-0x57*-0x57+-0x2bac*0x1)&&_0x301584[_0x489acd(0x157,'\x38\x5e\x56\x34')](_0x51fcc8,-0x9af*-0x4+0x9*-0x12f+-0x1c10)&&(_0x5917cc=_0x301584[_0x489acd(0x1eb,'\x74\x66\x51\x31')]);if(_0x301584[_0x489acd(0x18e,'\x67\x78\x74\x30')](_0x36a79e[_0x489acd(0x233,'\x46\x4f\x23\x6b')](_0x301584[_0x489acd(0x1de,'\x39\x34\x4b\x51')]),-(-0xa9f+-0x2593+-0x1c9*-0x1b)))_0x5917cc=_0x301584[_0x489acd(0x1c4,'\x67\x26\x51\x71')];else _0x301584[_0x489acd(0x1c8,'\x26\x74\x76\x36')](_0x36a79e[_0x489acd(0x1a2,'\x28\x73\x2a\x29')](_0x301584[_0x489acd(0x1b5,'\x35\x4f\x59\x24')]),-(-0x1b73+-0x422+0x1f96))&&(_0x5917cc=_0x489acd(0x1b4,'\x39\x34\x4b\x51')+_0x489acd(0x1c5,'\x5a\x69\x4b\x4b'));}}if(_0x301584[_0x489acd(0x1e1,'\x33\x48\x6b\x28')](_0x5917cc,_0x301584[_0x489acd(0x155,'\x39\x34\x4b\x51')]))_0x5917cc=_0x301584[_0x489acd(0x205,'\x66\x52\x5d\x51')];var _0x182a3f=_0x3cbc8f[_0x5917cc]||_0x3cbc8f[_0x301584[_0x489acd(0x145,'\x5a\x69\x4b\x4b')]],_0x2eee6e={};return _0x2eee6e[_0x489acd(0x185,'\x29\x37\x42\x31')]=_0x5917cc,Object[_0x489acd(0x187,'\x30\x63\x48\x4f')]({},_0x182a3f,_0x2eee6e);}function _0x5cde3b(){var _0x49c4a7=_0xb5b3ca;return Object[_0x49c4a7(0x146,'\x4e\x42\x4e\x4a')](_0x3cbc8f);}var _0x578303={};_0x578303[_0xb5b3ca(0x165,'\x43\x6c\x61\x33')+_0xb5b3ca(0x1aa,'\x4f\x77\x51\x4a')]=_0x2be1f9,_0x578303[_0xb5b3ca(0x220,'\x39\x34\x4b\x51')+'\x65\x67\x79\x4e\x61\x6d\x65\x73']=_0x5cde3b,_0x578303[_0xb5b3ca(0x222,'\x39\x34\x4b\x51')+'\x45\x53']=_0x3cbc8f,module[_0xb5b3ca(0x1f0,'\x66\x52\x5d\x51')]=_0x578303;
|
package/src/gep/tokenSavings.js
CHANGED
|
@@ -1,95 +1 @@
|
|
|
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
|
-
// These constants are the E3 formula of the savings-core spec (single source
|
|
20
|
-
// of truth: EvoMap/savings-core, vendored at conformance/savings-core/). To
|
|
21
|
-
// change one, change savings-core first and re-vendor ALL consumers -- see
|
|
22
|
-
// src/gep/savingsCore.js.
|
|
23
|
-
|
|
24
|
-
const { CONSTANTS } = require('./savingsCore');
|
|
25
|
-
|
|
26
|
-
// Fixed overhead of any derive loop (reading context, reasoning, validation),
|
|
27
|
-
// independent of patch size.
|
|
28
|
-
const DERIVE_BASE_TOKENS = CONSTANTS.reuse_estimator.derive_base_tokens;
|
|
29
|
-
// Marginal derivation cost per resulting changed line (reasoning + tool
|
|
30
|
-
// round-trips + output to produce and verify each line).
|
|
31
|
-
const TOKENS_PER_CHANGED_LINE = CONSTANTS.reuse_estimator.tokens_per_changed_line;
|
|
32
|
-
// Guardrail against pathological blast_radius values.
|
|
33
|
-
const DERIVE_CAP_TOKENS = CONSTANTS.reuse_estimator.derive_cap_tokens;
|
|
34
|
-
// Patch size assumed when an asset carries no blast_radius to scale from.
|
|
35
|
-
const TYPICAL_CHANGED_LINES = CONSTANTS.reuse_estimator.typical_changed_lines;
|
|
36
|
-
// A 'reference' reuse still re-derives (the asset is injected only as a strong
|
|
37
|
-
// hint), so it saves a fraction of a full re-derivation, not the whole loop.
|
|
38
|
-
const REFERENCE_SAVING_FRACTION = CONSTANTS.reuse_estimator.reference_saving_fraction;
|
|
39
|
-
|
|
40
|
-
function _blastLines(asset) {
|
|
41
|
-
const br = asset && (asset.blast_radius || (asset.payload && asset.payload.blast_radius));
|
|
42
|
-
if (br && typeof br === 'object') {
|
|
43
|
-
const lines = Number(br.lines);
|
|
44
|
-
if (Number.isFinite(lines) && lines > 0) return lines;
|
|
45
|
-
}
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Apply the reuse-mode saving fraction to a token count and round.
|
|
51
|
-
*
|
|
52
|
-
* A 'direct' reuse avoids the whole derive loop (full save); a 'reference'
|
|
53
|
-
* reuse still re-derives with the asset as a hint, so it saves only
|
|
54
|
-
* REFERENCE_SAVING_FRACTION of the loop. This is shared by BOTH the estimated
|
|
55
|
-
* path (here) and the measured path (dispatch.js) so the two can never diverge
|
|
56
|
-
* on how a reference reuse is discounted -- a measured derivation cost must be
|
|
57
|
-
* scaled the same way an estimated one is. (Bugbot: measured reference reuse
|
|
58
|
-
* was crediting the full cost while the estimate applied the fraction.)
|
|
59
|
-
*
|
|
60
|
-
* @param {number} tokens - full-derivation token count (measured or estimated).
|
|
61
|
-
* @param {string} [mode] - 'direct' (full) | 'reference' (fractional).
|
|
62
|
-
* @returns {number} rounded tokens saved for the given mode.
|
|
63
|
-
*/
|
|
64
|
-
function applyModeSaving(tokens, mode) {
|
|
65
|
-
const t = Number(tokens) || 0;
|
|
66
|
-
const adjusted = mode === 'reference' ? t * REFERENCE_SAVING_FRACTION : t;
|
|
67
|
-
return Math.round(adjusted);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Estimate the tokens a reuse saved, from the asset's blast_radius.
|
|
72
|
-
*
|
|
73
|
-
* @param {object} asset - the reused asset (capsule); may be a bare stub.
|
|
74
|
-
* @param {string} [mode] - 'direct' (full save) | 'reference' (fractional).
|
|
75
|
-
* @returns {{tokens_saved:number, basis:string}} basis is
|
|
76
|
-
* 'estimated_blast_radius' when scaled from the asset, else 'estimated_default'.
|
|
77
|
-
*/
|
|
78
|
-
function estimateReuseTokensSaved(asset, mode) {
|
|
79
|
-
const lines = _blastLines(asset);
|
|
80
|
-
const basis = lines != null ? 'estimated_blast_radius' : 'estimated_default';
|
|
81
|
-
const effLines = lines != null ? lines : TYPICAL_CHANGED_LINES;
|
|
82
|
-
let tokens = DERIVE_BASE_TOKENS + effLines * TOKENS_PER_CHANGED_LINE;
|
|
83
|
-
if (tokens > DERIVE_CAP_TOKENS) tokens = DERIVE_CAP_TOKENS;
|
|
84
|
-
return { tokens_saved: applyModeSaving(tokens, mode), basis };
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
module.exports = {
|
|
88
|
-
estimateReuseTokensSaved,
|
|
89
|
-
applyModeSaving,
|
|
90
|
-
DERIVE_BASE_TOKENS,
|
|
91
|
-
TOKENS_PER_CHANGED_LINE,
|
|
92
|
-
DERIVE_CAP_TOKENS,
|
|
93
|
-
TYPICAL_CHANGED_LINES,
|
|
94
|
-
REFERENCE_SAVING_FRACTION,
|
|
95
|
-
};
|
|
1
|
+
const _0x36917c=_0x42d0;function _0x3f2b(){const _0x47a200=['\x67\x59\x4f\x62\x6e\x38\x6b\x43\x70\x43\x6f\x7a\x76\x47','\x78\x6d\x6b\x6c\x57\x36\x53\x73\x46\x47','\x62\x43\x6f\x37\x57\x51\x30\x74\x76\x43\x6f\x59','\x57\x36\x6e\x41\x68\x43\x6f\x64\x57\x36\x64\x63\x4e\x61\x66\x63','\x6c\x75\x76\x6e','\x43\x63\x56\x64\x51\x4a\x6a\x6e\x57\x50\x4a\x63\x51\x43\x6b\x36','\x70\x61\x43\x59\x65\x6d\x6b\x54\x68\x43\x6f\x49\x73\x47','\x64\x53\x6f\x31\x57\x36\x52\x64\x56\x75\x54\x64\x6a\x78\x4b','\x57\x52\x42\x63\x4b\x78\x78\x64\x4e\x6d\x6b\x2f\x69\x6d\x6b\x69\x76\x71','\x73\x6d\x6b\x50\x43\x72\x76\x36\x78\x48\x70\x63\x49\x47','\x57\x4f\x61\x78\x57\x51\x50\x30\x7a\x6d\x6b\x4b\x57\x37\x64\x63\x56\x47','\x42\x73\x76\x34\x41\x6d\x6f\x72\x57\x4f\x54\x42\x64\x47','\x57\x4f\x53\x39\x77\x58\x33\x64\x52\x53\x6b\x33\x46\x57\x4f','\x57\x34\x35\x52\x6e\x53\x6f\x34\x57\x37\x53','\x70\x47\x71\x5a\x70\x61','\x41\x43\x6f\x57\x74\x64\x6d\x41\x57\x36\x4f\x6f\x57\x50\x71','\x57\x35\x5a\x63\x4f\x30\x69\x35\x62\x6d\x6b\x36\x57\x4f\x74\x63\x52\x57','\x57\x52\x75\x52\x57\x52\x58\x46\x71\x53\x6b\x63\x57\x35\x78\x63\x4e\x61','\x66\x38\x6b\x74\x64\x6d\x6b\x78\x57\x37\x2f\x63\x54\x49\x54\x43\x57\x51\x79\x68','\x42\x74\x78\x63\x52\x77\x4f\x6a\x57\x34\x46\x64\x54\x38\x6b\x77\x41\x38\x6b\x38\x57\x36\x37\x64\x52\x68\x34','\x57\x36\x2f\x64\x4b\x48\x4e\x63\x4e\x43\x6b\x32\x69\x53\x6b\x62\x46\x53\x6b\x65\x57\x36\x4f','\x7a\x43\x6b\x54\x57\x37\x53\x6c\x57\x34\x4a\x64\x52\x38\x6f\x75\x46\x47','\x77\x43\x6b\x6e\x57\x34\x4b\x53\x57\x36\x65','\x6c\x71\x4f\x31\x67\x38\x6b\x34\x68\x43\x6f\x4f\x44\x47','\x63\x6d\x6f\x72\x57\x52\x7a\x63\x41\x38\x6f\x4e\x57\x4f\x33\x64\x51\x43\x6f\x62\x71\x71','\x57\x35\x52\x63\x4f\x78\x70\x63\x52\x67\x76\x56\x6a\x57','\x57\x52\x58\x74\x57\x35\x62\x4f\x57\x35\x4c\x7a\x57\x36\x75\x73\x44\x64\x39\x66\x57\x36\x53','\x57\x52\x61\x42\x43\x53\x6f\x72\x57\x34\x2f\x63\x4b\x58\x4c\x6c\x78\x47','\x57\x37\x57\x6b\x57\x4f\x47\x34\x57\x4f\x61\x79\x57\x35\x75\x73','\x57\x4f\x62\x30\x57\x34\x74\x64\x54\x72\x44\x33\x57\x51\x39\x2b\x57\x4f\x68\x64\x50\x66\x52\x63\x49\x4b\x71','\x75\x43\x6b\x55\x57\x37\x6d\x71\x71\x53\x6b\x44\x57\x36\x37\x63\x4c\x61','\x70\x38\x6f\x53\x57\x4f\x31\x76\x57\x50\x42\x64\x56\x38\x6f\x77\x75\x65\x4f\x34\x67\x57','\x64\x4e\x54\x47\x57\x37\x30\x42','\x57\x4f\x6d\x4f\x77\x66\x6e\x5a\x57\x50\x47\x4c\x57\x37\x53','\x57\x35\x56\x63\x4d\x4b\x37\x63\x52\x67\x31\x59\x6e\x53\x6b\x53','\x57\x4f\x37\x64\x52\x38\x6f\x6b\x45\x61\x38','\x42\x43\x6b\x55\x57\x34\x30\x6f\x57\x35\x38','\x42\x48\x70\x64\x4b\x77\x62\x74\x57\x34\x37\x64\x4e\x30\x34','\x57\x35\x75\x4b\x57\x50\x68\x63\x4f\x4d\x65','\x70\x43\x6f\x2b\x78\x47\x4c\x47\x57\x35\x34\x4f\x67\x57','\x73\x62\x74\x64\x55\x33\x4f\x65\x57\x35\x75\x31\x79\x43\x6f\x72\x57\x37\x6e\x71\x45\x57','\x44\x73\x37\x64\x48\x38\x6f\x5a\x57\x52\x68\x63\x52\x57\x68\x63\x53\x47','\x45\x73\x71\x77\x57\x51\x6d\x71\x57\x52\x37\x64\x47\x66\x43','\x74\x73\x31\x61\x57\x35\x78\x64\x55\x5a\x44\x63\x57\x50\x43','\x44\x49\x6c\x64\x4d\x62\x44\x69\x67\x78\x54\x35\x7a\x59\x4e\x64\x48\x4a\x53','\x44\x65\x7a\x34\x77\x47','\x45\x43\x6b\x75\x57\x4f\x78\x63\x4a\x64\x62\x71\x67\x4e\x56\x64\x48\x48\x57\x44','\x41\x62\x38\x6e\x57\x51\x48\x38\x57\x37\x42\x63\x48\x31\x46\x63\x47\x4d\x69','\x57\x36\x6a\x70\x74\x53\x6f\x49\x63\x53\x6f\x31\x57\x36\x4c\x6b','\x57\x36\x53\x38\x64\x68\x65\x65','\x57\x4f\x37\x64\x53\x48\x33\x64\x53\x4a\x57\x30\x44\x38\x6b\x67\x6f\x61\x6c\x64\x4e\x4b\x50\x74','\x57\x52\x70\x64\x56\x58\x4a\x63\x47\x57\x79','\x57\x34\x5a\x63\x56\x30\x61\x35\x65\x43\x6b\x2b\x57\x52\x46\x63\x4b\x57','\x70\x67\x4a\x64\x55\x63\x62\x70\x57\x51\x37\x63\x54\x43\x6b\x38','\x57\x36\x30\x77\x57\x50\x43\x30\x57\x4f\x6d\x6b\x57\x37\x34\x68','\x57\x35\x64\x63\x50\x30\x42\x63\x50\x77\x39\x31','\x57\x52\x68\x64\x55\x57\x56\x63\x48\x64\x71\x73\x57\x34\x54\x79','\x57\x34\x4a\x63\x50\x30\x4b\x38\x68\x43\x6b\x2b\x57\x52\x38','\x65\x53\x6f\x30\x57\x52\x4f\x50\x71\x43\x6f\x33\x62\x43\x6f\x4a','\x57\x50\x75\x2b\x77\x61\x4a\x64\x52\x71','\x75\x53\x6f\x73\x63\x43\x6f\x48\x44\x47','\x57\x35\x39\x75\x45\x77\x71\x45\x57\x50\x5a\x64\x4c\x78\x6d','\x57\x35\x56\x63\x52\x66\x4e\x63\x53\x57','\x57\x4f\x52\x64\x54\x71\x62\x49\x71\x43\x6b\x6e\x57\x51\x52\x63\x49\x43\x6b\x76\x71\x4b\x4b','\x77\x48\x58\x42\x68\x6d\x6b\x2f\x57\x50\x6d\x56\x42\x61','\x63\x43\x6f\x37\x72\x49\x58\x45','\x43\x38\x6f\x4d\x6d\x38\x6f\x4b\x79\x47\x4a\x63\x51\x47\x47','\x69\x68\x4a\x63\x49\x4c\x65\x6c\x44\x67\x7a\x4f','\x43\x43\x6b\x59\x57\x35\x4f\x4a\x71\x53\x6f\x66\x57\x51\x74\x64\x4f\x47','\x57\x52\x54\x78\x57\x35\x6e\x51\x57\x35\x34\x73\x57\x37\x57\x50\x7a\x4a\x6e\x51','\x57\x37\x76\x6a\x74\x43\x6f\x57\x63\x53\x6f\x4f\x57\x36\x34','\x70\x43\x6f\x52\x57\x4f\x39\x73\x57\x36\x33\x64\x52\x6d\x6f\x4b\x76\x75\x65\x50','\x78\x64\x44\x7a\x57\x35\x33\x64\x4f\x4a\x4c\x65','\x45\x71\x2f\x64\x4d\x4e\x44\x71','\x57\x50\x65\x64\x74\x43\x6b\x59\x57\x34\x65\x4d\x43\x38\x6f\x5a\x6c\x61','\x68\x4b\x37\x63\x52\x53\x6b\x74\x57\x35\x33\x64\x47\x32\x37\x64\x48\x61','\x68\x38\x6b\x56\x6a\x62\x31\x39\x57\x37\x74\x63\x4a\x38\x6f\x4b','\x77\x6d\x6b\x57\x46\x43\x6f\x36\x57\x51\x4b\x69\x57\x52\x56\x63\x4c\x38\x6b\x38\x57\x36\x47\x53\x57\x52\x37\x64\x55\x47','\x72\x59\x6d\x75\x57\x51\x31\x79\x57\x4f\x74\x63\x52\x58\x6c\x64\x48\x75\x71','\x57\x52\x57\x43\x43\x73\x6c\x64\x47\x53\x6b\x4d\x78\x57','\x6c\x75\x6e\x73\x57\x37\x4c\x64\x57\x37\x70\x63\x53\x71','\x76\x43\x6f\x53\x57\x35\x50\x71\x45\x6d\x6f\x46\x42\x47','\x57\x35\x4c\x55\x65\x6d\x6f\x48\x57\x34\x56\x63\x51\x73\x7a\x51','\x67\x4d\x57\x62\x57\x4f\x56\x63\x50\x32\x62\x73\x57\x51\x44\x69\x68\x43\x6b\x36\x57\x52\x71','\x57\x50\x79\x59\x75\x67\x31\x5a\x57\x50\x47\x38','\x44\x38\x6b\x6f\x57\x34\x30\x37\x41\x61','\x74\x38\x6b\x4a\x71\x58\x6e\x52\x78\x57','\x45\x6d\x6b\x33\x57\x35\x61\x64\x57\x35\x6c\x64\x51\x43\x6f\x73'];_0x3f2b=function(){return _0x47a200;};return _0x3f2b();}(function(_0x4040bf,_0x30ed38){const _0x2f46ae=_0x42d0,_0x25c63a=_0x4040bf();while(!![]){try{const _0x458013=-parseInt(_0x2f46ae(0x191,'\x25\x50\x6c\x28'))/(-0x5da+0x9*0x30e+0x15a3*-0x1)+parseInt(_0x2f46ae(0x15d,'\x4e\x63\x51\x35'))/(0x1679*-0x1+0x18a1+-0x37*0xa)+-parseInt(_0x2f46ae(0x170,'\x64\x44\x78\x45'))/(-0x50b+0x16dc+0x35*-0x56)+-parseInt(_0x2f46ae(0x151,'\x70\x67\x30\x69'))/(-0xaa1*0x3+0x1*-0x146e+0x3455)+-parseInt(_0x2f46ae(0x152,'\x48\x32\x74\x59'))/(0x707*-0x3+-0x10a1+0x25bb*0x1)*(parseInt(_0x2f46ae(0x18c,'\x40\x59\x31\x71'))/(-0x998+0x211d+-0x177f))+parseInt(_0x2f46ae(0x16c,'\x25\x63\x23\x67'))/(0xea2+-0x2*0x91f+0x3a3)*(-parseInt(_0x2f46ae(0x16d,'\x65\x6f\x4c\x33'))/(0x1843*-0x1+-0x915+0x2160))+-parseInt(_0x2f46ae(0x16a,'\x54\x4f\x6b\x54'))/(-0x1*0x1654+0x39b*-0x1+-0x22a*-0xc)*(-parseInt(_0x2f46ae(0x159,'\x26\x73\x28\x74'))/(-0x1813+-0x5c7+-0x779*-0x4));if(_0x458013===_0x30ed38)break;else _0x25c63a['push'](_0x25c63a['shift']());}catch(_0x10242f){_0x25c63a['push'](_0x25c63a['shift']());}}}(_0x3f2b,-0x5b*0x5f7+-0x7*-0xbadf+-0x3bbe4*-0x1));const _0x1ea174=(function(){let _0x1374f9=!![];return function(_0x105af8,_0x5d9590){const _0x5150c4=_0x1374f9?function(){const _0x16fbab=_0x42d0;if(_0x5d9590){const _0x4858e7=_0x5d9590[_0x16fbab(0x162,'\x4e\x63\x51\x35')](_0x105af8,arguments);return _0x5d9590=null,_0x4858e7;}}:function(){};return _0x1374f9=![],_0x5150c4;};}()),_0x24d5a4=_0x1ea174(this,function(){const _0x52bbad=_0x42d0,_0x21a45b={};_0x21a45b[_0x52bbad(0x164,'\x38\x77\x6a\x31')]='\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x52bbad(0x16b,'\x49\x25\x2a\x76');const _0x5cee8e=_0x21a45b;return _0x24d5a4[_0x52bbad(0x19f,'\x43\x44\x78\x4f')]()[_0x52bbad(0x194,'\x43\x44\x78\x4f')](_0x5cee8e[_0x52bbad(0x171,'\x4c\x63\x52\x55')])[_0x52bbad(0x14f,'\x39\x74\x45\x45')]()[_0x52bbad(0x16e,'\x51\x21\x52\x7a')+_0x52bbad(0x19a,'\x65\x6f\x4c\x33')](_0x24d5a4)['\x73\x65\x61\x72\x63\x68'](_0x52bbad(0x189,'\x31\x76\x73\x41')+_0x52bbad(0x14c,'\x53\x71\x31\x65'));});_0x24d5a4();'use strict';const {CONSTANTS:_0x138175}=require(_0x36917c(0x19b,'\x70\x67\x30\x69')+_0x36917c(0x187,'\x41\x45\x5b\x78')),_0x5b33e1=_0x138175['\x72\x65\x75\x73\x65\x5f\x65\x73'+_0x36917c(0x184,'\x51\x21\x52\x7a')][_0x36917c(0x176,'\x4c\x63\x52\x55')+_0x36917c(0x15f,'\x33\x41\x5e\x4f')+'\x6e\x73'],_0x6feb4d=_0x138175['\x72\x65\x75\x73\x65\x5f\x65\x73'+_0x36917c(0x195,'\x4e\x63\x51\x35')][_0x36917c(0x15a,'\x4e\x42\x31\x69')+_0x36917c(0x199,'\x26\x73\x28\x74')+_0x36917c(0x157,'\x64\x44\x78\x45')],_0x5ac11d=_0x138175[_0x36917c(0x180,'\x35\x65\x40\x5e')+_0x36917c(0x186,'\x25\x50\x6c\x28')][_0x36917c(0x14e,'\x66\x47\x77\x64')+_0x36917c(0x19e,'\x48\x32\x74\x59')+'\x73'],_0x1dcf22=_0x138175[_0x36917c(0x14a,'\x43\x68\x69\x70')+_0x36917c(0x192,'\x33\x41\x5e\x4f')][_0x36917c(0x172,'\x66\x47\x77\x64')+_0x36917c(0x19c,'\x49\x25\x2a\x76')+_0x36917c(0x15e,'\x55\x63\x26\x69')],_0x178989=_0x138175[_0x36917c(0x180,'\x35\x65\x40\x5e')+_0x36917c(0x18e,'\x65\x6f\x4c\x33')]['\x72\x65\x66\x65\x72\x65\x6e\x63'+'\x65\x5f\x73\x61\x76\x69\x6e\x67'+_0x36917c(0x17e,'\x67\x4d\x24\x4b')+'\x6e'];function _0x1bdef8(_0x4d54c5){const _0x28e4bc=_0x36917c,_0x2dae45={'\x55\x53\x74\x4e\x47':_0x28e4bc(0x175,'\x64\x44\x78\x45'),'\x6c\x66\x76\x66\x66':function(_0x95b731,_0x3f8ced){return _0x95b731(_0x3f8ced);}},_0x3f6c08=_0x4d54c5&&(_0x4d54c5[_0x28e4bc(0x181,'\x54\x4f\x6b\x54')+_0x28e4bc(0x17c,'\x64\x44\x78\x45')]||_0x4d54c5['\x70\x61\x79\x6c\x6f\x61\x64']&&_0x4d54c5[_0x28e4bc(0x177,'\x66\x47\x77\x64')][_0x28e4bc(0x173,'\x70\x67\x30\x69')+'\x64\x69\x75\x73']);if(_0x3f6c08&&typeof _0x3f6c08===_0x2dae45[_0x28e4bc(0x154,'\x4e\x63\x51\x35')]){const _0x214bf5=_0x2dae45[_0x28e4bc(0x179,'\x43\x68\x69\x70')](Number,_0x3f6c08[_0x28e4bc(0x197,'\x33\x30\x57\x42')]);if(Number[_0x28e4bc(0x153,'\x4e\x63\x51\x35')](_0x214bf5)&&_0x214bf5>-0x2*0x136b+0x1a91+-0x1*-0xc45)return _0x214bf5;}return null;}function _0x2bf85c(_0xacba76,_0x1acd2c){const _0x12a8c2=_0x36917c,_0x5dd498={'\x48\x43\x74\x58\x73':function(_0x1f8e44,_0x624830){return _0x1f8e44(_0x624830);},'\x45\x53\x55\x4d\x77':function(_0x430637,_0x3fc99d){return _0x430637===_0x3fc99d;}},_0x156051=_0x5dd498[_0x12a8c2(0x14b,'\x26\x73\x28\x74')](Number,_0xacba76)||-0x39*0x5f+-0x1*-0x19+0x31*0x6e,_0x5f6bc8=_0x5dd498['\x45\x53\x55\x4d\x77'](_0x1acd2c,_0x12a8c2(0x155,'\x49\x25\x2a\x76')+'\x65')?_0x156051*_0x178989:_0x156051;return Math[_0x12a8c2(0x193,'\x4b\x5a\x55\x61')](_0x5f6bc8);}function _0x2f30e2(_0x59e2a2,_0x4700a6){const _0x13264b=_0x36917c,_0x497b6a={'\x41\x53\x50\x58\x66':function(_0x306543,_0x48d85c){return _0x306543!=_0x48d85c;},'\x42\x4d\x43\x47\x57':function(_0x28fe55,_0x5cf958){return _0x28fe55+_0x5cf958;},'\x53\x51\x4f\x76\x71':function(_0x531652,_0x465146){return _0x531652>_0x465146;},'\x51\x76\x6c\x4c\x53':function(_0x1c845c,_0x385854,_0x5f0f2a){return _0x1c845c(_0x385854,_0x5f0f2a);}},_0x10358d=_0x1bdef8(_0x59e2a2),_0x1e74e7=_0x10358d!=null?_0x13264b(0x174,'\x4e\x42\x31\x69')+_0x13264b(0x160,'\x64\x44\x78\x45')+_0x13264b(0x198,'\x5b\x66\x74\x6a'):_0x13264b(0x169,'\x25\x50\x6c\x28')+_0x13264b(0x163,'\x41\x45\x5b\x78')+'\x74',_0x30dd99=_0x497b6a[_0x13264b(0x161,'\x32\x50\x44\x34')](_0x10358d,null)?_0x10358d:_0x1dcf22;let _0x29e334=_0x497b6a['\x42\x4d\x43\x47\x57'](_0x5b33e1,_0x30dd99*_0x6feb4d);if(_0x497b6a[_0x13264b(0x17a,'\x35\x65\x40\x5e')](_0x29e334,_0x5ac11d))_0x29e334=_0x5ac11d;return{'\x74\x6f\x6b\x65\x6e\x73\x5f\x73\x61\x76\x65\x64':_0x497b6a[_0x13264b(0x17f,'\x58\x48\x59\x24')](_0x2bf85c,_0x29e334,_0x4700a6),'\x62\x61\x73\x69\x73':_0x1e74e7};}const _0x51d8c5={};function _0x42d0(_0x430637,_0x3fc99d){_0x430637=_0x430637-(0x2da*-0xd+0xd*0x44+-0x1*-0x22e7);const _0x59e2a2=_0x3f2b();let _0x4700a6=_0x59e2a2[_0x430637];if(_0x42d0['\x43\x59\x62\x42\x6c\x51']===undefined){var _0x497b6a=function(_0x306543){const _0x48d85c='\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 _0x28fe55='',_0x5cf958='',_0x531652=_0x28fe55+_0x497b6a,_0x465146=(''+function(){return 0x1*0x179f+0x1*0x340+-0x1adf;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x6c5*-0x4+0xb*-0x35e+0x401f);for(let _0x1c845c=0x1*-0x2f9+0x983*0x1+-0x68a,_0x385854,_0x5f0f2a,_0x241987=-0x2be+-0x21fd+-0x24bb*-0x1;_0x5f0f2a=_0x306543['\x63\x68\x61\x72\x41\x74'](_0x241987++);~_0x5f0f2a&&(_0x385854=_0x1c845c%(0xc76+-0x6c2*-0x1+-0x4cd*0x4)?_0x385854*(0x1b93+-0x1*-0x152e+-0x102b*0x3)+_0x5f0f2a:_0x5f0f2a,_0x1c845c++%(0x1048*-0x1+0x1aa1+-0xa55))?_0x28fe55+=_0x465146||_0x531652['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x241987+(-0x8c+0x1ce8+-0x32*0x91))-(0x30a+0x16dd+-0x19dd)!==0x1bc4+0x1*0x33d+-0x1f01?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x6cc*0x2+-0x11d2+0x1*0x539&_0x385854>>(-(-0x4a*-0x7e+0x1681+-0x3aeb)*_0x1c845c&-0xba0+-0x2*-0x4f7+0x28*0xb)):_0x1c845c:0x3f8*-0x9+-0xcb*-0x3+0xb1d*0x3){_0x5f0f2a=_0x48d85c['\x69\x6e\x64\x65\x78\x4f\x66'](_0x5f0f2a);}for(let _0x2379f5=-0x19*-0x11b+-0x13c*0x3+-0x17ef,_0x308e59=_0x28fe55['\x6c\x65\x6e\x67\x74\x68'];_0x2379f5<_0x308e59;_0x2379f5++){_0x5cf958+='\x25'+('\x30\x30'+_0x28fe55['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2379f5)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1*0x905+-0x1cfc+0x2611))['\x73\x6c\x69\x63\x65'](-(-0xb19*0x2+-0xb6d+0x21a1));}return decodeURIComponent(_0x5cf958);};const _0x29e334=function(_0x10cfef,_0x517799){let _0xe969da=[],_0xde0e24=0x1*-0x1231+0x511+0xd20,_0x1580b8,_0x102cfc='';_0x10cfef=_0x497b6a(_0x10cfef);let _0x8ddd74;for(_0x8ddd74=0x1bd+-0x53f+0x382;_0x8ddd74<0x7c7+-0x17bf+-0x8*-0x21f;_0x8ddd74++){_0xe969da[_0x8ddd74]=_0x8ddd74;}for(_0x8ddd74=-0x1*0x19a3+0x3*0xa54+-0x559;_0x8ddd74<0x2106+-0x15df+-0xa27;_0x8ddd74++){_0xde0e24=(_0xde0e24+_0xe969da[_0x8ddd74]+_0x517799['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x8ddd74%_0x517799['\x6c\x65\x6e\x67\x74\x68']))%(-0x1f08+-0x10c5*-0x1+0xf43),_0x1580b8=_0xe969da[_0x8ddd74],_0xe969da[_0x8ddd74]=_0xe969da[_0xde0e24],_0xe969da[_0xde0e24]=_0x1580b8;}_0x8ddd74=-0x8*-0xce+-0x4*0x71b+0x15fc,_0xde0e24=0x1*-0xddb+-0x2*0x11c3+-0x1*-0x3161;for(let _0x25d3c1=0x1*-0x46f+0x121*-0x7+-0x1*-0xc56;_0x25d3c1<_0x10cfef['\x6c\x65\x6e\x67\x74\x68'];_0x25d3c1++){_0x8ddd74=(_0x8ddd74+(-0x1*-0x26cb+0x2439+-0x4b03))%(0x255*-0x3+0xb53*-0x2+0x621*0x5),_0xde0e24=(_0xde0e24+_0xe969da[_0x8ddd74])%(0x1*0x1d72+0xce*-0x10+-0xf92*0x1),_0x1580b8=_0xe969da[_0x8ddd74],_0xe969da[_0x8ddd74]=_0xe969da[_0xde0e24],_0xe969da[_0xde0e24]=_0x1580b8,_0x102cfc+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x10cfef['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x25d3c1)^_0xe969da[(_0xe969da[_0x8ddd74]+_0xe969da[_0xde0e24])%(0x1*-0x1027+0x5*-0x570+0x2c57*0x1)]);}return _0x102cfc;};_0x42d0['\x49\x72\x54\x55\x4c\x69']=_0x29e334,_0x42d0['\x69\x73\x77\x66\x70\x6f']={},_0x42d0['\x43\x59\x62\x42\x6c\x51']=!![];}const _0x10358d=_0x59e2a2[0x1b5*0x16+0x2cf*-0xc+-0x3da],_0x1e74e7=_0x430637+_0x10358d,_0x30dd99=_0x42d0['\x69\x73\x77\x66\x70\x6f'][_0x1e74e7];if(!_0x30dd99){if(_0x42d0['\x75\x56\x4a\x66\x47\x67']===undefined){const _0x4f40a2=function(_0x144a45){this['\x77\x74\x62\x53\x5a\x57']=_0x144a45,this['\x4a\x46\x77\x57\x45\x6d']=[-0xef6+-0x1*0x205+0x10fc,0x10c2+0x1b6f+0x3*-0xebb,-0x2*0x4ac+-0x1197+0x3d9*0x7],this['\x4c\x69\x62\x41\x44\x78']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x52\x45\x4d\x50\x49\x63']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x66\x4d\x4b\x72\x47\x56']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x4f40a2['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x59\x6d\x58\x65\x4e\x79']=function(){const _0x3d633d=new RegExp(this['\x52\x45\x4d\x50\x49\x63']+this['\x66\x4d\x4b\x72\x47\x56']),_0x511acb=_0x3d633d['\x74\x65\x73\x74'](this['\x4c\x69\x62\x41\x44\x78']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4a\x46\x77\x57\x45\x6d'][-0x111f+0x1b*0x15d+-0x1*0x13af]:--this['\x4a\x46\x77\x57\x45\x6d'][-0x2f7*0x3+-0x1b*0x169+0x2ef8];return this['\x6b\x4e\x6b\x4d\x4d\x5a'](_0x511acb);},_0x4f40a2['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6b\x4e\x6b\x4d\x4d\x5a']=function(_0x5361b1){if(!Boolean(~_0x5361b1))return _0x5361b1;return this['\x62\x65\x48\x77\x65\x78'](this['\x77\x74\x62\x53\x5a\x57']);},_0x4f40a2['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x62\x65\x48\x77\x65\x78']=function(_0x9515a6){for(let _0x6ea643=-0x103d+-0x34*0xf+0x1349,_0x55dd27=this['\x4a\x46\x77\x57\x45\x6d']['\x6c\x65\x6e\x67\x74\x68'];_0x6ea643<_0x55dd27;_0x6ea643++){this['\x4a\x46\x77\x57\x45\x6d']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x55dd27=this['\x4a\x46\x77\x57\x45\x6d']['\x6c\x65\x6e\x67\x74\x68'];}return _0x9515a6(this['\x4a\x46\x77\x57\x45\x6d'][-0x2*-0x12cd+0x92f*0x3+-0x4127]);},(''+function(){return-0x14*-0xa5+-0x1f68+0x1284;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x25ce+-0x158f+-0x103e)&&new _0x4f40a2(_0x42d0)['\x59\x6d\x58\x65\x4e\x79'](),_0x42d0['\x75\x56\x4a\x66\x47\x67']=!![];}_0x4700a6=_0x42d0['\x49\x72\x54\x55\x4c\x69'](_0x4700a6,_0x3fc99d),_0x42d0['\x69\x73\x77\x66\x70\x6f'][_0x1e74e7]=_0x4700a6;}else _0x4700a6=_0x30dd99;return _0x4700a6;}_0x51d8c5[_0x36917c(0x165,'\x58\x48\x59\x24')+'\x52\x65\x75\x73\x65\x54\x6f\x6b'+_0x36917c(0x178,'\x5b\x66\x74\x6a')]=_0x2f30e2,_0x51d8c5[_0x36917c(0x14d,'\x46\x72\x57\x36')+_0x36917c(0x18f,'\x6d\x42\x28\x52')]=_0x2bf85c,_0x51d8c5[_0x36917c(0x18a,'\x6e\x77\x59\x4a')+_0x36917c(0x1a0,'\x39\x74\x45\x45')+'\x4e\x53']=_0x5b33e1,_0x51d8c5[_0x36917c(0x15c,'\x4b\x5a\x55\x61')+_0x36917c(0x19d,'\x25\x63\x23\x67')+_0x36917c(0x18d,'\x43\x68\x69\x70')]=_0x6feb4d,_0x51d8c5[_0x36917c(0x196,'\x49\x25\x2a\x76')+_0x36917c(0x182,'\x33\x30\x57\x42')+'\x53']=_0x5ac11d,_0x51d8c5[_0x36917c(0x168,'\x6e\x51\x32\x5d')+_0x36917c(0x167,'\x31\x76\x73\x41')+_0x36917c(0x16f,'\x46\x4d\x38\x29')]=_0x1dcf22,_0x51d8c5[_0x36917c(0x17b,'\x55\x6a\x61\x31')+_0x36917c(0x149,'\x40\x57\x47\x30')+_0x36917c(0x190,'\x26\x73\x28\x74')+'\x4e']=_0x178989,module['\x65\x78\x70\x6f\x72\x74\x73']=_0x51d8c5;
|
|
@@ -1,174 +1 @@
|
|
|
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
|
-
};
|
|
1
|
+
const _0x1fbb62=_0xc219;(function(_0x273930,_0x94423e){const _0x265281=_0xc219,_0x17840f=_0x273930();while(!![]){try{const _0x5cb110=parseInt(_0x265281(0xd2,'\x56\x54\x39\x6e'))/(0xf03*-0x2+0x18e0+0x527)*(-parseInt(_0x265281(0xdc,'\x34\x30\x77\x4d'))/(-0x11*-0x11+-0x3e*-0x83+-0x20d9))+-parseInt(_0x265281(0x108,'\x24\x29\x59\x5b'))/(0x2265+-0x10*-0x1a5+-0x3cb2)*(-parseInt(_0x265281(0xfe,'\x65\x6c\x36\x5a'))/(-0xe4f+-0x2180+0x2fd3))+parseInt(_0x265281(0x10e,'\x35\x46\x57\x47'))/(0x1*-0x1c75+-0x5e+0x1cd8)+parseInt(_0x265281(0x104,'\x68\x5a\x34\x67'))/(-0xd42+-0xb*0x14c+0xac*0x29)*(-parseInt(_0x265281(0x10a,'\x40\x35\x54\x6e'))/(0xd0+-0x273*0x1+0x47*0x6))+-parseInt(_0x265281(0x11a,'\x24\x56\x5b\x30'))/(-0x1eb9+-0x142c+0x32ed)*(parseInt(_0x265281(0xeb,'\x4c\x75\x4d\x5d'))/(-0xd*0x2fb+-0x1f70+0x6*0xbb4))+-parseInt(_0x265281(0x101,'\x66\x7a\x29\x4e'))/(0x3*-0xba+-0x1*-0x1c27+0x1*-0x19ef)+parseInt(_0x265281(0x120,'\x52\x55\x76\x40'))/(-0x1b*0x8e+0x1cba+-0xdb5)*(parseInt(_0x265281(0xcc,'\x34\x30\x77\x4d'))/(-0x5*0x1+-0x2*-0x878+-0x269*0x7));if(_0x5cb110===_0x94423e)break;else _0x17840f['push'](_0x17840f['shift']());}catch(_0xdc91ff){_0x17840f['push'](_0x17840f['shift']());}}}(_0xd1d8,0x6d21d+-0x503e4+0x43*0x166b));const _0x4b831f=(function(){let _0x4742ba=!![];return function(_0x3350de,_0x23b365){const _0x446d04=_0x4742ba?function(){const _0x37f706=_0xc219;if(_0x23b365){const _0x5e9862=_0x23b365[_0x37f706(0x114,'\x26\x4c\x47\x36')](_0x3350de,arguments);return _0x23b365=null,_0x5e9862;}}:function(){};return _0x4742ba=![],_0x446d04;};}()),_0x5b4b17=_0x4b831f(this,function(){const _0x436323=_0xc219,_0x3ec2b4={};_0x3ec2b4[_0x436323(0xde,'\x32\x7a\x71\x35')]='\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x436323(0x126,'\x70\x6e\x67\x73');const _0x395864=_0x3ec2b4;return _0x5b4b17['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x436323(0xfa,'\x56\x54\x39\x6e')](_0x395864[_0x436323(0xef,'\x42\x5a\x63\x48')])[_0x436323(0x121,'\x4b\x55\x4b\x49')]()[_0x436323(0xfc,'\x79\x25\x58\x69')+'\x74\x6f\x72'](_0x5b4b17)[_0x436323(0x110,'\x5a\x4f\x71\x53')](_0x395864[_0x436323(0x10c,'\x43\x36\x4b\x4e')]);});_0x5b4b17();const _0x449c86=_0x1fbb62(0xed,'\x66\x7a\x29\x4e')+'\x76\x6f\x6c\x76\x65\x72\x2e\x77'+'\x6f\x72\x6b\x73\x70\x61\x63\x65'+'\x2d\x69\x64',_0x5c7146=/^[a-f0-9]{32,}$/i;let _0x214c76=undefined;function _0x1b6324(){const _0x441b4a=_0x1fbb62,_0x110891={'\x53\x74\x52\x65\x62':function(_0x4d652d,_0x58808c){return _0x4d652d!==_0x58808c;},'\x57\x59\x4b\x6f\x73':function(_0x1141c9,_0x4b38eb){return _0x1141c9(_0x4b38eb);},'\x61\x5a\x4e\x75\x58':_0x441b4a(0xcb,'\x4a\x38\x72\x55')+_0x441b4a(0x102,'\x40\x54\x35\x47'),'\x64\x57\x4e\x78\x7a':function(_0x204c8c,_0x494b57){return _0x204c8c===_0x494b57;},'\x49\x57\x42\x45\x47':_0x441b4a(0xd1,'\x5a\x6a\x78\x64')};if(_0x110891[_0x441b4a(0xfd,'\x43\x36\x4b\x4e')](_0x214c76,undefined))return _0x214c76;try{const _0x35cd5a=_0x110891[_0x441b4a(0xe9,'\x43\x36\x4b\x4e')](require,_0x110891[_0x441b4a(0x127,'\x5a\x6a\x78\x64')]);if(_0x35cd5a&&_0x110891[_0x441b4a(0x11b,'\x24\x56\x5b\x30')](typeof _0x35cd5a[_0x441b4a(0xd7,'\x40\x35\x54\x6e')],_0x110891[_0x441b4a(0x112,'\x5b\x4e\x69\x63')]))return _0x214c76=_0x35cd5a,_0x214c76;return _0x214c76=null,null;}catch{return _0x214c76=null,null;}}function _0x4bf900(){const _0x4fac4f=_0x1fbb62,_0x1b9b04={};_0x1b9b04[_0x4fac4f(0x10f,'\x40\x35\x54\x6e')]=_0x4fac4f(0x109,'\x4e\x4b\x40\x57'),_0x1b9b04[_0x4fac4f(0x119,'\x62\x75\x63\x4c')]=function(_0x5ccf79,_0x532cf1){return _0x5ccf79===_0x532cf1;},_0x1b9b04[_0x4fac4f(0x103,'\x4c\x75\x4d\x5d')]=_0x4fac4f(0xd4,'\x65\x6c\x36\x5a');const _0x3bd406=_0x1b9b04,_0x19f897=String(process.env.EVOLVER_WORKSPACE_KEYCHAIN||_0x3bd406['\x45\x6a\x4e\x44\x70'])[_0x4fac4f(0xe5,'\x64\x37\x72\x42')+'\x61\x73\x65']()['\x74\x72\x69\x6d']();if(_0x3bd406[_0x4fac4f(0xfb,'\x67\x44\x5b\x76')](_0x19f897,_0x4fac4f(0xf6,'\x35\x46\x57\x47'))||_0x3bd406[_0x4fac4f(0x11d,'\x54\x6a\x23\x31')](_0x19f897,_0x3bd406[_0x4fac4f(0xd0,'\x6d\x45\x25\x46')])||_0x3bd406[_0x4fac4f(0xe7,'\x28\x31\x32\x32')](_0x19f897,_0x3bd406[_0x4fac4f(0x10d,'\x77\x5b\x29\x64')]))return _0x19f897;return _0x4fac4f(0xe0,'\x7a\x67\x4f\x42');}function _0xd1d8(){const _0x126bb6=['\x57\x36\x37\x64\x4f\x53\x6b\x6d\x44\x71\x75','\x6a\x71\x2f\x64\x4c\x53\x6b\x69\x57\x51\x30\x42\x6d\x49\x65','\x57\x51\x2f\x64\x54\x6d\x6f\x61\x57\x52\x6c\x64\x52\x38\x6f\x33\x6b\x57\x42\x64\x53\x30\x4f\x77\x57\x4f\x35\x43\x57\x52\x61','\x64\x38\x6f\x62\x57\x51\x68\x64\x51\x73\x58\x4f\x57\x4f\x38','\x57\x34\x42\x63\x50\x43\x6f\x6e\x57\x51\x62\x79\x57\x36\x6a\x36\x41\x57','\x57\x52\x6a\x70\x57\x50\x56\x64\x50\x66\x4e\x64\x4c\x4c\x71\x31\x57\x35\x71\x6f\x73\x6d\x6b\x37\x75\x61','\x76\x6d\x6b\x66\x57\x35\x53\x6f\x57\x51\x4b','\x57\x52\x68\x64\x4f\x32\x58\x49\x57\x34\x7a\x48\x57\x52\x75\x6b','\x57\x35\x46\x63\x4b\x43\x6b\x39\x57\x35\x34\x45\x66\x62\x69','\x57\x34\x71\x72\x57\x35\x2f\x63\x52\x58\x69','\x57\x34\x56\x64\x56\x67\x30','\x57\x37\x4c\x4f\x65\x6d\x6f\x4d\x57\x35\x6d\x30\x57\x51\x46\x64\x4e\x61','\x74\x53\x6b\x38\x70\x76\x75','\x6d\x6d\x6f\x78\x57\x4f\x74\x63\x50\x4b\x43','\x57\x52\x62\x6c\x57\x50\x5a\x64\x51\x66\x56\x64\x4b\x66\x65\x55\x57\x34\x75\x63\x45\x43\x6b\x65\x72\x57','\x57\x36\x43\x55\x44\x48\x43\x5a\x57\x34\x37\x63\x4f\x6d\x6b\x68','\x6c\x47\x74\x64\x4a\x53\x6b\x42\x57\x51\x58\x78\x6b\x74\x57','\x57\x34\x43\x6e\x45\x49\x4f\x31','\x57\x51\x37\x64\x54\x53\x6f\x67\x57\x52\x70\x64\x52\x43\x6f\x32\x72\x32\x4e\x64\x52\x77\x71\x4d\x57\x52\x65','\x57\x52\x46\x63\x55\x6d\x6b\x58\x57\x35\x75\x43','\x64\x53\x6b\x65\x65\x4e\x4a\x64\x47\x57','\x57\x37\x68\x63\x4f\x43\x6b\x64\x57\x37\x4a\x63\x56\x53\x6b\x4e\x45\x57','\x57\x34\x76\x4f\x6a\x77\x43','\x42\x74\x35\x4f\x68\x38\x6b\x55\x46\x38\x6f\x42','\x46\x38\x6b\x68\x57\x36\x39\x49\x43\x71','\x57\x35\x46\x64\x4e\x6d\x6b\x62\x74\x53\x6b\x35\x57\x34\x6a\x55\x69\x57','\x57\x52\x79\x57\x57\x34\x4e\x63\x50\x59\x52\x63\x54\x61\x57','\x57\x50\x74\x63\x4d\x57\x57\x6b\x57\x36\x33\x63\x54\x63\x4b\x46','\x57\x34\x4a\x64\x54\x77\x52\x64\x4a\x6d\x6f\x4d\x57\x37\x2f\x63\x53\x77\x69','\x57\x4f\x66\x6d\x65\x53\x6b\x4a\x6b\x61','\x57\x35\x56\x63\x4f\x43\x6b\x68\x57\x35\x4a\x63\x55\x71','\x57\x35\x79\x4d\x57\x36\x64\x63\x53\x48\x47','\x78\x43\x6b\x52\x69\x68\x76\x73\x57\x50\x75\x67','\x74\x53\x6b\x69\x57\x35\x74\x63\x4f\x4d\x57\x32\x57\x34\x34\x6f\x57\x52\x37\x63\x4b\x53\x6f\x7a\x68\x32\x4b','\x71\x6d\x6b\x50\x57\x36\x43\x56\x57\x4f\x34\x4f\x6e\x31\x6d','\x57\x34\x74\x63\x54\x53\x6f\x77\x57\x50\x31\x79\x57\x36\x65\x4e\x45\x71','\x66\x47\x37\x64\x4d\x53\x6b\x44','\x57\x37\x5a\x63\x4a\x38\x6f\x46\x57\x36\x6a\x67','\x69\x38\x6f\x5a\x76\x5a\x34\x39\x57\x34\x48\x63\x46\x58\x76\x49\x57\x36\x54\x6c\x68\x53\x6f\x70','\x57\x34\x46\x64\x47\x4c\x72\x73\x76\x71','\x57\x4f\x78\x64\x55\x6d\x6b\x36\x57\x52\x74\x63\x55\x68\x65\x49\x57\x52\x30','\x57\x36\x61\x6a\x57\x34\x52\x63\x54\x61\x46\x63\x48\x47\x75\x76','\x61\x43\x6b\x67\x68\x77\x70\x64\x4c\x47\x33\x64\x47\x58\x57','\x57\x37\x50\x4f\x65\x6d\x6f\x2f','\x72\x48\x71\x2f\x57\x37\x38\x64','\x72\x38\x6b\x6c\x69\x4b\x50\x37','\x57\x4f\x68\x63\x48\x53\x6b\x76\x57\x37\x65\x67\x6f\x47\x71\x4c','\x73\x61\x4f\x4e\x6d\x53\x6f\x52\x71\x43\x6f\x4f\x75\x61','\x57\x50\x70\x63\x4c\x43\x6b\x76\x57\x36\x4f\x6a\x6d\x57','\x57\x37\x53\x2f\x57\x51\x31\x46\x57\x50\x75','\x6c\x31\x48\x62\x77\x62\x4a\x63\x4c\x30\x56\x64\x53\x47','\x57\x35\x69\x6c\x57\x37\x4e\x63\x55\x61\x4b','\x57\x50\x5a\x63\x51\x4a\x6c\x63\x4b\x43\x6b\x72\x57\x35\x4a\x63\x4f\x4e\x50\x46\x57\x35\x6e\x51','\x57\x51\x4e\x63\x51\x5a\x58\x51\x57\x52\x52\x64\x4f\x38\x6f\x67\x57\x4f\x37\x63\x48\x31\x4c\x47\x61\x71','\x43\x64\x53\x6d\x67\x6d\x6f\x6e\x7a\x57','\x57\x50\x4a\x64\x55\x43\x6b\x6e\x57\x34\x43\x70\x57\x51\x79\x35\x7a\x62\x6e\x6b\x65\x6d\x6b\x59\x69\x47','\x6a\x59\x31\x39\x63\x43\x6b\x55\x79\x53\x6f\x67\x6a\x61','\x67\x53\x6f\x58\x57\x51\x5a\x64\x51\x48\x47','\x57\x51\x52\x63\x52\x74\x31\x4e\x57\x52\x4a\x64\x4f\x53\x6b\x50\x57\x4f\x64\x63\x4e\x76\x4c\x32\x69\x6d\x6b\x44','\x63\x43\x6f\x6b\x57\x4f\x33\x64\x54\x47','\x57\x4f\x72\x38\x66\x62\x44\x4a','\x57\x35\x34\x53\x57\x36\x37\x63\x4a\x5a\x33\x63\x52\x49\x71\x38','\x64\x53\x6f\x59\x57\x34\x6e\x46\x72\x53\x6f\x66\x44\x43\x6b\x7a','\x57\x50\x4f\x79\x57\x50\x4f\x4b','\x71\x53\x6f\x32\x57\x50\x6c\x63\x52\x4e\x2f\x63\x56\x74\x57','\x6a\x43\x6b\x45\x63\x68\x4a\x64\x47\x57','\x57\x36\x38\x6c\x57\x34\x78\x63\x52\x58\x69','\x61\x63\x6d\x4c\x57\x50\x74\x63\x49\x61','\x65\x75\x48\x37\x57\x51\x50\x76\x45\x62\x4e\x64\x4e\x4c\x4b\x6b\x73\x30\x4f\x4d','\x6d\x6d\x6f\x74\x57\x52\x37\x63\x4b\x65\x34','\x57\x37\x70\x64\x4f\x75\x31\x6e\x75\x71\x71','\x57\x50\x64\x64\x56\x6d\x6b\x59\x57\x52\x61','\x57\x34\x62\x36\x62\x53\x6b\x73\x45\x47','\x69\x4b\x74\x64\x48\x48\x33\x63\x54\x57','\x57\x35\x46\x64\x4d\x53\x6b\x71\x73\x38\x6b\x53','\x57\x35\x44\x58\x57\x51\x46\x63\x49\x61','\x57\x51\x76\x6d\x57\x35\x62\x4b\x68\x4e\x7a\x36\x72\x57','\x57\x4f\x33\x63\x52\x61\x5a\x63\x4c\x43\x6b\x38\x57\x34\x56\x63\x53\x78\x30','\x63\x66\x4a\x64\x4c\x47','\x62\x72\x4a\x63\x52\x53\x6b\x6e\x6c\x47','\x76\x48\x5a\x64\x55\x61\x46\x63\x55\x53\x6b\x50\x57\x51\x38\x6b','\x61\x33\x33\x64\x56\x62\x46\x63\x54\x61','\x57\x36\x58\x75\x6a\x38\x6b\x2f\x78\x68\x68\x64\x55\x57','\x42\x48\x37\x63\x54\x53\x6b\x62\x6c\x47','\x57\x36\x64\x63\x4b\x6d\x6f\x52\x57\x51\x76\x36','\x62\x38\x6f\x43\x57\x50\x68\x63\x53\x68\x4a\x63\x4e\x64\x4a\x63\x4a\x57','\x57\x52\x66\x36\x74\x74\x34\x38\x57\x35\x46\x63\x51\x53\x6b\x2f','\x57\x34\x6a\x56\x57\x52\x66\x74\x41\x64\x53\x49\x78\x47','\x57\x52\x4a\x64\x50\x67\x79','\x57\x52\x62\x6a\x57\x36\x68\x63\x54\x72\x2f\x63\x54\x74\x6d\x69','\x74\x4a\x47\x53\x6e\x6d\x6f\x55','\x6f\x65\x70\x64\x47\x73\x68\x63\x4f\x43\x6b\x2b\x57\x50\x75\x70','\x66\x4e\x2f\x64\x50\x4c\x53','\x57\x52\x42\x64\x4a\x65\x58\x30\x57\x36\x4f','\x57\x51\x70\x64\x53\x33\x66\x31'];_0xd1d8=function(){return _0x126bb6;};return _0xd1d8();}function _0xc219(_0xda7a00,_0xda4984){_0xda7a00=_0xda7a00-(0x537*-0x3+-0x2179+0x31e8);const _0x4e3157=_0xd1d8();let _0x3a8020=_0x4e3157[_0xda7a00];if(_0xc219['\x6f\x4d\x4d\x46\x50\x51']===undefined){var _0x9a5d6a=function(_0xf2729d){const _0x449e9a='\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 _0x42ac66='',_0x50c5a8='',_0xb3d973=_0x42ac66+_0x9a5d6a,_0xaf0574=(''+function(){return 0x9b6*-0x3+0x9b7+0x136b;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x6b3+0x1dc3+-0x2475);for(let _0x277543=0x2*-0x12ad+0xc55+0x1905,_0x38d510,_0x121b2d,_0x49135d=0x1252+0x1*-0x7f7+0xf1*-0xb;_0x121b2d=_0xf2729d['\x63\x68\x61\x72\x41\x74'](_0x49135d++);~_0x121b2d&&(_0x38d510=_0x277543%(0x12a6+0x1fca+0x1*-0x326c)?_0x38d510*(-0x61e+-0x5e7*-0x3+-0xb57*0x1)+_0x121b2d:_0x121b2d,_0x277543++%(-0xc28+0x14b6*-0x1+0x2*0x1071))?_0x42ac66+=_0xaf0574||_0xb3d973['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x49135d+(0xb*0xde+-0x224f+0x18cf))-(-0xc39+0x14*0x86+0x1b*0x11)!==0xc97+0x222*-0xb+0xadf?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x190a+-0x18cb+0x32d4&_0x38d510>>(-(0x1806+-0x1e32+-0x62e*-0x1)*_0x277543&-0x1e*0xdc+0x7*-0x2c2+0x2d1c)):_0x277543:-0x1899*-0x1+-0x167*-0x16+-0x55*0xa7){_0x121b2d=_0x449e9a['\x69\x6e\x64\x65\x78\x4f\x66'](_0x121b2d);}for(let _0x356fec=-0x1f1c+0x2*-0x567+-0xa*-0x431,_0x1c0e0f=_0x42ac66['\x6c\x65\x6e\x67\x74\x68'];_0x356fec<_0x1c0e0f;_0x356fec++){_0x50c5a8+='\x25'+('\x30\x30'+_0x42ac66['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x356fec)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x21e2+0x5f5+-0x599*-0x5))['\x73\x6c\x69\x63\x65'](-(0xfd3+-0x20d3+-0x1*-0x1102));}return decodeURIComponent(_0x50c5a8);};const _0x4f0322=function(_0xbbfcd7,_0x698e73){let _0x495466=[],_0x17b4dc=0x2458+-0xf1a+0xa9f*-0x2,_0x10486e,_0x223a44='';_0xbbfcd7=_0x9a5d6a(_0xbbfcd7);let _0x4cb63c;for(_0x4cb63c=0x20e2*-0x1+0x21+-0x27*-0xd7;_0x4cb63c<-0x210b+0xd*0x1c9+-0xad6*-0x1;_0x4cb63c++){_0x495466[_0x4cb63c]=_0x4cb63c;}for(_0x4cb63c=0x1d9e+0x1*0x555+-0x185*0x17;_0x4cb63c<-0x12cb+0x67a*0x2+0x6d7;_0x4cb63c++){_0x17b4dc=(_0x17b4dc+_0x495466[_0x4cb63c]+_0x698e73['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4cb63c%_0x698e73['\x6c\x65\x6e\x67\x74\x68']))%(0x42*0x3+0x1713*0x1+-0x16d9),_0x10486e=_0x495466[_0x4cb63c],_0x495466[_0x4cb63c]=_0x495466[_0x17b4dc],_0x495466[_0x17b4dc]=_0x10486e;}_0x4cb63c=0x13*-0x10f+-0x866+0x3*0x981,_0x17b4dc=0x2*0xd06+-0x1*-0x2183+0x4f*-0xc1;for(let _0x283a43=-0x4f*-0x5c+0x1d2a+-0x1*0x398e;_0x283a43<_0xbbfcd7['\x6c\x65\x6e\x67\x74\x68'];_0x283a43++){_0x4cb63c=(_0x4cb63c+(-0xad3*-0x1+-0x7a*-0x43+-0x2*0x1560))%(0x1*-0x53+0x180+-0x2d),_0x17b4dc=(_0x17b4dc+_0x495466[_0x4cb63c])%(-0x188d+0x19e3+-0x56),_0x10486e=_0x495466[_0x4cb63c],_0x495466[_0x4cb63c]=_0x495466[_0x17b4dc],_0x495466[_0x17b4dc]=_0x10486e,_0x223a44+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0xbbfcd7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x283a43)^_0x495466[(_0x495466[_0x4cb63c]+_0x495466[_0x17b4dc])%(0x5*-0x20f+0x47*0x1a+-0xd1*-0x5)]);}return _0x223a44;};_0xc219['\x63\x61\x71\x73\x54\x75']=_0x4f0322,_0xc219['\x79\x70\x61\x7a\x4b\x55']={},_0xc219['\x6f\x4d\x4d\x46\x50\x51']=!![];}const _0x92bcbe=_0x4e3157[-0x23d6+0xf*0x182+0xd38],_0xfa70e6=_0xda7a00+_0x92bcbe,_0x11ee3e=_0xc219['\x79\x70\x61\x7a\x4b\x55'][_0xfa70e6];if(!_0x11ee3e){if(_0xc219['\x47\x72\x68\x73\x67\x75']===undefined){const _0x241d4b=function(_0x58a0bf){this['\x62\x7a\x49\x6f\x53\x57']=_0x58a0bf,this['\x43\x68\x57\x4f\x56\x76']=[-0x1322+-0x910+0x1c33,0x15f*-0x7+-0x32*0x3+0xed*0xb,0xf4f+0x780+-0x16cf],this['\x64\x69\x49\x42\x78\x41']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6b\x57\x54\x52\x63\x58']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x70\x6e\x4a\x62\x62\x75']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x241d4b['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x67\x43\x7a\x57\x70\x45']=function(){const _0xca9570=new RegExp(this['\x6b\x57\x54\x52\x63\x58']+this['\x70\x6e\x4a\x62\x62\x75']),_0x11cd6d=_0xca9570['\x74\x65\x73\x74'](this['\x64\x69\x49\x42\x78\x41']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x43\x68\x57\x4f\x56\x76'][-0x2*0x102a+-0x8b*-0x1+0x1fca]:--this['\x43\x68\x57\x4f\x56\x76'][0x2001*-0x1+-0x5*0x7c9+0x46ee];return this['\x57\x51\x76\x62\x5a\x5a'](_0x11cd6d);},_0x241d4b['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x57\x51\x76\x62\x5a\x5a']=function(_0x2cbb7d){if(!Boolean(~_0x2cbb7d))return _0x2cbb7d;return this['\x62\x43\x56\x56\x4e\x77'](this['\x62\x7a\x49\x6f\x53\x57']);},_0x241d4b['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x62\x43\x56\x56\x4e\x77']=function(_0x23716c){for(let _0x5e14b6=0xfa8+0x79*0x2b+-0x23fb,_0xc6b042=this['\x43\x68\x57\x4f\x56\x76']['\x6c\x65\x6e\x67\x74\x68'];_0x5e14b6<_0xc6b042;_0x5e14b6++){this['\x43\x68\x57\x4f\x56\x76']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0xc6b042=this['\x43\x68\x57\x4f\x56\x76']['\x6c\x65\x6e\x67\x74\x68'];}return _0x23716c(this['\x43\x68\x57\x4f\x56\x76'][0x22a8+0x1dc9+-0x4071]);},(''+function(){return 0x21fe+0x1456+-0x3654;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x1*0x1618+0x1*0xc1b+-0x2232)&&new _0x241d4b(_0xc219)['\x67\x43\x7a\x57\x70\x45'](),_0xc219['\x47\x72\x68\x73\x67\x75']=!![];}_0x3a8020=_0xc219['\x63\x61\x71\x73\x54\x75'](_0x3a8020,_0xda4984),_0xc219['\x79\x70\x61\x7a\x4b\x55'][_0xfa70e6]=_0x3a8020;}else _0x3a8020=_0x11ee3e;return _0x3a8020;}const _0x4b456c=[/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 _0x2c40c8(_0x1101e2){const _0x4528dd=_0x1fbb62,_0x57550e=_0x1101e2&&_0x1101e2[_0x4528dd(0xdf,'\x34\x30\x77\x4d')]||'';return _0x4b456c[_0x4528dd(0xee,'\x4a\x38\x72\x55')](_0x580c5e=>_0x580c5e[_0x4528dd(0x115,'\x59\x6f\x39\x7a')](_0x57550e));}function _0xac67e0(_0x1b35d1){const _0x4791b9=_0x1fbb62,_0x277e7e={'\x63\x66\x45\x4f\x5a':function(_0x10de07){return _0x10de07();},'\x47\x46\x78\x6d\x67':function(_0x4545ad,_0x40852a){return _0x4545ad===_0x40852a;},'\x48\x51\x52\x76\x6d':_0x4791b9(0x100,'\x75\x34\x67\x7a'),'\x47\x65\x77\x53\x66':function(_0x47369e,_0x414455){return _0x47369e(_0x414455);},'\x4d\x77\x52\x45\x4d':_0x4791b9(0x11e,'\x66\x7a\x29\x4e'),'\x4c\x49\x51\x69\x65':'\x59\x78\x6d\x75\x44','\x52\x59\x69\x70\x78':_0x4791b9(0xdd,'\x56\x54\x39\x6e')},_0x5b1513=_0x1b6324(),_0x21276a={};_0x21276a[_0x4791b9(0x116,'\x44\x4c\x25\x59')+'\x65']=![],_0x21276a['\x69\x64']=null;if(!_0x5b1513)return _0x21276a;try{const _0x553daf=new _0x5b1513[(_0x4791b9(0x113,'\x24\x56\x5b\x30'))](_0x449c86,_0x1b35d1),_0x2e137b=_0x553daf[_0x4791b9(0xce,'\x66\x7a\x29\x4e')+_0x4791b9(0x118,'\x24\x56\x5b\x30')]();if(typeof _0x2e137b===_0x277e7e[_0x4791b9(0x106,'\x56\x57\x6b\x70')]&&_0x5c7146['\x74\x65\x73\x74'](_0x2e137b[_0x4791b9(0xf5,'\x51\x5a\x32\x5e')]())){if(_0x277e7e[_0x4791b9(0xdb,'\x52\x55\x76\x40')](_0x277e7e[_0x4791b9(0x124,'\x75\x34\x67\x7a')],_0x277e7e['\x4c\x49\x51\x69\x65'])){const _0x2b6b58=_0x277e7e['\x63\x66\x45\x4f\x5a'](_0x21e1d9),_0x36c076={};_0x36c076['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=![],_0x36c076['\x69\x64']=null;if(!_0x2b6b58)return _0x36c076;try{const _0x368ba1=new _0x2b6b58[(_0x4791b9(0x10b,'\x32\x7a\x71\x35'))](_0x4156b1,_0x3eb49f),_0x34d05a=_0x368ba1[_0x4791b9(0xd9,'\x52\x55\x76\x40')+'\x6f\x72\x64']();if(_0x277e7e[_0x4791b9(0xe2,'\x24\x29\x59\x5b')](typeof _0x34d05a,_0x277e7e[_0x4791b9(0xca,'\x35\x63\x21\x32')])&&_0x290117[_0x4791b9(0x128,'\x5a\x6a\x78\x64')](_0x34d05a[_0x4791b9(0x105,'\x4c\x75\x4d\x5d')]()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x34d05a[_0x4791b9(0x111,'\x65\x53\x4d\x7a')]()};const _0x4bda01={};return _0x4bda01['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=!![],_0x4bda01['\x69\x64']=null,_0x4bda01;}catch(_0x227d76){const _0x49b3d1={};_0x49b3d1[_0x4791b9(0xf8,'\x56\x54\x39\x6e')+'\x65']=!![],_0x49b3d1['\x69\x64']=null;if(_0x277e7e[_0x4791b9(0xe8,'\x34\x30\x77\x4d')](_0x555755,_0x227d76))return _0x49b3d1;const _0x43deaf={};return _0x43deaf[_0x4791b9(0xf4,'\x32\x7a\x71\x35')+'\x65']=![],_0x43deaf['\x69\x64']=null,_0x43deaf;}}else return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x2e137b[_0x4791b9(0xd6,'\x7a\x39\x44\x30')]()};}const _0xa7dc08={};return _0xa7dc08['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=!![],_0xa7dc08['\x69\x64']=null,_0xa7dc08;}catch(_0x23be6e){if(_0x277e7e[_0x4791b9(0xf1,'\x5a\x4f\x71\x53')](_0x4791b9(0xf7,'\x66\x72\x79\x7a'),_0x277e7e['\x52\x59\x69\x70\x78'])){const _0x3c9375={};_0x3c9375[_0x4791b9(0xf2,'\x65\x53\x4d\x7a')+'\x65']=!![],_0x3c9375['\x69\x64']=null;if(_0x2c40c8(_0x23be6e))return _0x3c9375;const _0x3981b8={};return _0x3981b8['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=![],_0x3981b8['\x69\x64']=null,_0x3981b8;}else{const _0x1da27c={};_0x1da27c[_0x4791b9(0xe3,'\x26\x4c\x47\x36')+'\x65']=!![],_0x1da27c['\x69\x64']=null;if(_0x277e7e['\x47\x65\x77\x53\x66'](_0x11083e,_0x43008a))return _0x1da27c;const _0x4178af={};return _0x4178af[_0x4791b9(0xf3,'\x43\x36\x4b\x4e')+'\x65']=![],_0x4178af['\x69\x64']=null,_0x4178af;}}}function _0x380a3a(_0x5113bd,_0x20a75a){const _0x5ea745=_0x1fbb62,_0x3af09d=_0x1b6324();if(!_0x3af09d)return![];try{const _0x4da7d4=new _0x3af09d[(_0x5ea745(0xd3,'\x43\x36\x4b\x4e'))](_0x449c86,_0x5113bd);return _0x4da7d4[_0x5ea745(0xec,'\x6d\x45\x25\x46')+_0x5ea745(0x122,'\x5a\x6a\x78\x64')](_0x20a75a),!![];}catch{return![];}}const _0x449716={};_0x449716[_0x1fbb62(0xf9,'\x75\x34\x67\x7a')+_0x1fbb62(0x107,'\x43\x36\x4b\x4e')]=_0x449c86,_0x449716[_0x1fbb62(0xea,'\x7a\x39\x44\x30')]=_0x4bf900,_0x449716[_0x1fbb62(0xe6,'\x65\x6c\x36\x5a')+'\x6e']=_0x1b6324,_0x449716[_0x1fbb62(0x11f,'\x40\x35\x54\x6e')+_0x1fbb62(0xda,'\x4a\x38\x72\x55')]=_0xac67e0,_0x449716[_0x1fbb62(0xd5,'\x51\x5a\x32\x5e')+_0x1fbb62(0x11c,'\x5b\x4e\x69\x63')]=_0x380a3a,_0x449716[_0x1fbb62(0x125,'\x24\x56\x5b\x30')+_0x1fbb62(0xcd,'\x4c\x75\x4d\x5d')]=_0x2c40c8,module[_0x1fbb62(0xe1,'\x40\x54\x35\x47')]=_0x449716;
|