@evomap/evolver-core 2.0.0 → 2.0.2
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/dist/algo/antiDistill.js +1 -167
- package/dist/algo/bans.js +1 -33
- package/dist/algo/candidateAssembly.js +1 -273
- package/dist/algo/capabilityCandidates.js +1 -146
- package/dist/algo/confidence.js +1 -196
- package/dist/algo/conversationSniffer.js +1 -149
- package/dist/algo/cycleEngine.js +1 -625
- package/dist/algo/cycleFailureClassifier.js +1 -112
- package/dist/algo/epigenetics.js +1 -41
- package/dist/algo/evolutionEvent.js +1 -24
- package/dist/algo/exploration.js +1 -68
- package/dist/algo/geneHealth.js +1 -17
- package/dist/algo/geneIntake.js +1 -128
- package/dist/algo/genePromotion.js +1 -53
- package/dist/algo/geneSelection.js +1 -546
- package/dist/algo/index.js +1 -22
- package/dist/algo/memoryGraph.js +1 -86
- package/dist/algo/mutation.js +1 -22
- package/dist/algo/orchestrator.js +1 -87
- package/dist/algo/publishEligibility.js +1 -52
- package/dist/algo/solidify.js +1 -63
- package/dist/algo/strategyPresets.js +1 -61
- package/dist/algo/ucb1.js +1 -156
- package/dist/benchmark/antiGeneBenchmark.js +1 -252
- package/dist/benchmark/antiGeneImpact.js +1 -34
- package/dist/benchmark/antiGeneRollout.js +1 -269
- package/dist/benchmark/benchmark.js +1 -26
- package/dist/benchmark/evolutionThesisSolver.js +1 -41
- package/dist/benchmark/index.js +1 -7
- package/dist/benchmark/selectionFlatAbstention.js +1 -481
- package/dist/benchmark/thesis.js +1 -150
- package/dist/benchmark/triggerShift.js +1 -106
- package/dist/cycle/cycleTimeline.js +1 -74
- package/dist/cycle/index.js +1 -2
- package/dist/cycle/stateMachine.js +1 -25
- package/dist/hub/agentDirectory.js +1 -104
- package/dist/hub/assetCallLog.js +1 -195
- package/dist/hub/bindings.js +1 -121
- package/dist/hub/capability.js +1 -1
- package/dist/hub/conversationDistiller.js +1 -264
- package/dist/hub/fake.js +1 -70
- package/dist/hub/hubReview.js +1 -106
- package/dist/hub/index.js +1 -11
- package/dist/hub/ingest.js +1 -15
- package/dist/hub/questionGenerator.js +1 -408
- package/dist/hub/reuseDecision.js +1 -127
- package/dist/hub/sanitize.js +1 -322
- package/dist/material/boundary.js +1 -14
- package/dist/material/consumer.js +1 -55
- package/dist/material/emit.js +1 -52
- package/dist/material/factory.js +1 -25
- package/dist/material/index.js +1 -9
- package/dist/material/materialArchive.js +1 -466
- package/dist/material/materialStore.js +1 -69
- package/dist/material/sampling.js +1 -39
- package/dist/material/sources.js +1 -33
- package/dist/material/watermark.js +1 -76
- package/dist/personality/drift.js +1 -106
- package/dist/personality/events.js +1 -37
- package/dist/personality/evolveOps.js +1 -93
- package/dist/personality/index.js +1 -11
- package/dist/personality/mutate.js +1 -39
- package/dist/personality/pivot.js +1 -22
- package/dist/personality/prompt.js +1 -62
- package/dist/personality/riskGate.js +1 -80
- package/dist/personality/schema.js +1 -119
- package/dist/personality/select.js +1 -71
- package/dist/personality/stats.js +1 -82
- package/dist/personality/store.js +1 -92
- package/dist/schema/common.js +1 -17
- package/dist/schema/evolutionGraph.js +1 -187
- package/dist/schema/index.js +1 -6
- package/dist/schema/material.js +1 -50
- package/dist/schema/problem.js +1 -45
- package/dist/schema/proofOfWork.js +1 -9
- package/dist/schema/signal.js +1 -19
- package/dist/signals/curriculum.js +1 -202
- package/dist/signals/cycleHistoryFromEvents.js +1 -105
- package/dist/signals/expand.js +1 -293
- package/dist/signals/extractor.js +1 -82
- package/dist/signals/index.js +1 -8
- package/dist/signals/metaSignals.js +1 -200
- package/dist/signals/signalGate.js +1 -40
- package/dist/signals/taskDomain.js +1 -43
- package/dist/signals/traceSignals.js +1 -123
- package/dist/strategy/constraintAblation.js +1 -2820
- package/dist/strategy/constraintAblationPredicates.js +1 -339
- package/dist/strategy/experiment.js +1 -63
- package/dist/strategy/index.js +1 -3
- package/dist/strategy/strategyPoint.js +1 -23
- package/package.json +1 -1
|
@@ -1,200 +1 @@
|
|
|
1
|
-
// Meta-signal vocabulary (ported from v1 src/gep/signals.js analyzeRecentHistory + the meta-signal pass).
|
|
2
|
-
// These are HISTORY-DERIVED signals that drive STRATEGY ADAPTATION: when the evolution loop gets stuck
|
|
3
|
-
// (repair loops, empty cycles, saturation, failure streaks, high failure ratio) the loop emits signals that
|
|
4
|
-
// downstream strategy selection reacts to — e.g. evolution_saturation → steady-state, repair_loop_detected /
|
|
5
|
-
// high_failure_ratio → innovate. v2 had only restored plateau→drift (algo/exploration.ts); this restores the
|
|
6
|
-
// rest of the vocabulary so the loop can adapt to being stuck instead of spinning.
|
|
7
|
-
//
|
|
8
|
-
// RECONCILIATION (reuse, don't duplicate):
|
|
9
|
-
// - PLATEAU: v1 also emitted plateau_pivot_required/_suggested here from recent outcome scores. v2 already
|
|
10
|
-
// owns plateau detection in algo/exploration.ts (detectPlateau over the cycle-outcome stream, which then
|
|
11
|
-
// forces drift in gene selection). We DO NOT re-derive plateau here; callers keep using exploration.ts.
|
|
12
|
-
// - BAN_GENE: v1 emitted ban_gene:<topGene> on a long failure streak. v2 already owns gene banning in
|
|
13
|
-
// algo/bans.ts (bannedGenesFromFailures, signal-overlap based) which drops failing genes from the
|
|
14
|
-
// candidate set directly — a stronger mechanism than a soft signal. We DO NOT emit ban_gene here; the
|
|
15
|
-
// failure-streak meta-signals below are the strategy-posture half, bans.ts is the candidate-exclusion half.
|
|
16
|
-
//
|
|
17
|
-
// Pure + deterministic: input is a normalized cycle-history view; no clock / fs / env reads.
|
|
18
|
-
const RECENT_WINDOW = 10; // v1: last 10 events
|
|
19
|
-
const FREQ_WINDOW = 8; // v1: gene/failure frequency over the last 8
|
|
20
|
-
/** Is a record an empty cycle (no real change)? Mirrors v1: meta.empty_cycle || (files===0 && lines===0). */
|
|
21
|
-
function isEmptyCycle(r) {
|
|
22
|
-
if (r.emptyCycle)
|
|
23
|
-
return true;
|
|
24
|
-
const br = r.blastRadius;
|
|
25
|
-
return !!br && (br.files ?? -1) === 0 && (br.lines ?? -1) === 0;
|
|
26
|
-
}
|
|
27
|
-
function isFailed(r) {
|
|
28
|
-
return r.outcome?.status === 'failed';
|
|
29
|
-
}
|
|
30
|
-
function isSuccess(r) {
|
|
31
|
-
return r.outcome?.status === 'success';
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Derive the v1 history counters from a normalized cycle-record window (newest LAST), mirroring v1
|
|
35
|
-
* analyzeRecentHistory. Pure + deterministic. Use {@link cycleRecordsFromEvents} to adapt the v2 event log.
|
|
36
|
-
*/
|
|
37
|
-
export function deriveCycleHistory(records) {
|
|
38
|
-
const empty = {
|
|
39
|
-
consecutiveRepairCount: 0,
|
|
40
|
-
emptyCycleCount: 0,
|
|
41
|
-
consecutiveEmptyCycles: 0,
|
|
42
|
-
consecutiveFailureCount: 0,
|
|
43
|
-
consecutiveSuccessCount: 0,
|
|
44
|
-
successCycleCount: 0,
|
|
45
|
-
recentFailureRatio: 0,
|
|
46
|
-
geneFreq: {},
|
|
47
|
-
};
|
|
48
|
-
if (!Array.isArray(records) || records.length === 0)
|
|
49
|
-
return empty;
|
|
50
|
-
const recent = records.slice(-RECENT_WINDOW);
|
|
51
|
-
const tail = recent.slice(-FREQ_WINDOW);
|
|
52
|
-
// Consecutive repair-intent cycles at the tail.
|
|
53
|
-
let consecutiveRepairCount = 0;
|
|
54
|
-
for (let i = recent.length - 1; i >= 0; i--) {
|
|
55
|
-
if (recent[i].intent === 'repair')
|
|
56
|
-
consecutiveRepairCount++;
|
|
57
|
-
else
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
// Empty cycles within the frequency window + gene frequency.
|
|
61
|
-
let emptyCycleCount = 0;
|
|
62
|
-
const geneFreq = {};
|
|
63
|
-
for (const r of tail) {
|
|
64
|
-
if (isEmptyCycle(r))
|
|
65
|
-
emptyCycleCount++;
|
|
66
|
-
for (const g of r.genesUsed ?? [])
|
|
67
|
-
geneFreq[String(g)] = (geneFreq[String(g)] ?? 0) + 1;
|
|
68
|
-
}
|
|
69
|
-
// Consecutive empty cycles at the tail (saturation).
|
|
70
|
-
let consecutiveEmptyCycles = 0;
|
|
71
|
-
for (let i = recent.length - 1; i >= 0; i--) {
|
|
72
|
-
if (isEmptyCycle(recent[i]))
|
|
73
|
-
consecutiveEmptyCycles++;
|
|
74
|
-
else
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
// Consecutive failures at the tail. Empty cycles are zero-blast no-ops in v1's history model: even when the
|
|
78
|
-
// terminal status is failed, they break the failure streak instead of extending it.
|
|
79
|
-
let consecutiveFailureCount = 0;
|
|
80
|
-
for (let i = recent.length - 1; i >= 0; i--) {
|
|
81
|
-
if (isEmptyCycle(recent[i]))
|
|
82
|
-
break;
|
|
83
|
-
if (isFailed(recent[i]))
|
|
84
|
-
consecutiveFailureCount++;
|
|
85
|
-
else
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
// Failure ratio over the frequency window, excluding empty cycles from both numerator and denominator.
|
|
89
|
-
let recentFailureCount = 0;
|
|
90
|
-
let nonEmptyCycleCount = 0;
|
|
91
|
-
for (const r of tail) {
|
|
92
|
-
if (isEmptyCycle(r))
|
|
93
|
-
continue;
|
|
94
|
-
nonEmptyCycleCount++;
|
|
95
|
-
if (isFailed(r))
|
|
96
|
-
recentFailureCount++;
|
|
97
|
-
}
|
|
98
|
-
// Consecutive successes at the tail (stable success plateau detection). Empty cycles are zero-blast
|
|
99
|
-
// no-ops: like the failure streak, they break the success streak instead of extending it.
|
|
100
|
-
let consecutiveSuccessCount = 0;
|
|
101
|
-
for (let i = recent.length - 1; i >= 0; i--) {
|
|
102
|
-
if (isEmptyCycle(recent[i]))
|
|
103
|
-
break;
|
|
104
|
-
if (isSuccess(recent[i]))
|
|
105
|
-
consecutiveSuccessCount++;
|
|
106
|
-
else
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
// Successful cycles within the frequency window (non-empty successes, same caliber as recentFailureRatio).
|
|
110
|
-
let successCycleCount = 0;
|
|
111
|
-
for (const r of tail) {
|
|
112
|
-
if (isEmptyCycle(r))
|
|
113
|
-
continue;
|
|
114
|
-
if (isSuccess(r))
|
|
115
|
-
successCycleCount++;
|
|
116
|
-
}
|
|
117
|
-
return {
|
|
118
|
-
consecutiveRepairCount,
|
|
119
|
-
emptyCycleCount,
|
|
120
|
-
consecutiveEmptyCycles,
|
|
121
|
-
consecutiveFailureCount,
|
|
122
|
-
consecutiveSuccessCount,
|
|
123
|
-
successCycleCount,
|
|
124
|
-
recentFailureRatio: nonEmptyCycleCount > 0 ? recentFailureCount / nonEmptyCycleCount : 0,
|
|
125
|
-
geneFreq,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Compute the history-derived meta-signal vocabulary from the loop's recent shape (ported v1 signals.js
|
|
130
|
-
* ~555-655 for the signals NOT already owned by exploration/bans). The returned signals are MEANT to be
|
|
131
|
-
* merged into the cycle's signal set so strategy selection (resolveStrategy) and signal expansion can react.
|
|
132
|
-
*
|
|
133
|
-
* Ports (thresholds faithful to v1):
|
|
134
|
-
* - consecutiveRepairCount >= 3 → repair_loop_detected + force_innovation_after_repair_loop
|
|
135
|
-
* - emptyCycleCount >= 4 → empty_cycle_loop_detected
|
|
136
|
-
* - consecutiveEmptyCycles >= 5 → force_steady_state + evolution_saturation
|
|
137
|
-
* - consecutiveEmptyCycles >= 3 → evolution_saturation (+ explore_opportunity)
|
|
138
|
-
* - consecutiveFailureCount>= 3 → consecutive_failure_streak_<N>
|
|
139
|
-
* - consecutiveFailureCount>= 5 → failure_loop_detected (ban_gene deferred to algo/bans.ts)
|
|
140
|
-
* - recentFailureRatio >= 0.75 → high_failure_ratio + force_innovation_after_repair_loop
|
|
141
|
-
*
|
|
142
|
-
* Deferred (handled elsewhere, see RECONCILIATION above): plateau_pivot_* → algo/exploration.ts;
|
|
143
|
-
* ban_gene:<top> → algo/bans.ts.
|
|
144
|
-
*/
|
|
145
|
-
export function computeMetaSignals(history) {
|
|
146
|
-
const signals = [];
|
|
147
|
-
// Repair loop: 3+ consecutive repair-intent cycles → push to innovate to break the loop.
|
|
148
|
-
if (history.consecutiveRepairCount >= 3) {
|
|
149
|
-
signals.push('repair_loop_detected');
|
|
150
|
-
signals.push('force_innovation_after_repair_loop');
|
|
151
|
-
}
|
|
152
|
-
// Empty-cycle loop: many zero-change cycles in the window → the loop is spinning without effect.
|
|
153
|
-
if (history.emptyCycleCount >= 4) {
|
|
154
|
-
signals.push('empty_cycle_loop_detected');
|
|
155
|
-
}
|
|
156
|
-
// Saturation (graceful degradation): consecutive empty cycles → steady-state / saturation posture.
|
|
157
|
-
if (history.consecutiveEmptyCycles >= 5) {
|
|
158
|
-
signals.push('force_steady_state');
|
|
159
|
-
signals.push('evolution_saturation');
|
|
160
|
-
}
|
|
161
|
-
else if (history.consecutiveEmptyCycles >= 3) {
|
|
162
|
-
signals.push('evolution_saturation');
|
|
163
|
-
}
|
|
164
|
-
// Exploration opportunity: when saturated, nudge proactive exploration rather than idling.
|
|
165
|
-
if (history.consecutiveEmptyCycles >= 3) {
|
|
166
|
-
signals.push('explore_opportunity');
|
|
167
|
-
}
|
|
168
|
-
// Failure streak awareness: tell the loop "you have failed N times in a row — slow down".
|
|
169
|
-
if (history.consecutiveFailureCount >= 3) {
|
|
170
|
-
signals.push('consecutive_failure_streak_' + history.consecutiveFailureCount);
|
|
171
|
-
if (history.consecutiveFailureCount >= 5) {
|
|
172
|
-
signals.push('failure_loop_detected');
|
|
173
|
-
// NB: v1 also pushed ban_gene:<topGene> here. v2 defers gene banning to algo/bans.ts
|
|
174
|
-
// (bannedGenesFromFailures), which excludes the failing gene from the candidate set directly.
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
// High failure ratio in the recent window → break out by innovating.
|
|
178
|
-
if (history.recentFailureRatio >= 0.75) {
|
|
179
|
-
signals.push('high_failure_ratio');
|
|
180
|
-
signals.push('force_innovation_after_repair_loop');
|
|
181
|
-
}
|
|
182
|
-
// Stable success plateau: 5+ consecutive successes → system is in a stable success plateau.
|
|
183
|
-
// This is the SUCCESS counterpart of failure_loop_detected: instead of signaling "stuck failing",
|
|
184
|
-
// it signals "consistently succeeding" — the loop should distill WHAT WORKED into reusable genes.
|
|
185
|
-
if (history.consecutiveSuccessCount >= 5) {
|
|
186
|
-
signals.push('stable_success_plateau');
|
|
187
|
-
}
|
|
188
|
-
// Issue already resolved: 3+ consecutive successes after a prior failure context suggests
|
|
189
|
-
// the problem is solved — downstream can skip redundant repair attempts.
|
|
190
|
-
if (history.consecutiveSuccessCount >= 3 && history.recentFailureRatio > 0) {
|
|
191
|
-
signals.push('issue_already_resolved');
|
|
192
|
-
}
|
|
193
|
-
// Self-healed requires the current tail to be successful. Window totals alone would mislabel
|
|
194
|
-
// [success, success, failed] as recovered even though the latest outcome is a failure.
|
|
195
|
-
if (history.consecutiveSuccessCount > 0 && history.successCycleCount >= 2 && history.recentFailureRatio > 0 && history.recentFailureRatio < 0.5) {
|
|
196
|
-
signals.push('openclaw_self_healed');
|
|
197
|
-
}
|
|
198
|
-
// De-dup while preserving first-seen order.
|
|
199
|
-
return [...new Set(signals)];
|
|
200
|
-
}
|
|
1
|
+
(function(_0x13a5a9,_0x1ffe71){const _0x91a058=_0x392b,_0x256c41=_0x13a5a9();while(!![]){try{const _0x5e731b=-parseInt(_0x91a058(0x243,'\x66\x30\x4f\x4f'))/(-0x1f79+0x18c*0x9+0x118e)+-parseInt(_0x91a058(0x27c,'\x24\x35\x35\x58'))/(0x4d0+-0x1*-0x1355+0x25*-0xa7)*(-parseInt(_0x91a058(0x213,'\x4b\x5a\x5e\x6a'))/(0x1*-0xa27+0x1ea1+-0x1477))+parseInt(_0x91a058(0x260,'\x6c\x7a\x52\x68'))/(0xd97+-0xbd2*-0x1+-0x1965)+-parseInt(_0x91a058(0x229,'\x38\x54\x4f\x53'))/(-0x10b5+-0x21*0xa9+0x2683*0x1)*(-parseInt(_0x91a058(0x241,'\x56\x54\x6f\x25'))/(-0x1*0x1c66+-0x11c8*0x1+0x2e34))+parseInt(_0x91a058(0x25a,'\x26\x4d\x65\x40'))/(0x19b1*-0x1+0x1d01+0x349*-0x1)*(parseInt(_0x91a058(0x218,'\x24\x6c\x4e\x72'))/(0x9*0x209+-0x18ab+0x2*0x331))+parseInt(_0x91a058(0x278,'\x74\x5e\x49\x39'))/(-0x266d+0x18d5+0xda1)+-parseInt(_0x91a058(0x1ef,'\x55\x6a\x37\x75'))/(0x128a+-0x246a+0x1*0x11ea)*(parseInt(_0x91a058(0x23e,'\x42\x33\x28\x47'))/(-0x211*-0x7+-0x76*-0x1c+0x3*-0x91c));if(_0x5e731b===_0x1ffe71)break;else _0x256c41['push'](_0x256c41['shift']());}catch(_0x207b4b){_0x256c41['push'](_0x256c41['shift']());}}}(_0x2c91,0x43ca*-0xd+0x3*-0xc975+0x7ae16));const RECENT_WINDOW=0x1fba*-0x1+-0x1d03*-0x1+-0xeb*-0x3,FREQ_WINDOW=-0x11b9*0x2+0x136f+0x100b;function _0x392b(_0x4512ee,_0x256568){_0x4512ee=_0x4512ee-(-0x20de+0x13*-0x203+0x48f5);const _0x3d4ca4=_0x2c91();let _0x2313e7=_0x3d4ca4[_0x4512ee];if(_0x392b['\x49\x42\x43\x71\x47\x5a']===undefined){var _0x1c7f9e=function(_0x5b98d0){const _0x53a00c='\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 _0x2ea60d='',_0x471773='';for(let _0x9df2f4=0x24d9+0xb9+0xc86*-0x3,_0x46cb2b,_0x476840,_0x33ff92=0x2a9*0x2+0xe18*-0x1+0x8c6;_0x476840=_0x5b98d0['\x63\x68\x61\x72\x41\x74'](_0x33ff92++);~_0x476840&&(_0x46cb2b=_0x9df2f4%(0x1388+-0x1fb6+0xc32)?_0x46cb2b*(0xd3+0x1341+0x9ea*-0x2)+_0x476840:_0x476840,_0x9df2f4++%(0x2590+0x209+-0x2795))?_0x2ea60d+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x63*-0x65+0x1adb*-0x1+-0xb35&_0x46cb2b>>(-(0x166a+0x2*-0x126d+-0x1*-0xe72)*_0x9df2f4&0x977+0x1bbf*0x1+-0x2530)):0x1667+-0x14f1*-0x1+-0x2b58){_0x476840=_0x53a00c['\x69\x6e\x64\x65\x78\x4f\x66'](_0x476840);}for(let _0x777bdd=0x1*-0x2063+0x1395+0x2*0x667,_0x2504ee=_0x2ea60d['\x6c\x65\x6e\x67\x74\x68'];_0x777bdd<_0x2504ee;_0x777bdd++){_0x471773+='\x25'+('\x30\x30'+_0x2ea60d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x777bdd)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x206a+-0x12b7*-0x2+-0x45c8))['\x73\x6c\x69\x63\x65'](-(-0x941+0x2386+-0x1a43));}return decodeURIComponent(_0x471773);};const _0x572c60=function(_0x206801,_0x1f2265){let _0x35a110=[],_0x1f5d73=-0x1e47*-0x1+-0x2*0x72f+-0xfe9,_0x1d7713,_0x4d7d85='';_0x206801=_0x1c7f9e(_0x206801);let _0x23aee9;for(_0x23aee9=0xf*-0x1a1+0x1091+0x7de;_0x23aee9<0x9e9+-0x26b5*-0x1+-0x2f9e*0x1;_0x23aee9++){_0x35a110[_0x23aee9]=_0x23aee9;}for(_0x23aee9=0xb4*0x32+0xe67+-0x1*0x318f;_0x23aee9<0x1*0x20f2+0x2a9+-0x229b;_0x23aee9++){_0x1f5d73=(_0x1f5d73+_0x35a110[_0x23aee9]+_0x1f2265['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x23aee9%_0x1f2265['\x6c\x65\x6e\x67\x74\x68']))%(-0xc*0x1bf+0x24bb+-0xec7),_0x1d7713=_0x35a110[_0x23aee9],_0x35a110[_0x23aee9]=_0x35a110[_0x1f5d73],_0x35a110[_0x1f5d73]=_0x1d7713;}_0x23aee9=0x24cd+0x1*0xae9+-0x2fb6,_0x1f5d73=-0x2274+-0x1fce+0xb0b*0x6;for(let _0x29e1d7=-0x2421+-0x29*0xa9+0x3f32;_0x29e1d7<_0x206801['\x6c\x65\x6e\x67\x74\x68'];_0x29e1d7++){_0x23aee9=(_0x23aee9+(-0x3*-0x8d1+-0x190c+-0x166))%(-0x1*0x87b+-0x17cb+-0x2146*-0x1),_0x1f5d73=(_0x1f5d73+_0x35a110[_0x23aee9])%(0xd5f+-0x2061+0x1402*0x1),_0x1d7713=_0x35a110[_0x23aee9],_0x35a110[_0x23aee9]=_0x35a110[_0x1f5d73],_0x35a110[_0x1f5d73]=_0x1d7713,_0x4d7d85+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x206801['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x29e1d7)^_0x35a110[(_0x35a110[_0x23aee9]+_0x35a110[_0x1f5d73])%(-0x38*-0x80+-0x7*-0x399+-0x342f)]);}return _0x4d7d85;};_0x392b['\x77\x5a\x55\x57\x57\x52']=_0x572c60,_0x392b['\x4f\x55\x44\x52\x65\x72']={},_0x392b['\x49\x42\x43\x71\x47\x5a']=!![];}const _0x3ad9d0=_0x3d4ca4[0xf6+0x18ea+-0x19e0],_0x8f7665=_0x4512ee+_0x3ad9d0,_0x5319a9=_0x392b['\x4f\x55\x44\x52\x65\x72'][_0x8f7665];return!_0x5319a9?(_0x392b['\x48\x65\x6f\x71\x6a\x75']===undefined&&(_0x392b['\x48\x65\x6f\x71\x6a\x75']=!![]),_0x2313e7=_0x392b['\x77\x5a\x55\x57\x57\x52'](_0x2313e7,_0x256568),_0x392b['\x4f\x55\x44\x52\x65\x72'][_0x8f7665]=_0x2313e7):_0x2313e7=_0x5319a9,_0x2313e7;}function isEmptyCycle(_0x3a4800){const _0x2ad2b9=_0x392b;if(_0x3a4800[_0x2ad2b9(0x273,'\x34\x66\x64\x53')+'\x6c\x65'])return!![];const _0x149ebf=_0x3a4800[_0x2ad2b9(0x20d,'\x66\x79\x4b\x65')+_0x2ad2b9(0x268,'\x49\x28\x36\x35')];return!!_0x149ebf&&(_0x149ebf[_0x2ad2b9(0x247,'\x74\x5e\x49\x39')]??-(-0xd90+0x4de+-0x11*-0x83))===-0x4c2+-0x3*0x710+-0xa2*-0x29&&(_0x149ebf['\x6c\x69\x6e\x65\x73']??-(-0x1*0x1bcb+0x2595+-0x9c9))===-0x1*0x2461+-0x1a5c+0x3ebd;}function isFailed(_0x975d3e){const _0x3714ef=_0x392b;return _0x975d3e[_0x3714ef(0x263,'\x34\x2a\x66\x32')]?.[_0x3714ef(0x204,'\x57\x6f\x6c\x61')]==='\x66\x61\x69\x6c\x65\x64';}function isSuccess(_0x1cbdbc){const _0x105567=_0x392b;return _0x1cbdbc[_0x105567(0x259,'\x31\x44\x4c\x6f')]?.[_0x105567(0x25c,'\x34\x66\x64\x53')]===_0x105567(0x24b,'\x73\x61\x66\x38');}export function deriveCycleHistory(_0x211b1d){const _0x51ff91=_0x392b,_0x485fbc={'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x52\x65\x70\x61\x69\x72\x43\x6f\x75\x6e\x74':0x0,'\x65\x6d\x70\x74\x79\x43\x79\x63\x6c\x65\x43\x6f\x75\x6e\x74':0x0,'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x45\x6d\x70\x74\x79\x43\x79\x63\x6c\x65\x73':0x0,'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x46\x61\x69\x6c\x75\x72\x65\x43\x6f\x75\x6e\x74':0x0,'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x53\x75\x63\x63\x65\x73\x73\x43\x6f\x75\x6e\x74':0x0,'\x73\x75\x63\x63\x65\x73\x73\x43\x79\x63\x6c\x65\x43\x6f\x75\x6e\x74':0x0,'\x72\x65\x63\x65\x6e\x74\x46\x61\x69\x6c\x75\x72\x65\x52\x61\x74\x69\x6f':0x0,'\x67\x65\x6e\x65\x46\x72\x65\x71':{}};if(!Array[_0x51ff91(0x20e,'\x43\x39\x62\x62')](_0x211b1d)||_0x211b1d[_0x51ff91(0x238,'\x59\x43\x77\x32')]===-0xc9*-0x9+0x1dff*-0x1+0x16ee)return _0x485fbc;const _0x39390e=_0x211b1d['\x73\x6c\x69\x63\x65'](-RECENT_WINDOW),_0x2586f6=_0x39390e[_0x51ff91(0x271,'\x24\x6c\x4e\x72')](-FREQ_WINDOW);let _0x3bd8b5=-0xc9*-0x19+0x91*-0x2e+0x66d;for(let _0x52e0dc=_0x39390e[_0x51ff91(0x25e,'\x31\x44\x4c\x6f')]-(0x17c5+-0xf90+-0x834);_0x52e0dc>=-0x1*-0x741+-0x1*-0x1013+-0x1754;_0x52e0dc--){if(_0x39390e[_0x52e0dc][_0x51ff91(0x25d,'\x48\x47\x5a\x24')]===_0x51ff91(0x1e7,'\x6c\x7a\x52\x68'))_0x3bd8b5++;else break;}let _0x130278=0x35e+-0xb85+-0x1*-0x827;const _0x2c2e9c={};for(const _0x59b1a9 of _0x2586f6){if('\x76\x6c\x6a\x4c\x53'!==_0x51ff91(0x230,'\x66\x30\x4f\x4f'))_0x49223f[_0x51ff91(0x25f,'\x4d\x37\x5e\x37')]('\x73\x74\x61\x62\x6c\x65\x5f\x73'+_0x51ff91(0x269,'\x66\x79\x4b\x65')+_0x51ff91(0x231,'\x24\x6c\x4e\x72'));else{if(isEmptyCycle(_0x59b1a9))_0x130278++;for(const _0x471b4b of _0x59b1a9[_0x51ff91(0x1fb,'\x6e\x7a\x49\x57')+'\x64']??[])_0x2c2e9c[String(_0x471b4b)]=(_0x2c2e9c[String(_0x471b4b)]??0x1*-0x151b+-0x1014+0x252f)+(-0x1*0x955+-0x101*-0xb+-0x17*0x13);}}let _0x1a2167=0x3ae*0x4+-0x8d1+-0x5e7;for(let _0x5f5c74=_0x39390e[_0x51ff91(0x23b,'\x26\x4d\x65\x40')]-(-0x20c*0xd+-0x154e*0x1+0x2feb);_0x5f5c74>=0x2467+-0x151c+-0xf4b;_0x5f5c74--){if(isEmptyCycle(_0x39390e[_0x5f5c74]))_0x1a2167++;else break;}let _0x4247f6=-0x1a96+-0x1*0xf77+-0x2a0d*-0x1;for(let _0x2a57fb=_0x39390e['\x6c\x65\x6e\x67\x74\x68']-(-0x1964+0x2571+-0xc0c);_0x2a57fb>=0x410+-0x54e+0x13e;_0x2a57fb--){if(_0x51ff91(0x24c,'\x56\x54\x6f\x25')===_0x51ff91(0x27e,'\x6c\x7a\x32\x40')){if(isEmptyCycle(_0x39390e[_0x2a57fb]))break;if(isFailed(_0x39390e[_0x2a57fb]))_0x4247f6++;else break;}else return _0x43b7d3[_0x51ff91(0x24d,'\x66\x79\x4b\x65')]?.[_0x51ff91(0x253,'\x56\x54\x6f\x25')]===_0x51ff91(0x202,'\x6c\x7a\x32\x40');}let _0xf61de6=-0x31c*0x3+0x7aa+-0x1*-0x1aa,_0x3488cd=0x23e9+0x247a+0x9*-0x80b;for(const _0x5284a6 of _0x2586f6){if(isEmptyCycle(_0x5284a6))continue;_0x3488cd++;if(isFailed(_0x5284a6))_0xf61de6++;}let _0x3132c5=0x2*-0x1059+0x12ff*0x1+0xdb3;for(let _0x238e00=_0x39390e[_0x51ff91(0x246,'\x24\x35\x35\x58')]-(-0x2339+-0x49*-0x29+0x1789);_0x238e00>=-0x11*0x22+-0xbe*0x1+0x300;_0x238e00--){if(isEmptyCycle(_0x39390e[_0x238e00]))break;if(isSuccess(_0x39390e[_0x238e00]))_0x3132c5++;else break;}let _0x5d533e=0xb56+-0x1624+0xace;for(const _0x3d375d of _0x2586f6){if(isEmptyCycle(_0x3d375d))continue;if(isSuccess(_0x3d375d))_0x5d533e++;}return{'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x52\x65\x70\x61\x69\x72\x43\x6f\x75\x6e\x74':_0x3bd8b5,'\x65\x6d\x70\x74\x79\x43\x79\x63\x6c\x65\x43\x6f\x75\x6e\x74':_0x130278,'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x45\x6d\x70\x74\x79\x43\x79\x63\x6c\x65\x73':_0x1a2167,'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x46\x61\x69\x6c\x75\x72\x65\x43\x6f\x75\x6e\x74':_0x4247f6,'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x53\x75\x63\x63\x65\x73\x73\x43\x6f\x75\x6e\x74':_0x3132c5,'\x73\x75\x63\x63\x65\x73\x73\x43\x79\x63\x6c\x65\x43\x6f\x75\x6e\x74':_0x5d533e,'\x72\x65\x63\x65\x6e\x74\x46\x61\x69\x6c\x75\x72\x65\x52\x61\x74\x69\x6f':_0x3488cd>-0x23ce+0x1654+-0x2e*-0x4b?_0xf61de6/_0x3488cd:-0x18f6+0x155a+0x39c,'\x67\x65\x6e\x65\x46\x72\x65\x71':_0x2c2e9c};}export function computeMetaSignals(_0x483a8d){const _0x4942cd=_0x392b,_0x478b94=[];_0x483a8d[_0x4942cd(0x207,'\x31\x44\x4c\x6f')+_0x4942cd(0x254,'\x73\x61\x66\x38')+_0x4942cd(0x21f,'\x68\x25\x72\x35')]>=-0x7*0x47+0x1022+-0x25d*0x6&&(_0x4942cd(0x248,'\x26\x4d\x65\x40')!==_0x4942cd(0x214,'\x77\x45\x24\x47')?_0x10541e[_0x4942cd(0x1e8,'\x71\x33\x46\x37')]('\x65\x78\x70\x6c\x6f\x72\x65\x5f'+_0x4942cd(0x266,'\x4b\x5a\x5e\x6a')+_0x4942cd(0x22a,'\x4b\x5a\x5e\x6a')):(_0x478b94[_0x4942cd(0x274,'\x55\x6a\x37\x75')](_0x4942cd(0x22b,'\x75\x4c\x56\x57')+_0x4942cd(0x1de,'\x4b\x5a\x5e\x6a')+_0x4942cd(0x252,'\x66\x30\x4f\x4f')),_0x478b94[_0x4942cd(0x203,'\x64\x6e\x68\x26')](_0x4942cd(0x1ea,'\x38\x54\x4f\x53')+_0x4942cd(0x225,'\x57\x6f\x6c\x61')+_0x4942cd(0x1e5,'\x44\x53\x6f\x54')+_0x4942cd(0x1f4,'\x41\x51\x36\x63')+'\x6f\x70')));_0x483a8d['\x65\x6d\x70\x74\x79\x43\x79\x63'+'\x6c\x65\x43\x6f\x75\x6e\x74']>=0x245d+-0x6ae+-0x1dab&&(_0x4942cd(0x1ec,'\x31\x44\x4c\x6f')===_0x4942cd(0x236,'\x71\x63\x77\x66')?_0x5b0b4d[_0x4942cd(0x233,'\x49\x28\x36\x35')](_0x4942cd(0x261,'\x5d\x24\x61\x5d')+_0x4942cd(0x26a,'\x6c\x7a\x32\x40')+_0x4942cd(0x1fe,'\x4d\x37\x5e\x37')):_0x478b94['\x70\x75\x73\x68'](_0x4942cd(0x224,'\x68\x25\x72\x35')+_0x4942cd(0x23d,'\x77\x45\x24\x47')+'\x5f\x64\x65\x74\x65\x63\x74\x65'+'\x64'));if(_0x483a8d[_0x4942cd(0x245,'\x44\x53\x6f\x54')+_0x4942cd(0x277,'\x74\x5e\x49\x39')+_0x4942cd(0x1e3,'\x43\x39\x62\x62')]>=-0x1c8e+0xb4d+0x43*0x42){if(_0x4942cd(0x27d,'\x65\x4e\x70\x25')===_0x4942cd(0x22c,'\x74\x5e\x49\x39'))_0x478b94[_0x4942cd(0x1e1,'\x26\x4d\x65\x40')]('\x66\x6f\x72\x63\x65\x5f\x73\x74'+_0x4942cd(0x22d,'\x64\x6e\x68\x26')+'\x74\x65'),_0x478b94[_0x4942cd(0x21a,'\x41\x51\x36\x63')](_0x4942cd(0x22e,'\x69\x62\x75\x4d')+_0x4942cd(0x1ee,'\x66\x30\x4f\x4f')+_0x4942cd(0x20b,'\x55\x6a\x37\x75'));else{if(_0x362ee9[_0x4942cd(0x26d,'\x31\x44\x4c\x6f')+'\x6c\x65'])return!![];const _0x55ff88=_0x1e7d38[_0x4942cd(0x1eb,'\x5d\x24\x61\x5d')+'\x69\x75\x73'];return!!_0x55ff88&&(_0x55ff88[_0x4942cd(0x211,'\x75\x4c\x56\x57')]??-(0x15b9+0x184d+-0x2e05))===-0x1662+-0x119c+0x27fe&&(_0x55ff88['\x6c\x69\x6e\x65\x73']??-(-0x1b2*-0x9+0x3b0*-0x6+-0x1*-0x6df))===0x1*0xe48+-0x1b5a+0x2*0x689;}}else _0x483a8d[_0x4942cd(0x272,'\x48\x47\x5a\x24')+_0x4942cd(0x277,'\x74\x5e\x49\x39')+_0x4942cd(0x24e,'\x5d\x24\x61\x5d')]>=-0x1*-0x8b5+0x1f8+0x5*-0x222&&(_0x4942cd(0x1f6,'\x38\x54\x4f\x53')!==_0x4942cd(0x217,'\x34\x66\x64\x53')?(_0x573fd2[_0x4942cd(0x212,'\x5d\x24\x61\x5d')](_0x4942cd(0x21c,'\x74\x5e\x49\x39')+_0x4942cd(0x228,'\x77\x45\x24\x47')+'\x69\x6f'),_0x5d5f43[_0x4942cd(0x276,'\x59\x65\x64\x71')](_0x4942cd(0x258,'\x25\x28\x6c\x69')+'\x6e\x6f\x76\x61\x74\x69\x6f\x6e'+_0x4942cd(0x1fd,'\x38\x54\x4f\x53')+'\x65\x70\x61\x69\x72\x5f\x6c\x6f'+'\x6f\x70')):_0x478b94[_0x4942cd(0x265,'\x56\x54\x4b\x50')](_0x4942cd(0x21e,'\x74\x5e\x49\x39')+'\x6e\x5f\x73\x61\x74\x75\x72\x61'+'\x74\x69\x6f\x6e'));return _0x483a8d[_0x4942cd(0x206,'\x6c\x7a\x32\x40')+_0x4942cd(0x1e2,'\x26\x6f\x33\x6b')+_0x4942cd(0x267,'\x69\x62\x75\x4d')]>=-0x8a+-0x214e+-0x6b*-0x51&&_0x478b94[_0x4942cd(0x264,'\x74\x41\x6b\x4f')]('\x65\x78\x70\x6c\x6f\x72\x65\x5f'+_0x4942cd(0x20a,'\x6e\x7a\x49\x57')+_0x4942cd(0x216,'\x73\x61\x66\x38')),_0x483a8d[_0x4942cd(0x207,'\x31\x44\x4c\x6f')+_0x4942cd(0x244,'\x25\x28\x6c\x69')+_0x4942cd(0x20c,'\x38\x54\x4f\x53')]>=-0x7e5+-0xc5+0x8ad*0x1&&('\x65\x72\x79\x48\x5a'!==_0x4942cd(0x1f5,'\x56\x54\x4b\x50')?_0x3fb329[_0x4942cd(0x209,'\x77\x6e\x47\x49')](_0x4942cd(0x219,'\x67\x2a\x4b\x33')+_0x4942cd(0x1f3,'\x68\x25\x72\x35')+_0x4942cd(0x23a,'\x66\x30\x4f\x4f')):(_0x478b94[_0x4942cd(0x209,'\x77\x6e\x47\x49')](_0x4942cd(0x227,'\x28\x6b\x37\x38')+_0x4942cd(0x1ff,'\x25\x28\x6c\x69')+_0x4942cd(0x205,'\x71\x33\x46\x37')+'\x61\x6b\x5f'+_0x483a8d['\x63\x6f\x6e\x73\x65\x63\x75\x74'+_0x4942cd(0x1ed,'\x75\x4c\x56\x57')+_0x4942cd(0x1f9,'\x65\x4e\x70\x25')]),_0x483a8d[_0x4942cd(0x1f0,'\x56\x54\x6f\x25')+_0x4942cd(0x223,'\x38\x54\x4f\x53')+'\x72\x65\x43\x6f\x75\x6e\x74']>=0x1*0xbf5+0x20e4+0x97*-0x4c&&_0x478b94[_0x4942cd(0x215,'\x67\x2a\x4b\x33')](_0x4942cd(0x226,'\x41\x51\x36\x63')+_0x4942cd(0x26e,'\x24\x35\x35\x58')+_0x4942cd(0x1e0,'\x77\x45\x24\x47')))),_0x483a8d['\x72\x65\x63\x65\x6e\x74\x46\x61'+_0x4942cd(0x1f2,'\x26\x4d\x65\x40')+'\x69\x6f']>=0x16d6*-0x1+-0xa2*-0x21+0x1f4+0.75&&(_0x478b94[_0x4942cd(0x24a,'\x4b\x5a\x5e\x6a')](_0x4942cd(0x242,'\x77\x45\x24\x47')+'\x6c\x75\x72\x65\x5f\x72\x61\x74'+'\x69\x6f'),_0x478b94[_0x4942cd(0x264,'\x74\x41\x6b\x4f')](_0x4942cd(0x239,'\x26\x6f\x33\x6b')+'\x6e\x6f\x76\x61\x74\x69\x6f\x6e'+_0x4942cd(0x1f1,'\x78\x40\x54\x55')+_0x4942cd(0x27a,'\x56\x54\x4b\x50')+'\x6f\x70')),_0x483a8d[_0x4942cd(0x270,'\x57\x51\x79\x4c')+_0x4942cd(0x27b,'\x64\x6e\x68\x26')+_0x4942cd(0x221,'\x41\x51\x36\x63')]>=-0x87e*-0x3+0xf46+-0x28bb&&_0x478b94[_0x4942cd(0x200,'\x75\x4c\x56\x57')]('\x73\x74\x61\x62\x6c\x65\x5f\x73'+_0x4942cd(0x1fc,'\x6e\x49\x62\x73')+_0x4942cd(0x256,'\x25\x28\x6c\x69')),_0x483a8d[_0x4942cd(0x206,'\x6c\x7a\x32\x40')+_0x4942cd(0x26b,'\x57\x51\x79\x4c')+_0x4942cd(0x23c,'\x57\x6f\x6c\x61')]>=-0x10f*0x17+0x11*0x66+-0x1*-0x1196&&_0x483a8d[_0x4942cd(0x201,'\x42\x33\x28\x47')+_0x4942cd(0x21d,'\x43\x39\x62\x62')+'\x69\x6f']>0x22e9+-0x44+-0x22a5&&_0x478b94[_0x4942cd(0x240,'\x38\x54\x4f\x53')](_0x4942cd(0x279,'\x6e\x7a\x49\x57')+'\x72\x65\x61\x64\x79\x5f\x72\x65'+_0x4942cd(0x255,'\x5d\x24\x61\x5d')),_0x483a8d[_0x4942cd(0x21b,'\x49\x28\x36\x35')+_0x4942cd(0x1e6,'\x74\x5e\x49\x39')+_0x4942cd(0x220,'\x45\x41\x63\x5e')]>-0x1039*0x2+-0x1*-0x193+0x1edf&&_0x483a8d[_0x4942cd(0x1f7,'\x45\x41\x63\x5e')+_0x4942cd(0x257,'\x28\x6b\x37\x38')+'\x74']>=-0x1bbd*-0x1+-0x95e+-0x125d*0x1&&_0x483a8d[_0x4942cd(0x235,'\x38\x54\x4f\x53')+_0x4942cd(0x26c,'\x41\x55\x79\x35')+'\x69\x6f']>0x1*0x4cf+-0x231a*0x1+-0xeb*-0x21&&_0x483a8d[_0x4942cd(0x210,'\x56\x54\x4b\x50')+_0x4942cd(0x1f8,'\x56\x54\x4b\x50')+'\x69\x6f']<-0x16b0+-0x171b*0x1+0x1*0x2dcb+0.5&&(_0x4942cd(0x1df,'\x66\x79\x4b\x65')!==_0x4942cd(0x208,'\x74\x41\x6b\x4f')?_0x478b94[_0x4942cd(0x24f,'\x59\x43\x77\x32')]('\x6f\x70\x65\x6e\x63\x6c\x61\x77'+_0x4942cd(0x25b,'\x77\x45\x24\x47')+_0x4942cd(0x232,'\x68\x25\x72\x35')):_0x277b65[_0x4942cd(0x249,'\x66\x30\x4f\x4f')](_0x4942cd(0x20f,'\x21\x28\x48\x64')+_0x4942cd(0x234,'\x64\x6e\x68\x26')+_0x4942cd(0x262,'\x26\x4d\x65\x40'))),[...new Set(_0x478b94)];}function _0x2c91(){const _0x4b36d5=['\x67\x6d\x6f\x65\x57\x51\x70\x64\x4d\x57','\x61\x57\x6c\x64\x55\x74\x6c\x63\x4b\x43\x6f\x77\x68\x6d\x6f\x38\x57\x35\x4a\x64\x4b\x59\x64\x64\x4b\x57','\x66\x6d\x6b\x6c\x57\x50\x4b\x31\x57\x4f\x75\x6f\x57\x51\x4c\x6c','\x57\x35\x6a\x31\x72\x6d\x6b\x67\x57\x34\x71','\x42\x74\x58\x7a\x63\x6d\x6f\x76\x57\x34\x65\x34','\x57\x35\x4e\x64\x47\x72\x70\x63\x47\x47','\x57\x4f\x6c\x64\x4a\x66\x64\x64\x48\x57','\x41\x30\x64\x63\x47\x43\x6f\x31\x57\x37\x56\x64\x4b\x32\x62\x56','\x67\x53\x6b\x2f\x6c\x43\x6b\x53\x57\x50\x47\x2b','\x44\x32\x61\x54','\x6e\x72\x48\x44\x70\x75\x57\x31\x72\x38\x6f\x33','\x57\x34\x33\x64\x47\x6d\x6b\x49\x57\x51\x68\x63\x52\x47\x69\x70\x69\x47','\x65\x76\x5a\x63\x49\x32\x68\x64\x4c\x53\x6f\x6d\x57\x37\x76\x47','\x6b\x43\x6b\x33\x79\x61\x46\x64\x4e\x5a\x72\x47\x79\x57','\x57\x34\x65\x48\x63\x57\x71\x6e\x61\x6d\x6f\x64\x57\x52\x79','\x77\x43\x6f\x75\x57\x37\x6d\x6a\x57\x4f\x37\x64\x4e\x38\x6b\x62\x57\x50\x75','\x71\x53\x6f\x6d\x57\x34\x72\x4f\x57\x35\x72\x78\x57\x51\x6a\x32\x57\x37\x68\x63\x52\x67\x6a\x57','\x67\x30\x78\x63\x47\x65\x68\x64\x48\x53\x6f\x6d\x57\x36\x6e\x58','\x57\x50\x6c\x64\x52\x43\x6b\x4a\x57\x51\x2f\x64\x4a\x71','\x57\x36\x79\x67\x45\x6d\x6b\x37\x57\x51\x6e\x2f\x68\x63\x71','\x62\x48\x31\x32\x57\x37\x69\x37\x6f\x30\x70\x63\x55\x61','\x57\x50\x38\x57\x64\x43\x6f\x33','\x57\x34\x62\x77\x6d\x38\x6b\x7a\x45\x4c\x52\x63\x4f\x4a\x78\x64\x4c\x53\x6f\x53\x57\x52\x34','\x63\x77\x4e\x63\x54\x30\x75','\x7a\x74\x4f\x33\x66\x66\x72\x4b\x57\x35\x58\x75','\x6f\x68\x39\x47\x7a\x57\x50\x34\x57\x35\x50\x2b\x72\x64\x69\x76','\x57\x34\x30\x47\x7a\x57\x43\x6f\x57\x37\x78\x64\x4a\x4b\x47','\x57\x50\x46\x64\x49\x75\x6c\x64\x48\x53\x6f\x71\x78\x53\x6f\x31\x57\x36\x6d','\x63\x48\x68\x64\x48\x71\x4a\x64\x51\x77\x2f\x63\x4d\x43\x6b\x58','\x61\x53\x6b\x6d\x57\x51\x50\x6c\x57\x36\x46\x64\x4e\x53\x6b\x6e\x57\x4f\x56\x63\x55\x38\x6b\x6e\x41\x57','\x57\x36\x72\x45\x57\x37\x43\x2f\x61\x61','\x57\x37\x68\x64\x51\x38\x6b\x4b\x57\x4f\x4a\x63\x51\x47','\x41\x31\x2f\x63\x47\x43\x6f\x66\x57\x36\x33\x64\x47\x4d\x66\x4b','\x61\x73\x50\x7a\x69\x66\x75','\x57\x35\x6e\x31\x64\x6d\x6f\x32\x66\x47','\x57\x34\x44\x4a\x71\x38\x6b\x6c','\x76\x5a\x35\x44\x57\x51\x6c\x64\x48\x5a\x4a\x64\x4b\x6d\x6b\x51','\x62\x63\x6a\x44\x57\x52\x42\x63\x51\x38\x6f\x2b','\x57\x4f\x43\x4c\x74\x6d\x6b\x4a\x62\x5a\x56\x63\x47\x58\x38\x77\x78\x47','\x57\x35\x33\x64\x53\x65\x6d\x34\x65\x6d\x6f\x70\x72\x73\x71','\x7a\x74\x4f\x33\x61\x4b\x58\x33\x57\x34\x54\x69','\x72\x76\x70\x63\x55\x67\x64\x64\x47\x43\x6b\x77','\x57\x36\x33\x63\x48\x6d\x6b\x77\x57\x36\x71','\x57\x50\x66\x6b\x57\x50\x6c\x64\x52\x4a\x4a\x63\x51\x74\x4e\x64\x4f\x38\x6b\x61\x61\x67\x6a\x61','\x46\x75\x33\x63\x55\x53\x6f\x37\x42\x6d\x6f\x47\x45\x53\x6b\x33','\x67\x43\x6b\x78\x57\x50\x30\x4f\x57\x50\x69\x57\x57\x51\x4c\x79','\x57\x34\x75\x2b\x69\x4a\x47\x71','\x64\x48\x69\x54\x57\x52\x33\x63\x56\x53\x6f\x6c\x57\x34\x57\x41','\x62\x62\x2f\x63\x53\x53\x6b\x47\x77\x38\x6b\x63\x57\x51\x69\x48','\x57\x35\x35\x32\x73\x53\x6b\x56\x6d\x53\x6b\x4b\x57\x35\x38\x45\x57\x35\x76\x4a','\x70\x65\x78\x63\x54\x57\x5a\x63\x49\x43\x6f\x31\x66\x6d\x6b\x77','\x64\x63\x75\x55\x62\x49\x6c\x63\x52\x43\x6f\x4b\x78\x71','\x57\x35\x35\x36\x72\x43\x6b\x72\x57\x34\x78\x64\x52\x43\x6b\x38\x68\x47','\x57\x37\x61\x45\x61\x4c\x76\x65\x57\x50\x58\x4e\x57\x37\x75','\x57\x35\x4e\x64\x51\x53\x6f\x4b\x61\x32\x68\x64\x4f\x32\x78\x64\x48\x47','\x57\x50\x46\x64\x49\x31\x52\x64\x50\x38\x6f\x34','\x42\x4c\x6c\x63\x4f\x6d\x6f\x54\x79\x47','\x69\x43\x6f\x31\x57\x35\x42\x64\x4e\x59\x44\x44\x57\x35\x56\x63\x4c\x47','\x57\x50\x56\x64\x4c\x76\x42\x64\x4e\x43\x6f\x68\x75\x38\x6f\x34\x57\x37\x47','\x57\x37\x72\x74\x57\x34\x65\x64\x67\x38\x6b\x54\x70\x61','\x41\x6d\x6f\x32\x44\x53\x6f\x32\x57\x34\x39\x31\x66\x61\x61\x34\x57\x36\x61\x72\x41\x61','\x57\x34\x6d\x32\x45\x48\x43\x79\x57\x37\x2f\x64\x4e\x65\x65','\x57\x4f\x69\x63\x7a\x53\x6f\x6f\x70\x30\x5a\x63\x4c\x63\x38','\x72\x65\x70\x63\x52\x53\x6f\x53\x42\x6d\x6f\x6e\x74\x6d\x6b\x52','\x63\x43\x6f\x44\x57\x52\x78\x64\x4c\x57','\x57\x34\x57\x63\x46\x63\x2f\x63\x4a\x47\x34\x4c\x61\x57','\x66\x58\x65\x37\x57\x50\x6d','\x57\x52\x76\x4e\x68\x53\x6f\x2f\x57\x52\x5a\x63\x4e\x31\x6d\x2b','\x57\x36\x68\x64\x48\x53\x6b\x4b\x57\x51\x37\x63\x52\x73\x34\x75','\x65\x58\x6c\x64\x4b\x5a\x6d','\x57\x51\x43\x39\x57\x36\x5a\x63\x54\x53\x6b\x6b\x57\x36\x43','\x57\x36\x4a\x63\x47\x38\x6b\x61\x57\x35\x6e\x66\x57\x37\x61\x6d\x57\x52\x57','\x57\x37\x68\x64\x4e\x6d\x6b\x50\x57\x52\x37\x63\x52\x74\x34\x73\x6d\x57','\x57\x34\x43\x4a\x66\x71\x6d\x72\x69\x6d\x6f\x70\x57\x51\x65','\x57\x36\x78\x64\x47\x71\x70\x63\x4e\x48\x61','\x57\x35\x75\x6c\x57\x35\x64\x63\x54\x71','\x57\x34\x53\x4a\x7a\x62\x30\x7a\x57\x35\x37\x64\x4d\x4b\x4f','\x57\x50\x53\x53\x65\x43\x6f\x58','\x41\x75\x46\x63\x49\x38\x6f\x33\x46\x6d\x6f\x72\x7a\x57','\x69\x48\x44\x46\x6b\x30\x53\x75\x45\x43\x6f\x4a','\x6c\x49\x48\x2f\x57\x51\x4a\x63\x56\x6d\x6f\x53\x57\x37\x61','\x6b\x6d\x6b\x75\x57\x35\x44\x44\x57\x51\x79\x31\x57\x4f\x46\x63\x49\x47','\x57\x4f\x64\x64\x4e\x65\x64\x64\x49\x53\x6f\x6d\x44\x43\x6f\x46\x57\x36\x30','\x61\x71\x30\x4b\x57\x50\x37\x63\x52\x61','\x63\x38\x6b\x6f\x57\x4f\x38\x5a','\x6d\x4b\x78\x63\x50\x43\x6f\x61\x57\x36\x6c\x64\x47\x66\x79','\x57\x37\x72\x75\x70\x6d\x6f\x59\x62\x61','\x69\x53\x6f\x33\x57\x52\x52\x63\x4a\x47','\x43\x72\x6c\x64\x56\x71','\x66\x47\x62\x55\x57\x37\x6d\x50','\x57\x35\x78\x63\x54\x53\x6f\x34\x57\x4f\x33\x64\x47\x32\x62\x69\x7a\x43\x6b\x6f','\x6e\x38\x6f\x30\x57\x51\x42\x63\x49\x53\x6f\x4b\x63\x6d\x6f\x4e\x57\x37\x4f','\x57\x34\x5a\x64\x52\x38\x6f\x32\x61\x47','\x46\x78\x4f\x57\x57\x37\x79\x50\x57\x50\x64\x64\x4a\x49\x75','\x7a\x63\x75\x31\x6f\x77\x7a\x59\x57\x34\x4c\x65','\x6c\x4a\x44\x6c\x57\x51\x4a\x63\x51\x38\x6f\x46\x57\x36\x48\x2b','\x41\x74\x4f\x39\x70\x75\x58\x47\x57\x34\x66\x63','\x57\x36\x57\x63\x68\x4b\x66\x45\x57\x50\x30','\x69\x43\x6f\x5a\x57\x37\x42\x64\x4b\x5a\x44\x61\x57\x35\x57','\x57\x34\x2f\x64\x51\x43\x6f\x67\x62\x77\x42\x64\x4b\x4e\x30','\x57\x34\x65\x6f\x41\x53\x6f\x47\x6b\x33\x78\x63\x4f\x71','\x43\x4c\x74\x63\x52\x43\x6f\x45\x41\x6d\x6f\x77\x46\x38\x6b\x53','\x57\x37\x53\x53\x61\x75\x62\x6a\x57\x52\x7a\x32\x57\x36\x30','\x57\x52\x4f\x4d\x57\x37\x56\x63\x4f\x38\x6b\x6c\x57\x37\x31\x79\x78\x57','\x57\x35\x52\x64\x55\x38\x6f\x53\x62\x4d\x42\x64\x4a\x4d\x5a\x64\x54\x47','\x44\x6d\x6b\x37\x6c\x43\x6b\x6d\x45\x53\x6f\x69\x63\x67\x69','\x57\x35\x50\x4a\x63\x53\x6f\x32\x6c\x71\x52\x63\x4f\x59\x75','\x69\x48\x78\x64\x53\x6d\x6b\x52\x6f\x38\x6b\x6b\x45\x43\x6b\x74\x44\x72\x4a\x63\x48\x78\x6d','\x42\x75\x74\x63\x49\x61','\x66\x71\x65\x34\x57\x50\x52\x63\x54\x53\x6f\x71\x57\x37\x38\x64','\x42\x49\x71\x4e\x61\x4c\x43','\x62\x47\x42\x64\x48\x63\x6c\x64\x47\x33\x2f\x63\x4a\x53\x6b\x31','\x70\x6d\x6b\x57\x69\x43\x6b\x53\x57\x4f\x47\x35\x70\x4a\x4b','\x57\x52\x72\x42\x69\x38\x6f\x36\x57\x37\x76\x73\x6a\x59\x70\x63\x55\x38\x6f\x48\x7a\x47','\x68\x63\x5a\x63\x51\x38\x6b\x6e\x46\x61','\x57\x4f\x33\x64\x4f\x6d\x6b\x2b\x57\x51\x4e\x64\x49\x78\x71','\x57\x37\x38\x54\x66\x66\x61','\x42\x4d\x61\x54\x57\x36\x30','\x64\x57\x4a\x64\x4a\x59\x56\x64\x47\x32\x4a\x63\x4e\x38\x6b\x47','\x41\x75\x46\x63\x51\x38\x6f\x39\x7a\x38\x6f\x6c\x76\x43\x6b\x34','\x6f\x67\x66\x41\x7a\x64\x4f','\x76\x31\x64\x63\x4b\x48\x52\x64\x54\x32\x33\x63\x55\x6d\x6b\x62\x65\x71','\x57\x34\x33\x64\x55\x6d\x6b\x57\x57\x4f\x2f\x64\x49\x43\x6f\x41','\x77\x63\x44\x6b\x57\x4f\x74\x64\x4a\x58\x46\x64\x4a\x43\x6b\x39','\x68\x49\x4e\x63\x52\x53\x6b\x56','\x57\x35\x54\x5a\x78\x53\x6b\x65\x57\x35\x74\x64\x4c\x57','\x57\x51\x43\x36\x57\x34\x37\x63\x52\x43\x6b\x6b\x57\x37\x50\x64','\x57\x35\x76\x36\x68\x43\x6f\x6d\x68\x48\x46\x63\x52\x73\x65','\x57\x37\x75\x5a\x73\x6d\x6b\x50\x57\x36\x52\x63\x50\x66\x38\x6c\x57\x34\x64\x64\x53\x72\x30','\x74\x66\x44\x2f\x77\x4a\x71\x54\x74\x57','\x41\x31\x46\x63\x55\x38\x6f\x57','\x41\x75\x78\x63\x54\x4a\x74\x63\x49\x38\x6f\x43\x63\x57','\x57\x35\x35\x2f\x68\x38\x6f\x37\x6c\x72\x37\x63\x4f\x5a\x47','\x77\x33\x64\x64\x55\x43\x6f\x33\x68\x43\x6f\x70\x57\x50\x6d\x77\x77\x6d\x6f\x6e\x57\x51\x47\x75','\x57\x34\x57\x63\x46\x64\x42\x63\x49\x71\x79\x47\x67\x47','\x57\x36\x68\x64\x56\x4b\x53\x2f\x65\x6d\x6f\x45\x42\x59\x69','\x77\x43\x6f\x45\x57\x37\x69\x45\x57\x51\x78\x64\x4b\x57','\x41\x49\x75\x2b\x6e\x65\x4f','\x57\x37\x76\x75\x44\x6d\x6b\x63\x57\x35\x79','\x67\x4a\x78\x63\x53\x53\x6b\x50','\x44\x65\x78\x63\x47\x53\x6f\x59','\x41\x58\x70\x64\x50\x58\x72\x6f\x57\x50\x6a\x73','\x70\x68\x6c\x63\x55\x4a\x52\x63\x4a\x47','\x6c\x57\x35\x6b\x6f\x31\x61\x52\x46\x71','\x6f\x6d\x6b\x63\x57\x50\x38\x33\x57\x4f\x6d\x72','\x57\x35\x68\x64\x51\x6d\x6b\x54\x57\x4f\x61','\x7a\x53\x6b\x58\x57\x37\x56\x64\x4b\x6d\x6b\x49\x65\x6d\x6f\x38\x57\x34\x79\x6b\x57\x51\x50\x6e','\x57\x52\x44\x79\x69\x38\x6f\x37\x57\x37\x35\x74\x69\x57\x74\x63\x56\x38\x6f\x54\x73\x57','\x63\x74\x74\x63\x50\x6d\x6b\x4c','\x6c\x66\x37\x63\x55\x61\x56\x63\x4d\x43\x6f\x4c','\x43\x72\x64\x64\x4f\x73\x76\x6f\x57\x50\x66\x61\x57\x50\x61','\x63\x6d\x6b\x75\x57\x50\x61\x54\x57\x4f\x6d\x67','\x57\x34\x4b\x76\x42\x72\x78\x63\x49\x72\x4f','\x42\x53\x6b\x33\x6c\x38\x6b\x41\x78\x6d\x6f\x65\x63\x68\x47','\x57\x34\x6d\x42\x41\x58\x70\x63\x4a\x74\x61\x4c\x61\x71','\x57\x34\x53\x35\x64\x58\x6d\x42\x6c\x53\x6f\x46','\x57\x4f\x79\x4b\x62\x43\x6f\x72\x57\x50\x70\x64\x53\x43\x6b\x74\x67\x77\x2f\x63\x54\x67\x6d','\x57\x36\x4c\x4c\x68\x43\x6f\x2f\x66\x63\x46\x63\x51\x4a\x71','\x65\x61\x72\x4e\x57\x37\x69\x33\x63\x57','\x57\x36\x57\x68\x79\x53\x6b\x54\x57\x51\x48\x4f','\x57\x34\x47\x50\x66\x72\x43\x61\x6b\x57'];_0x2c91=function(){return _0x4b36d5;};return _0x2c91();}
|
|
@@ -1,40 +1 @@
|
|
|
1
|
-
import { createHash }
|
|
2
|
-
import { normalizeText } from '../signatures/signatures.js';
|
|
3
|
-
const STRENGTH_WEIGHT = { strong: 1.0, agent: 0.8, success: 0.7, weak: 0.4 };
|
|
4
|
-
function signatureOf(s) {
|
|
5
|
-
return createHash('sha1').update(`${s.kind}\x1f${normalizeText(s.text)}`).digest('hex').slice(0, 16);
|
|
6
|
-
}
|
|
7
|
-
/** 单信号基础分 = 强度权重 ×(0.7 + 特异度). 特异度: 带 toolName/具体 kind 加成. */
|
|
8
|
-
function baseScore(s) {
|
|
9
|
-
let specificity = 0;
|
|
10
|
-
if (s.toolName)
|
|
11
|
-
specificity += 0.2;
|
|
12
|
-
if (s.kind !== 'difficulty')
|
|
13
|
-
specificity += 0.1;
|
|
14
|
-
return STRENGTH_WEIGHT[s.strength] * (0.7 + specificity);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* 信号打分 + 去重闸(M4A-3, task 队列前最后一道). 同签名去重并累计 occurrences(持久=更高分),
|
|
18
|
-
* 丢弃低分, 截断防低质信号灌爆 task 队列(批注#18).
|
|
19
|
-
*/
|
|
20
|
-
export function signalGate(signals, cfg = {}) {
|
|
21
|
-
const minScore = cfg.minScore ?? 0.3;
|
|
22
|
-
const maxOutput = cfg.maxOutput ?? 50;
|
|
23
|
-
const merged = new Map();
|
|
24
|
-
for (const s of signals) {
|
|
25
|
-
const sig = signatureOf(s);
|
|
26
|
-
const existing = merged.get(sig);
|
|
27
|
-
if (existing) {
|
|
28
|
-
existing.occurrences += 1;
|
|
29
|
-
// 持久信号加成(对数, 边际递减)
|
|
30
|
-
existing.score = baseScore(existing) * (1 + Math.min(0.5, Math.log10(existing.occurrences + 1)));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
merged.set(sig, { ...s, signature: sig, occurrences: 1, score: baseScore(s) });
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return [...merged.values()]
|
|
37
|
-
.filter((s) => s.score >= minScore)
|
|
38
|
-
.sort((a, b) => b.score - a.score)
|
|
39
|
-
.slice(0, maxOutput);
|
|
40
|
-
}
|
|
1
|
+
(function(_0x48b009,_0x56c7ab){const _0x3ea5f6=_0x4f6d,_0x4771a4=_0x48b009();while(!![]){try{const _0x519bd3=parseInt(_0x3ea5f6(0xfd,'\x53\x4b\x5e\x77'))/(-0x5*-0x4f0+0xb13+-0x2e*0xc7)+parseInt(_0x3ea5f6(0x101,'\x35\x34\x6c\x59'))/(0x5d6+0x1*0x1c07+-0x1*0x21db)*(parseInt(_0x3ea5f6(0xf0,'\x32\x41\x30\x63'))/(0x25*-0xd+-0xa*-0x2+-0x8*-0x3a))+-parseInt(_0x3ea5f6(0xff,'\x4b\x70\x49\x4b'))/(0x13aa+0x2*-0x9ba+-0x2*0x19)+parseInt(_0x3ea5f6(0x100,'\x62\x6d\x29\x45'))/(-0x50*0x7c+0xb7e+0x1b47)+parseInt(_0x3ea5f6(0xfc,'\x29\x35\x77\x40'))/(0x1354+0x2091*-0x1+0xd43)+-parseInt(_0x3ea5f6(0xe3,'\x32\x41\x30\x63'))/(-0x115*-0x6+-0x506*0x3+0x89b)+parseInt(_0x3ea5f6(0xfe,'\x53\x4b\x5e\x77'))/(-0x87b*0x2+0x8*0x33a+-0x8d2)*(parseInt(_0x3ea5f6(0xe5,'\x70\x6b\x26\x54'))/(0x1f44+-0x67f*-0x1+-0x25ba));if(_0x519bd3===_0x56c7ab)break;else _0x4771a4['push'](_0x4771a4['shift']());}catch(_0x752571){_0x4771a4['push'](_0x4771a4['shift']());}}}(_0x398b,0x46520+-0x4*0x24de+0x4875b));import{createHash}from'\x6e\x6f\x64\x65\x3a\x63\x72\x79\x70\x74\x6f';import{normalizeText}from'\x2e\x2e\x2f\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x73\x2f\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x73\x2e\x6a\x73';function _0x4f6d(_0x4d7d68,_0x3df754){_0x4d7d68=_0x4d7d68-(0x9f*0x19+-0x21*0xb+-0xd42);const _0x247e9a=_0x398b();let _0x2838f6=_0x247e9a[_0x4d7d68];if(_0x4f6d['\x5a\x4b\x55\x67\x6a\x45']===undefined){var _0x1ba230=function(_0x43c4cd){const _0x508787='\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 _0x22dece='',_0x225db='';for(let _0x2087a8=0x2350+-0x1*-0x1927+-0x17*0x2a1,_0x41cf2b,_0x31f2a2,_0x1130c2=0x385+0x2c5*0x1+-0x64a;_0x31f2a2=_0x43c4cd['\x63\x68\x61\x72\x41\x74'](_0x1130c2++);~_0x31f2a2&&(_0x41cf2b=_0x2087a8%(0x10a9*0x1+-0x1*0x1327+-0x2*-0x141)?_0x41cf2b*(-0x121a+0x88b*0x3+0x26d*-0x3)+_0x31f2a2:_0x31f2a2,_0x2087a8++%(0x1120+0x2556+-0x3672))?_0x22dece+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1973+0x19c7*-0x1+0x153&_0x41cf2b>>(-(-0x1431+0x717+-0x4*-0x347)*_0x2087a8&0x1c1f+0x270d+-0x17e*0x2d)):0x64c+-0xd95+0x749){_0x31f2a2=_0x508787['\x69\x6e\x64\x65\x78\x4f\x66'](_0x31f2a2);}for(let _0x3144b1=-0x19*-0x5c+-0x1*0x37f+-0x57d*0x1,_0x40a310=_0x22dece['\x6c\x65\x6e\x67\x74\x68'];_0x3144b1<_0x40a310;_0x3144b1++){_0x225db+='\x25'+('\x30\x30'+_0x22dece['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3144b1)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x6c2*-0x2+-0x1052*-0x1+-0x1dc6))['\x73\x6c\x69\x63\x65'](-(0x7f*0x14+-0x12bb+0x8d1*0x1));}return decodeURIComponent(_0x225db);};const _0x527115=function(_0x115b7b,_0x14b6b9){let _0x37174d=[],_0x48e9fc=-0xca*-0x28+0x19c7+-0x3957,_0xa87248,_0x517f26='';_0x115b7b=_0x1ba230(_0x115b7b);let _0x12c29e;for(_0x12c29e=0x171b+0x2358+-0x3a73;_0x12c29e<0x20fb+0x1c32+-0x3c2d;_0x12c29e++){_0x37174d[_0x12c29e]=_0x12c29e;}for(_0x12c29e=-0x6ad+-0x6cb*-0x1+-0x1e*0x1;_0x12c29e<-0x298*-0xe+0x11c5+-0x3515;_0x12c29e++){_0x48e9fc=(_0x48e9fc+_0x37174d[_0x12c29e]+_0x14b6b9['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x12c29e%_0x14b6b9['\x6c\x65\x6e\x67\x74\x68']))%(-0x20c4+-0x24b+0x1*0x240f),_0xa87248=_0x37174d[_0x12c29e],_0x37174d[_0x12c29e]=_0x37174d[_0x48e9fc],_0x37174d[_0x48e9fc]=_0xa87248;}_0x12c29e=0x26a*-0x6+-0x11d1+0x1*0x204d,_0x48e9fc=0x6e1*-0x1+0x6ad*-0x1+0xd8e;for(let _0xbbb331=-0x885*-0x2+0x2568+-0x3672;_0xbbb331<_0x115b7b['\x6c\x65\x6e\x67\x74\x68'];_0xbbb331++){_0x12c29e=(_0x12c29e+(-0x15d7+-0xf92*0x2+0x1*0x34fc))%(0x6d4+0x18f+0x1f*-0x3d),_0x48e9fc=(_0x48e9fc+_0x37174d[_0x12c29e])%(0x1b1e+0xe*-0x1c9+-0x120),_0xa87248=_0x37174d[_0x12c29e],_0x37174d[_0x12c29e]=_0x37174d[_0x48e9fc],_0x37174d[_0x48e9fc]=_0xa87248,_0x517f26+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x115b7b['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xbbb331)^_0x37174d[(_0x37174d[_0x12c29e]+_0x37174d[_0x48e9fc])%(-0x2125+0x175d*-0x1+-0x3982*-0x1)]);}return _0x517f26;};_0x4f6d['\x47\x53\x64\x4e\x65\x48']=_0x527115,_0x4f6d['\x56\x77\x56\x6f\x79\x57']={},_0x4f6d['\x5a\x4b\x55\x67\x6a\x45']=!![];}const _0x500be7=_0x247e9a[-0x45*0x35+-0x1b02+0x294b*0x1],_0x2da645=_0x4d7d68+_0x500be7,_0x76ef6c=_0x4f6d['\x56\x77\x56\x6f\x79\x57'][_0x2da645];return!_0x76ef6c?(_0x4f6d['\x67\x52\x4b\x63\x4f\x6d']===undefined&&(_0x4f6d['\x67\x52\x4b\x63\x4f\x6d']=!![]),_0x2838f6=_0x4f6d['\x47\x53\x64\x4e\x65\x48'](_0x2838f6,_0x3df754),_0x4f6d['\x56\x77\x56\x6f\x79\x57'][_0x2da645]=_0x2838f6):_0x2838f6=_0x76ef6c,_0x2838f6;}const STRENGTH_WEIGHT={'\x73\x74\x72\x6f\x6e\x67':0x1,'\x61\x67\x65\x6e\x74':0.8,'\x73\x75\x63\x63\x65\x73\x73':0.7,'\x77\x65\x61\x6b':0.4};function signatureOf(_0x2dafc){const _0x1f18cb=_0x4f6d;return createHash(_0x1f18cb(0xda,'\x53\x4b\x5e\x77'))[_0x1f18cb(0xf4,'\x41\x31\x75\x4b')](_0x2dafc[_0x1f18cb(0xe9,'\x6a\x30\x37\x34')]+'\x1f'+normalizeText(_0x2dafc[_0x1f18cb(0xfa,'\x38\x4e\x56\x72')]))[_0x1f18cb(0xe4,'\x6a\x30\x37\x34')]('\x68\x65\x78')[_0x1f18cb(0xfb,'\x30\x62\x4b\x29')](-0x962*-0x4+0x22b6*0x1+-0x241f*0x2,-0x7ca+-0x1ce1+0x24bb);}function _0x398b(){const _0x3d550b=['\x6c\x53\x6f\x59\x57\x51\x71','\x43\x4d\x6d\x44\x57\x36\x57\x56\x57\x50\x47','\x57\x50\x66\x4c\x57\x37\x6c\x63\x4d\x6d\x6b\x51\x57\x36\x71','\x73\x4a\x64\x64\x4b\x38\x6b\x50\x6d\x43\x6f\x5a\x6b\x49\x61','\x57\x34\x30\x58\x69\x58\x4a\x63\x56\x74\x58\x74','\x57\x52\x5a\x63\x4b\x59\x4b\x68\x64\x6d\x6b\x48\x57\x34\x6a\x32\x57\x36\x78\x63\x55\x6d\x6b\x35\x45\x38\x6b\x54','\x69\x59\x33\x63\x4c\x6d\x6f\x67\x42\x43\x6b\x70','\x68\x65\x58\x53\x57\x4f\x78\x64\x4d\x43\x6b\x2b\x57\x34\x6d','\x57\x37\x74\x64\x52\x6d\x6f\x6a\x44\x6d\x6b\x73\x57\x50\x4a\x63\x51\x4b\x5a\x64\x50\x59\x33\x63\x4d\x71','\x7a\x67\x56\x63\x4d\x77\x74\x63\x4c\x53\x6f\x6e\x76\x6d\x6f\x36','\x71\x38\x6f\x76\x57\x36\x47','\x6c\x63\x33\x63\x4e\x43\x6f\x68','\x45\x31\x4c\x33\x57\x37\x53\x2b\x6f\x67\x43\x45','\x68\x65\x61\x56\x57\x36\x31\x44','\x57\x4f\x71\x76\x57\x4f\x5a\x63\x4a\x38\x6f\x77','\x57\x37\x65\x62\x57\x51\x78\x63\x51\x38\x6b\x35','\x6a\x6d\x6b\x44\x77\x76\x4c\x66\x57\x35\x44\x30','\x57\x52\x6a\x4d\x72\x4a\x57\x79\x57\x52\x38\x59\x72\x67\x42\x64\x53\x53\x6f\x6f\x74\x38\x6b\x6e','\x57\x52\x4e\x64\x53\x66\x54\x5a\x44\x53\x6f\x49\x57\x4f\x43','\x62\x6d\x6f\x61\x6a\x47','\x70\x53\x6f\x61\x57\x52\x46\x64\x4b\x65\x52\x63\x4e\x57\x47\x6c\x6e\x63\x37\x63\x49\x61','\x57\x50\x74\x63\x4d\x73\x4b\x30','\x57\x4f\x69\x67\x57\x4f\x46\x63\x4e\x6d\x6f\x68\x57\x51\x65','\x57\x4f\x4a\x64\x52\x61\x64\x63\x4e\x43\x6f\x4f\x57\x52\x33\x64\x56\x38\x6b\x6b\x6f\x43\x6b\x6d\x66\x62\x46\x64\x50\x57','\x46\x4a\x6c\x63\x53\x76\x56\x63\x4f\x71','\x45\x4d\x68\x63\x4d\x65\x78\x63\x4b\x61','\x65\x47\x56\x64\x4a\x6d\x6b\x2b\x46\x4d\x6c\x63\x53\x6d\x6f\x70\x67\x33\x31\x42\x57\x34\x79\x37','\x79\x43\x6b\x54\x72\x4b\x33\x63\x4b\x71','\x6f\x43\x6f\x59\x57\x51\x38\x76','\x7a\x31\x7a\x39\x57\x36\x30\x50','\x6f\x32\x42\x64\x52\x48\x56\x64\x54\x66\x54\x6f\x57\x37\x56\x63\x47\x53\x6b\x55\x62\x71','\x57\x51\x6a\x30\x57\x52\x34\x44\x70\x38\x6b\x54\x6e\x38\x6f\x34\x41\x53\x6f\x4d\x6c\x57','\x57\x51\x4c\x31\x57\x52\x75\x41\x6d\x38\x6f\x4f\x42\x53\x6f\x6c\x73\x6d\x6f\x66\x64\x78\x52\x64\x48\x61','\x69\x4b\x6d\x30\x57\x52\x2f\x63\x49\x53\x6b\x61\x72\x53\x6b\x4e\x57\x36\x56\x63\x55\x6d\x6b\x50\x45\x4d\x38','\x57\x34\x50\x76\x78\x4d\x4a\x64\x48\x78\x30\x76\x76\x77\x39\x30\x6e\x61\x75\x73','\x42\x6d\x6f\x44\x7a\x76\x70\x63\x4a\x5a\x53\x67\x69\x38\x6b\x39\x57\x50\x37\x63\x50\x38\x6f\x4d','\x57\x36\x69\x51\x57\x36\x57\x43','\x46\x53\x6b\x74\x57\x37\x61','\x67\x43\x6f\x79\x57\x52\x2f\x64\x53\x31\x6a\x4c\x57\x36\x44\x62','\x57\x37\x65\x6a\x57\x36\x39\x51\x78\x33\x37\x63\x53\x6d\x6f\x34\x77\x61\x64\x64\x4d\x49\x6d'];_0x398b=function(){return _0x3d550b;};return _0x398b();}function baseScore(_0x45fda1){const _0xee1bf9=_0x4f6d;let _0x3ac62e=0x1*0x18a0+0x1*-0x1b72+0x2d2;if(_0x45fda1[_0xee1bf9(0xdc,'\x6a\x44\x52\x52')])_0x3ac62e+=0xfa*-0x16+0xfb2+0x5ca+0.2;if(_0x45fda1['\x6b\x69\x6e\x64']!=='\x64\x69\x66\x66\x69\x63\x75\x6c'+'\x74\x79')_0x3ac62e+=0x24a7+0x1322+-0x37c9+0.1;return STRENGTH_WEIGHT[_0x45fda1['\x73\x74\x72\x65\x6e\x67\x74\x68']]*(0x5*-0x295+0x2443+-0x175a+0.7+_0x3ac62e);}export function signalGate(_0x5775d1,_0x4cabe7={}){const _0x473ba4=_0x4f6d,_0x50f9af=_0x4cabe7[_0x473ba4(0xe7,'\x35\x32\x28\x35')]??-0x1b02+0x18e9+0x219*0x1+0.3,_0x253a12=_0x4cabe7[_0x473ba4(0xe1,'\x21\x2a\x79\x5e')+'\x74']??0x186b+0xbb3+-0x23ec,_0x281cb5=new Map();for(const _0x5e8eea of _0x5775d1){const _0x535bce=signatureOf(_0x5e8eea),_0x36ea48=_0x281cb5['\x67\x65\x74'](_0x535bce);_0x36ea48?(_0x36ea48[_0x473ba4(0xea,'\x30\x62\x4b\x29')+_0x473ba4(0xde,'\x38\x4e\x56\x72')]+=0x1a83+0x4*-0x6b+-0x11*0x176,_0x36ea48[_0x473ba4(0xf6,'\x29\x35\x77\x40')]=baseScore(_0x36ea48)*(0x1*-0x26f6+-0xc6b+0x2*0x19b1+Math[_0x473ba4(0xf1,'\x42\x6d\x26\x50')](0xc6d*-0x2+-0x161a+-0x4b2*-0xa+0.5,Math[_0x473ba4(0xeb,'\x73\x38\x24\x76')](_0x36ea48['\x6f\x63\x63\x75\x72\x72\x65\x6e'+_0x473ba4(0xe8,'\x5e\x6f\x35\x64')]+(-0x1d76+0x4f*-0x2b+-0x223*-0x14))))):_0x281cb5[_0x473ba4(0xdb,'\x28\x54\x6a\x6d')](_0x535bce,{..._0x5e8eea,'\x73\x69\x67\x6e\x61\x74\x75\x72\x65':_0x535bce,'\x6f\x63\x63\x75\x72\x72\x65\x6e\x63\x65\x73':0x1,'\x73\x63\x6f\x72\x65':baseScore(_0x5e8eea)});}return[..._0x281cb5[_0x473ba4(0xe0,'\x29\x5e\x5a\x71')]()][_0x473ba4(0xdf,'\x75\x5a\x49\x79')](_0x28fa2c=>_0x28fa2c[_0x473ba4(0xf7,'\x35\x32\x28\x35')]>=_0x50f9af)[_0x473ba4(0xf3,'\x56\x50\x59\x26')]((_0x4fbb7d,_0x4f791d)=>_0x4f791d[_0x473ba4(0xec,'\x41\x31\x75\x4b')]-_0x4fbb7d[_0x473ba4(0xf9,'\x77\x6e\x36\x66')])[_0x473ba4(0xed,'\x6b\x5d\x56\x5d')](0x139*-0x1f+-0x67b+0x2c62,_0x253a12);}
|
|
@@ -1,43 +1 @@
|
|
|
1
|
-
export const TASK_DOMAIN_SIGNAL_PREFIX = 'task_domain:';
|
|
2
|
-
const TASK_DOMAIN_SLUG_RE = /^[a-z0-9][a-z0-9-]{0,63}$/;
|
|
3
|
-
/** Identify the namespace even when the value is malformed, so it cannot leak into generic matching. */
|
|
4
|
-
export function isTaskDomainSignal(raw) {
|
|
5
|
-
return raw.trim().toLowerCase().startsWith(TASK_DOMAIN_SIGNAL_PREFIX);
|
|
6
|
-
}
|
|
7
|
-
/** Remove task-domain tokens from generic matching while preserving their original wire representation elsewhere. */
|
|
8
|
-
export function withoutTaskDomainSignals(signals) {
|
|
9
|
-
return signals.filter((signal) => !isTaskDomainSignal(signal));
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Resolve one canonical task domain from signal tokens. Parsing is order-independent and fail-closed:
|
|
13
|
-
* malformed tokens invalidate the whole dimension, and distinct valid slugs are ambiguous.
|
|
14
|
-
*/
|
|
15
|
-
export function resolveTaskDomainSignals(signals) {
|
|
16
|
-
const slugs = new Set();
|
|
17
|
-
let found = false;
|
|
18
|
-
for (const raw of signals) {
|
|
19
|
-
const signal = raw.trim();
|
|
20
|
-
const lower = signal.toLowerCase();
|
|
21
|
-
if (!lower.startsWith(TASK_DOMAIN_SIGNAL_PREFIX))
|
|
22
|
-
continue;
|
|
23
|
-
found = true;
|
|
24
|
-
if (signal !== raw)
|
|
25
|
-
return { status: 'invalid' };
|
|
26
|
-
const slug = lower.slice(TASK_DOMAIN_SIGNAL_PREFIX.length);
|
|
27
|
-
if (!TASK_DOMAIN_SLUG_RE.test(slug))
|
|
28
|
-
return { status: 'invalid' };
|
|
29
|
-
slugs.add(slug);
|
|
30
|
-
}
|
|
31
|
-
if (!found)
|
|
32
|
-
return { status: 'absent' };
|
|
33
|
-
if (slugs.size !== 1)
|
|
34
|
-
return { status: 'ambiguous' };
|
|
35
|
-
return { status: 'resolved', slug: slugs.values().next().value };
|
|
36
|
-
}
|
|
37
|
-
/** Emit a canonical wire token. Callers must supply an already-normalized lowercase slug. */
|
|
38
|
-
export function taskDomainSignal(slug) {
|
|
39
|
-
if (!TASK_DOMAIN_SLUG_RE.test(slug)) {
|
|
40
|
-
throw new Error(`invalid task_domain slug: ${slug}`);
|
|
41
|
-
}
|
|
42
|
-
return `${TASK_DOMAIN_SIGNAL_PREFIX}${slug}`;
|
|
43
|
-
}
|
|
1
|
+
function _0x6e76(_0x560d5a,_0x4352a0){_0x560d5a=_0x560d5a-(-0x2bc*0x8+-0xc*0x1cd+0x16b*0x1f);const _0x1e2d27=_0x5d4b();let _0x4a569d=_0x1e2d27[_0x560d5a];if(_0x6e76['\x52\x46\x75\x53\x78\x4d']===undefined){var _0x4978aa=function(_0x3b6ae2){const _0x2535df='\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 _0x33af6f='',_0x135ef0='';for(let _0x2e1219=0x740+0x1b2b+-0x226b,_0x294dc0,_0x46cf80,_0x14dfbb=-0x2089*0x1+0x191c+0x76d;_0x46cf80=_0x3b6ae2['\x63\x68\x61\x72\x41\x74'](_0x14dfbb++);~_0x46cf80&&(_0x294dc0=_0x2e1219%(-0x6*0x33d+0x1*0x436+-0x14*-0xc3)?_0x294dc0*(-0x17*0x1a5+0xcb*-0x2d+0x6*0xc4b)+_0x46cf80:_0x46cf80,_0x2e1219++%(-0xe*-0xef+0x1*-0x167+-0x13*0x9d))?_0x33af6f+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x170b+-0x59+0x1863&_0x294dc0>>(-(-0x226*-0x2+-0x1524+0x10da)*_0x2e1219&-0xd8b+0x4*0x445+-0x383)):-0x2381+0x1849+-0x2*-0x59c){_0x46cf80=_0x2535df['\x69\x6e\x64\x65\x78\x4f\x66'](_0x46cf80);}for(let _0x5dd979=0x189+0x14bf+0x7c*-0x2e,_0x39b123=_0x33af6f['\x6c\x65\x6e\x67\x74\x68'];_0x5dd979<_0x39b123;_0x5dd979++){_0x135ef0+='\x25'+('\x30\x30'+_0x33af6f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5dd979)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xfef*-0x2+0x1255*-0x1+-0xd79*0x1))['\x73\x6c\x69\x63\x65'](-(-0x1b6f+-0x1da*-0x13+-0x7*0x11b));}return decodeURIComponent(_0x135ef0);};const _0xec10b3=function(_0x5a173e,_0x325cad){let _0x5a5a51=[],_0x5371fe=0x7*-0x44a+-0x923+0x2729,_0x47c316,_0x86773b='';_0x5a173e=_0x4978aa(_0x5a173e);let _0x4766b5;for(_0x4766b5=-0x1*-0x3c7+0x197*0x3+-0x223*0x4;_0x4766b5<-0x386*-0xb+-0x7*0x1e7+-0x1871;_0x4766b5++){_0x5a5a51[_0x4766b5]=_0x4766b5;}for(_0x4766b5=-0x1f54+0x14ea+0x1f*0x56;_0x4766b5<-0x835+0xeed+-0x5b8;_0x4766b5++){_0x5371fe=(_0x5371fe+_0x5a5a51[_0x4766b5]+_0x325cad['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4766b5%_0x325cad['\x6c\x65\x6e\x67\x74\x68']))%(0x1*0xc3d+-0x5eb*-0x2+-0x1713),_0x47c316=_0x5a5a51[_0x4766b5],_0x5a5a51[_0x4766b5]=_0x5a5a51[_0x5371fe],_0x5a5a51[_0x5371fe]=_0x47c316;}_0x4766b5=-0x13b2+0x59*0xd+-0x5*-0x309,_0x5371fe=-0x9a7+0x571+0xe*0x4d;for(let _0x1c0dd4=-0x53*-0x7+-0x1af7+-0x2*-0xc59;_0x1c0dd4<_0x5a173e['\x6c\x65\x6e\x67\x74\x68'];_0x1c0dd4++){_0x4766b5=(_0x4766b5+(0x21d*-0x2+0x1*-0xbea+0x1025))%(0x1*0x1727+-0x21bf+0xb98),_0x5371fe=(_0x5371fe+_0x5a5a51[_0x4766b5])%(0x13df*0x1+-0xf*-0x17f+-0x1*0x2950),_0x47c316=_0x5a5a51[_0x4766b5],_0x5a5a51[_0x4766b5]=_0x5a5a51[_0x5371fe],_0x5a5a51[_0x5371fe]=_0x47c316,_0x86773b+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5a173e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1c0dd4)^_0x5a5a51[(_0x5a5a51[_0x4766b5]+_0x5a5a51[_0x5371fe])%(0x1*-0x1eb9+0xa3*-0x3d+-0x11a4*-0x4)]);}return _0x86773b;};_0x6e76['\x66\x6d\x73\x52\x41\x4b']=_0xec10b3,_0x6e76['\x53\x78\x6c\x44\x6c\x6f']={},_0x6e76['\x52\x46\x75\x53\x78\x4d']=!![];}const _0x59cebb=_0x1e2d27[0x2f*0x28+0x2331+-0x2a89*0x1],_0x1a4c2d=_0x560d5a+_0x59cebb,_0x40f0af=_0x6e76['\x53\x78\x6c\x44\x6c\x6f'][_0x1a4c2d];return!_0x40f0af?(_0x6e76['\x6a\x58\x57\x53\x53\x69']===undefined&&(_0x6e76['\x6a\x58\x57\x53\x53\x69']=!![]),_0x4a569d=_0x6e76['\x66\x6d\x73\x52\x41\x4b'](_0x4a569d,_0x4352a0),_0x6e76['\x53\x78\x6c\x44\x6c\x6f'][_0x1a4c2d]=_0x4a569d):_0x4a569d=_0x40f0af,_0x4a569d;}function _0x5d4b(){const _0x204b64=['\x44\x53\x6f\x6b\x57\x4f\x44\x4e\x75\x63\x4c\x4a\x76\x38\x6f\x66\x57\x51\x35\x78\x57\x52\x57\x69','\x63\x38\x6f\x59\x6f\x6d\x6b\x61\x44\x6d\x6b\x2f\x57\x36\x4e\x64\x4c\x43\x6b\x30','\x57\x35\x42\x63\x50\x73\x4a\x63\x53\x6d\x6f\x46\x57\x4f\x65\x66','\x57\x50\x4e\x63\x4d\x43\x6b\x46\x57\x37\x38\x44\x57\x35\x48\x54\x6a\x71','\x68\x6d\x6f\x64\x57\x4f\x33\x63\x4f\x68\x30\x4f\x57\x37\x37\x64\x49\x66\x57\x56\x65\x38\x6b\x74','\x57\x51\x31\x70\x57\x36\x69\x5a\x6c\x74\x47','\x57\x52\x46\x64\x56\x38\x6f\x71\x57\x50\x6d\x4a\x57\x51\x33\x63\x47\x53\x6b\x48','\x57\x50\x35\x78\x57\x51\x6c\x63\x4d\x53\x6b\x55\x57\x52\x78\x64\x51\x57','\x57\x50\x37\x63\x4d\x53\x6f\x45\x57\x4f\x72\x6a\x57\x51\x39\x76\x61\x43\x6b\x6d\x42\x43\x6f\x6e\x57\x34\x34','\x41\x53\x6b\x6c\x57\x50\x44\x33\x7a\x74\x57\x49\x6e\x61','\x57\x51\x70\x63\x4b\x48\x57\x30\x57\x52\x61','\x57\x35\x6c\x64\x55\x75\x4a\x64\x51\x43\x6b\x69\x57\x34\x6e\x4d\x73\x5a\x64\x64\x4c\x38\x6f\x51\x76\x4d\x43','\x57\x36\x46\x63\x4d\x38\x6b\x47\x57\x35\x46\x63\x4d\x6d\x6b\x38\x57\x36\x65\x4a\x57\x4f\x37\x64\x53\x38\x6b\x79\x79\x65\x57','\x57\x4f\x46\x63\x47\x49\x69','\x61\x38\x6b\x33\x57\x51\x70\x63\x4b\x38\x6f\x46\x76\x4d\x74\x64\x4b\x6d\x6f\x64\x6b\x72\x74\x63\x56\x71\x38','\x57\x51\x37\x64\x49\x43\x6b\x2b\x6e\x47','\x57\x50\x68\x63\x56\x58\x70\x63\x53\x57','\x73\x43\x6b\x2f\x41\x43\x6b\x46\x72\x6d\x6b\x30\x57\x36\x37\x64\x52\x71','\x67\x61\x6e\x74\x6c\x43\x6f\x63\x57\x36\x7a\x37\x57\x4f\x38','\x67\x61\x31\x53\x6b\x43\x6f\x51\x57\x36\x44\x4d\x57\x51\x65','\x57\x36\x68\x64\x49\x38\x6b\x33\x57\x37\x33\x64\x56\x53\x6f\x53','\x79\x67\x4e\x63\x4e\x38\x6b\x58\x73\x57\x58\x53\x76\x71','\x68\x38\x6f\x6b\x57\x4f\x42\x63\x4f\x68\x57\x51\x57\x50\x5a\x64\x4f\x67\x4b\x34\x68\x38\x6b\x61\x6f\x57','\x57\x36\x47\x31\x6a\x43\x6f\x42\x79\x64\x42\x64\x49\x43\x6f\x63\x57\x36\x6e\x68\x57\x37\x48\x43\x57\x37\x75','\x6f\x43\x6f\x35\x43\x53\x6f\x48\x57\x50\x50\x56\x76\x57','\x57\x36\x56\x63\x4c\x6d\x6f\x2f\x43\x43\x6b\x4a\x57\x4f\x30\x6a\x57\x34\x4e\x63\x4a\x43\x6f\x59\x57\x50\x5a\x63\x51\x47','\x77\x62\x4e\x64\x50\x53\x6b\x77\x57\x37\x6a\x6a\x57\x51\x70\x64\x4a\x74\x4c\x43\x6a\x75\x4a\x64\x54\x71','\x77\x71\x43\x75','\x57\x52\x61\x41\x71\x65\x79','\x57\x52\x56\x64\x48\x43\x6b\x4a\x45\x61','\x57\x52\x6e\x6f\x57\x52\x37\x64\x51\x53\x6f\x75\x75\x61\x70\x63\x54\x71','\x57\x51\x53\x79\x6a\x4d\x30','\x6c\x6d\x6b\x31\x67\x30\x78\x63\x54\x61\x31\x4e\x57\x34\x4f','\x57\x52\x76\x78\x7a\x57\x6a\x36\x57\x36\x30\x79','\x68\x6d\x6f\x63\x57\x4f\x2f\x64\x56\x47\x66\x4d\x57\x37\x4a\x64\x54\x30\x4b','\x57\x51\x37\x64\x4e\x53\x6b\x4b\x6c\x57','\x6a\x53\x6f\x53\x57\x36\x56\x64\x50\x71','\x57\x36\x4b\x46\x57\x52\x44\x31\x43\x78\x39\x70\x6f\x38\x6b\x67\x41\x31\x6c\x64\x4e\x30\x65','\x57\x51\x2f\x63\x52\x38\x6b\x32\x57\x37\x50\x63\x57\x35\x78\x63\x4e\x4a\x38','\x41\x67\x37\x64\x4e\x43\x6f\x69\x68\x78\x4f\x56\x71\x30\x43\x76\x57\x51\x56\x63\x49\x43\x6f\x62','\x57\x36\x33\x64\x53\x43\x6f\x6a\x57\x51\x79\x68\x57\x4f\x70\x63\x50\x63\x47\x31\x57\x36\x71\x69\x6b\x47','\x68\x62\x78\x64\x4c\x53\x6f\x4a\x6c\x6d\x6b\x52\x57\x34\x64\x63\x51\x38\x6b\x49\x57\x52\x54\x59\x44\x49\x4b','\x74\x6d\x6b\x7a\x57\x34\x5a\x64\x54\x49\x54\x51','\x57\x52\x33\x63\x51\x43\x6b\x77\x57\x36\x66\x71\x57\x34\x69'];_0x5d4b=function(){return _0x204b64;};return _0x5d4b();}const _0x1d8ac1=_0x6e76;(function(_0x5561eb,_0x4a226a){const _0x37801b=_0x6e76,_0x17e2e1=_0x5561eb();while(!![]){try{const _0x42661c=-parseInt(_0x37801b(0x9a,'\x77\x26\x53\x40'))/(-0x2*0x2b1+-0x9a7+0x23*0x6e)+parseInt(_0x37801b(0xa2,'\x4f\x37\x4c\x49'))/(-0x53*-0x7+-0x1af7+-0xc*-0x20f)+-parseInt(_0x37801b(0x98,'\x4c\x41\x69\x77'))/(0x21d*-0x2+0x1*-0xbea+0x1027)*(-parseInt(_0x37801b(0x80,'\x77\x26\x53\x40'))/(0x1*0x1727+-0x21bf+0xa9c))+parseInt(_0x37801b(0xa4,'\x54\x40\x79\x41'))/(0x13df*0x1+-0xf*-0x17f+-0x1*0x2a4b)*(-parseInt(_0x37801b(0x7f,'\x77\x4f\x53\x34'))/(0x1*-0x1eb9+0xa3*-0x3d+-0x22cb*-0x2))+-parseInt(_0x37801b(0x91,'\x77\x4f\x53\x34'))/(0x2f*0x28+0x2331+-0x1541*0x2)+parseInt(_0x37801b(0xa1,'\x4c\x41\x69\x77'))/(0x1f6f+0x72*-0x50+-0x17*-0x2f)+parseInt(_0x37801b(0x92,'\x79\x24\x58\x54'))/(-0x6*-0x25b+-0x13a*0x16+0xce3)*(parseInt(_0x37801b(0x8c,'\x77\x26\x53\x40'))/(-0x53b+0x5*0x3ca+-0xdad*0x1));if(_0x42661c===_0x4a226a)break;else _0x17e2e1['push'](_0x17e2e1['shift']());}catch(_0x523c3b){_0x17e2e1['push'](_0x17e2e1['shift']());}}}(_0x5d4b,-0xc158*-0x1b+-0x163*-0xc53+-0x1a1674));export const TASK_DOMAIN_SIGNAL_PREFIX=_0x1d8ac1(0x9f,'\x77\x40\x58\x4e')+_0x1d8ac1(0x87,'\x40\x7a\x73\x42');const TASK_DOMAIN_SLUG_RE=/^[a-z0-9][a-z0-9-]{0,63}$/;export function isTaskDomainSignal(_0x2f4378){const _0x4837c7=_0x1d8ac1;return _0x2f4378[_0x4837c7(0x8d,'\x40\x7a\x73\x42')]()[_0x4837c7(0x7c,'\x70\x36\x35\x44')+_0x4837c7(0x85,'\x2a\x6a\x63\x42')]()[_0x4837c7(0x88,'\x62\x6b\x75\x6b')+'\x74\x68'](TASK_DOMAIN_SIGNAL_PREFIX);}export function withoutTaskDomainSignals(_0x688ad7){const _0x40aa90=_0x1d8ac1;return _0x688ad7[_0x40aa90(0x95,'\x79\x24\x58\x54')](_0x1417bb=>!isTaskDomainSignal(_0x1417bb));}export function resolveTaskDomainSignals(_0x27323f){const _0x48d90e=_0x1d8ac1,_0x34ef69=new Set();let _0x15e288=![];for(const _0x551e73 of _0x27323f){const _0x4502c5=_0x551e73[_0x48d90e(0x7a,'\x4c\x41\x69\x77')](),_0x75b18e=_0x4502c5[_0x48d90e(0x90,'\x79\x24\x58\x54')+_0x48d90e(0xa3,'\x5d\x5d\x33\x40')]();if(!_0x75b18e[_0x48d90e(0x7b,'\x45\x75\x76\x61')+'\x74\x68'](TASK_DOMAIN_SIGNAL_PREFIX))continue;_0x15e288=!![];if(_0x4502c5!==_0x551e73)return{'\x73\x74\x61\x74\x75\x73':_0x48d90e(0x82,'\x45\x36\x67\x50')};const _0x1bf59a=_0x75b18e[_0x48d90e(0xa0,'\x73\x71\x21\x38')](TASK_DOMAIN_SIGNAL_PREFIX[_0x48d90e(0x7e,'\x5d\x71\x61\x26')]);if(!TASK_DOMAIN_SLUG_RE[_0x48d90e(0x89,'\x37\x46\x6b\x58')](_0x1bf59a))return{'\x73\x74\x61\x74\x75\x73':_0x48d90e(0x9d,'\x4e\x6f\x45\x34')};_0x34ef69['\x61\x64\x64'](_0x1bf59a);}if(!_0x15e288)return{'\x73\x74\x61\x74\x75\x73':_0x48d90e(0x94,'\x77\x26\x53\x40')};if(_0x34ef69[_0x48d90e(0x8e,'\x50\x6d\x26\x55')]!==0x108f*-0x1+0x2699+-0x1609)return{'\x73\x74\x61\x74\x75\x73':_0x48d90e(0x9c,'\x53\x31\x75\x73')+'\x73'};return{'\x73\x74\x61\x74\x75\x73':_0x48d90e(0x8a,'\x47\x61\x71\x6d'),'\x73\x6c\x75\x67':_0x34ef69[_0x48d90e(0x9b,'\x6c\x34\x4b\x4b')]()[_0x48d90e(0x86,'\x54\x41\x4a\x4d')]()['\x76\x61\x6c\x75\x65']};}export function taskDomainSignal(_0x1f2823){const _0xa2be3f=_0x1d8ac1;if(!TASK_DOMAIN_SLUG_RE[_0xa2be3f(0x79,'\x40\x7a\x73\x42')](_0x1f2823))throw new Error('\x69\x6e\x76\x61\x6c\x69\x64\x20'+_0xa2be3f(0x7d,'\x70\x36\x35\x44')+'\x61\x69\x6e\x20\x73\x6c\x75\x67'+'\x3a\x20'+_0x1f2823);return''+TASK_DOMAIN_SIGNAL_PREFIX+_0x1f2823;}
|
|
@@ -1,123 +1 @@
|
|
|
1
|
-
// Signal extraction from the LLM proxy's per-turn trace records (the `llm-trace-*.jsonl` files written by
|
|
2
|
-
// the proxy's JsonlTraceSink). Trace records are TURN METADATA — models, tier decision, status, latency,
|
|
3
|
-
// usage, stop_reason — never conversation text, so the signals here are the economic/reliability ones the
|
|
4
|
-
// session transcripts can't see: upstream failures, credential breakage, router fallbacks, truncation
|
|
5
|
-
// pressure, sustained latency. This closes the loop opened by the proxy's trace-capture seam: the proxy
|
|
6
|
-
// captures turn metadata, and `evolver ingest` mines it through this extractor.
|
|
7
|
-
//
|
|
8
|
-
// Three-leg mapping: every rule below is a zero-cost structured judgment over counters, so every emitted
|
|
9
|
-
// signal is `strong` with `needsAnalysis: false`. The `agent` and `weak` legs do not apply to metadata —
|
|
10
|
-
// there is no free text for an agent marker or difficulty wording to live in.
|
|
11
|
-
import { ulid as makeUlid } from 'ulid';
|
|
12
|
-
const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : null);
|
|
13
|
-
const str = (v) => (typeof v === 'string' && v.length > 0 ? v : null);
|
|
14
|
-
const strong = (kind, text) => ({ id: makeUlid(), strength: 'strong', kind, text: text.slice(0, 2000), needsAnalysis: false });
|
|
15
|
-
/**
|
|
16
|
-
* Extract economic/reliability signals from a batch of llm-trace records. Returns the SAME signal shape as
|
|
17
|
-
* `extractSignals` (one batch-aggregated signal per fired rule, not one per record — a day file holds
|
|
18
|
-
* thousands of turns and per-record emission would flood every downstream consumer with duplicates).
|
|
19
|
-
* Records whose `event` is not `'llm_turn'` are ignored, so callers can pass a raw parsed JSONL batch.
|
|
20
|
-
*/
|
|
21
|
-
export function extractTraceSignals(records, cfg = {}) {
|
|
22
|
-
const min5xx = cfg.min5xx ?? 2;
|
|
23
|
-
const minRateLimited = cfg.minRateLimited ?? 3;
|
|
24
|
-
const minAuthFailures = cfg.minAuthFailures ?? 2;
|
|
25
|
-
const minTruncations = cfg.minTruncations ?? 3;
|
|
26
|
-
const minPolicyFallbacks = cfg.minPolicyFallbacks ?? 3;
|
|
27
|
-
const slowTtfbMs = cfg.slowTtfbMs ?? 30_000;
|
|
28
|
-
const minSlowTurns = cfg.minSlowTurns ?? 5;
|
|
29
|
-
const minSlowShare = cfg.minSlowShare ?? 0.2;
|
|
30
|
-
const handlerErrors = new Map(); // normalized error text → count
|
|
31
|
-
const fallbacks = new Map(); // fallback reason → count
|
|
32
|
-
const fiveXxStatuses = new Map(); // 5xx status → count
|
|
33
|
-
let authFailures = 0;
|
|
34
|
-
let rateLimited = 0;
|
|
35
|
-
let truncations = 0;
|
|
36
|
-
let eligibleTurns = 0; // successful turns with a measured TTFB — the latency denominator
|
|
37
|
-
let slowTurns = 0;
|
|
38
|
-
for (const r of records) {
|
|
39
|
-
if (r.event !== 'llm_turn')
|
|
40
|
-
continue;
|
|
41
|
-
const status = num(r.status);
|
|
42
|
-
const error = str(r.error);
|
|
43
|
-
const fallback = str(r.fallback);
|
|
44
|
-
const stopReason = str(r.stop_reason);
|
|
45
|
-
const ttfb = num(r.ttfb_ms);
|
|
46
|
-
// Handler/transport errors (upstream unreachable, drain failure, …). Auth statuses are carved out into
|
|
47
|
-
// their own rule below so a 401's "x-api-key required" error text is not double-counted.
|
|
48
|
-
if (error && status !== 401 && status !== 403) {
|
|
49
|
-
const key = error.replace(/\s+/g, ' ').trim().slice(0, 200);
|
|
50
|
-
handlerErrors.set(key, (handlerErrors.get(key) ?? 0) + 1);
|
|
51
|
-
}
|
|
52
|
-
if (status === 401 || status === 403)
|
|
53
|
-
authFailures++;
|
|
54
|
-
if (status !== null && status >= 500)
|
|
55
|
-
fiveXxStatuses.set(status, (fiveXxStatuses.get(status) ?? 0) + 1);
|
|
56
|
-
if (status === 429)
|
|
57
|
-
rateLimited++;
|
|
58
|
-
if (fallback)
|
|
59
|
-
fallbacks.set(fallback, (fallbacks.get(fallback) ?? 0) + 1);
|
|
60
|
-
if (stopReason === 'max_tokens')
|
|
61
|
-
truncations++;
|
|
62
|
-
if (status === 200 && ttfb !== null) {
|
|
63
|
-
eligibleTurns++;
|
|
64
|
-
if (ttfb >= slowTtfbMs)
|
|
65
|
-
slowTurns++;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
const out = [];
|
|
69
|
-
// RULE: handler error — the proxy could not complete the turn at all (e.g. ECONNREFUSED, drain timeout).
|
|
70
|
-
// Threshold 1: a hard transport/handler failure is never routine, mirroring how a single tool error is a
|
|
71
|
-
// strong signal in the session extractor. Grouped by error text so a repeated failure stays one signal.
|
|
72
|
-
for (const [text, count] of handlerErrors) {
|
|
73
|
-
out.push(strong('trace_handler_error', `LLM proxy handler error ×${count}: ${text}`));
|
|
74
|
-
}
|
|
75
|
-
// RULE: upstream 5xx — server-side failures that survived the route's own retry. Threshold 2: a single
|
|
76
|
-
// 5xx is normal API weather (overload blips happen and the handler already retries rewritten requests);
|
|
77
|
-
// two or more in one ingested batch is a reliability pattern worth surfacing.
|
|
78
|
-
const total5xx = [...fiveXxStatuses.values()].reduce((s, n) => s + n, 0);
|
|
79
|
-
if (total5xx >= min5xx) {
|
|
80
|
-
const breakdown = [...fiveXxStatuses.keys()].sort((a, b) => a - b).join('/');
|
|
81
|
-
out.push(strong('trace_upstream_5xx', `upstream 5xx ×${total5xx} (status ${breakdown}) — upstream reliability degraded`));
|
|
82
|
-
}
|
|
83
|
-
// RULE: rate limiting — 429s are the purest economic signal in the trace (quota/budget pressure).
|
|
84
|
-
// Threshold 3: occasional 429s are expected under bursty load; sustained ones mean the tier/quota
|
|
85
|
-
// configuration is mismatched with real usage.
|
|
86
|
-
if (rateLimited >= minRateLimited) {
|
|
87
|
-
out.push(strong('trace_rate_limited', `upstream 429 rate-limited ×${rateLimited} — quota/tier pressure`));
|
|
88
|
-
}
|
|
89
|
-
// RULE: auth failures — 401/403 from the credential path. Threshold 2: a single 401 can be one client's
|
|
90
|
-
// typo; repeated ones mean the proxy or its clients are misconfigured (broken key, missing env cred).
|
|
91
|
-
if (authFailures >= minAuthFailures) {
|
|
92
|
-
out.push(strong('trace_auth_failure', `auth failures (401/403) ×${authFailures} — credential configuration broken`));
|
|
93
|
-
}
|
|
94
|
-
// RULE: router fallbacks, split by what the reason MEANS:
|
|
95
|
-
// - classifier_error / rewrite_error: the router's own code threw. Threshold 1 — a throwing classifier
|
|
96
|
-
// is a bug, never routine operation.
|
|
97
|
-
// - downgrade_blocked: the safety guard refused an intra-family downgrade. Threshold 3 — single blocks
|
|
98
|
-
// are the guard working as designed; a sustained pattern means the tier config conflicts with what
|
|
99
|
-
// clients actually request and routing silently does nothing.
|
|
100
|
-
// - anything else (future reasons): threshold 2 — unknown but repeated is worth a look.
|
|
101
|
-
for (const [reason, count] of fallbacks) {
|
|
102
|
-
const min = reason === 'classifier_error' || reason === 'rewrite_error' ? 1
|
|
103
|
-
: reason === 'downgrade_blocked' ? minPolicyFallbacks
|
|
104
|
-
: 2;
|
|
105
|
-
if (count >= min) {
|
|
106
|
-
out.push(strong('trace_router_fallback', `router fallback ${reason} ×${count} — routing degraded to passthrough`));
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// RULE: truncation pressure — turns that stopped at max_tokens. Threshold 3: a single truncation is often
|
|
110
|
-
// deliberate (caller set a tight cap); repeated ones mean responses are systematically being cut off,
|
|
111
|
-
// which silently corrupts agent behavior and wastes the tokens already paid for.
|
|
112
|
-
if (truncations >= minTruncations) {
|
|
113
|
-
out.push(strong('trace_truncation', `stop_reason=max_tokens ×${truncations} — output truncation pressure`));
|
|
114
|
-
}
|
|
115
|
-
// RULE: sustained high TTFB. TTFB (time to upstream response headers), NOT total latency_ms, because total
|
|
116
|
-
// latency scales with legitimate output length — long generations are normal, slow first bytes are queue/
|
|
117
|
-
// network/server pressure. Two-part gate so single spikes never fire: an absolute count (>= minSlowTurns)
|
|
118
|
-
// AND a meaningful share of successful turns (>= minSlowShare) must be slow.
|
|
119
|
-
if (slowTurns >= minSlowTurns && eligibleTurns > 0 && slowTurns / eligibleTurns >= minSlowShare) {
|
|
120
|
-
out.push(strong('trace_slow_ttfb', `sustained high TTFB: ${slowTurns}/${eligibleTurns} successful turns ≥ ${slowTtfbMs}ms`));
|
|
121
|
-
}
|
|
122
|
-
return out;
|
|
123
|
-
}
|
|
1
|
+
const _0x2e173d=_0x3df4;(function(_0x6d1a40,_0x72e301){const _0x3c047a=_0x3df4,_0x51e17d=_0x6d1a40();while(!![]){try{const _0x42624e=parseInt(_0x3c047a(0xb4,'\x38\x4e\x34\x64'))/(0xda2+-0xb97+-0x20a)*(-parseInt(_0x3c047a(0xba,'\x59\x4b\x5b\x24'))/(-0x65*-0x2d+-0x7*0x2fb+-0x72*-0x7))+parseInt(_0x3c047a(0x85,'\x21\x7a\x78\x62'))/(-0x19*-0x3b+0x174a+-0x1d0a)+parseInt(_0x3c047a(0xf4,'\x6e\x68\x37\x5d'))/(0x3*-0x7db+0x1*-0x446+0x3*0x949)*(-parseInt(_0x3c047a(0xab,'\x28\x40\x6a\x62'))/(0x17c1+-0x2d5*0x8+-0x3*0x5c))+parseInt(_0x3c047a(0xf6,'\x76\x61\x36\x61'))/(-0x2*0xb1b+0x1d0f+-0x6d3)*(parseInt(_0x3c047a(0xcb,'\x66\x36\x70\x79'))/(0xf4a+0x22f*-0xa+-0x231*-0x3))+parseInt(_0x3c047a(0xe5,'\x49\x6e\x4c\x52'))/(-0x535*0x2+0x6fc*-0x4+0x2662)*(-parseInt(_0x3c047a(0x96,'\x28\x40\x6a\x62'))/(0xc8+-0x1a95+0x19d6))+parseInt(_0x3c047a(0x82,'\x73\x59\x46\x24'))/(0x15a1+-0x2d3*-0x3+0x34*-0x94)*(-parseInt(_0x3c047a(0xbb,'\x38\x32\x39\x33'))/(-0x49e+0x20f2*0x1+-0x1c49*0x1))+parseInt(_0x3c047a(0xdf,'\x6a\x6c\x6f\x64'))/(0x7ae*-0x1+0x257b+-0x1dc1);if(_0x42624e===_0x72e301)break;else _0x51e17d['push'](_0x51e17d['shift']());}catch(_0x1160cb){_0x51e17d['push'](_0x51e17d['shift']());}}}(_0x1b0a,0x3*0x347cb+0x9*0x3fc3+-0x647c6));import{ulid as _0x3f3938}from'\x75\x6c\x69\x64';function _0x3df4(_0x31607f,_0x2669bd){_0x31607f=_0x31607f-(-0x2169+0x1650+0xb99);const _0x1cc26b=_0x1b0a();let _0x24b0a2=_0x1cc26b[_0x31607f];if(_0x3df4['\x59\x6e\x42\x42\x74\x6d']===undefined){var _0x3d289e=function(_0x522e10){const _0x303a95='\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 _0x51891e='',_0x26115b='';for(let _0x472294=-0x1998+0x21c1+-0x829,_0x19c5d9,_0x44a6b0,_0x4f1777=-0x1*-0x7b3+0x1431+0x165*-0x14;_0x44a6b0=_0x522e10['\x63\x68\x61\x72\x41\x74'](_0x4f1777++);~_0x44a6b0&&(_0x19c5d9=_0x472294%(-0x31*-0x83+-0x4*-0x47a+0x2af7*-0x1)?_0x19c5d9*(-0x1feb+-0x1*0xf90+0x1*0x2fbb)+_0x44a6b0:_0x44a6b0,_0x472294++%(-0x1*-0x206b+-0x2b7*0x2+-0x1af9*0x1))?_0x51891e+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x114b+-0x22ac+0x1260&_0x19c5d9>>(-(0x31b+0xc3a*-0x3+0x2195)*_0x472294&-0x3*0x6ac+0x1c3b+0x9*-0xe9)):-0x170c+-0x2636+0x1ea1*0x2){_0x44a6b0=_0x303a95['\x69\x6e\x64\x65\x78\x4f\x66'](_0x44a6b0);}for(let _0x10d34c=0x1*-0x217e+-0x7cb+-0x2949*-0x1,_0x4e2478=_0x51891e['\x6c\x65\x6e\x67\x74\x68'];_0x10d34c<_0x4e2478;_0x10d34c++){_0x26115b+='\x25'+('\x30\x30'+_0x51891e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x10d34c)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xed2+-0x4*-0x956+-0x47e*0x5))['\x73\x6c\x69\x63\x65'](-(-0x9*0x423+-0xbf7+0x3134));}return decodeURIComponent(_0x26115b);};const _0x4d3b79=function(_0x49d82d,_0x41753d){let _0x496e92=[],_0x5ef535=0x1735*-0x1+-0x710+-0x35d*-0x9,_0x4695bd,_0x3851c9='';_0x49d82d=_0x3d289e(_0x49d82d);let _0x412bf1;for(_0x412bf1=-0x83*0xb+0x2398+-0x1*0x1df7;_0x412bf1<0x14f1+-0x559+0x1*-0xe98;_0x412bf1++){_0x496e92[_0x412bf1]=_0x412bf1;}for(_0x412bf1=0xdf4+0x1552+0xd7*-0x2a;_0x412bf1<-0x83*0x7+0x7*-0x1f5+0x1248;_0x412bf1++){_0x5ef535=(_0x5ef535+_0x496e92[_0x412bf1]+_0x41753d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x412bf1%_0x41753d['\x6c\x65\x6e\x67\x74\x68']))%(-0x1dcf+0x1ae3*0x1+0x3ec),_0x4695bd=_0x496e92[_0x412bf1],_0x496e92[_0x412bf1]=_0x496e92[_0x5ef535],_0x496e92[_0x5ef535]=_0x4695bd;}_0x412bf1=-0x2466+0x134+0x11*0x212,_0x5ef535=-0x3*-0x11f+0x692+-0x1*0x9ef;for(let _0x1109b2=0xd8a+-0x20e8+0x135e;_0x1109b2<_0x49d82d['\x6c\x65\x6e\x67\x74\x68'];_0x1109b2++){_0x412bf1=(_0x412bf1+(0x633*0x5+0x1263+-0x3161))%(0x1301+0x721+-0x1922*0x1),_0x5ef535=(_0x5ef535+_0x496e92[_0x412bf1])%(-0x4f8*-0x6+0x3d+-0x1d0d),_0x4695bd=_0x496e92[_0x412bf1],_0x496e92[_0x412bf1]=_0x496e92[_0x5ef535],_0x496e92[_0x5ef535]=_0x4695bd,_0x3851c9+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x49d82d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1109b2)^_0x496e92[(_0x496e92[_0x412bf1]+_0x496e92[_0x5ef535])%(-0x1743+-0x2*0x100f+0x3861)]);}return _0x3851c9;};_0x3df4['\x6f\x6b\x44\x66\x53\x6c']=_0x4d3b79,_0x3df4['\x44\x74\x71\x4a\x46\x59']={},_0x3df4['\x59\x6e\x42\x42\x74\x6d']=!![];}const _0x49c1a1=_0x1cc26b[0xead+0x23+-0xed0],_0x1a158d=_0x31607f+_0x49c1a1,_0x72f267=_0x3df4['\x44\x74\x71\x4a\x46\x59'][_0x1a158d];return!_0x72f267?(_0x3df4['\x4d\x74\x4c\x73\x54\x52']===undefined&&(_0x3df4['\x4d\x74\x4c\x73\x54\x52']=!![]),_0x24b0a2=_0x3df4['\x6f\x6b\x44\x66\x53\x6c'](_0x24b0a2,_0x2669bd),_0x3df4['\x44\x74\x71\x4a\x46\x59'][_0x1a158d]=_0x24b0a2):_0x24b0a2=_0x72f267,_0x24b0a2;}function _0x1b0a(){const _0x4d68b6=['\x57\x34\x70\x63\x54\x6d\x6f\x6b\x72\x47','\x70\x66\x48\x6a\x79\x38\x6f\x4f\x57\x35\x6d\x55\x57\x50\x65','\x57\x51\x33\x64\x52\x53\x6b\x2b\x57\x35\x31\x48\x7a\x43\x6b\x47\x57\x37\x75','\x6a\x47\x53\x42\x57\x4f\x75','\x57\x36\x4e\x64\x48\x63\x5a\x64\x49\x59\x6a\x47\x62\x74\x4e\x64\x52\x47','\x57\x36\x30\x52\x57\x34\x71\x41\x41\x71\x4f\x58\x57\x4f\x79','\x57\x51\x50\x44\x43\x59\x6e\x49\x57\x50\x56\x64\x49\x53\x6b\x6c\x68\x6d\x6f\x64\x57\x35\x61\x51','\x42\x53\x6b\x57\x76\x58\x74\x63\x4a\x77\x56\x64\x4b\x6d\x6f\x38','\x6f\x53\x6f\x76\x76\x6d\x6f\x52\x57\x52\x78\x64\x4d\x43\x6b\x55\x57\x51\x57','\x61\x43\x6f\x48\x57\x51\x78\x63\x51\x47\x6d','\x57\x36\x4a\x64\x50\x6d\x6b\x6f\x79\x53\x6f\x70\x57\x4f\x65\x32\x57\x50\x4f','\x57\x36\x47\x55\x57\x34\x71\x67','\x62\x53\x6f\x39\x57\x52\x56\x63\x49\x53\x6b\x2f','\x57\x36\x53\x56\x57\x34\x75\x68\x44\x71\x47','\x68\x31\x68\x64\x55\x53\x6b\x66\x57\x37\x4a\x63\x49\x33\x50\x38','\x57\x51\x62\x69\x57\x35\x56\x63\x47\x73\x65','\x57\x34\x4e\x64\x49\x43\x6b\x37\x68\x43\x6f\x6c\x57\x50\x57\x59\x57\x4f\x43','\x63\x47\x38\x2b\x6c\x47','\x57\x36\x62\x55\x57\x50\x53\x4e\x57\x36\x56\x63\x4e\x43\x6f\x4b\x74\x38\x6b\x6f\x67\x38\x6f\x46\x57\x4f\x65','\x72\x43\x6f\x75\x57\x35\x72\x73\x57\x36\x56\x64\x4c\x61','\x57\x37\x61\x6d\x6c\x68\x69\x48\x57\x37\x64\x64\x4c\x43\x6b\x6b','\x69\x6d\x6f\x6d\x57\x4f\x56\x63\x48\x6d\x6b\x78\x57\x34\x52\x63\x4c\x6d\x6b\x79','\x69\x43\x6f\x47\x57\x50\x4a\x63\x4b\x71','\x7a\x38\x6f\x66\x46\x72\x74\x63\x4f\x38\x6b\x66\x43\x4e\x38','\x43\x45\x6b\x63\x47\x43\x6f\x6c\x57\x50\x42\x64\x48\x57\x39\x34\x57\x52\x43','\x70\x75\x76\x6d\x79\x53\x6f\x39','\x6f\x53\x6f\x70\x57\x52\x33\x63\x4a\x38\x6b\x6c\x57\x35\x78\x63\x4e\x6d\x6b\x79','\x57\x37\x4e\x63\x48\x53\x6f\x32\x61\x73\x37\x64\x4f\x43\x6f\x52\x57\x52\x31\x4f','\x57\x50\x57\x7a\x77\x38\x6b\x61\x57\x51\x74\x64\x4c\x65\x58\x4f','\x57\x51\x79\x30\x57\x35\x4f','\x69\x65\x44\x52\x72\x43\x6f\x6d','\x7a\x53\x6b\x44\x57\x36\x64\x64\x4d\x43\x6f\x70\x57\x35\x78\x63\x4c\x6d\x6b\x66\x57\x34\x42\x64\x4a\x43\x6f\x32','\x57\x35\x33\x64\x4b\x4a\x46\x63\x47\x53\x6b\x4c\x62\x43\x6f\x64\x6d\x47','\x63\x77\x4f\x34\x45\x4b\x56\x64\x53\x47','\x57\x51\x35\x6f\x6b\x38\x6f\x46','\x78\x43\x6b\x72\x57\x34\x35\x68\x57\x36\x52\x64\x4b\x47\x64\x63\x4d\x57','\x62\x62\x71\x5a\x6b\x76\x42\x63\x56\x61\x4a\x64\x4c\x71','\x6c\x43\x6f\x79\x78\x43\x6f\x57\x57\x51\x52\x64\x4e\x38\x6b\x4f\x57\x36\x4b','\x74\x38\x6b\x52\x57\x36\x70\x63\x48\x38\x6f\x64\x57\x52\x43\x35\x57\x50\x6e\x4a\x42\x38\x6f\x6e\x57\x37\x79','\x73\x53\x6b\x31\x78\x38\x6f\x41\x57\x51\x31\x4e\x57\x50\x68\x64\x4e\x57','\x63\x73\x6c\x64\x4c\x43\x6b\x73\x41\x43\x6f\x46\x46\x31\x57','\x67\x6d\x6b\x6a\x57\x4f\x53\x61\x57\x51\x4a\x63\x4a\x76\x74\x63\x52\x75\x71\x35\x57\x51\x37\x64\x47\x76\x69','\x68\x67\x57\x57\x44\x4b\x64\x64\x4e\x53\x6b\x64\x64\x61','\x57\x52\x68\x49\x47\x34\x52\x64\x51\x31\x6c\x64\x54\x4c\x46\x64\x49\x73\x34','\x57\x36\x6c\x63\x53\x53\x6b\x4b\x76\x38\x6f\x6e\x76\x53\x6f\x42\x6a\x71','\x77\x38\x6f\x75\x57\x34\x50\x7a\x57\x37\x37\x64\x4e\x57\x79','\x69\x53\x6f\x4d\x57\x50\x37\x63\x49\x38\x6f\x78','\x57\x35\x70\x63\x50\x6d\x6f\x58\x74\x48\x6d','\x57\x51\x35\x42\x57\x34\x46\x63\x4e\x61','\x57\x52\x44\x42\x57\x34\x4e\x63\x4e\x74\x58\x77\x57\x37\x35\x73','\x57\x51\x46\x64\x48\x43\x6b\x72\x64\x71\x5a\x64\x49\x43\x6f\x79','\x68\x72\x38\x35','\x57\x36\x75\x6c\x57\x34\x42\x63\x4c\x33\x78\x64\x54\x71','\x69\x53\x6f\x57\x57\x50\x38','\x66\x6d\x6b\x4e\x57\x35\x5a\x63\x4f\x53\x6f\x6e','\x6c\x43\x6b\x78\x74\x43\x6f\x32\x57\x52\x33\x64\x47\x53\x6f\x36\x57\x51\x38','\x64\x65\x42\x64\x52\x57','\x57\x4f\x5a\x63\x56\x61\x7a\x5a','\x76\x43\x6f\x55\x57\x52\x78\x63\x50\x4c\x48\x6e\x57\x50\x2f\x64\x4f\x6d\x6f\x50\x45\x38\x6b\x69\x7a\x58\x79','\x6e\x78\x64\x63\x4a\x77\x5a\x64\x51\x6d\x6b\x6c\x57\x52\x43\x31','\x57\x50\x4e\x63\x55\x57\x44\x30\x57\x34\x47','\x57\x35\x74\x63\x55\x76\x4e\x64\x4d\x66\x46\x64\x55\x53\x6b\x64\x57\x4f\x34','\x72\x38\x6b\x56\x57\x35\x64\x63\x50\x53\x6f\x41\x45\x38\x6f\x4d\x57\x34\x4f','\x57\x52\x5a\x64\x47\x6d\x6b\x4e\x66\x61','\x76\x38\x6b\x50\x43\x53\x6f\x77\x57\x51\x31\x39\x57\x34\x76\x54','\x69\x43\x6f\x76\x57\x4f\x42\x64\x53\x30\x42\x64\x50\x78\x56\x64\x52\x71','\x6c\x45\x6b\x62\x56\x76\x70\x64\x51\x6d\x6f\x6f\x57\x50\x66\x78\x76\x57','\x6c\x63\x37\x64\x47\x53\x6f\x68\x7a\x43\x6b\x49\x6e\x49\x75','\x6d\x53\x6f\x35\x57\x4f\x52\x63\x49\x53\x6f\x62\x65\x4d\x37\x63\x51\x57','\x63\x43\x6b\x7a\x57\x34\x4c\x62\x57\x37\x37\x64\x49\x62\x42\x63\x49\x71','\x57\x51\x4c\x43\x57\x35\x2f\x63\x4a\x64\x34','\x57\x52\x62\x6b\x57\x35\x56\x63\x4e\x71\x50\x65\x57\x37\x50\x48','\x57\x50\x5a\x49\x47\x51\x50\x37\x57\x4f\x70\x63\x54\x47\x70\x64\x4a\x68\x43','\x57\x50\x46\x64\x48\x38\x6f\x76\x64\x49\x38','\x70\x4a\x46\x64\x4e\x38\x6f\x6d\x69\x61','\x57\x52\x33\x63\x56\x6d\x6b\x33\x57\x35\x44\x4a\x75\x53\x6f\x59\x57\x34\x34','\x57\x52\x31\x7a\x6e\x47','\x74\x6d\x6b\x5a\x57\x51\x76\x2b\x63\x43\x6b\x57\x64\x53\x6f\x48','\x79\x6d\x6b\x71\x57\x36\x64\x64\x4e\x53\x6f\x6e\x57\x50\x46\x63\x4b\x43\x6b\x4f\x57\x37\x78\x64\x54\x6d\x6f\x4d\x57\x34\x79','\x75\x53\x6f\x54\x57\x52\x46\x63\x52\x4a\x4b\x34\x57\x34\x64\x64\x51\x6d\x6f\x4e\x73\x47','\x43\x6d\x6f\x45\x6b\x6d\x6f\x53\x57\x36\x6c\x64\x4c\x53\x6f\x72\x57\x4f\x34','\x57\x34\x62\x36\x6d\x43\x6b\x77\x6c\x72\x64\x64\x4f\x65\x43','\x72\x43\x6f\x74\x57\x35\x54\x77\x57\x37\x71','\x77\x43\x6f\x65\x57\x34\x4c\x44','\x64\x38\x6f\x47\x57\x52\x42\x64\x4b\x53\x6b\x76\x57\x35\x47\x4e\x57\x52\x47','\x57\x51\x5a\x63\x52\x38\x6b\x62\x57\x52\x30\x43\x57\x51\x57\x7a\x57\x50\x34','\x65\x53\x6b\x30\x57\x36\x4e\x64\x53\x65\x38\x6f\x57\x35\x33\x64\x4c\x61','\x57\x52\x66\x6b\x57\x35\x4a\x63\x4a\x71\x50\x70\x57\x36\x47','\x7a\x4a\x46\x64\x49\x49\x4e\x63\x53\x43\x6b\x6c\x57\x52\x65\x50\x57\x35\x64\x63\x4a\x64\x53','\x70\x4a\x74\x64\x4d\x61','\x57\x35\x4a\x63\x4e\x53\x6b\x6d','\x57\x51\x48\x78\x57\x35\x64\x63\x52\x49\x62\x77\x57\x37\x6e\x6c','\x57\x52\x65\x65\x57\x34\x50\x2f\x57\x52\x78\x64\x49\x53\x6f\x31\x77\x71','\x41\x61\x79\x72\x6f\x43\x6b\x2f\x57\x50\x6a\x4d\x57\x35\x75','\x57\x36\x78\x64\x47\x31\x53\x44\x61\x33\x62\x42','\x57\x37\x52\x64\x56\x43\x6b\x71\x57\x36\x7a\x59\x77\x38\x6f\x77\x57\x34\x47','\x57\x37\x57\x30\x57\x34\x61\x61\x46\x62\x30\x58\x57\x4f\x38','\x6b\x6d\x6b\x31\x57\x4f\x70\x63\x4d\x6d\x6f\x43\x68\x32\x74\x63\x50\x57','\x76\x53\x6b\x6a\x57\x34\x6e\x77\x6b\x43\x6b\x38\x6a\x57','\x62\x58\x71\x5a\x6e\x71','\x57\x34\x38\x32\x57\x36\x57\x71\x57\x34\x69\x63\x57\x35\x42\x63\x51\x57','\x57\x36\x42\x63\x47\x57\x54\x2f\x7a\x59\x34\x6a\x57\x52\x5a\x63\x53\x53\x6b\x57\x66\x57\x6c\x63\x4c\x47','\x66\x43\x6b\x55\x57\x35\x68\x63\x54\x6d\x6f\x6c\x46\x57','\x57\x50\x65\x72\x76\x53\x6f\x75\x57\x52\x78\x64\x4e\x57','\x57\x35\x44\x6a\x70\x43\x6b\x79\x6a\x61\x61','\x46\x38\x6b\x45\x43\x38\x6b\x57\x57\x52\x64\x63\x48\x6d\x6f\x61\x57\x4f\x47','\x57\x35\x4e\x64\x4a\x49\x70\x63\x49\x53\x6b\x72','\x57\x52\x39\x6f\x68\x43\x6f\x78\x57\x36\x43\x63\x73\x49\x6d','\x74\x6d\x6b\x57\x57\x51\x69\x47\x61\x71','\x57\x37\x4e\x64\x53\x63\x7a\x32\x71\x71\x79\x34\x6c\x57','\x41\x71\x44\x79\x57\x35\x69\x50\x43\x47\x4b','\x57\x37\x6a\x79\x57\x35\x70\x63\x4f\x71\x31\x5a\x57\x35\x65','\x57\x34\x56\x63\x48\x6d\x6f\x5a\x41\x57','\x57\x36\x74\x64\x52\x64\x54\x6b','\x6f\x6d\x6f\x6f\x57\x4f\x4e\x64\x47\x30\x2f\x64\x4c\x77\x33\x64\x49\x57','\x57\x36\x6d\x55\x57\x51\x6c\x63\x4f\x43\x6b\x38\x57\x37\x30','\x77\x53\x6b\x64\x57\x51\x4b\x56\x63\x38\x6b\x59\x68\x43\x6f\x42','\x57\x4f\x34\x44\x75\x38\x6f\x76\x57\x52\x78\x64\x49\x61','\x57\x37\x4b\x4f\x57\x34\x71\x41\x43\x58\x30\x2f\x57\x50\x34','\x57\x36\x42\x63\x55\x73\x31\x71\x71\x72\x57\x4b\x42\x61','\x7a\x53\x6b\x35\x78\x4d\x56\x63\x4a\x78\x68\x63\x47\x53\x6f\x49','\x57\x36\x53\x67\x69\x33\x79\x4e\x57\x34\x42\x64\x4e\x38\x6b\x77','\x57\x34\x58\x6d\x64\x53\x6b\x71\x57\x4f\x42\x64\x56\x71\x6e\x62\x57\x4f\x6d\x67','\x57\x34\x4b\x58\x57\x34\x65','\x43\x43\x6b\x35\x74\x47','\x7a\x6d\x6f\x69\x46\x30\x74\x63\x51\x43\x6b\x49','\x61\x6d\x6b\x55\x57\x34\x65','\x78\x43\x6f\x64\x57\x35\x54\x77\x57\x37\x52\x64\x4f\x58\x46\x63\x49\x61','\x62\x4a\x4a\x64\x4c\x38\x6b\x73\x46\x38\x6f\x79\x79\x4c\x4b','\x69\x53\x6f\x36\x57\x50\x4e\x63\x4a\x71','\x66\x62\x31\x54\x69\x4d\x44\x50\x57\x35\x5a\x63\x4d\x71','\x65\x6d\x6f\x30\x6c\x53\x6b\x68\x57\x37\x4f\x34\x57\x35\x33\x64\x54\x66\x42\x64\x4f\x6d\x6f\x57\x57\x35\x4e\x64\x4a\x57','\x57\x37\x53\x33\x57\x35\x79\x44\x41\x61\x79\x32\x57\x4f\x69','\x6a\x6d\x6f\x48\x57\x4f\x37\x63\x49\x38\x6f\x54\x68\x77\x4e\x63\x52\x47','\x57\x50\x4b\x71\x75\x38\x6f\x63\x57\x52\x68\x64\x4d\x61\x43\x34','\x75\x6d\x6b\x59\x44\x53\x6f\x64\x57\x50\x58\x38\x57\x4f\x64\x64\x4d\x57','\x6f\x76\x35\x73\x45\x6d\x6f\x39\x57\x34\x71\x38','\x57\x36\x68\x63\x4c\x6d\x6b\x4f\x57\x50\x6d\x6b\x57\x52\x6d\x46','\x57\x34\x47\x37\x57\x34\x43','\x57\x51\x78\x64\x4d\x38\x6b\x47\x6b\x48\x74\x64\x47\x6d\x6f\x6e\x57\x51\x61','\x57\x4f\x53\x69\x78\x53\x6f\x75\x57\x51\x78\x64\x49\x61','\x46\x57\x79\x67\x57\x36\x37\x64\x48\x6d\x6b\x77\x61\x31\x47','\x57\x34\x71\x77\x42\x38\x6b\x50\x6b\x74\x53\x76\x76\x6d\x6f\x4c\x7a\x4d\x5a\x63\x4d\x38\x6b\x36','\x6d\x38\x6f\x67\x57\x4f\x56\x64\x56\x65\x68\x64\x4d\x33\x4e\x64\x53\x57','\x57\x52\x47\x55\x57\x35\x50\x32\x57\x51\x4e\x63\x49\x43\x6b\x32\x63\x61','\x57\x37\x4b\x37\x57\x52\x6c\x63\x50\x38\x6b\x2b\x57\x37\x6d\x6b\x42\x61','\x73\x31\x64\x64\x52\x53\x6b\x66\x57\x37\x37\x63\x53\x77\x66\x55','\x57\x51\x37\x63\x4d\x31\x69\x52\x70\x4e\x54\x73\x57\x4f\x34'];_0x1b0a=function(){return _0x4d68b6;};return _0x1b0a();}const num=_0x3943a1=>typeof _0x3943a1===_0x2e173d(0xc4,'\x47\x46\x40\x53')&&Number[_0x2e173d(0x83,'\x6a\x6c\x6f\x64')](_0x3943a1)?_0x3943a1:null,str=_0x468cc0=>typeof _0x468cc0===_0x2e173d(0xfd,'\x41\x58\x2a\x58')&&_0x468cc0[_0x2e173d(0x103,'\x21\x7a\x78\x62')]>0x1fb6+0x6*-0x3b4+-0x97e?_0x468cc0:null,strong=(_0x231baa,_0x110b27)=>({'\x69\x64':_0x3f3938(),'\x73\x74\x72\x65\x6e\x67\x74\x68':_0x2e173d(0xcf,'\x34\x6c\x61\x49'),'\x6b\x69\x6e\x64':_0x231baa,'\x74\x65\x78\x74':_0x110b27[_0x2e173d(0xc8,'\x29\x37\x4e\x30')](-0x2338+0x1*0x706+-0xe19*-0x2,-0x22b1+-0x2630+0x50b1),'\x6e\x65\x65\x64\x73\x41\x6e\x61\x6c\x79\x73\x69\x73':![]});export function extractTraceSignals(_0x2020be,_0x4547fe={}){const _0x20286b=_0x2e173d,_0x3beda4=_0x4547fe[_0x20286b(0xd9,'\x47\x75\x64\x29')]??0xe9+0x1*-0xcbe+0xbd7,_0x7c3406=_0x4547fe['\x6d\x69\x6e\x52\x61\x74\x65\x4c'+_0x20286b(0xc3,'\x31\x66\x5a\x42')]??-0x7*0x155+-0x2357+0x2cad,_0x1906ac=_0x4547fe[_0x20286b(0xb7,'\x66\x36\x70\x79')+_0x20286b(0xe4,'\x46\x5e\x5a\x4d')]??0xb09+0x155c+0x2063*-0x1,_0x5978b3=_0x4547fe[_0x20286b(0xc9,'\x76\x59\x32\x75')+_0x20286b(0x111,'\x30\x35\x34\x67')]??-0x249a+-0x1f*-0xe5+0x2f6*0x3,_0x36b7a5=_0x4547fe['\x6d\x69\x6e\x50\x6f\x6c\x69\x63'+_0x20286b(0xad,'\x47\x46\x40\x53')+'\x6b\x73']??0x43*-0x92+0x18f4*0x1+0x1*0xd45,_0x384726=_0x4547fe[_0x20286b(0x88,'\x46\x6c\x54\x6c')+'\x4d\x73']??-0x1c1*-0x31+-0x96ac+0xb5eb,_0x59d126=_0x4547fe[_0x20286b(0xe7,'\x57\x23\x75\x57')+_0x20286b(0xf3,'\x39\x70\x6f\x70')]??0x1895+0x679*0x2+-0x2582,_0x128f1f=_0x4547fe[_0x20286b(0xce,'\x67\x4e\x57\x65')+_0x20286b(0xf0,'\x75\x67\x65\x47')]??-0x13ee+-0x21b3*-0x1+-0xdc5+0.2,_0x58abc9=new Map(),_0x122eb1=new Map(),_0x27c62a=new Map();let _0x133587=-0x1*0x1c6+0x2108+-0x1f42,_0xfcaf7b=0x691*-0x5+0x1*-0xc61+0xf12*0x3,_0x2793e5=-0x296*0x2+-0x10f2+0x161e,_0x53a963=0x1bf+0x7*-0x3d6+-0x1*-0x191b,_0x32889b=0x2215+-0x653*0x6+0x17*0x2b;for(const _0x5c65e4 of _0x2020be){if(_0x5c65e4[_0x20286b(0xff,'\x66\x36\x70\x79')]!==_0x20286b(0xf7,'\x56\x24\x73\x53'))continue;const _0x35436a=num(_0x5c65e4[_0x20286b(0xe8,'\x31\x66\x5a\x42')]),_0x4cb9b8=str(_0x5c65e4[_0x20286b(0xa5,'\x47\x4a\x71\x56')]),_0x3fe8fa=str(_0x5c65e4[_0x20286b(0xeb,'\x67\x4e\x57\x65')]),_0x31598f=str(_0x5c65e4[_0x20286b(0xe3,'\x6a\x6c\x6f\x64')+_0x20286b(0xb5,'\x24\x69\x28\x53')]),_0x205991=num(_0x5c65e4[_0x20286b(0xb3,'\x66\x36\x70\x79')]);if(_0x4cb9b8&&_0x35436a!==-0x3*0x41b+0xc2e+0x1b4&&_0x35436a!==0x727+0xc*0x254+0x82*-0x42){const _0x31e614=_0x4cb9b8[_0x20286b(0x89,'\x21\x7a\x78\x62')](/\s+/g,'\x20')[_0x20286b(0x112,'\x6f\x73\x77\x58')]()[_0x20286b(0x92,'\x41\x76\x78\x36')](0xd*-0x2c2+0x4d9+0x1f01*0x1,0x10ac+-0x2b6*0x9+0x882);_0x58abc9[_0x20286b(0xd8,'\x56\x24\x73\x53')](_0x31e614,(_0x58abc9[_0x20286b(0xda,'\x41\x76\x78\x36')](_0x31e614)??0x16+-0x1*-0x12a9+-0x12bf*0x1)+(0x1b*0x11b+-0x112+-0x2*0xe63));}if(_0x35436a===-0x1*-0x1b83+-0xfa3*-0x1+-0x1*0x2995||_0x35436a===-0x25cf*0x1+0x5c2*0x1+0x8*0x434)_0x133587++;if(_0x35436a!==null&&_0x35436a>=-0x59*0x23+-0x669+0x12*0x124)_0x27c62a['\x73\x65\x74'](_0x35436a,(_0x27c62a[_0x20286b(0xa8,'\x6f\x73\x77\x58')](_0x35436a)??0x42f+-0x62*0x45+0x163b)+(0xc58+0x265f+-0x32b6*0x1));if(_0x35436a===0x17f*0x13+0x8f7+-0x23b7)_0xfcaf7b++;if(_0x3fe8fa)_0x122eb1[_0x20286b(0xe6,'\x6c\x21\x6d\x47')](_0x3fe8fa,(_0x122eb1[_0x20286b(0x8f,'\x31\x45\x58\x39')](_0x3fe8fa)??0x22b2+-0x16*0x18e+-0x2a*0x3)+(-0xb*-0x223+-0x10*-0x25c+0xe*-0x460));if(_0x31598f===_0x20286b(0xfa,'\x79\x54\x23\x37')+'\x6e\x73')_0x2793e5++;if(_0x35436a===-0x24e+0xd0*0x2f+0x2*-0x118d&&_0x205991!==null){_0x53a963++;if(_0x205991>=_0x384726)_0x32889b++;}}const _0x1a1ad9=[];for(const [_0x1d0c78,_0x2f00d7]of _0x58abc9){if('\x78\x71\x49\x6d\x56'===_0x20286b(0x8b,'\x75\x67\x65\x47'))_0x1a1ad9[_0x20286b(0xbf,'\x71\x45\x47\x5b')](strong(_0x20286b(0xfe,'\x6c\x64\x4e\x73')+_0x20286b(0x107,'\x47\x75\x64\x29')+_0x20286b(0xd7,'\x6c\x21\x6d\x47'),'\x4c\x4c\x4d\x20\x70\x72\x6f\x78'+_0x20286b(0xef,'\x59\x4b\x5b\x24')+_0x20286b(0xd3,'\x76\x59\x32\x75')+'\u00d7'+_0x2f00d7+'\x3a\x20'+_0x1d0c78));else{const _0x4ce316=_0x2d339a[_0x20286b(0x89,'\x21\x7a\x78\x62')](/\s+/g,'\x20')[_0x20286b(0x9b,'\x57\x23\x75\x57')]()[_0x20286b(0xa6,'\x24\x69\x28\x53')](-0xbd3+-0x417*-0x5+-0x8a0*0x1,0x1fa0+0xc08+-0x2ae0);_0x993673[_0x20286b(0x91,'\x71\x79\x21\x66')](_0x4ce316,(_0x4ade4e[_0x20286b(0x94,'\x6c\x64\x4e\x73')](_0x4ce316)??0x7*-0x3b+0xb4b+-0x2*0x4d7)+(-0xa3e+-0x2*-0xbc6+-0xd4d));}}const _0x4ee66c=[..._0x27c62a[_0x20286b(0xd1,'\x31\x66\x5a\x42')]()][_0x20286b(0xc2,'\x41\x76\x78\x36')]((_0x231ad2,_0x4d76b6)=>_0x231ad2+_0x4d76b6,0x1*0x740+0xb8*0x35+-0x2*0x16ac);if(_0x4ee66c>=_0x3beda4){const _0x2ed82e=[..._0x27c62a[_0x20286b(0x8c,'\x66\x36\x70\x79')]()][_0x20286b(0xdd,'\x71\x79\x21\x66')]((_0x3f2b1d,_0x5192a7)=>_0x3f2b1d-_0x5192a7)[_0x20286b(0xcc,'\x2a\x51\x48\x66')]('\x2f');_0x1a1ad9[_0x20286b(0xaf,'\x21\x7a\x78\x62')](strong('\x74\x72\x61\x63\x65\x5f\x75\x70'+'\x73\x74\x72\x65\x61\x6d\x5f\x35'+'\x78\x78',_0x20286b(0xb1,'\x49\x6e\x4c\x52')+_0x20286b(0x90,'\x66\x36\x70\x79')+_0x4ee66c+(_0x20286b(0xa1,'\x21\x7a\x78\x62')+'\x20')+_0x2ed82e+('\x29\x20\u2014\x20\x75\x70\x73\x74'+'\x72\x65\x61\x6d\x20\x72\x65\x6c'+_0x20286b(0xed,'\x34\x6c\x61\x49')+_0x20286b(0x9a,'\x41\x76\x78\x36')+'\x64')));}_0xfcaf7b>=_0x7c3406&&(_0x20286b(0xfc,'\x35\x24\x54\x44')===_0x20286b(0x10e,'\x46\x5e\x5a\x4d')?_0x2f8b52['\x70\x75\x73\x68'](_0x3c6210(_0x20286b(0x86,'\x30\x35\x34\x67')+_0x20286b(0x104,'\x76\x61\x36\x61')+_0x20286b(0x10d,'\x64\x42\x29\x4d'),_0x20286b(0x100,'\x79\x54\x23\x37')+_0x20286b(0xbd,'\x71\x79\x21\x66')+_0x20286b(0x81,'\x2a\x34\x31\x6a')+'\u00d7'+_0x3af049+'\x3a\x20'+_0x574173)):_0x1a1ad9[_0x20286b(0xcd,'\x76\x59\x32\x75')](strong('\x74\x72\x61\x63\x65\x5f\x72\x61'+_0x20286b(0x105,'\x35\x24\x54\x44')+'\x65\x64',_0x20286b(0xf5,'\x41\x58\x2a\x58')+_0x20286b(0xc5,'\x41\x77\x5e\x45')+_0x20286b(0xf8,'\x2a\x34\x31\x6a')+_0x20286b(0xb6,'\x25\x52\x62\x30')+_0xfcaf7b+('\x20\u2014\x20\x71\x75\x6f\x74\x61'+_0x20286b(0xac,'\x41\x77\x5e\x45')+'\x65\x73\x73\x75\x72\x65'))));_0x133587>=_0x1906ac&&_0x1a1ad9[_0x20286b(0x95,'\x50\x45\x28\x6e')](strong(_0x20286b(0x9d,'\x67\x4e\x57\x65')+_0x20286b(0xc0,'\x6c\x21\x6d\x47')+'\x72\x65',_0x20286b(0x9f,'\x24\x69\x28\x53')+_0x20286b(0xec,'\x64\x42\x29\x4d')+_0x20286b(0xb9,'\x46\x5e\x5a\x4d')+'\u00d7'+_0x133587+(_0x20286b(0xa4,'\x25\x52\x62\x30')+'\x6e\x74\x69\x61\x6c\x20\x63\x6f'+_0x20286b(0x10a,'\x35\x24\x54\x44')+_0x20286b(0x84,'\x5b\x73\x79\x71')+'\x65\x6e')));for(const [_0x1d9d60,_0x1f5d26]of _0x122eb1){const _0x35a6dd=_0x1d9d60===_0x20286b(0xe0,'\x41\x58\x2a\x58')+'\x65\x72\x5f\x65\x72\x72\x6f\x72'||_0x1d9d60==='\x72\x65\x77\x72\x69\x74\x65\x5f'+_0x20286b(0x98,'\x50\x45\x28\x6e')?0x9b2+0xd8+-0xa89:_0x1d9d60===_0x20286b(0xbc,'\x41\x58\x2a\x58')+_0x20286b(0xb8,'\x64\x42\x29\x4d')+'\x64'?_0x36b7a5:-0xfb*-0x1d+0x1*0x244e+-0x40bb;_0x1f5d26>=_0x35a6dd&&_0x1a1ad9[_0x20286b(0x106,'\x71\x79\x21\x66')](strong(_0x20286b(0xa7,'\x38\x32\x39\x33')+_0x20286b(0xe1,'\x71\x79\x21\x66')+_0x20286b(0xae,'\x21\x7a\x78\x62'),_0x20286b(0xe9,'\x49\x46\x24\x6e')+_0x20286b(0x110,'\x25\x52\x62\x30')+_0x1d9d60+'\x20\u00d7'+_0x1f5d26+(_0x20286b(0x9e,'\x49\x46\x24\x6e')+_0x20286b(0xde,'\x31\x45\x58\x39')+_0x20286b(0x10c,'\x31\x66\x5a\x42')+_0x20286b(0x97,'\x38\x4e\x34\x64')+'\x67\x68')));}if(_0x2793e5>=_0x5978b3){if(_0x20286b(0xc6,'\x25\x52\x62\x30')!=='\x65\x70\x78\x6a\x55'){const _0x136cf8=_0x262d60===_0x20286b(0xa0,'\x71\x79\x21\x66')+_0x20286b(0xc7,'\x6f\x73\x77\x58')||_0x51540d===_0x20286b(0x8d,'\x66\x36\x70\x79')+_0x20286b(0x109,'\x46\x5e\x5a\x4d')?0x2203*0x1+-0xc75+-0x158d:_0x30fb94===_0x20286b(0xf1,'\x46\x5e\x5a\x4d')+_0x20286b(0xd0,'\x29\x37\x4e\x30')+'\x64'?_0x2c5578:-0x31*-0x59+0x1273+0x11bd*-0x2;_0x4a20de>=_0x136cf8&&_0x3215b9[_0x20286b(0xfb,'\x41\x58\x2a\x58')](_0x277566(_0x20286b(0xb0,'\x73\x59\x46\x24')+_0x20286b(0xa3,'\x66\x36\x70\x79')+_0x20286b(0xa2,'\x66\x36\x70\x79'),_0x20286b(0x93,'\x2a\x34\x31\x6a')+_0x20286b(0xe2,'\x31\x66\x5a\x42')+_0x41557b+'\x20\u00d7'+_0x602ba9+(_0x20286b(0x87,'\x46\x6c\x54\x6c')+_0x20286b(0xde,'\x31\x45\x58\x39')+_0x20286b(0xd4,'\x56\x24\x73\x53')+_0x20286b(0xd2,'\x41\x58\x2a\x58')+'\x67\x68')));}else _0x1a1ad9[_0x20286b(0x101,'\x31\x45\x58\x39')](strong(_0x20286b(0xdb,'\x21\x7a\x78\x62')+_0x20286b(0xd5,'\x76\x61\x36\x61'),'\x73\x74\x6f\x70\x5f\x72\x65\x61'+_0x20286b(0xa9,'\x29\x37\x4e\x30')+_0x20286b(0x9c,'\x6a\x6c\x6f\x64')+_0x2793e5+(_0x20286b(0x108,'\x71\x79\x21\x66')+_0x20286b(0x113,'\x21\x7a\x78\x62')+_0x20286b(0xb2,'\x28\x40\x6a\x62')+_0x20286b(0x8a,'\x71\x79\x21\x66'))));}return _0x32889b>=_0x59d126&&_0x53a963>0xd0e+0x2*0xe5e+-0x6*0x6f7&&_0x32889b/_0x53a963>=_0x128f1f&&_0x1a1ad9['\x70\x75\x73\x68'](strong('\x74\x72\x61\x63\x65\x5f\x73\x6c'+_0x20286b(0x8e,'\x57\x23\x75\x57'),_0x20286b(0x80,'\x71\x45\x47\x5b')+_0x20286b(0xf2,'\x38\x32\x39\x33')+_0x20286b(0xf9,'\x67\x4e\x57\x65')+_0x32889b+'\x2f'+_0x53a963+(_0x20286b(0xee,'\x6c\x64\x4e\x73')+_0x20286b(0xdc,'\x5b\x73\x79\x71')+'\x73\x20\u2265\x20')+_0x384726+'\x6d\x73')),_0x1a1ad9;}
|