@evomap/evolver-proxy 2.0.0 → 2.0.1
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/lifecycle/claimNudge.js +1 -124
- package/dist/lifecycle/deployGuard.js +1 -53
- package/dist/lifecycle/legacyNodeId.js +1 -178
- package/dist/lifecycle/manager.js +1 -403
- package/dist/llm/bodyCapture.js +1 -293
- package/dist/llm/index.js +1 -3
- package/dist/llm/server.js +1 -379
- package/dist/llm/traceBackfill.js +1 -525
- package/dist/llm/traceConfig.js +1 -44
- package/dist/llm/traceControl.js +1 -85
- package/dist/llm/traceEnvelope.js +1 -286
- package/dist/llm/traceSink.js +1 -278
- package/dist/llm/traceUploadPayload.js +1 -27
- package/dist/llm/upstream.js +1 -514
- package/dist/router/cachePassthrough.js +1 -13
- package/dist/router/features.js +1 -52
- package/dist/router/index.js +1 -6
- package/dist/router/messagesRoute.js +1 -809
- package/dist/router/modelRouter.js +1 -66
- package/dist/router/providerRoutes.js +1 -1579
- package/dist/router/sseScan.js +1 -543
- package/dist/sync/engine.js +1 -696
- package/package.json +3 -3
|
@@ -1,66 +1 @@
|
|
|
1
|
-
// Multi-tier model router (ported from v1 proxy/router/model_router.js, itself a port of the EvoX Rust
|
|
2
|
-
// model_router.rs). Given stateless per-turn features, it picks a cost tier (cheap/mid/expensive) for an
|
|
3
|
-
// Anthropic /v1/messages turn so cheap turns (summarising tool output, trivial lookups) don't burn the
|
|
4
|
-
// expensive model and planning / high-tool-density turns get it.
|
|
5
|
-
//
|
|
6
|
-
// Field names are snake_case ON PURPOSE: they mirror the Rust router + its JSON fixture, and branch order is
|
|
7
|
-
// a parity invariant (post_tool_result_synthesis must win over high_tool_use_density). Pure + deterministic.
|
|
8
|
-
export const REASONS = {
|
|
9
|
-
ROUTER_DISABLED: 'router_disabled',
|
|
10
|
-
HARD_PINNED: 'hard_pinned',
|
|
11
|
-
GENE_HINT: 'gene_hint',
|
|
12
|
-
POST_TOOL_RESULT_SYNTHESIS: 'post_tool_result_synthesis',
|
|
13
|
-
USER_REQUESTED_PLANNING: 'user_requested_planning',
|
|
14
|
-
HIGH_TOOL_USE_DENSITY: 'high_tool_use_density',
|
|
15
|
-
TRIVIAL_LOOKUP: 'trivial_lookup',
|
|
16
|
-
DEFAULT_TIER: 'default_tier',
|
|
17
|
-
ESCALATED_FROM_HISTORY: 'escalated_from_history',
|
|
18
|
-
};
|
|
19
|
-
const TIER_ORDER = { cheap: 0, mid: 1, expensive: 2 };
|
|
20
|
-
function tierStepUp(tier) {
|
|
21
|
-
if (tier === 'cheap')
|
|
22
|
-
return 'mid';
|
|
23
|
-
return 'expensive'; // mid → expensive; expensive → expensive (clamped)
|
|
24
|
-
}
|
|
25
|
-
/** Parity invariant with model_router.rs:340 — branch ORDER matters. */
|
|
26
|
-
function classify(features, config) {
|
|
27
|
-
// post_tool_result_synthesis must win over high_tool_use_density: a turn that only summarises tool output.
|
|
28
|
-
if (features.last_user_is_tool_result_only && features.last_assistant_stop_reason === 'ToolUse') {
|
|
29
|
-
return ['cheap', REASONS.POST_TOOL_RESULT_SYNTHESIS];
|
|
30
|
-
}
|
|
31
|
-
if (features.user_requested_planning)
|
|
32
|
-
return ['expensive', REASONS.USER_REQUESTED_PLANNING];
|
|
33
|
-
if (features.last_assistant_tool_call_count > 3)
|
|
34
|
-
return ['expensive', REASONS.HIGH_TOOL_USE_DENSITY];
|
|
35
|
-
if (features.user_simple_lookup)
|
|
36
|
-
return ['cheap', REASONS.TRIVIAL_LOOKUP];
|
|
37
|
-
return [config.default_tier, REASONS.DEFAULT_TIER];
|
|
38
|
-
}
|
|
39
|
-
/** Stalled-turn escalation (model_router.rs:373): last turn produced <50 output tokens with no tool call. */
|
|
40
|
-
function maybeEscalate(base, history) {
|
|
41
|
-
if (!history || history.length === 0)
|
|
42
|
-
return [base, null];
|
|
43
|
-
const last = history[history.length - 1];
|
|
44
|
-
const stalled = last.output_tokens < 50 && !last.had_tool_call;
|
|
45
|
-
if (!stalled || last.tier === 'expensive')
|
|
46
|
-
return [base, null];
|
|
47
|
-
const target = tierStepUp(last.tier);
|
|
48
|
-
if (TIER_ORDER[target] > TIER_ORDER[base])
|
|
49
|
-
return [target, last.tier];
|
|
50
|
-
return [base, null];
|
|
51
|
-
}
|
|
52
|
-
/** Pick a tier for one turn. Precedence: disabled → hard-pin → gene hint → classify (+ history escalation). */
|
|
53
|
-
export function pickForTurn(input) {
|
|
54
|
-
const { features, router_state, config } = input;
|
|
55
|
-
if (config.disable)
|
|
56
|
-
return { tier: config.default_tier, reason: REASONS.ROUTER_DISABLED, escalated_from: null };
|
|
57
|
-
if (config.hard_pin_after_plan && router_state?.pinned) {
|
|
58
|
-
return { tier: router_state.pinned, reason: REASONS.HARD_PINNED, escalated_from: null };
|
|
59
|
-
}
|
|
60
|
-
if (input.gene_hint)
|
|
61
|
-
return { tier: input.gene_hint, reason: REASONS.GENE_HINT, escalated_from: null };
|
|
62
|
-
const [baseTier, baseReason] = classify(features, config);
|
|
63
|
-
const [escalatedTier, escalatedFrom] = maybeEscalate(baseTier, router_state?.history ?? []);
|
|
64
|
-
const reason = escalatedFrom !== null ? REASONS.ESCALATED_FROM_HISTORY : baseReason;
|
|
65
|
-
return { tier: escalatedTier, reason, escalated_from: escalatedFrom };
|
|
66
|
-
}
|
|
1
|
+
const _0x15cf4d=_0x3dd2;(function(_0x463d30,_0x4204f7){const _0xec1dac=_0x3dd2,_0x154c8b=_0x463d30();while(!![]){try{const _0x3c8b83=parseInt(_0xec1dac(0x1f3,'\x6d\x49\x59\x75'))/(0xcd*-0x23+-0xf2f+0x12b*0x25)+parseInt(_0xec1dac(0x1a5,'\x43\x5b\x62\x6d'))/(0x1*-0x53+-0xa*-0x1dd+-0x124d)+-parseInt(_0xec1dac(0x1af,'\x40\x5b\x7a\x57'))/(0x11f7+0x3*0x87e+-0x3*0xe7a)*(-parseInt(_0xec1dac(0x1b8,'\x30\x46\x43\x5d'))/(0x1daa*-0x1+0x1ef8+0x6e*-0x3))+-parseInt(_0xec1dac(0x1e7,'\x47\x48\x67\x79'))/(0x22ee+0x20aa+-0x4393)+parseInt(_0xec1dac(0x1d0,'\x47\x48\x67\x79'))/(-0x1841+-0xb4b+-0x9d*-0x3a)*(-parseInt(_0xec1dac(0x1aa,'\x6b\x61\x5a\x5d'))/(-0x64d*0x3+-0x11c3*-0x1+-0x17*-0xd))+-parseInt(_0xec1dac(0x1de,'\x25\x31\x4e\x31'))/(-0x773*0x2+0x10d5*-0x1+-0x2f*-0xad)+parseInt(_0xec1dac(0x1b7,'\x6b\x61\x5a\x5d'))/(-0x4f5+0x23c4+-0x1ec6);if(_0x3c8b83===_0x4204f7)break;else _0x154c8b['push'](_0x154c8b['shift']());}catch(_0x3579ae){_0x154c8b['push'](_0x154c8b['shift']());}}}(_0x512f,0x1*0x5df31+-0x58da6+-0x6*-0x8335));export const REASONS={'\x52\x4f\x55\x54\x45\x52\x5f\x44\x49\x53\x41\x42\x4c\x45\x44':_0x15cf4d(0x1ee,'\x6d\x39\x6a\x54')+_0x15cf4d(0x1f6,'\x5d\x6b\x58\x4a'),'\x48\x41\x52\x44\x5f\x50\x49\x4e\x4e\x45\x44':_0x15cf4d(0x1ad,'\x76\x57\x41\x4d')+_0x15cf4d(0x1c2,'\x64\x6e\x63\x45'),'\x47\x45\x4e\x45\x5f\x48\x49\x4e\x54':_0x15cf4d(0x1c9,'\x5b\x6e\x5e\x34')+'\x74','\x50\x4f\x53\x54\x5f\x54\x4f\x4f\x4c\x5f\x52\x45\x53\x55\x4c\x54\x5f\x53\x59\x4e\x54\x48\x45\x53\x49\x53':_0x15cf4d(0x1c1,'\x68\x4f\x4c\x50')+'\x6c\x5f\x72\x65\x73\x75\x6c\x74'+_0x15cf4d(0x1ba,'\x47\x48\x67\x79')+'\x69\x73','\x55\x53\x45\x52\x5f\x52\x45\x51\x55\x45\x53\x54\x45\x44\x5f\x50\x4c\x41\x4e\x4e\x49\x4e\x47':_0x15cf4d(0x1d2,'\x39\x71\x76\x57')+_0x15cf4d(0x1b4,'\x6b\x63\x25\x64')+_0x15cf4d(0x1ac,'\x6b\x61\x5a\x5d'),'\x48\x49\x47\x48\x5f\x54\x4f\x4f\x4c\x5f\x55\x53\x45\x5f\x44\x45\x4e\x53\x49\x54\x59':_0x15cf4d(0x1e5,'\x42\x32\x34\x31')+_0x15cf4d(0x1e2,'\x72\x71\x23\x58')+_0x15cf4d(0x1a9,'\x72\x39\x76\x51'),'\x54\x52\x49\x56\x49\x41\x4c\x5f\x4c\x4f\x4f\x4b\x55\x50':_0x15cf4d(0x1bb,'\x61\x55\x57\x26')+_0x15cf4d(0x1a4,'\x76\x63\x59\x5b'),'\x44\x45\x46\x41\x55\x4c\x54\x5f\x54\x49\x45\x52':_0x15cf4d(0x1c0,'\x69\x41\x41\x40')+_0x15cf4d(0x1be,'\x43\x5b\x62\x6d'),'\x45\x53\x43\x41\x4c\x41\x54\x45\x44\x5f\x46\x52\x4f\x4d\x5f\x48\x49\x53\x54\x4f\x52\x59':_0x15cf4d(0x1ab,'\x42\x32\x34\x31')+_0x15cf4d(0x1b6,'\x37\x39\x63\x54')+_0x15cf4d(0x1cc,'\x41\x50\x71\x28')};const TIER_ORDER={'\x63\x68\x65\x61\x70':0x0,'\x6d\x69\x64':0x1,'\x65\x78\x70\x65\x6e\x73\x69\x76\x65':0x2};function tierStepUp(_0x5a2ece){const _0x375fc9=_0x15cf4d;if(_0x5a2ece===_0x375fc9(0x1d5,'\x6d\x39\x6a\x54'))return _0x375fc9(0x1da,'\x47\x48\x67\x79');return _0x375fc9(0x1d9,'\x69\x41\x41\x40')+'\x65';}function classify(_0x565732,_0x2b3cf4){const _0x472e66=_0x15cf4d;if(_0x565732[_0x472e66(0x19c,'\x25\x31\x4e\x31')+'\x72\x5f\x69\x73\x5f\x74\x6f\x6f'+_0x472e66(0x1e0,'\x36\x45\x42\x37')+_0x472e66(0x19d,'\x34\x4f\x4d\x78')]&&_0x565732[_0x472e66(0x1d3,'\x76\x57\x41\x4d')+_0x472e66(0x1a2,'\x6d\x49\x59\x75')+_0x472e66(0x1ea,'\x42\x32\x34\x31')+'\x6f\x6e']===_0x472e66(0x1f8,'\x5b\x6e\x5e\x34'))return[_0x472e66(0x1db,'\x47\x48\x67\x79'),REASONS[_0x472e66(0x1e9,'\x42\x32\x34\x31')+_0x472e66(0x1d8,'\x76\x57\x41\x4d')+_0x472e66(0x1a3,'\x25\x31\x4e\x31')+'\x49\x53']];if(_0x565732[_0x472e66(0x1e3,'\x40\x5b\x7a\x57')+_0x472e66(0x1b1,'\x7a\x50\x55\x72')+'\x6c\x61\x6e\x6e\x69\x6e\x67'])return[_0x472e66(0x1d6,'\x39\x71\x76\x57')+'\x65',REASONS['\x55\x53\x45\x52\x5f\x52\x45\x51'+_0x472e66(0x1ca,'\x76\x57\x41\x4d')+_0x472e66(0x1ed,'\x52\x5b\x51\x46')]];if(_0x565732[_0x472e66(0x1e4,'\x42\x55\x24\x43')+_0x472e66(0x1a7,'\x40\x5b\x7a\x57')+'\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c'+_0x472e66(0x1e8,'\x72\x4e\x4c\x29')]>0x392+-0x37*0x22+0x3bf)return['\x65\x78\x70\x65\x6e\x73\x69\x76'+'\x65',REASONS['\x48\x49\x47\x48\x5f\x54\x4f\x4f'+_0x472e66(0x19f,'\x53\x52\x51\x21')+_0x472e66(0x1bf,'\x25\x31\x4e\x31')]];if(_0x565732[_0x472e66(0x1df,'\x4a\x24\x5e\x41')+_0x472e66(0x1dd,'\x40\x5b\x7a\x57')+'\x75\x70'])return[_0x472e66(0x1cf,'\x56\x41\x67\x5e'),REASONS[_0x472e66(0x1c3,'\x5a\x42\x78\x58')+_0x472e66(0x1f7,'\x34\x4f\x4d\x78')]];return[_0x2b3cf4[_0x472e66(0x1f0,'\x53\x52\x51\x21')+_0x472e66(0x1dc,'\x6b\x63\x25\x64')],REASONS[_0x472e66(0x1fa,'\x61\x55\x57\x26')+_0x472e66(0x1ae,'\x59\x71\x74\x50')]];}function maybeEscalate(_0x5c5532,_0x3b1c03){const _0xa0fe36=_0x15cf4d;if(!_0x3b1c03||_0x3b1c03[_0xa0fe36(0x1cd,'\x5a\x42\x78\x58')]===0x8b1+-0x6eb*-0x3+-0x1d72)return[_0x5c5532,null];const _0x7cc01=_0x3b1c03[_0x3b1c03[_0xa0fe36(0x1f9,'\x70\x4b\x31\x6e')]-(0x1*-0x1422+-0x1006+-0x1*-0x2429)],_0xcb5715=_0x7cc01[_0xa0fe36(0x1b3,'\x53\x52\x51\x21')+_0xa0fe36(0x1ec,'\x76\x57\x41\x4d')]<0x37f*-0x8+0x25*-0x1a+0x2*0xff6&&!_0x7cc01['\x68\x61\x64\x5f\x74\x6f\x6f\x6c'+_0xa0fe36(0x1a0,'\x43\x5b\x62\x6d')];if(!_0xcb5715||_0x7cc01[_0xa0fe36(0x1ce,'\x76\x57\x41\x4d')]==='\x65\x78\x70\x65\x6e\x73\x69\x76'+'\x65')return[_0x5c5532,null];const _0x5c822a=tierStepUp(_0x7cc01[_0xa0fe36(0x1d4,'\x53\x52\x51\x21')]);if(TIER_ORDER[_0x5c822a]>TIER_ORDER[_0x5c5532])return[_0x5c822a,_0x7cc01[_0xa0fe36(0x1dc,'\x6b\x63\x25\x64')]];return[_0x5c5532,null];}export function pickForTurn(_0x3816c7){const _0xfd0d6f=_0x15cf4d,{features:_0x372ad4,router_state:_0x5e52e0,config:_0x2e174b}=_0x3816c7;if(_0x2e174b[_0xfd0d6f(0x1f5,'\x79\x5d\x38\x67')])return{'\x74\x69\x65\x72':_0x2e174b[_0xfd0d6f(0x1bc,'\x5b\x6e\x5e\x34')+_0xfd0d6f(0x1dc,'\x6b\x63\x25\x64')],'\x72\x65\x61\x73\x6f\x6e':REASONS[_0xfd0d6f(0x1e1,'\x34\x50\x72\x42')+_0xfd0d6f(0x1f2,'\x41\x50\x71\x28')],'\x65\x73\x63\x61\x6c\x61\x74\x65\x64\x5f\x66\x72\x6f\x6d':null};if(_0x2e174b[_0xfd0d6f(0x1d1,'\x56\x41\x67\x5e')+_0xfd0d6f(0x1c6,'\x64\x6e\x63\x45')+_0xfd0d6f(0x1a6,'\x66\x69\x6f\x32')]&&_0x5e52e0?.[_0xfd0d6f(0x1d7,'\x6b\x61\x5a\x5d')])return{'\x74\x69\x65\x72':_0x5e52e0[_0xfd0d6f(0x1a8,'\x36\x45\x42\x37')],'\x72\x65\x61\x73\x6f\x6e':REASONS[_0xfd0d6f(0x1c4,'\x42\x55\x24\x43')+_0xfd0d6f(0x1f1,'\x72\x71\x23\x58')],'\x65\x73\x63\x61\x6c\x61\x74\x65\x64\x5f\x66\x72\x6f\x6d':null};if(_0x3816c7[_0xfd0d6f(0x1b5,'\x5d\x6b\x58\x4a')+'\x74'])return{'\x74\x69\x65\x72':_0x3816c7[_0xfd0d6f(0x1eb,'\x72\x71\x23\x58')+'\x74'],'\x72\x65\x61\x73\x6f\x6e':REASONS[_0xfd0d6f(0x1f4,'\x5a\x42\x78\x58')+'\x54'],'\x65\x73\x63\x61\x6c\x61\x74\x65\x64\x5f\x66\x72\x6f\x6d':null};const [_0x2dabe7,_0x5405a0]=classify(_0x372ad4,_0x2e174b),[_0x564104,_0x5d76da]=maybeEscalate(_0x2dabe7,_0x5e52e0?.[_0xfd0d6f(0x1c7,'\x4b\x26\x43\x2a')]??[]),_0x18689d=_0x5d76da!==null?REASONS[_0xfd0d6f(0x1b2,'\x7a\x50\x55\x72')+_0xfd0d6f(0x1c8,'\x69\x41\x41\x40')+_0xfd0d6f(0x1a1,'\x53\x52\x51\x21')]:_0x5405a0;return{'\x74\x69\x65\x72':_0x564104,'\x72\x65\x61\x73\x6f\x6e':_0x18689d,'\x65\x73\x63\x61\x6c\x61\x74\x65\x64\x5f\x66\x72\x6f\x6d':_0x5d76da};}function _0x3dd2(_0x537f3c,_0x1e68e4){_0x537f3c=_0x537f3c-(0x6*0x3c4+-0xc44+-0x8b8);const _0x67dc10=_0x512f();let _0x3c641d=_0x67dc10[_0x537f3c];if(_0x3dd2['\x53\x6b\x45\x42\x52\x4e']===undefined){var _0xa74d15=function(_0x614f7b){const _0x1ad74d='\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 _0x4a6d6b='',_0x591fed='';for(let _0x1b5907=0x182e+0x2082*0x1+-0x38b0,_0x8740e,_0x23e400,_0x51ade1=-0x1d1f+-0x798+0x24b7;_0x23e400=_0x614f7b['\x63\x68\x61\x72\x41\x74'](_0x51ade1++);~_0x23e400&&(_0x8740e=_0x1b5907%(-0x3*-0x4fe+0x26af+0x1*-0x35a5)?_0x8740e*(0x1a3*-0x3+-0x1583*-0x1+0x82d*-0x2)+_0x23e400:_0x23e400,_0x1b5907++%(0x1d*-0x8+-0x1*-0x655+0x569*-0x1))?_0x4a6d6b+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xa22+-0xb4e+0x22b&_0x8740e>>(-(-0xd08+0x815*-0x3+-0x775*-0x5)*_0x1b5907&0x4*-0x415+0x2400+0x9d3*-0x2)):-0x1*0x1d09+-0x2b*-0x8e+0x52f){_0x23e400=_0x1ad74d['\x69\x6e\x64\x65\x78\x4f\x66'](_0x23e400);}for(let _0xd4f3aa=-0x46d*-0x1+0xb*-0xc5+0x40a,_0x5e72e6=_0x4a6d6b['\x6c\x65\x6e\x67\x74\x68'];_0xd4f3aa<_0x5e72e6;_0xd4f3aa++){_0x591fed+='\x25'+('\x30\x30'+_0x4a6d6b['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xd4f3aa)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x6a3+-0xb49+0x4*0x47f))['\x73\x6c\x69\x63\x65'](-(0x2218+-0x270e+0xc*0x6a));}return decodeURIComponent(_0x591fed);};const _0x5d166e=function(_0x1567a5,_0x436f04){let _0x3b7cba=[],_0x5200ca=0x2*0xe5c+-0x1c02+-0xb6,_0x3027d2,_0x536e97='';_0x1567a5=_0xa74d15(_0x1567a5);let _0x20fec4;for(_0x20fec4=0xb*-0x1d+-0x141a+-0x1*-0x1559;_0x20fec4<-0x3fe+0x367+0x25*0xb;_0x20fec4++){_0x3b7cba[_0x20fec4]=_0x20fec4;}for(_0x20fec4=-0xffc+0x1e67+-0xe6b;_0x20fec4<-0x1006*0x1+-0xb*-0x10c+0x582;_0x20fec4++){_0x5200ca=(_0x5200ca+_0x3b7cba[_0x20fec4]+_0x436f04['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x20fec4%_0x436f04['\x6c\x65\x6e\x67\x74\x68']))%(0x25*-0x1a+0x575*0x1+0xb3*-0x1),_0x3027d2=_0x3b7cba[_0x20fec4],_0x3b7cba[_0x20fec4]=_0x3b7cba[_0x5200ca],_0x3b7cba[_0x5200ca]=_0x3027d2;}_0x20fec4=0xb*0x2e1+-0x3a5+-0x1c06,_0x5200ca=0x24b9*0x1+0x6e2+-0x2b9b;for(let _0x3ee04a=-0x45*0x81+0x1f99+0x2*0x196;_0x3ee04a<_0x1567a5['\x6c\x65\x6e\x67\x74\x68'];_0x3ee04a++){_0x20fec4=(_0x20fec4+(0x11cb+-0xdb4+-0x416))%(-0x22d0+0x1137+0x1*0x1299),_0x5200ca=(_0x5200ca+_0x3b7cba[_0x20fec4])%(-0x1835+-0xb3+0x19e8),_0x3027d2=_0x3b7cba[_0x20fec4],_0x3b7cba[_0x20fec4]=_0x3b7cba[_0x5200ca],_0x3b7cba[_0x5200ca]=_0x3027d2,_0x536e97+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x1567a5['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3ee04a)^_0x3b7cba[(_0x3b7cba[_0x20fec4]+_0x3b7cba[_0x5200ca])%(0x1*0x2086+-0x2*-0xd01+-0x2*0x1cc4)]);}return _0x536e97;};_0x3dd2['\x66\x69\x42\x6a\x4b\x6c']=_0x5d166e,_0x3dd2['\x45\x4f\x7a\x53\x76\x46']={},_0x3dd2['\x53\x6b\x45\x42\x52\x4e']=!![];}const _0x155a46=_0x67dc10[-0x1*0xdc1+0x9b9+0x408],_0x8f3936=_0x537f3c+_0x155a46,_0x44a6d5=_0x3dd2['\x45\x4f\x7a\x53\x76\x46'][_0x8f3936];return!_0x44a6d5?(_0x3dd2['\x7a\x65\x5a\x46\x78\x6b']===undefined&&(_0x3dd2['\x7a\x65\x5a\x46\x78\x6b']=!![]),_0x3c641d=_0x3dd2['\x66\x69\x42\x6a\x4b\x6c'](_0x3c641d,_0x1e68e4),_0x3dd2['\x45\x4f\x7a\x53\x76\x46'][_0x8f3936]=_0x3c641d):_0x3c641d=_0x44a6d5,_0x3c641d;}function _0x512f(){const _0x2fbf72=['\x6b\x4d\x4e\x64\x4d\x6d\x6f\x36\x57\x37\x6c\x63\x49\x38\x6f\x37\x57\x36\x44\x73\x57\x34\x4a\x64\x4b\x31\x75','\x7a\x43\x6f\x4d\x6a\x43\x6f\x67\x57\x4f\x58\x4a\x65\x43\x6f\x42\x69\x48\x33\x63\x4d\x43\x6f\x68','\x68\x38\x6f\x41\x57\x34\x78\x64\x47\x4b\x33\x64\x49\x71\x42\x63\x4a\x57','\x57\x50\x6e\x66\x57\x4f\x2f\x63\x4a\x6d\x6f\x6d\x57\x36\x39\x43\x77\x47','\x79\x53\x6f\x6c\x57\x50\x56\x64\x4d\x6d\x6b\x4d\x57\x4f\x35\x41\x57\x36\x4b','\x57\x50\x50\x39\x46\x53\x6f\x53\x66\x31\x56\x64\x4d\x6d\x6f\x47\x68\x4b\x46\x64\x52\x6d\x6b\x2b','\x57\x50\x34\x70\x57\x34\x37\x64\x52\x71','\x6d\x43\x6b\x4e\x57\x37\x52\x64\x4f\x43\x6b\x59','\x57\x34\x38\x52\x6c\x53\x6b\x35\x76\x57\x70\x64\x52\x38\x6f\x30','\x57\x37\x70\x64\x47\x38\x6b\x6d\x66\x57\x76\x6d\x57\x37\x68\x63\x48\x47','\x70\x6d\x6b\x45\x6f\x47','\x57\x36\x31\x44\x44\x43\x6f\x39\x57\x34\x6c\x63\x56\x6d\x6b\x4d\x77\x61','\x57\x4f\x42\x63\x4b\x53\x6f\x42\x57\x50\x74\x64\x4d\x6d\x6b\x6c\x57\x34\x6c\x63\x47\x71','\x57\x36\x35\x4d\x79\x61\x70\x63\x51\x67\x6d\x69\x78\x33\x68\x63\x4e\x38\x6f\x63\x74\x71\x75','\x64\x43\x6b\x41\x6f\x67\x4a\x63\x4d\x47\x33\x64\x4f\x68\x57','\x46\x4c\x71\x2f\x69\x43\x6b\x4f\x57\x37\x35\x4b','\x57\x36\x38\x72\x64\x53\x6b\x6b\x42\x73\x6c\x64\x48\x6d\x6f\x4a','\x79\x43\x6f\x6c\x57\x50\x70\x64\x4e\x6d\x6b\x6d\x57\x4f\x50\x68\x57\x35\x47','\x62\x38\x6b\x42\x72\x53\x6b\x4a\x57\x37\x4b\x78\x61\x53\x6f\x73','\x79\x38\x6f\x56\x6a\x6d\x6f\x66\x57\x4f\x39\x4b\x6f\x38\x6f\x54\x6c\x73\x74\x63\x48\x6d\x6f\x61','\x57\x50\x74\x63\x4a\x4c\x4b\x77\x57\x50\x35\x75','\x57\x35\x76\x51\x75\x53\x6f\x6d\x57\x37\x2f\x63\x4c\x71','\x6a\x53\x6b\x33\x43\x6d\x6b\x66','\x57\x52\x43\x35\x57\x4f\x62\x38\x41\x61','\x44\x53\x6f\x67\x57\x35\x33\x64\x4a\x4d\x52\x64\x49\x74\x4b','\x57\x52\x57\x57\x57\x50\x44\x35\x72\x38\x6f\x38\x57\x36\x64\x64\x53\x47','\x78\x53\x6b\x36\x70\x47\x68\x63\x4c\x5a\x6d\x42\x7a\x47','\x70\x53\x6b\x2f\x7a\x53\x6b\x64\x57\x36\x6d\x59\x6c\x53\x6f\x58','\x71\x53\x6f\x46\x77\x5a\x53','\x57\x52\x70\x64\x52\x6d\x6b\x4b\x57\x51\x5a\x64\x4b\x61','\x74\x53\x6b\x58\x6b\x58\x42\x63\x50\x4a\x69\x78\x79\x71','\x71\x43\x6f\x36\x57\x50\x33\x63\x47\x48\x37\x63\x4a\x71','\x68\x53\x6b\x62\x72\x38\x6b\x59\x57\x36\x38\x67\x65\x43\x6f\x77','\x57\x34\x34\x32\x6f\x6d\x6b\x39\x74\x62\x5a\x64\x53\x53\x6f\x44','\x6c\x43\x6f\x61\x57\x35\x47','\x69\x38\x6f\x62\x57\x35\x4e\x64\x4a\x75\x4b','\x57\x36\x46\x63\x56\x49\x39\x41','\x57\x51\x4e\x64\x53\x76\x4a\x63\x4a\x43\x6b\x58\x6c\x38\x6b\x61\x57\x36\x79','\x72\x38\x6f\x67\x57\x4f\x56\x63\x48\x43\x6f\x42\x57\x51\x75\x35\x66\x53\x6b\x65\x69\x4d\x33\x63\x55\x61','\x57\x4f\x42\x64\x54\x66\x44\x4e\x57\x36\x72\x2b\x76\x32\x57','\x57\x37\x54\x59\x70\x53\x6b\x48\x71\x38\x6b\x75\x6f\x4c\x4b','\x44\x6d\x6b\x7a\x42\x53\x6f\x74\x70\x4d\x39\x30\x72\x61','\x65\x62\x75\x42\x57\x4f\x64\x63\x4c\x6d\x6f\x7a\x6a\x76\x43','\x57\x51\x5a\x64\x52\x4c\x4a\x63\x4f\x6d\x6b\x63\x6d\x53\x6b\x6b\x57\x37\x57','\x57\x51\x6c\x63\x53\x53\x6f\x36\x57\x51\x74\x64\x4d\x6d\x6b\x36\x57\x37\x4a\x63\x56\x61','\x57\x37\x6c\x64\x56\x62\x44\x6a\x76\x38\x6f\x57\x57\x37\x64\x64\x50\x47','\x57\x37\x75\x2f\x70\x53\x6f\x55\x74\x59\x35\x4d','\x44\x38\x6b\x72\x57\x4f\x5a\x63\x4e\x71\x4e\x63\x4b\x73\x2f\x63\x50\x77\x44\x54\x57\x35\x37\x64\x50\x57','\x75\x38\x6f\x6f\x57\x35\x4b\x65\x57\x50\x33\x64\x53\x57','\x57\x34\x52\x64\x4d\x49\x6e\x31\x76\x38\x6f\x71\x57\x35\x64\x64\x48\x47','\x57\x36\x37\x64\x55\x47\x62\x2b\x45\x53\x6f\x48\x57\x37\x37\x64\x55\x47','\x67\x59\x38\x61\x57\x50\x42\x63\x52\x53\x6f\x55\x6b\x66\x57','\x70\x43\x6b\x31\x43\x6d\x6b\x7a\x57\x34\x38','\x57\x34\x4a\x64\x51\x49\x56\x64\x50\x38\x6f\x38\x57\x51\x68\x64\x4d\x57','\x57\x51\x6c\x64\x51\x38\x6b\x30\x57\x52\x4e\x64\x48\x71\x5a\x64\x4b\x30\x43','\x66\x6d\x6f\x55\x64\x43\x6b\x33\x71\x47\x75\x46\x42\x61\x74\x63\x49\x38\x6f\x4d\x57\x51\x30\x43','\x75\x53\x6f\x74\x77\x63\x47\x7a\x6d\x6d\x6f\x76\x77\x57','\x6d\x47\x38\x51','\x57\x52\x74\x63\x52\x4d\x57\x37\x57\x51\x62\x4f\x79\x61','\x62\x6d\x6b\x6b\x57\x35\x68\x64\x56\x53\x6b\x44\x57\x35\x68\x63\x4e\x53\x6f\x53\x57\x4f\x6c\x63\x48\x78\x70\x63\x4a\x61','\x57\x37\x35\x6b\x43\x53\x6f\x55\x57\x35\x74\x63\x54\x43\x6b\x4a\x73\x71','\x6b\x47\x56\x64\x53\x64\x65\x71\x57\x35\x4b\x59','\x57\x36\x30\x66\x66\x43\x6b\x79\x57\x36\x69\x4f\x57\x35\x34','\x57\x36\x44\x48\x71\x6d\x6b\x61\x57\x35\x74\x64\x4b\x47','\x75\x53\x6f\x62\x57\x50\x6c\x64\x4c\x43\x6b\x67\x57\x50\x66\x6c','\x44\x4b\x42\x64\x47\x38\x6b\x61\x57\x35\x6e\x50','\x57\x51\x6e\x59\x57\x51\x64\x63\x55\x38\x6f\x57\x57\x34\x6a\x4b\x77\x47','\x65\x38\x6b\x76\x57\x34\x64\x64\x47\x43\x6b\x30\x57\x36\x61\x34\x65\x61','\x57\x37\x72\x62\x79\x43\x6b\x4e\x57\x37\x47','\x61\x43\x6b\x6c\x57\x35\x78\x64\x56\x53\x6b\x43\x57\x35\x42\x63\x49\x43\x6f\x4e\x57\x51\x37\x63\x54\x75\x33\x63\x55\x71','\x45\x53\x6f\x50\x41\x58\x4f\x50\x61\x38\x6f\x4c\x71\x71','\x57\x52\x75\x66\x57\x34\x52\x64\x53\x38\x6f\x61','\x46\x38\x6f\x4c\x41\x47\x79\x2b\x62\x71','\x78\x6d\x6f\x69\x57\x50\x74\x63\x52\x43\x6f\x61\x57\x50\x6c\x63\x50\x38\x6f\x57','\x69\x6d\x6b\x4e\x57\x36\x52\x64\x55\x38\x6b\x2f\x57\x35\x30\x6f\x6a\x47','\x71\x58\x46\x64\x4e\x33\x2f\x63\x56\x30\x4b','\x57\x35\x54\x76\x57\x50\x33\x63\x51\x38\x6b\x7a\x72\x38\x6f\x69\x73\x53\x6b\x43\x57\x4f\x33\x64\x53\x6d\x6b\x6d','\x45\x59\x35\x30','\x57\x52\x64\x64\x52\x4b\x4e\x63\x53\x38\x6b\x5a\x6e\x6d\x6b\x57\x57\x37\x4b','\x57\x36\x44\x65\x69\x53\x6b\x51\x76\x43\x6b\x66','\x57\x4f\x6c\x64\x52\x53\x6b\x65\x57\x4f\x61\x57','\x61\x38\x6b\x52\x57\x34\x78\x64\x4e\x65\x6c\x64\x4b\x73\x34\x38\x78\x53\x6f\x65\x57\x52\x69\x72\x46\x57','\x57\x37\x2f\x64\x50\x48\x6e\x61\x7a\x6d\x6f\x4c\x57\x36\x56\x64\x52\x61','\x78\x43\x6f\x59\x57\x50\x33\x63\x47\x48\x6c\x63\x48\x33\x30','\x6f\x53\x6b\x2f\x7a\x38\x6b\x74\x57\x36\x6d\x4a\x6e\x6d\x6f\x53','\x57\x35\x42\x64\x54\x61\x6d\x68','\x57\x36\x2f\x64\x4d\x4e\x52\x63\x50\x6d\x6b\x57\x6f\x43\x6b\x37','\x44\x4c\x64\x63\x55\x32\x62\x63\x57\x4f\x75\x4c\x57\x34\x72\x74\x44\x61\x4a\x63\x4d\x71','\x57\x52\x71\x4b\x46\x38\x6f\x31\x57\x36\x65\x43\x57\x35\x56\x63\x56\x71','\x57\x4f\x71\x73\x74\x38\x6f\x61\x57\x34\x47\x35\x57\x35\x64\x63\x49\x61','\x77\x43\x6f\x64\x73\x4a\x4b\x7a\x6b\x6d\x6f\x2b\x43\x61','\x57\x36\x42\x63\x53\x4a\x4c\x43\x6c\x53\x6b\x70\x6d\x65\x34','\x57\x36\x6d\x74\x67\x53\x6b\x46\x57\x35\x65\x4c\x57\x35\x6e\x51','\x44\x61\x74\x64\x47\x58\x74\x64\x4f\x6d\x6b\x61\x63\x4e\x71','\x62\x43\x6b\x4d\x57\x34\x74\x64\x4d\x30\x52\x64\x4d\x73\x4b\x2f\x44\x6d\x6f\x56\x57\x52\x4f\x74\x73\x61'];_0x512f=function(){return _0x2fbf72;};return _0x512f();}
|