@kodax-ai/kodax 0.7.92 → 0.7.94

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.
Files changed (81) hide show
  1. package/CHANGELOG.md +125 -0
  2. package/README.md +63 -18
  3. package/README_CN.md +31 -0
  4. package/dist/builtin/skill-creator/SKILL.md +5 -0
  5. package/dist/builtin/skill-creator/scripts/init-skill.js +5 -4
  6. package/dist/chunks/{agent-YHHFIH7N.js → agent-Q3FB3GNZ.js} +1 -1
  7. package/dist/chunks/argument-completer-SS2Q2ZKT.js +2 -0
  8. package/dist/chunks/chunk-56CIZI5I.js +418 -0
  9. package/dist/chunks/{chunk-QPBN3J4E.js → chunk-6BATYA47.js} +2 -2
  10. package/dist/chunks/chunk-77PNP27P.js +92 -0
  11. package/dist/chunks/chunk-7CKGNNTU.js +383 -0
  12. package/dist/chunks/{chunk-X75UGXP3.js → chunk-7QBWHCIZ.js} +1 -1
  13. package/dist/chunks/{chunk-FBL7IVMK.js → chunk-BHE66SP3.js} +14 -14
  14. package/dist/chunks/{chunk-YVG6OKN7.js → chunk-BVV3IA5W.js} +1 -1
  15. package/dist/chunks/chunk-EASGM7W7.js +687 -0
  16. package/dist/chunks/{chunk-GRWUC6H7.js → chunk-IIIAUDGW.js} +1 -1
  17. package/dist/chunks/{chunk-GH3KBC2H.js → chunk-N7HIJNJH.js} +1 -1
  18. package/dist/chunks/{chunk-THZVJ6R7.js → chunk-NGOPE4KK.js} +10 -10
  19. package/dist/chunks/chunk-NK5AWGNW.js +319 -0
  20. package/dist/chunks/{chunk-7XSZVOG7.js → chunk-UNRHTOT5.js} +134 -133
  21. package/dist/chunks/{chunk-5CIKWSCA.js → chunk-YMNFQ7SQ.js} +2 -2
  22. package/dist/chunks/{chunk-AGZNXFHZ.js → chunk-ZGZLSKN6.js} +214 -213
  23. package/dist/chunks/{chunk-PKPBII4F.js → chunk-ZKEXHAXA.js} +238 -239
  24. package/dist/chunks/{chunk-OSQIYUGD.js → chunk-ZMGATMXN.js} +121 -122
  25. package/dist/chunks/{client-OVYKC3ND.js → client-4IOUU4U3.js} +1 -1
  26. package/dist/chunks/compaction-config-2DTN3OHT.js +2 -0
  27. package/dist/chunks/{construction-bootstrap-QVLJPFTL.js → construction-bootstrap-BL56XTNW.js} +1 -1
  28. package/dist/chunks/dist-B4CB7KHY.js +2 -0
  29. package/dist/chunks/{dist-WNMK42WE.js → dist-ITTXQHRJ.js} +1 -1
  30. package/dist/chunks/host-7747QS3X.js +2 -0
  31. package/dist/chunks/run-manager-NLNMI3P2.js +2 -0
  32. package/dist/chunks/{utils-HPVZCR2J.js → utils-CGGQLMJS.js} +1 -1
  33. package/dist/index.d.ts +10 -10
  34. package/dist/index.js +2 -2
  35. package/dist/kodax_bootstrap.js +1 -1
  36. package/dist/kodax_cli.js +1554 -1384
  37. package/dist/runtime-worker.js +1562 -1392
  38. package/dist/sandbox-workspace-session.js +429 -260
  39. package/dist/sdk-a2a.d.ts +6 -6
  40. package/dist/sdk-a2a.js +1 -1
  41. package/dist/sdk-agent.d.ts +17 -6
  42. package/dist/sdk-agent.js +1 -1
  43. package/dist/sdk-coding.d.ts +32 -15
  44. package/dist/sdk-coding.js +1 -1
  45. package/dist/sdk-experimental-memory.js +1 -1
  46. package/dist/sdk-llm.js +1 -1
  47. package/dist/sdk-mcp.js +1 -1
  48. package/dist/sdk-media.js +1 -1
  49. package/dist/sdk-repl.d.ts +32 -14
  50. package/dist/sdk-repl.js +2 -2
  51. package/dist/sdk-runtime.d.ts +31 -8
  52. package/dist/sdk-runtime.js +1 -1
  53. package/dist/sdk-sandbox.d.ts +7 -0
  54. package/dist/sdk-sandbox.js +1 -1
  55. package/dist/sdk-session.d.ts +4 -4
  56. package/dist/sdk-session.js +1 -1
  57. package/dist/sdk-skills.d.ts +2 -333
  58. package/dist/sdk-skills.js +1 -1
  59. package/dist/semantic-worker.js +61 -60
  60. package/dist/types-chunks/{bash-prefix-extractor.d-BMi_TJIY.d.ts → bash-prefix-extractor.d-AOJdvO4r.d.ts} +53 -3
  61. package/dist/types-chunks/{guardrail.d-CKkoea7y.d.ts → guardrail.d-D8RyuTrv.d.ts} +1 -1
  62. package/dist/types-chunks/{public-api.d-BsZWOq3P.d.ts → public-api.d-BNmLxGnR.d.ts} +1 -1
  63. package/dist/types-chunks/{repl.d-DxD0Olm0.d.ts → repl.d-Q6Z3lV2-.d.ts} +4 -4
  64. package/dist/types-chunks/{sdk-session-BTzblJTQ.d.ts → sdk-session-BwC_i6JB.d.ts} +1 -1
  65. package/dist/types-chunks/sdk-skills-Bg1yL4i4.d.ts +335 -0
  66. package/dist/types-chunks/{shell-command-sets.d-C2cc9Hwi.d.ts → shell-command-sets.d-hkYPr4Dy.d.ts} +1 -1
  67. package/dist/types-chunks/{types.d-Dc3kwcjC.d.ts → types.d-Bdv2JoiC.d.ts} +12 -1
  68. package/dist/types-chunks/{types.d-DrtP1ceI.d.ts → types.d-CzrUifXB.d.ts} +1 -1
  69. package/dist/types-chunks/{types.d-BEMcUOng.d.ts → types.d-ssh6zRaf.d.ts} +5 -4
  70. package/dist/types-chunks/{utils.d-50Q24Few.d.ts → utils.d-Buv_Gxhi.d.ts} +3 -3
  71. package/package.json +1 -1
  72. package/dist/chunks/argument-completer-6ZTRBNZM.js +0 -2
  73. package/dist/chunks/chunk-A6GNPNGB.js +0 -383
  74. package/dist/chunks/chunk-BV3SVH36.js +0 -519
  75. package/dist/chunks/chunk-QFV6YCIH.js +0 -92
  76. package/dist/chunks/chunk-QKLS4BYA.js +0 -320
  77. package/dist/chunks/chunk-RJIYXB62.js +0 -415
  78. package/dist/chunks/compaction-config-2TVSYSB4.js +0 -2
  79. package/dist/chunks/dist-XC5M7UYX.js +0 -2
  80. package/dist/chunks/host-B3TK2U43.js +0 -2
  81. package/dist/chunks/run-manager-5AV3MR4W.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- var Dc=Object.defineProperty;var s=(e,t)=>Dc(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var Nc=(e,t)=>{for(var n in t)Dc(e,n,{get:t[n],enumerable:!0})};import nO from"path";function Lc(e){return nO.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var qc=p(()=>{"use strict";s(Lc,"resolveExecutionCwd")});var zc=p(()=>{"use strict"});var jt=p(()=>{"use strict"});var fn=p(()=>{"use strict"});import{AsyncLocalStorage as rO}from"node:async_hooks";function Sr(e){let t=iO.getStore()?.credential;return t?pn(e,t,new WeakMap):e}function pn(e,t,n){if(typeof e=="string")return e.split(t).join("[REDACTED_CREDENTIAL]");if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error){let o=new Error(pn(e.message,t,n));return n.set(e,o),o.name=e.name,e.stack!==void 0&&(o.stack=pn(e.stack,t,n)),o}if(Array.isArray(e)){let o=[];n.set(e,o);for(let a of e)o.push(pn(a,t,n));return o}let i={};n.set(e,i);for(let[o,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let c=o.split(t).join("[REDACTED_CREDENTIAL]");i[c]=pn(a.value,t,n)}return i}var iO,br=p(()=>{"use strict";iO=new rO;s(Sr,"redactScopedProviderCredential");s(pn,"redactCredentialValue")});var Wt=p(()=>{"use strict"});var wo=p(()=>{"use strict"});var Uc=p(()=>{"use strict"});var So=p(()=>{"use strict"});var wt=p(()=>{"use strict"});var Vc=p(()=>{"use strict"});var bo=p(()=>{"use strict"});import{AsyncLocalStorage as oO}from"node:async_hooks";var I_,mn=p(()=>{"use strict";I_=new oO});var hn,Kc,Pr,Yc,St=p(()=>{"use strict";hn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Kc={...hn,multimodalSupport:"image-input"},Pr={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},Yc={...Pr,multimodalSupport:"image-input"}});var On=p(()=>{"use strict";Wt();Vc();br();bo();wo();mn();St();wt()});import{parse as G_}from"partial-json";var xr=p(()=>{"use strict"});var gn=p(()=>{"use strict"});var Tr=p(()=>{"use strict"});var yn=p(()=>{"use strict"});var Po=p(()=>{"use strict"});var _r=p(()=>{"use strict";On();xr();gn();Wt();Tr();wt();yn();Po();mn()});var Qr=p(()=>{"use strict";On();Wt();xr();gn();Tr();wt();yn();Po();mn()});var CQ,AQ,XQ,MQ,ko=p(()=>{"use strict";CQ=Object.freeze({status:"terminated"}),AQ=Object.freeze({status:"already-exited"}),XQ=Object.freeze({status:"unknown"}),MQ=String.raw`
2
+ var Nc=Object.defineProperty;var s=(e,t)=>Nc(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var Lc=(e,t)=>{for(var n in t)Nc(e,n,{get:t[n],enumerable:!0})};import rO from"path";function qc(e){return rO.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var zc=p(()=>{"use strict";s(qc,"resolveExecutionCwd")});var Uc=p(()=>{"use strict"});var jt=p(()=>{"use strict"});var fn=p(()=>{"use strict"});import{AsyncLocalStorage as iO}from"node:async_hooks";function br(e){let t=oO.getStore()?.credential;return t?pn(e,t,new WeakMap):e}function pn(e,t,n){if(typeof e=="string")return e.split(t).join("[REDACTED_CREDENTIAL]");if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error){let o=new Error(pn(e.message,t,n));return n.set(e,o),o.name=e.name,e.stack!==void 0&&(o.stack=pn(e.stack,t,n)),o}if(Array.isArray(e)){let o=[];n.set(e,o);for(let a of e)o.push(pn(a,t,n));return o}let i={};n.set(e,i);for(let[o,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let c=o.split(t).join("[REDACTED_CREDENTIAL]");i[c]=pn(a.value,t,n)}return i}var oO,Pr=p(()=>{"use strict";oO=new iO;s(br,"redactScopedProviderCredential");s(pn,"redactCredentialValue")});var Wt=p(()=>{"use strict"});var So=p(()=>{"use strict"});var Vc=p(()=>{"use strict"});var bo=p(()=>{"use strict"});var wt=p(()=>{"use strict"});var Kc=p(()=>{"use strict"});var Po=p(()=>{"use strict"});import{AsyncLocalStorage as sO}from"node:async_hooks";var C_,mn=p(()=>{"use strict";C_=new sO});var hn,Yc,vr,Gc,St=p(()=>{"use strict";hn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Yc={...hn,multimodalSupport:"image-input"},vr={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},Gc={...vr,multimodalSupport:"image-input"}});var On=p(()=>{"use strict";Wt();Kc();Pr();Po();So();mn();St();wt()});import{parse as Z_}from"partial-json";var Tr=p(()=>{"use strict"});var gn=p(()=>{"use strict"});var Rr=p(()=>{"use strict"});var yn=p(()=>{"use strict"});var vo=p(()=>{"use strict"});var Qr=p(()=>{"use strict";On();Tr();gn();Wt();Rr();wt();yn();vo();mn()});var Er=p(()=>{"use strict";On();Wt();Tr();gn();Rr();wt();yn();vo();mn()});var XQ,MQ,jQ,WQ,xo=p(()=>{"use strict";XQ=Object.freeze({status:"terminated"}),MQ=Object.freeze({status:"already-exited"}),jQ=Object.freeze({status:"unknown"}),WQ=String.raw`
3
3
  using System;
4
4
  using System.Runtime.InteropServices;
5
5
  using System.Text;
@@ -86,11 +86,11 @@ public static class KodaXNativeProcessSnapshot {
86
86
  CloseHandle(snapshot);
87
87
  }
88
88
  }
89
- }`});var td=p(()=>{"use strict";ko()});var Er=p(()=>{"use strict";On();td();St();yn()});var xo=p(()=>{"use strict";ko()});var To=p(()=>{"use strict"});var nd=p(()=>{"use strict";xo();To()});var Ro=p(()=>{"use strict"});import rd from"node:fs";import id from"node:os";import od from"node:path";function sd(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let o=i.toLowerCase();t.has(o)||(t.add(o),n.push(i))}return n}function $O(){let e=od.join(id.homedir(),".codex","config.toml");try{return rd.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function CO(){let e=od.join(id.homedir(),".gemini","settings.json");try{let t=JSON.parse(rd.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}function Ft(){return $O()||_O}function Dt(){return CO()||QO}function wn(){return sd([Ft(),...EO])}function Sn(){return sd([Dt(),...IO])}var _O,QO,EO,IO,bn=p(()=>{"use strict";_O="gpt-5.4",QO="auto-gemini-3",EO=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],IO=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];s(sd,"dedupePreserveOrder");s($O,"readCodexConfiguredModel");s(CO,"readGeminiConfiguredModel");s(Ft,"getCodexCliDefaultModel");s(Dt,"getGeminiCliDefaultModel");s(wn,"getCodexCliKnownModels");s(Sn,"getGeminiCliKnownModels")});var yE,wE,ad=p(()=>{"use strict";Er();nd();Ro();bn();St();yE=Dt(),wE=Sn()});var cd=p(()=>{"use strict";xo();To()});var IE,$E,dd=p(()=>{"use strict";Er();cd();Ro();bn();IE=Ft(),$E=wn()});function Me(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bt(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}function Nt(e,t){if(e!==void 0)return bt(e,t)}function wd(e,t){if(e!==void 0){if(typeof e!="string"||!md.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${md.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Je(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}function B(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function gd(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>bt(n,`${t}[${r}]`))}}function XO(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=bt(i,`${t}.${r}`);return n}function MO(e,t){if(e!==void 0){if(typeof e!="string"||!pd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${pd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Qo(e,t){if(typeof e!="string"||!ld.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ld.join(", ")}, got ${JSON.stringify(e)}`);return e}function jO(e,t){if(typeof e!="string"||!ud.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ud.join(", ")}, got ${JSON.stringify(e)}`);return e}function WO(e,t){if(e!==void 0){if(typeof e!="string"||!fd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${fd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function yd(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=jO(e.effortStrategy,`${t}.effortStrategy`),r=MO(e.reasoningPreset,`${t}.reasoningPreset`),i=WO(e.thinkingStrategy,`${t}.thinkingStrategy`),o=Nt(e.defaultEffort,`${t}.defaultEffort`),a=XO(e.effortAliases,`${t}.effortAliases`),c=gd(e.disabledEfforts,`${t}.disabledEfforts`),d=gd(e.localRejectEfforts,`${t}.localRejectEfforts`),l=B(e.allowCustomEffort,`${t}.allowCustomEffort`),f=B(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=B(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=B(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=B(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),w=B(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),k=B(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),h=B(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),o!==void 0&&(y.defaultEffort=o),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((P,S)=>{if(!Me(P))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${S}] must be an object`);return{value:bt(P.value,`${t}.supportedEfforts[${S}].value`),...Nt(P.description,`${t}.supportedEfforts[${S}].description`)!==void 0?{description:Nt(P.description,`${t}.supportedEfforts[${S}].description`)}:{},...B(P.isDefault,`${t}.supportedEfforts[${S}].isDefault`)!==void 0?{isDefault:B(P.isDefault,`${t}.supportedEfforts[${S}].isDefault`)}:{},...B(P.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)!==void 0?{isUserVisible:B(P.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Me(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let P={};for(let[S,Q]of Object.entries(e.budgetByEffort))P[S]=Je(Q,`${t}.budgetByEffort.${S}`)??0;y.budgetByEffort=P}return l!==void 0&&(y.allowCustomEffort=l),f!==void 0&&(y.supportsReasoningEffort=f),u!==void 0&&(y.supportsReasoningSummary=u),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),g!==void 0&&(y.supportsAdaptiveThinking=g),w!==void 0&&(y.supportsManualThinkingBudget=w),k!==void 0&&(y.supportsDisabledThinking=k),h!==void 0&&(y.requiresEffortBetaHeader=h),y}function Sd(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?yd(n,`${t}.reasoningProfile`):yd(r,`${t}.reasoningCapabilityV2`)}function FO(e,t){if(typeof e!="string"||!hd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${hd.join(", ")}, got ${JSON.stringify(e)}`);return e}function DO(e,t){if(typeof e!="string"||!Od.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Od.join(", ")}, got ${JSON.stringify(e)}`);return e}function NO(e,t){if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=bt(e.id,`${t}.id`),r=Nt(e.wireModel,`${t}.wireModel`),i=Nt(e.displayName,`${t}.displayName`),o=Je(e.contextWindow,`${t}.contextWindow`),a=Je(e.maxOutputTokens,`${t}.maxOutputTokens`),c=wd(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=Je(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),l=B(e.replayReasoningContent,`${t}.replayReasoningContent`),f=B(e.strictThinkingSignature,`${t}.strictThinkingSignature`),u=Je(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:Qo(e.reasoningCapability,`${t}.reasoningCapability`),g=Sd(e,t),w={id:n};return r!==void 0&&(w.wireModel=r),i!==void 0&&(w.displayName=i),o!==void 0&&(w.contextWindow=o),a!==void 0&&(w.maxOutputTokens=a),c!==void 0&&(w.maxOutputTokensField=c),d!==void 0&&(w.thinkingBudgetCap=d),m!==void 0&&(w.reasoningCapability=m),g!==void 0&&(w.reasoningProfile=g),l!==void 0&&(w.replayReasoningContent=l),f!==void 0&&(w.strictThinkingSignature=f),u!==void 0&&(w.streamMaxDurationMs=u),w}function LO(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=Qo(i,`${t}.${r}`);return n}function qO(e,t){if(!Me(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=B(e.cliBridge,`providers.${t}.cliBridge`),r=bt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=Qo(e.reasoningCapability,`providers.${t}.reasoningCapability`),o=Sd(e,`providers.${t}`),a=FO(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=DO(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=Je(e.contextWindow,`providers.${t}.contextWindow`),l=Je(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=wd(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Je(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=B(e.supportsThinking,`providers.${t}.supportsThinking`),g=LO(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),w=Nt(e.model,`providers.${t}.model`);if(n&&(w!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&w===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let k;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);k=e.models.map((P,S)=>NO(P,`providers.${t}.models[${S}]`));let y=new Set([...w===void 0?[]:[w],...k.map(P=>P.id)]);for(let[P,S]of k.entries())if(S.wireModel!==void 0&&!y.has(S.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${P}].wireModel must reference a declared model, got ${JSON.stringify(S.wireModel)}`)}let h={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return o!==void 0&&(h.reasoningProfile=o),w!==void 0&&(h.model=w),k!==void 0&&(h.models=k),d!==void 0&&(h.contextWindow=d),l!==void 0&&(h.maxOutputTokens=l),f!==void 0&&(h.maxOutputTokensField=f),u!==void 0&&(h.thinkingBudgetCap=u),m!==void 0&&(h.supportsThinking=m),g!==void 0&&(h.modelReasoningCapabilities=g),n&&(h.cliBridge=!0),h}function bd(e){if(!Me(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=bt(e.updatedAt,"updatedAt");if(!Me(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=qO(i,r);return{version:1,updatedAt:t,providers:n}}var ld,ud,fd,pd,md,hd,Od,Pd=p(()=>{"use strict";ld=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],ud=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],fd=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],pd=["zai-glm-5.3","zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],md=["max_tokens","max_completion_tokens"],hd=["native","image-input-native","cli-bridge","image-input-cli-bridge"],Od=["count-tokens","models-list","minimal-message","unsupported"];s(Me,"isPlainObject");s(bt,"requireString");s(Nt,"optionalString");s(wd,"optionalMaxOutputTokensField");s(Je,"optionalNumber");s(B,"optionalBoolean");s(gd,"optionalStringArray");s(XO,"optionalStringMap");s(MO,"optionalReasoningPreset");s(Qo,"requireReasoningCapability");s(jO,"requireEffortStrategy");s(WO,"optionalThinkingStrategy");s(yd,"validateReasoningProfile");s(Sd,"validateReasoningProfileField");s(FO,"requireProfileName");s(DO,"requireVerifyStrategy");s(NO,"validateModelDescriptor");s(LO,"validateModelReasoningCapabilities");s(qO,"validateProviderEntry");s(bd,"validateProviderCapabilitiesJson")});import{existsSync as zO,readFileSync as UO}from"node:fs";import Lt from"node:path";import{fileURLToPath as VO}from"node:url";function YO(){if(process.env.KODAX_BUNDLED==="true")return Lt.join(Lt.dirname(process.execPath),"provider-capabilities.json");let e=Lt.dirname(VO(import.meta.url)),t=[Lt.join(e,"provider-capabilities.json"),Lt.join(Lt.dirname(e),"provider-capabilities.json")];for(let n of t)if(zO(n))return n;return t[0]}function GO(e){if(e.models){for(let t of e.models)t.reasoningProfile&&vd(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&vd(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function vd(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}function BO(e){if(e==="gemini-cli"){let t=Dt();return{model:t,models:Sn().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Ft();return{model:t,models:wn().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function ZO(e,t){let n=KO[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=BO(e),o={model:i.model,models:i.models,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(o.reasoningProfile=t.reasoningProfile),t.supportsThinking!==void 0&&(o.supportsThinking=t.supportsThinking),o}let r={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(r.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(r.models=t.models),t.modelReasoningCapabilities!==void 0&&(r.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(r.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(r.maxOutputTokens=t.maxOutputTokens),t.maxOutputTokensField!==void 0&&(r.maxOutputTokensField=t.maxOutputTokensField),t.thinkingBudgetCap!==void 0&&(r.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(r.supportsThinking=t.supportsThinking),r}function kd(){if(Ir)return Ir;let e=YO(),t;try{let i=UO(e,"utf8");t=JSON.parse(i)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${o}`)}let n=bd(t),r={};for(let[i,o]of Object.entries(n.providers))r[i]=GO(ZO(i,o));return Ir=Object.freeze(r),Ir}var KO,Ir,xd=p(()=>{"use strict";St();bn();Pd();KO=Object.freeze({native:hn,"image-input-native":Kc,"cli-bridge":Pr,"image-input-cli-bridge":Yc}),Ir=null;s(YO,"resolveJsonPath");s(GO,"deepFreezeSnapshot");s(vd,"freezeReasoningProfile");s(BO,"resolveCliBridgeModels");s(ZO,"buildSnapshot");s(kd,"getProviderSnapshots")});var $r,Td,Pn=p(()=>{"use strict";_r();Qr();ad();dd();Wt();br();St();xd();$r=kd(),Td=process.env.KODAX_PROVIDER??"zhipu-coding"});var Co=p(()=>{"use strict";_r();Qr();wt()});var Cr=p(()=>{"use strict";Co();Pn();St()});var jo=p(()=>{"use strict";Pn();Cr()});var Nd=p(()=>{"use strict";Pn();Cr();jo()});var Wo=p(()=>{"use strict";On();_r();Qr();Er();Pn();Co();Cr();jo();Nd();Tr()});var zd=p(()=>{"use strict";Wo();wt();So()});var Fo=p(()=>{"use strict"});var Do=p(()=>{"use strict";Fo()});var Ud=p(()=>{"use strict";Do();gn()});var vn=p(()=>{"use strict";br();Wt();wo();Uc();So();wt();zd();Wo();bn();xr();gn();mn();Fo();Do();Ud();bo();yn()});function L(e){let t=Sr(e),n=Qg.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Vd(t)}
90
- `)}catch{}}function Vd(e){let t=Sr(e),n=Eg(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function Eg(e){if(e===void 0)return"";if(e instanceof Error)return e.stack??e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}var Qg,ge=p(()=>{"use strict";vn();Qg=[];s(L,"emitKodaXDiagnostic");s(Vd,"formatKodaXDiagnostic");s(Eg,"formatDiagnosticDetail")});var Kd=p(()=>{"use strict"});var Yd=p(()=>{"use strict"});var Gd=p(()=>{"use strict"});function Ig(){Bd+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${Bd}-${e}`}var kn,Bd,No=p(()=>{"use strict";kn=class e{static{s(this,"SpanImpl")}id;traceId;parentId;name;data;startedAt;_endedAt;_error;_children=[];now;nextSpanId;onChildCreated;onSpanEnd;_ended=!1;constructor(t){this.id=t.id,this.traceId=t.traceId,this.parentId=t.parentId,this.name=t.name,this.data=t.data,this.now=t.now??(()=>Date.now()),this.startedAt=t.startedAt??this.now(),this.nextSpanId=t.nextSpanId??Ig,this.onChildCreated=t.onChildCreated,this.onSpanEnd=t.onSpanEnd}get endedAt(){return this._endedAt}get error(){return this._error}get children(){return this._children}addChild(t,n){let r=new e({id:this.nextSpanId(),traceId:this.traceId,parentId:this.id,name:t,data:n,now:this.now,nextSpanId:this.nextSpanId,onChildCreated:this.onChildCreated,onSpanEnd:this.onSpanEnd});return this._children.push(r),this.onChildCreated&&this.onChildCreated(r),r}setError(t){t instanceof Error?this._error={message:t.message,stack:t.stack}:this._error=t}end(){this._ended||(this._ended=!0,this._endedAt=this.now(),this.onSpanEnd&&this.onSpanEnd(this))}},Bd=0;s(Ig,"defaultNextSpanId")});function $g(){Zd+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${Zd}-${e}`}function Lo(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??$g)(),r=t(),i=e.name??"trace",o=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new kn({id:`${n}-root`,traceId:n,name:i,data:a,startedAt:r,now:t,nextSpanId:e.nextSpanId,onChildCreated:e.onSpanStart,onSpanEnd:e.onSpanEnd});e.onSpanStart&&e.onSpanStart(f);let u={id:n,startedAt:r,rootSpan:f,metadata:o,get endedAt(){return d},get error(){return l??f.error},end(){c||(c=!0,d=t(),f.end(),e.onTraceEnd&&e.onTraceEnd(u))}};return u}var Zd,qo=p(()=>{"use strict";No();Zd=0;s($g,"defaultNextTraceId");s(Lo,"createTrace")});function Uo(e){for(let t of zo)try{t.onSpanStart(e)}catch{}}function Vo(e){for(let t of zo)try{t.onSpanEnd(e)}catch{}}function Ko(e){for(let t of zo)try{t.onTraceEnd(e)}catch{}}var zo,Yo=p(()=>{"use strict";zo=[];s(Uo,"_emitSpanStart");s(Vo,"_emitSpanEnd");s(Ko,"_emitTraceEnd")});var Ar,Hd,Jd=p(()=>{"use strict";qo();Yo();Ar=class{static{s(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Lo({id:t.id,name:t.name,rootSpanData:t.rootSpanData,metadata:t.metadata,now:this.options.now,nextSpanId:this.options.nextSpanId,nextTraceId:this.options.nextTraceId,onSpanStart:Uo,onSpanEnd:Vo,onTraceEnd:Ko})}},Hd=new Ar});var el=p(()=>{"use strict"});var tl=p(()=>{"use strict"});var Go=p(()=>{"use strict";No();qo();Jd();Yo();el();tl()});var xn=p(()=>{"use strict"});var Xr=p(()=>{"use strict"});var Wg,L0,Bo=p(()=>{"use strict";ge();xn();Xr();Wg=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],L0=new Set(Wg)});var Zo=p(()=>{"use strict";xn();Xr()});var Ho=p(()=>{"use strict"});var Jo=p(()=>{"use strict"});var es=p(()=>{"use strict"});var ts=p(()=>{"use strict";Go();Bo();Zo();Ho();Jo();es();fn()});var il=p(()=>{"use strict"});var ol=p(()=>{"use strict"});var sl=p(()=>{"use strict"});var al=p(()=>{"use strict";xn();il();ol();sl()});import{homedir as oy}from"node:os";import{isAbsolute as RC,normalize as sy,resolve as ay,sep as cl}from"node:path";import{join as ll}from"node:path";function Pt(){if(dl)return dl;let e=process.env[dy];return e&&e.length>0?e:ll(oy(),cy)}function Z(...e){return ll(Pt(),...e)}function Tn(e,t){let n=s(a=>{let c=sy(ay(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),o=i.endsWith(cl)?i:`${i}${cl}`;return r===i||r.startsWith(o)}var cy,dy,dl,H=p(()=>{"use strict";cy=".kodax",dy="KODAX_HOME";s(Pt,"getAgentConfigHome");s(Z,"getAgentConfigPath");s(Tn,"isPathInsideDirectory")});var ul=p(()=>{"use strict";vn();H()});var ns=p(()=>{"use strict"});import{spawnSync as Rn}from"node:child_process";import{readFileSync as ly}from"node:fs";function ml(e,t){let n=!1;try{process.kill(-e,t),n=!0}catch{}try{process.kill(e,t),n=!0}catch{}return n}function rs(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function is(e){return rs(-e)||rs(e)}async function hl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!is(e))return!0;await new Promise(r=>setTimeout(r,50))}return!is(e)}function uy(e){let t=e.trim();if(!t)return[];try{let n=JSON.parse(t);return(Array.isArray(n)?n:[n]).flatMap(i=>{if(typeof i!="object"||i===null)return[];let o=i,a=Number(o.pid),c=Number(o.parentPid),d=typeof o.creationTime=="string"?o.creationTime:String(o.creationTime??"0");return!Number.isFinite(a)||a<=0||!Number.isFinite(c)?[]:[{pid:a,parentPid:c,creationTime:/^\d+$/.test(d)?d:"0"}]})}catch{return[]}}function fy(e){let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{6})([+-])(\d{3})$/.exec(e);if(!t)return;let[,n,r,i,o,a,c,d,l,f]=t,u=Date.UTC(Number(n),Number(r)-1,Number(i),Number(o),Number(a),Number(c),Number(d.slice(0,3))),m=Number(f)*6e4*(l==="+"?1:-1),g=u-m;if(Number.isFinite(g))return{identity:(BigInt(g)+11644473600000n).toString(),unixMs:g}}function py(){let e=["$cutoff = [DateTime]::UtcNow","$items = try { @(Get-CimInstance Win32_Process -ErrorAction Stop) } catch { @(Get-WmiObject Win32_Process -ErrorAction Stop) }","$rows = @($items | ForEach-Object {"," $creationTime = '0'"," try {"," $created = $_.CreationDate"," if ($created -isnot [DateTime]) { $created = [System.Management.ManagementDateTimeConverter]::ToDateTime([string]$created) }"," $created = $created.ToUniversalTime()"," if ($created -le $cutoff) { $creationTime = ([long][Math]::Floor($created.ToFileTimeUtc() / 10000)).ToString() }"," } catch {}"," [PSCustomObject]@{ pid = [int]$_.ProcessId; parentPid = [int]$_.ParentProcessId; creationTime = $creationTime }","})","$rows | ConvertTo-Json -Compress"].join(`
91
- `),t=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:_n,windowsHide:!0});if(!t.error&&t.status===0){let o=uy(t.stdout);if(o.length>0)return o}let n=Date.now(),r=Rn("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:_n,windowsHide:!0});if(r.error||r.status!==0)return;let i=r.stdout.split(/\r?\n\s*\r?\n/).flatMap(o=>{let a=new Map(o.split(/\r?\n/).flatMap(u=>{let m=u.indexOf("=");return m<0?[]:[[u.slice(0,m),u.slice(m+1)]]})),c=Number(a.get("ProcessId")),d=Number(a.get("ParentProcessId")),l=a.get("CreationDate"),f=l===void 0?void 0:fy(l);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)||f===void 0||f.unixMs>n?[]:[{pid:c,parentPid:d,creationTime:f.identity}]});return i.length>0?i:void 0}function my(){let e=["$source = @'",wl,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
- `),t=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:_n,windowsHide:!0});if(t.error||t.status!==0)return;let n=t.stdout.split(/\r?\n/).flatMap(r=>{let[i,o,a="0"]=r.split(",",3),c=Number(i),d=Number(o);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)?[]:[{pid:c,parentPid:d,creationTime:a}]});return n.length>0?n:void 0}function jr(){return my()??py()}function je(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=jr()?.find(i=>i.pid===e);return r?.creationTime==="0"?void 0:r?.creationTime}if(process.platform==="linux")try{let r=ly(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=Rn("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:_n,windowsHide:!0}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function hy(e,t,n){let r=new Map;for(let c of e)r.set(c.parentPid,[...r.get(c.parentPid)??[],c]);let i=[],o=[{pid:t,...n===void 0?{}:{creationTime:n},ancestryVerified:n!==void 0&&n!=="0"}],a=new Set([t]);for(;o.length>0;){let c=o.shift();if(c===void 0)break;for(let d of r.get(c.pid)??[]){if(a.has(d.pid)||!Oy(d.creationTime,c.creationTime))continue;a.add(d.pid);let l=c.ancestryVerified&&d.creationTime!=="0";i.push(l?d:{...d,creationTime:"0"}),o.push({pid:d.pid,creationTime:d.creationTime,ancestryVerified:l})}}return i}function Oy(e,t){if(e==="0"||t===void 0||t==="0")return!0;try{return BigInt(e)>=BigInt(t)}catch{return!1}}function gy(e,t=jr()){if(t===void 0)return;let n=new Set(t.filter(i=>i.creationTime==="0").map(i=>i.pid));if(e.some(i=>n.has(i.pid)))return;let r=new Set(t.filter(i=>i.creationTime!=="0").map(i=>`${i.pid}:${i.creationTime}`));return new Set(e.filter(i=>i.creationTime!=="0").filter(i=>r.has(`${i.pid}:${i.creationTime}`)).map(i=>i.pid))}function Ol(e){let t=jr();if(t===void 0)return;let n=gy([e.root,...e.descendants],t);if(n!==void 0){if(n.size>0)return!1;if(e.completeTree)return e.uncertainDescendantPids.every(r=>!t.some(i=>i.pid===r))?!0:void 0}}function yy(e){return[e.root.pid,...e.descendants.map(t=>t.pid),...e.uncertainDescendantPids].some(rs)}async function gl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!yy(e))return Ol(e)===!0;await new Promise(r=>setTimeout(r,50))}return Ol(e)===!0}function yl(e,t){let n=[...e].reverse().flatMap(o=>/^\d+$/.test(o.creationTime)?[`[KodaXNativeProcessSnapshot]::TerminateExact(${o.pid}, [UInt64]${o.creationTime}) | Out-Null`]:[]);if(n.length===0)return!1;let r=["$source = @'",wl,"'@","Add-Type -TypeDefinition $source",...n].join(`
93
- `),i=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",r],{encoding:"utf8",timeout:t,windowsHide:!0});return!i.error&&i.status===0}function wy(e,t){let n=jr();if(n===void 0)return;let r=n.find(o=>o.pid===e);if(r===void 0||r.creationTime==="0"||r.creationTime!==t)return null;let i=hy(n,e,r.creationTime);return{root:r,descendants:i.filter(o=>o.creationTime!=="0"),uncertainDescendantPids:i.filter(o=>o.creationTime==="0").map(o=>o.pid),completeTree:!0}}async function Sy(e,t,n){let r=[e.root,...e.descendants],i=yl(r,t);return e.completeTree?await gl(e,n)?Mr:i?(yl(r,t),await gl(e,n)?Mr:et):et:et}function by(e,t,n,r){let i=n?.find(o=>o.pid===e);if(!(i?.creationTime!==t||n===void 0))return{root:{...i,parentPid:0},descendants:n.filter(o=>o.pid!==e&&o.creationTime!=="0").map(o=>({...o,parentPid:0})),uncertainDescendantPids:n.filter(o=>o.pid!==e&&o.creationTime==="0").map(o=>o.pid),completeTree:r}}async function Wr(e,t={}){if(process.platform==="win32"){let r=t.taskkillMs??_n,i=t.forceMs??fl,o=t.expectedProcessStartIdentity;if(o===void 0)return et;let a=by(e,o,t.expectedProcessTreeIdentities,t.expectedProcessTreeComplete===!0),d=wy(e,o)??a;return d===void 0||d===null?et:Sy(d,r,i)}if(t.expectedProcessStartIdentity!==void 0)return is(e)?et:pl;let n=t.forceMs??fl;return ml(e,"SIGTERM")?await hl(e,n)?Mr:(ml(e,"SIGKILL"),await hl(e,n)?Mr:et):pl}var fl,_n,FC,DC,wl,Mr,pl,et,Qn=p(()=>{"use strict";fl=2e3,_n=5e3,FC=String.raw`
89
+ }`});var nd=p(()=>{"use strict";xo()});var Ir=p(()=>{"use strict";On();nd();St();yn()});var To=p(()=>{"use strict";xo()});var Ro=p(()=>{"use strict"});var rd=p(()=>{"use strict";To();Ro()});var _o=p(()=>{"use strict"});import id from"node:fs";import od from"node:os";import sd from"node:path";function ad(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let o=i.toLowerCase();t.has(o)||(t.add(o),n.push(i))}return n}function CO(){let e=sd.join(od.homedir(),".codex","config.toml");try{return id.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function AO(){let e=sd.join(od.homedir(),".gemini","settings.json");try{let t=JSON.parse(id.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}function Ft(){return CO()||QO}function Dt(){return AO()||EO}function wn(){return ad([Ft(),...IO])}function Sn(){return ad([Dt(),...$O])}var QO,EO,IO,$O,bn=p(()=>{"use strict";QO="gpt-5.4",EO="auto-gemini-3",IO=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],$O=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];s(ad,"dedupePreserveOrder");s(CO,"readCodexConfiguredModel");s(AO,"readGeminiConfiguredModel");s(Ft,"getCodexCliDefaultModel");s(Dt,"getGeminiCliDefaultModel");s(wn,"getCodexCliKnownModels");s(Sn,"getGeminiCliKnownModels")});var SE,bE,cd=p(()=>{"use strict";Ir();rd();_o();bn();St();SE=Dt(),bE=Sn()});var dd=p(()=>{"use strict";To();Ro()});var CE,AE,ld=p(()=>{"use strict";Ir();dd();_o();bn();CE=Ft(),AE=wn()});function Me(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bt(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}function Nt(e,t){if(e!==void 0)return bt(e,t)}function Sd(e,t){if(e!==void 0){if(typeof e!="string"||!hd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${hd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Je(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}function B(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function yd(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>bt(n,`${t}[${r}]`))}}function MO(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=bt(i,`${t}.${r}`);return n}function jO(e,t){if(e!==void 0){if(typeof e!="string"||!md.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${md.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Eo(e,t){if(typeof e!="string"||!ud.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ud.join(", ")}, got ${JSON.stringify(e)}`);return e}function WO(e,t){if(typeof e!="string"||!fd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${fd.join(", ")}, got ${JSON.stringify(e)}`);return e}function FO(e,t){if(e!==void 0){if(typeof e!="string"||!pd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${pd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function wd(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=WO(e.effortStrategy,`${t}.effortStrategy`),r=jO(e.reasoningPreset,`${t}.reasoningPreset`),i=FO(e.thinkingStrategy,`${t}.thinkingStrategy`),o=Nt(e.defaultEffort,`${t}.defaultEffort`),a=MO(e.effortAliases,`${t}.effortAliases`),c=yd(e.disabledEfforts,`${t}.disabledEfforts`),d=yd(e.localRejectEfforts,`${t}.localRejectEfforts`),l=B(e.allowCustomEffort,`${t}.allowCustomEffort`),f=B(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=B(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=B(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=B(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),w=B(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),k=B(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),h=B(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),o!==void 0&&(y.defaultEffort=o),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((P,S)=>{if(!Me(P))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${S}] must be an object`);return{value:bt(P.value,`${t}.supportedEfforts[${S}].value`),...Nt(P.description,`${t}.supportedEfforts[${S}].description`)!==void 0?{description:Nt(P.description,`${t}.supportedEfforts[${S}].description`)}:{},...B(P.isDefault,`${t}.supportedEfforts[${S}].isDefault`)!==void 0?{isDefault:B(P.isDefault,`${t}.supportedEfforts[${S}].isDefault`)}:{},...B(P.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)!==void 0?{isUserVisible:B(P.isUserVisible,`${t}.supportedEfforts[${S}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Me(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let P={};for(let[S,Q]of Object.entries(e.budgetByEffort))P[S]=Je(Q,`${t}.budgetByEffort.${S}`)??0;y.budgetByEffort=P}return l!==void 0&&(y.allowCustomEffort=l),f!==void 0&&(y.supportsReasoningEffort=f),u!==void 0&&(y.supportsReasoningSummary=u),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),g!==void 0&&(y.supportsAdaptiveThinking=g),w!==void 0&&(y.supportsManualThinkingBudget=w),k!==void 0&&(y.supportsDisabledThinking=k),h!==void 0&&(y.requiresEffortBetaHeader=h),y}function bd(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?wd(n,`${t}.reasoningProfile`):wd(r,`${t}.reasoningCapabilityV2`)}function DO(e,t){if(typeof e!="string"||!Od.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Od.join(", ")}, got ${JSON.stringify(e)}`);return e}function NO(e,t){if(typeof e!="string"||!gd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${gd.join(", ")}, got ${JSON.stringify(e)}`);return e}function LO(e,t){if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=bt(e.id,`${t}.id`),r=Nt(e.wireModel,`${t}.wireModel`),i=Nt(e.displayName,`${t}.displayName`),o=Je(e.contextWindow,`${t}.contextWindow`),a=Je(e.maxOutputTokens,`${t}.maxOutputTokens`),c=Sd(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=Je(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),l=B(e.replayReasoningContent,`${t}.replayReasoningContent`),f=B(e.strictThinkingSignature,`${t}.strictThinkingSignature`),u=Je(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:Eo(e.reasoningCapability,`${t}.reasoningCapability`),g=bd(e,t),w={id:n};return r!==void 0&&(w.wireModel=r),i!==void 0&&(w.displayName=i),o!==void 0&&(w.contextWindow=o),a!==void 0&&(w.maxOutputTokens=a),c!==void 0&&(w.maxOutputTokensField=c),d!==void 0&&(w.thinkingBudgetCap=d),m!==void 0&&(w.reasoningCapability=m),g!==void 0&&(w.reasoningProfile=g),l!==void 0&&(w.replayReasoningContent=l),f!==void 0&&(w.strictThinkingSignature=f),u!==void 0&&(w.streamMaxDurationMs=u),w}function qO(e,t){if(e===void 0)return;if(!Me(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=Eo(i,`${t}.${r}`);return n}function zO(e,t){if(!Me(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=B(e.cliBridge,`providers.${t}.cliBridge`),r=bt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=Eo(e.reasoningCapability,`providers.${t}.reasoningCapability`),o=bd(e,`providers.${t}`),a=DO(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=NO(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=Je(e.contextWindow,`providers.${t}.contextWindow`),l=Je(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=Sd(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Je(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=B(e.supportsThinking,`providers.${t}.supportsThinking`),g=qO(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),w=Nt(e.model,`providers.${t}.model`);if(n&&(w!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&w===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let k;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);k=e.models.map((P,S)=>LO(P,`providers.${t}.models[${S}]`));let y=new Set([...w===void 0?[]:[w],...k.map(P=>P.id)]);for(let[P,S]of k.entries())if(S.wireModel!==void 0&&!y.has(S.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${P}].wireModel must reference a declared model, got ${JSON.stringify(S.wireModel)}`)}let h={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return o!==void 0&&(h.reasoningProfile=o),w!==void 0&&(h.model=w),k!==void 0&&(h.models=k),d!==void 0&&(h.contextWindow=d),l!==void 0&&(h.maxOutputTokens=l),f!==void 0&&(h.maxOutputTokensField=f),u!==void 0&&(h.thinkingBudgetCap=u),m!==void 0&&(h.supportsThinking=m),g!==void 0&&(h.modelReasoningCapabilities=g),n&&(h.cliBridge=!0),h}function Pd(e){if(!Me(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=bt(e.updatedAt,"updatedAt");if(!Me(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=zO(i,r);return{version:1,updatedAt:t,providers:n}}var ud,fd,pd,md,hd,Od,gd,vd=p(()=>{"use strict";ud=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],fd=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],pd=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],md=["zai-glm-5.3","zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],hd=["max_tokens","max_completion_tokens"],Od=["native","image-input-native","cli-bridge","image-input-cli-bridge"],gd=["count-tokens","models-list","minimal-message","unsupported"];s(Me,"isPlainObject");s(bt,"requireString");s(Nt,"optionalString");s(Sd,"optionalMaxOutputTokensField");s(Je,"optionalNumber");s(B,"optionalBoolean");s(yd,"optionalStringArray");s(MO,"optionalStringMap");s(jO,"optionalReasoningPreset");s(Eo,"requireReasoningCapability");s(WO,"requireEffortStrategy");s(FO,"optionalThinkingStrategy");s(wd,"validateReasoningProfile");s(bd,"validateReasoningProfileField");s(DO,"requireProfileName");s(NO,"requireVerifyStrategy");s(LO,"validateModelDescriptor");s(qO,"validateModelReasoningCapabilities");s(zO,"validateProviderEntry");s(Pd,"validateProviderCapabilitiesJson")});import{existsSync as UO,readFileSync as VO}from"node:fs";import Lt from"node:path";import{fileURLToPath as KO}from"node:url";function GO(){if(process.env.KODAX_BUNDLED==="true")return Lt.join(Lt.dirname(process.execPath),"provider-capabilities.json");let e=Lt.dirname(KO(import.meta.url)),t=[Lt.join(e,"provider-capabilities.json"),Lt.join(Lt.dirname(e),"provider-capabilities.json")];for(let n of t)if(UO(n))return n;return t[0]}function BO(e){if(e.models){for(let t of e.models)t.reasoningProfile&&kd(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&kd(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function kd(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}function ZO(e){if(e==="gemini-cli"){let t=Dt();return{model:t,models:Sn().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Ft();return{model:t,models:wn().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function HO(e,t){let n=YO[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=ZO(e),o={model:i.model,models:i.models,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(o.reasoningProfile=t.reasoningProfile),t.supportsThinking!==void 0&&(o.supportsThinking=t.supportsThinking),o}let r={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(r.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(r.models=t.models),t.modelReasoningCapabilities!==void 0&&(r.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(r.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(r.maxOutputTokens=t.maxOutputTokens),t.maxOutputTokensField!==void 0&&(r.maxOutputTokensField=t.maxOutputTokensField),t.thinkingBudgetCap!==void 0&&(r.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(r.supportsThinking=t.supportsThinking),r}function xd(){if($r)return $r;let e=GO(),t;try{let i=VO(e,"utf8");t=JSON.parse(i)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${o}`)}let n=Pd(t),r={};for(let[i,o]of Object.entries(n.providers))r[i]=BO(HO(i,o));return $r=Object.freeze(r),$r}var YO,$r,Td=p(()=>{"use strict";St();bn();vd();YO=Object.freeze({native:hn,"image-input-native":Yc,"cli-bridge":vr,"image-input-cli-bridge":Gc}),$r=null;s(GO,"resolveJsonPath");s(BO,"deepFreezeSnapshot");s(kd,"freezeReasoningProfile");s(ZO,"resolveCliBridgeModels");s(HO,"buildSnapshot");s(xd,"getProviderSnapshots")});var Cr,Rd,Pn=p(()=>{"use strict";Qr();Er();cd();ld();Wt();Pr();St();Td();Cr=xd(),Rd=process.env.KODAX_PROVIDER??"zhipu-coding"});var Ao=p(()=>{"use strict";Qr();Er();wt()});var Ar=p(()=>{"use strict";Ao();Pn();St()});var Wo=p(()=>{"use strict";Pn();Ar()});var Ld=p(()=>{"use strict";Pn();Ar();Wo()});var Fo=p(()=>{"use strict";On();Qr();Er();Ir();Pn();Ao();Ar();Wo();Ld();Rr()});var Ud=p(()=>{"use strict";Fo();wt();bo()});var Do=p(()=>{"use strict"});var No=p(()=>{"use strict";Do()});var Vd=p(()=>{"use strict";No();gn()});var vn=p(()=>{"use strict";Pr();Wt();So();Vc();bo();wt();Ud();Fo();bn();Tr();gn();mn();Do();No();Vd();Po();yn()});function L(e){let t=br(e),n=Eg.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Kd(t)}
90
+ `)}catch{}}function Kd(e){let t=br(e),n=Ig(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function Ig(e){if(e===void 0)return"";if(e instanceof Error)return e.stack??e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}var Eg,ge=p(()=>{"use strict";vn();Eg=[];s(L,"emitKodaXDiagnostic");s(Kd,"formatKodaXDiagnostic");s(Ig,"formatDiagnosticDetail")});var Yd=p(()=>{"use strict"});var Gd=p(()=>{"use strict"});var Bd=p(()=>{"use strict"});function $g(){Zd+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${Zd}-${e}`}var kn,Zd,Lo=p(()=>{"use strict";kn=class e{static{s(this,"SpanImpl")}id;traceId;parentId;name;data;startedAt;_endedAt;_error;_children=[];now;nextSpanId;onChildCreated;onSpanEnd;_ended=!1;constructor(t){this.id=t.id,this.traceId=t.traceId,this.parentId=t.parentId,this.name=t.name,this.data=t.data,this.now=t.now??(()=>Date.now()),this.startedAt=t.startedAt??this.now(),this.nextSpanId=t.nextSpanId??$g,this.onChildCreated=t.onChildCreated,this.onSpanEnd=t.onSpanEnd}get endedAt(){return this._endedAt}get error(){return this._error}get children(){return this._children}addChild(t,n){let r=new e({id:this.nextSpanId(),traceId:this.traceId,parentId:this.id,name:t,data:n,now:this.now,nextSpanId:this.nextSpanId,onChildCreated:this.onChildCreated,onSpanEnd:this.onSpanEnd});return this._children.push(r),this.onChildCreated&&this.onChildCreated(r),r}setError(t){t instanceof Error?this._error={message:t.message,stack:t.stack}:this._error=t}end(){this._ended||(this._ended=!0,this._endedAt=this.now(),this.onSpanEnd&&this.onSpanEnd(this))}},Zd=0;s($g,"defaultNextSpanId")});function Cg(){Hd+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${Hd}-${e}`}function qo(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??Cg)(),r=t(),i=e.name??"trace",o=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new kn({id:`${n}-root`,traceId:n,name:i,data:a,startedAt:r,now:t,nextSpanId:e.nextSpanId,onChildCreated:e.onSpanStart,onSpanEnd:e.onSpanEnd});e.onSpanStart&&e.onSpanStart(f);let u={id:n,startedAt:r,rootSpan:f,metadata:o,get endedAt(){return d},get error(){return l??f.error},end(){c||(c=!0,d=t(),f.end(),e.onTraceEnd&&e.onTraceEnd(u))}};return u}var Hd,zo=p(()=>{"use strict";Lo();Hd=0;s(Cg,"defaultNextTraceId");s(qo,"createTrace")});function Vo(e){for(let t of Uo)try{t.onSpanStart(e)}catch{}}function Ko(e){for(let t of Uo)try{t.onSpanEnd(e)}catch{}}function Yo(e){for(let t of Uo)try{t.onTraceEnd(e)}catch{}}var Uo,Go=p(()=>{"use strict";Uo=[];s(Vo,"_emitSpanStart");s(Ko,"_emitSpanEnd");s(Yo,"_emitTraceEnd")});var Xr,Jd,el=p(()=>{"use strict";zo();Go();Xr=class{static{s(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return qo({id:t.id,name:t.name,rootSpanData:t.rootSpanData,metadata:t.metadata,now:this.options.now,nextSpanId:this.options.nextSpanId,nextTraceId:this.options.nextTraceId,onSpanStart:Vo,onSpanEnd:Ko,onTraceEnd:Yo})}},Jd=new Xr});var tl=p(()=>{"use strict"});var nl=p(()=>{"use strict"});var Bo=p(()=>{"use strict";Lo();zo();el();Go();tl();nl()});var xn=p(()=>{"use strict"});var Mr=p(()=>{"use strict"});var Fg,z0,Zo=p(()=>{"use strict";ge();xn();Mr();Fg=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],z0=new Set(Fg)});var Ho=p(()=>{"use strict";xn();Mr()});var Jo=p(()=>{"use strict"});var es=p(()=>{"use strict"});var ts=p(()=>{"use strict"});var ns=p(()=>{"use strict";Bo();Zo();Ho();Jo();es();ts();fn()});var ol=p(()=>{"use strict"});var sl=p(()=>{"use strict"});var al=p(()=>{"use strict"});var cl=p(()=>{"use strict";xn();ol();sl();al()});import{homedir as sy}from"node:os";import{isAbsolute as QC,normalize as ay,resolve as cy,sep as dl}from"node:path";import{join as ul}from"node:path";function Pt(){if(ll)return ll;let e=process.env[ly];return e&&e.length>0?e:ul(sy(),dy)}function Z(...e){return ul(Pt(),...e)}function Tn(e,t){let n=s(a=>{let c=ay(cy(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),o=i.endsWith(dl)?i:`${i}${dl}`;return r===i||r.startsWith(o)}var dy,ly,ll,H=p(()=>{"use strict";dy=".kodax",ly="KODAX_HOME";s(Pt,"getAgentConfigHome");s(Z,"getAgentConfigPath");s(Tn,"isPathInsideDirectory")});var fl=p(()=>{"use strict";vn();H()});var rs=p(()=>{"use strict"});import{spawnSync as Rn}from"node:child_process";import{readFileSync as uy}from"node:fs";function hl(e,t){let n=!1;try{process.kill(-e,t),n=!0}catch{}try{process.kill(e,t),n=!0}catch{}return n}function is(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function os(e){return is(-e)||is(e)}async function Ol(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!os(e))return!0;await new Promise(r=>setTimeout(r,50))}return!os(e)}function fy(e){let t=e.trim();if(!t)return[];try{let n=JSON.parse(t);return(Array.isArray(n)?n:[n]).flatMap(i=>{if(typeof i!="object"||i===null)return[];let o=i,a=Number(o.pid),c=Number(o.parentPid),d=typeof o.creationTime=="string"?o.creationTime:String(o.creationTime??"0");return!Number.isFinite(a)||a<=0||!Number.isFinite(c)?[]:[{pid:a,parentPid:c,creationTime:/^\d+$/.test(d)?d:"0"}]})}catch{return[]}}function py(e){let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{6})([+-])(\d{3})$/.exec(e);if(!t)return;let[,n,r,i,o,a,c,d,l,f]=t,u=Date.UTC(Number(n),Number(r)-1,Number(i),Number(o),Number(a),Number(c),Number(d.slice(0,3))),m=Number(f)*6e4*(l==="+"?1:-1),g=u-m;if(Number.isFinite(g))return{identity:(BigInt(g)+11644473600000n).toString(),unixMs:g}}function my(){let e=["$cutoff = [DateTime]::UtcNow","$items = try { @(Get-CimInstance Win32_Process -ErrorAction Stop) } catch { @(Get-WmiObject Win32_Process -ErrorAction Stop) }","$rows = @($items | ForEach-Object {"," $creationTime = '0'"," try {"," $created = $_.CreationDate"," if ($created -isnot [DateTime]) { $created = [System.Management.ManagementDateTimeConverter]::ToDateTime([string]$created) }"," $created = $created.ToUniversalTime()"," if ($created -le $cutoff) { $creationTime = ([long][Math]::Floor($created.ToFileTimeUtc() / 10000)).ToString() }"," } catch {}"," [PSCustomObject]@{ pid = [int]$_.ProcessId; parentPid = [int]$_.ParentProcessId; creationTime = $creationTime }","})","$rows | ConvertTo-Json -Compress"].join(`
91
+ `),t=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:_n,windowsHide:!0});if(!t.error&&t.status===0){let o=fy(t.stdout);if(o.length>0)return o}let n=Date.now(),r=Rn("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:_n,windowsHide:!0});if(r.error||r.status!==0)return;let i=r.stdout.split(/\r?\n\s*\r?\n/).flatMap(o=>{let a=new Map(o.split(/\r?\n/).flatMap(u=>{let m=u.indexOf("=");return m<0?[]:[[u.slice(0,m),u.slice(m+1)]]})),c=Number(a.get("ProcessId")),d=Number(a.get("ParentProcessId")),l=a.get("CreationDate"),f=l===void 0?void 0:py(l);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)||f===void 0||f.unixMs>n?[]:[{pid:c,parentPid:d,creationTime:f.identity}]});return i.length>0?i:void 0}function hy(){let e=["$source = @'",Sl,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
+ `),t=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:_n,windowsHide:!0});if(t.error||t.status!==0)return;let n=t.stdout.split(/\r?\n/).flatMap(r=>{let[i,o,a="0"]=r.split(",",3),c=Number(i),d=Number(o);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)?[]:[{pid:c,parentPid:d,creationTime:a}]});return n.length>0?n:void 0}function Wr(){return hy()??my()}function je(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=Wr()?.find(i=>i.pid===e);return r?.creationTime==="0"?void 0:r?.creationTime}if(process.platform==="linux")try{let r=uy(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=Rn("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:_n,windowsHide:!0}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function Oy(e,t,n){let r=new Map;for(let c of e)r.set(c.parentPid,[...r.get(c.parentPid)??[],c]);let i=[],o=[{pid:t,...n===void 0?{}:{creationTime:n},ancestryVerified:n!==void 0&&n!=="0"}],a=new Set([t]);for(;o.length>0;){let c=o.shift();if(c===void 0)break;for(let d of r.get(c.pid)??[]){if(a.has(d.pid)||!gy(d.creationTime,c.creationTime))continue;a.add(d.pid);let l=c.ancestryVerified&&d.creationTime!=="0";i.push(l?d:{...d,creationTime:"0"}),o.push({pid:d.pid,creationTime:d.creationTime,ancestryVerified:l})}}return i}function gy(e,t){if(e==="0"||t===void 0||t==="0")return!0;try{return BigInt(e)>=BigInt(t)}catch{return!1}}function yy(e,t=Wr()){if(t===void 0)return;let n=new Set(t.filter(i=>i.creationTime==="0").map(i=>i.pid));if(e.some(i=>n.has(i.pid)))return;let r=new Set(t.filter(i=>i.creationTime!=="0").map(i=>`${i.pid}:${i.creationTime}`));return new Set(e.filter(i=>i.creationTime!=="0").filter(i=>r.has(`${i.pid}:${i.creationTime}`)).map(i=>i.pid))}function gl(e){let t=Wr();if(t===void 0)return;let n=yy([e.root,...e.descendants],t);if(n!==void 0){if(n.size>0)return!1;if(e.completeTree)return e.uncertainDescendantPids.every(r=>!t.some(i=>i.pid===r))?!0:void 0}}function wy(e){return[e.root.pid,...e.descendants.map(t=>t.pid),...e.uncertainDescendantPids].some(is)}async function yl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!wy(e))return gl(e)===!0;await new Promise(r=>setTimeout(r,50))}return gl(e)===!0}function wl(e,t){let n=[...e].reverse().flatMap(o=>/^\d+$/.test(o.creationTime)?[`[KodaXNativeProcessSnapshot]::TerminateExact(${o.pid}, [UInt64]${o.creationTime}) | Out-Null`]:[]);if(n.length===0)return!1;let r=["$source = @'",Sl,"'@","Add-Type -TypeDefinition $source",...n].join(`
93
+ `),i=Rn("powershell.exe",["-NoProfile","-NonInteractive","-Command",r],{encoding:"utf8",timeout:t,windowsHide:!0});return!i.error&&i.status===0}function Sy(e,t){let n=Wr();if(n===void 0)return;let r=n.find(o=>o.pid===e);if(r===void 0||r.creationTime==="0"||r.creationTime!==t)return null;let i=Oy(n,e,r.creationTime);return{root:r,descendants:i.filter(o=>o.creationTime!=="0"),uncertainDescendantPids:i.filter(o=>o.creationTime==="0").map(o=>o.pid),completeTree:!0}}async function by(e,t,n){let r=[e.root,...e.descendants],i=wl(r,t);return e.completeTree?await yl(e,n)?jr:i?(wl(r,t),await yl(e,n)?jr:et):et:et}function Py(e,t,n,r){let i=n?.find(o=>o.pid===e);if(!(i?.creationTime!==t||n===void 0))return{root:{...i,parentPid:0},descendants:n.filter(o=>o.pid!==e&&o.creationTime!=="0").map(o=>({...o,parentPid:0})),uncertainDescendantPids:n.filter(o=>o.pid!==e&&o.creationTime==="0").map(o=>o.pid),completeTree:r}}async function Fr(e,t={}){if(process.platform==="win32"){let r=t.taskkillMs??_n,i=t.forceMs??pl,o=t.expectedProcessStartIdentity;if(o===void 0)return et;let a=Py(e,o,t.expectedProcessTreeIdentities,t.expectedProcessTreeComplete===!0),d=Sy(e,o)??a;return d===void 0||d===null?et:by(d,r,i)}if(t.expectedProcessStartIdentity!==void 0)return os(e)?et:ml;let n=t.forceMs??pl;return hl(e,"SIGTERM")?await Ol(e,n)?jr:(hl(e,"SIGKILL"),await Ol(e,n)?jr:et):ml}var pl,_n,NC,LC,Sl,jr,ml,et,Qn=p(()=>{"use strict";pl=2e3,_n=5e3,NC=String.raw`
94
94
  using System;
95
95
  using System.Runtime.InteropServices;
96
96
  public static class KodaXWindowsJobMembership {
@@ -157,7 +157,7 @@ public static class KodaXWindowsJobMembership {
157
157
  CloseHandle(job);
158
158
  }
159
159
  }
160
- }`,DC=String.raw`
160
+ }`,LC=String.raw`
161
161
  $ErrorActionPreference = 'Stop'
162
162
  $source = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($env:KODAX_INTERNAL_JOB_QUERY_SOURCE))
163
163
  Add-Type -TypeDefinition $source
@@ -165,7 +165,7 @@ if ([KodaXWindowsJobMembership]::IsCurrentProcessContained($env:KODAX_DAEMON_JOB
165
165
  [Console]::Out.Write('1')
166
166
  } else {
167
167
  [Console]::Out.Write('0')
168
- }`,wl=String.raw`
168
+ }`,Sl=String.raw`
169
169
  using System;
170
170
  using System.Runtime.InteropServices;
171
171
  using System.Text;
@@ -252,7 +252,7 @@ public static class KodaXNativeProcessSnapshot {
252
252
  CloseHandle(snapshot);
253
253
  }
254
254
  }
255
- }`,Mr=Object.freeze({status:"terminated"}),pl=Object.freeze({status:"already-exited"}),et=Object.freeze({status:"unknown"});s(ml,"signalPosixPidTree");s(rs,"signalTargetExists");s(is,"isPosixPidTreeAlive");s(hl,"waitForPosixPidTreeExit");s(uy,"parseWindowsProcessSnapshotJson");s(fy,"parseWmicCreationTime");s(py,"readWindowsProcessSnapshotFallback");s(my,"readWindowsProcessSnapshotNative");s(jr,"readWindowsProcessSnapshot");s(je,"readProcessStartIdentity");s(hy,"collectDescendantIdentities");s(Oy,"windowsCreationAtLeast");s(gy,"currentCapturedWindowsPids");s(Ol,"capturedWindowsProcessesGone");s(yy,"capturedWindowsPidMayBeAlive");s(gl,"waitForCapturedWindowsProcessesExit");s(yl,"terminateCapturedWindowsProcesses");s(wy,"captureWindowsProcessTree");s(Sy,"killCapturedWindowsTree");s(by,"retainedWindowsProcessTree");s(Wr,"killPidTree")});import{spawnSync as $n}from"node:child_process";import{lstatSync as Py,mkdirSync as vy,realpathSync as Sl,renameSync as ky,readdirSync as xy,readFileSync as _l,rmSync as Nr,writeFileSync as KC}from"node:fs";import ee from"node:path";function qr(){return Z("runtime","processes","children")}function Ry(){return Z("processes","children")}function _y(){let e=Ry(),t=ee.dirname(ee.dirname(e));try{let n=Sl.native(t),r=t;for(let i of["processes","children"]){r=ee.join(r,i);let o=Py(r);if(o.isSymbolicLink()||!o.isDirectory())throw new Error(`Legacy managed-child path is not a physical directory: ${r}`);let a=Sl.native(r),c=ee.relative(n,a);if(c===".."||c.startsWith(`..${ee.sep}`)||ee.isAbsolute(c))throw new Error(`Legacy managed-child path escapes Agent Home: ${r}`)}return e}catch(n){if(n.code==="ENOENT")return;L({source:"agent.managed-child-processes",level:"warn",message:"Ignored an unsafe legacy managed-child registry path.",detail:{directory:e,error:n}});return}}function Ql(e,t){return ee.join(qr(),`${e}.${t}.json`)}function En(e){let t=ee.join(qr(),".unresolved"),n=ee.join(t,ee.basename(e));try{return vy(t,{recursive:!0}),ky(e,n),!0}catch(r){return r.code==="ENOENT"?!0:(L({source:"agent.managed-child-processes",level:"warn",message:"Failed to isolate unresolved managed child recovery evidence.",detail:{filePath:e,target:n,error:r}}),!1)}}function bl(e,t){let n=Lr.get(e),r=Ql(e,t),i=Il(r);return i.status==="unsupported"||i.status==="current"&&i.record.registrationId!==t?!1:(Nr(r,{force:!0}),n?.record.registrationId===t&&Lr.delete(e),!0)}function In(e){try{return Nr(e,{force:!0}),!0}catch(t){return L({source:"agent.managed-child-processes",level:"warn",message:"Failed to retire a persisted managed child record.",detail:{filePath:e,error:t}}),!1}}function Fr(e){try{return process.kill(e,0),!0}catch{return!1}}function Qy(e){return ee.basename(e).toLowerCase()}function Pl(e,t){let n=t.toLowerCase(),r=e.toLowerCase();if(n.includes(r))return!0;let i=ee.basename(r);return i.length>3&&n.includes(i)}function Ey(e){return e.length>3&&!e.startsWith("-")}function vl(e,t){let n=t.toLowerCase();if(!Pl(e.command,n)&&!n.includes(Qy(e.command)))return!1;let r=e.args?.filter(Ey)??[];return r.length===0||r.some(i=>Pl(i,n))}function Iy(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((i,o)=>i===r[o])}function $y(e){if(e.ownerPid!==process.pid)return!1;let t=Lr.get(e.pid);return!t||t.child.exitCode!==null||t.child.signalCode!==null?!1:t.record.registeredAtMs===e.registeredAtMs&&t.record.registrationId===e.registrationId&&t.record.processStartIdentity===e.processStartIdentity&&t.record.kind===e.kind&&t.record.command===e.command&&Iy(t.record.args,e.args)&&t.record.cwd===e.cwd}function Cy(e){if(process.platform==="win32"){let r=El(e);if(r.status!=="found")return;let i=os(r.info.CreationDate);return i===void 0?void 0:`windows:${(BigInt(i)+11644473600000n).toString()}`}if(process.platform==="linux")try{let r=_l(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=$n("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:Cn}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function kl(e,t){if(!Fr(e.ownerPid))return"gone";if(e.ownerProcessStartIdentity===void 0)return"unknown";let n=t(e.ownerPid);return n===void 0?"unknown":n===e.ownerProcessStartIdentity?"alive":"gone"}function os(e){if(!e)return;let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{1,6})([+-]\d{3})/.exec(e);if(t){let[,i,o,a,c,d,l,f,u]=t;return Date.UTC(Number(i),Number(o)-1,Number(a),Number(c),Number(d),Number(l),Number(f.slice(0,3).padEnd(3,"0")))-Number(u)*6e4}let n=/\/Date\((\d+)\)\//.exec(e);if(n?.[1])return Number(n[1]);let r=Date.parse(e);return Number.isFinite(r)?r:void 0}function Ay(e){return e.replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function Xy(e){let t={};for(let n of e.split(/\r?\n/)){let r=n.trim(),i=r.indexOf("=");if(i<=0)continue;let o=r.slice(0,i),a=Ay(r.slice(i+1).trim());if(o==="ProcessId"){let c=Number(a);Number.isFinite(c)&&(t.ProcessId=c)}else o==="CreationDate"?t.CreationDate=a:o==="CommandLine"&&(t.CommandLine=a)}return t.ProcessId===void 0?void 0:t}function Dr(e){let t=$n("wmic",["process","where",`ProcessId=${e}`,"get","ProcessId,CreationDate,CommandLine","/format:list"],{encoding:"utf8",timeout:Cn,windowsHide:!0});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"unknown"};let n=Xy(t.stdout);return n?{status:"found",info:n}:{status:"missing"}}function El(e){let t=[`$p = Get-CimInstance Win32_Process -Filter "ProcessId = ${e}"`,"if ($null -eq $p) { exit 0 }","$p | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),n=$n("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:Cn,windowsHide:!0});if(n.error||n.status!==0)return Dr(e);if(!n.stdout.trim())return{status:"missing"};try{return{status:"found",info:JSON.parse(n.stdout)}}catch{return Dr(e)}}function My(e){let t=$n("ps",["-p",String(e),"-o","command="],{encoding:"utf8",timeout:Cn});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"missing"};let n=t.stdout.trim();return n?{status:"found",commandLine:n}:{status:"missing"}}function jy(e){if(process.platform==="win32"){let n=El(e.pid);if(n.status==="unknown")return;if(n.status==="missing")return!1;let r=n.info;if(!r?.CommandLine||!vl(e,r.CommandLine))return!1;let i=os(r.CreationDate);return i===void 0||e.processStartIdentity===void 0?void 0:(BigInt(i)+11644473600000n).toString()===e.processStartIdentity}let t=My(e.pid);if(t.status!=="unknown")return t.status==="missing"?!1:vl(e,t.commandLine)}function Il(e){try{let t=JSON.parse(_l(e,"utf8"));return Ny(t)?t.version!==Ty?Number.isSafeInteger(t.version)&&typeof t.version=="number"&&t.version>0?{status:"unsupported",record:{pid:t.pid,ownerPid:t.ownerPid,...typeof t.ownerProcessStartIdentity=="string"?{ownerProcessStartIdentity:t.ownerProcessStartIdentity}:{}}}:{status:"invalid"}:typeof t.registrationId!="string"||t.args!==void 0&&(!Array.isArray(t.args)||t.args.some(n=>typeof n!="string"))||t.cwd!==void 0&&typeof t.cwd!="string"||t.processStartIdentity!==void 0&&typeof t.processStartIdentity!="string"||t.ownerProcessStartIdentity!==void 0&&typeof t.ownerProcessStartIdentity!="string"||t.processTreeComplete!==void 0&&typeof t.processTreeComplete!="boolean"||t.processTreeIdentities!==void 0&&(!Array.isArray(t.processTreeIdentities)||t.processTreeIdentities.some(n=>typeof n!="object"||n===null||typeof n.pid!="number"||typeof n.creationTime!="string"))?{status:"invalid"}:{status:"current",record:t}:{status:"invalid"}}catch{return{status:"invalid"}}}function Wy(e){try{let t=JSON.parse(e);return(Array.isArray(t)?t:[t]).flatMap(r=>{if(typeof r!="object"||r===null)return[];let i=r;return typeof i.ProcessId!="number"?[]:[{ProcessId:i.ProcessId,...typeof i.CreationDate=="string"?{CreationDate:i.CreationDate}:{},...typeof i.CommandLine=="string"?{CommandLine:i.CommandLine}:{}}]})}catch{return}}function Fy(e){let t=[...new Set(e)];if(t.length===0)return new Map;let n=[`$ids = @(${t.join(",")})`,"$rows = @(Get-CimInstance Win32_Process | Where-Object { $ids -contains $_.ProcessId })","$rows | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),r=$n("powershell.exe",["-NoProfile","-NonInteractive","-Command",n],{encoding:"utf8",timeout:Cn,windowsHide:!0}),i=r.error||r.status!==0||!r.stdout.trim()?void 0:Wy(r.stdout);if(i===void 0)return new Map(t.map(a=>[a,Dr(a)]));let o=new Map(i.map(a=>[a.ProcessId,a]));return new Map(t.map(a=>[a,o.has(a)?{status:"found",info:o.get(a)}:{status:"missing"}]))}function Dy(e){return process.platform!=="win32"?new Map(e.map(t=>[t,Cy(t)])):new Map([...Fy(e)].map(([t,n])=>{if(n.status!=="found")return[t,void 0];let r=os(n.info.CreationDate);return[t,r===void 0?void 0:`windows:${(BigInt(r)+11644473600000n).toString()}`]}))}function Ny(e){return typeof e=="object"&&e!==null&&typeof e.pid=="number"&&typeof e.ownerPid=="number"&&typeof e.registeredAtMs=="number"&&typeof e.kind=="string"&&typeof e.command=="string"}async function ss(e={}){let t=0,n=0,r=0,i=0,o=0,a=[],c=[],d=s(h=>{r+=1,h===process.pid&&(i+=1)},"skip"),l=await Ly(e);t+=l.killed,n+=l.pruned,r+=l.skipped,i+=l.unresolved;let f=_y(),u=[{directory:qr(),current:!0},...f===void 0?[]:[{directory:f,current:!1}]];for(let h of u)try{a.push(...xy(h.directory).filter(y=>y.endsWith(".json")).map(y=>({file:y,filePath:ee.join(h.directory,y),current:h.current})))}catch(y){y.code!=="ENOENT"&&c.push(new Error(`Managed child registry is unreadable: ${h.directory}`,{cause:y}))}let m=a.filter(({current:h,file:y})=>!h||!l.processedFiles.has(y)).map(({filePath:h,current:y})=>({filePath:h,current:y,persisted:Il(h)})),g=m.flatMap(({persisted:h})=>h.status!=="invalid"&&Fr(h.record.ownerPid)?[h.record.ownerPid]:[]),w=Dy(g),k=s(h=>w.get(h),"readOwnerStartIdentity");for(let{filePath:h,current:y,persisted:P}of m){if(!y){if(P.status==="invalid"){In(h)?n+=1:d();continue}En(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="unsupported"){if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&P.record.ownerPid===process.pid){Nr(h,{force:!0}),n+=1;continue}kl(P.record,k)==="gone"&&!Fr(P.record.pid)&&En(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="invalid"){Nr(h,{force:!0}),n+=1;continue}let S=P.record;if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&S.ownerPid===process.pid){In(h)?n+=1:d(S.ownerPid);continue}if(!e.includeCurrentOwner&&S.ownerPid===process.pid){let b=k(process.pid);if(S.ownerProcessStartIdentity===void 0||b===void 0||S.ownerProcessStartIdentity===b){d(S.ownerPid);continue}}if(S.ownerPid!==process.pid&&kl(S,k)!=="gone"){d(S.ownerPid);continue}let Q=Fr(S.pid);if(!Q){if(process.platform!=="win32"){In(h)?n+=1:d(S.ownerPid);continue}let b=S.processTreeIdentities?.find(I=>I.pid===S.pid);if(S.processStartIdentity===void 0||b?.creationTime!==S.processStartIdentity){En(h)&&(o+=1),d(S.ownerPid);continue}}let x=Q?$y(S)?!0:jy(S):!0;if(x===void 0){d(S.ownerPid);continue}if(!x){if(process.platform!=="win32"){In(h)?n+=1:d(S.ownerPid);continue}let b=S.processTreeIdentities?.find(I=>I.pid===S.pid);if(S.processStartIdentity===void 0||b?.creationTime!==S.processStartIdentity){En(h)&&(o+=1),d(S.ownerPid);continue}}(await Wr(S.pid,{...S.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:S.processStartIdentity},...S.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:S.processTreeIdentities},expectedProcessTreeComplete:S.processTreeComplete===!0})).status!=="unknown"?In(h)?t+=1:d(S.ownerPid):(process.platform==="win32"&&(!Q||x===!1)&&En(h)&&(o+=1),d(S.ownerPid))}if(o>0&&L({source:"agent.managed-child-processes",level:"warn",message:`Isolated ${o} unresolved managed child record(s) from startup cleanup.`,detail:{quarantined:o,directory:ee.join(qr(),".unresolved")}}),e.requireCurrentOwnerCleanup===!0){let h=[];if(h.push(...c),i>0&&h.push(new Error(`Managed child cleanup could not verify ${i} current-owner process tree(s).`)),h.length===1)throw h[0];if(h.length>1)throw new AggregateError(h,"Managed child final cleanup failed because registry evidence is unreadable or unresolved.")}return{killed:t,pruned:n,skipped:r}}async function Ly(e){if(e.includeCurrentOwner!==!0)return{killed:0,pruned:0,skipped:0,unresolved:0,processedFiles:new Set};let t=0,n=0,r=0,i=0,o=new Set,a=[...Lr.values()].filter(({record:c})=>c.ownerPid===process.pid);for(let{record:c}of a){if(o.add(ee.basename(Ql(c.pid,c.registrationId))),process.platform==="win32"&&e.currentOwnerJobContained===!0){bl(c.pid,c.registrationId)?n+=1:(r+=1,i+=1);continue}try{(await Wr(c.pid,{...c.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:c.processStartIdentity},...c.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:c.processTreeIdentities},expectedProcessTreeComplete:c.processTreeComplete===!0})).status==="unknown"||!bl(c.pid,c.registrationId)?(r+=1,i+=1):t+=1}catch(d){L({source:"agent.managed-child-processes",level:"warn",message:"Failed to reclaim an active current-owner managed child.",detail:{pid:c.pid,error:d}}),r+=1,i+=1}}return{killed:t,pruned:n,skipped:r,unresolved:i,processedFiles:o}}var Ty,Cn,Lr,as=p(()=>{"use strict";ge();H();Qn();Ty=4,Cn=5e3,Lr=new Map;s(qr,"registryDir");s(Ry,"legacyRegistryDir");s(_y,"verifiedLegacyRegistryDir");s(Ql,"registryPath");s(En,"quarantineRecord");s(bl,"removeRecord");s(In,"removePersistedRecord");s(Fr,"isPidAlive");s(Qy,"commandNeedle");s(Pl,"tokenMatches");s(Ey,"significantArg");s(vl,"commandMatches");s(Iy,"argsMatch");s($y,"activeChildMatchesRecord");s(Cy,"processStartIdentity");s(kl,"managedOwnerState");s(os,"parseWindowsDate");s(Ay,"decodeWmicValue");s(Xy,"parseWmicListOutput");s(Dr,"getWindowsProcessInfoViaWmic");s(El,"getWindowsProcessInfo");s(My,"getPosixCommandLine");s(jy,"isConfirmedRecord");s(Il,"readRecord");s(Wy,"parseWindowsProcessInfoRows");s(Fy,"getWindowsProcessInfos");s(Dy,"processStartIdentities");s(Ny,"isManagedChildRecordBase");s(ss,"cleanupRegisteredManagedChildren");s(Ly,"cleanupActiveCurrentOwnerChildren")});var $l,qy,zy,eA,Cl=p(()=>{"use strict";$l="KODAX_EFFECT_JOB_PAYLOAD",qy=String.raw`
255
+ }`,jr=Object.freeze({status:"terminated"}),ml=Object.freeze({status:"already-exited"}),et=Object.freeze({status:"unknown"});s(hl,"signalPosixPidTree");s(is,"signalTargetExists");s(os,"isPosixPidTreeAlive");s(Ol,"waitForPosixPidTreeExit");s(fy,"parseWindowsProcessSnapshotJson");s(py,"parseWmicCreationTime");s(my,"readWindowsProcessSnapshotFallback");s(hy,"readWindowsProcessSnapshotNative");s(Wr,"readWindowsProcessSnapshot");s(je,"readProcessStartIdentity");s(Oy,"collectDescendantIdentities");s(gy,"windowsCreationAtLeast");s(yy,"currentCapturedWindowsPids");s(gl,"capturedWindowsProcessesGone");s(wy,"capturedWindowsPidMayBeAlive");s(yl,"waitForCapturedWindowsProcessesExit");s(wl,"terminateCapturedWindowsProcesses");s(Sy,"captureWindowsProcessTree");s(by,"killCapturedWindowsTree");s(Py,"retainedWindowsProcessTree");s(Fr,"killPidTree")});import{spawnSync as $n}from"node:child_process";import{lstatSync as vy,mkdirSync as ky,realpathSync as bl,renameSync as xy,readdirSync as Ty,readFileSync as Ql,rmSync as Lr,writeFileSync as GC}from"node:fs";import ee from"node:path";function zr(){return Z("runtime","processes","children")}function _y(){return Z("processes","children")}function Qy(){let e=_y(),t=ee.dirname(ee.dirname(e));try{let n=bl.native(t),r=t;for(let i of["processes","children"]){r=ee.join(r,i);let o=vy(r);if(o.isSymbolicLink()||!o.isDirectory())throw new Error(`Legacy managed-child path is not a physical directory: ${r}`);let a=bl.native(r),c=ee.relative(n,a);if(c===".."||c.startsWith(`..${ee.sep}`)||ee.isAbsolute(c))throw new Error(`Legacy managed-child path escapes Agent Home: ${r}`)}return e}catch(n){if(n.code==="ENOENT")return;L({source:"agent.managed-child-processes",level:"warn",message:"Ignored an unsafe legacy managed-child registry path.",detail:{directory:e,error:n}});return}}function El(e,t){return ee.join(zr(),`${e}.${t}.json`)}function En(e){let t=ee.join(zr(),".unresolved"),n=ee.join(t,ee.basename(e));try{return ky(t,{recursive:!0}),xy(e,n),!0}catch(r){return r.code==="ENOENT"?!0:(L({source:"agent.managed-child-processes",level:"warn",message:"Failed to isolate unresolved managed child recovery evidence.",detail:{filePath:e,target:n,error:r}}),!1)}}function Pl(e,t){let n=qr.get(e),r=El(e,t),i=$l(r);return i.status==="unsupported"||i.status==="current"&&i.record.registrationId!==t?!1:(Lr(r,{force:!0}),n?.record.registrationId===t&&qr.delete(e),!0)}function In(e){try{return Lr(e,{force:!0}),!0}catch(t){return L({source:"agent.managed-child-processes",level:"warn",message:"Failed to retire a persisted managed child record.",detail:{filePath:e,error:t}}),!1}}function Dr(e){try{return process.kill(e,0),!0}catch{return!1}}function Ey(e){return ee.basename(e).toLowerCase()}function vl(e,t){let n=t.toLowerCase(),r=e.toLowerCase();if(n.includes(r))return!0;let i=ee.basename(r);return i.length>3&&n.includes(i)}function Iy(e){return e.length>3&&!e.startsWith("-")}function kl(e,t){let n=t.toLowerCase();if(!vl(e.command,n)&&!n.includes(Ey(e.command)))return!1;let r=e.args?.filter(Iy)??[];return r.length===0||r.some(i=>vl(i,n))}function $y(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((i,o)=>i===r[o])}function Cy(e){if(e.ownerPid!==process.pid)return!1;let t=qr.get(e.pid);return!t||t.child.exitCode!==null||t.child.signalCode!==null?!1:t.record.registeredAtMs===e.registeredAtMs&&t.record.registrationId===e.registrationId&&t.record.processStartIdentity===e.processStartIdentity&&t.record.kind===e.kind&&t.record.command===e.command&&$y(t.record.args,e.args)&&t.record.cwd===e.cwd}function Ay(e){if(process.platform==="win32"){let r=Il(e);if(r.status!=="found")return;let i=ss(r.info.CreationDate);return i===void 0?void 0:`windows:${(BigInt(i)+11644473600000n).toString()}`}if(process.platform==="linux")try{let r=Ql(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=$n("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:Cn}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function xl(e,t){if(!Dr(e.ownerPid))return"gone";if(e.ownerProcessStartIdentity===void 0)return"unknown";let n=t(e.ownerPid);return n===void 0?"unknown":n===e.ownerProcessStartIdentity?"alive":"gone"}function ss(e){if(!e)return;let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{1,6})([+-]\d{3})/.exec(e);if(t){let[,i,o,a,c,d,l,f,u]=t;return Date.UTC(Number(i),Number(o)-1,Number(a),Number(c),Number(d),Number(l),Number(f.slice(0,3).padEnd(3,"0")))-Number(u)*6e4}let n=/\/Date\((\d+)\)\//.exec(e);if(n?.[1])return Number(n[1]);let r=Date.parse(e);return Number.isFinite(r)?r:void 0}function Xy(e){return e.replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function My(e){let t={};for(let n of e.split(/\r?\n/)){let r=n.trim(),i=r.indexOf("=");if(i<=0)continue;let o=r.slice(0,i),a=Xy(r.slice(i+1).trim());if(o==="ProcessId"){let c=Number(a);Number.isFinite(c)&&(t.ProcessId=c)}else o==="CreationDate"?t.CreationDate=a:o==="CommandLine"&&(t.CommandLine=a)}return t.ProcessId===void 0?void 0:t}function Nr(e){let t=$n("wmic",["process","where",`ProcessId=${e}`,"get","ProcessId,CreationDate,CommandLine","/format:list"],{encoding:"utf8",timeout:Cn,windowsHide:!0});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"unknown"};let n=My(t.stdout);return n?{status:"found",info:n}:{status:"missing"}}function Il(e){let t=[`$p = Get-CimInstance Win32_Process -Filter "ProcessId = ${e}"`,"if ($null -eq $p) { exit 0 }","$p | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),n=$n("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:Cn,windowsHide:!0});if(n.error||n.status!==0)return Nr(e);if(!n.stdout.trim())return{status:"missing"};try{return{status:"found",info:JSON.parse(n.stdout)}}catch{return Nr(e)}}function jy(e){let t=$n("ps",["-p",String(e),"-o","command="],{encoding:"utf8",timeout:Cn});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"missing"};let n=t.stdout.trim();return n?{status:"found",commandLine:n}:{status:"missing"}}function Wy(e){if(process.platform==="win32"){let n=Il(e.pid);if(n.status==="unknown")return;if(n.status==="missing")return!1;let r=n.info;if(!r?.CommandLine||!kl(e,r.CommandLine))return!1;let i=ss(r.CreationDate);return i===void 0||e.processStartIdentity===void 0?void 0:(BigInt(i)+11644473600000n).toString()===e.processStartIdentity}let t=jy(e.pid);if(t.status!=="unknown")return t.status==="missing"?!1:kl(e,t.commandLine)}function $l(e){try{let t=JSON.parse(Ql(e,"utf8"));return Ly(t)?t.version!==Ry?Number.isSafeInteger(t.version)&&typeof t.version=="number"&&t.version>0?{status:"unsupported",record:{pid:t.pid,ownerPid:t.ownerPid,...typeof t.ownerProcessStartIdentity=="string"?{ownerProcessStartIdentity:t.ownerProcessStartIdentity}:{}}}:{status:"invalid"}:typeof t.registrationId!="string"||t.args!==void 0&&(!Array.isArray(t.args)||t.args.some(n=>typeof n!="string"))||t.cwd!==void 0&&typeof t.cwd!="string"||t.processStartIdentity!==void 0&&typeof t.processStartIdentity!="string"||t.ownerProcessStartIdentity!==void 0&&typeof t.ownerProcessStartIdentity!="string"||t.processTreeComplete!==void 0&&typeof t.processTreeComplete!="boolean"||t.processTreeIdentities!==void 0&&(!Array.isArray(t.processTreeIdentities)||t.processTreeIdentities.some(n=>typeof n!="object"||n===null||typeof n.pid!="number"||typeof n.creationTime!="string"))?{status:"invalid"}:{status:"current",record:t}:{status:"invalid"}}catch{return{status:"invalid"}}}function Fy(e){try{let t=JSON.parse(e);return(Array.isArray(t)?t:[t]).flatMap(r=>{if(typeof r!="object"||r===null)return[];let i=r;return typeof i.ProcessId!="number"?[]:[{ProcessId:i.ProcessId,...typeof i.CreationDate=="string"?{CreationDate:i.CreationDate}:{},...typeof i.CommandLine=="string"?{CommandLine:i.CommandLine}:{}}]})}catch{return}}function Dy(e){let t=[...new Set(e)];if(t.length===0)return new Map;let n=[`$ids = @(${t.join(",")})`,"$rows = @(Get-CimInstance Win32_Process | Where-Object { $ids -contains $_.ProcessId })","$rows | Select-Object ProcessId,CreationDate,CommandLine | ConvertTo-Json -Compress"].join("; "),r=$n("powershell.exe",["-NoProfile","-NonInteractive","-Command",n],{encoding:"utf8",timeout:Cn,windowsHide:!0}),i=r.error||r.status!==0||!r.stdout.trim()?void 0:Fy(r.stdout);if(i===void 0)return new Map(t.map(a=>[a,Nr(a)]));let o=new Map(i.map(a=>[a.ProcessId,a]));return new Map(t.map(a=>[a,o.has(a)?{status:"found",info:o.get(a)}:{status:"missing"}]))}function Ny(e){return process.platform!=="win32"?new Map(e.map(t=>[t,Ay(t)])):new Map([...Dy(e)].map(([t,n])=>{if(n.status!=="found")return[t,void 0];let r=ss(n.info.CreationDate);return[t,r===void 0?void 0:`windows:${(BigInt(r)+11644473600000n).toString()}`]}))}function Ly(e){return typeof e=="object"&&e!==null&&typeof e.pid=="number"&&typeof e.ownerPid=="number"&&typeof e.registeredAtMs=="number"&&typeof e.kind=="string"&&typeof e.command=="string"}async function as(e={}){let t=0,n=0,r=0,i=0,o=0,a=[],c=[],d=s(h=>{r+=1,h===process.pid&&(i+=1)},"skip"),l=await qy(e);t+=l.killed,n+=l.pruned,r+=l.skipped,i+=l.unresolved;let f=Qy(),u=[{directory:zr(),current:!0},...f===void 0?[]:[{directory:f,current:!1}]];for(let h of u)try{a.push(...Ty(h.directory).filter(y=>y.endsWith(".json")).map(y=>({file:y,filePath:ee.join(h.directory,y),current:h.current})))}catch(y){y.code!=="ENOENT"&&c.push(new Error(`Managed child registry is unreadable: ${h.directory}`,{cause:y}))}let m=a.filter(({current:h,file:y})=>!h||!l.processedFiles.has(y)).map(({filePath:h,current:y})=>({filePath:h,current:y,persisted:$l(h)})),g=m.flatMap(({persisted:h})=>h.status!=="invalid"&&Dr(h.record.ownerPid)?[h.record.ownerPid]:[]),w=Ny(g),k=s(h=>w.get(h),"readOwnerStartIdentity");for(let{filePath:h,current:y,persisted:P}of m){if(!y){if(P.status==="invalid"){In(h)?n+=1:d();continue}En(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="unsupported"){if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&P.record.ownerPid===process.pid){Lr(h,{force:!0}),n+=1;continue}xl(P.record,k)==="gone"&&!Dr(P.record.pid)&&En(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="invalid"){Lr(h,{force:!0}),n+=1;continue}let S=P.record;if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&S.ownerPid===process.pid){In(h)?n+=1:d(S.ownerPid);continue}if(!e.includeCurrentOwner&&S.ownerPid===process.pid){let b=k(process.pid);if(S.ownerProcessStartIdentity===void 0||b===void 0||S.ownerProcessStartIdentity===b){d(S.ownerPid);continue}}if(S.ownerPid!==process.pid&&xl(S,k)!=="gone"){d(S.ownerPid);continue}let Q=Dr(S.pid);if(!Q){if(process.platform!=="win32"){In(h)?n+=1:d(S.ownerPid);continue}let b=S.processTreeIdentities?.find(I=>I.pid===S.pid);if(S.processStartIdentity===void 0||b?.creationTime!==S.processStartIdentity){En(h)&&(o+=1),d(S.ownerPid);continue}}let x=Q?Cy(S)?!0:Wy(S):!0;if(x===void 0){d(S.ownerPid);continue}if(!x){if(process.platform!=="win32"){In(h)?n+=1:d(S.ownerPid);continue}let b=S.processTreeIdentities?.find(I=>I.pid===S.pid);if(S.processStartIdentity===void 0||b?.creationTime!==S.processStartIdentity){En(h)&&(o+=1),d(S.ownerPid);continue}}(await Fr(S.pid,{...S.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:S.processStartIdentity},...S.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:S.processTreeIdentities},expectedProcessTreeComplete:S.processTreeComplete===!0})).status!=="unknown"?In(h)?t+=1:d(S.ownerPid):(process.platform==="win32"&&(!Q||x===!1)&&En(h)&&(o+=1),d(S.ownerPid))}if(o>0&&L({source:"agent.managed-child-processes",level:"warn",message:`Isolated ${o} unresolved managed child record(s) from startup cleanup.`,detail:{quarantined:o,directory:ee.join(zr(),".unresolved")}}),e.requireCurrentOwnerCleanup===!0){let h=[];if(h.push(...c),i>0&&h.push(new Error(`Managed child cleanup could not verify ${i} current-owner process tree(s).`)),h.length===1)throw h[0];if(h.length>1)throw new AggregateError(h,"Managed child final cleanup failed because registry evidence is unreadable or unresolved.")}return{killed:t,pruned:n,skipped:r}}async function qy(e){if(e.includeCurrentOwner!==!0)return{killed:0,pruned:0,skipped:0,unresolved:0,processedFiles:new Set};let t=0,n=0,r=0,i=0,o=new Set,a=[...qr.values()].filter(({record:c})=>c.ownerPid===process.pid);for(let{record:c}of a){if(o.add(ee.basename(El(c.pid,c.registrationId))),process.platform==="win32"&&e.currentOwnerJobContained===!0){Pl(c.pid,c.registrationId)?n+=1:(r+=1,i+=1);continue}try{(await Fr(c.pid,{...c.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:c.processStartIdentity},...c.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:c.processTreeIdentities},expectedProcessTreeComplete:c.processTreeComplete===!0})).status==="unknown"||!Pl(c.pid,c.registrationId)?(r+=1,i+=1):t+=1}catch(d){L({source:"agent.managed-child-processes",level:"warn",message:"Failed to reclaim an active current-owner managed child.",detail:{pid:c.pid,error:d}}),r+=1,i+=1}}return{killed:t,pruned:n,skipped:r,unresolved:i,processedFiles:o}}var Ry,Cn,qr,cs=p(()=>{"use strict";ge();H();Qn();Ry=4,Cn=5e3,qr=new Map;s(zr,"registryDir");s(_y,"legacyRegistryDir");s(Qy,"verifiedLegacyRegistryDir");s(El,"registryPath");s(En,"quarantineRecord");s(Pl,"removeRecord");s(In,"removePersistedRecord");s(Dr,"isPidAlive");s(Ey,"commandNeedle");s(vl,"tokenMatches");s(Iy,"significantArg");s(kl,"commandMatches");s($y,"argsMatch");s(Cy,"activeChildMatchesRecord");s(Ay,"processStartIdentity");s(xl,"managedOwnerState");s(ss,"parseWindowsDate");s(Xy,"decodeWmicValue");s(My,"parseWmicListOutput");s(Nr,"getWindowsProcessInfoViaWmic");s(Il,"getWindowsProcessInfo");s(jy,"getPosixCommandLine");s(Wy,"isConfirmedRecord");s($l,"readRecord");s(Fy,"parseWindowsProcessInfoRows");s(Dy,"getWindowsProcessInfos");s(Ny,"processStartIdentities");s(Ly,"isManagedChildRecordBase");s(as,"cleanupRegisteredManagedChildren");s(qy,"cleanupActiveCurrentOwnerChildren")});var Cl,zy,Uy,nA,Al=p(()=>{"use strict";Cl="KODAX_EFFECT_JOB_PAYLOAD",zy=String.raw`
256
256
  using System;
257
257
  using System.IO;
258
258
  using System.Runtime.InteropServices;
@@ -412,14 +412,14 @@ public static class KodaXEffectJob {
412
412
  CloseHandle(job);
413
413
  }
414
414
  }
415
- }`,zy=String.raw`
415
+ }`,Uy=String.raw`
416
416
  $ErrorActionPreference = 'Stop'
417
417
  try {
418
418
  $payload = [Text.Encoding]::UTF8.GetString(
419
- [Convert]::FromBase64String($env:${$l})) | ConvertFrom-Json
420
- Remove-Item Env:${$l} -ErrorAction SilentlyContinue
419
+ [Convert]::FromBase64String($env:${Cl})) | ConvertFrom-Json
420
+ Remove-Item Env:${Cl} -ErrorAction SilentlyContinue
421
421
  $source = @'
422
- ${qy}
422
+ ${zy}
423
423
  '@
424
424
  Add-Type -TypeDefinition $source
425
425
  [KodaXEffectJob]::Run(
@@ -431,32 +431,33 @@ ${qy}
431
431
  [Console]::Out.WriteLine('ERROR:' + $_.Exception.Message)
432
432
  [Console]::Out.Flush()
433
433
  exit 1
434
- }`,eA=Buffer.from(zy,"utf16le").toString("base64")});var Al=p(()=>{"use strict"});var cs=p(()=>{"use strict"});var Xl=p(()=>{"use strict"});var Ml=p(()=>{"use strict";cs()});var ls=p(()=>{"use strict";cs();Xl();Ml()});var qt=p(()=>{"use strict"});var Fl=p(()=>{"use strict";qt()});var Jy,fs=p(()=>{"use strict";qt();Jy=Math.floor(3.75*1024*1024)});var Dl=p(()=>{"use strict";qt();fs()});var tw,Nl=p(()=>{"use strict";tw=1440*60*1e3});var ps=p(()=>{"use strict";vn()});var ms=p(()=>{"use strict";qt();ps()});var Ll=p(()=>{"use strict";ls();ms()});var ql=p(()=>{"use strict";qt();Fl();fs();Dl();Nl();ps();ms();Ll()});var An=p(()=>{"use strict"});var Kl=p(()=>{"use strict";ts();An();An();An()});var Yl=p(()=>{"use strict"});var Gl=p(()=>{"use strict";An();Kl();Yl()});var hs=p(()=>{"use strict";H()});var Os=p(()=>{"use strict";H()});var Bl=p(()=>{"use strict"});var gs=p(()=>{"use strict"});var Zl=p(()=>{"use strict";gs();Os();hs()});var Hl=p(()=>{"use strict";ge()});var Jl=p(()=>{"use strict"});var ys=p(()=>{"use strict";Hl();Jl()});var zr=p(()=>{"use strict"});var eu=p(()=>{"use strict"});var Ur=p(()=>{"use strict";H();zr();zr()});var nu=p(()=>{"use strict"});var ru=p(()=>{"use strict"});var Vr=p(()=>{"use strict";zr();eu();Ur();nu();ru()});var au=p(()=>{"use strict"});var Ss=p(()=>{"use strict"});import{fileURLToPath as _w}from"url";import{dirname as Qw}from"path";var Ew,xM,bs=p(()=>{"use strict";Ss();Ew=_w(import.meta.url),xM=Qw(Ew)});import cu from"yaml";function $w(e){let t=e.split(`
434
+ }`,nA=Buffer.from(Uy,"utf16le").toString("base64")});var Xl=p(()=>{"use strict"});var ds=p(()=>{"use strict"});var Ml=p(()=>{"use strict"});var jl=p(()=>{"use strict";ds()});var An=p(()=>{"use strict";ds();Ml();jl()});var qt=p(()=>{"use strict"});var Dl=p(()=>{"use strict";qt()});var ew,ps=p(()=>{"use strict";qt();ew=Math.floor(3.75*1024*1024)});var Nl=p(()=>{"use strict";qt();ps()});var nw,Ll=p(()=>{"use strict";nw=1440*60*1e3});var ms=p(()=>{"use strict";vn()});var hs=p(()=>{"use strict";qt();ms()});var ql=p(()=>{"use strict";An();hs()});var zl=p(()=>{"use strict";qt();Dl();ps();Nl();Ll();ms();hs();ql()});var Xn=p(()=>{"use strict";An()});var Yl=p(()=>{"use strict";ns();An();Xn();Xn();Xn()});var Gl=p(()=>{"use strict"});var Bl=p(()=>{"use strict";Xn();Yl();Gl()});var Os=p(()=>{"use strict";H()});var gs=p(()=>{"use strict";H()});var Zl=p(()=>{"use strict"});var ys=p(()=>{"use strict"});var Hl=p(()=>{"use strict";ys();gs();Os()});var Jl=p(()=>{"use strict";ge()});var eu=p(()=>{"use strict"});var ws=p(()=>{"use strict";Jl();eu()});var Ur=p(()=>{"use strict"});var tu=p(()=>{"use strict"});var Vr=p(()=>{"use strict";H();Ur();Ur()});var ru=p(()=>{"use strict"});var iu=p(()=>{"use strict"});var Kr=p(()=>{"use strict";Ur();tu();Vr();ru();iu()});var cu=p(()=>{"use strict"});var bs=p(()=>{"use strict"});import{fileURLToPath as Qw}from"url";import{dirname as Ew}from"path";var Iw,QM,Ps=p(()=>{"use strict";bs();Iw=Qw(import.meta.url),QM=Ew(Iw)});import du from"yaml";function Cw(e){let t=e.split(`
435
435
  `),n=[];for(let r of t){let i=r.indexOf(":");if(i>0){let o=r.slice(0,i).trim(),a=r.slice(i+1).trim();if(a.includes(":")&&!a.startsWith('"')&&!a.startsWith("'")&&!a.startsWith("[")&&!a.startsWith("|")&&!a.startsWith(">")){n.push(`${o}: |-`),n.push(` ${a}`);continue}}n.push(r)}return n.join(`
436
- `)}function du(e,t={}){let n=e.replace(/^/,"").replace(/\r\n/g,`
436
+ `)}function lu(e,t={}){let n=e.replace(/^/,"").replace(/\r\n/g,`
437
437
  `).replace(/\r/g,`
438
438
  `).trimStart();if(!n.startsWith(`---
439
439
  `)){if(t.throwOnMissing)throw new Error("Invalid markdown: missing YAML frontmatter");return[null,e]}let r=n.indexOf(`
440
440
  ---
441
441
  `,4);if(r===-1){let c=n.indexOf(`
442
- ---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),o=n.slice(r+5).trim(),a;try{a=cu.parse(i)??{}}catch{a=cu.parse($w(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(t.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,o]}return[a,o]}function lu(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.map(n=>String(n).trim()).filter(n=>n.length>0);return t.length>0?t.join(", "):void 0}}function Cw(e){if(typeof e=="string"){let t=e.trim();return t?{command:t}:void 0}if(e&&typeof e=="object"&&!Array.isArray(e)){let t=e,n=typeof t.command=="string"?t.command.trim():"";if(!n)return;let r=typeof t.matcher=="string"&&t.matcher.trim()?t.matcher.trim():void 0;return{command:n,matcher:r}}}function Aw(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>Cw(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function uu(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of Iw){let i=Aw(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var Iw,fu=p(()=>{"use strict";Iw=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];s($w,"sanitizeYaml");s(du,"parseYamlFrontmatter");s(lu,"normalizeAllowedToolsString");s(Cw,"normalizeYamlHookEntry");s(Aw,"normalizeYamlHookEntryList");s(uu,"normalizeYamlHookMap")});import{readFile as Xw,readdir as Mw}from"fs/promises";import{join as vt,relative as jw}from"path";function pu(e){let[t,n]=du(e,{throwOnMissing:!0});if(!t)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!t.name||typeof t.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!t.description||typeof t.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:t.name,description:t.description,disableModelInvocation:t["disable-model-invocation"]===!0,userInvocable:t["user-invocable"]!==!1,allowedTools:lu(t["allowed-tools"]),context:t.context==="fork"?"fork":void 0,agent:typeof t.agent=="string"?t.agent:void 0,argumentHint:typeof t["argument-hint"]=="string"?t["argument-hint"]:void 0,model:typeof t.model=="string"?t.model:void 0,hooks:uu(t.hooks),license:typeof t.license=="string"?t.license:void 0,compatibility:typeof t.compatibility=="string"?t.compatibility:void 0,metadata:t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:void 0},body:n}}async function Kr(e,t){let n=vt(e,"SKILL.md");try{let r=await Xw(n,"utf-8"),{frontmatter:i,body:o}=pu(r),[a,c,d,l,f]=await Promise.all([zt(vt(e,"scripts")),zt(vt(e,"references")),zt(vt(e,"assets")),zt(vt(e,"templates")),zt(vt(e,"resources"))]);return{...i,path:e,skillFilePath:n,content:o,rawContent:o,loaded:!0,source:t,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...l.length>0&&{templates:l},...f.length>0&&{resources:f}}}catch(r){return L({source:"agent:skills",level:"error",message:`Failed to load skill from ${e}.`,detail:r}),null}}async function zt(e,t=e){let n=[];try{let r=await Mw(e,{withFileTypes:!0});r.sort((i,o)=>i.name.localeCompare(o.name));for(let i of r){let o=vt(e,i.name);if(i.isDirectory()){n.push(...await zt(o,t));continue}i.isFile()&&n.push({name:i.name,path:o,relativePath:jw(t,o).replace(/\\/g,"/")})}}catch{}return n}var Xn=p(()=>{"use strict";ge();fu();s(pu,"parseSkillMarkdown");s(Kr,"loadFullSkill");s(zt,"loadSkillFiles")});var Ps=p(()=>{"use strict"});var vs=p(()=>{"use strict"});var mu,hu,Yr=p(()=>{"use strict";mu=64*1024,hu=256*1024});import{randomUUID as Ww}from"node:crypto";import{mkdir as wu,open as Su,readFile as tt,readdir as Ts,rm as Fw,stat as Zr,utimes as Dw,writeFile as bu}from"node:fs/promises";import{dirname as Nw,join as ks}from"node:path";function zw(){return gu||(Ou=je(process.pid),gu=!0),Ou}async function Rs(e,t=Lw){await wu(Nw(e),{recursive:!0});let n=await Uw(e,t),r=!1,i=!1,o;return async()=>{if(!i){if(o!==void 0)return o;o=(async()=>{r||(await n.handle.close(),r=!0),await xs(e,n.token),i=!0})();try{await o}finally{i||(o=void 0)}}}}async function Uw(e,t){let n=Date.now()+t,r=await Vw(e),i,o=!1;try{for(await Kw(r,n,e);;){await vu(r);try{let a=await Jw(e,r.token);try{await _s(r)}catch(c){let d=[c];try{await a.handle.close()}catch(l){d.push(l)}try{await xs(e,a.token)}catch(l){d.push(l)}throw d.length===1?c:new AggregateError(d,"learning lock ticket loss cleanup failed")}return i=a,i}catch(a){let c=await nS(a,e);if(c==="retry_missing"){if(o)throw a;o=!0,await jn(Mn);continue}if(c==="not_contended")throw a;o=!1;let d=await eS(e);if(d!==void 0&&await tS(e,d))continue;if(Date.now()>=n)throw Eu(e);await jn(Mn)}}}finally{try{await Tu(r.path,r.raw)}catch(a){if(i===void 0)throw a;let c=[a];try{await i.handle.close()}catch(d){c.push(d)}try{await xs(e,i.token)}catch(d){c.push(d)}throw c.length===1?a:new AggregateError(c,"learning lock acquisition cleanup failed")}}}async function Vw(e){let t=`${e}.queue`,n=Ww(),r=_u(n),i=ks(t,`choosing-${n}.lock`);await wu(t,{recursive:!0}),await yu(i,r);try{await xu(t,e,i),await ku(i,r,"choosing entry");let o=await Yw(t),a=Math.max(0,...o.map(l=>l.number))+1;if(!Number.isSafeInteger(a))throw new Error("learning lock ticket overflow");let c=`ticket-${String(a).padStart(qw,"0")}-${n}.lock`,d=ks(t,c);return await yu(d,r),{queuePath:t,path:d,name:c,raw:r,token:n}}finally{await Tu(i,r)}}async function Kw(e,t,n){for(;;){await vu(e),await xu(e.queuePath,n,e.path),await _s(e);let r=await Ts(e.queuePath),i=r.some(a=>a.startsWith("choosing-")),o=r.map(Hr).filter(a=>a!==void 0).sort(Gw)[0];if(!i&&o?.name===e.name)return;if(Date.now()>=t)throw Eu(n);await jn(Mn)}}async function yu(e,t){let n=await Su(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await Ut(e),r}}async function _s(e){await ku(e.path,e.raw,"ticket")}async function vu(e){await _s(e);try{let t=new Date;await Dw(e.path,t,t)}catch(t){throw Y(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function ku(e,t,n){try{if(await tt(e,"utf8")!==t)throw new Error(`learning store lock ${n} lost: ${e}`)}catch(r){throw Y(r,"ENOENT")?new Error(`learning store lock ${n} lost: ${e}`):r}}async function Yw(e){return(await Ts(e)).map(Hr).filter(t=>t!==void 0)}function Hr(e){let t=/^ticket-(\d{16})-[0-9a-f-]+\.lock$/i.exec(e);if(t===null)return;let n=Number(t[1]);return Number.isSafeInteger(n)?{name:e,number:n}:void 0}function Gw(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function xu(e,t,n){let r=await Ts(e);await Promise.all(r.filter(Bw).map(async i=>{let o=ks(e,i);o!==n&&await Zw(o,i,t)&&await Ut(o)}))}function Bw(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||Hr(e)!==void 0}async function Zw(e,t,n){try{let r=await Zr(e),i=Jr(await tt(e,"utf8"));return i?.released===!0?!0:Date.now()-r.mtimeMs<=Pu?!1:i===void 0||!Qu(i)?!0:i.token===void 0?!1:Hr(t)===void 0?!0:!await Hw(n,i.token)}catch(r){if(Y(r,"ENOENT")||["EPERM","EACCES","EBUSY"].some(i=>Y(r,i)))return!1;throw r}}async function Hw(e,t){try{return Jr(await tt(e,"utf8"))?.token===t}catch(n){if(Y(n,"ENOENT"))return!1;if(["EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!0;throw n}}async function Jw(e,t){let n=await Su(e,"wx");try{return await n.writeFile(_u(t),"utf8"),{handle:n,token:t}}catch(r){throw await n.close(),await Ut(e),r}}async function eS(e){try{let t=await Zr(e),n=await tt(e,"utf8"),r=Jr(n),i=r?.token!==void 0&&await iS(e,r.token);return!i&&Date.now()-t.mtimeMs<=Pu?void 0:i||r!==void 0&&!Qu(r)?{raw:n,mtimeMs:t.mtimeMs,size:t.size}:void 0}catch(t){if(["ENOENT","EPERM","EACCES","EBUSY"].some(n=>Y(t,n)))return;throw t}}async function tS(e,t){try{let n=await Zr(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await tt(e,"utf8")!==t.raw?!1:(await Ut(e),!0)}catch(n){if(Y(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!1;throw n}}async function nS(e,t){if(Y(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>Y(e,n)))return"not_contended";try{return(await Zr(t)).isFile()?"contended":"not_contended"}catch(n){if(Y(n,"ENOENT"))return"retry_missing";throw e}}async function xs(e,t){try{if(Jr(await tt(e,"utf8"))?.token!==t)return;try{await Ut(e);return}catch(r){try{await rS(e,t);return}catch(i){throw new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}}}catch(n){if(!Y(n,"ENOENT"))throw n}}async function rS(e,t){for(let n=1;n<=Gr;n+=1)try{await bu(Ru(e,t),`${t}
443
- `,"utf8");return}catch(r){if(!Qs(r)||n===Gr)throw r;await jn(Mn)}}async function Tu(e,t){let n;try{if(await tt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await bu(e,`${t.trimEnd()} released
444
- `,"utf8")}catch(r){if(Y(r,"ENOENT"))return;n=r}try{await Ut(e)}catch(r){if(n===void 0&&Qs(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function iS(e,t){try{return(await tt(Ru(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!1;throw n}}function Ru(e,t){return`${e}.${t}.released`}function _u(e){let t=zw(),n=t===void 0?"":` identity=${Buffer.from(t).toString("base64url")}`;return`${process.pid} ${e}${n}
445
- `}function Jr(e){let t=e.trim().split(/\s+/),n=Number(t.shift());if(!Number.isSafeInteger(n)||n<=0)return;let r,i,o=!1;for(let a of t){if(/^[0-9a-f-]+$/i.test(a)&&r===void 0){r=a;continue}if(a.startsWith("identity=")&&i===void 0){let c=a.slice(9);if(!/^[A-Za-z0-9_-]+$/.test(c))return;i=Buffer.from(c,"base64url").toString("utf8");continue}if(a==="released"&&!o){o=!0;continue}return}return{pid:n,...r===void 0?{}:{token:r},...i===void 0?{}:{processStartIdentity:i},released:o}}function oS(e){try{return process.kill(e,0),!0}catch(t){return!Y(t,"ESRCH")}}function Y(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Qu(e){if(!oS(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=je(e.pid);return t===void 0||t===e.processStartIdentity}function Qs(e){return["EPERM","EACCES","EBUSY"].some(t=>Y(e,t))}async function Ut(e){for(let t=1;t<=Gr;t+=1)try{await Fw(e,{force:!0});return}catch(n){if(Y(n,"ENOENT"))return;if(!Qs(n)||t===Gr)throw n;await jn(Mn)}}function Eu(e){return new Br(e)}async function jn(e){await new Promise(t=>setTimeout(t,e))}var Lw,Mn,Pu,qw,Gr,Ou,gu,Br,kt=p(()=>{"use strict";Qn();Lw=5e3,Mn=10,Pu=3e4,qw=16,Gr=8,gu=!1;s(zw,"getCurrentProcessStartIdentity");Br=class extends Error{static{s(this,"KodaXFileLockTimeoutError")}lockPath;code="kodax_file_lock_timeout";constructor(t){super(`KodaX file lock timed out: ${t}`),this.lockPath=t,this.name="KodaXFileLockTimeoutError"}};s(Rs,"acquireLearningFileLock");s(Uw,"acquireLock");s(Vw,"createLockTicket");s(Kw,"waitForTicketTurn");s(yu,"createOwnerFile");s(_s,"assertTicketOwned");s(vu,"heartbeatLockTicket");s(ku,"assertQueueEntryOwned");s(Yw,"listQueueTickets");s(Hr,"parseQueueTicket");s(Gw,"compareQueueTickets");s(xu,"cleanupAbandonedQueueEntries");s(Bw,"isQueueEntryName");s(Zw,"isAbandonedQueueEntry");s(Hw,"queueTicketOwnsCoordinatorLock");s(Jw,"createLock");s(eS,"observeStaleLock");s(tS,"removeObservedStaleLock");s(nS,"classifyExistingLockContention");s(xs,"releaseLock");s(rS,"writeReleaseMarkerWithTransientRetry");s(Tu,"releaseQueueEntry");s(iS,"hasReleaseMarker");s(Ru,"releaseMarkerPath");s(_u,"lockOwnerRecord");s(Jr,"parseOwner");s(oS,"isProcessAlive");s(Y,"isFileError");s(Qu,"isRecordedOwnerAlive");s(Qs,"isTransientFileContention");s(Ut,"removeFileWithTransientRetry");s(Eu,"lockTimeout");s(jn,"delay")});var xt=p(()=>{"use strict";H();Ur();kt()});var Es=p(()=>{"use strict";Yr();vs()});var Is=p(()=>{"use strict";Es();Yr();xt()});var Cs=p(()=>{"use strict";Ps();xt()});var Xu=p(()=>{"use strict";H();Ur()});var y1,Mu=p(()=>{"use strict";y1=1024*1024});var Wu=p(()=>{"use strict";Cs()});var Te=p(()=>{"use strict"});var ti=p(()=>{"use strict";Te();kt();H()});var As=p(()=>{"use strict";xt();Te()});var qu=p(()=>{"use strict";H();Te();ti();As();Is();xt()});var zu=p(()=>{"use strict";Te()});var G1,Nn=p(()=>{"use strict";Te();G1=16*1024});var Uu=p(()=>{"use strict";Te();Nn()});var ij,Vu=p(()=>{"use strict";Te();ti();ij=16*1024});var Bu=p(()=>{"use strict";Te();ge();Nn()});var ii=p(()=>{"use strict";Ps();vs();Yr();xt();Es();Is();Cs();Xu();Mu();Wu();Te();qu();ti();As();zu();Uu();Vu();Bu();Nn()});var Ms=p(()=>{"use strict";ii();bs();Xn()});import{execSync as NS}from"child_process";import LS from"path";function Ju(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of qS)if(t===n||t.startsWith(`${n} `)){if(n==="sed"&&t.split(/\s+/).some(o=>o.startsWith("-i")||o==="--in-place"))return!1;if(n==="awk"){let i=t.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=t.split(/\s+/).slice(1);if(i.length>0&&!i.every(o=>/^(-v|--version|-h|--help)$/.test(o)))return!1}return!0}return!1}function zS(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&LS.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Ju(r[0]);for(let i of r){let o=i?.trim();if(o&&!/^cd\s+/.test(o.toLowerCase())&&!Ju(o))return!1}return!0}function ef(e){let t=[],n="",r=!1,i="";for(let o=0;o<e.length;o++){let a=e[o];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(t.push(n),n=""):n+=a}return n&&t.push(n),t}async function Ln(e,t,n){return new oi(n).resolve(e,t)}var qS,oi,qn=p(()=>{"use strict";qS=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);s(Ju,"isSingleSafeDynamicContextCommand");s(zS,"isSafeDynamicContextCommand");s(ef,"parseArguments");oi=class{static{s(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=ef(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(t,n){return t.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let o=parseInt(i,10);return n[o]??""})}resolveArguments(t,n){return t.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(t){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return t.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(t){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(t))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return t;let o=t;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);o=o.replace(a,d)}catch(d){let l=d instanceof Error?d.message:String(d);o=o.replace(a,`[Error: ${l}]`)}return o}async executeDynamicCommand(t){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(t,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!zS(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return NS(t,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};s(Ln,"resolveSkillContent")});var js=p(()=>{"use strict";ge();Ms();Xn();qn()});var tf=p(()=>{"use strict";js();qn()});function nf(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function si(e){return e.replace(/\\/g,"/")}function KS(e){return[...(e.references??[]).map(t=>({folder:"references",file:t})),...(e.scripts??[]).map(t=>({folder:"scripts",file:t})),...(e.assets??[]).map(t=>({folder:"assets",file:t})),...(e.templates??[]).map(t=>({folder:"templates",file:t})),...(e.resources??[]).map(t=>({folder:"resources",file:t}))]}function YS(e){let t=KS(e);if(t.length===0)return[];let n=[["references",e.references],["scripts",e.scripts],["assets",e.assets],["templates",e.templates],["resources",e.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,o]of n)o?.length&&r.push(`- ${i}/: ${si(`${e.path}/${i}`)} (${o.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:o}of t.slice(0,Ws))r.push(`- ${i}/${o.relativePath}: ${si(o.path)}`);return t.length>Ws&&r.push(`- ... ${t.length-Ws} more files under ${si(e.path)}`),r}function GS(e,t,n){let r=[];r.push(`<skill name="${nf(e.name)}" location="${nf(e.path)}">`),r.push(""),r.push(`Skill root: ${si(e.path)}`),e.source==="builtin"?r.push("This is a built-in KodaX skill."):e.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):e.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=YS(e);return i.length>0&&(r.push(...i),r.push("")),r.push(t),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
446
- `)}async function Fs(e,t,n){let r=await Ln(e.content,t,n);return{content:GS(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}var Ws,Ds=p(()=>{"use strict";qn();s(nf,"escapeXml");Ws=120;s(si,"formatDisplayPath");s(KS,"collectSupportFiles");s(YS,"buildSupportFileContext");s(GS,"buildSkillBlock");s(Fs,"expandSkillForLLM")});import{existsSync as BS}from"node:fs";import{mkdir as ZS,readFile as Ns,readdir as HS,stat as of,writeFile as nW}from"node:fs/promises";import JS from"node:os";import We from"node:path";import{fileURLToPath as sf,pathToFileURL as eb}from"node:url";import tb from"yaml";async function nt(){if(Vt)return Vt;let e=We.dirname(sf(import.meta.url)),t=[],n=We.resolve(e,"../../../index.js");if(BS(n))return Vt=await import(eb(n).href),Vt;t.push(`relative SDK path not found: ${n}`);try{return Vt=await import(["@kodax-ai","kodax"].join("/")),Vt}catch(r){t.push(`bare-name @kodax-ai/kodax failed: ${r?.code??r?.message}`)}throw new Error(`Cannot locate KodaX SDK from helper script ${import.meta.url}.
442
+ ---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),o=n.slice(r+5).trim(),a;try{a=du.parse(i)??{}}catch{a=du.parse(Cw(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(t.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,o]}return[a,o]}function uu(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.map(n=>String(n).trim()).filter(n=>n.length>0);return t.length>0?t.join(", "):void 0}}function Aw(e){if(typeof e=="string"){let t=e.trim();return t?{command:t}:void 0}if(e&&typeof e=="object"&&!Array.isArray(e)){let t=e,n=typeof t.command=="string"?t.command.trim():"";if(!n)return;let r=typeof t.matcher=="string"&&t.matcher.trim()?t.matcher.trim():void 0;return{command:n,matcher:r}}}function Xw(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>Aw(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function fu(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of $w){let i=Xw(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var $w,pu=p(()=>{"use strict";$w=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];s(Cw,"sanitizeYaml");s(lu,"parseYamlFrontmatter");s(uu,"normalizeAllowedToolsString");s(Aw,"normalizeYamlHookEntry");s(Xw,"normalizeYamlHookEntryList");s(fu,"normalizeYamlHookMap")});import{readFile as Mw,readdir as jw}from"fs/promises";import{join as vt,relative as Ww}from"path";function mu(e){let[t,n]=lu(e,{throwOnMissing:!0});if(!t)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!t.name||typeof t.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!t.description||typeof t.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:t.name,description:t.description,disableModelInvocation:t["disable-model-invocation"]===!0,userInvocable:t["user-invocable"]!==!1,allowedTools:uu(t["allowed-tools"]),context:t.context==="fork"?"fork":void 0,agent:typeof t.agent=="string"?t.agent:void 0,argumentHint:typeof t["argument-hint"]=="string"?t["argument-hint"]:void 0,model:typeof t.model=="string"?t.model:void 0,hooks:fu(t.hooks),license:typeof t.license=="string"?t.license:void 0,compatibility:typeof t.compatibility=="string"?t.compatibility:void 0,metadata:t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:void 0},body:n}}async function Yr(e,t){let n=vt(e,"SKILL.md");try{let r=await Mw(n,"utf-8"),{frontmatter:i,body:o}=mu(r),[a,c,d,l,f]=await Promise.all([zt(vt(e,"scripts")),zt(vt(e,"references")),zt(vt(e,"assets")),zt(vt(e,"templates")),zt(vt(e,"resources"))]);return{...i,userInvocable:!0,path:e,skillFilePath:n,content:o,rawContent:o,loaded:!0,source:t,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...l.length>0&&{templates:l},...f.length>0&&{resources:f}}}catch(r){return L({source:"agent:skills",level:"error",message:`Failed to load skill from ${e}.`,detail:r}),null}}async function zt(e,t=e){let n=[];try{let r=await jw(e,{withFileTypes:!0});r.sort((i,o)=>i.name.localeCompare(o.name));for(let i of r){let o=vt(e,i.name);if(i.isDirectory()){n.push(...await zt(o,t));continue}i.isFile()&&n.push({name:i.name,path:o,relativePath:Ww(t,o).replace(/\\/g,"/")})}}catch{}return n}var Mn=p(()=>{"use strict";ge();pu();s(mu,"parseSkillMarkdown");s(Yr,"loadFullSkill");s(zt,"loadSkillFiles")});var vs=p(()=>{"use strict"});var ks=p(()=>{"use strict"});var hu,Ou,Gr=p(()=>{"use strict";hu=64*1024,Ou=256*1024});import{randomUUID as Fw}from"node:crypto";import{mkdir as Su,open as bu,readFile as tt,readdir as Rs,rm as Dw,stat as Hr,utimes as Nw,writeFile as Pu}from"node:fs/promises";import{dirname as Lw,join as xs}from"node:path";function Uw(){return yu||(gu=je(process.pid),yu=!0),gu}async function _s(e,t=qw){await Su(Lw(e),{recursive:!0});let n=await Vw(e,t),r=!1,i=!1,o;return async()=>{if(!i){if(o!==void 0)return o;o=(async()=>{r||(await n.handle.close(),r=!0),await Ts(e,n.token),i=!0})();try{await o}finally{i||(o=void 0)}}}}async function Vw(e,t){let n=Date.now()+t,r=await Kw(e),i,o=!1;try{for(await Yw(r,n,e);;){await ku(r);try{let a=await eS(e,r.token);try{await Qs(r)}catch(c){let d=[c];try{await a.handle.close()}catch(l){d.push(l)}try{await Ts(e,a.token)}catch(l){d.push(l)}throw d.length===1?c:new AggregateError(d,"learning lock ticket loss cleanup failed")}return i=a,i}catch(a){let c=await rS(a,e);if(c==="retry_missing"){if(o)throw a;o=!0,await Wn(jn);continue}if(c==="not_contended")throw a;o=!1;let d=await tS(e);if(d!==void 0&&await nS(e,d))continue;if(Date.now()>=n)throw Iu(e);await Wn(jn)}}}finally{try{await Ru(r.path,r.raw)}catch(a){if(i===void 0)throw a;let c=[a];try{await i.handle.close()}catch(d){c.push(d)}try{await Ts(e,i.token)}catch(d){c.push(d)}throw c.length===1?a:new AggregateError(c,"learning lock acquisition cleanup failed")}}}async function Kw(e){let t=`${e}.queue`,n=Fw(),r=Qu(n),i=xs(t,`choosing-${n}.lock`);await Su(t,{recursive:!0}),await wu(i,r);try{await Tu(t,e,i),await xu(i,r,"choosing entry");let o=await Gw(t),a=Math.max(0,...o.map(l=>l.number))+1;if(!Number.isSafeInteger(a))throw new Error("learning lock ticket overflow");let c=`ticket-${String(a).padStart(zw,"0")}-${n}.lock`,d=xs(t,c);return await wu(d,r),{queuePath:t,path:d,name:c,raw:r,token:n}}finally{await Ru(i,r)}}async function Yw(e,t,n){for(;;){await ku(e),await Tu(e.queuePath,n,e.path),await Qs(e);let r=await Rs(e.queuePath),i=r.some(a=>a.startsWith("choosing-")),o=r.map(Jr).filter(a=>a!==void 0).sort(Bw)[0];if(!i&&o?.name===e.name)return;if(Date.now()>=t)throw Iu(n);await Wn(jn)}}async function wu(e,t){let n=await bu(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await Ut(e),r}}async function Qs(e){await xu(e.path,e.raw,"ticket")}async function ku(e){await Qs(e);try{let t=new Date;await Nw(e.path,t,t)}catch(t){throw Y(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function xu(e,t,n){try{if(await tt(e,"utf8")!==t)throw new Error(`learning store lock ${n} lost: ${e}`)}catch(r){throw Y(r,"ENOENT")?new Error(`learning store lock ${n} lost: ${e}`):r}}async function Gw(e){return(await Rs(e)).map(Jr).filter(t=>t!==void 0)}function Jr(e){let t=/^ticket-(\d{16})-[0-9a-f-]+\.lock$/i.exec(e);if(t===null)return;let n=Number(t[1]);return Number.isSafeInteger(n)?{name:e,number:n}:void 0}function Bw(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function Tu(e,t,n){let r=await Rs(e);await Promise.all(r.filter(Zw).map(async i=>{let o=xs(e,i);o!==n&&await Hw(o,i,t)&&await Ut(o)}))}function Zw(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||Jr(e)!==void 0}async function Hw(e,t,n){try{let r=await Hr(e),i=ei(await tt(e,"utf8"));return i?.released===!0?!0:Date.now()-r.mtimeMs<=vu?!1:i===void 0||!Eu(i)?!0:i.token===void 0?!1:Jr(t)===void 0?!0:!await Jw(n,i.token)}catch(r){if(Y(r,"ENOENT")||["EPERM","EACCES","EBUSY"].some(i=>Y(r,i)))return!1;throw r}}async function Jw(e,t){try{return ei(await tt(e,"utf8"))?.token===t}catch(n){if(Y(n,"ENOENT"))return!1;if(["EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!0;throw n}}async function eS(e,t){let n=await bu(e,"wx");try{return await n.writeFile(Qu(t),"utf8"),{handle:n,token:t}}catch(r){throw await n.close(),await Ut(e),r}}async function tS(e){try{let t=await Hr(e),n=await tt(e,"utf8"),r=ei(n),i=r?.token!==void 0&&await oS(e,r.token);return!i&&Date.now()-t.mtimeMs<=vu?void 0:i||r!==void 0&&!Eu(r)?{raw:n,mtimeMs:t.mtimeMs,size:t.size}:void 0}catch(t){if(["ENOENT","EPERM","EACCES","EBUSY"].some(n=>Y(t,n)))return;throw t}}async function nS(e,t){try{let n=await Hr(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await tt(e,"utf8")!==t.raw?!1:(await Ut(e),!0)}catch(n){if(Y(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!1;throw n}}async function rS(e,t){if(Y(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>Y(e,n)))return"not_contended";try{return(await Hr(t)).isFile()?"contended":"not_contended"}catch(n){if(Y(n,"ENOENT"))return"retry_missing";throw e}}async function Ts(e,t){try{if(ei(await tt(e,"utf8"))?.token!==t)return;try{await Ut(e);return}catch(r){try{await iS(e,t);return}catch(i){throw new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}}}catch(n){if(!Y(n,"ENOENT"))throw n}}async function iS(e,t){for(let n=1;n<=Br;n+=1)try{await Pu(_u(e,t),`${t}
443
+ `,"utf8");return}catch(r){if(!Es(r)||n===Br)throw r;await Wn(jn)}}async function Ru(e,t){let n;try{if(await tt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await Pu(e,`${t.trimEnd()} released
444
+ `,"utf8")}catch(r){if(Y(r,"ENOENT"))return;n=r}try{await Ut(e)}catch(r){if(n===void 0&&Es(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function oS(e,t){try{return(await tt(_u(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>Y(n,r)))return!1;throw n}}function _u(e,t){return`${e}.${t}.released`}function Qu(e){let t=Uw(),n=t===void 0?"":` identity=${Buffer.from(t).toString("base64url")}`;return`${process.pid} ${e}${n}
445
+ `}function ei(e){let t=e.trim().split(/\s+/),n=Number(t.shift());if(!Number.isSafeInteger(n)||n<=0)return;let r,i,o=!1;for(let a of t){if(/^[0-9a-f-]+$/i.test(a)&&r===void 0){r=a;continue}if(a.startsWith("identity=")&&i===void 0){let c=a.slice(9);if(!/^[A-Za-z0-9_-]+$/.test(c))return;i=Buffer.from(c,"base64url").toString("utf8");continue}if(a==="released"&&!o){o=!0;continue}return}return{pid:n,...r===void 0?{}:{token:r},...i===void 0?{}:{processStartIdentity:i},released:o}}function sS(e){try{return process.kill(e,0),!0}catch(t){return!Y(t,"ESRCH")}}function Y(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function Eu(e){if(!sS(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=je(e.pid);return t===void 0||t===e.processStartIdentity}function Es(e){return["EPERM","EACCES","EBUSY"].some(t=>Y(e,t))}async function Ut(e){for(let t=1;t<=Br;t+=1)try{await Dw(e,{force:!0});return}catch(n){if(Y(n,"ENOENT"))return;if(!Es(n)||t===Br)throw n;await Wn(jn)}}function Iu(e){return new Zr(e)}async function Wn(e){await new Promise(t=>setTimeout(t,e))}var qw,jn,vu,zw,Br,gu,yu,Zr,kt=p(()=>{"use strict";Qn();qw=5e3,jn=10,vu=3e4,zw=16,Br=8,yu=!1;s(Uw,"getCurrentProcessStartIdentity");Zr=class extends Error{static{s(this,"KodaXFileLockTimeoutError")}lockPath;code="kodax_file_lock_timeout";constructor(t){super(`KodaX file lock timed out: ${t}`),this.lockPath=t,this.name="KodaXFileLockTimeoutError"}};s(_s,"acquireLearningFileLock");s(Vw,"acquireLock");s(Kw,"createLockTicket");s(Yw,"waitForTicketTurn");s(wu,"createOwnerFile");s(Qs,"assertTicketOwned");s(ku,"heartbeatLockTicket");s(xu,"assertQueueEntryOwned");s(Gw,"listQueueTickets");s(Jr,"parseQueueTicket");s(Bw,"compareQueueTickets");s(Tu,"cleanupAbandonedQueueEntries");s(Zw,"isQueueEntryName");s(Hw,"isAbandonedQueueEntry");s(Jw,"queueTicketOwnsCoordinatorLock");s(eS,"createLock");s(tS,"observeStaleLock");s(nS,"removeObservedStaleLock");s(rS,"classifyExistingLockContention");s(Ts,"releaseLock");s(iS,"writeReleaseMarkerWithTransientRetry");s(Ru,"releaseQueueEntry");s(oS,"hasReleaseMarker");s(_u,"releaseMarkerPath");s(Qu,"lockOwnerRecord");s(ei,"parseOwner");s(sS,"isProcessAlive");s(Y,"isFileError");s(Eu,"isRecordedOwnerAlive");s(Es,"isTransientFileContention");s(Ut,"removeFileWithTransientRetry");s(Iu,"lockTimeout");s(Wn,"delay")});var xt=p(()=>{"use strict";H();Vr();kt()});var Is=p(()=>{"use strict";Gr();ks()});var $s=p(()=>{"use strict";Is();Gr();xt()});var As=p(()=>{"use strict";vs();xt()});var Mu=p(()=>{"use strict";H();Vr()});var P1,ju=p(()=>{"use strict";P1=1024*1024});var Fu=p(()=>{"use strict";As()});var Te=p(()=>{"use strict"});var ni=p(()=>{"use strict";Te();kt();H()});var Xs=p(()=>{"use strict";xt();Te()});var zu=p(()=>{"use strict";H();Te();ni();Xs();$s();xt()});var Uu=p(()=>{"use strict";Te()});var J1,Ln=p(()=>{"use strict";Te();J1=16*1024});var Vu=p(()=>{"use strict";Te();Ln()});var cj,Ku=p(()=>{"use strict";Te();ni();cj=16*1024});var Zu=p(()=>{"use strict";Te();ge();Ln()});var oi=p(()=>{"use strict";vs();ks();Gr();xt();Is();$s();As();Mu();ju();Fu();Te();zu();ni();Xs();Uu();Vu();Ku();Zu();Ln()});var js=p(()=>{"use strict";oi();Ps();Mn()});import{execSync as LS}from"child_process";import qS from"path";function ef(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of zS)if(t===n||t.startsWith(`${n} `)){if(n==="sed"&&t.split(/\s+/).some(o=>o.startsWith("-i")||o==="--in-place"))return!1;if(n==="awk"){let i=t.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=t.split(/\s+/).slice(1);if(i.length>0&&!i.every(o=>/^(-v|--version|-h|--help)$/.test(o)))return!1}return!0}return!1}function US(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&qS.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return ef(r[0]);for(let i of r){let o=i?.trim();if(o&&!/^cd\s+/.test(o.toLowerCase())&&!ef(o))return!1}return!0}function tf(e){let t=[],n="",r=!1,i="";for(let o=0;o<e.length;o++){let a=e[o];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(t.push(n),n=""):n+=a}return n&&t.push(n),t}async function qn(e,t,n){return new si(n).resolve(e,t)}var zS,si,zn=p(()=>{"use strict";zS=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);s(ef,"isSingleSafeDynamicContextCommand");s(US,"isSafeDynamicContextCommand");s(tf,"parseArguments");si=class{static{s(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=tf(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(t,n){return t.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let o=parseInt(i,10);return n[o]??""})}resolveArguments(t,n){return t.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(t){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return t.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(t){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(t))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return t;let o=t;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);o=o.replace(a,d)}catch(d){let l=d instanceof Error?d.message:String(d);o=o.replace(a,`[Error: ${l}]`)}return o}async executeDynamicCommand(t){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(t,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!US(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return LS(t,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};s(qn,"resolveSkillContent")});var Ws=p(()=>{"use strict";ge();js();Mn();zn()});var nf=p(()=>{"use strict";Ws();zn()});function rf(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function ai(e){return e.replace(/\\/g,"/")}function YS(e){return[...(e.references??[]).map(t=>({folder:"references",file:t})),...(e.scripts??[]).map(t=>({folder:"scripts",file:t})),...(e.assets??[]).map(t=>({folder:"assets",file:t})),...(e.templates??[]).map(t=>({folder:"templates",file:t})),...(e.resources??[]).map(t=>({folder:"resources",file:t}))]}function GS(e){let t=YS(e);if(t.length===0)return[];let n=[["references",e.references],["scripts",e.scripts],["assets",e.assets],["templates",e.templates],["resources",e.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,o]of n)o?.length&&r.push(`- ${i}/: ${ai(`${e.path}/${i}`)} (${o.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:o}of t.slice(0,Fs))r.push(`- ${i}/${o.relativePath}: ${ai(o.path)}`);return t.length>Fs&&r.push(`- ... ${t.length-Fs} more files under ${ai(e.path)}`),r}function BS(e,t,n){let r=[];r.push(`<skill name="${rf(e.name)}" location="${rf(e.path)}">`),r.push(""),r.push(`Skill root: ${ai(e.path)}`),e.source==="builtin"?r.push("This is a built-in KodaX skill."):e.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):e.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=GS(e);return i.length>0&&(r.push(...i),r.push("")),r.push(t),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
446
+ `)}async function Ds(e,t,n){let r=await qn(e.content,t,n);return{content:BS(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}var Fs,Ns=p(()=>{"use strict";zn();s(rf,"escapeXml");Fs=120;s(ai,"formatDisplayPath");s(YS,"collectSupportFiles");s(GS,"buildSupportFileContext");s(BS,"buildSkillBlock");s(Ds,"expandSkillForLLM")});import{existsSync as ZS}from"node:fs";import{mkdir as HS,readFile as Ls,readdir as JS,stat as sf,writeFile as sW}from"node:fs/promises";import eb from"node:os";import We from"node:path";import{fileURLToPath as af,pathToFileURL as tb}from"node:url";import nb from"yaml";async function nt(){if(Vt)return Vt;let e=We.dirname(af(import.meta.url)),t=[],n=We.resolve(e,"../../../index.js");if(ZS(n))return Vt=await import(tb(n).href),Vt;t.push(`relative SDK path not found: ${n}`);try{return Vt=await import(["@kodax-ai","kodax"].join("/")),Vt}catch(r){t.push(`bare-name @kodax-ai/kodax failed: ${r?.code??r?.message}`)}throw new Error(`Cannot locate KodaX SDK from helper script ${import.meta.url}.
447
447
  Attempted:
448
448
  - ${t.join(`
449
- - `)}`)}function nb(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
449
+ - `)}`)}function rb(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
450
450
  `).replace(/\r/g,`
451
451
  `).trimStart();if(!t.startsWith(`---
452
452
  `))throw new Error("SKILL.md missing YAML frontmatter");let n=t.indexOf(`
453
453
  ---
454
- `,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}function ai(e){let{yamlText:t,body:n}=nb(e),r=tb.parse(t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Frontmatter must be a YAML object");return{frontmatter:r,body:n}}async function Un(e){let t=We.join(e,"SKILL.md");if(!(await of(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Ns(t,"utf8"),{frontmatter:i,body:o}=ai(r);return{skillDir:We.resolve(e),skillMdPath:t,rawContent:r,body:o,frontmatter:i}}async function Vn(e){try{return await of(e),!0}catch{return!1}}function ci(e){if(!e.length)return{mean:0,stddev:0,min:0,max:0};let t=e.reduce((r,i)=>r+i,0)/e.length,n=e.length>1?e.reduce((r,i)=>r+(i-t)**2,0)/(e.length-1):0;return{mean:zn(t),stddev:zn(Math.sqrt(n)),min:zn(Math.min(...e)),max:zn(Math.max(...e))}}function zn(e,t=4){return Number(e.toFixed(t))}function di(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function rf(e){try{return JSON.parse(e)}catch{return null}}function Kt(e){let t=rf(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:rf(e.slice(n,r+1))}async function Re(e,t=null){try{return JSON.parse(await Ns(e,"utf8"))}catch{return t}}async function Yt(e,t){let n=We.dirname(sf(e));return Ns(We.resolve(n,t),"utf8")}function ie(e,t=12e3){let n=typeof e=="string"?e:String(e??"");if(n.length<=t)return n;let r=n.length-t;return`${n.slice(0,t)}
454
+ `,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}function ci(e){let{yamlText:t,body:n}=rb(e),r=nb.parse(t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Frontmatter must be a YAML object");return{frontmatter:r,body:n}}async function Vn(e){let t=We.join(e,"SKILL.md");if(!(await sf(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Ls(t,"utf8"),{frontmatter:i,body:o}=ci(r);return{skillDir:We.resolve(e),skillMdPath:t,rawContent:r,body:o,frontmatter:i}}async function Kn(e){try{return await sf(e),!0}catch{return!1}}function di(e){if(!e.length)return{mean:0,stddev:0,min:0,max:0};let t=e.reduce((r,i)=>r+i,0)/e.length,n=e.length>1?e.reduce((r,i)=>r+(i-t)**2,0)/(e.length-1):0;return{mean:Un(t),stddev:Un(Math.sqrt(n)),min:Un(Math.min(...e)),max:Un(Math.max(...e))}}function Un(e,t=4){return Number(e.toFixed(t))}function li(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function of(e){try{return JSON.parse(e)}catch{return null}}function Kt(e){let t=of(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:of(e.slice(n,r+1))}async function Re(e,t=null){try{return JSON.parse(await Ls(e,"utf8"))}catch{return t}}async function Yt(e,t){let n=We.dirname(af(e));return Ls(We.resolve(n,t),"utf8")}function ie(e,t=12e3){let n=typeof e=="string"?e:String(e??"");if(n.length<=t)return n;let r=n.length-t;return`${n.slice(0,t)}
455
455
 
456
- [truncated ${r} chars]`}function af(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?zn(n/t):0}}async function Ls(e,t=e,n=[]){let r=await HS(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((o,a)=>o.name.localeCompare(a.name))){let o=We.join(t,i.name);if(i.isDirectory()){await Ls(e,o,n);continue}i.isFile()&&n.push({absolutePath:o,relativePath:We.relative(e,o).replace(/\\/g,"/")})}return n}function Kn(){return We.join(JS.homedir(),".kodax","skills")}async function oe(e){return await ZS(e,{recursive:!0}),e}var Vt,ye=p(()=>{"use strict";Vt=null;s(nt,"loadKodaXSDK");s(nb,"extractFrontmatter");s(ai,"parseSkillMarkdown");s(Un,"loadSkill");s(Vn,"pathExists");s(ci,"calculateStats");s(zn,"roundNumber");s(di,"formatDelta");s(rf,"safeJsonParse");s(Kt,"extractJsonObject");s(Re,"readJsonFile");s(Yt,"loadRelativeText");s(ie,"truncateText");s(af,"computePassSummary");s(Ls,"collectFiles");s(Kn,"getDefaultSkillsDir");s(oe,"ensureDirectory")});import{writeFile as cf}from"node:fs/promises";import rt from"node:path";function rb(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function ib(e,t){let n=rb(e);return`---
456
+ [truncated ${r} chars]`}function cf(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?Un(n/t):0}}async function qs(e,t=e,n=[]){let r=await JS(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((o,a)=>o.name.localeCompare(a.name))){let o=We.join(t,i.name);if(i.isDirectory()){await qs(e,o,n);continue}i.isFile()&&n.push({absolutePath:o,relativePath:We.relative(e,o).replace(/\\/g,"/")})}return n}function Yn(){return We.join(eb.homedir(),".kodax","skills")}async function oe(e){return await HS(e,{recursive:!0}),e}var Vt,ye=p(()=>{"use strict";Vt=null;s(nt,"loadKodaXSDK");s(rb,"extractFrontmatter");s(ci,"parseSkillMarkdown");s(Vn,"loadSkill");s(Kn,"pathExists");s(di,"calculateStats");s(Un,"roundNumber");s(li,"formatDelta");s(of,"safeJsonParse");s(Kt,"extractJsonObject");s(Re,"readJsonFile");s(Yt,"loadRelativeText");s(ie,"truncateText");s(cf,"computePassSummary");s(qs,"collectFiles");s(Yn,"getDefaultSkillsDir");s(oe,"ensureDirectory")});import{writeFile as df}from"node:fs/promises";import rt from"node:path";function ib(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function ob(e,t){let n=ib(e);return`---
457
457
  name: ${e}
458
458
  description: ${t}
459
459
  user-invocable: true
460
+ disable-model-invocation: false
460
461
  allowed-tools: "Read, Grep, Glob"
461
462
  compatibility: "Optimized for KodaX and Agent Skills style directories."
462
463
  ---
@@ -482,10 +483,10 @@ Describe the task this skill handles, the trigger boundary, and the expected out
482
483
  - Put deeper guidance in \`references/\`.
483
484
  - Put reusable templates or static files in \`assets/\`.
484
485
  - Put repeatable helper scripts in \`scripts/\`.
485
- `}function ob(e){return JSON.stringify({skill_name:e,evals:[{id:1,prompt:"TODO: Add a realistic user request to evaluate this skill.",expected_output:"Describe what a successful result should accomplish.",files:[],assertions:[]}]},null,2)}async function sb(e){let t=rt.resolve(e.baseDir??Kn()),n=rt.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await Vn(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await oe(n),await oe(rt.join(n,"references")),await oe(rt.join(n,"assets")),await oe(rt.join(n,"scripts")),await cf(rt.join(n,"SKILL.md"),ib(e.name,r),"utf8"),e.includeEvals!==!1&&(await oe(rt.join(n,"evals")),await cf(rt.join(n,"evals","evals.json"),`${ob(e.name)}
486
- `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function ab(e){let t={name:e[2],baseDir:void 0,description:void 0,force:!1,includeEvals:!0};for(let n=3;n<e.length;n+=1){let r=e[n];(r==="--path"||r==="--dest")&&e[n+1]?t.baseDir=e[++n]:r==="--description"&&e[n+1]?t.description=e[++n]:r==="--force"?t.force=!0:r==="--no-evals"&&(t.includeEvals=!1)}return t}async function df(e=process.argv){let t=ab(e);t.name||(console.error("Usage: node scripts/init-skill.js <skill-name> [--path <skills-dir>] [--description <text>] [--force] [--no-evals]"),process.exit(1));let n=await sb(t);console.log(`Initialized ${n.skillDir}`)}var cb,lf=p(()=>{"use strict";ye();s(rb,"titleFromSlug");s(ib,"renderSkillTemplate");s(ob,"renderEvalTemplate");s(sb,"initSkill");s(ab,"parseArgs");s(df,"main");cb=!1;cb&&df().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import uf from"node:path";async function Yn(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await Un(e)}catch(d){return t.errors.push(d instanceof Error?d.message:String(d)),t}let{frontmatter:r,body:i}=n;t.frontmatter=r;let o=Object.keys(r).filter(d=>!db.has(d));o.length>0&&t.errors.push(`Unexpected frontmatter keys: ${o.sort().join(", ")}`);let a=typeof r.name=="string"?r.name.trim():"",c=typeof r.description=="string"?r.description.trim():"";if(!a)t.errors.push("Missing required frontmatter field: name");else{/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)||t.errors.push(`Invalid skill name "${a}". Use lowercase kebab-case and avoid consecutive hyphens.`),a.length>64&&t.errors.push(`Skill name is too long (${a.length}/64).`);let d=uf.basename(uf.resolve(e));d!==a&&t.warnings.push(`Skill directory name "${d}" does not match frontmatter name "${a}".`)}if(c?(c.length>1024&&t.errors.push(`Description is too long (${c.length}/1024).`),/[<>]/.test(c)&&t.errors.push("Description cannot contain angle brackets."),/[。.!?]/.test(c)||t.warnings.push("Description may be too terse; consider making the trigger conditions clearer.")):t.errors.push("Missing required frontmatter field: description"),i.trim()||t.errors.push("SKILL.md body is empty."),r.compatibility!=null&&(typeof r.compatibility!="string"?t.errors.push("compatibility must be a string if provided."):r.compatibility.length>500&&t.errors.push(`compatibility is too long (${r.compatibility.length}/500).`)),r["allowed-tools"]!=null){let d=r["allowed-tools"];typeof d=="string"||Array.isArray(d)&&d.every(f=>typeof f=="string")||t.errors.push("allowed-tools must be a string or string array.")}return r["disable-model-invocation"]!=null&&typeof r["disable-model-invocation"]!="boolean"&&t.errors.push("disable-model-invocation must be a boolean."),r["user-invocable"]!=null&&typeof r["user-invocable"]!="boolean"&&t.errors.push("user-invocable must be a boolean."),r.context!=null&&r.context!=="fork"&&t.errors.push('context must be "fork" when provided.'),r.hooks!=null&&(typeof r.hooks!="object"||Array.isArray(r.hooks))&&t.errors.push("hooks must be an object when provided."),t.valid=t.errors.length===0,t}async function ff(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await Yn(t);if(n.errors.length===0)console.log("Skill is valid.");else{console.error("Skill validation failed:");for(let r of n.errors)console.error(`- ${r}`)}if(n.warnings.length>0){console.log("Warnings:");for(let r of n.warnings)console.log(`- ${r}`)}process.exit(n.valid?0:1)}var db,lb,li=p(()=>{"use strict";ye();db=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);s(Yn,"validateSkillDirectory");s(ff,"main");lb=!1;lb&&ff().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as qs,writeFile as Fe}from"node:fs/promises";import W from"node:path";function ub(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function fb(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function pb(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_result"&&r.is_error===!0).length:t,0)}function mb(e,t){return`${["# Skill Eval Transcript","","## Eval Prompt","",e,"","## Final Response","",t.lastText||"(No final text)","","## Result Flags","",`- success: ${t.success}`,`- signal: ${t.signal??"none"}`,`- interrupted: ${t.interrupted===!0}`,`- limit_reached: ${t.limitReached===!0}`].join(`
486
+ `}function sb(e){return JSON.stringify({skill_name:e,evals:[{id:1,prompt:"TODO: Add a realistic user request to evaluate this skill.",expected_output:"Describe what a successful result should accomplish.",files:[],assertions:[]}]},null,2)}async function ab(e){let t=rt.resolve(e.baseDir??Yn()),n=rt.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await Kn(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await oe(n),await oe(rt.join(n,"references")),await oe(rt.join(n,"assets")),await oe(rt.join(n,"scripts")),await df(rt.join(n,"SKILL.md"),ob(e.name,r),"utf8"),e.includeEvals!==!1&&(await oe(rt.join(n,"evals")),await df(rt.join(n,"evals","evals.json"),`${sb(e.name)}
487
+ `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function cb(e){let t={name:e[2],baseDir:void 0,description:void 0,force:!1,includeEvals:!0};for(let n=3;n<e.length;n+=1){let r=e[n];(r==="--path"||r==="--dest")&&e[n+1]?t.baseDir=e[++n]:r==="--description"&&e[n+1]?t.description=e[++n]:r==="--force"?t.force=!0:r==="--no-evals"&&(t.includeEvals=!1)}return t}async function lf(e=process.argv){let t=cb(e);t.name||(console.error("Usage: node scripts/init-skill.js <skill-name> [--path <skills-dir>] [--description <text>] [--force] [--no-evals]"),process.exit(1));let n=await ab(t);console.log(`Initialized ${n.skillDir}`)}var db,uf=p(()=>{"use strict";ye();s(ib,"titleFromSlug");s(ob,"renderSkillTemplate");s(sb,"renderEvalTemplate");s(ab,"initSkill");s(cb,"parseArgs");s(lf,"main");db=!1;db&&lf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import ff from"node:path";async function Gn(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await Vn(e)}catch(d){return t.errors.push(d instanceof Error?d.message:String(d)),t}let{frontmatter:r,body:i}=n;t.frontmatter=r;let o=Object.keys(r).filter(d=>!lb.has(d));o.length>0&&t.errors.push(`Unexpected frontmatter keys: ${o.sort().join(", ")}`);let a=typeof r.name=="string"?r.name.trim():"",c=typeof r.description=="string"?r.description.trim():"";if(!a)t.errors.push("Missing required frontmatter field: name");else{/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)||t.errors.push(`Invalid skill name "${a}". Use lowercase kebab-case and avoid consecutive hyphens.`),a.length>64&&t.errors.push(`Skill name is too long (${a.length}/64).`);let d=ff.basename(ff.resolve(e));d!==a&&t.warnings.push(`Skill directory name "${d}" does not match frontmatter name "${a}".`)}if(c?(c.length>1024&&t.errors.push(`Description is too long (${c.length}/1024).`),/[<>]/.test(c)&&t.errors.push("Description cannot contain angle brackets."),/[。.!?]/.test(c)||t.warnings.push("Description may be too terse; consider making the trigger conditions clearer.")):t.errors.push("Missing required frontmatter field: description"),i.trim()||t.errors.push("SKILL.md body is empty."),r.compatibility!=null&&(typeof r.compatibility!="string"?t.errors.push("compatibility must be a string if provided."):r.compatibility.length>500&&t.errors.push(`compatibility is too long (${r.compatibility.length}/500).`)),r["allowed-tools"]!=null){let d=r["allowed-tools"];typeof d=="string"||Array.isArray(d)&&d.every(f=>typeof f=="string")||t.errors.push("allowed-tools must be a string or string array.")}return r["disable-model-invocation"]!=null&&typeof r["disable-model-invocation"]!="boolean"&&t.errors.push("disable-model-invocation must be a boolean."),r["user-invocable"]!=null&&typeof r["user-invocable"]!="boolean"&&t.errors.push("user-invocable must be a boolean."),r.context!=null&&r.context!=="fork"&&t.errors.push('context must be "fork" when provided.'),r.hooks!=null&&(typeof r.hooks!="object"||Array.isArray(r.hooks))&&t.errors.push("hooks must be an object when provided."),t.valid=t.errors.length===0,t}async function pf(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await Gn(t);if(n.errors.length===0)console.log("Skill is valid.");else{console.error("Skill validation failed:");for(let r of n.errors)console.error(`- ${r}`)}if(n.warnings.length>0){console.log("Warnings:");for(let r of n.warnings)console.log(`- ${r}`)}process.exit(n.valid?0:1)}var lb,ub,ui=p(()=>{"use strict";ye();lb=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);s(Gn,"validateSkillDirectory");s(pf,"main");ub=!1;ub&&pf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as zs,writeFile as Fe}from"node:fs/promises";import W from"node:path";function fb(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function pb(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function mb(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_result"&&r.is_error===!0).length:t,0)}function hb(e,t){return`${["# Skill Eval Transcript","","## Eval Prompt","",e,"","## Final Response","",t.lastText||"(No final text)","","## Result Flags","",`- success: ${t.success}`,`- signal: ${t.signal??"none"}`,`- interrupted: ${t.interrupted===!0}`,`- limit_reached: ${t.limitReached===!0}`].join(`
487
488
  `)}
488
- `}async function hb(e,t){let n=W.dirname(W.resolve(t.evalsPath)),r=W.resolve(t.cwd??process.cwd()),i=[];for(let o of e??[]){let a=W.isAbsolute(o)?o:W.resolve(n,o),c=W.resolve(r,o),d=null,l=a;try{d=await qs(a,"utf8")}catch{d=await qs(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${o}`);i.push(`### ${o}
489
+ `}async function Ob(e,t){let n=W.dirname(W.resolve(t.evalsPath)),r=W.resolve(t.cwd??process.cwd()),i=[];for(let o of e??[]){let a=W.isAbsolute(o)?o:W.resolve(n,o),c=W.resolve(r,o),d=null,l=a;try{d=await zs(a,"utf8")}catch{d=await zs(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${o}`);i.push(`### ${o}
489
490
  \`\`\`
490
491
  ${d}
491
492
  \`\`\`
@@ -495,15 +496,15 @@ ${i.join(`
495
496
 
496
497
  `)}
497
498
 
498
- `}async function Ob(e,t){let n=String(e.prompt??e.query??"").trim();return`${await hb(e.files,t)}${n}`.trim()}async function gb(e,t){let{runKodaX:n,estimateTokens:r}=await nt(),i=Date.now(),o=await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??30,reasoningMode:t.reasoningMode??"off",thinking:t.reasoningMode?t.reasoningMode!=="off":!1,context:{gitRoot:W.resolve(t.cwd??process.cwd())}},e);return{result:o,totalTokens:r(o.messages),durationMs:Date.now()-i}}async function yb(e,t,n,r){return e==="with_skill"?(await Fs(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}async function wb(e,t,n,r,i){let o=W.join(e,"outputs");await oe(o);let a={total_tool_calls:fb(i.result.messages),errors_encountered:pb(i.result.messages),output_chars:i.result.lastText.length};await Fe(W.join(o,"result.md"),`${i.result.lastText}
499
+ `}async function gb(e,t){let n=String(e.prompt??e.query??"").trim();return`${await Ob(e.files,t)}${n}`.trim()}async function yb(e,t){let{runKodaX:n,estimateTokens:r}=await nt(),i=Date.now(),o=await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??30,reasoningMode:t.reasoningMode??"off",thinking:t.reasoningMode?t.reasoningMode!=="off":!1,context:{gitRoot:W.resolve(t.cwd??process.cwd())}},e);return{result:o,totalTokens:r(o.messages),durationMs:Date.now()-i}}async function wb(e,t,n,r){return e==="with_skill"?(await Ds(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}async function Sb(e,t,n,r,i){let o=W.join(e,"outputs");await oe(o);let a={total_tool_calls:pb(i.result.messages),errors_encountered:mb(i.result.messages),output_chars:i.result.lastText.length};await Fe(W.join(o,"result.md"),`${i.result.lastText}
499
500
  `,"utf8"),await Fe(W.join(o,"prompt.txt"),`${r}
500
- `,"utf8"),await Fe(W.join(e,"transcript.md"),mb(r,i.result),"utf8"),await Fe(W.join(o,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
501
+ `,"utf8"),await Fe(W.join(e,"transcript.md"),hb(r,i.result),"utf8"),await Fe(W.join(o,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
501
502
  `,"utf8"),await Fe(W.join(o,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
502
503
  `,"utf8"),await Fe(W.join(e,"timing.json"),`${JSON.stringify({total_tokens:i.totalTokens,duration_ms:i.durationMs,total_duration_seconds:Number((i.durationMs/1e3).toFixed(4))},null,2)}
503
504
  `,"utf8"),await Fe(W.join(e,"result.json"),`${JSON.stringify({success:i.result.success,signal:i.result.signal??null,signal_reason:i.result.signalReason??null,interrupted:i.result.interrupted===!0,limit_reached:i.result.limitReached===!0,session_id:i.result.sessionId,execution_metrics:a},null,2)}
504
- `,"utf8")}async function Sb(e,t=gb){let n=await Kr(W.resolve(e.skillPath),"user");if(!n)throw new Error(`Failed to load skill from ${e.skillPath}`);let r=W.resolve(e.workspaceDir);await oe(r);let i=JSON.parse(await qs(e.evalsPath,"utf8")),o=Array.isArray(i.evals)?i.evals:[],a=e.configs?.length?e.configs:["with_skill","without_skill"],c=Number.isFinite(e.runsPerConfig)&&e.runsPerConfig>0?Math.floor(e.runsPerConfig):1,d=[];for(let l=0;l<o.length;l+=1){let f=o[l],u=W.join(r,`eval-${l}`);await oe(u),await Fe(W.join(u,"eval_metadata.json"),`${JSON.stringify({eval_id:f.id??l,eval_name:f.name??`eval-${l}`,prompt:f.prompt??f.query??"",expected_output:f.expected_output??"",assertions:(Array.isArray(f.assertions)?f.assertions:[]).map(ub).filter(Boolean)},null,2)}
505
- `,"utf8");let m=await Ob(f,e),g={};for(let w of a){let k=W.join(u,w);await oe(k),g[w]=[];for(let h=1;h<=c;h+=1){let y=W.join(k,`run-${h}`);await oe(y);let P=await yb(w,n,m,e),S=await t(P,{...e,configName:w,evalItem:f,runIndex:h});await wb(y,w,f,P,S),g[w].push({run_id:`run-${h}`,session_id:S.result.sessionId,success:S.result.success,total_tokens:S.totalTokens,duration_ms:S.durationMs,output_chars:S.result.lastText.length})}}d.push({eval_id:f.id??l,prompt:f.prompt??f.query??"",configs:g})}return{workspace:r,skill_name:n.name,eval_count:o.length,configs:a,runs_per_config:c,reports:d}}function bb(e){let t={skillPath:"",evalsPath:"",workspaceDir:"",provider:"anthropic",model:void 0,runsPerConfig:1,maxIter:30,reasoningMode:"off",cwd:process.cwd(),configs:["with_skill","without_skill"],output:void 0};for(let n=2;n<e.length;n+=1){let r=e[n];r==="--skill-path"&&e[n+1]?t.skillPath=e[++n]:r==="--evals"&&e[n+1]?t.evalsPath=e[++n]:r==="--workspace"&&e[n+1]?t.workspaceDir=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--runs"&&e[n+1]?t.runsPerConfig=Number(e[++n]):r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--configs"&&e[n+1]?t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean):r==="--output"&&e[n+1]&&(t.output=e[++n])}return t}async function pf(e=process.argv){let t=bb(e);(!t.skillPath||!t.evalsPath||!t.workspaceDir)&&(console.error("Usage: node scripts/run-eval.js --skill-path <dir> --evals <evals.json> --workspace <dir> [--provider anthropic] [--runs 1]"),process.exit(1));let n=await Sb(t),r=`${JSON.stringify(n,null,2)}
506
- `;t.output?(await Fe(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var Pb,mf=p(()=>{"use strict";Ds();Xn();ye();s(ub,"normalizeAssertion");s(fb,"countToolCalls");s(pb,"countToolErrors");s(mb,"renderTranscript");s(hb,"readInputFiles");s(Ob,"buildEvalPrompt");s(gb,"defaultRunAgent");s(yb,"prepareConfigPrompt");s(wb,"writeRunArtifacts");s(Sb,"runEvalWorkspace");s(bb,"parseArgs");s(pf,"main");Pb=!1;Pb&&pf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as vb,readFile as zs,writeFile as Of}from"node:fs/promises";import F from"node:path";function Rt(e){return String(e??"").trim()}function gf(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Rt(i):i&&typeof i=="object"&&typeof i.text=="string"?Rt(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Rt(e?.expected_output);return r?[r]:[]}function Us(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function hf(e,t){return{text:Rt(e?.text??t),passed:e?.passed===!0,evidence:Rt(e?.evidence)}}function kb(e,t){let n=Kt(e)??{},r=Array.isArray(n.expectations)?n.expectations:[],i=[],o=new Set;for(let a of t){let c=r.findIndex((d,l)=>o.has(l)?!1:Rt(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}o.add(c),i.push(hf(r[c],a))}if(t.length===0)for(let a of r){let c=hf(a,"");c.text&&i.push(c)}return{overall_summary:Rt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:Us(n.user_notes_summary?.uncertainties),needs_review:Us(n.user_notes_summary?.needs_review),workarounds:Us(n.user_notes_summary?.workarounds)}}}async function Vs(e){return(await vb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>F.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function xb(e){let t=F.dirname(e),n=F.dirname(t),r=F.basename(t),i=F.basename(e),o=F.join(e,"outputs"),a=await Re(F.join(n,"eval_metadata.json"),{}),c=await zs(F.join(o,"result.md"),"utf8").catch(()=>""),d=await zs(F.join(o,"prompt.txt"),"utf8").catch(()=>""),l=await zs(F.join(e,"transcript.md"),"utf8").catch(()=>""),f=await Re(F.join(o,"metrics.json"),{}),u=await Re(F.join(e,"result.json"),{}),m=await Re(F.join(e,"timing.json"),{});return{evalDir:n,runDir:e,runId:i,configName:r,evalMetadata:a,outputsDir:o,resultText:c,promptText:d,transcript:l,metrics:f,result:u,timing:m}}function Tb(e){let t=gf(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
505
+ `,"utf8")}async function bb(e,t=yb){let n=await Yr(W.resolve(e.skillPath),"user");if(!n)throw new Error(`Failed to load skill from ${e.skillPath}`);let r=W.resolve(e.workspaceDir);await oe(r);let i=JSON.parse(await zs(e.evalsPath,"utf8")),o=Array.isArray(i.evals)?i.evals:[],a=e.configs?.length?e.configs:["with_skill","without_skill"],c=Number.isFinite(e.runsPerConfig)&&e.runsPerConfig>0?Math.floor(e.runsPerConfig):1,d=[];for(let l=0;l<o.length;l+=1){let f=o[l],u=W.join(r,`eval-${l}`);await oe(u),await Fe(W.join(u,"eval_metadata.json"),`${JSON.stringify({eval_id:f.id??l,eval_name:f.name??`eval-${l}`,prompt:f.prompt??f.query??"",expected_output:f.expected_output??"",assertions:(Array.isArray(f.assertions)?f.assertions:[]).map(fb).filter(Boolean)},null,2)}
506
+ `,"utf8");let m=await gb(f,e),g={};for(let w of a){let k=W.join(u,w);await oe(k),g[w]=[];for(let h=1;h<=c;h+=1){let y=W.join(k,`run-${h}`);await oe(y);let P=await wb(w,n,m,e),S=await t(P,{...e,configName:w,evalItem:f,runIndex:h});await Sb(y,w,f,P,S),g[w].push({run_id:`run-${h}`,session_id:S.result.sessionId,success:S.result.success,total_tokens:S.totalTokens,duration_ms:S.durationMs,output_chars:S.result.lastText.length})}}d.push({eval_id:f.id??l,prompt:f.prompt??f.query??"",configs:g})}return{workspace:r,skill_name:n.name,eval_count:o.length,configs:a,runs_per_config:c,reports:d}}function Pb(e){let t={skillPath:"",evalsPath:"",workspaceDir:"",provider:"anthropic",model:void 0,runsPerConfig:1,maxIter:30,reasoningMode:"off",cwd:process.cwd(),configs:["with_skill","without_skill"],output:void 0};for(let n=2;n<e.length;n+=1){let r=e[n];r==="--skill-path"&&e[n+1]?t.skillPath=e[++n]:r==="--evals"&&e[n+1]?t.evalsPath=e[++n]:r==="--workspace"&&e[n+1]?t.workspaceDir=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--runs"&&e[n+1]?t.runsPerConfig=Number(e[++n]):r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--configs"&&e[n+1]?t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean):r==="--output"&&e[n+1]&&(t.output=e[++n])}return t}async function mf(e=process.argv){let t=Pb(e);(!t.skillPath||!t.evalsPath||!t.workspaceDir)&&(console.error("Usage: node scripts/run-eval.js --skill-path <dir> --evals <evals.json> --workspace <dir> [--provider anthropic] [--runs 1]"),process.exit(1));let n=await bb(t),r=`${JSON.stringify(n,null,2)}
507
+ `;t.output?(await Fe(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var vb,hf=p(()=>{"use strict";Ns();Mn();ye();s(fb,"normalizeAssertion");s(pb,"countToolCalls");s(mb,"countToolErrors");s(hb,"renderTranscript");s(Ob,"readInputFiles");s(gb,"buildEvalPrompt");s(yb,"defaultRunAgent");s(wb,"prepareConfigPrompt");s(Sb,"writeRunArtifacts");s(bb,"runEvalWorkspace");s(Pb,"parseArgs");s(mf,"main");vb=!1;vb&&mf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as kb,readFile as Us,writeFile as gf}from"node:fs/promises";import F from"node:path";function Rt(e){return String(e??"").trim()}function yf(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Rt(i):i&&typeof i=="object"&&typeof i.text=="string"?Rt(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Rt(e?.expected_output);return r?[r]:[]}function Vs(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Of(e,t){return{text:Rt(e?.text??t),passed:e?.passed===!0,evidence:Rt(e?.evidence)}}function xb(e,t){let n=Kt(e)??{},r=Array.isArray(n.expectations)?n.expectations:[],i=[],o=new Set;for(let a of t){let c=r.findIndex((d,l)=>o.has(l)?!1:Rt(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}o.add(c),i.push(Of(r[c],a))}if(t.length===0)for(let a of r){let c=Of(a,"");c.text&&i.push(c)}return{overall_summary:Rt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:Vs(n.user_notes_summary?.uncertainties),needs_review:Vs(n.user_notes_summary?.needs_review),workarounds:Vs(n.user_notes_summary?.workarounds)}}}async function Ks(e){return(await kb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>F.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function Tb(e){let t=F.dirname(e),n=F.dirname(t),r=F.basename(t),i=F.basename(e),o=F.join(e,"outputs"),a=await Re(F.join(n,"eval_metadata.json"),{}),c=await Us(F.join(o,"result.md"),"utf8").catch(()=>""),d=await Us(F.join(o,"prompt.txt"),"utf8").catch(()=>""),l=await Us(F.join(e,"transcript.md"),"utf8").catch(()=>""),f=await Re(F.join(o,"metrics.json"),{}),u=await Re(F.join(e,"result.json"),{}),m=await Re(F.join(e,"timing.json"),{});return{evalDir:n,runDir:e,runId:i,configName:r,evalMetadata:a,outputsDir:o,resultText:c,promptText:d,transcript:l,metrics:f,result:u,timing:m}}function Rb(e){let t=yf(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
507
508
  `):"(No explicit assertions; infer one expectation from expected_output if present.)";return`${e.agentInstructions.trim()}
508
509
 
509
510
  Return JSON with this shape:
@@ -549,12 +550,12 @@ ${JSON.stringify({total_tool_calls:e.metrics.total_tool_calls??e.result.executio
549
550
 
550
551
  ## Transcript Excerpt
551
552
  ${ie(e.transcript,5e3)}
552
- `}async function yf(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:F.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}async function Rb(e,t,n=yf){let r=await xb(F.resolve(e)),i=gf(r.evalMetadata),o=await Yt(import.meta.url,"../agents/grader.md"),a=Tb({...r,agentInstructions:o}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=kb(c,i),l={total_tool_calls:r.metrics.total_tool_calls??r.result.execution_metrics?.total_tool_calls??0,errors_encountered:r.metrics.errors_encountered??r.result.execution_metrics?.errors_encountered??0,output_chars:r.metrics.output_chars??r.result.execution_metrics?.output_chars??r.resultText.length},f={summary:af(d.expectations),expectations:d.expectations,execution_metrics:l,user_notes_summary:d.user_notes_summary,overall_summary:d.overall_summary,timing:{total_tokens:r.timing.total_tokens??0,total_duration_seconds:r.timing.total_duration_seconds??0},meta:{generated_at:new Date().toISOString(),eval_id:r.evalMetadata.eval_id??null,eval_name:r.evalMetadata.eval_name??null,config:r.configName,run_id:r.runId}};return await Of(F.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
553
- `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function _b(e,t=yf){let n=F.resolve(e.workspaceDir);await oe(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],o=[];for(let c of await Vs(n))if(F.basename(c).startsWith("eval-"))for(let d of await Vs(c)){let l=F.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await Vs(d)){if(!F.basename(f).startsWith("run-"))continue;let u=F.join(f,"grading.json");if(await Re(u,null)&&e.overwrite!==!0){o.push(F.relative(n,f).replace(/\\/g,"/"));continue}let g=await Rb(f,e,t);i.push({run:F.relative(n,f).replace(/\\/g,"/"),summary:g.grading.summary,config:g.grading.meta.config,eval_id:g.grading.meta.eval_id})}}let a={workspace:n,generated_at:new Date().toISOString(),processed:i.length,skipped:o.length,processed_runs:i,skipped_runs:o};return await Of(F.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
554
- `,"utf8"),a}function Qb(e){let t={workspaceDir:e[2]??"",provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd(),overwrite:!1,configs:[]};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--overwrite"?t.overwrite=!0:r==="--configs"&&e[n+1]&&(t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean))}return t}async function wf(e=process.argv){let t=Qb(e);t.workspaceDir||(console.error("Usage: node scripts/grade-evals.js <workspace> [--provider anthropic] [--configs with_skill,without_skill] [--overwrite]"),process.exit(1));let n=await _b(t);process.stdout.write(`${JSON.stringify(n,null,2)}
555
- `)}var Eb,Sf=p(()=>{"use strict";ye();s(Rt,"normalizeExpectationText");s(gf,"normalizeExpectedRubric");s(Us,"normalizeStringArray");s(hf,"normalizeExpectationEntry");s(kb,"normalizeParsedGrading");s(Vs,"listDirectories");s(xb,"loadRunContext");s(Tb,"buildGradingPrompt");s(yf,"defaultRunJudge");s(Rb,"gradeRun");s(_b,"gradeWorkspace");s(Qb,"parseArgs");s(wf,"main");Eb=!1;Eb&&wf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Ib,readdir as $b,stat as Cb,writeFile as bf}from"node:fs/promises";import se from"node:path";async function Ks(e){return JSON.parse(await Ib(e,"utf8"))}async function Ab(e){try{return await Cb(e),!0}catch{return!1}}async function Ys(e){return(await $b(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>se.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function ui(e){let t=await Ab(se.join(e,"runs"))?se.join(e,"runs"):e,n=(await Ys(t)).filter(i=>se.basename(i).startsWith("eval-")),r={};for(let i of n){let o=se.join(i,"eval_metadata.json"),c=(await Ks(o).catch(()=>({}))).eval_id??se.basename(i);for(let d of await Ys(i)){let l=se.basename(d),f=(await Ys(d)).filter(u=>se.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await Ks(se.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await Ks(se.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:se.basename(u),pass_rate:m.summary?.pass_rate??0,passed:m.summary?.passed??0,failed:m.summary?.failed??0,total:m.summary?.total??0,time_seconds:g.total_duration_seconds??m.timing?.total_duration_seconds??0,tokens:g.total_tokens??m.execution_metrics?.output_chars??0,tool_calls:m.execution_metrics?.total_tool_calls??0,errors:m.execution_metrics?.errors_encountered??0,expectations:Array.isArray(m.expectations)?m.expectations:[],notes:[...m.user_notes_summary?.uncertainties??[],...m.user_notes_summary?.needs_review??[],...m.user_notes_summary?.workarounds??[]]})}}}}return r}function Xb(e){let t={};for(let[o,a]of Object.entries(e))t[o]={pass_rate:ci(a.map(c=>Number(c.pass_rate??0))),time_seconds:ci(a.map(c=>Number(c.time_seconds??0))),tokens:ci(a.map(c=>Number(c.tokens??0)))};let n=Object.keys(t),r=t[n[0]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}},i=t[n[1]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}};return{configs:t,delta:{pass_rate:di(r.pass_rate.mean-i.pass_rate.mean),time_seconds:di(r.time_seconds.mean-i.time_seconds.mean),tokens:di(r.tokens.mean-i.tokens.mean)}}}function Gs(e,t,n){let r=Xb(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:se.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function Mb(e){let t=[`# Benchmark: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"","| Config | Pass Rate | Time (s) | Tokens |","| --- | --- | --- | --- |"];for(let[n,r]of Object.entries(e.configs))t.push(`| ${n} | ${r.pass_rate.mean} \xB1 ${r.pass_rate.stddev} | ${r.time_seconds.mean} \xB1 ${r.time_seconds.stddev} | ${r.tokens.mean} \xB1 ${r.tokens.stddev} |`);return t.push(""),t.push("## Delta"),t.push(""),t.push(`- Pass rate: ${e.delta.pass_rate}`),t.push(`- Time (s): ${e.delta.time_seconds}`),t.push(`- Tokens: ${e.delta.tokens}`),t.join(`
556
- `)}function jb(e){let t={iterationDir:e[2],skillName:"unknown-skill"};for(let n=3;n<e.length;n+=1)e[n]==="--skill-name"&&e[n+1]&&(t.skillName=e[n+1],n+=1);return t}async function Wb(){let{iterationDir:e,skillName:t}=jb(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await ui(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Gs(e,t,n),i=se.join(e,"benchmark.json"),o=se.join(e,"benchmark.md");await bf(i,JSON.stringify(r,null,2)),await bf(o,`${Mb(r)}
557
- `),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var Fb,Pf=p(()=>{"use strict";ye();s(Ks,"readJson");s(Ab,"pathExists");s(Ys,"listDirectories");s(ui,"loadRunResults");s(Xb,"summarizeConfigs");s(Gs,"buildBenchmarkDocument");s(Mb,"renderBenchmarkMarkdown");s(jb,"parseArgs");s(Wb,"main");Fb=!1;Fb&&Wb().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Bs}from"node:fs/promises";import De from"node:path";function fi(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Db(e){let t={};for(let[n,r]of Object.entries(e)){let i=new Map,o=[];for(let a of r){for(let c of a.expectations??[]){if(c?.passed===!0)continue;let d=String(c?.text??"").trim();d&&i.set(d,(i.get(d)??0)+1)}for(let c of a.notes??[]){let d=String(c??"").trim();d&&o.push(d)}}t[n]={repeated_failures:Array.from(i.entries()).sort((a,c)=>c[1]-a[1]).slice(0,10).map(([a,c])=>({text:a,count:c})),notes:o.slice(0,10)}}return t}function Nb(e,t,n){let r=Kt(e)??{};return{skill_name:t.skill_name,generated_at:new Date().toISOString(),workspace:t.workspace,verdict:["improves","regresses","mixed","inconclusive"].includes(r.verdict)?r.verdict:"inconclusive",release_readiness:["ready","needs_iteration","needs_manual_review"].includes(r.release_readiness)?r.release_readiness:"needs_manual_review",recommendation:String(r.recommendation??"").trim(),key_findings:fi(r.key_findings),variance_hotspots:fi(r.variance_hotspots),suggested_actions:fi(r.suggested_actions),watchouts:fi(r.watchouts),supporting_metrics:{pass_rate_delta:t.delta?.pass_rate??"n/a",time_seconds_delta:t.delta?.time_seconds??"n/a",tokens_delta:t.delta?.tokens??"n/a"},failure_clusters:n}}function Lb(e){return`${e.agentInstructions.trim()}
553
+ `}async function wf(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:F.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}async function _b(e,t,n=wf){let r=await Tb(F.resolve(e)),i=yf(r.evalMetadata),o=await Yt(import.meta.url,"../agents/grader.md"),a=Rb({...r,agentInstructions:o}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=xb(c,i),l={total_tool_calls:r.metrics.total_tool_calls??r.result.execution_metrics?.total_tool_calls??0,errors_encountered:r.metrics.errors_encountered??r.result.execution_metrics?.errors_encountered??0,output_chars:r.metrics.output_chars??r.result.execution_metrics?.output_chars??r.resultText.length},f={summary:cf(d.expectations),expectations:d.expectations,execution_metrics:l,user_notes_summary:d.user_notes_summary,overall_summary:d.overall_summary,timing:{total_tokens:r.timing.total_tokens??0,total_duration_seconds:r.timing.total_duration_seconds??0},meta:{generated_at:new Date().toISOString(),eval_id:r.evalMetadata.eval_id??null,eval_name:r.evalMetadata.eval_name??null,config:r.configName,run_id:r.runId}};return await gf(F.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
554
+ `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function Qb(e,t=wf){let n=F.resolve(e.workspaceDir);await oe(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],o=[];for(let c of await Ks(n))if(F.basename(c).startsWith("eval-"))for(let d of await Ks(c)){let l=F.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await Ks(d)){if(!F.basename(f).startsWith("run-"))continue;let u=F.join(f,"grading.json");if(await Re(u,null)&&e.overwrite!==!0){o.push(F.relative(n,f).replace(/\\/g,"/"));continue}let g=await _b(f,e,t);i.push({run:F.relative(n,f).replace(/\\/g,"/"),summary:g.grading.summary,config:g.grading.meta.config,eval_id:g.grading.meta.eval_id})}}let a={workspace:n,generated_at:new Date().toISOString(),processed:i.length,skipped:o.length,processed_runs:i,skipped_runs:o};return await gf(F.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
555
+ `,"utf8"),a}function Eb(e){let t={workspaceDir:e[2]??"",provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd(),overwrite:!1,configs:[]};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--overwrite"?t.overwrite=!0:r==="--configs"&&e[n+1]&&(t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean))}return t}async function Sf(e=process.argv){let t=Eb(e);t.workspaceDir||(console.error("Usage: node scripts/grade-evals.js <workspace> [--provider anthropic] [--configs with_skill,without_skill] [--overwrite]"),process.exit(1));let n=await Qb(t);process.stdout.write(`${JSON.stringify(n,null,2)}
556
+ `)}var Ib,bf=p(()=>{"use strict";ye();s(Rt,"normalizeExpectationText");s(yf,"normalizeExpectedRubric");s(Vs,"normalizeStringArray");s(Of,"normalizeExpectationEntry");s(xb,"normalizeParsedGrading");s(Ks,"listDirectories");s(Tb,"loadRunContext");s(Rb,"buildGradingPrompt");s(wf,"defaultRunJudge");s(_b,"gradeRun");s(Qb,"gradeWorkspace");s(Eb,"parseArgs");s(Sf,"main");Ib=!1;Ib&&Sf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as $b,readdir as Cb,stat as Ab,writeFile as Pf}from"node:fs/promises";import se from"node:path";async function Ys(e){return JSON.parse(await $b(e,"utf8"))}async function Xb(e){try{return await Ab(e),!0}catch{return!1}}async function Gs(e){return(await Cb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>se.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function fi(e){let t=await Xb(se.join(e,"runs"))?se.join(e,"runs"):e,n=(await Gs(t)).filter(i=>se.basename(i).startsWith("eval-")),r={};for(let i of n){let o=se.join(i,"eval_metadata.json"),c=(await Ys(o).catch(()=>({}))).eval_id??se.basename(i);for(let d of await Gs(i)){let l=se.basename(d),f=(await Gs(d)).filter(u=>se.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await Ys(se.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await Ys(se.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:se.basename(u),pass_rate:m.summary?.pass_rate??0,passed:m.summary?.passed??0,failed:m.summary?.failed??0,total:m.summary?.total??0,time_seconds:g.total_duration_seconds??m.timing?.total_duration_seconds??0,tokens:g.total_tokens??m.execution_metrics?.output_chars??0,tool_calls:m.execution_metrics?.total_tool_calls??0,errors:m.execution_metrics?.errors_encountered??0,expectations:Array.isArray(m.expectations)?m.expectations:[],notes:[...m.user_notes_summary?.uncertainties??[],...m.user_notes_summary?.needs_review??[],...m.user_notes_summary?.workarounds??[]]})}}}}return r}function Mb(e){let t={};for(let[o,a]of Object.entries(e))t[o]={pass_rate:di(a.map(c=>Number(c.pass_rate??0))),time_seconds:di(a.map(c=>Number(c.time_seconds??0))),tokens:di(a.map(c=>Number(c.tokens??0)))};let n=Object.keys(t),r=t[n[0]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}},i=t[n[1]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}};return{configs:t,delta:{pass_rate:li(r.pass_rate.mean-i.pass_rate.mean),time_seconds:li(r.time_seconds.mean-i.time_seconds.mean),tokens:li(r.tokens.mean-i.tokens.mean)}}}function Bs(e,t,n){let r=Mb(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:se.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function jb(e){let t=[`# Benchmark: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"","| Config | Pass Rate | Time (s) | Tokens |","| --- | --- | --- | --- |"];for(let[n,r]of Object.entries(e.configs))t.push(`| ${n} | ${r.pass_rate.mean} \xB1 ${r.pass_rate.stddev} | ${r.time_seconds.mean} \xB1 ${r.time_seconds.stddev} | ${r.tokens.mean} \xB1 ${r.tokens.stddev} |`);return t.push(""),t.push("## Delta"),t.push(""),t.push(`- Pass rate: ${e.delta.pass_rate}`),t.push(`- Time (s): ${e.delta.time_seconds}`),t.push(`- Tokens: ${e.delta.tokens}`),t.join(`
557
+ `)}function Wb(e){let t={iterationDir:e[2],skillName:"unknown-skill"};for(let n=3;n<e.length;n+=1)e[n]==="--skill-name"&&e[n+1]&&(t.skillName=e[n+1],n+=1);return t}async function Fb(){let{iterationDir:e,skillName:t}=Wb(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await fi(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Bs(e,t,n),i=se.join(e,"benchmark.json"),o=se.join(e,"benchmark.md");await Pf(i,JSON.stringify(r,null,2)),await Pf(o,`${jb(r)}
558
+ `),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var Db,vf=p(()=>{"use strict";ye();s(Ys,"readJson");s(Xb,"pathExists");s(Gs,"listDirectories");s(fi,"loadRunResults");s(Mb,"summarizeConfigs");s(Bs,"buildBenchmarkDocument");s(jb,"renderBenchmarkMarkdown");s(Wb,"parseArgs");s(Fb,"main");Db=!1;Db&&Fb().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Zs}from"node:fs/promises";import De from"node:path";function pi(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Nb(e){let t={};for(let[n,r]of Object.entries(e)){let i=new Map,o=[];for(let a of r){for(let c of a.expectations??[]){if(c?.passed===!0)continue;let d=String(c?.text??"").trim();d&&i.set(d,(i.get(d)??0)+1)}for(let c of a.notes??[]){let d=String(c??"").trim();d&&o.push(d)}}t[n]={repeated_failures:Array.from(i.entries()).sort((a,c)=>c[1]-a[1]).slice(0,10).map(([a,c])=>({text:a,count:c})),notes:o.slice(0,10)}}return t}function Lb(e,t,n){let r=Kt(e)??{};return{skill_name:t.skill_name,generated_at:new Date().toISOString(),workspace:t.workspace,verdict:["improves","regresses","mixed","inconclusive"].includes(r.verdict)?r.verdict:"inconclusive",release_readiness:["ready","needs_iteration","needs_manual_review"].includes(r.release_readiness)?r.release_readiness:"needs_manual_review",recommendation:String(r.recommendation??"").trim(),key_findings:pi(r.key_findings),variance_hotspots:pi(r.variance_hotspots),suggested_actions:pi(r.suggested_actions),watchouts:pi(r.watchouts),supporting_metrics:{pass_rate_delta:t.delta?.pass_rate??"n/a",time_seconds_delta:t.delta?.time_seconds??"n/a",tokens_delta:t.delta?.tokens??"n/a"},failure_clusters:n}}function qb(e){return`${e.agentInstructions.trim()}
558
559
 
559
560
  Return JSON with this shape:
560
561
  {
@@ -572,12 +573,12 @@ ${ie(JSON.stringify({skill_name:e.benchmark.skill_name,configs:e.benchmark.confi
572
573
 
573
574
  ## Failure Clusters
574
575
  ${ie(JSON.stringify(e.failureClusters,null,2),8e3)}
575
- `}async function qb(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:De.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function zb(e){let t=[`# Benchmark Analysis: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"",`- Verdict: ${e.verdict}`,`- Release readiness: ${e.release_readiness}`,`- Recommendation: ${e.recommendation||"n/a"}`,""],n=[["key_findings","Key Findings"],["variance_hotspots","Variance Hotspots"],["suggested_actions","Suggested Actions"],["watchouts","Watchouts"]];for(let[r,i]of n){t.push(`## ${i}`),t.push("");let o=Array.isArray(e[r])?e[r]:[];if(o.length===0)t.push("- None");else for(let a of o)t.push(`- ${a}`);t.push("")}return t.push("## Supporting Metrics"),t.push(""),t.push(`- Pass rate delta: ${e.supporting_metrics.pass_rate_delta}`),t.push(`- Time delta: ${e.supporting_metrics.time_seconds_delta}`),t.push(`- Tokens delta: ${e.supporting_metrics.tokens_delta}`),`${t.join(`
576
+ `}async function zb(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:De.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Ub(e){let t=[`# Benchmark Analysis: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"",`- Verdict: ${e.verdict}`,`- Release readiness: ${e.release_readiness}`,`- Recommendation: ${e.recommendation||"n/a"}`,""],n=[["key_findings","Key Findings"],["variance_hotspots","Variance Hotspots"],["suggested_actions","Suggested Actions"],["watchouts","Watchouts"]];for(let[r,i]of n){t.push(`## ${i}`),t.push("");let o=Array.isArray(e[r])?e[r]:[];if(o.length===0)t.push("- None");else for(let a of o)t.push(`- ${a}`);t.push("")}return t.push("## Supporting Metrics"),t.push(""),t.push(`- Pass rate delta: ${e.supporting_metrics.pass_rate_delta}`),t.push(`- Time delta: ${e.supporting_metrics.time_seconds_delta}`),t.push(`- Tokens delta: ${e.supporting_metrics.tokens_delta}`),`${t.join(`
576
577
  `)}
577
- `}async function Ub(e,t=qb){let n=De.resolve(e.workspaceDir),r=De.resolve(e.benchmarkPath??De.join(n,"benchmark.json")),i=await Re(r,null);if(!i){let g=await ui(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Gs(n,e.skillName??De.basename(n),g),await Bs(r,`${JSON.stringify(i,null,2)}
578
- `,"utf8")}let o=await ui(n),a=Db(o),c=await Yt(import.meta.url,"../agents/analyzer.md"),d=Lb({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=Nb(l,i,a),u=De.resolve(e.outputPath??De.join(n,"analysis.json")),m=De.resolve(e.markdownPath??De.join(n,"analysis.md"));return await Bs(u,`${JSON.stringify(f,null,2)}
579
- `,"utf8"),await Bs(m,zb(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function Vb(e){let t={workspaceDir:e[2]??"",benchmarkPath:void 0,outputPath:void 0,markdownPath:void 0,skillName:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--benchmark"&&e[n+1]?t.benchmarkPath=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--skill-name"&&e[n+1]?t.skillName=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function vf(e=process.argv){let t=Vb(e);t.workspaceDir||(console.error("Usage: node scripts/analyze-benchmark.js <workspace> [--benchmark benchmark.json] [--output analysis.json] [--markdown analysis.md]"),process.exit(1));let n=await Ub(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
580
- `)}var Kb,kf=p(()=>{"use strict";Pf();ye();s(fi,"normalizeStringArray");s(Db,"summarizeFailureClusters");s(Nb,"normalizeAnalysisResult");s(Lb,"buildAnalysisPrompt");s(qb,"defaultRunAnalyst");s(zb,"renderAnalysisMarkdown");s(Ub,"analyzeBenchmark");s(Vb,"parseArgs");s(vf,"main");Kb=!1;Kb&&vf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Yb,readFile as xf,writeFile as Tf}from"node:fs/promises";import V from"node:path";async function Hs(e){return(await Yb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>V.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Zs(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Gb(e){let t=Kt(e)??{},n=["A","B","tie","inconclusive"].includes(t.winner)?t.winner:"inconclusive",r=Number(t.confidence);return{winner:n,confidence:Number.isFinite(r)?Math.max(0,Math.min(1,Number(r.toFixed(4)))):0,rationale:String(t.rationale??"").trim(),strengths_a:Zs(t.strengths_a),strengths_b:Zs(t.strengths_b),risks:Zs(t.risks)}}async function Bb(e,t,n,r){let i=(await Hs(V.join(e,t))).filter(u=>V.basename(u).startsWith("run-")),o=(await Hs(V.join(e,n))).filter(u=>V.basename(u).startsWith("run-")),a=i[r],c=o[r];if(!a||!c)return null;let d=await Re(V.join(e,"eval_metadata.json"),{}),l=await xf(V.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await xf(V.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:V.basename(a),configName:t,output:l},runB:{runDir:c,runId:V.basename(c),configName:n,output:f}}}function Zb(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
578
+ `}async function Vb(e,t=zb){let n=De.resolve(e.workspaceDir),r=De.resolve(e.benchmarkPath??De.join(n,"benchmark.json")),i=await Re(r,null);if(!i){let g=await fi(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Bs(n,e.skillName??De.basename(n),g),await Zs(r,`${JSON.stringify(i,null,2)}
579
+ `,"utf8")}let o=await fi(n),a=Nb(o),c=await Yt(import.meta.url,"../agents/analyzer.md"),d=qb({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=Lb(l,i,a),u=De.resolve(e.outputPath??De.join(n,"analysis.json")),m=De.resolve(e.markdownPath??De.join(n,"analysis.md"));return await Zs(u,`${JSON.stringify(f,null,2)}
580
+ `,"utf8"),await Zs(m,Ub(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function Kb(e){let t={workspaceDir:e[2]??"",benchmarkPath:void 0,outputPath:void 0,markdownPath:void 0,skillName:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--benchmark"&&e[n+1]?t.benchmarkPath=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--skill-name"&&e[n+1]?t.skillName=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function kf(e=process.argv){let t=Kb(e);t.workspaceDir||(console.error("Usage: node scripts/analyze-benchmark.js <workspace> [--benchmark benchmark.json] [--output analysis.json] [--markdown analysis.md]"),process.exit(1));let n=await Vb(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
581
+ `)}var Yb,xf=p(()=>{"use strict";vf();ye();s(pi,"normalizeStringArray");s(Nb,"summarizeFailureClusters");s(Lb,"normalizeAnalysisResult");s(qb,"buildAnalysisPrompt");s(zb,"defaultRunAnalyst");s(Ub,"renderAnalysisMarkdown");s(Vb,"analyzeBenchmark");s(Kb,"parseArgs");s(kf,"main");Yb=!1;Yb&&kf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Gb,readFile as Tf,writeFile as Rf}from"node:fs/promises";import V from"node:path";async function Js(e){return(await Gb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>V.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Hs(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Bb(e){let t=Kt(e)??{},n=["A","B","tie","inconclusive"].includes(t.winner)?t.winner:"inconclusive",r=Number(t.confidence);return{winner:n,confidence:Number.isFinite(r)?Math.max(0,Math.min(1,Number(r.toFixed(4)))):0,rationale:String(t.rationale??"").trim(),strengths_a:Hs(t.strengths_a),strengths_b:Hs(t.strengths_b),risks:Hs(t.risks)}}async function Zb(e,t,n,r){let i=(await Js(V.join(e,t))).filter(u=>V.basename(u).startsWith("run-")),o=(await Js(V.join(e,n))).filter(u=>V.basename(u).startsWith("run-")),a=i[r],c=o[r];if(!a||!c)return null;let d=await Re(V.join(e,"eval_metadata.json"),{}),l=await Tf(V.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await Tf(V.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:V.basename(a),configName:t,output:l},runB:{runDir:c,runId:V.basename(c),configName:n,output:f}}}function Hb(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
581
582
 
582
583
  Return JSON with this shape:
583
584
  {
@@ -605,15 +606,15 @@ ${ie(t.A.output,12e3)}
605
606
 
606
607
  ## Candidate B
607
608
  ${ie(t.B.output,12e3)}
608
- `}async function Hb(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:V.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Jb(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function eP(e){let t=[`# Blind Comparison: ${e.config_a} vs ${e.config_b}`,"",`Generated: ${e.generated_at}`,"",`- ${e.config_a} wins: ${e.summary.config_a_wins}`,`- ${e.config_b} wins: ${e.summary.config_b_wins}`,`- ties: ${e.summary.ties}`,`- inconclusive: ${e.summary.inconclusive}`,""];for(let n of e.comparisons)t.push(`## Eval ${n.eval_id??n.eval_name??n.index}`),t.push(""),t.push(`- Winner: ${n.winner_config}`),t.push(`- Confidence: ${n.confidence}`),t.push(`- Rationale: ${n.rationale||"n/a"}`),t.push("");return`${t.join(`
609
+ `}async function Jb(e,t){let{runKodaX:n}=await nt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:V.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function eP(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function tP(e){let t=[`# Blind Comparison: ${e.config_a} vs ${e.config_b}`,"",`Generated: ${e.generated_at}`,"",`- ${e.config_a} wins: ${e.summary.config_a_wins}`,`- ${e.config_b} wins: ${e.summary.config_b_wins}`,`- ties: ${e.summary.ties}`,`- inconclusive: ${e.summary.inconclusive}`,""];for(let n of e.comparisons)t.push(`## Eval ${n.eval_id??n.eval_name??n.index}`),t.push(""),t.push(`- Winner: ${n.winner_config}`),t.push(`- Confidence: ${n.confidence}`),t.push(`- Rationale: ${n.rationale||"n/a"}`),t.push("");return`${t.join(`
609
610
  `)}
610
- `}async function tP(e,t=Hb){let n=V.resolve(e.workspaceDir),r=e.configA??"with_skill",i=e.configB??"without_skill",o=Number.isFinite(e.maxPairs)&&e.maxPairs>0?Math.floor(e.maxPairs):Number.POSITIVE_INFINITY,a=await Yt(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Hs(n))if(V.basename(u).startsWith("eval-"))for(let m=0;m<o;m+=1){let g=await Bb(u,r,i,m);if(!g)break;let w=c.length%2===0,k=Zb({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:w}),h=await t(k,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=Gb(h),P=Jb(y.winner,w,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:V.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:V.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:w?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:P,confidence:y.confidence,rationale:y.rationale,strengths_a:y.strengths_a,strengths_b:y.strengths_b,risks:y.risks})}if(c.length===0)throw new Error(`No comparable run pairs found for ${r} vs ${i} in ${n}`);let d={workspace:n,generated_at:new Date().toISOString(),config_a:r,config_b:i,summary:{total_pairs:c.length,config_a_wins:c.filter(u=>u.winner_config===r).length,config_b_wins:c.filter(u=>u.winner_config===i).length,ties:c.filter(u=>u.winner_config==="tie").length,inconclusive:c.filter(u=>u.winner_config==="inconclusive").length},comparisons:c},l=V.resolve(e.outputPath??V.join(n,"comparison.json")),f=V.resolve(e.markdownPath??V.join(n,"comparison.md"));return await Tf(l,`${JSON.stringify(d,null,2)}
611
- `,"utf8"),await Tf(f,eP(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function nP(e){let t={workspaceDir:e[2]??"",configA:"with_skill",configB:"without_skill",outputPath:void 0,markdownPath:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,maxPairs:void 0,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--config-a"&&e[n+1]?t.configA=e[++n]:r==="--config-b"&&e[n+1]?t.configB=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--max-pairs"&&e[n+1]?t.maxPairs=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function Rf(e=process.argv){let t=nP(e);t.workspaceDir||(console.error("Usage: node scripts/compare-runs.js <workspace> [--config-a with_skill] [--config-b without_skill] [--output comparison.json]"),process.exit(1));let n=await tP(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
612
- `)}var rP,_f=p(()=>{"use strict";ye();s(Hs,"listDirectories");s(Zs,"normalizeStringArray");s(Gb,"normalizeComparisonResult");s(Bb,"loadComparisonPair");s(Zb,"buildComparisonPrompt");s(Hb,"defaultRunComparator");s(Jb,"mapWinnerToConfig");s(eP,"renderComparisonMarkdown");s(tP,"compareWorkspace");s(nP,"parseArgs");s(Rf,"main");rP=!1;rP&&Rf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as iP,writeFile as oP}from"node:fs/promises";import{createHash as sP}from"node:crypto";import Js from"node:path";import{zipSync as aP,strToU8 as cP}from"fflate";function lP(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function uP(e){return sP("sha256").update(e).digest("hex")}function fP(e,t,n={}){return{format:"kodax-skill-package",version:1,created_at:n.createdAt??new Date().toISOString(),entrypoint:"SKILL.md",skill:{name:e.frontmatter.name,description:e.frontmatter.description,compatibility:e.frontmatter.compatibility??null,user_invocable:e.frontmatter["user-invocable"]??!0,disable_model_invocation:e.frontmatter["disable-model-invocation"]??!1},files:t.map(r=>({path:r.relativePath,size:r.bytes.length,sha256:r.sha256})),note:"This archive is a zip file with a .skill extension. Compatible agents can extract and install the included skill directory."}}async function pP(e,t={}){let n=await Yn(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
611
+ `}async function nP(e,t=Jb){let n=V.resolve(e.workspaceDir),r=e.configA??"with_skill",i=e.configB??"without_skill",o=Number.isFinite(e.maxPairs)&&e.maxPairs>0?Math.floor(e.maxPairs):Number.POSITIVE_INFINITY,a=await Yt(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Js(n))if(V.basename(u).startsWith("eval-"))for(let m=0;m<o;m+=1){let g=await Zb(u,r,i,m);if(!g)break;let w=c.length%2===0,k=Hb({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:w}),h=await t(k,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=Bb(h),P=eP(y.winner,w,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:V.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:V.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:w?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:P,confidence:y.confidence,rationale:y.rationale,strengths_a:y.strengths_a,strengths_b:y.strengths_b,risks:y.risks})}if(c.length===0)throw new Error(`No comparable run pairs found for ${r} vs ${i} in ${n}`);let d={workspace:n,generated_at:new Date().toISOString(),config_a:r,config_b:i,summary:{total_pairs:c.length,config_a_wins:c.filter(u=>u.winner_config===r).length,config_b_wins:c.filter(u=>u.winner_config===i).length,ties:c.filter(u=>u.winner_config==="tie").length,inconclusive:c.filter(u=>u.winner_config==="inconclusive").length},comparisons:c},l=V.resolve(e.outputPath??V.join(n,"comparison.json")),f=V.resolve(e.markdownPath??V.join(n,"comparison.md"));return await Rf(l,`${JSON.stringify(d,null,2)}
612
+ `,"utf8"),await Rf(f,tP(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function rP(e){let t={workspaceDir:e[2]??"",configA:"with_skill",configB:"without_skill",outputPath:void 0,markdownPath:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,maxPairs:void 0,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--config-a"&&e[n+1]?t.configA=e[++n]:r==="--config-b"&&e[n+1]?t.configB=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--max-pairs"&&e[n+1]?t.maxPairs=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function _f(e=process.argv){let t=rP(e);t.workspaceDir||(console.error("Usage: node scripts/compare-runs.js <workspace> [--config-a with_skill] [--config-b without_skill] [--output comparison.json]"),process.exit(1));let n=await nP(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
613
+ `)}var iP,Qf=p(()=>{"use strict";ye();s(Js,"listDirectories");s(Hs,"normalizeStringArray");s(Bb,"normalizeComparisonResult");s(Zb,"loadComparisonPair");s(Hb,"buildComparisonPrompt");s(Jb,"defaultRunComparator");s(eP,"mapWinnerToConfig");s(tP,"renderComparisonMarkdown");s(nP,"compareWorkspace");s(rP,"parseArgs");s(_f,"main");iP=!1;iP&&_f().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as oP,writeFile as sP}from"node:fs/promises";import{createHash as aP}from"node:crypto";import ea from"node:path";import{zipSync as cP,strToU8 as dP}from"fflate";function uP(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function fP(e){return aP("sha256").update(e).digest("hex")}function pP(e,t,n={}){return{format:"kodax-skill-package",version:1,created_at:n.createdAt??new Date().toISOString(),entrypoint:"SKILL.md",skill:{name:e.frontmatter.name,description:e.frontmatter.description,compatibility:e.frontmatter.compatibility??null,user_invocable:e.frontmatter["user-invocable"]??!0,disable_model_invocation:e.frontmatter["disable-model-invocation"]??!1},files:t.map(r=>({path:r.relativePath,size:r.bytes.length,sha256:r.sha256})),note:"This archive is a zip file with a .skill extension. Compatible agents can extract and install the included skill directory."}}async function mP(e,t={}){let n=await Gn(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
613
614
  - ${n.errors.join(`
614
- - `)}`);let r=await Un(e),i=await Ls(e),o=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=lP(await iP(d.absolutePath));o.push({...d,bytes:l,sha256:uP(l)})}let a=fP(r,o,t),c={[dP]:cP(JSON.stringify(a,null,2))};for(let d of o)c[d.relativePath]=d.bytes;return{manifest:a,bytes:aP(c,{level:6})}}async function mP(e,t,n={}){let r=await pP(e,n);return await oP(t,r.bytes),{...r,outputPath:Js.resolve(t)}}function hP(e){let t={skillDir:e[2],output:void 0};for(let n=3;n<e.length;n+=1)e[n]==="--output"&&e[n+1]&&(t.output=e[++n]);return t}async function Qf(e=process.argv){let t=hP(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await Un(t.skillDir),r=t.output??Js.join(Js.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await mP(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var dP,OP,Ef=p(()=>{"use strict";li();ye();dP=".kodax-package.json";s(lP,"toUint8Array");s(uP,"sha256");s(fP,"createPackageManifest");s(pP,"buildSkillPackage");s(mP,"writeSkillPackage");s(hP,"parseArgs");s(Qf,"main");OP=!1;OP&&Qf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as gP,mkdir as ea,readFile as Cf,rm as Af,stat as yP,writeFile as wP}from"node:fs/promises";import _e from"node:path";import{strFromU8 as If,unzipSync as SP}from"fflate";function bP(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function PP(e){let t=bP(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function vP(e){return/\.(skill|zip)$/i.test(e)}function kP(e){let t=SP(e),n=Object.entries(t).map(([l,f])=>({relativePath:PP(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=ai(If(r.bytes)),o=typeof i.frontmatter.name=="string"?i.frontmatter.name.trim():"",a=typeof i.frontmatter.description=="string"?i.frontmatter.description.trim():"";if(!o||!a)throw new Error("Archive SKILL.md is missing required frontmatter fields.");let c=n.find(l=>l.relativePath===$f),d=c?JSON.parse(If(c.bytes)):null;return{skillName:o,manifest:d,entries:n.filter(l=>l.relativePath!==$f)}}async function xP(e,t){if(await Vn(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Af(e,{recursive:!0,force:!0})}await ea(e,{recursive:!0})}async function TP(e,t={}){let n=_e.resolve(t.skillsDir??Kn()),r=kP(await Cf(e)),i=_e.join(n,r.skillName);await xP(i,t.force===!0);for(let o of r.entries){let a=_e.join(i,o.relativePath);await ea(_e.dirname(a),{recursive:!0}),await wP(a,o.bytes)}return{skillName:r.skillName,installedTo:i,source:_e.resolve(e),manifest:r.manifest}}async function RP(e,t={}){let n=await Yn(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
615
+ - `)}`);let r=await Vn(e),i=await qs(e),o=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=uP(await oP(d.absolutePath));o.push({...d,bytes:l,sha256:fP(l)})}let a=pP(r,o,t),c={[lP]:dP(JSON.stringify(a,null,2))};for(let d of o)c[d.relativePath]=d.bytes;return{manifest:a,bytes:cP(c,{level:6})}}async function hP(e,t,n={}){let r=await mP(e,n);return await sP(t,r.bytes),{...r,outputPath:ea.resolve(t)}}function OP(e){let t={skillDir:e[2],output:void 0};for(let n=3;n<e.length;n+=1)e[n]==="--output"&&e[n+1]&&(t.output=e[++n]);return t}async function Ef(e=process.argv){let t=OP(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await Vn(t.skillDir),r=t.output??ea.join(ea.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await hP(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var lP,gP,If=p(()=>{"use strict";ui();ye();lP=".kodax-package.json";s(uP,"toUint8Array");s(fP,"sha256");s(pP,"createPackageManifest");s(mP,"buildSkillPackage");s(hP,"writeSkillPackage");s(OP,"parseArgs");s(Ef,"main");gP=!1;gP&&Ef().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as yP,mkdir as ta,readFile as Af,rm as Xf,stat as wP,writeFile as SP}from"node:fs/promises";import _e from"node:path";import{strFromU8 as $f,unzipSync as bP}from"fflate";function PP(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function vP(e){let t=PP(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function kP(e){return/\.(skill|zip)$/i.test(e)}function xP(e){let t=bP(e),n=Object.entries(t).map(([l,f])=>({relativePath:vP(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=ci($f(r.bytes)),o=typeof i.frontmatter.name=="string"?i.frontmatter.name.trim():"",a=typeof i.frontmatter.description=="string"?i.frontmatter.description.trim():"";if(!o||!a)throw new Error("Archive SKILL.md is missing required frontmatter fields.");let c=n.find(l=>l.relativePath===Cf),d=c?JSON.parse($f(c.bytes)):null;return{skillName:o,manifest:d,entries:n.filter(l=>l.relativePath!==Cf)}}async function TP(e,t){if(await Kn(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Xf(e,{recursive:!0,force:!0})}await ta(e,{recursive:!0})}async function RP(e,t={}){let n=_e.resolve(t.skillsDir??Yn()),r=xP(await Af(e)),i=_e.join(n,r.skillName);await TP(i,t.force===!0);for(let o of r.entries){let a=_e.join(i,o.relativePath);await ta(_e.dirname(a),{recursive:!0}),await SP(a,o.bytes)}return{skillName:r.skillName,installedTo:i,source:_e.resolve(e),manifest:r.manifest}}async function _P(e,t={}){let n=await Gn(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
615
616
  - ${n.errors.join(`
616
- - `)}`);let r=_e.join(e,"SKILL.md"),i=ai(await Cf(r,"utf8")),o=_e.resolve(t.skillsDir??Kn()),a=_e.join(o,i.frontmatter.name);if(await Vn(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await Af(a,{recursive:!0,force:!0})}return await ea(o,{recursive:!0}),await gP(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:_e.resolve(e),manifest:null}}async function _P(e,t={}){let n=_e.resolve(e),r=await yP(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return RP(n,t);if(r.isFile()&&vP(n))return TP(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function QP(e){let t={input:e[2],skillsDir:void 0,force:!1};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--dest"&&e[n+1]?t.skillsDir=e[++n]:r==="--force"&&(t.force=!0)}return t}async function Xf(e=process.argv){let t=QP(e);t.input||(console.error("Usage: node scripts/install-skill.js <skill-dir-or-archive> [--dest <skills-dir>] [--force]"),process.exit(1));let n=await _P(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var $f,EP,Mf=p(()=>{"use strict";li();ye();$f=".kodax-package.json";s(bP,"normalizeArchivePath");s(PP,"assertSafeArchivePath");s(vP,"isZipLike");s(kP,"readSkillPackageBuffer");s(xP,"ensureInstallTarget");s(TP,"installSkillArchive");s(RP,"installSkillDirectory");s(_P,"installSkill");s(QP,"parseArgs");s(Xf,"main");EP=!1;EP&&Xf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});var jf=p(()=>{"use strict";lf();li();mf();Sf();kf();_f();Ef();Mf();ye()});var ta=p(()=>{"use strict";bs();Ss();Xn();Ms();qn();js();tf();Ds();jf()});var na=p(()=>{"use strict"});var ra=p(()=>{"use strict"});var pi=p(()=>{"use strict"});var Wf=p(()=>{"use strict";kt()});var fD,Df=p(()=>{"use strict";ta();Vr();xt();kt();na();ra();pi();Wf();fD=1440*60*1e3});var wD,Gn=p(()=>{"use strict";Vr();ge();kt();H();wD=5*6e4});var Nf=p(()=>{"use strict";Nn();pi();Gn()});var Lf=p(()=>{"use strict";au();Df();pi();na();ra();Gn();Gn();Gn();Nf()});var lN,Bn=p(()=>{"use strict";H();lN=new Intl.Segmenter("zh-CN",{granularity:"word"})});var ia=p(()=>{"use strict";ns();Qn();as()});var oa=p(()=>{"use strict";ge();H()});var mi=p(()=>{"use strict"});var sa=p(()=>{"use strict";H();oa();mi()});var aa=p(()=>{"use strict"});var ca=p(()=>{"use strict";Bn();ia();oa();sa();ge();mi();aa()});var da=p(()=>{"use strict";jt();Bn();ca()});var Uf=p(()=>{"use strict";da()});var pL,Vf=p(()=>{"use strict";Bn();pL=String.raw`const TOOL_NAME = 'echo_tool';
617
+ - `)}`);let r=_e.join(e,"SKILL.md"),i=ci(await Af(r,"utf8")),o=_e.resolve(t.skillsDir??Yn()),a=_e.join(o,i.frontmatter.name);if(await Kn(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await Xf(a,{recursive:!0,force:!0})}return await ta(o,{recursive:!0}),await yP(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:_e.resolve(e),manifest:null}}async function QP(e,t={}){let n=_e.resolve(e),r=await wP(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return _P(n,t);if(r.isFile()&&kP(n))return RP(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function EP(e){let t={input:e[2],skillsDir:void 0,force:!1};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--dest"&&e[n+1]?t.skillsDir=e[++n]:r==="--force"&&(t.force=!0)}return t}async function Mf(e=process.argv){let t=EP(e);t.input||(console.error("Usage: node scripts/install-skill.js <skill-dir-or-archive> [--dest <skills-dir>] [--force]"),process.exit(1));let n=await QP(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var Cf,IP,jf=p(()=>{"use strict";ui();ye();Cf=".kodax-package.json";s(PP,"normalizeArchivePath");s(vP,"assertSafeArchivePath");s(kP,"isZipLike");s(xP,"readSkillPackageBuffer");s(TP,"ensureInstallTarget");s(RP,"installSkillArchive");s(_P,"installSkillDirectory");s(QP,"installSkill");s(EP,"parseArgs");s(Mf,"main");IP=!1;IP&&Mf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});var Wf=p(()=>{"use strict";uf();ui();hf();bf();xf();Qf();If();jf();ye()});var na=p(()=>{"use strict";Ps();bs();Mn();js();zn();Ws();nf();Ns();Wf()});var ra=p(()=>{"use strict"});var ia=p(()=>{"use strict"});var mi=p(()=>{"use strict"});var Ff=p(()=>{"use strict";kt()});var gD,Nf=p(()=>{"use strict";na();Kr();xt();kt();ra();ia();mi();Ff();gD=1440*60*1e3});var kD,Bn=p(()=>{"use strict";Kr();ge();kt();H();kD=5*6e4});var Lf=p(()=>{"use strict";Ln();mi();Bn()});var qf=p(()=>{"use strict";cu();Nf();mi();ra();ia();Bn();Bn();Bn();Lf()});var hN,Zn=p(()=>{"use strict";H();hN=new Intl.Segmenter("zh-CN",{granularity:"word"})});var oa=p(()=>{"use strict";rs();Qn();cs()});var sa=p(()=>{"use strict";ge();H()});var hi=p(()=>{"use strict"});var aa=p(()=>{"use strict";H();sa();hi()});var ca=p(()=>{"use strict"});var da=p(()=>{"use strict";Zn();oa();sa();aa();ge();hi();ca()});var la=p(()=>{"use strict";jt();Zn();da()});var Vf=p(()=>{"use strict";la()});var yL,Kf=p(()=>{"use strict";Zn();yL=String.raw`const TOOL_NAME = 'echo_tool';
617
618
  const RESOURCE_URI = 'memory://guide';
618
619
  const PROMPT_NAME = 'draft_prompt';
619
620
  let buffer = '';
@@ -793,17 +794,17 @@ process.stdin.on('data', (chunk) => {
793
794
 
794
795
  process.on('SIGTERM', () => process.exit(0));
795
796
  process.on('SIGINT', () => process.exit(0));
796
- `});var Kf=p(()=>{"use strict";Bn();ca();da();aa();ia();mi();sa();Uf();Vf()});async function ev(e,t,n){let r=Gf("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function tv(e,t,n){let r=Gf("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function nv(e){let t=[],n=new Map,r=[],i=null;for(let o of e){if(o.type==="label"){let c=o.payload;c?.targetId&&r.push({targetId:c.targetId,label:c.label});continue}let a={entry:o,children:[]};if(o.type==="message"){t.push(a),n.set(o.id,a),i=a;continue}i?i.children.push(a):t.push(a)}for(let{targetId:o,label:a}of r){let c=n.get(o);c&&a!==void 0&&(c.label=a)}return t}var Yf,HP,JP,Gf,rv,Bf=p(()=>{"use strict";Yf=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),HP=0,JP=0,Gf=s(e=>{let t=e==="label"?++HP:++JP,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");s(ev,"appendLabel");s(tv,"appendArtifact");s(nv,"buildLineageTree");rv=Object.freeze({name:"lineage",entryTypes:Yf,operators:Object.freeze({label:s((async(e,...t)=>{let[n,r]=t;return ev(e,n,r)}),"label"),attachArtifact:s((async(e,...t)=>{let[n,r]=t;return tv(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:s(e=>nv(e),"buildLineageTree")})})});var Zf=p(()=>{"use strict"});var hi=p(()=>{"use strict"});var Oi=p(()=>{"use strict";hi()});var la=p(()=>{"use strict"});var ua=p(()=>{"use strict";la()});var Hf=p(()=>{"use strict"});var gi=p(()=>{"use strict"});var yi=p(()=>{"use strict"});var fv,pa,wi,Gt=p(()=>{"use strict";jt();Oi();ua();Hf();hi();fn();gi();yi();fv=new Set(["skill","ask_user_question","exit_plan_mode","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output","tool_search","get_goal","create_goal","update_goal","todo_create","todo_update","todo_list","todo_get","worktree_create","worktree_remove","undo","mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt","repo_overview","changed_scope","changed_diff","changed_diff_bundle","module_context","symbol_context","process_context","impact_estimate","relationship_scan","cyclic_dependencies","semantic_lookup"]),pa=fv,wi=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
797
+ `});var Yf=p(()=>{"use strict";Zn();da();la();ca();oa();hi();aa();Vf();Kf()});async function tv(e,t,n){let r=Bf("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function nv(e,t,n){let r=Bf("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function rv(e){let t=[],n=new Map,r=[],i=null;for(let o of e){if(o.type==="label"){let c=o.payload;c?.targetId&&r.push({targetId:c.targetId,label:c.label});continue}let a={entry:o,children:[]};if(o.type==="message"){t.push(a),n.set(o.id,a),i=a;continue}i?i.children.push(a):t.push(a)}for(let{targetId:o,label:a}of r){let c=n.get(o);c&&a!==void 0&&(c.label=a)}return t}var Gf,JP,ev,Bf,iv,Zf=p(()=>{"use strict";Gf=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),JP=0,ev=0,Bf=s(e=>{let t=e==="label"?++JP:++ev,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");s(tv,"appendLabel");s(nv,"appendArtifact");s(rv,"buildLineageTree");iv=Object.freeze({name:"lineage",entryTypes:Gf,operators:Object.freeze({label:s((async(e,...t)=>{let[n,r]=t;return tv(e,n,r)}),"label"),attachArtifact:s((async(e,...t)=>{let[n,r]=t;return nv(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:s(e=>rv(e),"buildLineageTree")})})});var Hf=p(()=>{"use strict"});var Oi=p(()=>{"use strict"});var gi=p(()=>{"use strict";Oi()});var ua=p(()=>{"use strict"});var fa=p(()=>{"use strict";ua()});var Jf=p(()=>{"use strict"});var yi=p(()=>{"use strict"});var wi=p(()=>{"use strict"});var pv,ma,Si,Gt=p(()=>{"use strict";jt();gi();fa();Jf();Oi();fn();yi();wi();pv=new Set(["skill","ask_user_question","exit_plan_mode","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output","tool_search","get_goal","create_goal","update_goal","todo_create","todo_update","todo_list","todo_get","worktree_create","worktree_remove","undo","mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt","repo_overview","changed_scope","changed_diff","changed_diff_bundle","module_context","symbol_context","process_context","impact_estimate","relationship_scan","cyclic_dependencies","semantic_lookup"]),ma=pv,Si=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
797
798
 
798
- `});var ma=p(()=>{"use strict";jt()});var Bt=p(()=>{"use strict";Gt();ma()});var ip=p(()=>{"use strict";Bt()});var op=p(()=>{"use strict"});var Iq,$q,sp=p(()=>{"use strict";Gt();Bt();Iq=wi.trimEnd(),$q=16*1024});var ap=p(()=>{"use strict";Oi();Bt()});var cp=p(()=>{"use strict";Bt()});var gv,dp=p(()=>{"use strict";Gt();hi();gv={enabled:!1,maxAge:20,protectedTools:Array.from(pa)}});var lp=p(()=>{"use strict"});var up=p(()=>{"use strict";H()});var fp=p(()=>{"use strict";Gt()});var pp=p(()=>{"use strict";jt();fn();gi();yi()});var mp=p(()=>{"use strict"});var hp=p(()=>{"use strict";fp();pp();mp()});var Op=p(()=>{"use strict";Bf();Zf();ip();op();Bt();sp();ap();cp();gi();yi();Oi();la();ua();Gt();dp();ma();lp();up();hp()});var gp=p(()=>{"use strict"});var Oa=p(()=>{"use strict"});var ga=p(()=>{"use strict"});var Si=p(()=>{"use strict"});import{createRequire as vv}from"node:module";var kv,yp,DU,ya=p(()=>{"use strict";kv=vv(import.meta.url),DU=new Proxy({},{get(e,t){return yp??=kv("typescript"),Reflect.get(yp,t)}})});var wa=p(()=>{"use strict";Si();ya()});var Sp=p(()=>{"use strict";Si();wa()});var Sa=p(()=>{"use strict";vn();Oa()});var bp=p(()=>{"use strict";ga();Sa()});var Pp=p(()=>{"use strict";gp();Oa();ga();Si();wa();ya();Sp();Sa();bp()});var vp=p(()=>{"use strict"});var ba=p(()=>{"use strict"});var kp=p(()=>{"use strict";ba();ba()});var xp=p(()=>{"use strict"});var Tp=p(()=>{"use strict";vp();kp();xp()});var bi=p(()=>{"use strict"});var Pa=p(()=>{"use strict";bi()});var nV,Rp=p(()=>{"use strict";bi();Pa();nV=new Intl.Segmenter("en",{granularity:"grapheme"})});var _p=p(()=>{"use strict";Rp();bi();Pa()});var Pi=p(()=>{"use strict";zc();jt();fn();ge();Kd();Yd();Gd();ts();Ho();es();Jo();xn();Bo();Zo();Xr();al();H();ul();ns();Qn();as();Cl();Al();ls();ql();Gl();hs();Os();Bl();Zl();gs();ys();ys();Vr();Lf();ii();ii();kt();Kf();ta();Go();Op();Pp();Tp();_p()});import Qp from"node:fs";import va from"node:os";import Ne from"node:path";function $p(e){return(e==="~"?va.homedir():/^~[\\/]/.test(e)?Ne.join(va.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,va.homedir())}function ka(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=$p(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=Ne.resolve(t,n);for(;;){try{Qp.lstatSync(i)}catch(o){if(o.code!=="ENOENT")return;let a=Ne.dirname(i);if(a===i)return;r.unshift(Ne.basename(i)),i=a;continue}try{return Ne.join(Qp.realpathSync.native(i),...r)}catch{return}}}function Ep(e,t){let n=Ne.relative(t,e);if(!(!n||n.startsWith("..")||Ne.isAbsolute(n)))return n.split(/[\\/]+/).map(r=>{let i=r.toLowerCase();if(process.platform!=="win32")return i;let o=i.indexOf(":");return(o>=0?i.slice(0,o):i).replace(/[ .]+$/g,"")}).join("/")}function Cp(e,t=process.cwd()){let n;try{n=Pt()}catch{return!1}let r=Ne.resolve(n),i=Ne.resolve(t,$p(e));if(Tn(i,r)){let d=Ep(i,r);if(Ip(d))return!0}let o=ka(n)??r,a=ka(e,t);if(a===void 0)return Tn(i,r);if(!Tn(a,o))return!1;let c=Ep(a,o);return Ip(c)}function Ip(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var Ap=p(()=>{"use strict";Pi();s($p,"expandHome");s(ka,"canonicalizeAgentHomePolicyPath");s(Ep,"normalizedRelative");s(Cp,"isAgentHomeHardMutationTarget");s(Ip,"isHardAgentHomeRelativePath")});import{randomUUID as Fp}from"node:crypto";import{mkdir as Nv,readFile as Dp,rename as Lv,rm as _a,writeFile as Np}from"node:fs/promises";import Ti from"node:path";function Lp(){return Mp||(Xp=je(process.pid),Mp=!0),Xp}function Wp(e,t){return Ti.join(e,"runtime",...jp===void 0?[]:[`test-filesystem-effects-${jp}`],t)}function Yv(){let e=process.platform==="win32"?Ti.join(Ti.resolve(process.env.PROGRAMDATA??"C:\\ProgramData"),"KodaX","sandbox-runtime"):Pt();return{coordinatorPath:Wp(e,Kv),statePath:Wp(e,Vv)}}function xa(e){if(typeof e!="object"||e===null)return!1;let t=e;return Number.isInteger(t.pid)&&typeof t.token=="string"&&(t.effectPid===void 0||Number.isInteger(t.effectPid))&&(t.effectProcessStartIdentity===void 0||typeof t.effectProcessStartIdentity=="string")&&(t.effectFinished===void 0||typeof t.effectFinished=="boolean")&&(t.processStartIdentity===void 0||typeof t.processStartIdentity=="string")&&(t.sandboxPolicyKey===void 0||typeof t.sandboxPolicyKey=="string")&&(t.posixProcessGroup===void 0||typeof t.posixProcessGroup=="boolean")&&(t.windowsJobContained===void 0||typeof t.windowsJobContained=="boolean")}async function Zn(e){let t;try{t=await Dp(e.statePath,"utf8")}catch(o){if(o.code==="ENOENT")return{direct:[],namespaces:[],shells:[]};throw o}let n=JSON.parse(t);if(typeof n!="object"||n===null)throw new Error("Invalid filesystem effect lease state.");let r=n;if(!Array.isArray(r.direct)||!r.direct.every(xa))throw new Error("Invalid direct filesystem effect state.");if(!Array.isArray(r.shells)||!r.shells.every(xa))throw new Error("Invalid shell filesystem effect state.");let i=r.namespaces??[];if(!Array.isArray(i)||!i.every(xa))throw new Error("Invalid namespace filesystem effect state.");return{direct:r.direct,namespaces:i,shells:r.shells}}function Gv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function qp(e){if(!Gv(e.pid))return!1;let t=e.pid===process.pid?Lp():je(e.pid);return e.processStartIdentity===void 0||t===void 0||t===e.processStartIdentity}function Bv(e,t){if(e.effectFinished===!0)return"absent";if(e.effectPid===void 0)return t?"unknown":"absent";if(e.posixProcessGroup===!0)try{return process.kill(-e.effectPid,0),"alive"}catch(r){return r.code==="ESRCH"?"absent":"unknown"}let n=je(e.effectPid);return n!==void 0&&(e.effectProcessStartIdentity===void 0||n===e.effectProcessStartIdentity)?"alive":process.platform!=="win32"||e.windowsJobContained===!0||!t?"absent":"unknown"}function Zv(e,t,n){let r=new Map;for(let a of[...e.direct,...e.namespaces,...e.shells])r.set(a,qp(a));let i=s(a=>n.has(a.token)&&(a.effectPid===void 0||a.effectFinished===!0),"hasReleaseProof"),o=s(a=>!i(a)&&(r.get(a)===!0||Bv(a,t)!=="absent"),"keepExternalEffect");return{direct:e.direct.filter(a=>!i(a)&&r.get(a)===!0),namespaces:e.namespaces.filter(o),shells:e.shells.filter(o)}}function Qa(e,t){return`${e.statePath}.${Buffer.from(t,"utf8").toString("base64url")}.released`}async function Hv(e,t){let n=new Set,r=[...t.direct,...t.namespaces,...t.shells];return await Promise.all(r.map(async i=>{try{(await Dp(Qa(e,i.token),"utf8")).trim()===i.token&&n.add(i.token)}catch(o){if(o.code!=="ENOENT")throw o}})),n}async function Ta(e,t){try{await _a(Qa(e,t),{force:!0})}catch(n){L({source:"coding.filesystem-effect-coordinator",level:"warn",message:"Failed to remove a settled filesystem-effect release marker.",detail:n})}}async function Jv(e){return await Hn(e,async()=>{let r=await Zn(e);return[...r.namespaces,...r.shells].some(i=>!qp(i))})?(await ss()).skipped>0:!0}async function xi(e,t){let{statePath:n}=e;if(t.direct.length===0&&t.namespaces.length===0&&t.shells.length===0){await _a(n,{force:!0});return}await Nv(Ti.dirname(n),{recursive:!0});let r=`${n}.${process.pid}.${Fp()}.tmp`;await Np(r,`${JSON.stringify(t)}
799
- `,"utf8");try{await Lv(r,n)}catch(i){try{await _a(r,{force:!0})}catch(o){throw new AggregateError([i,o],"Filesystem effect state update and cleanup both failed.")}throw i}}async function Hn(e,t){let n=await Rs(e.coordinatorPath,qv);try{return await t()}finally{await n()}}function ek(e,t){return e.sandboxPolicyKey===void 0||t===void 0?!0:e.sandboxPolicyKey!==t}function Ra(e,t){return t===void 0||e.sandboxPolicyKey===void 0?!0:e.sandboxPolicyKey!==t}async function tk(e,t){let n=Yv(),r=Fp(),i=Lp(),o={pid:process.pid,token:r,...i===void 0?{}:{processStartIdentity:i},...t===void 0?{}:{sandboxPolicyKey:t}},a=Date.now()+zv,c=Date.now()+Uv,d=await Jv(n);for(;;){let R=await Hn(n,async()=>{let _=await Zn(n),X=await Hv(n,_),$=Zv(_,d,X),D=new Set([...$.direct,...$.namespaces,...$.shells].map(N=>N.token));return(e==="shell"?$.direct.length>0||$.namespaces.some(N=>ek(N,t)):e==="direct"?$.shells.length>0||$.namespaces.length>0:$.direct.length>0||$.namespaces.length>0||$.shells.some(N=>Ra(N,t)))?t!==void 0&&(e==="namespace"?$.namespaces.some(U=>U.sandboxPolicyKey!==t)||$.shells.some(U=>Ra(U,t)):e==="shell"&&$.namespaces.some(U=>U.sandboxPolicyKey!==void 0&&U.sandboxPolicyKey!==t))?"sandbox-policy-conflict":$.direct.length===0&&(e==="namespace"?t!==void 0&&$.shells.every(U=>!Ra(U,t))&&$.namespaces.length>0&&$.namespaces.every(U=>U.sandboxPolicyKey===t):e==="shell"&&t===void 0&&$.namespaces.length>0&&$.namespaces.every(U=>U.sandboxPolicyKey!==void 0))?"sandbox-acl-transition":!1:(await xi(n,e==="shell"?{direct:$.direct,namespaces:$.namespaces,shells:[...$.shells,o]}:e==="direct"?{direct:[...$.direct,o],namespaces:$.namespaces,shells:$.shells}:{direct:$.direct,namespaces:[...$.namespaces,o],shells:$.shells}),await Promise.all([...X].filter(N=>!D.has(N)).map(N=>Ta(n,N))),!0)});if(R===!0)break;if(R==="sandbox-policy-conflict")throw new Error("A different sandbox policy is already active.");let C=R==="sandbox-acl-transition"?c:a;if(Date.now()>=C)throw new Error("A model filesystem effect is already active; retry after it finishes.");await new Promise(_=>setTimeout(_,20))}let l=!1,f=!1,u,m=!1,g=!1,w=!1,k=!1,h=s(()=>Hn(n,async()=>{let R=await Zn(n),C=(e==="shell"?R.shells:e==="direct"?R.direct:R.namespaces).find(_=>_.token===r);if(C===void 0){if(f||g){await Ta(n,r);return}throw new Error("Filesystem effect lease ownership was lost.")}if(C.effectPid!==void 0&&C.effectFinished!==!0)throw new Error("Filesystem effect process tree has not been proven drained.");g=!0,await xi(n,e==="shell"?{direct:R.direct,namespaces:R.namespaces,shells:R.shells.filter(_=>_.token!==r)}:e==="direct"?{direct:R.direct.filter(_=>_.token!==r),namespaces:R.namespaces,shells:R.shells}:{direct:R.direct,namespaces:R.namespaces.filter(_=>_.token!==r),shells:R.shells}),await Ta(n,r)}),"releaseOnce"),y=s(()=>{if(l||m)return;m=!0;let R=s(()=>{setTimeout(()=>{h().then(()=>{l=!0,m=!1}).catch(()=>{R()})},250).unref?.()},"retry");R()},"scheduleBackgroundRelease"),P=s(async()=>{let R;if(!f&&(!w||k))try{await Np(Qa(n,r),`${r}
800
- `,"utf8"),f=!0}catch(_){R=_}let C;for(let _=1;_<=ki;_+=1)try{await h(),R!==void 0&&L({source:"coding.filesystem-effect-coordinator",level:"warn",message:"Filesystem-effect release converged without a durable release marker.",detail:R});return}catch(X){C=X,_<ki&&await new Promise($=>setTimeout($,20))}throw y(),R===void 0?C:new AggregateError([R,C],"Filesystem-effect release marker and coordinator cleanup both failed.")},"releaseReliably"),S=s(async()=>{l||(u??=P().then(()=>{l=!0}).finally(()=>{u=void 0}),await u)},"release"),Q=s(async(R,C)=>{if(!Number.isInteger(R)||R<=0)throw new Error(`Invalid filesystem effect process id: ${R}`);await Hn(n,async()=>{let _=await Zn(n);if(!(e==="shell"?_.shells:e==="direct"?_.direct:_.namespaces).some(N=>N.token===r))throw new Error("Filesystem effect lease ownership was lost before process binding.");let $=je(R),D={...o,effectPid:R,effectFinished:!1,...$===void 0?{}:{effectProcessStartIdentity:$},posixProcessGroup:process.platform!=="win32",windowsJobContained:C},le=s(N=>N.token===r?D:N,"replaceOwner");await xi(n,{direct:e==="direct"?_.direct.map(le):_.direct,namespaces:e==="namespace"?_.namespaces.map(le):_.namespaces,shells:e==="shell"?_.shells.map(le):_.shells})}),w=!0,k=!1},"bindEffectProcess"),x,v=!1,b=s(()=>Hn(n,async()=>{let R=await Zn(n),C=s(X=>X.token===r?{...X,effectFinished:!0}:X,"replaceOwner");if(!(e==="shell"?R.shells:e==="direct"?R.direct:R.namespaces).some(X=>X.token===r))throw new Error("Filesystem effect lease ownership was lost before tree completion.");await xi(n,{direct:e==="direct"?R.direct.map(C):R.direct,namespaces:e==="namespace"?R.namespaces.map(C):R.namespaces,shells:e==="shell"?R.shells.map(C):R.shells})}),"finishEffectProcessOnce"),I=s(()=>{if(k||v)return;v=!0;let R=s(()=>{setTimeout(()=>{b().then(()=>{k=!0,v=!1}).catch(()=>{R()})},250).unref?.()},"retry");R()},"scheduleBackgroundFinish");return Object.assign(S,{bindEffectProcess:Q,finishEffectProcess:s(async()=>{k||(x??=(async()=>{let R;for(let C=1;C<=ki;C+=1)try{await b(),k=!0;return}catch(_){R=_,C<ki&&await new Promise(X=>setTimeout(X,20))}throw I(),R})().finally(()=>{x=void 0}),await x)},"finishEffectProcess")})}function nk(){return tk("direct")}async function rk(e){let t=await nk();try{return await e()}finally{await t()}}function ik(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function ok(e){if(typeof e!="string"||e.length===0)return"";let t=e.replace(/\\/g,"/");return t.startsWith("//")?t="//"+t.slice(2).replace(/\/+/g,"/"):t=t.replace(/\/+/g,"/"),ik()?t=t.toLowerCase():t.length>=2&&/^[A-Za-z]:/.test(t)&&(t=t[0].toLowerCase()+t.slice(1)),t.length>1&&t.endsWith("/")&&(t=t.replace(/\/+$/g,"")),t}async function Ea(e,t){let n=ok(e),i=(vi.get(n)??Promise.resolve()).catch(()=>{}).then(async()=>rk(async()=>{if(Cp(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return await t()})),o=i.catch(()=>{}).finally(()=>{vi.get(n)===o&&vi.delete(n)});return vi.set(n,o),i}var vi,qv,zv,Uv,ki,Vv,Kv,Xp,Mp,jp,zp=p(()=>{"use strict";Pi();Ap();vi=new Map,qv=3e4,zv=1e3,Uv=3e4,ki=3,Vv="model-filesystem-effects.json",Kv="model-filesystem-effects.lock",Mp=!1;s(Lp,"getEffectOwnerStartIdentity");jp=process.env.VITEST_WORKER_ID===void 0?void 0:`${process.env.VITEST_WORKER_ID}-${process.pid}`.replace(/[^a-z0-9_-]/gi,"_");s(Wp,"effectRuntimePath");s(Yv,"captureEffectLeaseStorage");s(xa,"isEffectLeaseOwner");s(Zn,"readEffectLeaseState");s(Gv,"isProcessAlive");s(qp,"isEffectLeaseOwnerAlive");s(Bv,"modelEffectTreeState");s(Zv,"removeStaleEffectLeases");s(Qa,"effectReleaseMarkerPath");s(Hv,"releasedEffectTokens");s(Ta,"removeEffectReleaseMarkerBestEffort");s(Jv,"reconcileAbandonedManagedEffects");s(xi,"writeEffectLeaseState");s(Hn,"withEffectLeaseCoordinator");s(ek,"namespaceConflictsWithShell");s(Ra,"shellConflictsWithNamespace");s(tk,"acquireEffectLease");s(nk,"acquireDirectFileMutationLease");s(rk,"withHostFileSystemMutation");s(ik,"isWindowsPathPlatform");s(ok,"normalizePathForKey");s(Ea,"withFileMutation")});import{AsyncLocalStorage as sk}from"node:async_hooks";import Le from"fs/promises";import $a from"path";async function ae(e,t){try{let n=await Le.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function we(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&L({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function Jn(e){return ak.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function lk(e){return Ia=(Ia+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${Ia}.tmp`}async function fk(e,t){for(let r=1;;r+=1)try{await Le.rename(e,t);return}catch(i){let o=i?.code;if(r>=5||!o||!uk.has(o))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function qe(e,t){await Ea(e,async()=>{let n=$a.dirname(e);await Le.mkdir(n,{recursive:!0});let r=lk(e);try{await Le.writeFile(r,`${JSON.stringify(t,null,2)}
801
- `,"utf8"),await fk(r,e)}catch(i){throw await Le.rm(r,{force:!0}).catch(()=>{}),i}await pk(n,$a.basename(e)).catch(()=>{})})}async function Ri(e){await Ea(e,async()=>{await Le.mkdir(e,{recursive:!0})})}async function pk(e,t){let n=`${t}.`,r=Date.now(),i=await Le.readdir(e);await Promise.all(i.filter(o=>o.startsWith(n)&&dk.test(o.slice(n.length))).map(async o=>{let a=$a.join(e,o);try{let c=await Le.stat(a);r-c.mtimeMs>=ck&&await Le.rm(a,{force:!0})}catch{}}))}var ak,ck,dk,Ia,uk,_i=p(()=>{"use strict";Pi();zp();ak=new sk;s(ae,"safeReadJson");s(we,"debugLogRepoIntelligence");s(Jn,"resolveRepoIntelligenceStorageDir");ck=3600*1e3,dk=/^\d+\.\d+(?:\.\d+)?\.tmp$/,Ia=0;s(lk,"nextAtomicTempPath");uk=new Set(["EPERM","EBUSY","EACCES"]);s(fk,"renameWithRetry");s(qe,"writeJsonFileAtomic");s(Ri,"ensureRepoIntelligenceStorageDir");s(pk,"sweepStaleTempFiles")});import _t from"fs/promises";import M from"path";import{createHash as Aa}from"node:crypto";import{execFile as mk}from"child_process";import{promisify as hk}from"util";function Qt(e){return typeof e=="object"&&e!==null}function _k(e){return Qt(e)&&typeof e.id=="string"&&typeof e.label=="string"&&typeof e.kind=="string"&&typeof e.root=="string"&&typeof e.fileCount=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.sampleFiles)}function Qk(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.source==="git"||e.source==="filesystem")&&typeof e.generatedAt=="string"&&typeof e.truncated=="boolean"&&Qt(e.fileStats)&&typeof e.fileStats.totalFiles=="number"&&typeof e.fileStats.sourceFiles=="number"&&typeof e.fileStats.docFiles=="number"&&typeof e.fileStats.testFiles=="number"&&typeof e.fileStats.configFiles=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.keyDocs)&&Array.isArray(e.entryHints)&&Array.isArray(e.areas)&&e.areas.every(t=>_k(t))}function Ek(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.overviewGeneratedAt=="string"&&(e.source==="git"||e.source==="filesystem")&&Array.isArray(e.allFiles)&&e.allFiles.every(t=>typeof t=="string")&&Array.isArray(e.sourceFiles)&&e.sourceFiles.every(t=>typeof t=="string")}function Ik(e){return Qt(e)&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function $k(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||Ik(e.git))&&(e.snapshotKind==="clean"||e.snapshotKind==="dirty")&&(e.head===void 0||typeof e.head=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.dirtyPathsFingerprint===void 0||typeof e.dirtyPathsFingerprint=="string")&&(e.dirtySemanticFingerprint===void 0||typeof e.dirtySemanticFingerprint=="string")}async function ce(e,t){return(await Ok("git",e,{cwd:t,timeout:wk,windowsHide:!0,maxBuffer:8388608})).stdout.toString()}async function er(e){try{return await _t.access(e),!0}catch{return!1}}async function ja(e){let t=Ii(e);return await Ri(t),t}function q(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function im(e){let t=Aa("sha256");for(let n of Array.from(e,r=>q(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Ck(e){return xk.has(M.posix.basename(q(e)))}function Ak(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(q(e[n]??"")!==q(t[n]??""))return!1;return!0}function Et(e){let t=q(e);return t===".agent"||t===".kodax"||Sk.some(n=>t.startsWith(n))}async function Xk(e){try{let t=(await ce(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:M.resolve(t),source:"git"}}catch{}return{workspaceRoot:M.resolve(e),source:"filesystem"}}async function Mk(e){try{return(await _t.stat(e)).isDirectory()?e:M.dirname(e)}catch{return e}}async function jk(e){let t=(await ce(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await ce(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(q).filter(i=>!Et(i))));return{files:r.slice(0,it),truncated:r.length>it}}async function Up(e){let t=[],n=!1;async function r(i){if(t.length>=it){n=!0;return}let o=await _t.readdir(i,{withFileTypes:!0});for(let a of o){if(t.length>=it){n=!0;return}if(a.isDirectory()){if(Rk.has(a.name))continue;await r(M.join(i,a.name));continue}if(!a.isFile())continue;let c=q(M.relative(e,M.join(i,a.name)));Et(c)||t.push(c)}}return s(r,"walk"),await r(e),{files:t,truncated:n}}function Wk(e){let t=q(e).toLowerCase();return t.split("/").some(r=>Pk.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Zt(e){let t=q(e),n=M.extname(t).toLowerCase(),r=M.posix.basename(t);return Ma.has(r)?"config":t.startsWith("docs/")||rm.has(t)||nm.has(n)?"docs":Wk(t)?"tests":bk.has(n)?"source":"other"}async function om(e,t){if(t===".")return"Workspace Root";let n=M.join(e,t,"package.json"),r=M.join(e,t,"pyproject.toml"),i=M.join(e,t,"Cargo.toml");if(await er(n))try{let o=JSON.parse(await _t.readFile(n,"utf8"));if(o.name?.trim())return o.name.trim()}catch{}for(let o of[r,i])if(await er(o))try{let c=(await _t.readFile(o,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return M.posix.basename(t)}async function Fk(e,t){let n=new Map;for(let i of t){let a=q(i).split("/");if(a.length===1){n.set(".","root");continue}if(kk.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=vk.get(a[0]??"");c&&n.set(a[0],c)}n.size===0&&n.set(".","root");let r=[];for(let[i,o]of Array.from(n.entries()).sort((a,c)=>a[0].localeCompare(c[0]))){let a=i==="."?"":`${i}/`,c=t.filter(l=>i==="."?!l.includes("/"):l===i||l.startsWith(a)).sort((l,f)=>l.localeCompare(f)),d=c.filter(l=>!(i==="."?l:l.slice(a.length)).includes("/")&&Ma.has(M.posix.basename(l)));r.push({id:i,label:await om(e,i),kind:o,root:i,fileCount:c.length,manifests:d.slice(0,Xa),sampleFiles:c.slice(0,Xa)})}return r.sort((i,o)=>o.fileCount!==i.fileCount?o.fileCount-i.fileCount:i.root.localeCompare(o.root))}async function Vp(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([ce(["branch","--show-current"],e),ce(["rev-parse","HEAD"],e),ce(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function tr(e,t){if(t==="git")try{return await jk(e)}catch{return Up(e)}return Up(e)}async function Qi(e,t){let n=await am(e,Jp);return!n||n.schemaVersion!==ue||t&&n.overviewGeneratedAt!==t?null:n}async function Kp(e){let n=(await ce(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),r=new Set;for(let i=0;i<n.length;i+=1){let o=n[i];if(!o||o.length<4)continue;let a=o.slice(0,2),c=q(o.slice(3));if(c&&!Et(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=q(n[i+1]??"");d&&!Et(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function sm(e,t){return ae(Ii(e,t),Qk)}async function am(e,t){return ae(Ii(e,t),Ek)}async function Dk(e){return ae(Ii(e,Zp),$k)}async function Nk(e,t){let n=Aa("sha256");n.update(im(t));for(let r of t){let i=M.join(e,r);n.update(r),n.update(":");try{if(await _t.stat(i),n.update("present:"),Ck(r)){let o=await _t.readFile(i,"utf8");n.update(Aa("sha256").update(o).digest("hex"))}}catch(o){let a=Qt(o)&&typeof o.code=="string"?o.code:void 0;n.update(a==="ENOENT"?"missing":"unreadable")}n.update("|")}return n.digest("hex")}async function Yp(e,t){let n=t.map(r=>q(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:im(n),dirtySemanticFingerprint:await Nk(e,n)}}async function Lk(e,t,n){let r=new Set(t.map(i=>q(i)));for(let i of n){let o=M.join(e,i);await er(o)?r.add(i):r.delete(i)}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function cm(e,t,n,r,i){let o=n.map(c=>q(c)),a={schemaVersion:ue,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:o.length,sourceFiles:o.filter(c=>Zt(c)==="source").length,docFiles:o.filter(c=>Zt(c)==="docs").length,testFiles:o.filter(c=>Zt(c)==="tests").length,configFiles:o.filter(c=>Zt(c)==="config").length},manifests:o.filter(c=>Ma.has(M.posix.basename(c))).slice(0,12),keyDocs:o.filter(c=>rm.has(c)||/^README/i.test(M.posix.basename(c))&&nm.has(M.extname(c).toLowerCase())).slice(0,8),entryHints:o.filter(c=>Tk.includes(M.posix.basename(c))).slice(0,8),areas:await Fk(e,o)};return{overview:a,inventory:{schemaVersion:ue,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...o].sort((c,d)=>c.localeCompare(d)),sourceFiles:o.filter(c=>Zt(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function dm(e,t,n,r={}){let i={schemaVersion:ue,generatedAt:t.generatedAt,workspaceRoot:t.workspaceRoot,git:t.git??null,snapshotKind:t.source==="git"&&t.git?.hasUncommittedChanges===!0?"dirty":"clean",head:t.git?.head,branch:t.git?.branch,dirtyPathsFingerprint:r.dirtyIdentity?.dirtyPathsFingerprint,dirtySemanticFingerprint:r.dirtyIdentity?.dirtySemanticFingerprint};await qe(M.join(e,Zp),i),await qe(M.join(e,Hp),t),await qe(M.join(e,Jp),n),r.writeBaseline===!0&&(await qe(M.join(e,em),t),await qe(M.join(e,tm),n))}function qk(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===ue&&t.schemaVersion===ue&&e.source==="git"&&t.source==="git"&&e.git?.hasUncommittedChanges!==!0&&e.git?.head&&e.git?.head===n.head&&e.git?.branch===n.branch&&t.workspaceRoot===e.workspaceRoot&&t.overviewGeneratedAt===e.generatedAt)}function zk(e,t,n,r){return!!(e&&t&&e.schemaVersion===ue&&t.schemaVersion===ue&&e.source==="git"&&e.generatedAt===t.generatedAt&&e.workspaceRoot===t.workspaceRoot&&t.snapshotKind==="dirty"&&n?.hasUncommittedChanges===!0&&t.head===n.head&&t.branch===n.branch&&t.dirtyPathsFingerprint===r.dirtyPathsFingerprint&&t.dirtySemanticFingerprint===r.dirtySemanticFingerprint)}async function Uk(e,t,n){let r=await sm(e,em),i=await am(e,tm);if(!qk(r,i,t))return null;let o=i,{dirtyPaths:a}=n,c=new Set(o.allFiles);if(r.truncated)for(let k of a){let h=M.join(e,k);if(!c.has(k)||await er(h)===!1)return null}let d=new Set(c);for(let k of a){let h=M.join(e,k);await er(h)?d.add(k):d.delete(k)}let l=Array.from(d).sort((k,h)=>k.localeCompare(h)),f=r.truncated||l.length>it,u=f?l.slice(0,it):l,{overview:m,inventory:g}=await cm(e,"git",u,f,t),w=await ja(e);return await dm(w,m,g,{dirtyIdentity:n}),m}async function Vk(e,t,n,r,i){if(!t||!n||t.schemaVersion!==ue||t.source!=="filesystem"||n.schemaVersion!==ue||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let o=r.map(a=>q(a)).sort((a,c)=>a.localeCompare(c));if(!Ak(n.allFiles,o))return!1;for(let a of t.areas)if(await om(e,a.root)!==a.label)return!1;return!0}async function Ca(e,t,n,r,i){let{files:o,truncated:a}=i??await tr(e,t),c=t==="git"&&r?.dirtyPaths.length?await Lk(e,o,r.dirtyPaths):o.map(g=>q(g)),d=a||c.length>it,l=d?c.slice(0,it):c,f=await ja(e),{overview:u,inventory:m}=await cm(e,t,l,d,n);return await dm(f,u,m,{writeBaseline:t==="git"&&n?.hasUncommittedChanges!==!0,dirtyIdentity:r}),{workspaceRoot:e,source:t,overview:u,inventory:m,dirtyPaths:r?.dirtyPaths}}async function It(e,t={}){let n=Lc(e),r=await Mk(t.targetPath?M.resolve(n,t.targetPath):n),{workspaceRoot:i,source:o}=await Xk(r),a=await sm(i,Hp),c=await Dk(i),d,l;if(!t.refresh){if(d=await Vp(i,o),o!=="git"){let u=a?.schemaVersion===ue?await Qi(i,a.generatedAt):null,m=await tr(i,o);return await Vk(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:o,overview:a,inventory:u}:Ca(i,o,d,void 0,m)}if(o==="git"&&a?.schemaVersion===ue&&d?.hasUncommittedChanges!==!0&&a.git?.head===d?.head&&a.git?.branch===d?.branch&&a.git?.hasUncommittedChanges===d?.hasUncommittedChanges&&a)return{workspaceRoot:i,source:o,overview:a,inventory:await Qi(i,a.generatedAt)};if(o==="git"&&d?.hasUncommittedChanges===!0){let u=await Kp(i).catch(m=>(we("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Yp(i,u),zk(a,c,d,l))return{workspaceRoot:i,source:o,overview:a,inventory:await Qi(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await Uk(i,d,l);if(m)return{workspaceRoot:i,source:o,overview:m,inventory:await Qi(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return Ca(i,o,d,l)}if(d=await Vp(i,o),o==="git"&&d?.hasUncommittedChanges===!0){let f=await Kp(i).catch(u=>(we("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Yp(i,f))}return Ca(i,o,d,l)}function Gp(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function Kk(e){if(!e.trim())return null;let t=e.slice(0,2),n=e.slice(3).trim(),r=q(n.includes(" -> ")?n.split(" -> ").pop()??n:n),i=t[0]!==" "&&t[0]!=="?",o=t[1]!==" "&&t[1]!=="?";return{status:t,path:r,staged:i,unstaged:o||t==="??"}}function Yk(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function Bp(e,t){let n=q(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function Gk(e,t){let n=[];t.length>1&&n.push(`Cross-area change touches ${t.length} areas.`);let r=e.filter(o=>o.category==="config").map(o=>o.path);return r.length>0&&n.push(`Config or manifest changes detected: ${r.slice(0,4).join(" | ")}.`),e.length>0&&e.every(o=>o.category==="docs"||o.category==="tests")&&n.push("Changes are currently limited to docs/tests; implementation files are untouched."),e.some(o=>o.areaId===".")&&n.push("Workspace-root files changed; validate repo-wide implications."),n}async function Bk(e,t,n){if(t==="compare"){let a=n?.trim()||"HEAD~1";if(!a||a.startsWith("-")||/[\u0000-\u001f\s]/.test(a))throw new Error(`Invalid base ref "${a}".`);try{await ce(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(d){throw we(`Rejected compare base ref "${a}".`,d),new Error(`Could not resolve base ref "${a}".`)}return(await ce(["diff","--name-status",`${a}...HEAD`],e)).split(/\r?\n/).map(d=>d.trim()).filter(Boolean).map(d=>{let[l,...f]=d.split(/\s+/),u=f.join(" ").split(" -> ").pop()??f.join(" ");return{path:q(u),status:Gp(l??"M")}}).filter(d=>!Et(d.path))}let i=(await ce(["status","--porcelain=v1","--untracked-files=all"],e)).split(/\r?\n/).map(Kk).filter(a=>a!==null).filter(a=>Yk(a,t)),o=new Map;for(let a of i)Et(a.path)||o.set(a.path,{path:a.path,status:Gp(a.status)});return Array.from(o.values())}async function Zk(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await ce(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await ce(["diff","--cached","--numstat"],e):t==="unstaged"?r=await ce(["diff","--numstat"],e):r=await ce(["diff","--numstat","HEAD"],e);let i=0,o=0;for(let a of r.split(/\r?\n/)){let c=a.trim();if(!c)continue;let d=c.match(/^(\d+|-)\s+(\d+|-)\s+(.+)$/);if(!d)continue;let[,l,f,u]=d,m=q(u.split(" -> ").pop()??u);if(Et(m))continue;let g=l==="-"?0:Number.parseInt(l,10),w=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(w)&&(o+=w)}return{changedLineCount:i+o,addedLineCount:i,deletedLineCount:o}}async function Ei(e,t={}){let n=t.scope??"all",r=e.overview;if(r.source!=="git")throw new Error("changed_scope requires a git-backed workspace.");let i=await Bk(r.workspaceRoot,n,t.baseRef),o=await Zk(r.workspaceRoot,n,t.baseRef).catch(u=>(we("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=Bp(u.path,r.areas);return{path:u.path,status:u.status,category:Zt(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=Bp(u.path,r.areas),g=c.get(m.id)??{areaId:m.id,label:m.label,root:m.root,kind:m.kind,fileCount:0,files:[]};c.set(m.id,{...g,fileCount:g.fileCount+1,files:g.files.length<Xa?[...g.files,u.path]:g.files})}let d={source:0,docs:0,tests:0,config:0,other:0};for(let u of a)d[u.category]+=1;let l={schemaVersion:ue,workspaceRoot:r.workspaceRoot,analyzedAt:new Date().toISOString(),scope:n,baseRef:n==="compare"?t.baseRef?.trim()||"HEAD~1":void 0,overviewGeneratedAt:r.generatedAt,totalChangedFiles:a.length,changedLineCount:o.changedLineCount,addedLineCount:o.addedLineCount,deletedLineCount:o.deletedLineCount,categories:d,areasTouched:Array.from(c.values()).sort((u,m)=>m.fileCount!==u.fileCount?m.fileCount-u.fileCount:u.root.localeCompare(m.root)),files:a,riskHints:Gk(a,Array.from(c.values()))},f=await ja(r.workspaceRoot);return await qe(M.join(f,yk),l),l}function Hk(){return Jn(gk)}function Ii(e,...t){let n=Hk(),r=M.isAbsolute(n)?n:M.join(e,n);return M.join(r,...t)}var Ok,gk,Zp,Hp,Jp,em,tm,yk,ue,it,Xa,wk,Sk,bk,nm,Pk,vk,kk,Ma,xk,rm,Tk,Rk,lm=p(()=>{"use strict";qc();_i();Ok=hk(mk),gk=M.join(".agent","repo-intelligence"),Zp="manifest.json",Hp="repo-overview.json",Jp="repo-overview-inventory.json",em="repo-overview-baseline.json",tm="repo-overview-inventory-baseline.json",yk="changed-scope.json",ue=3,it=12e3,Xa=3,wk=5e3,Sk=[".agent/",".kodax/"],bk=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h",".cs",".rb",".php",".swift",".kt",".kts",".scala",".sh"]),nm=new Set([".md",".mdx",".rst",".txt"]),Pk=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),vk=new Map([["docs","docs"],["test","tests"],["tests","tests"],["scripts","scripts"],["bin","scripts"],["tools","scripts"],["src","directory"],["server","directory"],["client","directory"],["web","directory"],["api","directory"],["cmd","directory"],["examples","directory"],["example","directory"]]),kk=new Set(["packages","apps","libs","services"]),Ma=new Set(["package.json","package-lock.json","pnpm-lock.yaml","pnpm-workspace.yaml","yarn.lock","tsconfig.json","tsconfig.build.json","vitest.config.ts","vitest.config.js","vite.config.ts","vite.config.js","pyproject.toml","requirements.txt","Cargo.toml","Cargo.lock","go.mod","go.sum","pom.xml","build.gradle","build.gradle.kts","Makefile","Dockerfile"]),xk=new Set(["package.json","pyproject.toml","Cargo.toml"]),rm=new Set(["README.md","README_CN.md","AGENTS.md","CLAUDE.md","docs/HLD.md","docs/PRD.md","docs/ADR.md","docs/DD.md","docs/FEATURE_LIST.md"]),Tk=["index.ts","index.js","main.ts","main.js","app.ts","app.js","server.ts","server.js","cli.ts","cli.js","kodax_cli.ts","main.py"],Rk=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);s(Qt,"isRecord");s(_k,"isRepoAreaOverview");s(Qk,"isRepoOverviewPayload");s(Ek,"isRepoOverviewInventoryPayload");s(Ik,"isGitSummaryPayload");s($k,"isRepoOverviewManifestPayload");s(ce,"runGit");s(er,"exists");s(ja,"ensureStorageDir");s(q,"normalizeRelativePath");s(im,"computePathFingerprint");s(Ck,"isAreaLabelSensitiveManifestPath");s(Ak,"sameNormalizedPathList");s(Et,"isManagedMetadataPath");s(Xk,"resolveWorkspaceRoot");s(Mk,"resolveTargetDirectory");s(jk,"listGitFiles");s(Up,"walkFilesystemFiles");s(Wk,"isTestFile");s(Zt,"classifyFileCategory");s(om,"readAreaLabel");s(Fk,"buildAreas");s(Vp,"getGitSummary");s(tr,"collectWorkspaceFilesForSource");s(Qi,"readRepoOverviewInventory");s(Kp,"collectWorkspaceDirtyPaths");s(sm,"readStoredRepoOverview");s(am,"readStoredRepoOverviewInventory");s(Dk,"readStoredRepoOverviewManifest");s(Nk,"computeDirtySemanticFingerprint");s(Yp,"buildDirtyOverviewIdentity");s(Lk,"applyDirtyPathPatchToFiles");s(cm,"buildRepoOverviewArtifacts");s(dm,"writeRepoOverviewArtifacts");s(qk,"canUseOverviewBaseline");s(zk,"canDirectReuseDirtyOverview");s(Uk,"tryBuildDirtyRepoOverviewFromBaseline");s(Vk,"canDirectReuseFilesystemOverview");s(Ca,"buildRepoOverviewSnapshotForWorkspace");s(It,"resolveRepoOverviewSnapshot");s(Gp,"resolveChangedStatus");s(Kk,"parsePorcelainLine");s(Yk,"includesCandidate");s(Bp,"findAreaForFile");s(Gk,"buildRiskHints");s(Bk,"collectChangedFiles");s(Zk,"collectChangedLineStats");s(Ei,"analyzeChangedScopeFromSnapshot");s(Hk,"getRepoIntelligenceDir");s(Ii,"resolveRepoIntelligencePath")});var $i=p(()=>{"use strict";lm();_i()});import Jk from"fs/promises";import nr from"path";import{createHash as Ci}from"node:crypto";function Qe(e){return typeof e=="object"&&e!==null}function en(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languages)&&Array.isArray(e.modules)&&Array.isArray(e.symbols)&&Array.isArray(e.processes)}function hm(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function tx(e){return e==="high"||e==="medium"||e==="low"}function nx(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function rx(e){return Qe(e)&&hm(e.language)&&tx(e.capabilityTier)&&typeof e.fileCount=="number"}function ix(e){return Qe(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&hm(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function ox(e){return Qe(e)&&(e.source==="git"||e.source==="filesystem")&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function Om(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&ox(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>rx(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>ix(t))}function sx(e){return Qe(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&nx(e.kind)&&typeof e.line=="number"&&typeof e.signature=="string"&&typeof e.exported=="boolean"&&Array.isArray(e.calls)&&e.calls.every(t=>typeof t=="string")&&typeof e.confidence=="number"}function ax(e){return Qe(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>sx(t))}function gm(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&Qe(e.analyses)&&Object.values(e.analyses).every(t=>t===null||ax(t))}function ym(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&typeof e.queryGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&typeof e.sourceFingerprint=="string"&&typeof e.sourceFileCount=="number"&&typeof e.dirtyPathsFingerprint=="string"&&typeof e.dirtySourceFingerprint=="string"&&Array.isArray(e.dirtySourcePaths)&&e.dirtySourcePaths.every(t=>typeof t=="string")}function K(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function te(e){switch(nr.extname(e).toLowerCase()){case".ts":case".tsx":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":return"python";case".java":return"java";case".go":return"go";case".rs":return"rust";case".cpp":case".cc":case".cxx":case".c":case".hpp":case".h":return"cpp";default:return"unknown"}}function de(e){switch(e){case"typescript":case"javascript":case"python":case"go":case"rust":return"high";case"java":return"medium";default:return"low"}}function wm(e,t="full"){return(e==="typescript"||e==="javascript")&&t==="light"?2:1}function ze(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function Sm(e,t){if(e.length>0){let r=e.reduce((i,o)=>i+o.confidence,0);return Math.min(.95,Math.max(.32,r/e.length))}let n=t[0];return n?ze(n.capabilityTier):.4}async function ji(e){try{return await Jk.access(e),!0}catch{return!1}}async function Wi(e,t="full"){let n=cx(),r=nr.isAbsolute(n)?n:nr.join(e,n),i=t==="light"?nr.join(r,"light"):r;return await Ri(i),i}function bm(e,t,n){return Ci("sha256").update(K(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function tn(e){let t=Ci("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Fi(e,t){let n=Ci("sha256");n.update(e.workspaceRoot),n.update("|"),n.update(e.source),n.update("|");for(let r of e.areas)n.update(r.id),n.update(":"),n.update(r.label),n.update(":"),n.update(r.kind),n.update(":"),n.update(r.root),n.update(":"),n.update(String(r.fileCount)),n.update(":"),n.update(r.manifests.join(",")),n.update(":"),n.update(r.sampleFiles.join(",")),n.update("|");for(let r of t)n.update(r),n.update("|");return n.digest("hex")}function rr(e){let t=Ci("sha256");for(let n of Array.from(e,r=>K(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Di(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function Ni(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function Wa(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function Pm(e){return e.workspaceSnapshot.source!=="git"||Ni(e.workspaceSnapshot)}function vm(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function at(e,t){return qe(e,t)}function km(e){let t=K(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function xm(e){let t=K(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function be(e,t){let n=K(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function fe(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function ir(e,t){let n=[],r=e.split(/\r?\n/);for(let i of r){let o=null;if(t==="typescript"||t==="javascript"){o=/from\s+['"]([^'"]+)['"]/.exec(i)??/require\(\s*['"]([^'"]+)['"]\s*\)/.exec(i)??/^\s*import\s+['"]([^'"]+)['"]/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="python"){if(o=/^\s*from\s+([A-Za-z0-9_\.]+)\s+import/.exec(i),o?.[1]){n.push(o[1]);continue}o=/^\s*import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+/)[0]??"").filter(Boolean));continue}if(t==="go"){o=/^\s*import\s+"([^"]+)"/.exec(i)??/^\s*"([^"]+)"/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="rust"){o=/^\s*use\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}if(t==="java"){o=/^\s*import\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}t==="cpp"&&(o=/^\s*#include\s+[<"]([^">]+)[">]/.exec(i),o?.[1]&&n.push(o[1].trim()))}return fe(n,12)}function cx(){return Jn(ex)}var ex,ot,Ai,Xi,Mi,um,fm,pm,J,Ht,st,mm,Se,Jt,Ee,ct=p(()=>{"use strict";_i();ex=nr.join(".agent","repo-intelligence"),ot="repo-intelligence-index.json",Ai="repo-intelligence-manifest.json",Xi="file-analysis-index.json",Mi="repo-intelligence-dirty-source-hint.json",um="module-index.json",fm="symbol-index.json",pm="process-index.json",J=9,Ht=512*1024,st=40,mm=8,Se=8,Jt=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),Ee=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);s(Qe,"isRecord");s(en,"isRepoIntelligenceIndexPayload");s(hm,"isRepoLanguageId");s(tx,"isLanguageCapabilityTier");s(nx,"isRepoSymbolKind");s(rx,"isRepoLanguageSupportPayload");s(ix,"isRepoSourceFileStatePayload");s(ox,"isRepoWorkspaceSnapshotPayload");s(Om,"isRepoIntelligenceManifestPayload");s(sx,"isCachedRepoSymbolRecordPayload");s(ax,"isCachedFileAnalysisEntryPayload");s(gm,"isFileAnalysisIndexPayload");s(ym,"isDirtySourceHintPayload");s(K,"normalizeRelativePath");s(te,"languageFromFile");s(de,"capabilityTierForLanguage");s(wm,"analyzerVersionForLanguage");s(ze,"baseConfidenceForTier");s(Sm,"computeModuleConfidence");s(ji,"exists");s(Wi,"ensureStorageDir");s(bm,"computeFileFingerprint");s(tn,"computeSourceFingerprint");s(Fi,"computeOverviewFingerprint");s(rr,"computePathFingerprint");s(Di,"workspaceSnapshotFromOverview");s(Ni,"isCleanGitSnapshot");s(Wa,"sameWorkspaceSnapshot");s(Pm,"shouldPersistRepoIntelligenceBaseline");s(vm,"getDirtySourcePathsForInputs");s(at,"writeJsonFileAtomic");s(km,"isTestFile");s(xm,"isDocFile");s(be,"findAreaForFile");s(fe,"dedupeStrings");s(ir,"extractImports");s(cx,"getRepoIntelligenceDir")});import Fa from"path";import dx from"fs/promises";function Tm(e,t){let n=new Map,r=new Map,i=new Map,o=new Map;for(let a of e){let c=be(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),km(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(xm(a)){let l=o.get(c.id)??[];l.push(a),o.set(c.id,l)}}return{areaByFile:n,filesByAreaId:r,testFilesByAreaId:i,docFilesByAreaId:o}}async function Rm(e,t="full"){let n=e.workspaceRoot,r=await Wi(n,t),i=Di(e.overview),o=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>K(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=o?rr(o):void 0,c=(o??[]).filter(f=>Jt.has(Fa.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await ji(Fa.join(n,f))&&d.push(f);let l=d.length>0?await nn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Fi(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:o,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:o?tn(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Da(e,t,n,r,i="full"){let o=[];for(let a of t){let c=K(a),d=await dx.stat(Fa.join(e,c)),l=te(c);o.push({filePath:c,fileFingerprint:bm(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??be(c,r).id,analyzerVersion:wm(l,i)})}return o.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function nn(e,t,n,r,i="full"){let o=Array.from(new Set(Array.from(t,c=>K(c)))).sort((c,d)=>c.localeCompare(d)),a=await Da(e,o,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function _m(e){return e?{importPaths:e.importPaths,symbols:e.symbols.map(t=>({id:t.id,name:t.name,qualifiedName:t.qualifiedName,kind:t.kind,line:t.line,signature:t.signature,exported:t.exported,calls:t.calls,confidence:t.confidence}))}:null}function Qm(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:de(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:de(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function Na(e){return{typeScriptFiles:e.filter(t=>$t(te(t))),pythonFiles:e.filter(t=>te(t)==="python"),goFiles:e.filter(t=>te(t)==="go"),rustFiles:e.filter(t=>te(t)==="rust"),fallbackFiles:e.filter(t=>{let n=te(t);return!$t(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function $t(e){return e==="typescript"||e==="javascript"}var or=p(()=>{"use strict";ct();s(Tm,"buildAreaFileLookups");s(Rm,"buildRepoIntelligencePreflight");s(Da,"collectSourceFileStates");s(nn,"collectSourceFileStateMap");s(_m,"serializeCachedFileAnalysisEntry");s(Qm,"hydrateCachedFileAnalysis");s(Na,"bucketSourceFiles");s($t,"isTypeScriptLikeLanguage")});function Cm(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function ar(e,t,n,r){for(var i;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let a=!r&&e instanceof Ie&&e.index<0?null:e.parent;if(!a)return e;e=a}let o=r?0:z.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof Ie&&a.index<0&&((i=c.enter(t,n,o))===null||i===void 0?void 0:i.from)!=a.from&&(e=c);for(;;){let a=e.enter(t,n,o);if(!a)return e;e=a}}function Im(e,t,n,r){let i=e.cursor(),o=[];if(!i.firstChild())return o;if(n!=null){for(let a=!1;!a;)if(a=i.type.is(n),!i.nextSibling())return o}for(;;){if(r!=null&&i.type.is(r))return o;if(i.type.is(t)&&o.push(i.node),!i.nextSibling())return r==null?o:[]}}function qa(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}function Am(e){if(!e.length)return null;let t=0,n=e[0];for(let o=1;o<e.length;o++){let a=e[o];(a.from>n.from||a.to<n.to)&&(n=a,t=o)}let r=n instanceof Ie&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Ua(i,n)}function fx(e,t,n){let r=e.resolveInner(t,n),i=null;for(let o=r instanceof Ie?r:r.context.parent;o;o=o.parent)if(o.index<0){let a=o.parent;(i||(i=[r])).push(a.resolve(t,n)),o=a}else{let a=Ct.get(o.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let c=new Ie(a.tree,a.overlay[0].from+o.from,-1,o);(i||(i=[r])).push(ar(c,t,n,!1))}}return i?Am(i):r}function Ka(e){return e.children.some(t=>t instanceof dt||!t.type.isAnonymous||Ka(t))}function px(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:o=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new La(n,n.length):n,d=r.types,l=0,f=0;function u(x,v,b,I,A,R){let{id:C,start:_,end:X,size:$}=c,D=f,le=l;if($<0)if(c.next(),$==-1){let Xe=o[C];b.push(Xe),I.push(_-x);return}else if($==-3){l=C;return}else if($==-4){f=C;return}else throw new RangeError(`Unrecognized record size: ${$}`);let N=d[C],un,U,Wc=_-x;if(X-_<=i&&(U=h(c.pos-v,A))){let Xe=new Uint16Array(U.size-U.skip),he=c.pos-U.size,xe=Xe.length;for(;c.pos>he;)xe=y(U.start,Xe,xe);un=new dt(Xe,X-U.start,r),Wc=U.start-x}else{let Xe=c.pos-$;c.next();let he=[],xe=[],yt=C>=a?C:-1,Mt=0,wr=X;for(;c.pos>Xe;)yt>=0&&c.id==yt&&c.size>=0?(c.end<=wr-i&&(w(he,xe,_,Mt,c.end,wr,yt,D,le),Mt=he.length,wr=c.end),c.next()):R>2500?m(_,Xe,he,xe):u(_,Xe,he,xe,yt,R+1);if(yt>=0&&Mt>0&&Mt<he.length&&w(he,xe,_,Mt,_,wr,yt,D,le),he.reverse(),xe.reverse(),yt>-1&&Mt>0){let Fc=g(N,le);un=Ya(N,he,xe,0,he.length,0,X-_,Fc,Fc)}else un=k(N,he,xe,X-_,D-X,le)}b.push(un),I.push(Wc)}s(u,"takeNode");function m(x,v,b,I){let A=[],R=0,C=-1;for(;c.pos>v;){let{id:_,start:X,end:$,size:D}=c;if(D>4)c.next();else{if(C>-1&&X<C)break;C<0&&(C=$-i),A.push(_,X,$),R++,c.next()}}if(R){let _=new Uint16Array(R*4),X=A[A.length-2];for(let $=A.length-3,D=0;$>=0;$-=3)_[D++]=A[$],_[D++]=A[$+1]-X,_[D++]=A[$+2]-X,_[D++]=D;b.push(new dt(_,A[2]-X,r)),I.push(X-x)}}s(m,"takeFlatNode");function g(x,v){return(b,I,A)=>{let R=0,C=b.length-1,_,X;if(C>=0&&(_=b[C])instanceof ne){if(!C&&_.type==x&&_.length==A)return _;(X=_.prop(j.lookAhead))&&(R=I[C]+_.length+X)}return k(x,b,I,A,R,v)}}s(g,"makeBalanced");function w(x,v,b,I,A,R,C,_,X){let $=[],D=[];for(;x.length>I;)$.push(x.pop()),D.push(v.pop()+b-A);x.push(k(r.types[C],$,D,R-A,_-R,X)),v.push(A-b)}s(w,"makeRepeatLeaf");function k(x,v,b,I,A,R,C){if(R){let _=[j.contextHash,R];C=C?[_].concat(C):[_]}if(A>25){let _=[j.lookAhead,A];C=C?[_].concat(C):[_]}return new ne(x,v,b,I,C)}s(k,"makeTree");function h(x,v){let b=c.fork(),I=0,A=0,R=0,C=b.end-i,_={size:0,start:0,skip:0};e:for(let X=b.pos-x;b.pos>X;){let $=b.size;if(b.id==v&&$>=0){_.size=I,_.start=A,_.skip=R,R+=4,I+=4,b.next();continue}let D=b.pos-$;if($<0||D<X||b.start<C)break;let le=b.id>=a?4:0,N=b.start;for(b.next();b.pos>D;){if(b.size<0)if(b.size==-3||b.size==-4)le+=4;else break e;else b.id>=a&&(le+=4);b.next()}A=N,I+=$,R+=le}return(v<0||I==x)&&(_.size=I,_.start=A,_.skip=R),_.size>4?_:void 0}s(h,"findBufferSize");function y(x,v,b){let{id:I,start:A,end:R,size:C}=c;if(c.next(),C>=0&&I<a){let _=b;if(C>4){let X=c.pos-(C-4);for(;c.pos>X;)b=y(x,v,b)}v[--b]=_,v[--b]=R-x,v[--b]=A-x,v[--b]=I}else C==-3?l=I:C==-4&&(f=I);return b}s(y,"copyToBuffer");let P=[],S=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,P,S,-1,0);let Q=(t=e.length)!==null&&t!==void 0?t:P.length?S[0]+P[0].length:0;return new ne(d[e.topID],P.reverse(),S.reverse(),Q)}function qi(e,t){if(!e.isAnonymous||t instanceof dt||t.type!=e)return 1;let n=$m.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof ne)){n=1;break}n+=qi(e,r)}$m.set(t,n)}return n}function Ya(e,t,n,r,i,o,a,c,d){let l=0;for(let w=r;w<i;w++)l+=qi(e,t[w]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(w,k,h,y,P){for(let S=h;S<y;){let Q=S,x=k[S],v=qi(e,w[S]);for(S++;S<y;S++){let b=qi(e,w[S]);if(v+b>=f)break;v+=b}if(S==Q+1){if(v>f){let b=w[Q];g(b.children,b.positions,0,b.children.length,k[Q]+P);continue}u.push(w[Q])}else{let b=k[S-1]+w[S-1].length-x;u.push(Ya(e,w,k,Q,S,x,b,null,d))}m.push(x+P-o)}}return s(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var lx,sr,j,Ct,ux,Oe,zi,Li,Em,z,ne,La,dt,Ui,Ie,za,cr,Ua,dr,$m,Vi,Va,mY,Ga=p(()=>{lx=0,sr=class{static{s(this,"Range")}constructor(t,n){this.from=t,this.to=n}},j=class{static{s(this,"NodeProp")}constructor(t={}){this.id=lx++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=Oe.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};j.closedBy=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.openedBy=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.group=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.isolate=new j({deserialize:s(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});Ct=class{static{s(this,"MountedTree")}constructor(t,n,r,i=!1){this.tree=t,this.overlay=n,this.parser=r,this.bracketed=i}static get(t){return t&&t.props&&t.props[j.mounted.id]}},ux=Object.create(null),Oe=class e{static{s(this,"NodeType")}constructor(t,n,r,i=0){this.name=t,this.props=n,this.id=r,this.flags=i}static define(t){let n=t.props&&t.props.length?Object.create(null):ux,r=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||"",n,t.id,r);if(t.props){for(let o of t.props)if(Array.isArray(o)||(o=o(i)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[o[0].id]=o[1]}}return i}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let n=this.prop(j.group);return n?n.indexOf(t)>-1:!1}return this.id==t}static match(t){let n=Object.create(null);for(let r in t)for(let i of r.split(" "))n[i]=t[r];return r=>{for(let i=r.prop(j.group),o=-1;o<(i?i.length:0);o++){let a=n[o<0?r.name:i[o]];if(a)return a}}}};Oe.none=new Oe("",Object.create(null),0,8);zi=class e{static{s(this,"NodeSet")}constructor(t){this.types=t;for(let n=0;n<t.length;n++)if(t[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...t){let n=[];for(let r of this.types){let i=null;for(let o of t){let a=o(r);if(a){i||(i=Object.assign({},r.props));let c=a[1],d=a[0];d.combine&&d.id in i&&(c=d.combine(i[d.id],c)),i[d.id]=c}}n.push(i?new Oe(r.name,i,r.id,r.flags):r)}return new e(n)}},Li=new WeakMap,Em=new WeakMap;(function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays",e[e.EnterBracketed=16]="EnterBracketed"})(z||(z={}));ne=class e{static{s(this,"Tree")}constructor(t,n,r,i,o){if(this.type=t,this.children=n,this.positions=r,this.length=i,this.props=null,o&&o.length){this.props=Object.create(null);for(let[a,c]of o)this.props[typeof a=="number"?a:a.id]=c}}toString(){let t=Ct.get(this);if(t&&!t.overlay)return t.tree.toString();let n="";for(let r of this.children){let i=r.toString();i&&(n&&(n+=","),n+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(t=0){return new dr(this.topNode,t)}cursorAt(t,n=0,r=0){let i=Li.get(this)||this.topNode,o=new dr(i);return o.moveTo(t,n),Li.set(this,o._tree),o}get topNode(){return new Ie(this,0,0,null)}resolve(t,n=0){let r=ar(Li.get(this)||this.topNode,t,n,!1);return Li.set(this,r),r}resolveInner(t,n=0){let r=ar(Em.get(this)||this.topNode,t,n,!0);return Em.set(this,r),r}resolveStack(t,n=0){return fx(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:o=this.length}=t,a=t.mode||0,c=(a&z.IncludeAnonymous)>0;for(let d=this.cursor(a|z.IncludeAnonymous);;){let l=!1;if(d.from<=o&&d.to>=i&&(!c&&d.type.isAnonymous||n(d)!==!1)){if(d.firstChild())continue;l=!0}for(;l&&r&&(c||!d.type.isAnonymous)&&r(d),!d.nextSibling();){if(!d.parent())return;l=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let n in this.props)t.push([+n,this.props[n]]);return t}balance(t={}){return this.children.length<=8?this:Ya(Oe.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,i)=>new e(this.type,n,r,i,this.propValues),t.makeTree||((n,r,i)=>new e(Oe.none,n,r,i)))}static build(t){return px(t)}};ne.empty=new ne(Oe.none,[],[],0);La=class e{static{s(this,"FlatBufferCursor")}constructor(t,n){this.buffer=t,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},dt=class e{static{s(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return Oe.none}toString(){let t=[];for(let n=0;n<this.buffer.length;)t.push(this.childString(n)),n=this.buffer[n+3];return t.join(",")}childString(t){let n=this.buffer[t],r=this.buffer[t+3],i=this.set.types[n],o=i.name;if(/\W/.test(o)&&!i.isError&&(o=JSON.stringify(o)),t+=4,r==t)return o;let a=[];for(;t<r;)a.push(this.childString(t)),t=this.buffer[t+3];return o+"("+a.join(",")+")"}findChild(t,n,r,i,o){let{buffer:a}=this,c=-1;for(let d=t;d!=n&&!(Cm(o,i,a[d+1],a[d+2])&&(c=d,r>0));d=a[d+3]);return c}slice(t,n,r){let i=this.buffer,o=new Uint16Array(n-t),a=0;for(let c=t,d=0;c<n;){o[d++]=i[c++],o[d++]=i[c++]-r;let l=o[d++]=i[c++]-r;o[d++]=i[c++]-t,a=Math.max(a,l)}return new e(o,a,this.set)}};s(Cm,"checkSide");s(ar,"resolveNode");Ui=class{static{s(this,"BaseNode")}cursor(t=0){return new dr(this,t)}getChild(t,n=null,r=null){let i=Im(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return Im(this,t,n,r)}resolve(t,n=0){return ar(this,t,n,!1)}resolveInner(t,n=0){return ar(this,t,n,!0)}matchContext(t){return qa(this.parent,t)}enterUnfinishedNodesBefore(t){let n=this.childBefore(t),r=this;for(;n;){let i=n.lastChild;if(!i||i.to!=n.to)break;i.type.isError&&i.from==i.to?(r=n,n=i.prevSibling):n=i}return r}get node(){return this}get next(){return this.parent}},Ie=class e extends Ui{static{s(this,"TreeNode")}constructor(t,n,r,i){super(),this._tree=t,this.from=n,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,o=0){for(let a=this;;){for(let{children:c,positions:d}=a._tree,l=n>0?c.length:-1;t!=l;t+=n){let f=c[t],u=d[t]+a.from,m;if(!(!(o&z.EnterBracketed&&f instanceof ne&&(m=Ct.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!Cm(i,r,u,u+f.length))){if(f instanceof dt){if(o&z.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new cr(new za(a,f,t,u),null,g)}else if(o&z.IncludeAnonymous||!f.type.isAnonymous||Ka(f)){let g;if(!(o&z.IgnoreMounts)&&(g=Ct.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let w=new e(f,u,t,a);return o&z.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(n<0?f.children.length-1:0,n,r,i,o)}}}if(o&z.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?t=a.index+n:t=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,n,r=0){let i;if(!(r&z.IgnoreOverlays)&&(i=Ct.get(this._tree))&&i.overlay){let o=t-this.from,a=r&z.EnterBracketed&&i.bracketed;for(let{from:c,to:d}of i.overlay)if((n>0||a?c<=o:c<o)&&(n<0||a?d>=o:d>o))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};s(Im,"getChildren");s(qa,"matchNodeContext");za=class{static{s(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},cr=class e extends Ui{static{s(this,"BufferNode")}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,n,r){super(),this.context=t,this._parent=n,this.index=r,this.type=t.buffer.set.types[t.buffer.buffer[r]]}child(t,n,r){let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return o<0?null:new e(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,n,r=0){if(r&z.ExcludeBuffers)return null;let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return o<0?null:new e(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],n=[],{buffer:r}=this.context,i=this.index+4,o=r.buffer[this.index+3];if(o>i){let a=r.buffer[this.index+1];t.push(r.slice(i,o,a)),n.push(0)}return new ne(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};s(Am,"iterStack");Ua=class{static{s(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return Am(this.heads)}};s(fx,"stackIterator");dr=class{static{s(this,"TreeCursor")}get name(){return this.type.name}constructor(t,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~z.EnterBracketed,t instanceof Ie)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let r=t._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,n){this.index=t;let{start:r,buffer:i}=this.buffer;return this.type=n||i.set.types[i.buffer[t]],this.from=r+i.buffer[t+1],this.to=r+i.buffer[t+2],!0}yield(t){return t?t instanceof Ie?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,n,r,this.mode));let{buffer:i}=this.buffer,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.buffer.start,r);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,n,r=this.mode){return this.buffer?r&z.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&z.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&z.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(t<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(n.findChild(i,this.index,-1,0,4))}else{let i=n.buffer[this.index+3];if(i<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let n,r,{buffer:i}=this;if(i){if(t>0){if(this.index<i.buffer.buffer.length)return!1}else for(let o=0;o<this.index;o++)if(i.buffer.buffer[o+3]<this.index)return!1;({index:n,parent:r}=i)}else({index:n,_parent:r}=this._tree);for(;r;{index:n,_parent:r}=r)if(n>-1)for(let o=n+t,a=t<0?-1:r._tree.children.length;o!=a;o+=t){let c=r._tree.children[o];if(this.mode&z.IncludeAnonymous||c instanceof dt||!c.type.isAnonymous||Ka(c))return!1}return!0}move(t,n){if(n&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,n=0){for(;(this.from==this.to||(n<1?this.from>=t:this.from>t)||(n>-1?this.to<=t:this.to<t))&&this.parent(););for(;this.enterChild(1,t,n););return this}get node(){if(!this.buffer)return this._tree;let t=this.bufferNode,n=null,r=0;if(t&&t.context==this.buffer)e:for(let i=this.index,o=this.stack.length;o>=0;){for(let a=t;a;a=a._parent)if(a.index==i){if(i==this.index)return a;n=a,r=o+1;break e}i=this.stack[--o]}for(let i=r;i<this.stack.length;i++)n=new cr(this.buffer,n,this.stack[i]);return this.bufferNode=new cr(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(t,n){for(let r=0;;){let i=!1;if(this.type.isAnonymous||t(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&n&&n(this),i=this.type.isAnonymous,!r)return;if(this.nextSibling())break;this.parent(),r--,i=!0}}}matchContext(t){if(!this.buffer)return qa(this.node.parent,t);let{buffer:n}=this.buffer,{types:r}=n.set;for(let i=t.length-1,o=this.stack.length-1;i>=0;o--){if(o<0)return qa(this._tree,t,i);let a=r[n.buffer[this.stack[o]]];if(!a.isAnonymous){if(t[i]&&t[i]!=a.name)return!1;i--}}return!0}};s(Ka,"hasChild");s(px,"buildTree");$m=new WeakMap;s(qi,"nodeSize");s(Ya,"balanceRange");Vi=class{static{s(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Va(t)),r=r?r.length?r.map(i=>new sr(i.from,i.to)):[new sr(0,0)]:[new sr(0,t.length)],this.createParse(t,n||[],r)}parse(t,n,r){let i=this.startParse(t,n,r);for(;;){let o=i.advance();if(o)return o}}},Va=class{static{s(this,"StringInput")}constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,n){return this.string.slice(t,n)}},mY=new j({perNode:!0})});function lr(e,t=Uint16Array){if(typeof e!="string")return e;let n=null;for(let r=0,i=0;r<e.length;){let o=0;for(;;){let a=e.charCodeAt(r++),c=!1;if(a==126){o=65535;break}a>=92&&a--,a>=34&&a--;let d=a-32;if(d>=46&&(d-=46,c=!0),o+=d,c)break;o*=46}n?n[i++]=o:n=new t(o)}return n}function Dm(e,t,n,r,i,o){let a=0,c=1<<r,{dialect:d}=n.p.parser;e:for(;(c&e[a])!=0;){let l=e[a+1];for(let g=a+3;g<l;g+=2)if((e[g+1]&c)>0){let w=e[g];if(d.allows(w)&&(t.token.value==-1||t.token.value==w||hx(w,t.token.value,i,o))){t.acceptToken(w);break}}let f=t.next,u=0,m=e[a+2];if(t.next<0&&m>u&&e[l+m*3-3]==65535){a=e[l+m*3-1];continue e}for(;u<m;){let g=u+m>>1,w=l+g+(g<<1),k=e[w],h=e[w+1]||65536;if(f<k)m=g;else if(f>=h)u=g+1;else{a=e[w+2],t.advance();continue e}}break}}function Mm(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function hx(e,t,n,r){let i=Mm(n,r,t);return i<0||Mm(n,r,e)<i}function jm(e,t,n){let r=e.cursor(z.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function Wm(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}function Ue(e,t){return e[t]|e[t+1]<<16}function Ox(e){let t=null;for(let n of e){let r=n.p.stoppedAt;(n.pos==n.p.stream.end||r!=null&&n.pos>r)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function Fm(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Ha,Ki,Ja,ec,rn,Xm,tc,lt,ur,me,pe,Ba,nc,rc,ic,oc,Za,on,ut,Yi=p(()=>{Ga();Ha=class e{static{s(this,"Stack")}constructor(t,n,r,i,o,a,c,d,l,f=0,u){this.p=t,this.stack=n,this.state=r,this.reducePos=i,this.pos=o,this.score=a,this.buffer=c,this.bufferBase=d,this.curContext=l,this.lookAhead=f,this.parent=u}toString(){return`[${this.stack.filter((t,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new Ki(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var n;let r=t>>19,i=t&65535,{parser:o}=this.p,a=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),c=o.dynamicPrecedence(i);if(c&&(this.score+=c),r==0){i<o.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(o.getGoto(this.state,i,!0),this.reducePos),i<o.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,a?8:4,!0),this.reduceContext(i,this.reducePos);return}let d=this.stack.length-(r-1)*3-(t&262144?6:0),l=d?this.stack[d-2]:this.p.ranges[0].from;i<o.minRepeatTerm&&l==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let f=this.reducePos-l;f>=2e3&&!(!((n=this.p.parser.nodeSet.types[i])===null||n===void 0)&&n.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSize<f&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=f));let u=d?this.stack[d-1]:0,m=this.bufferBase+this.buffer.length-u;if(i<o.minRepeatTerm||t&131072){let g=o.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,g,m+4,!0)}if(t&262144)this.state=this.stack[d];else{let g=this.stack[d-3];this.state=o.getGoto(g,i,!0)}for(;this.stack.length>d;)this.stack.pop();this.reduceContext(i,l)}storeNode(t,n,r,i=4,o=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this.buffer.length;if(a>0&&this.buffer[a-4]==0&&this.buffer[a-1]>-1){if(n==r)return;if(this.buffer[a-2]>=n){this.buffer[a-2]=r;return}}}if(!o||this.pos==r)this.buffer.push(t,n,r,i);else{let a=this.buffer.length;if(a>0&&(this.buffer[a-4]!=0||this.buffer[a-1]<0)){let c=!1;for(let d=a;d>0&&this.buffer[d-2]>r;d-=4)if(this.buffer[d-1]>=0){c=!0;break}if(c)for(;a>0&&this.buffer[a-2]>r;)this.buffer[a]=this.buffer[a-4],this.buffer[a+1]=this.buffer[a-3],this.buffer[a+2]=this.buffer[a-2],this.buffer[a+3]=this.buffer[a-1],a-=4,i>4&&(i-=4)}this.buffer[a]=t,this.buffer[a+1]=n,this.buffer[a+2]=r,this.buffer[a+3]=i}}shift(t,n,r,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let o=t,{parser:a}=this.p;this.pos=i;let c=a.stateFlag(o,1);!c&&(i>r||n<=a.maxNode)&&(this.reducePos=i),this.pushState(o,c?r:Math.min(r,this.reducePos)),this.shiftContext(n,r),n<=a.maxNode&&this.buffer.push(n,r,i,4)}else this.pos=i,this.shiftContext(n,r),n<=this.p.parser.maxNode&&this.buffer.push(n,r,i,4)}apply(t,n,r,i){t&65536?this.reduce(t):this.shift(t,n,r,i)}useNode(t,n){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=t)&&(this.p.reused.push(t),r++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(n,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,n){let r=t<=this.p.parser.maxNode;r&&this.storeNode(t,this.pos,n,4),this.storeNode(0,this.pos,n,r?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(t){for(let n=new Ja(this);;){let r=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,t);if(r==0)return!1;if((r&65536)==0)return!0;n.reduce(r)}}recoverByInsert(t){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let i=[];for(let o=0,a;o<n.length;o+=2)(a=n[o+1])!=this.state&&this.p.parser.hasAction(a,t)&&i.push(n[o],a);if(this.stack.length<120)for(let o=0;i.length<8&&o<n.length;o+=2){let a=n[o+1];i.some((c,d)=>d&1&&c==a)||i.push(n[o],a)}n=i}let r=[];for(let i=0;i<n.length&&r.length<4;i+=2){let o=n[i+1];if(o==this.state)continue;let a=this.split();a.pushState(o,this.pos),a.storeNode(0,a.pos,a.pos,4,!0),a.shiftContext(n[i],this.pos),a.reducePos=this.pos,a.score-=200,r.push(a)}return r}forceReduce(){let{parser:t}=this.p,n=t.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!t.validAction(this.state,n)){let r=n>>19,i=n&65535,o=this.stack.length-r*3;if(o<0||t.getGoto(this.stack[o],i,!1)<0){let a=this.findForcedReduction();if(a==null)return!1;n=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:t}=this.p,n=[],r=s((i,o)=>{if(!n.includes(i))return n.push(i),t.allActions(i,a=>{if(!(a&393216))if(a&65536){let c=(a>>19)-o;if(c>1){let d=a&65535,l=this.stack.length-c*3;if(l>=0&&t.getGoto(this.stack[l],d,!1)>=0)return c<<19|65536|d}}else{let c=r(a,o+1);if(c!=null)return c}})},"explore");return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=t.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(n)))}reduceContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(n)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let n=new Ki(this.curContext.tracker,t);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Ki=class{static{s(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},Ja=class{static{s(this,"SimulatedStack")}constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let n=t&65535,r=t>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=i}},ec=class e{static{s(this,"StackBufferCursor")}constructor(t,n,r){this.stack=t,this.pos=n,this.index=r,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};s(lr,"decodeArray");rn=class{static{s(this,"CachedToken")}constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Xm=new rn,tc=class{static{s(this,"InputStream")}constructor(t,n){this.input=t,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Xm,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(t,n){let r=this.range,i=this.rangeIndex,o=this.pos+t;for(;o<r.from;){if(!i)return null;let a=this.ranges[--i];o-=r.from-a.to,r=a}for(;n<0?o>r.to:o>=r.to;){if(i==this.ranges.length-1)return null;let a=this.ranges[++i];o+=a.from-r.to,r=a}return o}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let n of this.ranges)if(n.to>t)return Math.max(t,n.from);return this.end}peek(t){let n=this.chunkOff+t,r,i;if(n>=0&&n<this.chunk.length)r=this.pos+t,i=this.chunk.charCodeAt(n);else{let o=this.resolveOffset(t,1);if(o==null)return-1;if(r=o,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let a=this.rangeIndex,c=this.range;for(;c.to<=r;)c=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>c.to&&(this.chunk2=this.chunk2.slice(0,c.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(t,n=0){let r=n?this.resolveOffset(n,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=r}acceptTokenTo(t,n){this.token.value=t,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),n=this.pos+t.length;this.chunk=n>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,n){if(n?(this.token=n,n.start=t,n.lookAhead=t+1,n.value=n.extended=-1):this.token=Xm,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,n){if(t>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,n-this.chunkPos);if(t>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,n-this.chunk2Pos);if(t>=this.range.from&&n<=this.range.to)return this.input.read(t,n);let r="";for(let i of this.ranges){if(i.from>=n)break;i.to>t&&(r+=this.input.read(Math.max(i.from,t),Math.min(i.to,n)))}return r}},lt=class{static{s(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;Dm(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};lt.prototype.contextual=lt.prototype.fallback=lt.prototype.extend=!1;ur=class{static{s(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?lr(t):t}token(t,n){let r=t.pos,i=0;for(;;){let o=t.next<0,a=t.resolveOffset(1,1);if(Dm(this.data,t,n,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(o||i++,a==null)break;t.reset(a,t.token)}i&&(t.reset(r,t.token),t.acceptToken(this.elseToken,i))}};ur.prototype.contextual=lt.prototype.fallback=lt.prototype.extend=!1;me=class{static{s(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};s(Dm,"readToken");s(Mm,"findOffset");s(hx,"overrides");pe=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Ba=null;s(jm,"cutAt");nc=class{static{s(this,"FragmentCursor")}constructor(t,n){this.fragments=t,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?jm(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?jm(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let r=this.trees[n],i=this.index[n];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let o=r.children[i],a=this.start[n]+r.positions[i];if(a>t)return this.nextStart=a,null;if(o instanceof ne){if(a==t){if(a<this.safeFrom)return null;let c=a+o.length;if(c<=this.safeTo){let d=o.prop(j.lookAhead);if(!d||c+d<this.fragment.to)return o}}this.index[n]++,a+o.length>=Math.max(this.safeFrom,t)&&(this.trees.push(o),this.start.push(a),this.index.push(0))}else this.index[n]++,this.nextStart=a+o.length}}},rc=class{static{s(this,"TokenCache")}constructor(t,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(r=>new rn)}getActions(t){let n=0,r=null,{parser:i}=t.p,{tokenizers:o}=i,a=i.stateSlot(t.state,3),c=t.curContext?t.curContext.hash:0,d=0;for(let l=0;l<o.length;l++){if((1<<l&a)==0)continue;let f=o[l],u=this.tokens[l];if(!(r&&!f.fallback)&&((f.contextual||u.start!=t.pos||u.mask!=a||u.context!=c)&&(this.updateCachedToken(u,f,t),u.mask=a,u.context=c),u.lookAhead>u.end+25&&(d=Math.max(u.lookAhead,d)),u.value!=0)){let m=n;if(u.extended>-1&&(n=this.addActions(t,u.extended,u.end,n)),n=this.addActions(t,u.value,u.end,n),!f.extend&&(r=u,n>m))break}}for(;this.actions.length>n;)this.actions.pop();return d&&t.setLookAhead(d),!r&&t.pos==this.stream.end&&(r=new rn,r.value=t.p.parser.eofTerm,r.start=r.end=t.pos,n=this.addActions(t,r.value,r.end,n)),this.mainToken=r,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let n=new rn,{pos:r,p:i}=t;return n.start=r,n.end=Math.min(r+1,i.stream.end),n.value=r==i.stream.end?i.parser.eofTerm:0,n}updateCachedToken(t,n,r){let i=this.stream.clipPos(r.pos);if(n.token(this.stream.reset(i,t),r),t.value>-1){let{parser:o}=r.p;for(let a=0;a<o.specialized.length;a++)if(o.specialized[a]==t.value){let c=o.specializers[a](this.stream.read(t.start,t.end),r);if(c>=0&&r.p.parser.dialect.allows(c>>1)){(c&1)==0?t.value=c>>1:t.extended=c>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,n,r,i){for(let o=0;o<i;o+=3)if(this.actions[o]==t)return i;return this.actions[i++]=t,this.actions[i++]=n,this.actions[i++]=r,i}addActions(t,n,r,i){let{state:o}=t,{parser:a}=t.p,{data:c}=a;for(let d=0;d<2;d++)for(let l=a.stateSlot(o,d?2:1);;l+=3){if(c[l]==65535)if(c[l+1]==1)l=Ue(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Ue(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Ue(c,l+1),n,r,i))}return i}},ic=class{static{s(this,"Parse")}constructor(t,n,r,i){this.parser=t,this.input=n,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new tc(n,i),this.tokens=new rc(t,this.stream),this.topTerm=t.top[1];let{from:o}=i[0];this.stacks=[Ha.start(this,t.top[0],o)],this.fragments=r.length&&this.stream.end-o>t.bufferLength*4?new nc(r,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,n=this.minStackPos,r=this.stacks=[],i,o;if(this.bigReductionCount>300&&t.length==1){let[a]=t;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<t.length;a++){let c=t[a];for(;;){if(this.tokens.mainToken=null,c.pos>n)r.push(c);else{if(this.advanceStack(c,r,t))continue;{i||(i=[],o=[]),i.push(c);let d=this.tokens.getMainToken(c);o.push(d.value,d.end)}}break}}if(!r.length){let a=i&&Ox(i);if(a)return pe&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw pe&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&i){let a=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,o,r);if(a)return pe&&console.log("Force-finish "+this.stackID(a)),this.stackToTree(a.forceAll())}if(this.recovering){let a=this.recovering==1?1:this.recovering*3;if(r.length>a)for(r.sort((c,d)=>d.score-c.score);r.length>a;)r.pop();r.some(c=>c.reducePos>n)&&this.recovering--}else if(r.length>1){e:for(let a=0;a<r.length-1;a++){let c=r[a];for(let d=a+1;d<r.length;d++){let l=r[d];if(c.sameState(l)||c.buffer.length>500&&l.buffer.length>500)if((c.score-l.score||c.buffer.length-l.buffer.length)>0)r.splice(d--,1);else{r.splice(a--,1);continue e}}}r.length>12&&(r.sort((a,c)=>c.score-a.score),r.splice(12,r.length-12))}this.minStackPos=r[0].pos;for(let a=1;a<r.length;a++)r[a].pos<this.minStackPos&&(this.minStackPos=r[a].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,n,r){let i=t.pos,{parser:o}=this,a=pe?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let l=t.curContext&&t.curContext.tracker.strict,f=l?t.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let m=this.parser.nodeSet.types[u.type.id]==u.type?o.getGoto(t.state,u.type.id):-1;if(m>-1&&u.length&&(!l||(u.prop(j.contextHash)||0)==f))return t.useNode(u,m),pe&&console.log(a+this.stackID(t)+` (via reuse of ${o.getName(u.type.id)})`),!0;if(!(u instanceof ne)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof ne&&u.positions[0]==0)u=g;else break}}let c=o.stateSlot(t.state,4);if(c>0)return t.reduce(c),pe&&console.log(a+this.stackID(t)+` (via always-reduce ${o.getName(c&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let d=this.tokens.getActions(t);for(let l=0;l<d.length;){let f=d[l++],u=d[l++],m=d[l++],g=l==d.length||!r,w=g?t:t.split(),k=this.tokens.mainToken;if(w.apply(f,u,k?k.start:w.pos,m),pe&&console.log(a+this.stackID(w)+` (via ${(f&65536)==0?"shift":`reduce of ${o.getName(f&65535)}`} for ${o.getName(u)} @ ${i}${w==t?"":", split"})`),g)return!0;w.pos>i?n.push(w):r.push(w)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return Wm(t,n),!0}}runRecovery(t,n,r){let i=null,o=!1;for(let a=0;a<t.length;a++){let c=t[a],d=n[a<<1],l=n[(a<<1)+1],f=pe?this.stackID(c)+" -> ":"";if(c.deadEnd&&(o||(o=!0,c.restart(),pe&&console.log(f+this.stackID(c)+" (restarted)"),this.advanceFully(c,r))))continue;let u=c.split(),m=f;for(let g=0;g<10&&u.forceReduce()&&(pe&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)pe&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))pe&&console.log(f+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>c.pos?(l==c.pos&&(l++,d=0),c.recoverByDelete(d,l),pe&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),Wm(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),ne.build({buffer:ec.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let n=(Ba||(Ba=new WeakMap)).get(t);return n||Ba.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};s(Wm,"pushStackDedup");oc=class{static{s(this,"Dialect")}constructor(t,n,r){this.source=t,this.flags=n,this.disabled=r}allows(t){return!this.disabled||this.disabled[t]==0}},Za=s(e=>e,"id"),on=class{static{s(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Za,this.reduce=t.reduce||Za,this.reuse=t.reuse||Za,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},ut=class e extends Vi{static{s(this,"LRParser")}constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let n=t.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let c=0;c<t.repeatNodeCount;c++)n.push("");let r=Object.keys(t.topRules).map(c=>t.topRules[c][1]),i=[];for(let c=0;c<n.length;c++)i.push([]);function o(c,d,l){i[c].push([d,d.deserialize(String(l))])}if(s(o,"setProp"),t.nodeProps)for(let c of t.nodeProps){let d=c[0];typeof d=="string"&&(d=j[d]);for(let l=1;l<c.length;){let f=c[l++];if(f>=0)o(f,d,c[l++]);else{let u=c[l+-f];for(let m=-f;m>0;m--)o(c[l++],d,u);l++}}}this.nodeSet=new zi(n.map((c,d)=>Oe.define({name:d>=this.minRepeatTerm?void 0:c,id:d,props:i[d],top:r.indexOf(d)>-1,error:d==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(d)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=1024;let a=lr(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let c=0;c<this.specializerSpecs.length;c++)this.specialized[c]=this.specializerSpecs[c].term;this.specializers=this.specializerSpecs.map(Fm),this.states=lr(t.states,Uint32Array),this.data=lr(t.stateData),this.goto=lr(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new lt(a,c):c),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,n,r){let i=new ic(this,t,n,r);for(let o of this.wrappers)i=o(i,t,n,r);return i}getGoto(t,n,r=!1){let i=this.goto;if(n>=i[0])return-1;for(let o=i[n+1];;){let a=i[o++],c=a&1,d=i[o++];if(c&&r)return d;for(let l=o+(a>>1);o<l;o++)if(i[o]==t)return d;if(c)return-1}}hasAction(t,n){let r=this.data;for(let i=0;i<2;i++)for(let o=this.stateSlot(t,i?2:1),a;;o+=3){if((a=r[o])==65535)if(r[o+1]==1)a=r[o=Ue(r,o+2)];else{if(r[o+1]==2)return Ue(r,o+2);break}if(a==n||a==0)return Ue(r,o+1)}return 0}stateSlot(t,n){return this.states[t*6+n]}stateFlag(t,n){return(this.stateSlot(t,0)&n)>0}validAction(t,n){return!!this.allActions(t,r=>r==n?!0:null)}allActions(t,n){let r=this.stateSlot(t,4),i=r?n(r):void 0;for(let o=this.stateSlot(t,1);i==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=Ue(this.data,o+2);else break;i=n(Ue(this.data,o+1))}return i}nextStates(t){let n=[];for(let r=this.stateSlot(t,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Ue(this.data,r+2);else break;if((this.data[r+2]&1)==0){let i=this.data[r+1];n.some((o,a)=>a&1&&o==i)||n.push(this.data[r],i)}}return n}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let r=this.topRules[t.top];if(!r)throw new RangeError(`Invalid top rule name ${t.top}`);n.top=r}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(r=>{let i=t.tokenizers.find(o=>o.from==r);return i?i.to:r})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((r,i)=>{let o=t.specializers.find(c=>c.from==r.external);if(!o)return r;let a=Object.assign(Object.assign({},r),{external:o.to});return n.specializers[i]=Fm(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let n=this.dynamicPrecedences;return n==null?0:n[t]||0}parseDialect(t){let n=Object.keys(this.dialects),r=n.map(()=>!1);if(t)for(let o of t.split(" ")){let a=n.indexOf(o);a>=0&&(r[a]=!0)}let i=null;for(let o=0;o<n.length;o++)if(!r[o])for(let a=this.dialects[n[o]],c;(c=this.data[a++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[c]=1;return new oc(t,r,i)}static deserialize(t){return new e(t)}};s(Ue,"pair");s(Ox,"findFinished");s(Fm,"getSpecializer")});function wx(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function Sx(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((n,r)=>r.length-n.length)}function an(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let i of n.split(" "))if(i){let o=[],a=2,c=i;for(let u=0;;){if(c=="..."&&u>0&&u+3==i.length){a=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(c);if(!m)throw new RangeError("Invalid path: "+i);if(o.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]),u+=m[0].length,u==i.length)break;let g=i[u++];if(u==i.length&&g=="!"){a=0;break}if(g!="/")throw new RangeError("Invalid path: "+i);c=i.slice(u)}let d=o.length-1,l=o[d];if(!l)throw new RangeError("Invalid path: "+i);let f=new sn(r,a,d>0?o.slice(0,d):null);t[l]=f.sort(t[l])}}return bx.add(t)}function Px(e,t){let n=Object.create(null);for(let o of e)if(!Array.isArray(o.tag))n[o.tag.id]=o.class;else for(let a of o.tag)n[a.id]=o.class;let{scope:r,all:i=null}=t||{};return{style:s(o=>{let a=i;for(let c of o)for(let d of c.set){let l=n[d.id];if(l){a=a?a+" "+l:l;break}}return a},"style"),scope:r}}var gx,Pe,yx,Hi,bx,sn,T,Gi,ft,Nm,Lm,pt,Bi,sc,Ae,At,$e,Ce,ac,fr,Zi,O,bY,Ji=p(()=>{Ga();gx=0,Pe=class e{static{s(this,"Tag")}constructor(t,n,r,i){this.name=t,this.set=n,this.base=r,this.modified=i,this.id=gx++}toString(){let{name:t}=this;for(let n of this.modified)n.name&&(t=`${n.name}(${t})`);return t}static define(t,n){let r=typeof t=="string"?t:"?";if(t instanceof e&&(n=t),n?.base)throw new Error("Can not derive from a modified tag");let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let o of n.set)i.set.push(o);return i}static defineModifier(t){let n=new Hi(t);return r=>r.modified.indexOf(n)>-1?r:Hi.get(r.base||r,r.modified.concat(n).sort((i,o)=>i.id-o.id))}},yx=0,Hi=class e{static{s(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=yx++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&wx(n,c.modified));if(r)return r;let i=[],o=new Pe(t.name,i,t,n);for(let c of n)c.instances.push(o);let a=Sx(n);for(let c of t.set)if(!c.modified.length)for(let d of a)i.push(e.get(c,d));return o}};s(wx,"sameArray");s(Sx,"powerSet");s(an,"styleTags");bx=new j({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let o=new sn(i.tags,i.mode,i.context);n?n.next=o:r=o,n=o}return r}}),sn=class{static{s(this,"Rule")}constructor(t,n,r,i){this.tags=t,this.mode=n,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth<this.depth?(this.next=t,this):(t.next=this.sort(t.next),t)}get depth(){return this.context?this.context.length:0}};sn.empty=new sn([],2,null);s(Px,"tagHighlighter");T=Pe.define,Gi=T(),ft=T(),Nm=T(ft),Lm=T(ft),pt=T(),Bi=T(pt),sc=T(pt),Ae=T(),At=T(Ae),$e=T(),Ce=T(),ac=T(),fr=T(ac),Zi=T(),O={comment:Gi,lineComment:T(Gi),blockComment:T(Gi),docComment:T(Gi),name:ft,variableName:T(ft),typeName:Nm,tagName:T(Nm),propertyName:Lm,attributeName:T(Lm),className:T(ft),labelName:T(ft),namespace:T(ft),macroName:T(ft),literal:pt,string:Bi,docString:T(Bi),character:T(Bi),attributeValue:T(Bi),number:sc,integer:T(sc),float:T(sc),bool:T(pt),regexp:T(pt),escape:T(pt),color:T(pt),url:T(pt),keyword:$e,self:T($e),null:T($e),atom:T($e),unit:T($e),modifier:T($e),operatorKeyword:T($e),controlKeyword:T($e),definitionKeyword:T($e),moduleKeyword:T($e),operator:Ce,derefOperator:T(Ce),arithmeticOperator:T(Ce),logicOperator:T(Ce),bitwiseOperator:T(Ce),compareOperator:T(Ce),updateOperator:T(Ce),definitionOperator:T(Ce),typeOperator:T(Ce),controlOperator:T(Ce),punctuation:ac,separator:T(ac),bracket:fr,angleBracket:T(fr),squareBracket:T(fr),paren:T(fr),brace:T(fr),content:Ae,heading:At,heading1:T(At),heading2:T(At),heading3:T(At),heading4:T(At),heading5:T(At),heading6:T(At),contentSeparator:T(Ae),list:T(Ae),quote:T(Ae),emphasis:T(Ae),strong:T(Ae),link:T(Ae),monospace:T(Ae),strikethrough:T(Ae),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:Zi,documentMeta:T(Zi),annotation:T(Zi),processingInstruction:T(Zi),definition:Pe.defineModifier("definition"),constant:Pe.defineModifier("constant"),function:Pe.defineModifier("function"),standard:Pe.defineModifier("standard"),local:Pe.defineModifier("local"),special:Pe.defineModifier("special")};for(let e in O){let t=O[e];t instanceof Pe&&(t.name=e)}bY=Px([{tag:O.link,class:"tok-link"},{tag:O.heading,class:"tok-heading"},{tag:O.emphasis,class:"tok-emphasis"},{tag:O.strong,class:"tok-strong"},{tag:O.keyword,class:"tok-keyword"},{tag:O.atom,class:"tok-atom"},{tag:O.bool,class:"tok-bool"},{tag:O.url,class:"tok-url"},{tag:O.labelName,class:"tok-labelName"},{tag:O.inserted,class:"tok-inserted"},{tag:O.deleted,class:"tok-deleted"},{tag:O.literal,class:"tok-literal"},{tag:O.string,class:"tok-string"},{tag:O.number,class:"tok-number"},{tag:[O.regexp,O.escape,O.special(O.string)],class:"tok-string2"},{tag:O.variableName,class:"tok-variableName"},{tag:O.local(O.variableName),class:"tok-variableName tok-local"},{tag:O.definition(O.variableName),class:"tok-variableName tok-definition"},{tag:O.special(O.variableName),class:"tok-variableName2"},{tag:O.definition(O.propertyName),class:"tok-propertyName tok-definition"},{tag:O.typeName,class:"tok-typeName"},{tag:O.namespace,class:"tok-namespace"},{tag:O.className,class:"tok-className"},{tag:O.macroName,class:"tok-macroName"},{tag:O.propertyName,class:"tok-propertyName"},{tag:O.operator,class:"tok-operator"},{tag:O.comment,class:"tok-comment"},{tag:O.meta,class:"tok-meta"},{tag:O.invalid,class:"tok-invalid"},{tag:O.punctuation,class:"tok-punctuation"}])});var vx,kx,xx,Tx,Rx,_x,Qx,Ex,Ix,$x,Cx,Ax,Xx,Mx,jx,Wx,Fx,Dx,qm,Nx,Lx,qx,zx,Ux,Vx,Kx,zm,Um=p(()=>{Yi();Ji();vx=177,kx=179,xx=184,Tx=12,Rx=13,_x=17,Qx=20,Ex=25,Ix=53,$x=95,Cx=142,Ax=144,Xx=145,Mx=148,jx=10,Wx=13,Fx=32,Dx=9,qm=47,Nx=41,Lx=125,qx=new me((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==jx||r==Wx||r==qm&&e.peek(n+1)==qm)||r==Nx||r==Lx)&&e.acceptToken(vx),!(r!=Fx&&r!=Dx);)r=e.peek(++n)},{contextual:!0}),zx=new Set([$x,xx,Qx,Tx,_x,Ax,Xx,Cx,Mx,Rx,Ix,Ex]),Ux=new on({start:!1,shift:s((e,t)=>t==kx?e:zx.has(t),"shift")}),Vx=an({"func interface struct chan map const type var":O.definitionKeyword,"import package":O.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":O.controlKeyword,range:O.keyword,Bool:O.bool,String:O.string,Rune:O.character,Number:O.number,Nil:O.null,VariableName:O.variableName,DefName:O.definition(O.variableName),TypeName:O.typeName,LabelName:O.labelName,FieldName:O.propertyName,"FunctionDecl/DefName":O.function(O.definition(O.variableName)),"TypeSpec/DefName":O.definition(O.typeName),"CallExpr/VariableName":O.function(O.variableName),LineComment:O.lineComment,BlockComment:O.blockComment,LogicOp:O.logicOperator,ArithOp:O.arithmeticOperator,BitOp:O.bitwiseOperator,"DerefOp .":O.derefOperator,"UpdateOp IncDecOp":O.updateOperator,CompareOp:O.compareOperator,"= :=":O.definitionOperator,"<-":O.operator,'~ "*"':O.modifier,"; ,":O.separator,"... :":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace}),Kx={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},zm=ut.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh",stateData:"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"\u26A0 LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:Ux,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[Vx],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[qx,1,2,new ur("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:s(e=>Kx[e]||-1,"get")}],tokenPrec:5451})});function cc(e){return e==Xt||e==pr}function dc(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function to(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}function BT(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==no?8-t%8:1;return t}function eR(e,t){if(t==NT)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==LT)for(let n=0;n<2&&dc(e.next);n++)e.advance();else if(t==zT)for(let n=0;n<4&&dc(e.next);n++)e.advance();else if(t==UT)for(let n=0;n<8&&dc(e.next);n++)e.advance();else if(t==qT&&e.next==lc){for(e.advance();e.next>=0&&e.next!=Ym&&e.next!=th&&e.next!=nh&&e.next!=Xt;)e.advance();e.next==Ym&&e.advance()}}var Yx,Zm,Hm,Gx,Vm,Bx,Zx,Hx,Jx,Jm,Km,eT,tT,nT,rT,iT,oT,sT,aT,cT,dT,lT,uT,fT,pT,mT,hT,OT,gT,yT,wT,ST,bT,PT,eh,vT,kT,xT,TT,RT,_T,QT,ET,IT,$T,CT,AT,XT,MT,jT,WT,Xt,pr,uc,no,fc,FT,DT,lc,Ym,th,nh,Gm,NT,LT,qT,zT,UT,VT,KT,YT,eo,rh,Ve,Ke,Ye,Ge,GT,Bm,ZT,HT,JT,tR,nR,ih,oh=p(()=>{Yi();Ji();Yx=1,Zm=194,Hm=195,Gx=196,Vm=197,Bx=198,Zx=199,Hx=200,Jx=2,Jm=3,Km=201,eT=24,tT=25,nT=49,rT=50,iT=55,oT=56,sT=57,aT=59,cT=60,dT=61,lT=62,uT=63,fT=65,pT=238,mT=71,hT=241,OT=242,gT=243,yT=244,wT=245,ST=246,bT=247,PT=248,eh=72,vT=249,kT=250,xT=251,TT=252,RT=253,_T=254,QT=255,ET=256,IT=73,$T=77,CT=263,AT=112,XT=130,MT=151,jT=152,WT=155,Xt=10,pr=13,uc=32,no=9,fc=35,FT=40,DT=46,lc=123,Ym=125,th=39,nh=34,Gm=92,NT=111,LT=120,qT=78,zT=117,UT=85,VT=new Set([tT,nT,rT,CT,fT,XT,oT,sT,pT,lT,uT,eh,IT,$T,cT,dT,MT,jT,WT,AT]);s(cc,"isLineBreak");s(dc,"isHex");KT=new me((e,t)=>{let n;if(e.next<0)e.acceptToken(Zx);else if(t.context.flags&eo)cc(e.next)&&e.acceptToken(Bx,1);else if(((n=e.peek(-1))<0||cc(n))&&t.canShift(Vm)){let r=0;for(;e.next==uc||e.next==no;)e.advance(),r++;(e.next==Xt||e.next==pr||e.next==fc)&&e.acceptToken(Vm,-r)}else cc(e.next)&&e.acceptToken(Gx,1)},{contextual:!0}),YT=new me((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==Xt||r==pr){let i=0,o=0;for(;;){if(e.next==uc)i++;else if(e.next==no)i+=8-i%8;else break;e.advance(),o++}i!=n.indent&&e.next!=Xt&&e.next!=pr&&e.next!=fc&&(i<n.indent?e.acceptToken(Hm,-o):e.acceptToken(Zm))}}),eo=1,rh=2,Ve=4,Ke=8,Ye=16,Ge=32;s(to,"Context");GT=new to(null,0,0);s(BT,"countIndent");Bm=new Map([[hT,0],[OT,Ve],[gT,Ke],[yT,Ke|Ve],[wT,Ye],[ST,Ye|Ve],[bT,Ye|Ke],[PT,Ye|Ke|Ve],[vT,Ge],[kT,Ge|Ve],[xT,Ge|Ke],[TT,Ge|Ke|Ve],[RT,Ge|Ye],[_T,Ge|Ye|Ve],[QT,Ge|Ye|Ke],[ET,Ge|Ye|Ke|Ve]].map(([e,t])=>[e,t|rh])),ZT=new on({start:GT,reduce(e,t,n,r){return e.flags&eo&&VT.has(t)||(t==mT||t==eh)&&e.flags&rh?e.parent:e},shift(e,t,n,r){return t==Zm?new to(e,BT(r.read(r.pos,n.pos)),0):t==Hm?e.parent:t==eT||t==iT||t==aT||t==Jm?new to(e,0,eo):Bm.has(t)?new to(e,0,Bm.get(t)|e.flags&eo):e},hash(e){return e.hash}}),HT=new me(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==uc||n==no)){n!=FT&&n!=DT&&n!=Xt&&n!=pr&&n!=fc&&e.acceptToken(Yx);return}}}),JT=new me((e,t)=>{let{flags:n}=t.context,r=n&Ve?nh:th,i=(n&Ke)>0,o=!(n&Ye),a=(n&Ge)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==lc)if(e.peek(1)==lc)e.advance(2);else{if(e.pos==c){e.acceptToken(Jm,1);return}break}else if(o&&e.next==Gm){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),eR(e,d)),e.acceptToken(Jx);return}break}else if(e.next==Gm&&!o&&e.peek(1)>-1)e.advance(2);else if(e.next==r&&(!i||e.peek(1)==r&&e.peek(2)==r)){if(e.pos==c){e.acceptToken(Km,i?3:1);return}break}else if(e.next==Xt){if(i)e.advance();else if(e.pos==c){e.acceptToken(Km);return}break}else e.advance();e.pos>c&&e.acceptToken(Hx)});s(eR,"skipEscape");tR=an({'async "*" "**" FormatConversion FormatSpec':O.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":O.controlKeyword,"in not and or is del":O.operatorKeyword,"from def class global nonlocal lambda":O.definitionKeyword,import:O.moduleKeyword,"with as print":O.keyword,Boolean:O.bool,None:O.null,VariableName:O.variableName,"CallExpression/VariableName":O.function(O.variableName),"FunctionDefinition/VariableName":O.function(O.definition(O.variableName)),"ClassDefinition/VariableName":O.definition(O.className),PropertyName:O.propertyName,"CallExpression/MemberExpression/PropertyName":O.function(O.propertyName),Comment:O.lineComment,Number:O.number,String:O.string,FormatString:O.special(O.string),Escape:O.escape,UpdateOp:O.updateOperator,"ArithOp!":O.arithmeticOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,AssignOp:O.definitionOperator,Ellipsis:O.punctuation,At:O.meta,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,".":O.derefOperator,", ;":O.separator}),nR={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},ih=ut.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"\u26A0 print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:ZT,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[tR],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[HT,YT,KT,JT,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:s(e=>nR[e]||-1,"get")}],tokenPrec:7668})});function pc(e){return e>=48&&e<=57}function io(e){return pc(e)||e==95}var rR,iR,oR,sR,aR,sh,cR,dR,ah,lR,ro,ch,uR,fR,dh,lh,pR,mR,hR,OR,gR,yR,wR,SR,uh,fh=p(()=>{Yi();Ji();rR=1,iR=2,oR=3,sR=4,aR=5,sh=98,cR=101,dR=102,ah=114,lR=69,ro=48,ch=46,uR=43,fR=45,dh=35,lh=34,pR=124,mR=60,hR=62;s(pc,"isNum");s(io,"isNum_");OR=new me((e,t)=>{if(pc(e.next)){let n=!1;do e.advance();while(io(e.next));if(e.next==ch){if(n=!0,e.advance(),pc(e.next))do e.advance();while(io(e.next));else if(e.next==ch||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==cR||e.next==lR){if(n=!0,e.advance(),(e.next==uR||e.next==fR)&&e.advance(),!io(e.next))return;do e.advance();while(io(e.next))}if(e.next==dR){let r=e.peek(1);if(r==ro+3&&e.peek(2)==ro+2||r==ro+6&&e.peek(2)==ro+4)e.advance(3),n=!0;else return}n&&e.acceptToken(aR)}else if(e.next==sh||e.next==ah){if(e.next==sh&&e.advance(),e.next!=ah)return;e.advance();let n=0;for(;e.next==dh;)n++,e.advance();if(e.next!=lh)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==lh;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=dh)continue e;e.advance()}e.acceptToken(sR);return}}}}),gR=new me(e=>{e.next==pR&&e.acceptToken(rR,1)}),yR=new me(e=>{e.next==mR?e.acceptToken(iR,1):e.next==hR&&e.acceptToken(oR,1)}),wR=an({"const macro_rules struct union enum type fn impl trait let static":O.definitionKeyword,"mod use crate":O.moduleKeyword,"pub unsafe async mut extern default move":O.modifier,"for if else loop while match continue break return await":O.controlKeyword,"as in ref":O.operatorKeyword,"where _ crate super dyn":O.keyword,self:O.self,String:O.string,Char:O.character,RawString:O.special(O.string),Boolean:O.bool,Identifier:O.variableName,"CallExpression/Identifier":O.function(O.variableName),BoundIdentifier:O.definition(O.variableName),"FunctionItem/BoundIdentifier":O.function(O.definition(O.variableName)),LoopLabel:O.labelName,FieldIdentifier:O.propertyName,"CallExpression/FieldExpression/FieldIdentifier":O.function(O.propertyName),Lifetime:O.special(O.variableName),ScopeIdentifier:O.namespace,TypeIdentifier:O.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":O.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":O.macroName,'"!"':O.macroName,UpdateOp:O.updateOperator,LineComment:O.lineComment,BlockComment:O.blockComment,Integer:O.integer,Float:O.float,ArithOp:O.arithmeticOperator,LogicOp:O.logicOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,"=":O.definitionOperator,".. ... => ->":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,". DerefOp":O.derefOperator,"&":O.operator,", ; ::":O.separator,"Attribute/...":O.meta}),SR={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},uh=ut.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5<g,5<gO!9SQWO'#CoO!9jQWO'#CoO!9oQWO'#I`O! yQWO'#JuO!9yQWO'#J`O!:aQWO,5;VOOQO'#In'#InO!0zQWO'#DaO!<aQWO'#DcO!<iQWO,5;ZO.YQ_O,5;ZOOQO,5;[,5;[OOQV'#Er'#ErOOQV'#Es'#EsOOQV'#Et'#EtOOQV'#Eu'#EuOOQV'#Ev'#EvOOQV'#Ew'#EwOOQV'#Ex'#ExOOQV'#Ey'#EyO.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;fO!=PQ_O,5;kO!@gQ_O'#FROOQO,5;l,5;lO!BrQWO,5;pO.YQ_O,5;wOKlQYO,5;gO!D_QWO,5;kO!EOQWO,5;xOOQO,5;x,5;xO!E]QWO,5;xO!EbQ_O,5;xO!GmQWO'#CfO!GrQWO,5<QO!G|Q_O,5<QOOQO,5;{,5;{O!JjQXO'#CnO!K{QXO'#I`OOQS'#Dk'#DkOOQP'#Ir'#IrO!LuQ[O'#IrO!L}QXO'#DjO!M{QWO'#DnO!M{QWO'#DnO!N^QWO'#DnOOQP'#It'#ItO!NcQXO'#ItO# ^Q^O'#DoO# hQWO'#DrO# pQ^O'#DzO# zQ^O'#D|O#!RQWO'#EPO#!^QXO'#FdOOQP'#ES'#ESOOQP'#Iq'#IqO#!lQXO'#JfOOQP'#Je'#JeO#!tQXO,5;}O#!yQXO'#I`O!1PQ^O'#DyO!1PQ^O'#FdO##sQWO,5;|OOQO,5;|,5;|OKlQYO,5;|O#$ZQWO'#FhOOQO,5<R,5<ROOQV,5=l,5=lO#&`QYO'#FzOOQV,5<h,5<hO#&gQWO,5<hO#&nQWO,5=SO!1WQWO,59rO!1dQWO,5<dO#&uQWO,5=iO!2_QWO,5<jO!2_QWO,5<zO!2_QWO,5<|O!2_QWO,5=QO#&|QWO,5=]O#'TQWO,5=SO!2_QWO,5=]O!3|QWO,5=aO#']QWO,5=jOOQO-E;|-E;|O#'hQWO'#JjOOQV-E;h-E;hO#(PQWO'#HRO#(WQ_O,59pOOQV,59p,59pO#(_QWO,59pO#(dQ_O,59pO#)SQZO'#CuO#+[QZO'#CvOOQV'#C|'#C|O#-wQWO'#HTO#.OQYO'#IdOOQO'#Hh'#HhO#.WQWO'#CwO#.WQWO'#CwO#.iQWO'#CwOOQR'#Ic'#IcO#.nQZO'#IbO#1TQYO'#HTO#1qQYO'#H[O#2}QYO'#H_OKlQYO'#H`OOQR'#Hb'#HbO#4ZQWO'#HeO#4`QYO,59]OOQR'#Ib'#IbO#5PQZO'#CtO#7[QYO'#HUO#7aQWO'#HTO#7fQYO'#CrO#8VQWO'#H]O#7fQYO'#HcOOQV-E;e-E;eO#8_QWO,59sOOQV,59{,59{O#8mQYO,5=[OOQV,59},59}O!0zQWO,59}O#;aQWO'#IpOOQO'#Ip'#IpO!1PQ^O'#DhO!0zQWO,5:QO#;hQWO,5;iO#<OQWO,5;rO#<fQ_O,5;rOOQO,5;u,5;uO#@PQ_O,5;|O#BXQWO,5;PO!0zQWO,5<XO#B`QWO,5<ZOOQV,5<Z,5<ZO#BkQWO,5<]O!1PQ^O'#EOOOQQ'#D_'#D_O#BsQWO,59rO#BxQWO,5<`O#B}QWO,5<dOOQO,5@U,5@UO#CVQWO,5=iOOQQ'#Cv'#CvO#C[QYO,5<jO#CmQYO,5<zO#CxQYO,5<|O#DTQYO,5=_O#DcQYO,5=SO#E{QYO'#GQO#FYQYO,5=[O#FmQWO,5=[O#F{QYO,5=[O#HUQYO,5=]O#HdQWO,5=`O!1PQ^O,5=`O#HrQWO'#CnO#ITQWO'#I`OOQO'#Jy'#JyO#IfQWO'#IQO#IkQWO'#GwOOQO'#Jz'#JzO#JSQWO'#GzOOQO'#G|'#G|OOQO'#Jx'#JxO#IkQWO'#GwO#JZQWO'#GxO#J`QWO,5=aO#JeQWO,5=jO!1dQWO,5=jO#'`QWO,5=jPOOO'#Hf'#HfP#JjOpO,58}POOO,58},58}OOOO-E;g-E;gOOQV1G/T1G/TO#JuQWO1G4{O#JzQ^O'#CyPOQQ'#Cx'#CxOOQO1G/v1G/vOOQP1G.u1G.uO)xQWO1G/vO#NTQ!fO'#ETO#N[Q!fO'#EaO#NcQ!fO'#EbO$ kQWO1G1yO$!_Q_O1G1yOOQP1G5V1G5VOOQO1G1]1G1]O$&RQWO1G0oO$&WQWO'#CiO!7xQXO'#I`O!6PQYO1G.lO!5oQWO,5<_O!9SQWO,59ZO!9SQWO,59ZO!5oQWO,5?kO$&iQWO1G0uO$(vQWO1G0wO$*nQWO1G0wO$+UQWO1G0wO$-YQWO1G0wO$-aQWO1G0wO$/bQWO1G0wO$/iQWO1G0wO$1jQWO1G0wO$1qQWO1G0wO$3YQWO1G1QO$5ZQWO1G1VO$5zQ_O'#JcO$8SQWO'#JcOOQO'#Jb'#JbO$8^QWO,5;mOOQO'#Dw'#DwOOQO1G1[1G1[OOQO1G1Y1G1YO$8cQWO1G1cOOQO1G1R1G1RO$8jQ_O'#HrO$:xQWO,5@OO.YQ_O1G1dOOQO1G1d1G1dO$;QQWO1G1dO$;_QWO1G1dO$;dQWO1G1eOOQO1G1l1G1lO$;lQWO1G1lOOQP,5?^,5?^O$;vQ^O,5:kO$<aQXO,5:YO!M{QWO,5:YO!M{QWO,5:YO!1PQ^O,5:gO$=bQWO'#IyOOQO'#Ix'#IxO$=pQWO,5:ZO# ^Q^O,5:ZO$=uQWO'#DsOOQP,5:^,5:^O$>WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5<OO$>gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5<OO$?[QWO1G1hO$?dQWO'#CnO$?oQWO'#FiOOQO'#Fi'#FiO$?wQWO'#FjO.YQ_O'#FkOOQO'#Ji'#JiO$?|QWO'#JhOOQO'#Jg'#JgO$@UQWO,5<SOOQQ'#Hv'#HvO$@ZQYO,5<fOOQV,5<f,5<fO$@bQYO,5<fOOQV1G2S1G2SO$@iQWO1G2nO$@qQWO1G/^O$@vQWO1G2OO#CVQWO1G3TO$AOQYO1G2UO#CmQYO1G2fO#CxQYO1G2hO$AaQYO1G2lO!2_QWO1G2wO#DcQYO1G2nO#HUQYO1G2wO$AiQWO1G2{O$AnQWO1G3UO!1dQWO1G3UO$AsQWO1G3UOOQV1G/[1G/[O$A{QWO1G/[O$BQQ_O1G/[O#7aQWO,5=oO$BXQYO,5?OO$BmQWO,5?OO$BrQZO'#IeOOQO-E;f-E;fOOQR,59c,59cO#.WQWO,59cO#.WQWO,59cOOQR,5=n,5=nO$E_QYO'#HVO$FwQZO,5=oO!5oQWO,5={O$IZQWO,5=oO$IbQZO,5=vO$KqQYO,5=vO$>]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5<lO%4[QYO,5<lO%4jQYO,5<lO%5XQYO,5<lOOQQ,5<l,5<lO!1WQWO'#JuO%5dQYO,5<lO%5lQWO1G2vOOQV1G2v1G2vO%5tQWO1G2vO$>]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E<O-E<OOOQO,5=c,5=cOOQO,5=e,5=eOOQO,5=g,5=gOOQO,5=h,5=hO%6aQWO'#J|OOQO'#J{'#J{O%6iQWO,5=fO%6nQWO,5=cO!1dQWO,5=dOOQV1G2{1G2{O$>]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5<T,5<TO%ErQWO,5<UO.YQ_O,5<UO%EwQWO,5<VO%FRQWO'#HtO%FdQWO,5@SOOQO1G1n1G1nOOQQ-E;t-E;tOOQV1G2Q1G2QO%FlQYO1G2QO#DcQYO7+(YO$>]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5<lO&'nQYO,5<lO!1dQWO'#GWO&'|QWO'#JpO&([QWO'#G^O!BxQWO'#G^O&(aQWO'#JpOOQO'#Jo'#JoO&(iQWO,5<wOOQO'#DX'#DXO&(nQYO'#JrO&)}QWO'#JrO$>]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5<yO&*_QWO'#GZO#D^QWO'#G[O&*gQWO'#G[O&*oQWO'#JmOOQO'#Jl'#JlO&*zQYO'#GTOOQO,5<s,5<sO&+PQWO7+'pO&+UQWO'#JtO&+dQWO'#GeO#BxQWO'#GeO&+uQWO'#JtOOQO'#Js'#JsO&+}QWO,5=OO$>]QYO'#GUO&,SQYO'#JkOOQQ,5<n,5<nO&,kQWO7+(WOOQV7+(e7+(eO&.TQ^O'#D|O&._QWO'#GlO&.gQ^O'#JwOOQO'#Gn'#GnO&.nQWO'#JwOOQO'#Jv'#JvO&.vQWO,5=VO&.{QWO'#I`O&/]Q^O'#GmO&/dQWO'#IqO&/rQWO'#GmOOQV7+(Y7+(YO&/zQWO7+(YO$>]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5<m,5<mO$>]QYO,5<qO&0pQWO,5<rO&0uQWO7+(bO&1QQWO7+(fO&1XQWO7+(fOOQV7+(f7+(fO.YQ_O7+(fO$>]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<<Gr<<GrO&3iQWO1G5iO$5zQ_O,5>]O&3qQWO,5>]OOQO-E;o-E;oOOQO<<Jj<<JjO&3{QWO<<JjOOQO<<Jk<<JkO&4SQXO7+%`O&5TQWO,5>WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5<PO&6UQXO,5<PO&6dQXO7+'UO.YQ_O1G1pO&6oQWO1G1pOOQO,5>`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<<KtO#DfQWO<<KtO&7XQWO<<HdOOQV<<LZ<<LZO!1dQWO<<LZOOQV<<K[<<K[O&7dQWO<<K[O%/wQWO<<K[O&7iQWO<<K[OOQV<<Kl<<KlO%/wQWO<<KlOOQV<<Kn<<KnO%0gQWO<<KnO&7qQWO<<KrO$>]QYO<<KrOOQV<<K}<<K}O%5tQWO<<K}O%5yQWO<<K}O#HXQWO<<K}OOQV<<Kt<<KtO&7yQWO<<KtO$>]QYO<<KtO&8RQWO<<L[O$>]QYO<<L[O&8^QWO<<L[OOQV<<Hb<<HbO$>]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&<RQZO7+(uO&>eQZO7+(|O&@tQWO,5>qOOQO-E<T-E<TO&APQWO7+)QOOQO<<G}<<G}O&AWQYO'#ITO&AcQYO,5@jOOQQ7+(v7+(vOOQQ<<He<<HeO$>]QYO<<K|OOQV<<K|<<K|O&0uQWO<<K|O&AkQWO<<K|O%5tQWO<<K|O&AsQWO7+%YOOQV<<Hr<<HrOOQO<<Jn<<JnO.YQ_O,5;SO&AzQWO,5;SO.YQ_O'#EjO&BPQWO,5;SOOQU-E;m-E;mO&B[QWO1G0mOOQV1G0m1G0mO&%{Q^O1G0mOOQV<<Jy<<JyO!.cQ_O<<J}OOQV<<J}<<J}OOQV<<Hd<<HdO.YQ_O<<HdO&BaQWO'#FvO&BfQWO<<KQO&BnQ!fO<<KQO&BuQWO<<KQO&BzQWO<<KQO&CSQ!fO<<KQOOQV<<KQ<<KQO&CZQWO<<LZO&C`QWO,5@[O$>]QYO,5<xO&ChQWO,5<xO&CmQWO'#H{O&C`QWO,5@[OOQV1G2c1G2cO&DRQWO,5@^O$>]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5<uOOQO,5<v,5<vO&E{QYO'#HzO&G_QWO,5@XO%,bQYO,5=pO$>]QYO,5<oO&GjQWO,5@`O.YQ_O,5=PO&GrQWO,5=PO&G}QWO,5=PO&H`QWO'#H}O&GjQWO,5@`OOQV1G2j1G2jO&HtQYO,5<pO%0lQYO,5>PO&I]QYO,5@VOOQV<<Kr<<KrO&ItQWO,5=XO&KfQ^O,5:hO&KmQWO,5=XO$>]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<<KtO&NkQYO,5>oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<<LQ<<LQO.YQ_O<<LQO' lQWO<<LQO' sQWO<<LQOOQO,5>m,5>mOOQO-E<P-E<POOQV<<L[<<L[O.YQ_O<<L[O'!OQYO1G/QO'!ZQYO,5>nOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-E<Q-E<QOOQS1G0[1G0[O'$tQ!fO1G0^O'%RQ!fO1G0^O'%YQWO1G3wOOQOAN@UAN@UO'%dQWO1G/zOOQO,5>X,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<<La<<LaO''nQWO1G6WO%JkQWO,5>pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E<S-E<SO'(RQYO1G2sO'(]QWO1G2sOOQO1G2s1G2sO$>]QYO<<LaOOQR<<Ll<<LlOOQQ,5>o,5>oOOQQ-E<R-E<RO&0uQWOANAhOOQVANAhANAhO%5tQWOANAhO$>]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5<bOOQS,5>a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5<lO'-gQYO1G2ZO'.RQWO1G5zO'.ZQWO1G2kO.YQ_O1G2kO'.eQWO1G2kO&+UQWO,5>iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<<Is<<IsOOQVG26TG26TOOQVG23jG23jOOQO1G1|1G1|OOQVG26WG26WO'6aQWOG26WP&B}QWO'#HuO'6fQWO7+(OOOQO1G4R1G4RO'6qQWO7++dO'6yQWO1G4SO$>]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<<Id<<IdO'8`QWO<<IdO'8kQWO<<IQOOQVLD,fLD,fO'8vQWOLD,fO'9OQWOLD,fOOQVLD)ULD)UOOQVLD,oLD,oOOQVLD,|LD,|O'9^QWOLD,|O.YQ_OLD,|OOQVLD,nLD,nO%5tQWOLD,nO'9eQ^O<<ItO';OQWO<<JxO';rQ^O<<ItP'=OQWO1G0nP'=oQ^O1G0nP.YQ_O1G0nP'?bQWO1G0nOOQVLD+rLD+rO'?gQWO7+)nOOQO,5>e,5>eOOQO-E;w-E;wO'?rQWO<<KqOOQVLD,rLD,rOOQSAN?OAN?OOOQV!$(!Q!$(!QO'?|QWO!$(!QOOQV!$(!h!$(!hO'@UQWO!$(!hOOQV!$(!Y!$(!YO'@]Q^OAN?`POQU7+&Y7+&YP'AvQWO7+&YP'BgQ^O7+&YP.YQ_O7+&YOOQV!)9El!)9ElOOQV!)9FS!)9FSPOQU<<It<<ItP'DYQWO<<ItP'DyQ^O<<ItPOQUAN?`AN?`O'FlQWO'#CnO'FsQXO'#CnO'GlQWO'#I`O'IRQXO'#I`O'IxQWO'#DpO'IxQWO'#DpO!.cQ_O'#EkO'JZQ_O'#EoO'JbQ_O'#FPO'MfQ_O'#FbO'MmQXO'#I`O'NdQ_O'#E}O( gQ_O'#FWO'IxQWO,5:[O'IxQWO,5:[O!.cQ_O,5;ZO!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;fO(!jQ_O,5;kO(%nQWO,5;kO(&OQWO,5;|O(&VQYO'#CuO(&bQYO'#CvO(&mQWO'#CwO(&mQWO'#CwO('OQYO'#CtO('ZQWO,5;iO('bQWO,5;rO('iQ_O,5;rO((oQ_O,5;|O'IxQWO1G/vO((vQWO1G0uO(*eQWO1G0wO(*oQWO1G0wO(,dQWO1G0wO(,kQWO1G0wO(.]QWO1G0wO(.dQWO1G0wO(0UQWO1G0wO(0]QWO1G0wO(0dQWO1G1QO(0tQWO1G1VO(1UQYO'#IeO(&mQWO,59cO(&mQWO,59cO(1aQWO1G1^O(1hQWO1G1hO(&mQWO1G.}O(1oQWO'#DpO!.^QXO'#FbO(1tQWO,5;ZO(1{QWO'#Cw",stateData:"(2_~O&|OSUOS&}PQ~OPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'TQO'ZkO'^UO'gcO'qiO(QdO~O&}!sO~OZbX[bXdbXdlXobXwjX}bX!lbX!qbX!tbX#ObX#PbX#pbX'gbX'qbX'rbX'xbX'ybX'zbX'{bX'|bX'}bX(ObX(PbX(QbX(RbX(TbX~OybXXbX!ebX!PbXvbX#RbX~P$|OZ'SX['SXd'SXd'XXo'SXw'kXy'SX}'SX!l'SX!q'SX!t'SX#O'SX#P'SX#p'SX'g'SX'q'SX'r'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SXv'SX~OX'SX!e'SX!P'SX#R'SX~P'ZOr!uO']!wO'_!uO~Od!xO~O^RO_RO`ROaRO'TQO~Od!}O~Od#PO[(SXo(SXy(SX}(SX!l(SX!q(SX!t(SX#O(SX#P(SX#p(SX'g(SX'q(SX'r(SX'x(SX'y(SX'z(SX'{(SX'|(SX'}(SX(O(SX(P(SX(Q(SX(R(SX(T(SXv(SX~OZ#OO~P*`OZ#RO[#QO~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'T#SO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!j#eO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xO[#}Oo#xO}#zO!l#yO!q#jO!t#yO#O#xO#P#uO#p$OO'g#gO'q#yO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~OPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXy#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sXX#sX!e#sX!P#sXv#sX#R#sX~P)xOX(SX!e(SX!P(SXw(SX#R(SX~P*`OPoOQ!QOSVOTVOX$ROZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!P$XO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOQ!QOSVOTVO[$gO^$pO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j$rOP(XP~P<cOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q$uO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw$vO~Oo'bX#O'bX#P'bX#p'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(R'bX(T'bX~OP%tXQ%tXS%tXT%tXZ%tX[%tX^%tX_%tX`%tXa%tXd%tXg%tXs%tXt%tXu%tXw%tXy%tX|%tX}%tX!Q%tX!U%tX!W%tX!X%tX!Z%tX!]%tX!l%tX!q%tX!t%tX#Y%tX#r%tX#{%tX$O%tX$b%tX$d%tX$f%tX$i%tX$m%tX$q%tX$s%tX%T%tX%V%tX%Z%tX%]%tX%^%tX%f%tX%j%tX%s%tX&z%tX'Q%tX'T%tX'Z%tX'^%tX'g%tX'q%tX(Q%tXv%tX~P@[Oy$xO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bXv'bX~P@[Ow$yO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Oy$zO~PEsO!Q$}O!U%UO!W!lO$m%OO$q%PO$s%QO%T%RO%V%SO%Z%TO%]!lO%^%VO%f%WO%j%XO%s%YO~O!Q!lO!U!lO!W!lO$q%[O%]!lO~O%^%VO~PGaOPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'TQO'ZkO'^UO'gcO'qiO(QdO~Ov%`O~P]OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~P'ZO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~O}%}O'T{XQ{XZ{X[{X^{X_{X`{Xa{Xd{Xg{X!q{X$f{X&W{X'Z{X(Q{X~PMuOg&PO%f%WO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Ow!PO~P! yOw!PO!X&RO~PEvOPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!]&UO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#qXy#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qXX#qX!e#qX!P#qXv#qX#R#qX~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zXy#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zXX#zX!e#zX!P#zXv#zX#R#zX~P)xO'ZkO[#}Xo#}Xy#}X}#}X!l#}X!q#}X!t#}X#O#}X#P#}X#p#}X'g#}X'q#}X'r#}X'x#}X'y#}X'z#}X'{#}X'|#}X'}#}X(O#}X(P#}X(Q#}X(R#}X(T#}XX#}X!e#}X!P#}Xv#}Xw#}X#R#}X~OPoO~OPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~O!S&_O~Ow!PO~O!j&bO~P<cO'T&cO~PEvOZ&eO~O'T&cO~O'^UOw(^Xy(^X!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Oa&hO~P!1iO'T&iO~O_&nO'T&cO~OQ&oOZ&pO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!j&uO~P<cO^&wO_&wO`&wOa&wOd'POw&|O'T&vO(Q&}O~O!i'UO!j'TO'T&cO~O&}!sO'O'VO'P'XO~Or!uO']'ZO'_!uO~OQ']O^'ia_'ia`'iaa'ia'T'ia~O['cOw'dO}'bO~OQ']O~OQ!QO^#TO_#TO`#TOa'kOd#ZO'T#SO~O['lO~OZbXdlXXbXobXPbX!SbX!ebX'rbX!PbX!ObXybX!ZbX#RbXvbX~O[bXwbX}bX~P!6mOZ'SXd'XXX'SX['SXo'SXw'SX}'SX#p'SXP'SX!S'SX!e'SX'r'SX!P'SX!O'SXy'SX!Z'SX#R'SXv'SX~O^#TO_#TO`#TOa'kO'T#SO~OZ'mO~Od'oO~OZ'SXd'XX~PMuOZ'pOX(SX!e(SX!P(SXw(SX#R(SX~P*`O[#}O}#zO(O#|O(R#fOo#_ay#_a!l#_a!q#_a!t#_a#O#_a#P#_a#p#_a'g#_a'q#_a'r#_a'x#_a'y#_a'z#_a'{#_a'|#_a'}#_a(P#_a(Q#_a(T#_aX#_a!e#_a!P#_av#_aw#_a#R#_a~Ow!PO!X&RO~Oy#caX#ca!e#ca!P#cav#ca#R#ca~P2gOPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#say#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#saX#sa!e#sa!P#sav#sa#R#sa~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P(UP~P)xOu(SO#w(TO'T(RO~O[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#sa!t#sa#p#sa'q#sa~Oo#xO#O#xO#P#uOy#saX#sa!e#sa!P#sav#sa#R#sa~P!B}Oy(YO!e(WOX(WX~P2gOX(ZO~OPoOQ!QOSVOTVOX(ZOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZ#RO~O!P(_O!e(WO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZbXdlXwjX}jX!tbX'qbX~OP!RX!S!RX!e!RX'p!RX'r!RX!O!RXo!RXy!RX!P!RXX!RX!Z!RX#R!RXv!RX~P!JUOZ'SXd'XXw'kX}'kX!t'SX'q'SX~OP!`X!S!`X!e!`X'r!`X!O!`Xo!`Xy!`X!P!`XX!`X!Z!`X#R!`Xv!`X~P!KgOT(aOu(aO~O!t(bO'q(bOP!^X!S!^X!e!^X'r!^X!O!^Xo!^Xy!^X!P!^XX!^X!Z!^X#R!^Xv!^X~O^9rO_9rO`9yOa9yO'T9pO~Od(eO~O'p(fOP'hX!S'hX!e'hX'r'hX!O'hXo'hXy'hX!P'hXX'hX!Z'hX#R'hXv'hX~O!j&bO!P'lP~P<cOw(kO}(jO~O!j&bOX'lP~P<cO!j(oO~P<cOZ'pO!t(bO'q(bO~O!S(qO'r(pOP$WX!e$WX~O!e(rOP(YX~OP(tO~OP!aX!S!aX!e!aX'r!aX!O!aXo!aXy!aX!P!aXX!aX!Z!aX#R!aXv!aX~P!KgOy$UaX$Ua!e$Ua!P$Uav$Ua#R$Ua~P2gO!l(|O'Q#VO'T(xOv(ZP~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'T#SO~Ov)TO~P#$iOy)VO~PEsO%^)WO~PGaOa)ZO~P!1iO%f)`O~PEvO_)aO'T&cO~O!i)fO!j)eO'T&cO~O'^UO!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Ov%uX~P2gOv)gO~PGyOv)gO~Ov)gO~P]OQiXQ'XXZiXd'XX}iX#piX(PiX~ORiXwiX$fiX$|iX[iXoiXyiX!liX!qiX!tiX#OiX#PiX'giX'qiX'riX'xiX'yiX'ziX'{iX'|iX'}iX(OiX(QiX(RiX(TiX!PiX!eiXXiXPiXviX!SiX#RiX~P#(kOQjXQlXRjXZjXdlX}jX#pjX(PjXwjX$fjX$|jX[jXojXyjX!ljX!qjX!tjX#OjX#PjX'gjX'qjX'rjX'xjX'yjX'zjX'{jX'|jX'}jX(OjX(QjX(RjX(TjX!PjX!ejXXjX!SjXPjXvjX#RjX~O%^)jO~PGaOQ']Od)kO~O^)mO_)mO`)mOa)mO'T%dO~Od)qO~OQ']OZ)uO})sOR'UX#p'UX(P'UXw'UX$f'UX$|'UX['UXo'UXy'UX!l'UX!q'UX!t'UX#O'UX#P'UX'g'UX'q'UX'r'UX'x'UX'y'UX'z'UX'{'UX'|'UX'}'UX(O'UX(Q'UX(R'UX(T'UX!P'UX!e'UXX'UXP'UXv'UX!S'UX#R'UX~OQ!QO^:bO_:^O`TOaTOd:aO%^)jO'T:_O~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!j)yO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!P)|O!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO(P*OO~OR*QO#p*RO(P*PO~OQhXQ'XXZhXd'XX}hX(PhX~ORhX#phXwhX$fhX$|hX[hXohXyhX!lhX!qhX!thX#OhX#PhX'ghX'qhX'rhX'xhX'yhX'zhX'{hX'|hX'}hX(OhX(QhX(RhX(ThX!PhX!ehXXhXPhXvhX!ShX#RhX~P#4kOQ*SO~O})sO~OQ!QO^%vO_%cO`TOaTOd%jO$f%wO%^%xO'T%dO~PGaO!Q*VO!j*VO~O^*YO`*YOa*YO!O*ZO~OQ&oOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO[#}Oo:YO}#zO!l:ZO!q#jO!t:ZO#O:YO#P:VO#p$OO'g#gO'q:ZO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~Ow'dX~P#9vOy#qaX#qa!e#qa!P#qav#qa#R#qa~P2gOy#zaX#za!e#za!P#zav#za#R#za~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!S&_O!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zay#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#zaX#za!e#za!P#zav#za#R#za~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q*eO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw*fO~P#9vO$b*iO$d*jO$f*kO~O!O*lO'r(pO~O!S*nO~O'T*oO~Ow$yOy*qO~O'T*rO~OQ*uOw*vOy*yO}*wO$|*xO~OQ*uOw*vO$|*xO~OQ*uOw+QO$|*xO~OQ*uOo+VOy+XO!S+UO~OQ*uO}+ZO~OQ!QOZ%rO[%qO^%vO`TOaTOd%jOg%yO}%pO!U!lO!W!lO!q%oO$f%wO$q%[O%]!lO%^%xO&W%{O'T%dO'Z%eO(Q%zO~OR+bO_+^O!Q+cO~P#DkO_%cO!Q!lOw&UX$|&UX(P&UX~P#DkOw$yO$f+hO$|*xO(P*PO~OQ!QOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ*uOw$yO!S+UO$|*xO~Oo+nOy+mO!S+oO'r(pO~OdlXy!RX#pbXv!RX!e!RX~Od'XXy(mX#p'SXv(mX!e(mX~Od+qO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q+vO~Ov(oP~P!3|O#p+{O~Oy+|O~O!S+}O~O&}!sO'O'VO'P,PO~Od,QO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UO~P#DkOS,^OT,^OZ,^O['cO_,YOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~O!P,dO~P#KkOX,gO~P#KkOv,iO~P#KkOo'tX#O'tX#P'tX#p'tX'r'tX'x'tX'y'tX'z'tX'{'tX'|'tX'}'tX(O'tX(P'tX(R'tX(T'tX~Oy,jO['tX}'tX!l'tX!q'tX!t'tX'g'tX'q'tX(Q'tXv'tX~P#NjOP$giQ$giS$giT$giZ$gi[$gi^$gi_$gi`$gia$gid$gig$gis$git$giu$giw$giy$gi|$gi}$gi!Q$gi!U$gi!W$gi!X$gi!Z$gi!]$gi!l$gi!q$gi!t$gi#Y$gi#r$gi#{$gi$O$gi$b$gi$d$gi$f$gi$i$gi$m$gi$q$gi$s$gi%T$gi%V$gi%Z$gi%]$gi%^$gi%f$gi%j$gi%s$gi&z$gi'Q$gi'T$gi'Z$gi'^$gi'g$gi'q$gi(Q$giv$gi~P#NjOX,kO~O['cOo,lOw'dO}'bOX]X~Oy#ciX#ci!e#ci!P#civ#ci#R#ci~P2gO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei(P#ei~P$'PO[#}O}#zO(O#|O(R#fOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei'x#ei(P#ei(Q#ei(T#eiw#ei~P$)QO'g#gO(P#gO~P$'PO[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O!q#ei~P$+`O!q#jO~P$+`O[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'r#ei~P$-hO'r#lO~P$-hO[#}O}#zO!q#jO#P#uO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#eiX#ei!e#ei!P#eiv#ei#R#ei~O'}#ei~P$/pO'}#mO~P$/pO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#ni!t#ni#p#ni'q#ni~Oo#xO#O#xO#P#uOy#niX#ni!e#ni!P#niv#ni#R#ni~P$1xO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#si!t#si#p#si'q#si~Oo#xO#O#xO#P#uOy#siX#si!e#si!P#siv#si#R#si~P$3yOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO~P)xO!e,sO!P(VX~P2gO!P,uO~OX,vO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOX&fX!e&fX!P&fX~P)xO!e(WOX(Wa~Oy,zO!e(WOX(WX~P2gOX,{O~O!P,|O!e(WO~O!P-OO!e(WO~P2gOSVOTVOsVOtVOuVO'^UO'g$[O~P!6POP!baZca!S!ba!e!ba!tca'qca'r!ba!O!bao!bay!ba!P!baX!ba!Z!ba#R!bav!ba~O!e-TO'r(pO!P'mXX'mX~O!P-VO~O!i-`O!j-_O!l-[O'T-XOv'nP~OX-aO~O_%cO!Q!lO~P#DkO!j-gOP&gX!e&gX~P<cO!e(rOP(Ya~O!S-iO'r(pOP$Wa!e$Wa~Ow!PO(P*PO~OvbX!S!kX!ebX~O'Q#VO'T(xO~O!S-mO~O!e-oOv([X~Ov-qO~Ov-sO~P,cOv-sO~P#$iO_-uO'T&cO~O!S-vO~Ow$yOy-wO~OQ*uOw*vOy-zO}*wO$|*xO~OQ*uOo.UO~Oy._O~O!S.`O~O!j.bO'T&cO~Ov.cO~Ov.cO~PGyOQ']O^'Wa_'Wa`'Waa'Wa'T'Wa~Od.gO~OQ'XXQ'kXR'kXZ'kXd'XX}'kX#p'kX(P'kXw'kX$f'kX$|'kX['kXo'kXy'kX!l'kX!q'kX!t'kX#O'kX#P'kX'g'kX'q'kX'r'kX'x'kX'y'kX'z'kX'{'kX'|'kX'}'kX(O'kX(Q'kX(R'kX(T'kX!P'kX!e'kXX'kXP'kXv'kX!S'kX#R'kX~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t.kO#V.mO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(sP~PGaO#Q.tOR%wa#p%wa(P%waw%wa$f%wa$|%wa[%wao%way%wa}%wa!l%wa!q%wa!t%wa#O%wa#P%wa'g%wa'q%wa'r%wa'x%wa'y%wa'z%wa'{%wa'|%wa'}%wa(O%wa(Q%wa(R%wa(T%wa!P%wa!e%waX%waP%wav%wa!S%wa#R%wa~O%^.vO~PGaO(P*POR&Oa#p&Oaw&Oa$f&Oa$|&Oa[&Oao&Oay&Oa}&Oa!l&Oa!q&Oa!t&Oa#O&Oa#P&Oa'g&Oa'q&Oa'r&Oa'x&Oa'y&Oa'z&Oa'{&Oa'|&Oa'}&Oa(O&Oa(Q&Oa(R&Oa(T&Oa!P&Oa!e&OaX&OaP&Oav&Oa!S&Oa#R&Oa~O_%cO!Q!lO!j.xO(P*OO~P#DkO!e.yO(P*PO!P(uX~O!P.{O~OX.|Oy.}O(P*PO~O'Z%eOR(qP~OQ']O})sORfa#pfa(Pfawfa$ffa$|fa[faofayfa!lfa!qfa!tfa#Ofa#Pfa'gfa'qfa'rfa'xfa'yfa'zfa'{fa'|fa'}fa(Ofa(Qfa(Rfa(Tfa!Pfa!efaXfaPfavfa!Sfa#Rfa~OQ']O})sOR&Va#p&Va(P&Vaw&Va$f&Va$|&Va[&Vao&Vay&Va!l&Va!q&Va!t&Va#O&Va#P&Va'g&Va'q&Va'r&Va'x&Va'y&Va'z&Va'{&Va'|&Va'}&Va(O&Va(Q&Va(R&Va(T&Va!P&Va!e&VaX&VaP&Vav&Va!S&Va#R&Va~O!P/UO~Ow$yO$f/ZO$|*xO(P*PO~OQ!QOZ/[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOo/^O'r(pO~O#W/_OP!YiQ!YiS!YiT!YiZ!Yi[!Yi^!Yi_!Yi`!Yia!Yid!Yig!Yio!Yis!Yit!Yiu!Yiw!Yiy!Yi|!Yi}!Yi!Q!Yi!U!Yi!W!Yi!X!Yi!Z!Yi!]!Yi!l!Yi!q!Yi!t!Yi#O!Yi#P!Yi#Y!Yi#p!Yi#r!Yi#{!Yi$O!Yi$b!Yi$d!Yi$f!Yi$i!Yi$m!Yi$q!Yi$s!Yi%T!Yi%V!Yi%Z!Yi%]!Yi%^!Yi%f!Yi%j!Yi%s!Yi&z!Yi'Q!Yi'T!Yi'Z!Yi'^!Yi'g!Yi'q!Yi'r!Yi'x!Yi'y!Yi'z!Yi'{!Yi'|!Yi'}!Yi(O!Yi(P!Yi(Q!Yi(R!Yi(T!YiX!Yi!e!Yi!P!Yiv!Yi!i!Yi!j!Yi#V!Yi#R!Yi~Oy#ziX#zi!e#zi!P#ziv#zi#R#zi~P2gOy$UiX$Ui!e$Ui!P$Uiv$Ui#R$Ui~P2gOv/eO!j&bO'Q`O~P<cOw/nO}/mO~Oy!RX#pbX~Oy/oO~O#p/pO~OR+bO_+dO!Q/sO'T&iO'Z%eO~Oa/zO|!VO'Q#VO'T(ROv(cP~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(eP~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw(`Py(`P~PGaOw*vO~Oy-zO$|*xO~Oa/zO|!VO'Q#VO'T*oOv(gP~Ow+QO~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zO(R0`O~PGaOy0dO~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t0hO'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V0nO!P(jP~P%1}Ow!POy0pO#Q0rO$|*xO~OR0uO!e0sO~P#(kOR0uO!S+UO!e0sO(P*OO~OR0uOo0wO!S+UO!e0sOQ'VXZ'VX}'VX#p'VX(P'VX~OR0uOo0wO!e0sO~OR0uO!e0sO~O$f/ZO(P*PO~Ow$yO~Ow$yO$|*xO~Oo0}Oy0|O!S1OO'r(pO~O!e1POv(pX~Ov1RO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q1VO~Oo1YOQ'VXR'VXZ'VX}'VX!e'VX(P'VX~O!e1ZO(P*POR'YX~O!e1ZOR'YX~O!e1ZO(P*OOR'YX~OR1]O~O!S1^OS'wXT'wXZ'wX['wX_'wXd'wXo'wXs'wXu'wXw'wXy'wX}'wX!P'wX!e'wX!l'wX!q'wX!t'wX!y'wX#O'wX#P'wX#Q'wX#R'wX'Q'wX'Z'wX'^'wX'g'wX'r'wX'v'wX'x'wX'y'wX'z'wX'{'wX'|'wX'}'wX(O'wX(P'wX(Q'wX(R'wXX'wXv'wX~O}1_O~O!P1aO~P#KkOX1bO~P#KkOv1cO~P#KkOS,^OT,^OZ,^O['cO_1dOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~OX1fO~Oy,jO~O!e,sO!P(Va~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P&eX!e&eX~P)xO!e,sO!P(Va~OX&fa!e&fa!P&fa~P2gOX1kO~P2gO!P1mO!e(WO~OP!biZci!S!bi!e!bi!tci'qci'r!bi!O!bio!biy!bi!P!biX!bi!Z!bi#R!biv!bi~O'r(pOP!oi!S!oi!e!oi!O!oio!oiy!oi!P!oiX!oi!Z!oi#R!oiv!oi~O!j&bO!P&`X!e&`XX&`X~P<cO!e-TO!P'maX'ma~O!P1qO~Ov!RX!S!kX!e!RX~O!S1rO~O!e1sOv'oX~Ov1uO~O'T-XO~O!j1xO'T-XO~O(P*POP$Wi!e$Wi~O!S1yO'r(pOP$XX!e$XX~O!S1|O~Ov$_a!e$_a~P2gO!l(|O'Q#VO'T(xOv&hX!e&hX~O!e-oOv([a~Ov2QO~P,cOy2UO~O#p2VO~Oy2WO$|*xO~Ow*vOy2WO}*wO$|*xO~Oo2aO~Ow!POy2fO#Q2hO$|*xO~O!S2jO~Ov2lO~O#Q2mOR%wi#p%wi(P%wiw%wi$f%wi$|%wi[%wio%wiy%wi}%wi!l%wi!q%wi!t%wi#O%wi#P%wi'g%wi'q%wi'r%wi'x%wi'y%wi'z%wi'{%wi'|%wi'}%wi(O%wi(Q%wi(R%wi(T%wi!P%wi!e%wiX%wiP%wiv%wi!S%wi#R%wi~Od2nO~O^2qO!j.sO!q2rO'Q#VO'Z%eO~O(P*PO!P%{X!e%{X~O!e2sO!P(tX~O!P2uO~OQ!QOZ%rO[%qO^2wO_%cO`TOaTOd%jOg%yO}%pO!j2xO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO^2yO!j2xO(P*OO~O!P%aX!e%aX~P#4kO^2yO~O(P*POR&Oi#p&Oiw&Oi$f&Oi$|&Oi[&Oio&Oiy&Oi}&Oi!l&Oi!q&Oi!t&Oi#O&Oi#P&Oi'g&Oi'q&Oi'r&Oi'x&Oi'y&Oi'z&Oi'{&Oi'|&Oi'}&Oi(O&Oi(Q&Oi(R&Oi(T&Oi!P&Oi!e&OiX&OiP&Oiv&Oi!S&Oi#R&Oi~O_%cO!Q!lO!P&yX!e&yX~P#DkO!e.yO!P(ua~OR3QO(P*PO~O!e3ROR(rX~OR3TO~O(P*POR&Pi#p&Piw&Pi$f&Pi$|&Pi[&Pio&Piy&Pi}&Pi!l&Pi!q&Pi!t&Pi#O&Pi#P&Pi'g&Pi'q&Pi'r&Pi'x&Pi'y&Pi'z&Pi'{&Pi'|&Pi'}&Pi(O&Pi(Q&Pi(R&Pi(T&Pi!P&Pi!e&PiX&PiP&Piv&Pi!S&Pi#R&Pi~O!P3UO~O$f3VO(P*PO~Ow$yO$f3VO$|*xO(P*PO~Ow!PO!Z!YO~O!Z3aO#R3_O'r(pO~O!j&bO'Q#VO~P<cOv3eO~Ov3eO!j&bO'Q`O~P<cO!O3hO'r(pO~Ow!PO~P#9vOo3kOy3jO(P*PO~O!P3oO~P%;pOv3rO~P%;pOR0uO!S+UO!e0sO~OR0uOo0wO!S+UO!e0sO~Oa/zO|!VO'Q#VO'T(RO~O!S3uO~O!e3wOv(dX~Ov3yO~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO~PGaO!e3|O(P*PO!P(fX~O!P4OO~O!S4PO(P*OO~O!S+UO(P*PO~O!e4ROw(aXy(aX~OQ4TO~Oy2WO~Oa/zO|!VO'Q#VO'T*oO~Oo4WOw*vO}*wOv%XX!e%XX~O!e4ZOv(hX~Ov4]O~O(P4_Oy(_Xw(_X$|(_XR(_Xo(_X!e(_X~Oy4aO(P*PO~OQ!QOSVOTVO[$gO^4bO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j4cO'Z%eO~P&,sO!S4eO'r(pO~O#V4gO~P%1}O!e4hO!P(kX~O!P4jO~O!P%aX!S!aX!e%aX'r!aX~P!KgO!j&bO~P&,sO!e4hO!P(kX!S'eX'r'eX~O^2yO!j2xO~Ow!POy2fO~O_4pO!Q/sO'T&iO'Z%eOR&lX!e&lX~OR4rO!e0sO~O!S4tO~Ow$yO$|*xO(P*PO~Oy4uO~P2gOo4vOy4uO(P*PO~Ov&uX!e&uX~P!3|O!e1POv(pa~Oo4|Oy4{O(P*PO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UOR&vX!e&vX~P#DkO!e1ZOR'Ya~O!y5SO~O!P5TO~P#KkO!S1^OX'wX#R'wX~O!e,sO!P(Vi~O!P&ea!e&ea~P2gOX5WO~P2gOP!bqZcq!S!bq!e!bq!tcq'qcq'r!bq!O!bqo!bqy!bq!P!bqX!bq!Z!bq#R!bqv!bq~O'r(pO!P&`a!e&`aX&`a~O!i-`O!j-_O!l5YO'T-XOv&aX!e&aX~O!e1sOv'oa~O!S5[O~O!S5`O'r(pOP$Xa!e$Xa~O(P*POP$Wq!e$Wq~Ov$^i!e$^i~P2gOw!POy5bO#Q5dO$|*xO~Oo5gOy5fO(P*PO~Oy5iO~Oy5iO$|*xO~Oy5mO(P*PO~Ow!POy5bO~Oo5tOy5sO(P*PO~O!S5vO~O!e2sO!P(ta~O^2yO!j2xO'Z%eO~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t5zO#V5|O$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&xX!e&xX~PGaOQ!QOZ%rO[%qO^6OO_%cO`TOaTOd%jOg%yO}%pO!j6PO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(P*OO(Q%zO~PGaO!P%aa!e%aa~P#4kO^6QO~O#Q6ROR%wq#p%wq(P%wqw%wq$f%wq$|%wq[%wqo%wqy%wq}%wq!l%wq!q%wq!t%wq#O%wq#P%wq'g%wq'q%wq'r%wq'x%wq'y%wq'z%wq'{%wq'|%wq'}%wq(O%wq(Q%wq(R%wq(T%wq!P%wq!e%wqX%wqP%wqv%wq!S%wq#R%wq~O(P*POR&Oq#p&Oqw&Oq$f&Oq$|&Oq[&Oqo&Oqy&Oq}&Oq!l&Oq!q&Oq!t&Oq#O&Oq#P&Oq'g&Oq'q&Oq'r&Oq'x&Oq'y&Oq'z&Oq'{&Oq'|&Oq'}&Oq(O&Oq(Q&Oq(R&Oq(T&Oq!P&Oq!e&OqX&OqP&Oqv&Oq!S&Oq#R&Oq~O(P*PO!P&ya!e&ya~OX6SO~P2gO'Z%eOR&wX!e&wX~O!e3ROR(ra~O$f6YO(P*PO~Ow![q~P#9vO#R6]O~O!Z3aO#R6]O'r(pO~Ov6bO~O#R6fO~Oy6gO!P6hO~O!P6hO~P%;pOy6kO~Ov6kOy6gO~Ov6kO~P%;pOy6mO~O!e3wOv(da~O!S6pO~Oa/zO|!VO'Q#VO'T(ROv&oX!e&oX~O!e3|O(P*PO!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&pX!e&pX~PGaO!e3|O!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw&nX!e&nXy&nX~PGaO!e4ROw(aay(aa~O!e4ZOv(ha~Oo7SOv%Xa!e%Xa~Oo7SOw*vO}*wOv%Xa!e%Xa~Oa/zO|!VO'Q#VO'T*oOv&qX!e&qX~O(P*POy$xaw$xa$|$xaR$xao$xa!e$xa~O(P4_Oy(_aw(_a$|(_aR(_ao(_a!e(_a~O!P%aa!S!aX!e%aa'r!aX~P!KgOQ!QOSVOTVO[$gO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j&bO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O^7ZO~P&JUO^6QO!j6PO~O!e4hO!P(ka~O!e4hO!P(ka!S'eX'r'eX~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t7_O'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V7aO!P&sX!e&sX~P&L]O!S7cO'r(pO~Ow!POy5bO$|*xO(P*PO~O!S+UOR&la!e&la~Oo0wO!S+UOR&la!e&la~Oo0wOR&la!e&la~O(P*POR$yi!e$yi~Oy7fO~P2gOo7gOy7fO(P*PO~O(P*PORni!eni~O(P*POR&va!e&va~O(P*OOR&va!e&va~OS,^OT,^OZ,^O_,^Od,^Oo,^Os,^Ou,^Oy,^O!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O~O(P7iO(Q7iO(R7iO~P'!qO!P7kO~P#KkO!P&ei!e&ei~P2gO'r(pOv!hi!e!hi~O!S7mO~O(P*POP$Xi!e$Xi~Ov$^q!e$^q~P2gOw!POy7oO~Ow!POy7oO#Q7rO$|*xO~Oy7tO~Oy7uO~Oy7vO(P*PO~Ow!POy7oO$|*xO(P*PO~Oo7{Oy7zO(P*PO~O!e2sO!P(ti~O(P*PO!P%}X!e%}X~O!P%ai!e%ai~P#4kO^8OO~O!e8TO['bXv$`i}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[iv$`i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R#^a~P2gO#R8WO~O!Z3aO#R8XO'r(pO~Ov8[O~Oy8^O~P2gOy8`O~Oy6gO!P8aO~Ov8`Oy6gO~O!e3wOv(di~O(P*POv%Qi!e%Qi~O!e3|O!P(fi~O!e3|O(P*PO!P(fi~O(P*PO!P&pa!e&pa~O(P8hOw(bX!e(bXy(bX~O(P*PO!S$wiy$wiw$wi$|$wiR$wio$wi!e$wi~O!e4ZOv(hi~Ov%Xi!e%Xi~P2gOo8kOv%Xi!e%Xi~O!P%ai!S!aX!e%ai'r!aX~P!KgO(P*PO!P%`i!e%`i~O!e4hO!P(ki~O#V8nO~P&L]O!P&sa!S'eX!e&sa'r'eX~O(P*POR$zq!e$zq~Oy8pO~P2gOy7zO~P2gO(P8rO(Q8rO(R8rO~O(P8rO(Q8rO(R8rO~P'!qO'r(pOv!hq!e!hq~O(P*POP$Xq!e$Xq~Ow!POy8uO$|*xO(P*PO~Ow!POy8uO~Oy8xO~P2gOy8zO~P2gOo8|Oy8zO(P*PO~OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[qv$`q}#[q!i#[q!j#[q!l#[q!q#[q#V#[q'Q#[q'T#[q'^#[q'g#[q~O!e9PO['bXv$`q}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'2fO#R9UO~O!Z3aO#R9UO'r(pO~Oy9WO~O(P*POv%Qq!e%Qq~O!e3|O!P(fq~O(P*PO!P&pi!e&pi~O(P8hOw(ba!e(bay(ba~Ov%Xq!e%Xq~P2gO!P&si!S'eX!e&si'r'eX~O(P*PO!P%`q!e%`q~Oy9]O~P2gO(P9^O(Q9^O(R9^O~O'r(pOv!hy!e!hy~Ow!POy9_O~Ow!POy9_O$|*xO(P*PO~Oy9aO~P2gOQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[yv$`y}#[y!i#[y!j#[y!l#[y!q#[y#V#[y'Q#[y'T#[y'^#[y'g#[y~O!e9dO['bXv$`y}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'9eO!e9eO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R9hO~O(P*PO!P&pq!e&pq~Ov%Xy!e%Xy~P2gOw!POy9iO~Oy9jO~P2gOQ#[!RS#[!RT#[!R[#[!R^#[!R_#[!R`#[!Ra#[!Rd#[!Rs#[!Rt#[!Ru#[!Rv$`!R}#[!R!i#[!R!j#[!R!l#[!R!q#[!R#V#[!R'Q#[!R'T#[!R'^#[!R'g#[!R~O!e9kO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[q}#[q!i#[q!j#[q!l#[q!q#[q!t'bX#V#[q'Q#[q'T#[q'^#[q'g#[q'q'bX(Q'bX~P@[O!e9nO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[y}#[y!i#[y!j#[y!l#[y!q#[y!t'bX#V#[y'Q#[y'T#[y'^#[y'g#[y'q'bX(Q'bX~P@[OwbX~P$|OwjX}jX!tbX'qbX~P!6mOZ'SXd'XXo'SXw'kX!t'SX'q'SX'r'SX~O['SXd'SXw'SX}'SX!l'SX!q'SX#O'SX#P'SX#p'SX'g'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SX~P'GTOP'SX}'kX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTO^9qO_9qO`9qOa9qO'T9oO~O!j:OO~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXw#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sX~P'IxO#Q$uO~P!.cO}'kXP'SX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTOo#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qX~P!.cOo#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zX~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#saw#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#sa~P'IxOo:YO#O:YO#P:VOw#sa~P!B}Ow$Ua~P#9vOQ'XXd'XX}iX~OQlXdlX}jX~O^:sO_:sO`:sOa:sO'T:_O~OQ'XXd'XX}hX~Ow#qa~P#9vOw#za~P#9vO!S&_Oo#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#za~P!.cO#Q*eO~P!.cOw#ci~P#9vO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#ei~O'g#ei(P#ei~P((}O'g#gO(P#gO~P((}O[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#ei~O!q#ei~P(*yO!q#jO~P(*yO[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#ei~O'r#ei~P(,rO'r#lO~P(,rO[#}O}#zO!q#jO#P:VO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#ei~O'}#ei~P(.kO'}#mO~P(.kOo:YO#O:YO#P:VOw#ni~P$1xOo:YO#O:YO#P:VOw#si~P$3yOQ'XXd'XX}'kX~Ow#zi~P#9vOw$Ui~P#9vOd9}O~Ow#ca~P#9vOd:uO~OU'x_'v'P'O'^s!y'^'T'Z~",goto:"$Ku(vPPPPPPP(wPP)OPP)^PPPP)d-hP0f5aP7R7R8v7R>wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"\u26A0 | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[wR],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O_!<Z]'_QUX'PS'OSOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O]!=]XUX'PS'OSOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!=}XUXOY!>jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!<O_!CQjuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#U$n#U#V#!}#V#]$n#]#^!FZ#^#c$n#c#d#%u#d#i$n#i#j!FZ#j#l$n#l#m#(g#m;'S$n;'S;=`4s<%lO$n_!D{duX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_!Fbg'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R$n!R!S!Gy!S!T$n!T!U!K_!U!W$n!W!X!Le!X!Y$n!Y!Z!J]!Z#O$n#O#P&[#P#g$n#g#h!Mk#h;'S$n;'S;=`4s<%lO$n_!HQa'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!IV!T!W$n!W!X!J]!X#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!I^_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y$n!Y!Z!J]!Z#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Jf]uX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Kf_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!J]!T#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Ll_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!U$n!U!V!J]!V#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Mr_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#]$n#]#^!Nq#^;'S$n;'S;=`4s<%lO$n_!Nx_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#n$n#n#o# w#o;'S$n;'S;=`4s<%lO$n_#!O_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#X$n#X#Y!J]#Y;'S$n;'S;=`4s<%lO$n_##Ua'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S;'S$n;'S;=`4s<%lO$n_#$deuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#%|`'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S;'S$n;'S;=`4s<%lO$n_#'XduX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#(nd'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z;'S$n;'S;=`4s<%lO$n_#*VhuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#+z_!SX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![$n![!]#,y!]#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#-S]dX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#.U]yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#/W`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!^$n!^!_#0Y!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#0c_'yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#1k`oX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#2m!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#2v]#RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#3x`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#4z!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#5T_'zX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#6]](RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV#7_]'pP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#8cj'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n_#:^][X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU#;[Z'OSOz#;}z{#<k{!P#;}!P!Q#=V!Q#i#;}#i#j#=n#j#l#;}#l#m#?j#m;'S#;};'S;=`#C[<%lO#;}U#<UVrQ'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[U#<pVrQOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`U#=[UrQOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`U#=s^'OSOz&[z{&v{!P&[!P!Q'x!Q![#>o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[gR,yR,OR,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:s(e=>SR[e]||-1,"get")}],tokenPrec:15596})});import dn from"fs/promises";import Oc from"path";function mh(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function gc(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function G(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function ve(e,t){return e.slice(t.from,t.to)}function Be(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function Ze(e,t){return e[t-1]?.trim()||"<unknown>"}function bR(e,t){let n=[];return G(t,r=>{if(r.type.name!=="ImportStatement")return;let i=ve(e,r).trim(),o=/^from\s+([.\w]+)\s+import\b/.exec(i);if(o?.[1]){n.push(o[1]);return}o=/^import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+as\s+/i)[0]??"").filter(Boolean))}),fe(n,12)}function hc(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return ve(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return G(t,i=>{let o=hc(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?hc(e,n):null}function ph(e,t){let n=new Set,r=s(i=>{if(i.type.name==="CallExpression"){let o=i.firstChild,a=o?hc(e,o):null;a&&!Ee.has(a)&&n.add(a)}G(i,r)},"walk");return r(t),Array.from(n).slice(0,24)}async function hh(e,t,n){let r=[];for(let i of t){let o=Oc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),f=ih.parse(c).topNode,u=te(i),m=de(u),g=ze(m),w=bR(c,f),k=[],h=be(i,n).id;G(f,y=>{if(y.type.name==="FunctionDefinition"){let v=null;if(G(y,A=>{A.type.name==="VariableName"&&!v&&(v=ve(c,A).trim())}),!v)return;let b=v,I=Be(c,y);k.push({id:`${i}#${b}:${I}`,name:b,qualifiedName:`${i}:${b}`,kind:"function",filePath:i,moduleId:h,language:u,capabilityTier:m,line:I,signature:Ze(d,I),exported:!b.startsWith("_"),calls:ph(c,y),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let P=null,S=null;if(G(y,v=>{v.type.name==="VariableName"&&!P?P=ve(c,v).trim():v.type.name==="Body"&&(S=v)}),!P)return;let Q=P,x=Be(c,y);k.push({id:`${i}#${Q}:${x}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"class",filePath:i,moduleId:h,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:!Q.startsWith("_"),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.99,g+.08)}),S&&G(S,v=>{if(v.type.name!=="FunctionDefinition")return;let b=null;if(G(v,R=>{R.type.name==="VariableName"&&!b&&(b=ve(c,R).trim())}),!b)return;let I=b,A=Be(c,v);k.push({id:`${i}#${Q}.${I}:${A}`,name:I,qualifiedName:`${i}:${Q}.${I}`,kind:"method",filePath:i,moduleId:h,language:u,capabilityTier:m,line:A,signature:Ze(d,A),exported:!I.startsWith("_"),calls:ph(c,v),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:h,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}function mr(e,t){let n=null;return G(e,r=>{!n&&t(r)&&(n=r)}),n}function PR(e,t){let n=null;return G(e,r=>{t(r)&&(n=r)}),n}function Oh(e,t){if(t(e))return e;let n=null;return G(e,r=>{n||(n=Oh(r,t))}),n}function oo(e,t,n){let r=new Set,i=s(o=>{if(o.type.name==="CallExpr"||o.type.name==="CallExpression"){let a=o.firstChild,c=a?n(e,a):null;c&&!Ee.has(c)&&r.add(c)}G(o,i)},"walk");return i(t),Array.from(r).slice(0,24)}function so(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return ve(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return G(t,i=>{let o=so(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?so(e,n):null}function ao(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return ve(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return G(t,i=>{let o=ao(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?ao(e,n):null}function cn(e,t,n){let r=mr(t,i=>i.type.name===n);return r?ve(e,r).trim():null}function mc(e,t){return/^pub(?:\([^)]*\))?\s/.test(ve(e,t).trimStart())}async function gh(e,t,n){let r=[];for(let i of t){let o=Oc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=zm.parse(c),f=be(i,n).id,u=te(i),m=de(u),g=ze(m),w=ir(c,u),k=[];G(l.topNode,h=>{if(h.type.name==="TypeDecl"){let v=mr(h,R=>R.type.name==="TypeSpec"),b=v?cn(c,v,"DefName"):null;if(!v||!b)return;let I=mr(v,R=>R.type.name==="InterfaceType")?"interface":"struct",A=Be(c,v);k.push({id:`${i}#${b}:${A}`,name:b,qualifiedName:`${i}:${b}`,kind:I,filePath:i,moduleId:f,language:u,capabilityTier:m,line:A,signature:Ze(d,A),exported:/^[A-Z]/.test(b),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name==="FunctionDecl"){let v=cn(c,h,"DefName");if(!v)return;let b=Be(c,h);k.push({id:`${i}#${v}:${b}`,name:v,qualifiedName:`${i}:${v}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:b,signature:Ze(d,b),exported:/^[A-Z]/.test(v),calls:oo(c,h,so),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name!=="MethodDecl")return;let y=mr(h,v=>v.type.name==="Parameters"),P=cn(c,h,"FieldName"),S=y?Oh(y,v=>v.type.name==="TypeName"):null,Q=S?ve(c,S).trim():void 0;if(!P)return;let x=Be(c,h);k.push({id:`${i}#${Q?`${Q}.`:""}${P}:${x}`,name:P,qualifiedName:`${i}:${Q?`${Q}.`:""}${P}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:/^[A-Z]/.test(P),calls:oo(c,h,so),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}async function yh(e,t,n){let r=[];for(let i of t){let o=Oc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=uh.parse(c),f=be(i,n).id,u=te(i),m=de(u),g=ze(m),w=ir(c,u),k=[];G(l.topNode,h=>{if(h.type.name==="StructItem"||h.type.name==="TraitItem"||h.type.name==="EnumItem"){let Q=cn(c,h,"TypeIdentifier");if(!Q)return;let x=h.type.name==="TraitItem"?"trait":h.type.name==="EnumItem"?"enum":"struct",v=Be(c,h);k.push({id:`${i}#${Q}:${v}`,name:Q,qualifiedName:`${i}:${Q}`,kind:x,filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ze(d,v),exported:mc(c,h),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name==="FunctionItem"){let Q=cn(c,h,"BoundIdentifier");if(!Q)return;let x=Be(c,h);k.push({id:`${i}#${Q}:${x}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:mc(c,h),calls:oo(c,h,ao),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name!=="ImplItem")return;let y=PR(h,Q=>Q.type.name==="TypeIdentifier"),P=y?gc(ve(c,y).trim()):void 0,S=mr(h,Q=>Q.type.name==="DeclarationList");!P||!S||G(S,Q=>{if(Q.type.name!=="FunctionItem")return;let x=cn(c,Q,"BoundIdentifier");if(!x)return;let v=Be(c,Q);k.push({id:`${i}#${P}.${x}:${v}`,name:x,qualifiedName:`${i}:${P}.${x}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ze(d,v),exported:mc(c,Q),calls:oo(c,Q,ao),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}var yc=p(()=>{"use strict";Um();oh();fh();ct();s(mh,"extractGoReceiverQualifier");s(gc,"normalizeRustQualifier");s(G,"forEachSyntaxChild");s(ve,"getSyntaxNodeText");s(Be,"getPythonNodeLine");s(Ze,"getPythonSignature");s(bR,"collectPythonImports");s(hc,"getPythonCallName");s(ph,"collectPythonCallNames");s(hh,"analyzePythonFiles");s(mr,"findFirstSyntaxChild");s(PR,"findLastSyntaxChild");s(Oh,"findSyntaxDescendant");s(oo,"collectLezerCallNames");s(so,"getGoCallName");s(ao,"getRustCallName");s(cn,"findSyntaxNodeText");s(mc,"isRustExported");s(gh,"analyzeGoFiles");s(yh,"analyzeRustFiles")});import wh from"fs/promises";import mt from"path";function Sh(e,t){return Array.from(e.matchAll(t)).length}function ke(e){return Sh(e,/\{/g)-Sh(e,/\}/g)}function vR(e,t,n,r,i){let o=Math.max(0,n.line-1),a=Math.max(n.line,(r[i+1]?.line??e.length+1)-1);if(t==="python"){let u=e[o]?.match(/^\s*/)?.[0]?.length??0,m=o+1;for(;m<e.length;){let g=e[m]??"",w=g.trim();if(!w){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!w.startsWith("#"))break;m+=1}return e.slice(o,m).join(`
799
+ `});var ha=p(()=>{"use strict";jt()});var Bt=p(()=>{"use strict";Gt();ha()});var op=p(()=>{"use strict";Bt()});var sp=p(()=>{"use strict"});var Mq,jq,ap=p(()=>{"use strict";Gt();Bt();Mq=Si.trimEnd(),jq=16*1024});var cp=p(()=>{"use strict";gi();Bt()});var dp=p(()=>{"use strict";Bt()});var yv,lp=p(()=>{"use strict";Gt();Oi();yv={enabled:!1,maxAge:20,protectedTools:Array.from(ma)}});var up=p(()=>{"use strict"});var fp=p(()=>{"use strict";H()});var pp=p(()=>{"use strict";Gt()});var mp=p(()=>{"use strict";jt();fn();yi();wi()});var hp=p(()=>{"use strict"});var Op=p(()=>{"use strict";pp();mp();hp()});var gp=p(()=>{"use strict";Zf();Hf();op();sp();Bt();ap();cp();dp();yi();wi();gi();ua();fa();Gt();lp();ha();up();fp();Op()});var yp=p(()=>{"use strict"});var ga=p(()=>{"use strict"});var ya=p(()=>{"use strict"});var bi=p(()=>{"use strict"});import{createRequire as kv}from"node:module";var xv,wp,UU,wa=p(()=>{"use strict";xv=kv(import.meta.url),UU=new Proxy({},{get(e,t){return wp??=xv("typescript"),Reflect.get(wp,t)}})});var Sa=p(()=>{"use strict";bi();wa()});var bp=p(()=>{"use strict";bi();Sa()});var ba=p(()=>{"use strict";vn();ga()});var Pp=p(()=>{"use strict";ya();ba()});var vp=p(()=>{"use strict";yp();ga();ya();bi();Sa();wa();bp();ba();Pp()});var kp=p(()=>{"use strict"});var Pa=p(()=>{"use strict"});var xp=p(()=>{"use strict";Pa();Pa()});var Tp=p(()=>{"use strict"});var Rp=p(()=>{"use strict";kp();xp();Tp()});var Pi=p(()=>{"use strict"});var va=p(()=>{"use strict";Pi()});var aV,_p=p(()=>{"use strict";Pi();va();aV=new Intl.Segmenter("en",{granularity:"grapheme"})});var Qp=p(()=>{"use strict";_p();Pi();va()});var vi=p(()=>{"use strict";Uc();jt();fn();ge();Yd();Gd();Bd();ns();Jo();ts();es();xn();Zo();Ho();Mr();cl();H();fl();rs();Qn();cs();Al();Xl();An();zl();Bl();Os();gs();Zl();Hl();ys();ws();ws();Kr();qf();oi();oi();kt();Yf();na();Bo();gp();vp();Rp();Qp()});import Ep from"node:fs";import ka from"node:os";import Ne from"node:path";function Cp(e){return(e==="~"?ka.homedir():/^~[\\/]/.test(e)?Ne.join(ka.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,ka.homedir())}function xa(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=Cp(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=Ne.resolve(t,n);for(;;){try{Ep.lstatSync(i)}catch(o){if(o.code!=="ENOENT")return;let a=Ne.dirname(i);if(a===i)return;r.unshift(Ne.basename(i)),i=a;continue}try{return Ne.join(Ep.realpathSync.native(i),...r)}catch{return}}}function Ip(e,t){let n=Ne.relative(t,e);if(!(!n||n.startsWith("..")||Ne.isAbsolute(n)))return n.split(/[\\/]+/).map(r=>{let i=r.toLowerCase();if(process.platform!=="win32")return i;let o=i.indexOf(":");return(o>=0?i.slice(0,o):i).replace(/[ .]+$/g,"")}).join("/")}function Ap(e,t=process.cwd()){let n;try{n=Pt()}catch{return!1}let r=Ne.resolve(n),i=Ne.resolve(t,Cp(e));if(Tn(i,r)){let d=Ip(i,r);if($p(d))return!0}let o=xa(n)??r,a=xa(e,t);if(a===void 0)return Tn(i,r);if(!Tn(a,o))return!1;let c=Ip(a,o);return $p(c)}function $p(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var Xp=p(()=>{"use strict";vi();s(Cp,"expandHome");s(xa,"canonicalizeAgentHomePolicyPath");s(Ip,"normalizedRelative");s(Ap,"isAgentHomeHardMutationTarget");s($p,"isHardAgentHomeRelativePath")});import{randomUUID as Dp}from"node:crypto";import{mkdir as Lv,readFile as Np,rename as qv,rm as Qa,writeFile as Lp}from"node:fs/promises";import Ri from"node:path";function qp(){return jp||(Mp=je(process.pid),jp=!0),Mp}function Fp(e,t){return Ri.join(e,"runtime",...Wp===void 0?[]:[`test-filesystem-effects-${Wp}`],t)}function Gv(){let e=process.platform==="win32"?Ri.join(Ri.resolve(process.env.PROGRAMDATA??"C:\\ProgramData"),"KodaX","sandbox-runtime"):Pt();return{coordinatorPath:Fp(e,Yv),statePath:Fp(e,Kv)}}function Ta(e){if(typeof e!="object"||e===null)return!1;let t=e;return Number.isInteger(t.pid)&&typeof t.token=="string"&&(t.effectPid===void 0||Number.isInteger(t.effectPid))&&(t.effectProcessStartIdentity===void 0||typeof t.effectProcessStartIdentity=="string")&&(t.effectFinished===void 0||typeof t.effectFinished=="boolean")&&(t.processStartIdentity===void 0||typeof t.processStartIdentity=="string")&&(t.sandboxPolicyKey===void 0||typeof t.sandboxPolicyKey=="string")&&(t.posixProcessGroup===void 0||typeof t.posixProcessGroup=="boolean")&&(t.windowsJobContained===void 0||typeof t.windowsJobContained=="boolean")}async function Hn(e){let t;try{t=await Np(e.statePath,"utf8")}catch(o){if(o.code==="ENOENT")return{direct:[],namespaces:[],shells:[]};throw o}let n=JSON.parse(t);if(typeof n!="object"||n===null)throw new Error("Invalid filesystem effect lease state.");let r=n;if(!Array.isArray(r.direct)||!r.direct.every(Ta))throw new Error("Invalid direct filesystem effect state.");if(!Array.isArray(r.shells)||!r.shells.every(Ta))throw new Error("Invalid shell filesystem effect state.");let i=r.namespaces??[];if(!Array.isArray(i)||!i.every(Ta))throw new Error("Invalid namespace filesystem effect state.");return{direct:r.direct,namespaces:i,shells:r.shells}}function Bv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function zp(e){if(!Bv(e.pid))return!1;let t=e.pid===process.pid?qp():je(e.pid);return e.processStartIdentity===void 0||t===void 0||t===e.processStartIdentity}function Zv(e,t){if(e.effectFinished===!0)return"absent";if(e.effectPid===void 0)return t?"unknown":"absent";if(e.posixProcessGroup===!0)try{return process.kill(-e.effectPid,0),"alive"}catch(r){return r.code==="ESRCH"?"absent":"unknown"}let n=je(e.effectPid);return n!==void 0&&(e.effectProcessStartIdentity===void 0||n===e.effectProcessStartIdentity)?"alive":process.platform!=="win32"||e.windowsJobContained===!0||!t?"absent":"unknown"}function Hv(e,t,n){let r=new Map;for(let a of[...e.direct,...e.namespaces,...e.shells])r.set(a,zp(a));let i=s(a=>n.has(a.token)&&(a.effectPid===void 0||a.effectFinished===!0),"hasReleaseProof"),o=s(a=>!i(a)&&(r.get(a)===!0||Zv(a,t)!=="absent"),"keepExternalEffect");return{direct:e.direct.filter(a=>!i(a)&&r.get(a)===!0),namespaces:e.namespaces.filter(o),shells:e.shells.filter(o)}}function Ea(e,t){return`${e.statePath}.${Buffer.from(t,"utf8").toString("base64url")}.released`}async function Jv(e,t){let n=new Set,r=[...t.direct,...t.namespaces,...t.shells];return await Promise.all(r.map(async i=>{try{(await Np(Ea(e,i.token),"utf8")).trim()===i.token&&n.add(i.token)}catch(o){if(o.code!=="ENOENT")throw o}})),n}async function Ra(e,t){try{await Qa(Ea(e,t),{force:!0})}catch(n){L({source:"coding.filesystem-effect-coordinator",level:"warn",message:"Failed to remove a settled filesystem-effect release marker.",detail:n})}}async function ek(e){return await Jn(e,async()=>{let r=await Hn(e);return[...r.namespaces,...r.shells].some(i=>!zp(i))})?(await as()).skipped>0:!0}async function Ti(e,t){let{statePath:n}=e;if(t.direct.length===0&&t.namespaces.length===0&&t.shells.length===0){await Qa(n,{force:!0});return}await Lv(Ri.dirname(n),{recursive:!0});let r=`${n}.${process.pid}.${Dp()}.tmp`;await Lp(r,`${JSON.stringify(t)}
800
+ `,"utf8");try{await qv(r,n)}catch(i){try{await Qa(r,{force:!0})}catch(o){throw new AggregateError([i,o],"Filesystem effect state update and cleanup both failed.")}throw i}}async function Jn(e,t){let n=await _s(e.coordinatorPath,zv);try{return await t()}finally{await n()}}function tk(e,t){return e.sandboxPolicyKey===void 0||t===void 0?!0:e.sandboxPolicyKey!==t}function _a(e,t){return t===void 0||e.sandboxPolicyKey===void 0?!0:e.sandboxPolicyKey!==t}async function nk(e,t){let n=Gv(),r=Dp(),i=qp(),o={pid:process.pid,token:r,...i===void 0?{}:{processStartIdentity:i},...t===void 0?{}:{sandboxPolicyKey:t}},a=Date.now()+Uv,c=Date.now()+Vv,d=await ek(n);for(;;){let R=await Jn(n,async()=>{let _=await Hn(n),X=await Jv(n,_),$=Hv(_,d,X),D=new Set([...$.direct,...$.namespaces,...$.shells].map(N=>N.token));return(e==="shell"?$.direct.length>0||$.namespaces.some(N=>tk(N,t)):e==="direct"?$.shells.length>0||$.namespaces.length>0:$.direct.length>0||$.namespaces.length>0||$.shells.some(N=>_a(N,t)))?t!==void 0&&(e==="namespace"?$.namespaces.some(U=>U.sandboxPolicyKey!==t)||$.shells.some(U=>_a(U,t)):e==="shell"&&$.namespaces.some(U=>U.sandboxPolicyKey!==void 0&&U.sandboxPolicyKey!==t))?"sandbox-policy-conflict":$.direct.length===0&&(e==="namespace"?t!==void 0&&$.shells.every(U=>!_a(U,t))&&$.namespaces.length>0&&$.namespaces.every(U=>U.sandboxPolicyKey===t):e==="shell"&&t===void 0&&$.namespaces.length>0&&$.namespaces.every(U=>U.sandboxPolicyKey!==void 0))?"sandbox-acl-transition":!1:(await Ti(n,e==="shell"?{direct:$.direct,namespaces:$.namespaces,shells:[...$.shells,o]}:e==="direct"?{direct:[...$.direct,o],namespaces:$.namespaces,shells:$.shells}:{direct:$.direct,namespaces:[...$.namespaces,o],shells:$.shells}),await Promise.all([...X].filter(N=>!D.has(N)).map(N=>Ra(n,N))),!0)});if(R===!0)break;if(R==="sandbox-policy-conflict")throw new Error("A different sandbox policy is already active.");let C=R==="sandbox-acl-transition"?c:a;if(Date.now()>=C)throw new Error("A model filesystem effect is already active; retry after it finishes.");await new Promise(_=>setTimeout(_,20))}let l=!1,f=!1,u,m=!1,g=!1,w=!1,k=!1,h=s(()=>Jn(n,async()=>{let R=await Hn(n),C=(e==="shell"?R.shells:e==="direct"?R.direct:R.namespaces).find(_=>_.token===r);if(C===void 0){if(f||g){await Ra(n,r);return}throw new Error("Filesystem effect lease ownership was lost.")}if(C.effectPid!==void 0&&C.effectFinished!==!0)throw new Error("Filesystem effect process tree has not been proven drained.");g=!0,await Ti(n,e==="shell"?{direct:R.direct,namespaces:R.namespaces,shells:R.shells.filter(_=>_.token!==r)}:e==="direct"?{direct:R.direct.filter(_=>_.token!==r),namespaces:R.namespaces,shells:R.shells}:{direct:R.direct,namespaces:R.namespaces.filter(_=>_.token!==r),shells:R.shells}),await Ra(n,r)}),"releaseOnce"),y=s(()=>{if(l||m)return;m=!0;let R=s(()=>{setTimeout(()=>{h().then(()=>{l=!0,m=!1}).catch(()=>{R()})},250).unref?.()},"retry");R()},"scheduleBackgroundRelease"),P=s(async()=>{let R;if(!f&&(!w||k))try{await Lp(Ea(n,r),`${r}
801
+ `,"utf8"),f=!0}catch(_){R=_}let C;for(let _=1;_<=xi;_+=1)try{await h(),R!==void 0&&L({source:"coding.filesystem-effect-coordinator",level:"warn",message:"Filesystem-effect release converged without a durable release marker.",detail:R});return}catch(X){C=X,_<xi&&await new Promise($=>setTimeout($,20))}throw y(),R===void 0?C:new AggregateError([R,C],"Filesystem-effect release marker and coordinator cleanup both failed.")},"releaseReliably"),S=s(async()=>{l||(u??=P().then(()=>{l=!0}).finally(()=>{u=void 0}),await u)},"release"),Q=s(async(R,C)=>{if(!Number.isInteger(R)||R<=0)throw new Error(`Invalid filesystem effect process id: ${R}`);await Jn(n,async()=>{let _=await Hn(n);if(!(e==="shell"?_.shells:e==="direct"?_.direct:_.namespaces).some(N=>N.token===r))throw new Error("Filesystem effect lease ownership was lost before process binding.");let $=je(R),D={...o,effectPid:R,effectFinished:!1,...$===void 0?{}:{effectProcessStartIdentity:$},posixProcessGroup:process.platform!=="win32",windowsJobContained:C},le=s(N=>N.token===r?D:N,"replaceOwner");await Ti(n,{direct:e==="direct"?_.direct.map(le):_.direct,namespaces:e==="namespace"?_.namespaces.map(le):_.namespaces,shells:e==="shell"?_.shells.map(le):_.shells})}),w=!0,k=!1},"bindEffectProcess"),x,v=!1,b=s(()=>Jn(n,async()=>{let R=await Hn(n),C=s(X=>X.token===r?{...X,effectFinished:!0}:X,"replaceOwner");if(!(e==="shell"?R.shells:e==="direct"?R.direct:R.namespaces).some(X=>X.token===r))throw new Error("Filesystem effect lease ownership was lost before tree completion.");await Ti(n,{direct:e==="direct"?R.direct.map(C):R.direct,namespaces:e==="namespace"?R.namespaces.map(C):R.namespaces,shells:e==="shell"?R.shells.map(C):R.shells})}),"finishEffectProcessOnce"),I=s(()=>{if(k||v)return;v=!0;let R=s(()=>{setTimeout(()=>{b().then(()=>{k=!0,v=!1}).catch(()=>{R()})},250).unref?.()},"retry");R()},"scheduleBackgroundFinish");return Object.assign(S,{bindEffectProcess:Q,finishEffectProcess:s(async()=>{k||(x??=(async()=>{let R;for(let C=1;C<=xi;C+=1)try{await b(),k=!0;return}catch(_){R=_,C<xi&&await new Promise(X=>setTimeout(X,20))}throw I(),R})().finally(()=>{x=void 0}),await x)},"finishEffectProcess")})}function rk(){return nk("direct")}async function ik(e){let t=await rk();try{return await e()}finally{await t()}}function ok(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function sk(e){if(typeof e!="string"||e.length===0)return"";let t=e.replace(/\\/g,"/");return t.startsWith("//")?t="//"+t.slice(2).replace(/\/+/g,"/"):t=t.replace(/\/+/g,"/"),ok()?t=t.toLowerCase():t.length>=2&&/^[A-Za-z]:/.test(t)&&(t=t[0].toLowerCase()+t.slice(1)),t.length>1&&t.endsWith("/")&&(t=t.replace(/\/+$/g,"")),t}async function ak(e,t){let n=sk(e),i=(ki.get(n)??Promise.resolve()).catch(()=>{}).then(t),o=i.catch(()=>{}).finally(()=>{ki.get(n)===o&&ki.delete(n)});return ki.set(n,o),i}function Ia(e,t){return ak(e,async()=>ik(async()=>{if(Ap(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return t()}))}var ki,zv,Uv,Vv,xi,Kv,Yv,Mp,jp,Wp,Up=p(()=>{"use strict";vi();Xp();ki=new Map,zv=3e4,Uv=1e3,Vv=3e4,xi=3,Kv="model-filesystem-effects.json",Yv="model-filesystem-effects.lock",jp=!1;s(qp,"getEffectOwnerStartIdentity");Wp=process.env.VITEST_WORKER_ID===void 0?void 0:`${process.env.VITEST_WORKER_ID}-${process.pid}`.replace(/[^a-z0-9_-]/gi,"_");s(Fp,"effectRuntimePath");s(Gv,"captureEffectLeaseStorage");s(Ta,"isEffectLeaseOwner");s(Hn,"readEffectLeaseState");s(Bv,"isProcessAlive");s(zp,"isEffectLeaseOwnerAlive");s(Zv,"modelEffectTreeState");s(Hv,"removeStaleEffectLeases");s(Ea,"effectReleaseMarkerPath");s(Jv,"releasedEffectTokens");s(Ra,"removeEffectReleaseMarkerBestEffort");s(ek,"reconcileAbandonedManagedEffects");s(Ti,"writeEffectLeaseState");s(Jn,"withEffectLeaseCoordinator");s(tk,"namespaceConflictsWithShell");s(_a,"shellConflictsWithNamespace");s(nk,"acquireEffectLease");s(rk,"acquireHostFileSystemMutationLease");s(ik,"withHostFileSystemMutation");s(ok,"isWindowsPathPlatform");s(sk,"normalizePathForKey");s(ak,"withPathMutation");s(Ia,"withFileMutation")});import{AsyncLocalStorage as ck}from"node:async_hooks";import Le from"fs/promises";import Ca from"path";async function ae(e,t){try{let n=await Le.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function we(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&L({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function er(e){return dk.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function fk(e){return $a=($a+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${$a}.tmp`}async function mk(e,t){for(let r=1;;r+=1)try{await Le.rename(e,t);return}catch(i){let o=i?.code;if(r>=5||!o||!pk.has(o))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function qe(e,t){await Ia(e,async()=>{let n=Ca.dirname(e);await Le.mkdir(n,{recursive:!0});let r=fk(e);try{await Le.writeFile(r,`${JSON.stringify(t,null,2)}
802
+ `,"utf8"),await mk(r,e)}catch(i){throw await Le.rm(r,{force:!0}).catch(()=>{}),i}await hk(n,Ca.basename(e)).catch(()=>{})})}async function _i(e){await Ia(e,async()=>{await Le.mkdir(e,{recursive:!0})})}async function hk(e,t){let n=`${t}.`,r=Date.now(),i=await Le.readdir(e);await Promise.all(i.filter(o=>o.startsWith(n)&&uk.test(o.slice(n.length))).map(async o=>{let a=Ca.join(e,o);try{let c=await Le.stat(a);r-c.mtimeMs>=lk&&await Le.rm(a,{force:!0})}catch{}}))}var dk,lk,uk,$a,pk,Qi=p(()=>{"use strict";vi();Up();dk=new ck;s(ae,"safeReadJson");s(we,"debugLogRepoIntelligence");s(er,"resolveRepoIntelligenceStorageDir");lk=3600*1e3,uk=/^\d+\.\d+(?:\.\d+)?\.tmp$/,$a=0;s(fk,"nextAtomicTempPath");pk=new Set(["EPERM","EBUSY","EACCES"]);s(mk,"renameWithRetry");s(qe,"writeJsonFileAtomic");s(_i,"ensureRepoIntelligenceStorageDir");s(hk,"sweepStaleTempFiles")});import _t from"fs/promises";import M from"path";import{createHash as Xa}from"node:crypto";import{execFile as Ok}from"child_process";import{promisify as gk}from"util";function Qt(e){return typeof e=="object"&&e!==null}function Ek(e){return Qt(e)&&typeof e.id=="string"&&typeof e.label=="string"&&typeof e.kind=="string"&&typeof e.root=="string"&&typeof e.fileCount=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.sampleFiles)}function Ik(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.source==="git"||e.source==="filesystem")&&typeof e.generatedAt=="string"&&typeof e.truncated=="boolean"&&Qt(e.fileStats)&&typeof e.fileStats.totalFiles=="number"&&typeof e.fileStats.sourceFiles=="number"&&typeof e.fileStats.docFiles=="number"&&typeof e.fileStats.testFiles=="number"&&typeof e.fileStats.configFiles=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.keyDocs)&&Array.isArray(e.entryHints)&&Array.isArray(e.areas)&&e.areas.every(t=>Ek(t))}function $k(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.overviewGeneratedAt=="string"&&(e.source==="git"||e.source==="filesystem")&&Array.isArray(e.allFiles)&&e.allFiles.every(t=>typeof t=="string")&&Array.isArray(e.sourceFiles)&&e.sourceFiles.every(t=>typeof t=="string")}function Ck(e){return Qt(e)&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function Ak(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||Ck(e.git))&&(e.snapshotKind==="clean"||e.snapshotKind==="dirty")&&(e.head===void 0||typeof e.head=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.dirtyPathsFingerprint===void 0||typeof e.dirtyPathsFingerprint=="string")&&(e.dirtySemanticFingerprint===void 0||typeof e.dirtySemanticFingerprint=="string")}async function ce(e,t){return(await yk("git",e,{cwd:t,timeout:bk,windowsHide:!0,maxBuffer:8388608})).stdout.toString()}async function tr(e){try{return await _t.access(e),!0}catch{return!1}}async function Wa(e){let t=$i(e);return await _i(t),t}function q(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function om(e){let t=Xa("sha256");for(let n of Array.from(e,r=>q(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Xk(e){return Rk.has(M.posix.basename(q(e)))}function Mk(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(q(e[n]??"")!==q(t[n]??""))return!1;return!0}function Et(e){let t=q(e);return t===".agent"||t===".kodax"||Pk.some(n=>t.startsWith(n))}async function jk(e){try{let t=(await ce(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:M.resolve(t),source:"git"}}catch{}return{workspaceRoot:M.resolve(e),source:"filesystem"}}async function Wk(e){try{return(await _t.stat(e)).isDirectory()?e:M.dirname(e)}catch{return e}}async function Fk(e){let t=(await ce(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await ce(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(q).filter(i=>!Et(i))));return{files:r.slice(0,it),truncated:r.length>it}}async function Vp(e){let t=[],n=!1;async function r(i){if(t.length>=it){n=!0;return}let o=await _t.readdir(i,{withFileTypes:!0});for(let a of o){if(t.length>=it){n=!0;return}if(a.isDirectory()){if(Qk.has(a.name))continue;await r(M.join(i,a.name));continue}if(!a.isFile())continue;let c=q(M.relative(e,M.join(i,a.name)));Et(c)||t.push(c)}}return s(r,"walk"),await r(e),{files:t,truncated:n}}function Dk(e){let t=q(e).toLowerCase();return t.split("/").some(r=>kk.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Zt(e){let t=q(e),n=M.extname(t).toLowerCase(),r=M.posix.basename(t);return ja.has(r)?"config":t.startsWith("docs/")||im.has(t)||rm.has(n)?"docs":Dk(t)?"tests":vk.has(n)?"source":"other"}async function sm(e,t){if(t===".")return"Workspace Root";let n=M.join(e,t,"package.json"),r=M.join(e,t,"pyproject.toml"),i=M.join(e,t,"Cargo.toml");if(await tr(n))try{let o=JSON.parse(await _t.readFile(n,"utf8"));if(o.name?.trim())return o.name.trim()}catch{}for(let o of[r,i])if(await tr(o))try{let c=(await _t.readFile(o,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return M.posix.basename(t)}async function Nk(e,t){let n=new Map;for(let i of t){let a=q(i).split("/");if(a.length===1){n.set(".","root");continue}if(Tk.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=xk.get(a[0]??"");c&&n.set(a[0],c)}n.size===0&&n.set(".","root");let r=[];for(let[i,o]of Array.from(n.entries()).sort((a,c)=>a[0].localeCompare(c[0]))){let a=i==="."?"":`${i}/`,c=t.filter(l=>i==="."?!l.includes("/"):l===i||l.startsWith(a)).sort((l,f)=>l.localeCompare(f)),d=c.filter(l=>!(i==="."?l:l.slice(a.length)).includes("/")&&ja.has(M.posix.basename(l)));r.push({id:i,label:await sm(e,i),kind:o,root:i,fileCount:c.length,manifests:d.slice(0,Ma),sampleFiles:c.slice(0,Ma)})}return r.sort((i,o)=>o.fileCount!==i.fileCount?o.fileCount-i.fileCount:i.root.localeCompare(o.root))}async function Kp(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([ce(["branch","--show-current"],e),ce(["rev-parse","HEAD"],e),ce(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function nr(e,t){if(t==="git")try{return await Fk(e)}catch{return Vp(e)}return Vp(e)}async function Ei(e,t){let n=await cm(e,em);return!n||n.schemaVersion!==ue||t&&n.overviewGeneratedAt!==t?null:n}async function Yp(e){let n=(await ce(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),r=new Set;for(let i=0;i<n.length;i+=1){let o=n[i];if(!o||o.length<4)continue;let a=o.slice(0,2),c=q(o.slice(3));if(c&&!Et(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=q(n[i+1]??"");d&&!Et(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function am(e,t){return ae($i(e,t),Ik)}async function cm(e,t){return ae($i(e,t),$k)}async function Lk(e){return ae($i(e,Hp),Ak)}async function qk(e,t){let n=Xa("sha256");n.update(om(t));for(let r of t){let i=M.join(e,r);n.update(r),n.update(":");try{if(await _t.stat(i),n.update("present:"),Xk(r)){let o=await _t.readFile(i,"utf8");n.update(Xa("sha256").update(o).digest("hex"))}}catch(o){let a=Qt(o)&&typeof o.code=="string"?o.code:void 0;n.update(a==="ENOENT"?"missing":"unreadable")}n.update("|")}return n.digest("hex")}async function Gp(e,t){let n=t.map(r=>q(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:om(n),dirtySemanticFingerprint:await qk(e,n)}}async function zk(e,t,n){let r=new Set(t.map(i=>q(i)));for(let i of n){let o=M.join(e,i);await tr(o)?r.add(i):r.delete(i)}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function dm(e,t,n,r,i){let o=n.map(c=>q(c)),a={schemaVersion:ue,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:o.length,sourceFiles:o.filter(c=>Zt(c)==="source").length,docFiles:o.filter(c=>Zt(c)==="docs").length,testFiles:o.filter(c=>Zt(c)==="tests").length,configFiles:o.filter(c=>Zt(c)==="config").length},manifests:o.filter(c=>ja.has(M.posix.basename(c))).slice(0,12),keyDocs:o.filter(c=>im.has(c)||/^README/i.test(M.posix.basename(c))&&rm.has(M.extname(c).toLowerCase())).slice(0,8),entryHints:o.filter(c=>_k.includes(M.posix.basename(c))).slice(0,8),areas:await Nk(e,o)};return{overview:a,inventory:{schemaVersion:ue,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...o].sort((c,d)=>c.localeCompare(d)),sourceFiles:o.filter(c=>Zt(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function lm(e,t,n,r={}){let i={schemaVersion:ue,generatedAt:t.generatedAt,workspaceRoot:t.workspaceRoot,git:t.git??null,snapshotKind:t.source==="git"&&t.git?.hasUncommittedChanges===!0?"dirty":"clean",head:t.git?.head,branch:t.git?.branch,dirtyPathsFingerprint:r.dirtyIdentity?.dirtyPathsFingerprint,dirtySemanticFingerprint:r.dirtyIdentity?.dirtySemanticFingerprint};await qe(M.join(e,Hp),i),await qe(M.join(e,Jp),t),await qe(M.join(e,em),n),r.writeBaseline===!0&&(await qe(M.join(e,tm),t),await qe(M.join(e,nm),n))}function Uk(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===ue&&t.schemaVersion===ue&&e.source==="git"&&t.source==="git"&&e.git?.hasUncommittedChanges!==!0&&e.git?.head&&e.git?.head===n.head&&e.git?.branch===n.branch&&t.workspaceRoot===e.workspaceRoot&&t.overviewGeneratedAt===e.generatedAt)}function Vk(e,t,n,r){return!!(e&&t&&e.schemaVersion===ue&&t.schemaVersion===ue&&e.source==="git"&&e.generatedAt===t.generatedAt&&e.workspaceRoot===t.workspaceRoot&&t.snapshotKind==="dirty"&&n?.hasUncommittedChanges===!0&&t.head===n.head&&t.branch===n.branch&&t.dirtyPathsFingerprint===r.dirtyPathsFingerprint&&t.dirtySemanticFingerprint===r.dirtySemanticFingerprint)}async function Kk(e,t,n){let r=await am(e,tm),i=await cm(e,nm);if(!Uk(r,i,t))return null;let o=i,{dirtyPaths:a}=n,c=new Set(o.allFiles);if(r.truncated)for(let k of a){let h=M.join(e,k);if(!c.has(k)||await tr(h)===!1)return null}let d=new Set(c);for(let k of a){let h=M.join(e,k);await tr(h)?d.add(k):d.delete(k)}let l=Array.from(d).sort((k,h)=>k.localeCompare(h)),f=r.truncated||l.length>it,u=f?l.slice(0,it):l,{overview:m,inventory:g}=await dm(e,"git",u,f,t),w=await Wa(e);return await lm(w,m,g,{dirtyIdentity:n}),m}async function Yk(e,t,n,r,i){if(!t||!n||t.schemaVersion!==ue||t.source!=="filesystem"||n.schemaVersion!==ue||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let o=r.map(a=>q(a)).sort((a,c)=>a.localeCompare(c));if(!Mk(n.allFiles,o))return!1;for(let a of t.areas)if(await sm(e,a.root)!==a.label)return!1;return!0}async function Aa(e,t,n,r,i){let{files:o,truncated:a}=i??await nr(e,t),c=t==="git"&&r?.dirtyPaths.length?await zk(e,o,r.dirtyPaths):o.map(g=>q(g)),d=a||c.length>it,l=d?c.slice(0,it):c,f=await Wa(e),{overview:u,inventory:m}=await dm(e,t,l,d,n);return await lm(f,u,m,{writeBaseline:t==="git"&&n?.hasUncommittedChanges!==!0,dirtyIdentity:r}),{workspaceRoot:e,source:t,overview:u,inventory:m,dirtyPaths:r?.dirtyPaths}}async function It(e,t={}){let n=qc(e),r=await Wk(t.targetPath?M.resolve(n,t.targetPath):n),{workspaceRoot:i,source:o}=await jk(r),a=await am(i,Jp),c=await Lk(i),d,l;if(!t.refresh){if(d=await Kp(i,o),o!=="git"){let u=a?.schemaVersion===ue?await Ei(i,a.generatedAt):null,m=await nr(i,o);return await Yk(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:o,overview:a,inventory:u}:Aa(i,o,d,void 0,m)}if(o==="git"&&a?.schemaVersion===ue&&d?.hasUncommittedChanges!==!0&&a.git?.head===d?.head&&a.git?.branch===d?.branch&&a.git?.hasUncommittedChanges===d?.hasUncommittedChanges&&a)return{workspaceRoot:i,source:o,overview:a,inventory:await Ei(i,a.generatedAt)};if(o==="git"&&d?.hasUncommittedChanges===!0){let u=await Yp(i).catch(m=>(we("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Gp(i,u),Vk(a,c,d,l))return{workspaceRoot:i,source:o,overview:a,inventory:await Ei(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await Kk(i,d,l);if(m)return{workspaceRoot:i,source:o,overview:m,inventory:await Ei(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return Aa(i,o,d,l)}if(d=await Kp(i,o),o==="git"&&d?.hasUncommittedChanges===!0){let f=await Yp(i).catch(u=>(we("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Gp(i,f))}return Aa(i,o,d,l)}function Bp(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function Gk(e){if(!e.trim())return null;let t=e.slice(0,2),n=e.slice(3).trim(),r=q(n.includes(" -> ")?n.split(" -> ").pop()??n:n),i=t[0]!==" "&&t[0]!=="?",o=t[1]!==" "&&t[1]!=="?";return{status:t,path:r,staged:i,unstaged:o||t==="??"}}function Bk(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function Zp(e,t){let n=q(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function Zk(e,t){let n=[];t.length>1&&n.push(`Cross-area change touches ${t.length} areas.`);let r=e.filter(o=>o.category==="config").map(o=>o.path);return r.length>0&&n.push(`Config or manifest changes detected: ${r.slice(0,4).join(" | ")}.`),e.length>0&&e.every(o=>o.category==="docs"||o.category==="tests")&&n.push("Changes are currently limited to docs/tests; implementation files are untouched."),e.some(o=>o.areaId===".")&&n.push("Workspace-root files changed; validate repo-wide implications."),n}async function Hk(e,t,n){if(t==="compare"){let a=n?.trim()||"HEAD~1";if(!a||a.startsWith("-")||/[\u0000-\u001f\s]/.test(a))throw new Error(`Invalid base ref "${a}".`);try{await ce(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(d){throw we(`Rejected compare base ref "${a}".`,d),new Error(`Could not resolve base ref "${a}".`)}return(await ce(["diff","--name-status",`${a}...HEAD`],e)).split(/\r?\n/).map(d=>d.trim()).filter(Boolean).map(d=>{let[l,...f]=d.split(/\s+/),u=f.join(" ").split(" -> ").pop()??f.join(" ");return{path:q(u),status:Bp(l??"M")}}).filter(d=>!Et(d.path))}let i=(await ce(["status","--porcelain=v1","--untracked-files=all"],e)).split(/\r?\n/).map(Gk).filter(a=>a!==null).filter(a=>Bk(a,t)),o=new Map;for(let a of i)Et(a.path)||o.set(a.path,{path:a.path,status:Bp(a.status)});return Array.from(o.values())}async function Jk(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await ce(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await ce(["diff","--cached","--numstat"],e):t==="unstaged"?r=await ce(["diff","--numstat"],e):r=await ce(["diff","--numstat","HEAD"],e);let i=0,o=0;for(let a of r.split(/\r?\n/)){let c=a.trim();if(!c)continue;let d=c.match(/^(\d+|-)\s+(\d+|-)\s+(.+)$/);if(!d)continue;let[,l,f,u]=d,m=q(u.split(" -> ").pop()??u);if(Et(m))continue;let g=l==="-"?0:Number.parseInt(l,10),w=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(w)&&(o+=w)}return{changedLineCount:i+o,addedLineCount:i,deletedLineCount:o}}async function Ii(e,t={}){let n=t.scope??"all",r=e.overview;if(r.source!=="git")throw new Error("changed_scope requires a git-backed workspace.");let i=await Hk(r.workspaceRoot,n,t.baseRef),o=await Jk(r.workspaceRoot,n,t.baseRef).catch(u=>(we("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=Zp(u.path,r.areas);return{path:u.path,status:u.status,category:Zt(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=Zp(u.path,r.areas),g=c.get(m.id)??{areaId:m.id,label:m.label,root:m.root,kind:m.kind,fileCount:0,files:[]};c.set(m.id,{...g,fileCount:g.fileCount+1,files:g.files.length<Ma?[...g.files,u.path]:g.files})}let d={source:0,docs:0,tests:0,config:0,other:0};for(let u of a)d[u.category]+=1;let l={schemaVersion:ue,workspaceRoot:r.workspaceRoot,analyzedAt:new Date().toISOString(),scope:n,baseRef:n==="compare"?t.baseRef?.trim()||"HEAD~1":void 0,overviewGeneratedAt:r.generatedAt,totalChangedFiles:a.length,changedLineCount:o.changedLineCount,addedLineCount:o.addedLineCount,deletedLineCount:o.deletedLineCount,categories:d,areasTouched:Array.from(c.values()).sort((u,m)=>m.fileCount!==u.fileCount?m.fileCount-u.fileCount:u.root.localeCompare(m.root)),files:a,riskHints:Zk(a,Array.from(c.values()))},f=await Wa(r.workspaceRoot);return await qe(M.join(f,Sk),l),l}function ex(){return er(wk)}function $i(e,...t){let n=ex(),r=M.isAbsolute(n)?n:M.join(e,n);return M.join(r,...t)}var yk,wk,Hp,Jp,em,tm,nm,Sk,ue,it,Ma,bk,Pk,vk,rm,kk,xk,Tk,ja,Rk,im,_k,Qk,um=p(()=>{"use strict";zc();Qi();yk=gk(Ok),wk=M.join(".agent","repo-intelligence"),Hp="manifest.json",Jp="repo-overview.json",em="repo-overview-inventory.json",tm="repo-overview-baseline.json",nm="repo-overview-inventory-baseline.json",Sk="changed-scope.json",ue=3,it=12e3,Ma=3,bk=5e3,Pk=[".agent/",".kodax/"],vk=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h",".cs",".rb",".php",".swift",".kt",".kts",".scala",".sh"]),rm=new Set([".md",".mdx",".rst",".txt"]),kk=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),xk=new Map([["docs","docs"],["test","tests"],["tests","tests"],["scripts","scripts"],["bin","scripts"],["tools","scripts"],["src","directory"],["server","directory"],["client","directory"],["web","directory"],["api","directory"],["cmd","directory"],["examples","directory"],["example","directory"]]),Tk=new Set(["packages","apps","libs","services"]),ja=new Set(["package.json","package-lock.json","pnpm-lock.yaml","pnpm-workspace.yaml","yarn.lock","tsconfig.json","tsconfig.build.json","vitest.config.ts","vitest.config.js","vite.config.ts","vite.config.js","pyproject.toml","requirements.txt","Cargo.toml","Cargo.lock","go.mod","go.sum","pom.xml","build.gradle","build.gradle.kts","Makefile","Dockerfile"]),Rk=new Set(["package.json","pyproject.toml","Cargo.toml"]),im=new Set(["README.md","README_CN.md","AGENTS.md","CLAUDE.md","docs/HLD.md","docs/PRD.md","docs/ADR.md","docs/DD.md","docs/FEATURE_LIST.md"]),_k=["index.ts","index.js","main.ts","main.js","app.ts","app.js","server.ts","server.js","cli.ts","cli.js","kodax_cli.ts","main.py"],Qk=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);s(Qt,"isRecord");s(Ek,"isRepoAreaOverview");s(Ik,"isRepoOverviewPayload");s($k,"isRepoOverviewInventoryPayload");s(Ck,"isGitSummaryPayload");s(Ak,"isRepoOverviewManifestPayload");s(ce,"runGit");s(tr,"exists");s(Wa,"ensureStorageDir");s(q,"normalizeRelativePath");s(om,"computePathFingerprint");s(Xk,"isAreaLabelSensitiveManifestPath");s(Mk,"sameNormalizedPathList");s(Et,"isManagedMetadataPath");s(jk,"resolveWorkspaceRoot");s(Wk,"resolveTargetDirectory");s(Fk,"listGitFiles");s(Vp,"walkFilesystemFiles");s(Dk,"isTestFile");s(Zt,"classifyFileCategory");s(sm,"readAreaLabel");s(Nk,"buildAreas");s(Kp,"getGitSummary");s(nr,"collectWorkspaceFilesForSource");s(Ei,"readRepoOverviewInventory");s(Yp,"collectWorkspaceDirtyPaths");s(am,"readStoredRepoOverview");s(cm,"readStoredRepoOverviewInventory");s(Lk,"readStoredRepoOverviewManifest");s(qk,"computeDirtySemanticFingerprint");s(Gp,"buildDirtyOverviewIdentity");s(zk,"applyDirtyPathPatchToFiles");s(dm,"buildRepoOverviewArtifacts");s(lm,"writeRepoOverviewArtifacts");s(Uk,"canUseOverviewBaseline");s(Vk,"canDirectReuseDirtyOverview");s(Kk,"tryBuildDirtyRepoOverviewFromBaseline");s(Yk,"canDirectReuseFilesystemOverview");s(Aa,"buildRepoOverviewSnapshotForWorkspace");s(It,"resolveRepoOverviewSnapshot");s(Bp,"resolveChangedStatus");s(Gk,"parsePorcelainLine");s(Bk,"includesCandidate");s(Zp,"findAreaForFile");s(Zk,"buildRiskHints");s(Hk,"collectChangedFiles");s(Jk,"collectChangedLineStats");s(Ii,"analyzeChangedScopeFromSnapshot");s(ex,"getRepoIntelligenceDir");s($i,"resolveRepoIntelligencePath")});var Ci=p(()=>{"use strict";um();Qi()});import tx from"fs/promises";import rr from"path";import{createHash as Ai}from"node:crypto";function Qe(e){return typeof e=="object"&&e!==null}function en(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languages)&&Array.isArray(e.modules)&&Array.isArray(e.symbols)&&Array.isArray(e.processes)}function Om(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function rx(e){return e==="high"||e==="medium"||e==="low"}function ix(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function ox(e){return Qe(e)&&Om(e.language)&&rx(e.capabilityTier)&&typeof e.fileCount=="number"}function sx(e){return Qe(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&Om(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function ax(e){return Qe(e)&&(e.source==="git"||e.source==="filesystem")&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function gm(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&ax(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>ox(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>sx(t))}function cx(e){return Qe(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&ix(e.kind)&&typeof e.line=="number"&&typeof e.signature=="string"&&typeof e.exported=="boolean"&&Array.isArray(e.calls)&&e.calls.every(t=>typeof t=="string")&&typeof e.confidence=="number"}function dx(e){return Qe(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>cx(t))}function ym(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&Qe(e.analyses)&&Object.values(e.analyses).every(t=>t===null||dx(t))}function wm(e){return Qe(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&typeof e.queryGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&typeof e.sourceFingerprint=="string"&&typeof e.sourceFileCount=="number"&&typeof e.dirtyPathsFingerprint=="string"&&typeof e.dirtySourceFingerprint=="string"&&Array.isArray(e.dirtySourcePaths)&&e.dirtySourcePaths.every(t=>typeof t=="string")}function K(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function te(e){switch(rr.extname(e).toLowerCase()){case".ts":case".tsx":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":return"python";case".java":return"java";case".go":return"go";case".rs":return"rust";case".cpp":case".cc":case".cxx":case".c":case".hpp":case".h":return"cpp";default:return"unknown"}}function de(e){switch(e){case"typescript":case"javascript":case"python":case"go":case"rust":return"high";case"java":return"medium";default:return"low"}}function Sm(e,t="full"){return(e==="typescript"||e==="javascript")&&t==="light"?2:1}function ze(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function bm(e,t){if(e.length>0){let r=e.reduce((i,o)=>i+o.confidence,0);return Math.min(.95,Math.max(.32,r/e.length))}let n=t[0];return n?ze(n.capabilityTier):.4}async function Wi(e){try{return await tx.access(e),!0}catch{return!1}}async function Fi(e,t="full"){let n=lx(),r=rr.isAbsolute(n)?n:rr.join(e,n),i=t==="light"?rr.join(r,"light"):r;return await _i(i),i}function Pm(e,t,n){return Ai("sha256").update(K(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function tn(e){let t=Ai("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Di(e,t){let n=Ai("sha256");n.update(e.workspaceRoot),n.update("|"),n.update(e.source),n.update("|");for(let r of e.areas)n.update(r.id),n.update(":"),n.update(r.label),n.update(":"),n.update(r.kind),n.update(":"),n.update(r.root),n.update(":"),n.update(String(r.fileCount)),n.update(":"),n.update(r.manifests.join(",")),n.update(":"),n.update(r.sampleFiles.join(",")),n.update("|");for(let r of t)n.update(r),n.update("|");return n.digest("hex")}function ir(e){let t=Ai("sha256");for(let n of Array.from(e,r=>K(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Ni(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function Li(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function Fa(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function vm(e){return e.workspaceSnapshot.source!=="git"||Li(e.workspaceSnapshot)}function km(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function at(e,t){return qe(e,t)}function xm(e){let t=K(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function Tm(e){let t=K(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function be(e,t){let n=K(e),r=[...t].sort((i,o)=>o.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function fe(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function or(e,t){let n=[],r=e.split(/\r?\n/);for(let i of r){let o=null;if(t==="typescript"||t==="javascript"){o=/from\s+['"]([^'"]+)['"]/.exec(i)??/require\(\s*['"]([^'"]+)['"]\s*\)/.exec(i)??/^\s*import\s+['"]([^'"]+)['"]/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="python"){if(o=/^\s*from\s+([A-Za-z0-9_\.]+)\s+import/.exec(i),o?.[1]){n.push(o[1]);continue}o=/^\s*import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+/)[0]??"").filter(Boolean));continue}if(t==="go"){o=/^\s*import\s+"([^"]+)"/.exec(i)??/^\s*"([^"]+)"/.exec(i),o?.[1]&&n.push(o[1]);continue}if(t==="rust"){o=/^\s*use\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}if(t==="java"){o=/^\s*import\s+([^;]+);/.exec(i),o?.[1]&&n.push(o[1].trim());continue}t==="cpp"&&(o=/^\s*#include\s+[<"]([^">]+)[">]/.exec(i),o?.[1]&&n.push(o[1].trim()))}return fe(n,12)}function lx(){return er(nx)}var nx,ot,Xi,Mi,ji,fm,pm,mm,J,Ht,st,hm,Se,Jt,Ee,ct=p(()=>{"use strict";Qi();nx=rr.join(".agent","repo-intelligence"),ot="repo-intelligence-index.json",Xi="repo-intelligence-manifest.json",Mi="file-analysis-index.json",ji="repo-intelligence-dirty-source-hint.json",fm="module-index.json",pm="symbol-index.json",mm="process-index.json",J=9,Ht=512*1024,st=40,hm=8,Se=8,Jt=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),Ee=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);s(Qe,"isRecord");s(en,"isRepoIntelligenceIndexPayload");s(Om,"isRepoLanguageId");s(rx,"isLanguageCapabilityTier");s(ix,"isRepoSymbolKind");s(ox,"isRepoLanguageSupportPayload");s(sx,"isRepoSourceFileStatePayload");s(ax,"isRepoWorkspaceSnapshotPayload");s(gm,"isRepoIntelligenceManifestPayload");s(cx,"isCachedRepoSymbolRecordPayload");s(dx,"isCachedFileAnalysisEntryPayload");s(ym,"isFileAnalysisIndexPayload");s(wm,"isDirtySourceHintPayload");s(K,"normalizeRelativePath");s(te,"languageFromFile");s(de,"capabilityTierForLanguage");s(Sm,"analyzerVersionForLanguage");s(ze,"baseConfidenceForTier");s(bm,"computeModuleConfidence");s(Wi,"exists");s(Fi,"ensureStorageDir");s(Pm,"computeFileFingerprint");s(tn,"computeSourceFingerprint");s(Di,"computeOverviewFingerprint");s(ir,"computePathFingerprint");s(Ni,"workspaceSnapshotFromOverview");s(Li,"isCleanGitSnapshot");s(Fa,"sameWorkspaceSnapshot");s(vm,"shouldPersistRepoIntelligenceBaseline");s(km,"getDirtySourcePathsForInputs");s(at,"writeJsonFileAtomic");s(xm,"isTestFile");s(Tm,"isDocFile");s(be,"findAreaForFile");s(fe,"dedupeStrings");s(or,"extractImports");s(lx,"getRepoIntelligenceDir")});import Da from"path";import ux from"fs/promises";function Rm(e,t){let n=new Map,r=new Map,i=new Map,o=new Map;for(let a of e){let c=be(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),xm(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(Tm(a)){let l=o.get(c.id)??[];l.push(a),o.set(c.id,l)}}return{areaByFile:n,filesByAreaId:r,testFilesByAreaId:i,docFilesByAreaId:o}}async function _m(e,t="full"){let n=e.workspaceRoot,r=await Fi(n,t),i=Ni(e.overview),o=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>K(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=o?ir(o):void 0,c=(o??[]).filter(f=>Jt.has(Da.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await Wi(Da.join(n,f))&&d.push(f);let l=d.length>0?await nn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Di(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:o,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:o?tn(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Na(e,t,n,r,i="full"){let o=[];for(let a of t){let c=K(a),d=await ux.stat(Da.join(e,c)),l=te(c);o.push({filePath:c,fileFingerprint:Pm(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??be(c,r).id,analyzerVersion:Sm(l,i)})}return o.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function nn(e,t,n,r,i="full"){let o=Array.from(new Set(Array.from(t,c=>K(c)))).sort((c,d)=>c.localeCompare(d)),a=await Na(e,o,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function Qm(e){return e?{importPaths:e.importPaths,symbols:e.symbols.map(t=>({id:t.id,name:t.name,qualifiedName:t.qualifiedName,kind:t.kind,line:t.line,signature:t.signature,exported:t.exported,calls:t.calls,confidence:t.confidence}))}:null}function Em(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:de(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:de(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function La(e){return{typeScriptFiles:e.filter(t=>$t(te(t))),pythonFiles:e.filter(t=>te(t)==="python"),goFiles:e.filter(t=>te(t)==="go"),rustFiles:e.filter(t=>te(t)==="rust"),fallbackFiles:e.filter(t=>{let n=te(t);return!$t(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function $t(e){return e==="typescript"||e==="javascript"}var sr=p(()=>{"use strict";ct();s(Rm,"buildAreaFileLookups");s(_m,"buildRepoIntelligencePreflight");s(Na,"collectSourceFileStates");s(nn,"collectSourceFileStateMap");s(Qm,"serializeCachedFileAnalysisEntry");s(Em,"hydrateCachedFileAnalysis");s(La,"bucketSourceFiles");s($t,"isTypeScriptLikeLanguage")});function Am(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function cr(e,t,n,r){for(var i;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let a=!r&&e instanceof Ie&&e.index<0?null:e.parent;if(!a)return e;e=a}let o=r?0:z.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof Ie&&a.index<0&&((i=c.enter(t,n,o))===null||i===void 0?void 0:i.from)!=a.from&&(e=c);for(;;){let a=e.enter(t,n,o);if(!a)return e;e=a}}function $m(e,t,n,r){let i=e.cursor(),o=[];if(!i.firstChild())return o;if(n!=null){for(let a=!1;!a;)if(a=i.type.is(n),!i.nextSibling())return o}for(;;){if(r!=null&&i.type.is(r))return o;if(i.type.is(t)&&o.push(i.node),!i.nextSibling())return r==null?o:[]}}function za(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}function Xm(e){if(!e.length)return null;let t=0,n=e[0];for(let o=1;o<e.length;o++){let a=e[o];(a.from>n.from||a.to<n.to)&&(n=a,t=o)}let r=n instanceof Ie&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Va(i,n)}function mx(e,t,n){let r=e.resolveInner(t,n),i=null;for(let o=r instanceof Ie?r:r.context.parent;o;o=o.parent)if(o.index<0){let a=o.parent;(i||(i=[r])).push(a.resolve(t,n)),o=a}else{let a=Ct.get(o.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let c=new Ie(a.tree,a.overlay[0].from+o.from,-1,o);(i||(i=[r])).push(cr(c,t,n,!1))}}return i?Xm(i):r}function Ya(e){return e.children.some(t=>t instanceof dt||!t.type.isAnonymous||Ya(t))}function hx(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:o=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new qa(n,n.length):n,d=r.types,l=0,f=0;function u(x,v,b,I,A,R){let{id:C,start:_,end:X,size:$}=c,D=f,le=l;if($<0)if(c.next(),$==-1){let Xe=o[C];b.push(Xe),I.push(_-x);return}else if($==-3){l=C;return}else if($==-4){f=C;return}else throw new RangeError(`Unrecognized record size: ${$}`);let N=d[C],un,U,Fc=_-x;if(X-_<=i&&(U=h(c.pos-v,A))){let Xe=new Uint16Array(U.size-U.skip),he=c.pos-U.size,xe=Xe.length;for(;c.pos>he;)xe=y(U.start,Xe,xe);un=new dt(Xe,X-U.start,r),Fc=U.start-x}else{let Xe=c.pos-$;c.next();let he=[],xe=[],yt=C>=a?C:-1,Mt=0,Sr=X;for(;c.pos>Xe;)yt>=0&&c.id==yt&&c.size>=0?(c.end<=Sr-i&&(w(he,xe,_,Mt,c.end,Sr,yt,D,le),Mt=he.length,Sr=c.end),c.next()):R>2500?m(_,Xe,he,xe):u(_,Xe,he,xe,yt,R+1);if(yt>=0&&Mt>0&&Mt<he.length&&w(he,xe,_,Mt,_,Sr,yt,D,le),he.reverse(),xe.reverse(),yt>-1&&Mt>0){let Dc=g(N,le);un=Ga(N,he,xe,0,he.length,0,X-_,Dc,Dc)}else un=k(N,he,xe,X-_,D-X,le)}b.push(un),I.push(Fc)}s(u,"takeNode");function m(x,v,b,I){let A=[],R=0,C=-1;for(;c.pos>v;){let{id:_,start:X,end:$,size:D}=c;if(D>4)c.next();else{if(C>-1&&X<C)break;C<0&&(C=$-i),A.push(_,X,$),R++,c.next()}}if(R){let _=new Uint16Array(R*4),X=A[A.length-2];for(let $=A.length-3,D=0;$>=0;$-=3)_[D++]=A[$],_[D++]=A[$+1]-X,_[D++]=A[$+2]-X,_[D++]=D;b.push(new dt(_,A[2]-X,r)),I.push(X-x)}}s(m,"takeFlatNode");function g(x,v){return(b,I,A)=>{let R=0,C=b.length-1,_,X;if(C>=0&&(_=b[C])instanceof ne){if(!C&&_.type==x&&_.length==A)return _;(X=_.prop(j.lookAhead))&&(R=I[C]+_.length+X)}return k(x,b,I,A,R,v)}}s(g,"makeBalanced");function w(x,v,b,I,A,R,C,_,X){let $=[],D=[];for(;x.length>I;)$.push(x.pop()),D.push(v.pop()+b-A);x.push(k(r.types[C],$,D,R-A,_-R,X)),v.push(A-b)}s(w,"makeRepeatLeaf");function k(x,v,b,I,A,R,C){if(R){let _=[j.contextHash,R];C=C?[_].concat(C):[_]}if(A>25){let _=[j.lookAhead,A];C=C?[_].concat(C):[_]}return new ne(x,v,b,I,C)}s(k,"makeTree");function h(x,v){let b=c.fork(),I=0,A=0,R=0,C=b.end-i,_={size:0,start:0,skip:0};e:for(let X=b.pos-x;b.pos>X;){let $=b.size;if(b.id==v&&$>=0){_.size=I,_.start=A,_.skip=R,R+=4,I+=4,b.next();continue}let D=b.pos-$;if($<0||D<X||b.start<C)break;let le=b.id>=a?4:0,N=b.start;for(b.next();b.pos>D;){if(b.size<0)if(b.size==-3||b.size==-4)le+=4;else break e;else b.id>=a&&(le+=4);b.next()}A=N,I+=$,R+=le}return(v<0||I==x)&&(_.size=I,_.start=A,_.skip=R),_.size>4?_:void 0}s(h,"findBufferSize");function y(x,v,b){let{id:I,start:A,end:R,size:C}=c;if(c.next(),C>=0&&I<a){let _=b;if(C>4){let X=c.pos-(C-4);for(;c.pos>X;)b=y(x,v,b)}v[--b]=_,v[--b]=R-x,v[--b]=A-x,v[--b]=I}else C==-3?l=I:C==-4&&(f=I);return b}s(y,"copyToBuffer");let P=[],S=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,P,S,-1,0);let Q=(t=e.length)!==null&&t!==void 0?t:P.length?S[0]+P[0].length:0;return new ne(d[e.topID],P.reverse(),S.reverse(),Q)}function zi(e,t){if(!e.isAnonymous||t instanceof dt||t.type!=e)return 1;let n=Cm.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof ne)){n=1;break}n+=zi(e,r)}Cm.set(t,n)}return n}function Ga(e,t,n,r,i,o,a,c,d){let l=0;for(let w=r;w<i;w++)l+=zi(e,t[w]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(w,k,h,y,P){for(let S=h;S<y;){let Q=S,x=k[S],v=zi(e,w[S]);for(S++;S<y;S++){let b=zi(e,w[S]);if(v+b>=f)break;v+=b}if(S==Q+1){if(v>f){let b=w[Q];g(b.children,b.positions,0,b.children.length,k[Q]+P);continue}u.push(w[Q])}else{let b=k[S-1]+w[S-1].length-x;u.push(Ga(e,w,k,Q,S,x,b,null,d))}m.push(x+P-o)}}return s(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var fx,ar,j,Ct,px,Oe,Ui,qi,Im,z,ne,qa,dt,Vi,Ie,Ua,dr,Va,lr,Cm,Ki,Ka,wY,Ba=p(()=>{fx=0,ar=class{static{s(this,"Range")}constructor(t,n){this.from=t,this.to=n}},j=class{static{s(this,"NodeProp")}constructor(t={}){this.id=fx++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=Oe.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};j.closedBy=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.openedBy=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.group=new j({deserialize:s(e=>e.split(" "),"deserialize")});j.isolate=new j({deserialize:s(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});Ct=class{static{s(this,"MountedTree")}constructor(t,n,r,i=!1){this.tree=t,this.overlay=n,this.parser=r,this.bracketed=i}static get(t){return t&&t.props&&t.props[j.mounted.id]}},px=Object.create(null),Oe=class e{static{s(this,"NodeType")}constructor(t,n,r,i=0){this.name=t,this.props=n,this.id=r,this.flags=i}static define(t){let n=t.props&&t.props.length?Object.create(null):px,r=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||"",n,t.id,r);if(t.props){for(let o of t.props)if(Array.isArray(o)||(o=o(i)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[o[0].id]=o[1]}}return i}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let n=this.prop(j.group);return n?n.indexOf(t)>-1:!1}return this.id==t}static match(t){let n=Object.create(null);for(let r in t)for(let i of r.split(" "))n[i]=t[r];return r=>{for(let i=r.prop(j.group),o=-1;o<(i?i.length:0);o++){let a=n[o<0?r.name:i[o]];if(a)return a}}}};Oe.none=new Oe("",Object.create(null),0,8);Ui=class e{static{s(this,"NodeSet")}constructor(t){this.types=t;for(let n=0;n<t.length;n++)if(t[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...t){let n=[];for(let r of this.types){let i=null;for(let o of t){let a=o(r);if(a){i||(i=Object.assign({},r.props));let c=a[1],d=a[0];d.combine&&d.id in i&&(c=d.combine(i[d.id],c)),i[d.id]=c}}n.push(i?new Oe(r.name,i,r.id,r.flags):r)}return new e(n)}},qi=new WeakMap,Im=new WeakMap;(function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays",e[e.EnterBracketed=16]="EnterBracketed"})(z||(z={}));ne=class e{static{s(this,"Tree")}constructor(t,n,r,i,o){if(this.type=t,this.children=n,this.positions=r,this.length=i,this.props=null,o&&o.length){this.props=Object.create(null);for(let[a,c]of o)this.props[typeof a=="number"?a:a.id]=c}}toString(){let t=Ct.get(this);if(t&&!t.overlay)return t.tree.toString();let n="";for(let r of this.children){let i=r.toString();i&&(n&&(n+=","),n+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(t=0){return new lr(this.topNode,t)}cursorAt(t,n=0,r=0){let i=qi.get(this)||this.topNode,o=new lr(i);return o.moveTo(t,n),qi.set(this,o._tree),o}get topNode(){return new Ie(this,0,0,null)}resolve(t,n=0){let r=cr(qi.get(this)||this.topNode,t,n,!1);return qi.set(this,r),r}resolveInner(t,n=0){let r=cr(Im.get(this)||this.topNode,t,n,!0);return Im.set(this,r),r}resolveStack(t,n=0){return mx(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:o=this.length}=t,a=t.mode||0,c=(a&z.IncludeAnonymous)>0;for(let d=this.cursor(a|z.IncludeAnonymous);;){let l=!1;if(d.from<=o&&d.to>=i&&(!c&&d.type.isAnonymous||n(d)!==!1)){if(d.firstChild())continue;l=!0}for(;l&&r&&(c||!d.type.isAnonymous)&&r(d),!d.nextSibling();){if(!d.parent())return;l=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let n in this.props)t.push([+n,this.props[n]]);return t}balance(t={}){return this.children.length<=8?this:Ga(Oe.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,i)=>new e(this.type,n,r,i,this.propValues),t.makeTree||((n,r,i)=>new e(Oe.none,n,r,i)))}static build(t){return hx(t)}};ne.empty=new ne(Oe.none,[],[],0);qa=class e{static{s(this,"FlatBufferCursor")}constructor(t,n){this.buffer=t,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},dt=class e{static{s(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return Oe.none}toString(){let t=[];for(let n=0;n<this.buffer.length;)t.push(this.childString(n)),n=this.buffer[n+3];return t.join(",")}childString(t){let n=this.buffer[t],r=this.buffer[t+3],i=this.set.types[n],o=i.name;if(/\W/.test(o)&&!i.isError&&(o=JSON.stringify(o)),t+=4,r==t)return o;let a=[];for(;t<r;)a.push(this.childString(t)),t=this.buffer[t+3];return o+"("+a.join(",")+")"}findChild(t,n,r,i,o){let{buffer:a}=this,c=-1;for(let d=t;d!=n&&!(Am(o,i,a[d+1],a[d+2])&&(c=d,r>0));d=a[d+3]);return c}slice(t,n,r){let i=this.buffer,o=new Uint16Array(n-t),a=0;for(let c=t,d=0;c<n;){o[d++]=i[c++],o[d++]=i[c++]-r;let l=o[d++]=i[c++]-r;o[d++]=i[c++]-t,a=Math.max(a,l)}return new e(o,a,this.set)}};s(Am,"checkSide");s(cr,"resolveNode");Vi=class{static{s(this,"BaseNode")}cursor(t=0){return new lr(this,t)}getChild(t,n=null,r=null){let i=$m(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return $m(this,t,n,r)}resolve(t,n=0){return cr(this,t,n,!1)}resolveInner(t,n=0){return cr(this,t,n,!0)}matchContext(t){return za(this.parent,t)}enterUnfinishedNodesBefore(t){let n=this.childBefore(t),r=this;for(;n;){let i=n.lastChild;if(!i||i.to!=n.to)break;i.type.isError&&i.from==i.to?(r=n,n=i.prevSibling):n=i}return r}get node(){return this}get next(){return this.parent}},Ie=class e extends Vi{static{s(this,"TreeNode")}constructor(t,n,r,i){super(),this._tree=t,this.from=n,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,o=0){for(let a=this;;){for(let{children:c,positions:d}=a._tree,l=n>0?c.length:-1;t!=l;t+=n){let f=c[t],u=d[t]+a.from,m;if(!(!(o&z.EnterBracketed&&f instanceof ne&&(m=Ct.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!Am(i,r,u,u+f.length))){if(f instanceof dt){if(o&z.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new dr(new Ua(a,f,t,u),null,g)}else if(o&z.IncludeAnonymous||!f.type.isAnonymous||Ya(f)){let g;if(!(o&z.IgnoreMounts)&&(g=Ct.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let w=new e(f,u,t,a);return o&z.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(n<0?f.children.length-1:0,n,r,i,o)}}}if(o&z.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?t=a.index+n:t=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,n,r=0){let i;if(!(r&z.IgnoreOverlays)&&(i=Ct.get(this._tree))&&i.overlay){let o=t-this.from,a=r&z.EnterBracketed&&i.bracketed;for(let{from:c,to:d}of i.overlay)if((n>0||a?c<=o:c<o)&&(n<0||a?d>=o:d>o))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};s($m,"getChildren");s(za,"matchNodeContext");Ua=class{static{s(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},dr=class e extends Vi{static{s(this,"BufferNode")}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,n,r){super(),this.context=t,this._parent=n,this.index=r,this.type=t.buffer.set.types[t.buffer.buffer[r]]}child(t,n,r){let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return o<0?null:new e(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,n,r=0){if(r&z.ExcludeBuffers)return null;let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return o<0?null:new e(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],n=[],{buffer:r}=this.context,i=this.index+4,o=r.buffer[this.index+3];if(o>i){let a=r.buffer[this.index+1];t.push(r.slice(i,o,a)),n.push(0)}return new ne(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};s(Xm,"iterStack");Va=class{static{s(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return Xm(this.heads)}};s(mx,"stackIterator");lr=class{static{s(this,"TreeCursor")}get name(){return this.type.name}constructor(t,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~z.EnterBracketed,t instanceof Ie)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let r=t._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,n){this.index=t;let{start:r,buffer:i}=this.buffer;return this.type=n||i.set.types[i.buffer[t]],this.from=r+i.buffer[t+1],this.to=r+i.buffer[t+2],!0}yield(t){return t?t instanceof Ie?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,n,r,this.mode));let{buffer:i}=this.buffer,o=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.buffer.start,r);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,n,r=this.mode){return this.buffer?r&z.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&z.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&z.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(t<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(n.findChild(i,this.index,-1,0,4))}else{let i=n.buffer[this.index+3];if(i<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let n,r,{buffer:i}=this;if(i){if(t>0){if(this.index<i.buffer.buffer.length)return!1}else for(let o=0;o<this.index;o++)if(i.buffer.buffer[o+3]<this.index)return!1;({index:n,parent:r}=i)}else({index:n,_parent:r}=this._tree);for(;r;{index:n,_parent:r}=r)if(n>-1)for(let o=n+t,a=t<0?-1:r._tree.children.length;o!=a;o+=t){let c=r._tree.children[o];if(this.mode&z.IncludeAnonymous||c instanceof dt||!c.type.isAnonymous||Ya(c))return!1}return!0}move(t,n){if(n&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,n=0){for(;(this.from==this.to||(n<1?this.from>=t:this.from>t)||(n>-1?this.to<=t:this.to<t))&&this.parent(););for(;this.enterChild(1,t,n););return this}get node(){if(!this.buffer)return this._tree;let t=this.bufferNode,n=null,r=0;if(t&&t.context==this.buffer)e:for(let i=this.index,o=this.stack.length;o>=0;){for(let a=t;a;a=a._parent)if(a.index==i){if(i==this.index)return a;n=a,r=o+1;break e}i=this.stack[--o]}for(let i=r;i<this.stack.length;i++)n=new dr(this.buffer,n,this.stack[i]);return this.bufferNode=new dr(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(t,n){for(let r=0;;){let i=!1;if(this.type.isAnonymous||t(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&n&&n(this),i=this.type.isAnonymous,!r)return;if(this.nextSibling())break;this.parent(),r--,i=!0}}}matchContext(t){if(!this.buffer)return za(this.node.parent,t);let{buffer:n}=this.buffer,{types:r}=n.set;for(let i=t.length-1,o=this.stack.length-1;i>=0;o--){if(o<0)return za(this._tree,t,i);let a=r[n.buffer[this.stack[o]]];if(!a.isAnonymous){if(t[i]&&t[i]!=a.name)return!1;i--}}return!0}};s(Ya,"hasChild");s(hx,"buildTree");Cm=new WeakMap;s(zi,"nodeSize");s(Ga,"balanceRange");Ki=class{static{s(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Ka(t)),r=r?r.length?r.map(i=>new ar(i.from,i.to)):[new ar(0,0)]:[new ar(0,t.length)],this.createParse(t,n||[],r)}parse(t,n,r){let i=this.startParse(t,n,r);for(;;){let o=i.advance();if(o)return o}}},Ka=class{static{s(this,"StringInput")}constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,n){return this.string.slice(t,n)}},wY=new j({perNode:!0})});function ur(e,t=Uint16Array){if(typeof e!="string")return e;let n=null;for(let r=0,i=0;r<e.length;){let o=0;for(;;){let a=e.charCodeAt(r++),c=!1;if(a==126){o=65535;break}a>=92&&a--,a>=34&&a--;let d=a-32;if(d>=46&&(d-=46,c=!0),o+=d,c)break;o*=46}n?n[i++]=o:n=new t(o)}return n}function Nm(e,t,n,r,i,o){let a=0,c=1<<r,{dialect:d}=n.p.parser;e:for(;(c&e[a])!=0;){let l=e[a+1];for(let g=a+3;g<l;g+=2)if((e[g+1]&c)>0){let w=e[g];if(d.allows(w)&&(t.token.value==-1||t.token.value==w||gx(w,t.token.value,i,o))){t.acceptToken(w);break}}let f=t.next,u=0,m=e[a+2];if(t.next<0&&m>u&&e[l+m*3-3]==65535){a=e[l+m*3-1];continue e}for(;u<m;){let g=u+m>>1,w=l+g+(g<<1),k=e[w],h=e[w+1]||65536;if(f<k)m=g;else if(f>=h)u=g+1;else{a=e[w+2],t.advance();continue e}}break}}function jm(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function gx(e,t,n,r){let i=jm(n,r,t);return i<0||jm(n,r,e)<i}function Wm(e,t,n){let r=e.cursor(z.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function Fm(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}function Ue(e,t){return e[t]|e[t+1]<<16}function yx(e){let t=null;for(let n of e){let r=n.p.stoppedAt;(n.pos==n.p.stream.end||r!=null&&n.pos>r)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function Dm(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Ja,Yi,ec,tc,rn,Mm,nc,lt,fr,me,pe,Za,rc,ic,oc,sc,Ha,on,ut,Gi=p(()=>{Ba();Ja=class e{static{s(this,"Stack")}constructor(t,n,r,i,o,a,c,d,l,f=0,u){this.p=t,this.stack=n,this.state=r,this.reducePos=i,this.pos=o,this.score=a,this.buffer=c,this.bufferBase=d,this.curContext=l,this.lookAhead=f,this.parent=u}toString(){return`[${this.stack.filter((t,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new Yi(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var n;let r=t>>19,i=t&65535,{parser:o}=this.p,a=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),c=o.dynamicPrecedence(i);if(c&&(this.score+=c),r==0){i<o.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(o.getGoto(this.state,i,!0),this.reducePos),i<o.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,a?8:4,!0),this.reduceContext(i,this.reducePos);return}let d=this.stack.length-(r-1)*3-(t&262144?6:0),l=d?this.stack[d-2]:this.p.ranges[0].from;i<o.minRepeatTerm&&l==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let f=this.reducePos-l;f>=2e3&&!(!((n=this.p.parser.nodeSet.types[i])===null||n===void 0)&&n.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSize<f&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=f));let u=d?this.stack[d-1]:0,m=this.bufferBase+this.buffer.length-u;if(i<o.minRepeatTerm||t&131072){let g=o.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,g,m+4,!0)}if(t&262144)this.state=this.stack[d];else{let g=this.stack[d-3];this.state=o.getGoto(g,i,!0)}for(;this.stack.length>d;)this.stack.pop();this.reduceContext(i,l)}storeNode(t,n,r,i=4,o=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this.buffer.length;if(a>0&&this.buffer[a-4]==0&&this.buffer[a-1]>-1){if(n==r)return;if(this.buffer[a-2]>=n){this.buffer[a-2]=r;return}}}if(!o||this.pos==r)this.buffer.push(t,n,r,i);else{let a=this.buffer.length;if(a>0&&(this.buffer[a-4]!=0||this.buffer[a-1]<0)){let c=!1;for(let d=a;d>0&&this.buffer[d-2]>r;d-=4)if(this.buffer[d-1]>=0){c=!0;break}if(c)for(;a>0&&this.buffer[a-2]>r;)this.buffer[a]=this.buffer[a-4],this.buffer[a+1]=this.buffer[a-3],this.buffer[a+2]=this.buffer[a-2],this.buffer[a+3]=this.buffer[a-1],a-=4,i>4&&(i-=4)}this.buffer[a]=t,this.buffer[a+1]=n,this.buffer[a+2]=r,this.buffer[a+3]=i}}shift(t,n,r,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let o=t,{parser:a}=this.p;this.pos=i;let c=a.stateFlag(o,1);!c&&(i>r||n<=a.maxNode)&&(this.reducePos=i),this.pushState(o,c?r:Math.min(r,this.reducePos)),this.shiftContext(n,r),n<=a.maxNode&&this.buffer.push(n,r,i,4)}else this.pos=i,this.shiftContext(n,r),n<=this.p.parser.maxNode&&this.buffer.push(n,r,i,4)}apply(t,n,r,i){t&65536?this.reduce(t):this.shift(t,n,r,i)}useNode(t,n){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=t)&&(this.p.reused.push(t),r++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(n,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,n){let r=t<=this.p.parser.maxNode;r&&this.storeNode(t,this.pos,n,4),this.storeNode(0,this.pos,n,r?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(t){for(let n=new ec(this);;){let r=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,t);if(r==0)return!1;if((r&65536)==0)return!0;n.reduce(r)}}recoverByInsert(t){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let i=[];for(let o=0,a;o<n.length;o+=2)(a=n[o+1])!=this.state&&this.p.parser.hasAction(a,t)&&i.push(n[o],a);if(this.stack.length<120)for(let o=0;i.length<8&&o<n.length;o+=2){let a=n[o+1];i.some((c,d)=>d&1&&c==a)||i.push(n[o],a)}n=i}let r=[];for(let i=0;i<n.length&&r.length<4;i+=2){let o=n[i+1];if(o==this.state)continue;let a=this.split();a.pushState(o,this.pos),a.storeNode(0,a.pos,a.pos,4,!0),a.shiftContext(n[i],this.pos),a.reducePos=this.pos,a.score-=200,r.push(a)}return r}forceReduce(){let{parser:t}=this.p,n=t.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!t.validAction(this.state,n)){let r=n>>19,i=n&65535,o=this.stack.length-r*3;if(o<0||t.getGoto(this.stack[o],i,!1)<0){let a=this.findForcedReduction();if(a==null)return!1;n=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:t}=this.p,n=[],r=s((i,o)=>{if(!n.includes(i))return n.push(i),t.allActions(i,a=>{if(!(a&393216))if(a&65536){let c=(a>>19)-o;if(c>1){let d=a&65535,l=this.stack.length-c*3;if(l>=0&&t.getGoto(this.stack[l],d,!1)>=0)return c<<19|65536|d}}else{let c=r(a,o+1);if(c!=null)return c}})},"explore");return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=t.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(n)))}reduceContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(n)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let n=new Yi(this.curContext.tracker,t);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Yi=class{static{s(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},ec=class{static{s(this,"SimulatedStack")}constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let n=t&65535,r=t>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=i}},tc=class e{static{s(this,"StackBufferCursor")}constructor(t,n,r){this.stack=t,this.pos=n,this.index=r,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};s(ur,"decodeArray");rn=class{static{s(this,"CachedToken")}constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Mm=new rn,nc=class{static{s(this,"InputStream")}constructor(t,n){this.input=t,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Mm,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(t,n){let r=this.range,i=this.rangeIndex,o=this.pos+t;for(;o<r.from;){if(!i)return null;let a=this.ranges[--i];o-=r.from-a.to,r=a}for(;n<0?o>r.to:o>=r.to;){if(i==this.ranges.length-1)return null;let a=this.ranges[++i];o+=a.from-r.to,r=a}return o}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let n of this.ranges)if(n.to>t)return Math.max(t,n.from);return this.end}peek(t){let n=this.chunkOff+t,r,i;if(n>=0&&n<this.chunk.length)r=this.pos+t,i=this.chunk.charCodeAt(n);else{let o=this.resolveOffset(t,1);if(o==null)return-1;if(r=o,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let a=this.rangeIndex,c=this.range;for(;c.to<=r;)c=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>c.to&&(this.chunk2=this.chunk2.slice(0,c.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(t,n=0){let r=n?this.resolveOffset(n,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=r}acceptTokenTo(t,n){this.token.value=t,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),n=this.pos+t.length;this.chunk=n>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,n){if(n?(this.token=n,n.start=t,n.lookAhead=t+1,n.value=n.extended=-1):this.token=Mm,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,n){if(t>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,n-this.chunkPos);if(t>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,n-this.chunk2Pos);if(t>=this.range.from&&n<=this.range.to)return this.input.read(t,n);let r="";for(let i of this.ranges){if(i.from>=n)break;i.to>t&&(r+=this.input.read(Math.max(i.from,t),Math.min(i.to,n)))}return r}},lt=class{static{s(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;Nm(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};lt.prototype.contextual=lt.prototype.fallback=lt.prototype.extend=!1;fr=class{static{s(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?ur(t):t}token(t,n){let r=t.pos,i=0;for(;;){let o=t.next<0,a=t.resolveOffset(1,1);if(Nm(this.data,t,n,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(o||i++,a==null)break;t.reset(a,t.token)}i&&(t.reset(r,t.token),t.acceptToken(this.elseToken,i))}};fr.prototype.contextual=lt.prototype.fallback=lt.prototype.extend=!1;me=class{static{s(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};s(Nm,"readToken");s(jm,"findOffset");s(gx,"overrides");pe=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Za=null;s(Wm,"cutAt");rc=class{static{s(this,"FragmentCursor")}constructor(t,n){this.fragments=t,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?Wm(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?Wm(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let r=this.trees[n],i=this.index[n];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let o=r.children[i],a=this.start[n]+r.positions[i];if(a>t)return this.nextStart=a,null;if(o instanceof ne){if(a==t){if(a<this.safeFrom)return null;let c=a+o.length;if(c<=this.safeTo){let d=o.prop(j.lookAhead);if(!d||c+d<this.fragment.to)return o}}this.index[n]++,a+o.length>=Math.max(this.safeFrom,t)&&(this.trees.push(o),this.start.push(a),this.index.push(0))}else this.index[n]++,this.nextStart=a+o.length}}},ic=class{static{s(this,"TokenCache")}constructor(t,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(r=>new rn)}getActions(t){let n=0,r=null,{parser:i}=t.p,{tokenizers:o}=i,a=i.stateSlot(t.state,3),c=t.curContext?t.curContext.hash:0,d=0;for(let l=0;l<o.length;l++){if((1<<l&a)==0)continue;let f=o[l],u=this.tokens[l];if(!(r&&!f.fallback)&&((f.contextual||u.start!=t.pos||u.mask!=a||u.context!=c)&&(this.updateCachedToken(u,f,t),u.mask=a,u.context=c),u.lookAhead>u.end+25&&(d=Math.max(u.lookAhead,d)),u.value!=0)){let m=n;if(u.extended>-1&&(n=this.addActions(t,u.extended,u.end,n)),n=this.addActions(t,u.value,u.end,n),!f.extend&&(r=u,n>m))break}}for(;this.actions.length>n;)this.actions.pop();return d&&t.setLookAhead(d),!r&&t.pos==this.stream.end&&(r=new rn,r.value=t.p.parser.eofTerm,r.start=r.end=t.pos,n=this.addActions(t,r.value,r.end,n)),this.mainToken=r,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let n=new rn,{pos:r,p:i}=t;return n.start=r,n.end=Math.min(r+1,i.stream.end),n.value=r==i.stream.end?i.parser.eofTerm:0,n}updateCachedToken(t,n,r){let i=this.stream.clipPos(r.pos);if(n.token(this.stream.reset(i,t),r),t.value>-1){let{parser:o}=r.p;for(let a=0;a<o.specialized.length;a++)if(o.specialized[a]==t.value){let c=o.specializers[a](this.stream.read(t.start,t.end),r);if(c>=0&&r.p.parser.dialect.allows(c>>1)){(c&1)==0?t.value=c>>1:t.extended=c>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,n,r,i){for(let o=0;o<i;o+=3)if(this.actions[o]==t)return i;return this.actions[i++]=t,this.actions[i++]=n,this.actions[i++]=r,i}addActions(t,n,r,i){let{state:o}=t,{parser:a}=t.p,{data:c}=a;for(let d=0;d<2;d++)for(let l=a.stateSlot(o,d?2:1);;l+=3){if(c[l]==65535)if(c[l+1]==1)l=Ue(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Ue(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Ue(c,l+1),n,r,i))}return i}},oc=class{static{s(this,"Parse")}constructor(t,n,r,i){this.parser=t,this.input=n,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new nc(n,i),this.tokens=new ic(t,this.stream),this.topTerm=t.top[1];let{from:o}=i[0];this.stacks=[Ja.start(this,t.top[0],o)],this.fragments=r.length&&this.stream.end-o>t.bufferLength*4?new rc(r,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,n=this.minStackPos,r=this.stacks=[],i,o;if(this.bigReductionCount>300&&t.length==1){let[a]=t;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<t.length;a++){let c=t[a];for(;;){if(this.tokens.mainToken=null,c.pos>n)r.push(c);else{if(this.advanceStack(c,r,t))continue;{i||(i=[],o=[]),i.push(c);let d=this.tokens.getMainToken(c);o.push(d.value,d.end)}}break}}if(!r.length){let a=i&&yx(i);if(a)return pe&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw pe&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&i){let a=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,o,r);if(a)return pe&&console.log("Force-finish "+this.stackID(a)),this.stackToTree(a.forceAll())}if(this.recovering){let a=this.recovering==1?1:this.recovering*3;if(r.length>a)for(r.sort((c,d)=>d.score-c.score);r.length>a;)r.pop();r.some(c=>c.reducePos>n)&&this.recovering--}else if(r.length>1){e:for(let a=0;a<r.length-1;a++){let c=r[a];for(let d=a+1;d<r.length;d++){let l=r[d];if(c.sameState(l)||c.buffer.length>500&&l.buffer.length>500)if((c.score-l.score||c.buffer.length-l.buffer.length)>0)r.splice(d--,1);else{r.splice(a--,1);continue e}}}r.length>12&&(r.sort((a,c)=>c.score-a.score),r.splice(12,r.length-12))}this.minStackPos=r[0].pos;for(let a=1;a<r.length;a++)r[a].pos<this.minStackPos&&(this.minStackPos=r[a].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,n,r){let i=t.pos,{parser:o}=this,a=pe?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let l=t.curContext&&t.curContext.tracker.strict,f=l?t.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let m=this.parser.nodeSet.types[u.type.id]==u.type?o.getGoto(t.state,u.type.id):-1;if(m>-1&&u.length&&(!l||(u.prop(j.contextHash)||0)==f))return t.useNode(u,m),pe&&console.log(a+this.stackID(t)+` (via reuse of ${o.getName(u.type.id)})`),!0;if(!(u instanceof ne)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof ne&&u.positions[0]==0)u=g;else break}}let c=o.stateSlot(t.state,4);if(c>0)return t.reduce(c),pe&&console.log(a+this.stackID(t)+` (via always-reduce ${o.getName(c&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let d=this.tokens.getActions(t);for(let l=0;l<d.length;){let f=d[l++],u=d[l++],m=d[l++],g=l==d.length||!r,w=g?t:t.split(),k=this.tokens.mainToken;if(w.apply(f,u,k?k.start:w.pos,m),pe&&console.log(a+this.stackID(w)+` (via ${(f&65536)==0?"shift":`reduce of ${o.getName(f&65535)}`} for ${o.getName(u)} @ ${i}${w==t?"":", split"})`),g)return!0;w.pos>i?n.push(w):r.push(w)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return Fm(t,n),!0}}runRecovery(t,n,r){let i=null,o=!1;for(let a=0;a<t.length;a++){let c=t[a],d=n[a<<1],l=n[(a<<1)+1],f=pe?this.stackID(c)+" -> ":"";if(c.deadEnd&&(o||(o=!0,c.restart(),pe&&console.log(f+this.stackID(c)+" (restarted)"),this.advanceFully(c,r))))continue;let u=c.split(),m=f;for(let g=0;g<10&&u.forceReduce()&&(pe&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)pe&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))pe&&console.log(f+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>c.pos?(l==c.pos&&(l++,d=0),c.recoverByDelete(d,l),pe&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),Fm(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),ne.build({buffer:tc.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let n=(Za||(Za=new WeakMap)).get(t);return n||Za.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};s(Fm,"pushStackDedup");sc=class{static{s(this,"Dialect")}constructor(t,n,r){this.source=t,this.flags=n,this.disabled=r}allows(t){return!this.disabled||this.disabled[t]==0}},Ha=s(e=>e,"id"),on=class{static{s(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Ha,this.reduce=t.reduce||Ha,this.reuse=t.reuse||Ha,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},ut=class e extends Ki{static{s(this,"LRParser")}constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let n=t.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let c=0;c<t.repeatNodeCount;c++)n.push("");let r=Object.keys(t.topRules).map(c=>t.topRules[c][1]),i=[];for(let c=0;c<n.length;c++)i.push([]);function o(c,d,l){i[c].push([d,d.deserialize(String(l))])}if(s(o,"setProp"),t.nodeProps)for(let c of t.nodeProps){let d=c[0];typeof d=="string"&&(d=j[d]);for(let l=1;l<c.length;){let f=c[l++];if(f>=0)o(f,d,c[l++]);else{let u=c[l+-f];for(let m=-f;m>0;m--)o(c[l++],d,u);l++}}}this.nodeSet=new Ui(n.map((c,d)=>Oe.define({name:d>=this.minRepeatTerm?void 0:c,id:d,props:i[d],top:r.indexOf(d)>-1,error:d==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(d)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=1024;let a=ur(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let c=0;c<this.specializerSpecs.length;c++)this.specialized[c]=this.specializerSpecs[c].term;this.specializers=this.specializerSpecs.map(Dm),this.states=ur(t.states,Uint32Array),this.data=ur(t.stateData),this.goto=ur(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new lt(a,c):c),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,n,r){let i=new oc(this,t,n,r);for(let o of this.wrappers)i=o(i,t,n,r);return i}getGoto(t,n,r=!1){let i=this.goto;if(n>=i[0])return-1;for(let o=i[n+1];;){let a=i[o++],c=a&1,d=i[o++];if(c&&r)return d;for(let l=o+(a>>1);o<l;o++)if(i[o]==t)return d;if(c)return-1}}hasAction(t,n){let r=this.data;for(let i=0;i<2;i++)for(let o=this.stateSlot(t,i?2:1),a;;o+=3){if((a=r[o])==65535)if(r[o+1]==1)a=r[o=Ue(r,o+2)];else{if(r[o+1]==2)return Ue(r,o+2);break}if(a==n||a==0)return Ue(r,o+1)}return 0}stateSlot(t,n){return this.states[t*6+n]}stateFlag(t,n){return(this.stateSlot(t,0)&n)>0}validAction(t,n){return!!this.allActions(t,r=>r==n?!0:null)}allActions(t,n){let r=this.stateSlot(t,4),i=r?n(r):void 0;for(let o=this.stateSlot(t,1);i==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=Ue(this.data,o+2);else break;i=n(Ue(this.data,o+1))}return i}nextStates(t){let n=[];for(let r=this.stateSlot(t,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Ue(this.data,r+2);else break;if((this.data[r+2]&1)==0){let i=this.data[r+1];n.some((o,a)=>a&1&&o==i)||n.push(this.data[r],i)}}return n}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let r=this.topRules[t.top];if(!r)throw new RangeError(`Invalid top rule name ${t.top}`);n.top=r}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(r=>{let i=t.tokenizers.find(o=>o.from==r);return i?i.to:r})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((r,i)=>{let o=t.specializers.find(c=>c.from==r.external);if(!o)return r;let a=Object.assign(Object.assign({},r),{external:o.to});return n.specializers[i]=Dm(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let n=this.dynamicPrecedences;return n==null?0:n[t]||0}parseDialect(t){let n=Object.keys(this.dialects),r=n.map(()=>!1);if(t)for(let o of t.split(" ")){let a=n.indexOf(o);a>=0&&(r[a]=!0)}let i=null;for(let o=0;o<n.length;o++)if(!r[o])for(let a=this.dialects[n[o]],c;(c=this.data[a++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[c]=1;return new sc(t,r,i)}static deserialize(t){return new e(t)}};s(Ue,"pair");s(yx,"findFinished");s(Dm,"getSpecializer")});function bx(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function Px(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((n,r)=>r.length-n.length)}function an(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let i of n.split(" "))if(i){let o=[],a=2,c=i;for(let u=0;;){if(c=="..."&&u>0&&u+3==i.length){a=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(c);if(!m)throw new RangeError("Invalid path: "+i);if(o.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]),u+=m[0].length,u==i.length)break;let g=i[u++];if(u==i.length&&g=="!"){a=0;break}if(g!="/")throw new RangeError("Invalid path: "+i);c=i.slice(u)}let d=o.length-1,l=o[d];if(!l)throw new RangeError("Invalid path: "+i);let f=new sn(r,a,d>0?o.slice(0,d):null);t[l]=f.sort(t[l])}}return vx.add(t)}function kx(e,t){let n=Object.create(null);for(let o of e)if(!Array.isArray(o.tag))n[o.tag.id]=o.class;else for(let a of o.tag)n[a.id]=o.class;let{scope:r,all:i=null}=t||{};return{style:s(o=>{let a=i;for(let c of o)for(let d of c.set){let l=n[d.id];if(l){a=a?a+" "+l:l;break}}return a},"style"),scope:r}}var wx,Pe,Sx,Ji,vx,sn,T,Bi,ft,Lm,qm,pt,Zi,ac,Ae,At,$e,Ce,cc,pr,Hi,O,TY,eo=p(()=>{Ba();wx=0,Pe=class e{static{s(this,"Tag")}constructor(t,n,r,i){this.name=t,this.set=n,this.base=r,this.modified=i,this.id=wx++}toString(){let{name:t}=this;for(let n of this.modified)n.name&&(t=`${n.name}(${t})`);return t}static define(t,n){let r=typeof t=="string"?t:"?";if(t instanceof e&&(n=t),n?.base)throw new Error("Can not derive from a modified tag");let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let o of n.set)i.set.push(o);return i}static defineModifier(t){let n=new Ji(t);return r=>r.modified.indexOf(n)>-1?r:Ji.get(r.base||r,r.modified.concat(n).sort((i,o)=>i.id-o.id))}},Sx=0,Ji=class e{static{s(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=Sx++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&bx(n,c.modified));if(r)return r;let i=[],o=new Pe(t.name,i,t,n);for(let c of n)c.instances.push(o);let a=Px(n);for(let c of t.set)if(!c.modified.length)for(let d of a)i.push(e.get(c,d));return o}};s(bx,"sameArray");s(Px,"powerSet");s(an,"styleTags");vx=new j({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let o=new sn(i.tags,i.mode,i.context);n?n.next=o:r=o,n=o}return r}}),sn=class{static{s(this,"Rule")}constructor(t,n,r,i){this.tags=t,this.mode=n,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth<this.depth?(this.next=t,this):(t.next=this.sort(t.next),t)}get depth(){return this.context?this.context.length:0}};sn.empty=new sn([],2,null);s(kx,"tagHighlighter");T=Pe.define,Bi=T(),ft=T(),Lm=T(ft),qm=T(ft),pt=T(),Zi=T(pt),ac=T(pt),Ae=T(),At=T(Ae),$e=T(),Ce=T(),cc=T(),pr=T(cc),Hi=T(),O={comment:Bi,lineComment:T(Bi),blockComment:T(Bi),docComment:T(Bi),name:ft,variableName:T(ft),typeName:Lm,tagName:T(Lm),propertyName:qm,attributeName:T(qm),className:T(ft),labelName:T(ft),namespace:T(ft),macroName:T(ft),literal:pt,string:Zi,docString:T(Zi),character:T(Zi),attributeValue:T(Zi),number:ac,integer:T(ac),float:T(ac),bool:T(pt),regexp:T(pt),escape:T(pt),color:T(pt),url:T(pt),keyword:$e,self:T($e),null:T($e),atom:T($e),unit:T($e),modifier:T($e),operatorKeyword:T($e),controlKeyword:T($e),definitionKeyword:T($e),moduleKeyword:T($e),operator:Ce,derefOperator:T(Ce),arithmeticOperator:T(Ce),logicOperator:T(Ce),bitwiseOperator:T(Ce),compareOperator:T(Ce),updateOperator:T(Ce),definitionOperator:T(Ce),typeOperator:T(Ce),controlOperator:T(Ce),punctuation:cc,separator:T(cc),bracket:pr,angleBracket:T(pr),squareBracket:T(pr),paren:T(pr),brace:T(pr),content:Ae,heading:At,heading1:T(At),heading2:T(At),heading3:T(At),heading4:T(At),heading5:T(At),heading6:T(At),contentSeparator:T(Ae),list:T(Ae),quote:T(Ae),emphasis:T(Ae),strong:T(Ae),link:T(Ae),monospace:T(Ae),strikethrough:T(Ae),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:Hi,documentMeta:T(Hi),annotation:T(Hi),processingInstruction:T(Hi),definition:Pe.defineModifier("definition"),constant:Pe.defineModifier("constant"),function:Pe.defineModifier("function"),standard:Pe.defineModifier("standard"),local:Pe.defineModifier("local"),special:Pe.defineModifier("special")};for(let e in O){let t=O[e];t instanceof Pe&&(t.name=e)}TY=kx([{tag:O.link,class:"tok-link"},{tag:O.heading,class:"tok-heading"},{tag:O.emphasis,class:"tok-emphasis"},{tag:O.strong,class:"tok-strong"},{tag:O.keyword,class:"tok-keyword"},{tag:O.atom,class:"tok-atom"},{tag:O.bool,class:"tok-bool"},{tag:O.url,class:"tok-url"},{tag:O.labelName,class:"tok-labelName"},{tag:O.inserted,class:"tok-inserted"},{tag:O.deleted,class:"tok-deleted"},{tag:O.literal,class:"tok-literal"},{tag:O.string,class:"tok-string"},{tag:O.number,class:"tok-number"},{tag:[O.regexp,O.escape,O.special(O.string)],class:"tok-string2"},{tag:O.variableName,class:"tok-variableName"},{tag:O.local(O.variableName),class:"tok-variableName tok-local"},{tag:O.definition(O.variableName),class:"tok-variableName tok-definition"},{tag:O.special(O.variableName),class:"tok-variableName2"},{tag:O.definition(O.propertyName),class:"tok-propertyName tok-definition"},{tag:O.typeName,class:"tok-typeName"},{tag:O.namespace,class:"tok-namespace"},{tag:O.className,class:"tok-className"},{tag:O.macroName,class:"tok-macroName"},{tag:O.propertyName,class:"tok-propertyName"},{tag:O.operator,class:"tok-operator"},{tag:O.comment,class:"tok-comment"},{tag:O.meta,class:"tok-meta"},{tag:O.invalid,class:"tok-invalid"},{tag:O.punctuation,class:"tok-punctuation"}])});var xx,Tx,Rx,_x,Qx,Ex,Ix,$x,Cx,Ax,Xx,Mx,jx,Wx,Fx,Dx,Nx,Lx,zm,qx,zx,Ux,Vx,Kx,Yx,Gx,Um,Vm=p(()=>{Gi();eo();xx=177,Tx=179,Rx=184,_x=12,Qx=13,Ex=17,Ix=20,$x=25,Cx=53,Ax=95,Xx=142,Mx=144,jx=145,Wx=148,Fx=10,Dx=13,Nx=32,Lx=9,zm=47,qx=41,zx=125,Ux=new me((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==Fx||r==Dx||r==zm&&e.peek(n+1)==zm)||r==qx||r==zx)&&e.acceptToken(xx),!(r!=Nx&&r!=Lx);)r=e.peek(++n)},{contextual:!0}),Vx=new Set([Ax,Rx,Ix,_x,Ex,Mx,jx,Xx,Wx,Qx,Cx,$x]),Kx=new on({start:!1,shift:s((e,t)=>t==Tx?e:Vx.has(t),"shift")}),Yx=an({"func interface struct chan map const type var":O.definitionKeyword,"import package":O.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":O.controlKeyword,range:O.keyword,Bool:O.bool,String:O.string,Rune:O.character,Number:O.number,Nil:O.null,VariableName:O.variableName,DefName:O.definition(O.variableName),TypeName:O.typeName,LabelName:O.labelName,FieldName:O.propertyName,"FunctionDecl/DefName":O.function(O.definition(O.variableName)),"TypeSpec/DefName":O.definition(O.typeName),"CallExpr/VariableName":O.function(O.variableName),LineComment:O.lineComment,BlockComment:O.blockComment,LogicOp:O.logicOperator,ArithOp:O.arithmeticOperator,BitOp:O.bitwiseOperator,"DerefOp .":O.derefOperator,"UpdateOp IncDecOp":O.updateOperator,CompareOp:O.compareOperator,"= :=":O.definitionOperator,"<-":O.operator,'~ "*"':O.modifier,"; ,":O.separator,"... :":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace}),Gx={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},Um=ut.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh",stateData:"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"\u26A0 LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:Kx,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[Yx],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[Ux,1,2,new fr("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:s(e=>Gx[e]||-1,"get")}],tokenPrec:5451})});function dc(e){return e==Xt||e==mr}function lc(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function no(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}function HT(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==ro?8-t%8:1;return t}function nR(e,t){if(t==qT)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==zT)for(let n=0;n<2&&lc(e.next);n++)e.advance();else if(t==VT)for(let n=0;n<4&&lc(e.next);n++)e.advance();else if(t==KT)for(let n=0;n<8&&lc(e.next);n++)e.advance();else if(t==UT&&e.next==uc){for(e.advance();e.next>=0&&e.next!=Gm&&e.next!=nh&&e.next!=rh&&e.next!=Xt;)e.advance();e.next==Gm&&e.advance()}}var Bx,Hm,Jm,Zx,Km,Hx,Jx,eT,tT,eh,Ym,nT,rT,iT,oT,sT,aT,cT,dT,lT,uT,fT,pT,mT,hT,OT,gT,yT,wT,ST,bT,PT,vT,kT,th,xT,TT,RT,_T,QT,ET,IT,$T,CT,AT,XT,MT,jT,WT,FT,DT,Xt,mr,fc,ro,pc,NT,LT,uc,Gm,nh,rh,Bm,qT,zT,UT,VT,KT,YT,GT,BT,to,ih,Ve,Ke,Ye,Ge,ZT,Zm,JT,eR,tR,rR,iR,oh,sh=p(()=>{Gi();eo();Bx=1,Hm=194,Jm=195,Zx=196,Km=197,Hx=198,Jx=199,eT=200,tT=2,eh=3,Ym=201,nT=24,rT=25,iT=49,oT=50,sT=55,aT=56,cT=57,dT=59,lT=60,uT=61,fT=62,pT=63,mT=65,hT=238,OT=71,gT=241,yT=242,wT=243,ST=244,bT=245,PT=246,vT=247,kT=248,th=72,xT=249,TT=250,RT=251,_T=252,QT=253,ET=254,IT=255,$T=256,CT=73,AT=77,XT=263,MT=112,jT=130,WT=151,FT=152,DT=155,Xt=10,mr=13,fc=32,ro=9,pc=35,NT=40,LT=46,uc=123,Gm=125,nh=39,rh=34,Bm=92,qT=111,zT=120,UT=78,VT=117,KT=85,YT=new Set([rT,iT,oT,XT,mT,jT,aT,cT,hT,fT,pT,th,CT,AT,lT,uT,WT,FT,DT,MT]);s(dc,"isLineBreak");s(lc,"isHex");GT=new me((e,t)=>{let n;if(e.next<0)e.acceptToken(Jx);else if(t.context.flags&to)dc(e.next)&&e.acceptToken(Hx,1);else if(((n=e.peek(-1))<0||dc(n))&&t.canShift(Km)){let r=0;for(;e.next==fc||e.next==ro;)e.advance(),r++;(e.next==Xt||e.next==mr||e.next==pc)&&e.acceptToken(Km,-r)}else dc(e.next)&&e.acceptToken(Zx,1)},{contextual:!0}),BT=new me((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==Xt||r==mr){let i=0,o=0;for(;;){if(e.next==fc)i++;else if(e.next==ro)i+=8-i%8;else break;e.advance(),o++}i!=n.indent&&e.next!=Xt&&e.next!=mr&&e.next!=pc&&(i<n.indent?e.acceptToken(Jm,-o):e.acceptToken(Hm))}}),to=1,ih=2,Ve=4,Ke=8,Ye=16,Ge=32;s(no,"Context");ZT=new no(null,0,0);s(HT,"countIndent");Zm=new Map([[gT,0],[yT,Ve],[wT,Ke],[ST,Ke|Ve],[bT,Ye],[PT,Ye|Ve],[vT,Ye|Ke],[kT,Ye|Ke|Ve],[xT,Ge],[TT,Ge|Ve],[RT,Ge|Ke],[_T,Ge|Ke|Ve],[QT,Ge|Ye],[ET,Ge|Ye|Ve],[IT,Ge|Ye|Ke],[$T,Ge|Ye|Ke|Ve]].map(([e,t])=>[e,t|ih])),JT=new on({start:ZT,reduce(e,t,n,r){return e.flags&to&&YT.has(t)||(t==OT||t==th)&&e.flags&ih?e.parent:e},shift(e,t,n,r){return t==Hm?new no(e,HT(r.read(r.pos,n.pos)),0):t==Jm?e.parent:t==nT||t==sT||t==dT||t==eh?new no(e,0,to):Zm.has(t)?new no(e,0,Zm.get(t)|e.flags&to):e},hash(e){return e.hash}}),eR=new me(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==fc||n==ro)){n!=NT&&n!=LT&&n!=Xt&&n!=mr&&n!=pc&&e.acceptToken(Bx);return}}}),tR=new me((e,t)=>{let{flags:n}=t.context,r=n&Ve?rh:nh,i=(n&Ke)>0,o=!(n&Ye),a=(n&Ge)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==uc)if(e.peek(1)==uc)e.advance(2);else{if(e.pos==c){e.acceptToken(eh,1);return}break}else if(o&&e.next==Bm){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),nR(e,d)),e.acceptToken(tT);return}break}else if(e.next==Bm&&!o&&e.peek(1)>-1)e.advance(2);else if(e.next==r&&(!i||e.peek(1)==r&&e.peek(2)==r)){if(e.pos==c){e.acceptToken(Ym,i?3:1);return}break}else if(e.next==Xt){if(i)e.advance();else if(e.pos==c){e.acceptToken(Ym);return}break}else e.advance();e.pos>c&&e.acceptToken(eT)});s(nR,"skipEscape");rR=an({'async "*" "**" FormatConversion FormatSpec':O.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":O.controlKeyword,"in not and or is del":O.operatorKeyword,"from def class global nonlocal lambda":O.definitionKeyword,import:O.moduleKeyword,"with as print":O.keyword,Boolean:O.bool,None:O.null,VariableName:O.variableName,"CallExpression/VariableName":O.function(O.variableName),"FunctionDefinition/VariableName":O.function(O.definition(O.variableName)),"ClassDefinition/VariableName":O.definition(O.className),PropertyName:O.propertyName,"CallExpression/MemberExpression/PropertyName":O.function(O.propertyName),Comment:O.lineComment,Number:O.number,String:O.string,FormatString:O.special(O.string),Escape:O.escape,UpdateOp:O.updateOperator,"ArithOp!":O.arithmeticOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,AssignOp:O.definitionOperator,Ellipsis:O.punctuation,At:O.meta,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,".":O.derefOperator,", ;":O.separator}),iR={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},oh=ut.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"\u26A0 print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:JT,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[rR],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[eR,BT,GT,tR,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:s(e=>iR[e]||-1,"get")}],tokenPrec:7668})});function mc(e){return e>=48&&e<=57}function oo(e){return mc(e)||e==95}var oR,sR,aR,cR,dR,ah,lR,uR,ch,fR,io,dh,pR,mR,lh,uh,hR,OR,gR,yR,wR,SR,bR,PR,fh,ph=p(()=>{Gi();eo();oR=1,sR=2,aR=3,cR=4,dR=5,ah=98,lR=101,uR=102,ch=114,fR=69,io=48,dh=46,pR=43,mR=45,lh=35,uh=34,hR=124,OR=60,gR=62;s(mc,"isNum");s(oo,"isNum_");yR=new me((e,t)=>{if(mc(e.next)){let n=!1;do e.advance();while(oo(e.next));if(e.next==dh){if(n=!0,e.advance(),mc(e.next))do e.advance();while(oo(e.next));else if(e.next==dh||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==lR||e.next==fR){if(n=!0,e.advance(),(e.next==pR||e.next==mR)&&e.advance(),!oo(e.next))return;do e.advance();while(oo(e.next))}if(e.next==uR){let r=e.peek(1);if(r==io+3&&e.peek(2)==io+2||r==io+6&&e.peek(2)==io+4)e.advance(3),n=!0;else return}n&&e.acceptToken(dR)}else if(e.next==ah||e.next==ch){if(e.next==ah&&e.advance(),e.next!=ch)return;e.advance();let n=0;for(;e.next==lh;)n++,e.advance();if(e.next!=uh)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==uh;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=lh)continue e;e.advance()}e.acceptToken(cR);return}}}}),wR=new me(e=>{e.next==hR&&e.acceptToken(oR,1)}),SR=new me(e=>{e.next==OR?e.acceptToken(sR,1):e.next==gR&&e.acceptToken(aR,1)}),bR=an({"const macro_rules struct union enum type fn impl trait let static":O.definitionKeyword,"mod use crate":O.moduleKeyword,"pub unsafe async mut extern default move":O.modifier,"for if else loop while match continue break return await":O.controlKeyword,"as in ref":O.operatorKeyword,"where _ crate super dyn":O.keyword,self:O.self,String:O.string,Char:O.character,RawString:O.special(O.string),Boolean:O.bool,Identifier:O.variableName,"CallExpression/Identifier":O.function(O.variableName),BoundIdentifier:O.definition(O.variableName),"FunctionItem/BoundIdentifier":O.function(O.definition(O.variableName)),LoopLabel:O.labelName,FieldIdentifier:O.propertyName,"CallExpression/FieldExpression/FieldIdentifier":O.function(O.propertyName),Lifetime:O.special(O.variableName),ScopeIdentifier:O.namespace,TypeIdentifier:O.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":O.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":O.macroName,'"!"':O.macroName,UpdateOp:O.updateOperator,LineComment:O.lineComment,BlockComment:O.blockComment,Integer:O.integer,Float:O.float,ArithOp:O.arithmeticOperator,LogicOp:O.logicOperator,BitOp:O.bitwiseOperator,CompareOp:O.compareOperator,"=":O.definitionOperator,".. ... => ->":O.punctuation,"( )":O.paren,"[ ]":O.squareBracket,"{ }":O.brace,". DerefOp":O.derefOperator,"&":O.operator,", ; ::":O.separator,"Attribute/...":O.meta}),PR={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},fh=ut.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5<g,5<gO!9SQWO'#CoO!9jQWO'#CoO!9oQWO'#I`O! yQWO'#JuO!9yQWO'#J`O!:aQWO,5;VOOQO'#In'#InO!0zQWO'#DaO!<aQWO'#DcO!<iQWO,5;ZO.YQ_O,5;ZOOQO,5;[,5;[OOQV'#Er'#ErOOQV'#Es'#EsOOQV'#Et'#EtOOQV'#Eu'#EuOOQV'#Ev'#EvOOQV'#Ew'#EwOOQV'#Ex'#ExOOQV'#Ey'#EyO.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;fO!=PQ_O,5;kO!@gQ_O'#FROOQO,5;l,5;lO!BrQWO,5;pO.YQ_O,5;wOKlQYO,5;gO!D_QWO,5;kO!EOQWO,5;xOOQO,5;x,5;xO!E]QWO,5;xO!EbQ_O,5;xO!GmQWO'#CfO!GrQWO,5<QO!G|Q_O,5<QOOQO,5;{,5;{O!JjQXO'#CnO!K{QXO'#I`OOQS'#Dk'#DkOOQP'#Ir'#IrO!LuQ[O'#IrO!L}QXO'#DjO!M{QWO'#DnO!M{QWO'#DnO!N^QWO'#DnOOQP'#It'#ItO!NcQXO'#ItO# ^Q^O'#DoO# hQWO'#DrO# pQ^O'#DzO# zQ^O'#D|O#!RQWO'#EPO#!^QXO'#FdOOQP'#ES'#ESOOQP'#Iq'#IqO#!lQXO'#JfOOQP'#Je'#JeO#!tQXO,5;}O#!yQXO'#I`O!1PQ^O'#DyO!1PQ^O'#FdO##sQWO,5;|OOQO,5;|,5;|OKlQYO,5;|O#$ZQWO'#FhOOQO,5<R,5<ROOQV,5=l,5=lO#&`QYO'#FzOOQV,5<h,5<hO#&gQWO,5<hO#&nQWO,5=SO!1WQWO,59rO!1dQWO,5<dO#&uQWO,5=iO!2_QWO,5<jO!2_QWO,5<zO!2_QWO,5<|O!2_QWO,5=QO#&|QWO,5=]O#'TQWO,5=SO!2_QWO,5=]O!3|QWO,5=aO#']QWO,5=jOOQO-E;|-E;|O#'hQWO'#JjOOQV-E;h-E;hO#(PQWO'#HRO#(WQ_O,59pOOQV,59p,59pO#(_QWO,59pO#(dQ_O,59pO#)SQZO'#CuO#+[QZO'#CvOOQV'#C|'#C|O#-wQWO'#HTO#.OQYO'#IdOOQO'#Hh'#HhO#.WQWO'#CwO#.WQWO'#CwO#.iQWO'#CwOOQR'#Ic'#IcO#.nQZO'#IbO#1TQYO'#HTO#1qQYO'#H[O#2}QYO'#H_OKlQYO'#H`OOQR'#Hb'#HbO#4ZQWO'#HeO#4`QYO,59]OOQR'#Ib'#IbO#5PQZO'#CtO#7[QYO'#HUO#7aQWO'#HTO#7fQYO'#CrO#8VQWO'#H]O#7fQYO'#HcOOQV-E;e-E;eO#8_QWO,59sOOQV,59{,59{O#8mQYO,5=[OOQV,59},59}O!0zQWO,59}O#;aQWO'#IpOOQO'#Ip'#IpO!1PQ^O'#DhO!0zQWO,5:QO#;hQWO,5;iO#<OQWO,5;rO#<fQ_O,5;rOOQO,5;u,5;uO#@PQ_O,5;|O#BXQWO,5;PO!0zQWO,5<XO#B`QWO,5<ZOOQV,5<Z,5<ZO#BkQWO,5<]O!1PQ^O'#EOOOQQ'#D_'#D_O#BsQWO,59rO#BxQWO,5<`O#B}QWO,5<dOOQO,5@U,5@UO#CVQWO,5=iOOQQ'#Cv'#CvO#C[QYO,5<jO#CmQYO,5<zO#CxQYO,5<|O#DTQYO,5=_O#DcQYO,5=SO#E{QYO'#GQO#FYQYO,5=[O#FmQWO,5=[O#F{QYO,5=[O#HUQYO,5=]O#HdQWO,5=`O!1PQ^O,5=`O#HrQWO'#CnO#ITQWO'#I`OOQO'#Jy'#JyO#IfQWO'#IQO#IkQWO'#GwOOQO'#Jz'#JzO#JSQWO'#GzOOQO'#G|'#G|OOQO'#Jx'#JxO#IkQWO'#GwO#JZQWO'#GxO#J`QWO,5=aO#JeQWO,5=jO!1dQWO,5=jO#'`QWO,5=jPOOO'#Hf'#HfP#JjOpO,58}POOO,58},58}OOOO-E;g-E;gOOQV1G/T1G/TO#JuQWO1G4{O#JzQ^O'#CyPOQQ'#Cx'#CxOOQO1G/v1G/vOOQP1G.u1G.uO)xQWO1G/vO#NTQ!fO'#ETO#N[Q!fO'#EaO#NcQ!fO'#EbO$ kQWO1G1yO$!_Q_O1G1yOOQP1G5V1G5VOOQO1G1]1G1]O$&RQWO1G0oO$&WQWO'#CiO!7xQXO'#I`O!6PQYO1G.lO!5oQWO,5<_O!9SQWO,59ZO!9SQWO,59ZO!5oQWO,5?kO$&iQWO1G0uO$(vQWO1G0wO$*nQWO1G0wO$+UQWO1G0wO$-YQWO1G0wO$-aQWO1G0wO$/bQWO1G0wO$/iQWO1G0wO$1jQWO1G0wO$1qQWO1G0wO$3YQWO1G1QO$5ZQWO1G1VO$5zQ_O'#JcO$8SQWO'#JcOOQO'#Jb'#JbO$8^QWO,5;mOOQO'#Dw'#DwOOQO1G1[1G1[OOQO1G1Y1G1YO$8cQWO1G1cOOQO1G1R1G1RO$8jQ_O'#HrO$:xQWO,5@OO.YQ_O1G1dOOQO1G1d1G1dO$;QQWO1G1dO$;_QWO1G1dO$;dQWO1G1eOOQO1G1l1G1lO$;lQWO1G1lOOQP,5?^,5?^O$;vQ^O,5:kO$<aQXO,5:YO!M{QWO,5:YO!M{QWO,5:YO!1PQ^O,5:gO$=bQWO'#IyOOQO'#Ix'#IxO$=pQWO,5:ZO# ^Q^O,5:ZO$=uQWO'#DsOOQP,5:^,5:^O$>WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5<OO$>gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5<OO$?[QWO1G1hO$?dQWO'#CnO$?oQWO'#FiOOQO'#Fi'#FiO$?wQWO'#FjO.YQ_O'#FkOOQO'#Ji'#JiO$?|QWO'#JhOOQO'#Jg'#JgO$@UQWO,5<SOOQQ'#Hv'#HvO$@ZQYO,5<fOOQV,5<f,5<fO$@bQYO,5<fOOQV1G2S1G2SO$@iQWO1G2nO$@qQWO1G/^O$@vQWO1G2OO#CVQWO1G3TO$AOQYO1G2UO#CmQYO1G2fO#CxQYO1G2hO$AaQYO1G2lO!2_QWO1G2wO#DcQYO1G2nO#HUQYO1G2wO$AiQWO1G2{O$AnQWO1G3UO!1dQWO1G3UO$AsQWO1G3UOOQV1G/[1G/[O$A{QWO1G/[O$BQQ_O1G/[O#7aQWO,5=oO$BXQYO,5?OO$BmQWO,5?OO$BrQZO'#IeOOQO-E;f-E;fOOQR,59c,59cO#.WQWO,59cO#.WQWO,59cOOQR,5=n,5=nO$E_QYO'#HVO$FwQZO,5=oO!5oQWO,5={O$IZQWO,5=oO$IbQZO,5=vO$KqQYO,5=vO$>]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5<lO%4[QYO,5<lO%4jQYO,5<lO%5XQYO,5<lOOQQ,5<l,5<lO!1WQWO'#JuO%5dQYO,5<lO%5lQWO1G2vOOQV1G2v1G2vO%5tQWO1G2vO$>]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E<O-E<OOOQO,5=c,5=cOOQO,5=e,5=eOOQO,5=g,5=gOOQO,5=h,5=hO%6aQWO'#J|OOQO'#J{'#J{O%6iQWO,5=fO%6nQWO,5=cO!1dQWO,5=dOOQV1G2{1G2{O$>]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5<T,5<TO%ErQWO,5<UO.YQ_O,5<UO%EwQWO,5<VO%FRQWO'#HtO%FdQWO,5@SOOQO1G1n1G1nOOQQ-E;t-E;tOOQV1G2Q1G2QO%FlQYO1G2QO#DcQYO7+(YO$>]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5<lO&'nQYO,5<lO!1dQWO'#GWO&'|QWO'#JpO&([QWO'#G^O!BxQWO'#G^O&(aQWO'#JpOOQO'#Jo'#JoO&(iQWO,5<wOOQO'#DX'#DXO&(nQYO'#JrO&)}QWO'#JrO$>]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5<yO&*_QWO'#GZO#D^QWO'#G[O&*gQWO'#G[O&*oQWO'#JmOOQO'#Jl'#JlO&*zQYO'#GTOOQO,5<s,5<sO&+PQWO7+'pO&+UQWO'#JtO&+dQWO'#GeO#BxQWO'#GeO&+uQWO'#JtOOQO'#Js'#JsO&+}QWO,5=OO$>]QYO'#GUO&,SQYO'#JkOOQQ,5<n,5<nO&,kQWO7+(WOOQV7+(e7+(eO&.TQ^O'#D|O&._QWO'#GlO&.gQ^O'#JwOOQO'#Gn'#GnO&.nQWO'#JwOOQO'#Jv'#JvO&.vQWO,5=VO&.{QWO'#I`O&/]Q^O'#GmO&/dQWO'#IqO&/rQWO'#GmOOQV7+(Y7+(YO&/zQWO7+(YO$>]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5<m,5<mO$>]QYO,5<qO&0pQWO,5<rO&0uQWO7+(bO&1QQWO7+(fO&1XQWO7+(fOOQV7+(f7+(fO.YQ_O7+(fO$>]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<<Gr<<GrO&3iQWO1G5iO$5zQ_O,5>]O&3qQWO,5>]OOQO-E;o-E;oOOQO<<Jj<<JjO&3{QWO<<JjOOQO<<Jk<<JkO&4SQXO7+%`O&5TQWO,5>WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5<PO&6UQXO,5<PO&6dQXO7+'UO.YQ_O1G1pO&6oQWO1G1pOOQO,5>`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<<KtO#DfQWO<<KtO&7XQWO<<HdOOQV<<LZ<<LZO!1dQWO<<LZOOQV<<K[<<K[O&7dQWO<<K[O%/wQWO<<K[O&7iQWO<<K[OOQV<<Kl<<KlO%/wQWO<<KlOOQV<<Kn<<KnO%0gQWO<<KnO&7qQWO<<KrO$>]QYO<<KrOOQV<<K}<<K}O%5tQWO<<K}O%5yQWO<<K}O#HXQWO<<K}OOQV<<Kt<<KtO&7yQWO<<KtO$>]QYO<<KtO&8RQWO<<L[O$>]QYO<<L[O&8^QWO<<L[OOQV<<Hb<<HbO$>]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&<RQZO7+(uO&>eQZO7+(|O&@tQWO,5>qOOQO-E<T-E<TO&APQWO7+)QOOQO<<G}<<G}O&AWQYO'#ITO&AcQYO,5@jOOQQ7+(v7+(vOOQQ<<He<<HeO$>]QYO<<K|OOQV<<K|<<K|O&0uQWO<<K|O&AkQWO<<K|O%5tQWO<<K|O&AsQWO7+%YOOQV<<Hr<<HrOOQO<<Jn<<JnO.YQ_O,5;SO&AzQWO,5;SO.YQ_O'#EjO&BPQWO,5;SOOQU-E;m-E;mO&B[QWO1G0mOOQV1G0m1G0mO&%{Q^O1G0mOOQV<<Jy<<JyO!.cQ_O<<J}OOQV<<J}<<J}OOQV<<Hd<<HdO.YQ_O<<HdO&BaQWO'#FvO&BfQWO<<KQO&BnQ!fO<<KQO&BuQWO<<KQO&BzQWO<<KQO&CSQ!fO<<KQOOQV<<KQ<<KQO&CZQWO<<LZO&C`QWO,5@[O$>]QYO,5<xO&ChQWO,5<xO&CmQWO'#H{O&C`QWO,5@[OOQV1G2c1G2cO&DRQWO,5@^O$>]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5<uOOQO,5<v,5<vO&E{QYO'#HzO&G_QWO,5@XO%,bQYO,5=pO$>]QYO,5<oO&GjQWO,5@`O.YQ_O,5=PO&GrQWO,5=PO&G}QWO,5=PO&H`QWO'#H}O&GjQWO,5@`OOQV1G2j1G2jO&HtQYO,5<pO%0lQYO,5>PO&I]QYO,5@VOOQV<<Kr<<KrO&ItQWO,5=XO&KfQ^O,5:hO&KmQWO,5=XO$>]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<<KtO&NkQYO,5>oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<<LQ<<LQO.YQ_O<<LQO' lQWO<<LQO' sQWO<<LQOOQO,5>m,5>mOOQO-E<P-E<POOQV<<L[<<L[O.YQ_O<<L[O'!OQYO1G/QO'!ZQYO,5>nOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-E<Q-E<QOOQS1G0[1G0[O'$tQ!fO1G0^O'%RQ!fO1G0^O'%YQWO1G3wOOQOAN@UAN@UO'%dQWO1G/zOOQO,5>X,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<<La<<LaO''nQWO1G6WO%JkQWO,5>pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E<S-E<SO'(RQYO1G2sO'(]QWO1G2sOOQO1G2s1G2sO$>]QYO<<LaOOQR<<Ll<<LlOOQQ,5>o,5>oOOQQ-E<R-E<RO&0uQWOANAhOOQVANAhANAhO%5tQWOANAhO$>]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5<bOOQS,5>a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5<lO'-gQYO1G2ZO'.RQWO1G5zO'.ZQWO1G2kO.YQ_O1G2kO'.eQWO1G2kO&+UQWO,5>iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<<Is<<IsOOQVG26TG26TOOQVG23jG23jOOQO1G1|1G1|OOQVG26WG26WO'6aQWOG26WP&B}QWO'#HuO'6fQWO7+(OOOQO1G4R1G4RO'6qQWO7++dO'6yQWO1G4SO$>]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<<Id<<IdO'8`QWO<<IdO'8kQWO<<IQOOQVLD,fLD,fO'8vQWOLD,fO'9OQWOLD,fOOQVLD)ULD)UOOQVLD,oLD,oOOQVLD,|LD,|O'9^QWOLD,|O.YQ_OLD,|OOQVLD,nLD,nO%5tQWOLD,nO'9eQ^O<<ItO';OQWO<<JxO';rQ^O<<ItP'=OQWO1G0nP'=oQ^O1G0nP.YQ_O1G0nP'?bQWO1G0nOOQVLD+rLD+rO'?gQWO7+)nOOQO,5>e,5>eOOQO-E;w-E;wO'?rQWO<<KqOOQVLD,rLD,rOOQSAN?OAN?OOOQV!$(!Q!$(!QO'?|QWO!$(!QOOQV!$(!h!$(!hO'@UQWO!$(!hOOQV!$(!Y!$(!YO'@]Q^OAN?`POQU7+&Y7+&YP'AvQWO7+&YP'BgQ^O7+&YP.YQ_O7+&YOOQV!)9El!)9ElOOQV!)9FS!)9FSPOQU<<It<<ItP'DYQWO<<ItP'DyQ^O<<ItPOQUAN?`AN?`O'FlQWO'#CnO'FsQXO'#CnO'GlQWO'#I`O'IRQXO'#I`O'IxQWO'#DpO'IxQWO'#DpO!.cQ_O'#EkO'JZQ_O'#EoO'JbQ_O'#FPO'MfQ_O'#FbO'MmQXO'#I`O'NdQ_O'#E}O( gQ_O'#FWO'IxQWO,5:[O'IxQWO,5:[O!.cQ_O,5;ZO!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;fO(!jQ_O,5;kO(%nQWO,5;kO(&OQWO,5;|O(&VQYO'#CuO(&bQYO'#CvO(&mQWO'#CwO(&mQWO'#CwO('OQYO'#CtO('ZQWO,5;iO('bQWO,5;rO('iQ_O,5;rO((oQ_O,5;|O'IxQWO1G/vO((vQWO1G0uO(*eQWO1G0wO(*oQWO1G0wO(,dQWO1G0wO(,kQWO1G0wO(.]QWO1G0wO(.dQWO1G0wO(0UQWO1G0wO(0]QWO1G0wO(0dQWO1G1QO(0tQWO1G1VO(1UQYO'#IeO(&mQWO,59cO(&mQWO,59cO(1aQWO1G1^O(1hQWO1G1hO(&mQWO1G.}O(1oQWO'#DpO!.^QXO'#FbO(1tQWO,5;ZO(1{QWO'#Cw",stateData:"(2_~O&|OSUOS&}PQ~OPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'TQO'ZkO'^UO'gcO'qiO(QdO~O&}!sO~OZbX[bXdbXdlXobXwjX}bX!lbX!qbX!tbX#ObX#PbX#pbX'gbX'qbX'rbX'xbX'ybX'zbX'{bX'|bX'}bX(ObX(PbX(QbX(RbX(TbX~OybXXbX!ebX!PbXvbX#RbX~P$|OZ'SX['SXd'SXd'XXo'SXw'kXy'SX}'SX!l'SX!q'SX!t'SX#O'SX#P'SX#p'SX'g'SX'q'SX'r'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SXv'SX~OX'SX!e'SX!P'SX#R'SX~P'ZOr!uO']!wO'_!uO~Od!xO~O^RO_RO`ROaRO'TQO~Od!}O~Od#PO[(SXo(SXy(SX}(SX!l(SX!q(SX!t(SX#O(SX#P(SX#p(SX'g(SX'q(SX'r(SX'x(SX'y(SX'z(SX'{(SX'|(SX'}(SX(O(SX(P(SX(Q(SX(R(SX(T(SXv(SX~OZ#OO~P*`OZ#RO[#QO~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'T#SO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!j#eO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xO[#}Oo#xO}#zO!l#yO!q#jO!t#yO#O#xO#P#uO#p$OO'g#gO'q#yO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~OPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXy#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sXX#sX!e#sX!P#sXv#sX#R#sX~P)xOX(SX!e(SX!P(SXw(SX#R(SX~P*`OPoOQ!QOSVOTVOX$ROZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!P$XO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOQ!QOSVOTVO[$gO^$pO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j$rOP(XP~P<cOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q$uO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw$vO~Oo'bX#O'bX#P'bX#p'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(R'bX(T'bX~OP%tXQ%tXS%tXT%tXZ%tX[%tX^%tX_%tX`%tXa%tXd%tXg%tXs%tXt%tXu%tXw%tXy%tX|%tX}%tX!Q%tX!U%tX!W%tX!X%tX!Z%tX!]%tX!l%tX!q%tX!t%tX#Y%tX#r%tX#{%tX$O%tX$b%tX$d%tX$f%tX$i%tX$m%tX$q%tX$s%tX%T%tX%V%tX%Z%tX%]%tX%^%tX%f%tX%j%tX%s%tX&z%tX'Q%tX'T%tX'Z%tX'^%tX'g%tX'q%tX(Q%tXv%tX~P@[Oy$xO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bXv'bX~P@[Ow$yO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Oy$zO~PEsO!Q$}O!U%UO!W!lO$m%OO$q%PO$s%QO%T%RO%V%SO%Z%TO%]!lO%^%VO%f%WO%j%XO%s%YO~O!Q!lO!U!lO!W!lO$q%[O%]!lO~O%^%VO~PGaOPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'TQO'ZkO'^UO'gcO'qiO(QdO~Ov%`O~P]OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~P'ZO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~O}%}O'T{XQ{XZ{X[{X^{X_{X`{Xa{Xd{Xg{X!q{X$f{X&W{X'Z{X(Q{X~PMuOg&PO%f%WO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Ow!PO~P! yOw!PO!X&RO~PEvOPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!]&UO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#qXy#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qXX#qX!e#qX!P#qXv#qX#R#qX~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zXy#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zXX#zX!e#zX!P#zXv#zX#R#zX~P)xO'ZkO[#}Xo#}Xy#}X}#}X!l#}X!q#}X!t#}X#O#}X#P#}X#p#}X'g#}X'q#}X'r#}X'x#}X'y#}X'z#}X'{#}X'|#}X'}#}X(O#}X(P#}X(Q#}X(R#}X(T#}XX#}X!e#}X!P#}Xv#}Xw#}X#R#}X~OPoO~OPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~O!S&_O~Ow!PO~O!j&bO~P<cO'T&cO~PEvOZ&eO~O'T&cO~O'^UOw(^Xy(^X!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Oa&hO~P!1iO'T&iO~O_&nO'T&cO~OQ&oOZ&pO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!j&uO~P<cO^&wO_&wO`&wOa&wOd'POw&|O'T&vO(Q&}O~O!i'UO!j'TO'T&cO~O&}!sO'O'VO'P'XO~Or!uO']'ZO'_!uO~OQ']O^'ia_'ia`'iaa'ia'T'ia~O['cOw'dO}'bO~OQ']O~OQ!QO^#TO_#TO`#TOa'kOd#ZO'T#SO~O['lO~OZbXdlXXbXobXPbX!SbX!ebX'rbX!PbX!ObXybX!ZbX#RbXvbX~O[bXwbX}bX~P!6mOZ'SXd'XXX'SX['SXo'SXw'SX}'SX#p'SXP'SX!S'SX!e'SX'r'SX!P'SX!O'SXy'SX!Z'SX#R'SXv'SX~O^#TO_#TO`#TOa'kO'T#SO~OZ'mO~Od'oO~OZ'SXd'XX~PMuOZ'pOX(SX!e(SX!P(SXw(SX#R(SX~P*`O[#}O}#zO(O#|O(R#fOo#_ay#_a!l#_a!q#_a!t#_a#O#_a#P#_a#p#_a'g#_a'q#_a'r#_a'x#_a'y#_a'z#_a'{#_a'|#_a'}#_a(P#_a(Q#_a(T#_aX#_a!e#_a!P#_av#_aw#_a#R#_a~Ow!PO!X&RO~Oy#caX#ca!e#ca!P#cav#ca#R#ca~P2gOPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#say#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#saX#sa!e#sa!P#sav#sa#R#sa~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P(UP~P)xOu(SO#w(TO'T(RO~O[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#sa!t#sa#p#sa'q#sa~Oo#xO#O#xO#P#uOy#saX#sa!e#sa!P#sav#sa#R#sa~P!B}Oy(YO!e(WOX(WX~P2gOX(ZO~OPoOQ!QOSVOTVOX(ZOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZ#RO~O!P(_O!e(WO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZbXdlXwjX}jX!tbX'qbX~OP!RX!S!RX!e!RX'p!RX'r!RX!O!RXo!RXy!RX!P!RXX!RX!Z!RX#R!RXv!RX~P!JUOZ'SXd'XXw'kX}'kX!t'SX'q'SX~OP!`X!S!`X!e!`X'r!`X!O!`Xo!`Xy!`X!P!`XX!`X!Z!`X#R!`Xv!`X~P!KgOT(aOu(aO~O!t(bO'q(bOP!^X!S!^X!e!^X'r!^X!O!^Xo!^Xy!^X!P!^XX!^X!Z!^X#R!^Xv!^X~O^9rO_9rO`9yOa9yO'T9pO~Od(eO~O'p(fOP'hX!S'hX!e'hX'r'hX!O'hXo'hXy'hX!P'hXX'hX!Z'hX#R'hXv'hX~O!j&bO!P'lP~P<cOw(kO}(jO~O!j&bOX'lP~P<cO!j(oO~P<cOZ'pO!t(bO'q(bO~O!S(qO'r(pOP$WX!e$WX~O!e(rOP(YX~OP(tO~OP!aX!S!aX!e!aX'r!aX!O!aXo!aXy!aX!P!aXX!aX!Z!aX#R!aXv!aX~P!KgOy$UaX$Ua!e$Ua!P$Uav$Ua#R$Ua~P2gO!l(|O'Q#VO'T(xOv(ZP~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'T#SO~Ov)TO~P#$iOy)VO~PEsO%^)WO~PGaOa)ZO~P!1iO%f)`O~PEvO_)aO'T&cO~O!i)fO!j)eO'T&cO~O'^UO!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Ov%uX~P2gOv)gO~PGyOv)gO~Ov)gO~P]OQiXQ'XXZiXd'XX}iX#piX(PiX~ORiXwiX$fiX$|iX[iXoiXyiX!liX!qiX!tiX#OiX#PiX'giX'qiX'riX'xiX'yiX'ziX'{iX'|iX'}iX(OiX(QiX(RiX(TiX!PiX!eiXXiXPiXviX!SiX#RiX~P#(kOQjXQlXRjXZjXdlX}jX#pjX(PjXwjX$fjX$|jX[jXojXyjX!ljX!qjX!tjX#OjX#PjX'gjX'qjX'rjX'xjX'yjX'zjX'{jX'|jX'}jX(OjX(QjX(RjX(TjX!PjX!ejXXjX!SjXPjXvjX#RjX~O%^)jO~PGaOQ']Od)kO~O^)mO_)mO`)mOa)mO'T%dO~Od)qO~OQ']OZ)uO})sOR'UX#p'UX(P'UXw'UX$f'UX$|'UX['UXo'UXy'UX!l'UX!q'UX!t'UX#O'UX#P'UX'g'UX'q'UX'r'UX'x'UX'y'UX'z'UX'{'UX'|'UX'}'UX(O'UX(Q'UX(R'UX(T'UX!P'UX!e'UXX'UXP'UXv'UX!S'UX#R'UX~OQ!QO^:bO_:^O`TOaTOd:aO%^)jO'T:_O~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!j)yO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!P)|O!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO(P*OO~OR*QO#p*RO(P*PO~OQhXQ'XXZhXd'XX}hX(PhX~ORhX#phXwhX$fhX$|hX[hXohXyhX!lhX!qhX!thX#OhX#PhX'ghX'qhX'rhX'xhX'yhX'zhX'{hX'|hX'}hX(OhX(QhX(RhX(ThX!PhX!ehXXhXPhXvhX!ShX#RhX~P#4kOQ*SO~O})sO~OQ!QO^%vO_%cO`TOaTOd%jO$f%wO%^%xO'T%dO~PGaO!Q*VO!j*VO~O^*YO`*YOa*YO!O*ZO~OQ&oOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO[#}Oo:YO}#zO!l:ZO!q#jO!t:ZO#O:YO#P:VO#p$OO'g#gO'q:ZO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~Ow'dX~P#9vOy#qaX#qa!e#qa!P#qav#qa#R#qa~P2gOy#zaX#za!e#za!P#zav#za#R#za~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!S&_O!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zay#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#zaX#za!e#za!P#zav#za#R#za~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q*eO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw*fO~P#9vO$b*iO$d*jO$f*kO~O!O*lO'r(pO~O!S*nO~O'T*oO~Ow$yOy*qO~O'T*rO~OQ*uOw*vOy*yO}*wO$|*xO~OQ*uOw*vO$|*xO~OQ*uOw+QO$|*xO~OQ*uOo+VOy+XO!S+UO~OQ*uO}+ZO~OQ!QOZ%rO[%qO^%vO`TOaTOd%jOg%yO}%pO!U!lO!W!lO!q%oO$f%wO$q%[O%]!lO%^%xO&W%{O'T%dO'Z%eO(Q%zO~OR+bO_+^O!Q+cO~P#DkO_%cO!Q!lOw&UX$|&UX(P&UX~P#DkOw$yO$f+hO$|*xO(P*PO~OQ!QOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ*uOw$yO!S+UO$|*xO~Oo+nOy+mO!S+oO'r(pO~OdlXy!RX#pbXv!RX!e!RX~Od'XXy(mX#p'SXv(mX!e(mX~Od+qO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q+vO~Ov(oP~P!3|O#p+{O~Oy+|O~O!S+}O~O&}!sO'O'VO'P,PO~Od,QO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UO~P#DkOS,^OT,^OZ,^O['cO_,YOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~O!P,dO~P#KkOX,gO~P#KkOv,iO~P#KkOo'tX#O'tX#P'tX#p'tX'r'tX'x'tX'y'tX'z'tX'{'tX'|'tX'}'tX(O'tX(P'tX(R'tX(T'tX~Oy,jO['tX}'tX!l'tX!q'tX!t'tX'g'tX'q'tX(Q'tXv'tX~P#NjOP$giQ$giS$giT$giZ$gi[$gi^$gi_$gi`$gia$gid$gig$gis$git$giu$giw$giy$gi|$gi}$gi!Q$gi!U$gi!W$gi!X$gi!Z$gi!]$gi!l$gi!q$gi!t$gi#Y$gi#r$gi#{$gi$O$gi$b$gi$d$gi$f$gi$i$gi$m$gi$q$gi$s$gi%T$gi%V$gi%Z$gi%]$gi%^$gi%f$gi%j$gi%s$gi&z$gi'Q$gi'T$gi'Z$gi'^$gi'g$gi'q$gi(Q$giv$gi~P#NjOX,kO~O['cOo,lOw'dO}'bOX]X~Oy#ciX#ci!e#ci!P#civ#ci#R#ci~P2gO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei(P#ei~P$'PO[#}O}#zO(O#|O(R#fOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei'x#ei(P#ei(Q#ei(T#eiw#ei~P$)QO'g#gO(P#gO~P$'PO[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O!q#ei~P$+`O!q#jO~P$+`O[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'r#ei~P$-hO'r#lO~P$-hO[#}O}#zO!q#jO#P#uO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#eiX#ei!e#ei!P#eiv#ei#R#ei~O'}#ei~P$/pO'}#mO~P$/pO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#ni!t#ni#p#ni'q#ni~Oo#xO#O#xO#P#uOy#niX#ni!e#ni!P#niv#ni#R#ni~P$1xO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#si!t#si#p#si'q#si~Oo#xO#O#xO#P#uOy#siX#si!e#si!P#siv#si#R#si~P$3yOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO~P)xO!e,sO!P(VX~P2gO!P,uO~OX,vO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOX&fX!e&fX!P&fX~P)xO!e(WOX(Wa~Oy,zO!e(WOX(WX~P2gOX,{O~O!P,|O!e(WO~O!P-OO!e(WO~P2gOSVOTVOsVOtVOuVO'^UO'g$[O~P!6POP!baZca!S!ba!e!ba!tca'qca'r!ba!O!bao!bay!ba!P!baX!ba!Z!ba#R!bav!ba~O!e-TO'r(pO!P'mXX'mX~O!P-VO~O!i-`O!j-_O!l-[O'T-XOv'nP~OX-aO~O_%cO!Q!lO~P#DkO!j-gOP&gX!e&gX~P<cO!e(rOP(Ya~O!S-iO'r(pOP$Wa!e$Wa~Ow!PO(P*PO~OvbX!S!kX!ebX~O'Q#VO'T(xO~O!S-mO~O!e-oOv([X~Ov-qO~Ov-sO~P,cOv-sO~P#$iO_-uO'T&cO~O!S-vO~Ow$yOy-wO~OQ*uOw*vOy-zO}*wO$|*xO~OQ*uOo.UO~Oy._O~O!S.`O~O!j.bO'T&cO~Ov.cO~Ov.cO~PGyOQ']O^'Wa_'Wa`'Waa'Wa'T'Wa~Od.gO~OQ'XXQ'kXR'kXZ'kXd'XX}'kX#p'kX(P'kXw'kX$f'kX$|'kX['kXo'kXy'kX!l'kX!q'kX!t'kX#O'kX#P'kX'g'kX'q'kX'r'kX'x'kX'y'kX'z'kX'{'kX'|'kX'}'kX(O'kX(Q'kX(R'kX(T'kX!P'kX!e'kXX'kXP'kXv'kX!S'kX#R'kX~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t.kO#V.mO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(sP~PGaO#Q.tOR%wa#p%wa(P%waw%wa$f%wa$|%wa[%wao%way%wa}%wa!l%wa!q%wa!t%wa#O%wa#P%wa'g%wa'q%wa'r%wa'x%wa'y%wa'z%wa'{%wa'|%wa'}%wa(O%wa(Q%wa(R%wa(T%wa!P%wa!e%waX%waP%wav%wa!S%wa#R%wa~O%^.vO~PGaO(P*POR&Oa#p&Oaw&Oa$f&Oa$|&Oa[&Oao&Oay&Oa}&Oa!l&Oa!q&Oa!t&Oa#O&Oa#P&Oa'g&Oa'q&Oa'r&Oa'x&Oa'y&Oa'z&Oa'{&Oa'|&Oa'}&Oa(O&Oa(Q&Oa(R&Oa(T&Oa!P&Oa!e&OaX&OaP&Oav&Oa!S&Oa#R&Oa~O_%cO!Q!lO!j.xO(P*OO~P#DkO!e.yO(P*PO!P(uX~O!P.{O~OX.|Oy.}O(P*PO~O'Z%eOR(qP~OQ']O})sORfa#pfa(Pfawfa$ffa$|fa[faofayfa!lfa!qfa!tfa#Ofa#Pfa'gfa'qfa'rfa'xfa'yfa'zfa'{fa'|fa'}fa(Ofa(Qfa(Rfa(Tfa!Pfa!efaXfaPfavfa!Sfa#Rfa~OQ']O})sOR&Va#p&Va(P&Vaw&Va$f&Va$|&Va[&Vao&Vay&Va!l&Va!q&Va!t&Va#O&Va#P&Va'g&Va'q&Va'r&Va'x&Va'y&Va'z&Va'{&Va'|&Va'}&Va(O&Va(Q&Va(R&Va(T&Va!P&Va!e&VaX&VaP&Vav&Va!S&Va#R&Va~O!P/UO~Ow$yO$f/ZO$|*xO(P*PO~OQ!QOZ/[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOo/^O'r(pO~O#W/_OP!YiQ!YiS!YiT!YiZ!Yi[!Yi^!Yi_!Yi`!Yia!Yid!Yig!Yio!Yis!Yit!Yiu!Yiw!Yiy!Yi|!Yi}!Yi!Q!Yi!U!Yi!W!Yi!X!Yi!Z!Yi!]!Yi!l!Yi!q!Yi!t!Yi#O!Yi#P!Yi#Y!Yi#p!Yi#r!Yi#{!Yi$O!Yi$b!Yi$d!Yi$f!Yi$i!Yi$m!Yi$q!Yi$s!Yi%T!Yi%V!Yi%Z!Yi%]!Yi%^!Yi%f!Yi%j!Yi%s!Yi&z!Yi'Q!Yi'T!Yi'Z!Yi'^!Yi'g!Yi'q!Yi'r!Yi'x!Yi'y!Yi'z!Yi'{!Yi'|!Yi'}!Yi(O!Yi(P!Yi(Q!Yi(R!Yi(T!YiX!Yi!e!Yi!P!Yiv!Yi!i!Yi!j!Yi#V!Yi#R!Yi~Oy#ziX#zi!e#zi!P#ziv#zi#R#zi~P2gOy$UiX$Ui!e$Ui!P$Uiv$Ui#R$Ui~P2gOv/eO!j&bO'Q`O~P<cOw/nO}/mO~Oy!RX#pbX~Oy/oO~O#p/pO~OR+bO_+dO!Q/sO'T&iO'Z%eO~Oa/zO|!VO'Q#VO'T(ROv(cP~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(eP~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw(`Py(`P~PGaOw*vO~Oy-zO$|*xO~Oa/zO|!VO'Q#VO'T*oOv(gP~Ow+QO~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zO(R0`O~PGaOy0dO~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t0hO'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V0nO!P(jP~P%1}Ow!POy0pO#Q0rO$|*xO~OR0uO!e0sO~P#(kOR0uO!S+UO!e0sO(P*OO~OR0uOo0wO!S+UO!e0sOQ'VXZ'VX}'VX#p'VX(P'VX~OR0uOo0wO!e0sO~OR0uO!e0sO~O$f/ZO(P*PO~Ow$yO~Ow$yO$|*xO~Oo0}Oy0|O!S1OO'r(pO~O!e1POv(pX~Ov1RO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q1VO~Oo1YOQ'VXR'VXZ'VX}'VX!e'VX(P'VX~O!e1ZO(P*POR'YX~O!e1ZOR'YX~O!e1ZO(P*OOR'YX~OR1]O~O!S1^OS'wXT'wXZ'wX['wX_'wXd'wXo'wXs'wXu'wXw'wXy'wX}'wX!P'wX!e'wX!l'wX!q'wX!t'wX!y'wX#O'wX#P'wX#Q'wX#R'wX'Q'wX'Z'wX'^'wX'g'wX'r'wX'v'wX'x'wX'y'wX'z'wX'{'wX'|'wX'}'wX(O'wX(P'wX(Q'wX(R'wXX'wXv'wX~O}1_O~O!P1aO~P#KkOX1bO~P#KkOv1cO~P#KkOS,^OT,^OZ,^O['cO_1dOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~OX1fO~Oy,jO~O!e,sO!P(Va~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P&eX!e&eX~P)xO!e,sO!P(Va~OX&fa!e&fa!P&fa~P2gOX1kO~P2gO!P1mO!e(WO~OP!biZci!S!bi!e!bi!tci'qci'r!bi!O!bio!biy!bi!P!biX!bi!Z!bi#R!biv!bi~O'r(pOP!oi!S!oi!e!oi!O!oio!oiy!oi!P!oiX!oi!Z!oi#R!oiv!oi~O!j&bO!P&`X!e&`XX&`X~P<cO!e-TO!P'maX'ma~O!P1qO~Ov!RX!S!kX!e!RX~O!S1rO~O!e1sOv'oX~Ov1uO~O'T-XO~O!j1xO'T-XO~O(P*POP$Wi!e$Wi~O!S1yO'r(pOP$XX!e$XX~O!S1|O~Ov$_a!e$_a~P2gO!l(|O'Q#VO'T(xOv&hX!e&hX~O!e-oOv([a~Ov2QO~P,cOy2UO~O#p2VO~Oy2WO$|*xO~Ow*vOy2WO}*wO$|*xO~Oo2aO~Ow!POy2fO#Q2hO$|*xO~O!S2jO~Ov2lO~O#Q2mOR%wi#p%wi(P%wiw%wi$f%wi$|%wi[%wio%wiy%wi}%wi!l%wi!q%wi!t%wi#O%wi#P%wi'g%wi'q%wi'r%wi'x%wi'y%wi'z%wi'{%wi'|%wi'}%wi(O%wi(Q%wi(R%wi(T%wi!P%wi!e%wiX%wiP%wiv%wi!S%wi#R%wi~Od2nO~O^2qO!j.sO!q2rO'Q#VO'Z%eO~O(P*PO!P%{X!e%{X~O!e2sO!P(tX~O!P2uO~OQ!QOZ%rO[%qO^2wO_%cO`TOaTOd%jOg%yO}%pO!j2xO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO^2yO!j2xO(P*OO~O!P%aX!e%aX~P#4kO^2yO~O(P*POR&Oi#p&Oiw&Oi$f&Oi$|&Oi[&Oio&Oiy&Oi}&Oi!l&Oi!q&Oi!t&Oi#O&Oi#P&Oi'g&Oi'q&Oi'r&Oi'x&Oi'y&Oi'z&Oi'{&Oi'|&Oi'}&Oi(O&Oi(Q&Oi(R&Oi(T&Oi!P&Oi!e&OiX&OiP&Oiv&Oi!S&Oi#R&Oi~O_%cO!Q!lO!P&yX!e&yX~P#DkO!e.yO!P(ua~OR3QO(P*PO~O!e3ROR(rX~OR3TO~O(P*POR&Pi#p&Piw&Pi$f&Pi$|&Pi[&Pio&Piy&Pi}&Pi!l&Pi!q&Pi!t&Pi#O&Pi#P&Pi'g&Pi'q&Pi'r&Pi'x&Pi'y&Pi'z&Pi'{&Pi'|&Pi'}&Pi(O&Pi(Q&Pi(R&Pi(T&Pi!P&Pi!e&PiX&PiP&Piv&Pi!S&Pi#R&Pi~O!P3UO~O$f3VO(P*PO~Ow$yO$f3VO$|*xO(P*PO~Ow!PO!Z!YO~O!Z3aO#R3_O'r(pO~O!j&bO'Q#VO~P<cOv3eO~Ov3eO!j&bO'Q`O~P<cO!O3hO'r(pO~Ow!PO~P#9vOo3kOy3jO(P*PO~O!P3oO~P%;pOv3rO~P%;pOR0uO!S+UO!e0sO~OR0uOo0wO!S+UO!e0sO~Oa/zO|!VO'Q#VO'T(RO~O!S3uO~O!e3wOv(dX~Ov3yO~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO~PGaO!e3|O(P*PO!P(fX~O!P4OO~O!S4PO(P*OO~O!S+UO(P*PO~O!e4ROw(aXy(aX~OQ4TO~Oy2WO~Oa/zO|!VO'Q#VO'T*oO~Oo4WOw*vO}*wOv%XX!e%XX~O!e4ZOv(hX~Ov4]O~O(P4_Oy(_Xw(_X$|(_XR(_Xo(_X!e(_X~Oy4aO(P*PO~OQ!QOSVOTVO[$gO^4bO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j4cO'Z%eO~P&,sO!S4eO'r(pO~O#V4gO~P%1}O!e4hO!P(kX~O!P4jO~O!P%aX!S!aX!e%aX'r!aX~P!KgO!j&bO~P&,sO!e4hO!P(kX!S'eX'r'eX~O^2yO!j2xO~Ow!POy2fO~O_4pO!Q/sO'T&iO'Z%eOR&lX!e&lX~OR4rO!e0sO~O!S4tO~Ow$yO$|*xO(P*PO~Oy4uO~P2gOo4vOy4uO(P*PO~Ov&uX!e&uX~P!3|O!e1POv(pa~Oo4|Oy4{O(P*PO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UOR&vX!e&vX~P#DkO!e1ZOR'Ya~O!y5SO~O!P5TO~P#KkO!S1^OX'wX#R'wX~O!e,sO!P(Vi~O!P&ea!e&ea~P2gOX5WO~P2gOP!bqZcq!S!bq!e!bq!tcq'qcq'r!bq!O!bqo!bqy!bq!P!bqX!bq!Z!bq#R!bqv!bq~O'r(pO!P&`a!e&`aX&`a~O!i-`O!j-_O!l5YO'T-XOv&aX!e&aX~O!e1sOv'oa~O!S5[O~O!S5`O'r(pOP$Xa!e$Xa~O(P*POP$Wq!e$Wq~Ov$^i!e$^i~P2gOw!POy5bO#Q5dO$|*xO~Oo5gOy5fO(P*PO~Oy5iO~Oy5iO$|*xO~Oy5mO(P*PO~Ow!POy5bO~Oo5tOy5sO(P*PO~O!S5vO~O!e2sO!P(ta~O^2yO!j2xO'Z%eO~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t5zO#V5|O$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&xX!e&xX~PGaOQ!QOZ%rO[%qO^6OO_%cO`TOaTOd%jOg%yO}%pO!j6PO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(P*OO(Q%zO~PGaO!P%aa!e%aa~P#4kO^6QO~O#Q6ROR%wq#p%wq(P%wqw%wq$f%wq$|%wq[%wqo%wqy%wq}%wq!l%wq!q%wq!t%wq#O%wq#P%wq'g%wq'q%wq'r%wq'x%wq'y%wq'z%wq'{%wq'|%wq'}%wq(O%wq(Q%wq(R%wq(T%wq!P%wq!e%wqX%wqP%wqv%wq!S%wq#R%wq~O(P*POR&Oq#p&Oqw&Oq$f&Oq$|&Oq[&Oqo&Oqy&Oq}&Oq!l&Oq!q&Oq!t&Oq#O&Oq#P&Oq'g&Oq'q&Oq'r&Oq'x&Oq'y&Oq'z&Oq'{&Oq'|&Oq'}&Oq(O&Oq(Q&Oq(R&Oq(T&Oq!P&Oq!e&OqX&OqP&Oqv&Oq!S&Oq#R&Oq~O(P*PO!P&ya!e&ya~OX6SO~P2gO'Z%eOR&wX!e&wX~O!e3ROR(ra~O$f6YO(P*PO~Ow![q~P#9vO#R6]O~O!Z3aO#R6]O'r(pO~Ov6bO~O#R6fO~Oy6gO!P6hO~O!P6hO~P%;pOy6kO~Ov6kOy6gO~Ov6kO~P%;pOy6mO~O!e3wOv(da~O!S6pO~Oa/zO|!VO'Q#VO'T(ROv&oX!e&oX~O!e3|O(P*PO!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&pX!e&pX~PGaO!e3|O!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw&nX!e&nXy&nX~PGaO!e4ROw(aay(aa~O!e4ZOv(ha~Oo7SOv%Xa!e%Xa~Oo7SOw*vO}*wOv%Xa!e%Xa~Oa/zO|!VO'Q#VO'T*oOv&qX!e&qX~O(P*POy$xaw$xa$|$xaR$xao$xa!e$xa~O(P4_Oy(_aw(_a$|(_aR(_ao(_a!e(_a~O!P%aa!S!aX!e%aa'r!aX~P!KgOQ!QOSVOTVO[$gO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j&bO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O^7ZO~P&JUO^6QO!j6PO~O!e4hO!P(ka~O!e4hO!P(ka!S'eX'r'eX~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t7_O'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V7aO!P&sX!e&sX~P&L]O!S7cO'r(pO~Ow!POy5bO$|*xO(P*PO~O!S+UOR&la!e&la~Oo0wO!S+UOR&la!e&la~Oo0wOR&la!e&la~O(P*POR$yi!e$yi~Oy7fO~P2gOo7gOy7fO(P*PO~O(P*PORni!eni~O(P*POR&va!e&va~O(P*OOR&va!e&va~OS,^OT,^OZ,^O_,^Od,^Oo,^Os,^Ou,^Oy,^O!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O~O(P7iO(Q7iO(R7iO~P'!qO!P7kO~P#KkO!P&ei!e&ei~P2gO'r(pOv!hi!e!hi~O!S7mO~O(P*POP$Xi!e$Xi~Ov$^q!e$^q~P2gOw!POy7oO~Ow!POy7oO#Q7rO$|*xO~Oy7tO~Oy7uO~Oy7vO(P*PO~Ow!POy7oO$|*xO(P*PO~Oo7{Oy7zO(P*PO~O!e2sO!P(ti~O(P*PO!P%}X!e%}X~O!P%ai!e%ai~P#4kO^8OO~O!e8TO['bXv$`i}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[iv$`i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R#^a~P2gO#R8WO~O!Z3aO#R8XO'r(pO~Ov8[O~Oy8^O~P2gOy8`O~Oy6gO!P8aO~Ov8`Oy6gO~O!e3wOv(di~O(P*POv%Qi!e%Qi~O!e3|O!P(fi~O!e3|O(P*PO!P(fi~O(P*PO!P&pa!e&pa~O(P8hOw(bX!e(bXy(bX~O(P*PO!S$wiy$wiw$wi$|$wiR$wio$wi!e$wi~O!e4ZOv(hi~Ov%Xi!e%Xi~P2gOo8kOv%Xi!e%Xi~O!P%ai!S!aX!e%ai'r!aX~P!KgO(P*PO!P%`i!e%`i~O!e4hO!P(ki~O#V8nO~P&L]O!P&sa!S'eX!e&sa'r'eX~O(P*POR$zq!e$zq~Oy8pO~P2gOy7zO~P2gO(P8rO(Q8rO(R8rO~O(P8rO(Q8rO(R8rO~P'!qO'r(pOv!hq!e!hq~O(P*POP$Xq!e$Xq~Ow!POy8uO$|*xO(P*PO~Ow!POy8uO~Oy8xO~P2gOy8zO~P2gOo8|Oy8zO(P*PO~OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[qv$`q}#[q!i#[q!j#[q!l#[q!q#[q#V#[q'Q#[q'T#[q'^#[q'g#[q~O!e9PO['bXv$`q}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'2fO#R9UO~O!Z3aO#R9UO'r(pO~Oy9WO~O(P*POv%Qq!e%Qq~O!e3|O!P(fq~O(P*PO!P&pi!e&pi~O(P8hOw(ba!e(bay(ba~Ov%Xq!e%Xq~P2gO!P&si!S'eX!e&si'r'eX~O(P*PO!P%`q!e%`q~Oy9]O~P2gO(P9^O(Q9^O(R9^O~O'r(pOv!hy!e!hy~Ow!POy9_O~Ow!POy9_O$|*xO(P*PO~Oy9aO~P2gOQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[yv$`y}#[y!i#[y!j#[y!l#[y!q#[y#V#[y'Q#[y'T#[y'^#[y'g#[y~O!e9dO['bXv$`y}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'9eO!e9eO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R9hO~O(P*PO!P&pq!e&pq~Ov%Xy!e%Xy~P2gOw!POy9iO~Oy9jO~P2gOQ#[!RS#[!RT#[!R[#[!R^#[!R_#[!R`#[!Ra#[!Rd#[!Rs#[!Rt#[!Ru#[!Rv$`!R}#[!R!i#[!R!j#[!R!l#[!R!q#[!R#V#[!R'Q#[!R'T#[!R'^#[!R'g#[!R~O!e9kO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[q}#[q!i#[q!j#[q!l#[q!q#[q!t'bX#V#[q'Q#[q'T#[q'^#[q'g#[q'q'bX(Q'bX~P@[O!e9nO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[y}#[y!i#[y!j#[y!l#[y!q#[y!t'bX#V#[y'Q#[y'T#[y'^#[y'g#[y'q'bX(Q'bX~P@[OwbX~P$|OwjX}jX!tbX'qbX~P!6mOZ'SXd'XXo'SXw'kX!t'SX'q'SX'r'SX~O['SXd'SXw'SX}'SX!l'SX!q'SX#O'SX#P'SX#p'SX'g'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SX~P'GTOP'SX}'kX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTO^9qO_9qO`9qOa9qO'T9oO~O!j:OO~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXw#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sX~P'IxO#Q$uO~P!.cO}'kXP'SX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTOo#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qX~P!.cOo#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zX~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#saw#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#sa~P'IxOo:YO#O:YO#P:VOw#sa~P!B}Ow$Ua~P#9vOQ'XXd'XX}iX~OQlXdlX}jX~O^:sO_:sO`:sOa:sO'T:_O~OQ'XXd'XX}hX~Ow#qa~P#9vOw#za~P#9vO!S&_Oo#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#za~P!.cO#Q*eO~P!.cOw#ci~P#9vO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#ei~O'g#ei(P#ei~P((}O'g#gO(P#gO~P((}O[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#ei~O!q#ei~P(*yO!q#jO~P(*yO[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#ei~O'r#ei~P(,rO'r#lO~P(,rO[#}O}#zO!q#jO#P:VO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#ei~O'}#ei~P(.kO'}#mO~P(.kOo:YO#O:YO#P:VOw#ni~P$1xOo:YO#O:YO#P:VOw#si~P$3yOQ'XXd'XX}'kX~Ow#zi~P#9vOw$Ui~P#9vOd9}O~Ow#ca~P#9vOd:uO~OU'x_'v'P'O'^s!y'^'T'Z~",goto:"$Ku(vPPPPPPP(wPP)OPP)^PPPP)d-hP0f5aP7R7R8v7R>wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"\u26A0 | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[bR],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O_!<Z]'_QUX'PS'OSOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O]!=]XUX'PS'OSOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!=}XUXOY!>jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!<O_!CQjuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#U$n#U#V#!}#V#]$n#]#^!FZ#^#c$n#c#d#%u#d#i$n#i#j!FZ#j#l$n#l#m#(g#m;'S$n;'S;=`4s<%lO$n_!D{duX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_!Fbg'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R$n!R!S!Gy!S!T$n!T!U!K_!U!W$n!W!X!Le!X!Y$n!Y!Z!J]!Z#O$n#O#P&[#P#g$n#g#h!Mk#h;'S$n;'S;=`4s<%lO$n_!HQa'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!IV!T!W$n!W!X!J]!X#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!I^_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y$n!Y!Z!J]!Z#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Jf]uX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Kf_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!J]!T#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Ll_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!U$n!U!V!J]!V#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Mr_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#]$n#]#^!Nq#^;'S$n;'S;=`4s<%lO$n_!Nx_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#n$n#n#o# w#o;'S$n;'S;=`4s<%lO$n_#!O_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#X$n#X#Y!J]#Y;'S$n;'S;=`4s<%lO$n_##Ua'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S;'S$n;'S;=`4s<%lO$n_#$deuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#%|`'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S;'S$n;'S;=`4s<%lO$n_#'XduX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#(nd'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z;'S$n;'S;=`4s<%lO$n_#*VhuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#+z_!SX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![$n![!]#,y!]#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#-S]dX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#.U]yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#/W`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!^$n!^!_#0Y!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#0c_'yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#1k`oX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#2m!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#2v]#RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#3x`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#4z!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#5T_'zX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#6]](RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV#7_]'pP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#8cj'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n_#:^][X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU#;[Z'OSOz#;}z{#<k{!P#;}!P!Q#=V!Q#i#;}#i#j#=n#j#l#;}#l#m#?j#m;'S#;};'S;=`#C[<%lO#;}U#<UVrQ'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[U#<pVrQOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`U#=[UrQOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`U#=s^'OSOz&[z{&v{!P&[!P!Q'x!Q![#>o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[wR,SR,yR,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:s(e=>PR[e]||-1,"get")}],tokenPrec:15596})});import dn from"fs/promises";import gc from"path";function hh(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function yc(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function G(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function ve(e,t){return e.slice(t.from,t.to)}function Be(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function Ze(e,t){return e[t-1]?.trim()||"<unknown>"}function vR(e,t){let n=[];return G(t,r=>{if(r.type.name!=="ImportStatement")return;let i=ve(e,r).trim(),o=/^from\s+([.\w]+)\s+import\b/.exec(i);if(o?.[1]){n.push(o[1]);return}o=/^import\s+(.+)$/.exec(i),o?.[1]&&n.push(...o[1].split(",").map(a=>a.trim().split(/\s+as\s+/i)[0]??"").filter(Boolean))}),fe(n,12)}function Oc(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return ve(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return G(t,i=>{let o=Oc(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?Oc(e,n):null}function mh(e,t){let n=new Set,r=s(i=>{if(i.type.name==="CallExpression"){let o=i.firstChild,a=o?Oc(e,o):null;a&&!Ee.has(a)&&n.add(a)}G(i,r)},"walk");return r(t),Array.from(n).slice(0,24)}async function Oh(e,t,n){let r=[];for(let i of t){let o=gc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),f=oh.parse(c).topNode,u=te(i),m=de(u),g=ze(m),w=vR(c,f),k=[],h=be(i,n).id;G(f,y=>{if(y.type.name==="FunctionDefinition"){let v=null;if(G(y,A=>{A.type.name==="VariableName"&&!v&&(v=ve(c,A).trim())}),!v)return;let b=v,I=Be(c,y);k.push({id:`${i}#${b}:${I}`,name:b,qualifiedName:`${i}:${b}`,kind:"function",filePath:i,moduleId:h,language:u,capabilityTier:m,line:I,signature:Ze(d,I),exported:!b.startsWith("_"),calls:mh(c,y),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let P=null,S=null;if(G(y,v=>{v.type.name==="VariableName"&&!P?P=ve(c,v).trim():v.type.name==="Body"&&(S=v)}),!P)return;let Q=P,x=Be(c,y);k.push({id:`${i}#${Q}:${x}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"class",filePath:i,moduleId:h,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:!Q.startsWith("_"),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.99,g+.08)}),S&&G(S,v=>{if(v.type.name!=="FunctionDefinition")return;let b=null;if(G(v,R=>{R.type.name==="VariableName"&&!b&&(b=ve(c,R).trim())}),!b)return;let I=b,A=Be(c,v);k.push({id:`${i}#${Q}.${I}:${A}`,name:I,qualifiedName:`${i}:${Q}.${I}`,kind:"method",filePath:i,moduleId:h,language:u,capabilityTier:m,line:A,signature:Ze(d,A),exported:!I.startsWith("_"),calls:mh(c,v),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:h,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}function hr(e,t){let n=null;return G(e,r=>{!n&&t(r)&&(n=r)}),n}function kR(e,t){let n=null;return G(e,r=>{t(r)&&(n=r)}),n}function gh(e,t){if(t(e))return e;let n=null;return G(e,r=>{n||(n=gh(r,t))}),n}function so(e,t,n){let r=new Set,i=s(o=>{if(o.type.name==="CallExpr"||o.type.name==="CallExpression"){let a=o.firstChild,c=a?n(e,a):null;c&&!Ee.has(c)&&r.add(c)}G(o,i)},"walk");return i(t),Array.from(r).slice(0,24)}function ao(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return ve(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return G(t,i=>{let o=ao(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?ao(e,n):null}function co(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return ve(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return G(t,i=>{let o=co(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?co(e,n):null}function cn(e,t,n){let r=hr(t,i=>i.type.name===n);return r?ve(e,r).trim():null}function hc(e,t){return/^pub(?:\([^)]*\))?\s/.test(ve(e,t).trimStart())}async function yh(e,t,n){let r=[];for(let i of t){let o=gc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=Um.parse(c),f=be(i,n).id,u=te(i),m=de(u),g=ze(m),w=or(c,u),k=[];G(l.topNode,h=>{if(h.type.name==="TypeDecl"){let v=hr(h,R=>R.type.name==="TypeSpec"),b=v?cn(c,v,"DefName"):null;if(!v||!b)return;let I=hr(v,R=>R.type.name==="InterfaceType")?"interface":"struct",A=Be(c,v);k.push({id:`${i}#${b}:${A}`,name:b,qualifiedName:`${i}:${b}`,kind:I,filePath:i,moduleId:f,language:u,capabilityTier:m,line:A,signature:Ze(d,A),exported:/^[A-Z]/.test(b),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name==="FunctionDecl"){let v=cn(c,h,"DefName");if(!v)return;let b=Be(c,h);k.push({id:`${i}#${v}:${b}`,name:v,qualifiedName:`${i}:${v}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:b,signature:Ze(d,b),exported:/^[A-Z]/.test(v),calls:so(c,h,ao),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(h.type.name!=="MethodDecl")return;let y=hr(h,v=>v.type.name==="Parameters"),P=cn(c,h,"FieldName"),S=y?gh(y,v=>v.type.name==="TypeName"):null,Q=S?ve(c,S).trim():void 0;if(!P)return;let x=Be(c,h);k.push({id:`${i}#${Q?`${Q}.`:""}${P}:${x}`,name:P,qualifiedName:`${i}:${Q?`${Q}.`:""}${P}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:/^[A-Z]/.test(P),calls:so(c,h,ao),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}async function wh(e,t,n){let r=[];for(let i of t){let o=gc.join(e,i);if((await dn.stat(o)).size>Ht)continue;let c=await dn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=fh.parse(c),f=be(i,n).id,u=te(i),m=de(u),g=ze(m),w=or(c,u),k=[];G(l.topNode,h=>{if(h.type.name==="StructItem"||h.type.name==="TraitItem"||h.type.name==="EnumItem"){let Q=cn(c,h,"TypeIdentifier");if(!Q)return;let x=h.type.name==="TraitItem"?"trait":h.type.name==="EnumItem"?"enum":"struct",v=Be(c,h);k.push({id:`${i}#${Q}:${v}`,name:Q,qualifiedName:`${i}:${Q}`,kind:x,filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ze(d,v),exported:hc(c,h),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name==="FunctionItem"){let Q=cn(c,h,"BoundIdentifier");if(!Q)return;let x=Be(c,h);k.push({id:`${i}#${Q}:${x}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:x,signature:Ze(d,x),exported:hc(c,h),calls:so(c,h,co),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(h.type.name!=="ImplItem")return;let y=kR(h,Q=>Q.type.name==="TypeIdentifier"),P=y?yc(ve(c,y).trim()):void 0,S=hr(h,Q=>Q.type.name==="DeclarationList");!P||!S||G(S,Q=>{if(Q.type.name!=="FunctionItem")return;let x=cn(c,Q,"BoundIdentifier");if(!x)return;let v=Be(c,Q);k.push({id:`${i}#${P}.${x}:${v}`,name:x,qualifiedName:`${i}:${P}.${x}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ze(d,v),exported:hc(c,Q),calls:so(c,Q,co),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,st)})}return r}var wc=p(()=>{"use strict";Vm();sh();ph();ct();s(hh,"extractGoReceiverQualifier");s(yc,"normalizeRustQualifier");s(G,"forEachSyntaxChild");s(ve,"getSyntaxNodeText");s(Be,"getPythonNodeLine");s(Ze,"getPythonSignature");s(vR,"collectPythonImports");s(Oc,"getPythonCallName");s(mh,"collectPythonCallNames");s(Oh,"analyzePythonFiles");s(hr,"findFirstSyntaxChild");s(kR,"findLastSyntaxChild");s(gh,"findSyntaxDescendant");s(so,"collectLezerCallNames");s(ao,"getGoCallName");s(co,"getRustCallName");s(cn,"findSyntaxNodeText");s(hc,"isRustExported");s(yh,"analyzeGoFiles");s(wh,"analyzeRustFiles")});import Sh from"fs/promises";import mt from"path";function bh(e,t){return Array.from(e.matchAll(t)).length}function ke(e){return bh(e,/\{/g)-bh(e,/\}/g)}function xR(e,t,n,r,i){let o=Math.max(0,n.line-1),a=Math.max(n.line,(r[i+1]?.line??e.length+1)-1);if(t==="python"){let u=e[o]?.match(/^\s*/)?.[0]?.length??0,m=o+1;for(;m<e.length;){let g=e[m]??"",w=g.trim();if(!w){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!w.startsWith("#"))break;m+=1}return e.slice(o,m).join(`
802
803
  `)}let c=0,d=!1,l=o;for(let u=o;u<e.length;u+=1){let m=e[u]??"";if(c+=ke(m),m.includes("{")&&(d=!0),l=u,d&&c<=0&&u>o||!d&&u+1>=a)break}let f=d?l+1:a;return e.slice(o,f).join(`
803
- `)}function kR(e){let t=new Set,n=[/\b([A-Za-z_][A-Za-z0-9_]*)\s*\(/g,/\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/g];for(let r of n){let i=null;for(;(i=r.exec(e))!==null;){let o=i[1];if(!(!o||Ee.has(o))&&(t.add(o),t.size>=24))break}}return Array.from(t)}function re(e,t,n){let r=`${n.line}:${n.kind}:${n.name}`;t.has(r)||(t.add(r),e.push(n))}function xR(e,t){let n=[],r=new Set,i=[],o=[],a=[],c=0;for(let[d,l]of e.entries()){let f=l.trim();if(!f)continue;let u=null;if(t==="typescript"||t==="javascript"){if(u=/^(export\s+)?(?:async\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*\(/.exec(f),u){re(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08});continue}if(u=/^(export\s+)?(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*(?:async\s*)?(?:\([^=]*\)|[A-Za-z_$][A-Za-z0-9_$]*)\s*=>/.exec(f),u){re(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.06});continue}if(u=/^(export\s+)?class\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?interface\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?type\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=/.exec(f)??/^(export\s+)?enum\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f),u){let m=f.includes("interface")?"interface":f.includes("type ")?"type":f.includes("enum ")?"enum":"class";re(n,r,{name:u[2],kind:m,line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08})}continue}if(t==="python"){if(u=/^def\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}u=/^class\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&re(n,r,{name:u[1],kind:"class",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}if(t==="go"){if(u=/^func\s+\(([^)]+)\)\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:mh(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}u=/^type\s+([A-Za-z_][A-Za-z0-9_]*)\s+(?:struct|interface)/.exec(f),u&&re(n,r,{name:u[1],kind:f.includes("interface")?"interface":"struct",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}if(t==="rust"){let m=a[a.length-1];if(u=/^impl(?:<[^>]+>)?\s+(?:[A-Za-z0-9_:<&>\[\]]+\s+for\s+)?([A-Za-z_][A-Za-z0-9_:<>]*)/.exec(f),u){let g=gc(u[1]);a.push({name:g,depth:c+ke(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(re(n,r,{name:u[1],kind:m?.name?"method":"function",line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:m?.name?.07:.06,qualifier:m?.name}),c+=ke(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}for(u=/^(?:pub\s+)?(struct|enum|trait)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&re(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=ke(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}if(t==="java"){if(u=/^(?:public\s+)?(class|interface|enum)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(re(n,r,{name:u[2],kind:u[1]==="interface"?"interface":u[1]==="enum"?"enum":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.05}),i.push({name:u[2],depth:c+ke(l)}),c+=ke(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(u=/^(?:public|protected|private|static|final|synchronized|abstract|\s)+[\w<>\[\], ?]+\s+([A-Za-z_][A-Za-z0-9_]*)\s*\([^;]*\)\s*\{?$/.exec(f),u&&!Ee.has(u[1])){let m=i[i.length-1]?.name;re(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=ke(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(t==="cpp"){if(u=/^(class|struct|enum)(?:\s+(?:class|struct))?\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(re(n,r,{name:u[2],kind:u[1]==="enum"?"enum":u[1]==="struct"?"struct":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.03}),u[1]!=="enum"&&o.push({name:u[2],depth:c+ke(l)}),c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)::([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ee.has(u[2])){for(re(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ee.has(u[1])){let m=o[o.length-1]?.name;re(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop()}}return n.slice(0,st)}async function bh(e,t,n){let r=mt.join(e,t);if((await wh.stat(r)).size>Ht)return null;let o=await wh.readFile(r,"utf8"),a=o.split(/\r?\n/),c=te(t),d=de(c),l=ir(o,c),f=xR(a,c),u=ze(d),m=f.map((g,w,k)=>{let h=vR(a,c,g,k,w),y=g.calls??kR(h);return{id:`${t}#${g.qualifier?`${g.qualifier}.`:""}${g.name}:${g.line}`,name:g.name,qualifiedName:`${t}:${g.qualifier?`${g.qualifier}.`:""}${g.name}`,kind:g.kind,filePath:t,moduleId:n,language:c,capabilityTier:d,line:g.line,signature:g.signature,exported:g.exported,calls:y,callTargets:[],importPaths:l,confidence:Math.min(.97,u+g.confidenceBoost)}});return{filePath:t,moduleId:n,language:c,capabilityTier:d,importPaths:l,symbols:m}}function Ph(e){let t=new Map;for(let n of e)t.set(n.id.toLowerCase(),n.id),t.set(n.label.toLowerCase(),n.id),t.set(mt.posix.basename(n.root).toLowerCase(),n.id);return t}function TR(e,t,n){if(!e.startsWith("."))return null;let r=mt.posix.dirname(t),i;if(e.includes("/"))i=K(mt.posix.join(r,e));else{let a=e.match(/^\.+/)?.[0]?.length??0,c=e.slice(a).replace(/\./g,"/"),d=r;for(let l=1;l<a;l+=1)d=mt.posix.dirname(d);i=K(mt.posix.join(d,c))}let o=[i];for(let a of Jt)o.push(`${i}${a}`),o.push(`${i}/index${a}`);for(let a of o)if(n.has(a))return a;return null}function hr(e,t,n,r,i){let o=TR(e,t,n);if(o)return be(o,r).id;let a=e.toLowerCase();for(let[c,d]of i.entries())if(a===c||a.startsWith(`${c}/`)||a.endsWith(`/${c}`))return d;return null}function co(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function vh(e,t){let n=new Map(t.map(o=>[o.id,o])),r=new Map;for(let o of t){let a=r.get(o.moduleId)??[];a.push(o),r.set(o.moduleId,a)}let i=[];for(let o of e){let a=r.get(o.moduleId)??[],c=o.entryFiles.length>0?o.entryFiles:o.sampleFiles;for(let d of c.slice(0,2)){let l=a.find(h=>h.filePath===d&&h.exported)??a.find(h=>h.filePath===d)??a[0];if(!l)continue;let f=[{kind:"entry",symbolName:l.name,symbolId:l.id,filePath:l.filePath,line:l.line,note:`Entry symbol ${l.name} in ${l.filePath}`}];for(let h of l.importPaths.slice(0,3))f.push({kind:"imports",symbolName:h,filePath:l.filePath,note:`Imports ${h}`});let u=l.callTargets.slice(0,3);for(let h of u){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Calls ${h.name} (${h.reason})`})}let m=u.map(h=>n.get(h.symbolId)).filter(h=>h!==void 0).flatMap(h=>h.callTargets.slice(0,2)).slice(0,2);for(let h of m){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Then reaches ${h.name} (${h.reason})`})}let g=f.slice(0,mm),w=fe(g.map(h=>n.get(h.symbolId??"")?.moduleId).filter(h=>typeof h=="string"),4),k=`${o.moduleId}::${mt.posix.basename(d)}`;i.push({id:k,label:`${o.label} entry via ${mt.posix.basename(d)}`,moduleId:o.moduleId,entryFile:d,entrySymbol:l.name,summary:w.length>0?`${l.name} fans into ${fe(u.map(h=>h.name),4).join(", ")||"local work"} and touches modules ${w.join(", ")}.`:`${l.name} starts the main path for ${o.label}.`,steps:g,confidence:Math.min(.95,l.confidence-.02+u.length*.03)})}}return i}var wc=p(()=>{"use strict";ct();yc();s(Sh,"countOccurrences");s(ke,"countBraceDelta");s(vR,"extractSymbolBody");s(kR,"extractCallNames");s(re,"pushSymbol");s(xR,"extractSymbolsFromLines");s(bh,"analyzeSourceFile");s(Ph,"buildModuleAliases");s(TR,"resolveRelativeImport");s(hr,"resolveImportToModule");s(co,"rankReferenceReason");s(vh,"buildProcessCapsules")});var Qh={};Nc(Qh,{analyzeTypeScriptFiles:()=>_R,collectTypeScriptImportPaths:()=>Rh,getCallExpressionName:()=>Th,getDeclarationKey:()=>bc,getNodeLine:()=>kh,getPropertyNameText:()=>lo,getSignatureSnippet:()=>xh,hasModifier:()=>Sc,isExportedDeclaration:()=>Ot,registerTypeScriptSymbol:()=>ht,resolveTypeScriptCallSymbol:()=>_h,scriptKindFromFilePath:()=>RR});import uo from"path";import E from"typescript";function RR(e){switch(uo.extname(e).toLowerCase()){case".ts":return E.ScriptKind.TS;case".tsx":return E.ScriptKind.TSX;case".jsx":return E.ScriptKind.JSX;default:return E.ScriptKind.JS}}function kh(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function bc(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${K(uo.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function xh(e,t){let n=t.getStart(e),r=e.text.indexOf(`
804
- `,n);return e.text.slice(n,r===-1?void 0:r).trim()||t.getText(e).split(/\r?\n/,1)[0]?.trim()||"<unknown>"}function Sc(e,t){return E.canHaveModifiers(e)?!!E.getModifiers(e)?.some(n=>n.kind===t):!1}function Ot(e){return Sc(e,E.SyntaxKind.ExportKeyword)||Sc(e,E.SyntaxKind.DefaultKeyword)?!0:E.isVariableDeclaration(e)&&E.isVariableDeclarationList(e.parent)&&E.isVariableStatement(e.parent.parent)?Ot(e.parent.parent):!1}function lo(e){return e&&(E.isIdentifier(e)||E.isPrivateIdentifier(e)||E.isStringLiteral(e)||E.isNumericLiteral(e))?e.text:null}function Th(e){return E.isIdentifier(e)?e.text:E.isPropertyAccessExpression(e)?e.name.text:E.isElementAccessExpression(e)&&E.isIdentifier(e.argumentExpression)?e.argumentExpression.text:null}function Rh(e){let t=new Set,n=s(i=>{i?.trim()&&t.add(i.trim())},"addImport"),r=s(i=>{if(E.isImportDeclaration(i)||E.isExportDeclaration(i))i.moduleSpecifier&&E.isStringLiteralLike(i.moduleSpecifier)&&n(i.moduleSpecifier.text);else if(E.isImportEqualsDeclaration(i)){let o=i.moduleReference;E.isExternalModuleReference(o)&&o.expression&&E.isStringLiteralLike(o.expression)&&n(o.expression.text)}else E.isCallExpression(i)&&E.isIdentifier(i.expression)&&i.expression.text==="require"&&i.arguments.length===1&&E.isStringLiteralLike(i.arguments[0])&&n(i.arguments[0].text);E.forEachChild(i,r)},"visit");return r(e),Array.from(t).slice(0,12)}function ht(e,t,n,r,i,o,a,c,d,l,f){if(!o.trim())return;let u=kh(r,i),m=f?`${n.filePath}:${f}.${o}`:`${n.filePath}:${o}`,g={id:`${n.filePath}#${f?`${f}.`:""}${o}:${u}`,name:o,qualifiedName:m,kind:a,filePath:n.filePath,moduleId:n.moduleId,language:n.language,capabilityTier:n.capabilityTier,line:u,signature:xh(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,ze(n.capabilityTier)+d)};if(n.symbols.find(h=>h.id===g.id)||n.symbols.length>=st)return;n.symbols.push(g);let k;E.isFunctionDeclaration(i)||E.isMethodDeclaration(i)||E.isGetAccessorDeclaration(i)||E.isSetAccessorDeclaration(i)||E.isFunctionExpression(i)||E.isArrowFunction(i)?k=i.body??void 0:E.isVariableDeclaration(i)?k=i.initializer??void 0:(E.isClassDeclaration(i)||E.isClassExpression(i))&&(k=i),t.push({record:g,declaration:i,body:k}),l.set(bc(e,i),g)}function _h(e,t){return E.isPropertyAccessExpression(t)?e.getSymbolAtLocation(t.name)??e.getSymbolAtLocation(t):E.isElementAccessExpression(t)?e.getSymbolAtLocation(t.argumentExpression)??e.getSymbolAtLocation(t):e.getSymbolAtLocation(t)}async function _R(e,t,n,r,i){let o={allowJs:!0,checkJs:!1,target:E.ScriptTarget.Latest,module:E.ModuleKind.ESNext,moduleResolution:E.ModuleResolutionKind.NodeNext,jsx:E.JsxEmit.Preserve,skipLibCheck:!0,noEmit:!0,allowSyntheticDefaultImports:!0},a=t.map(m=>uo.join(e,m)),c=E.createProgram(a,o),d=c.getTypeChecker(),l=new Map,f=new Map,u=[];for(let m of t){let g=te(m);if(!$t(g))continue;let w=c.getSourceFile(uo.join(e,m));if(!w)continue;let k={filePath:m,moduleId:be(m,n).id,language:g,capabilityTier:de(g),importPaths:Rh(w),symbols:[]};l.set(m,k);for(let h of w.statements){if(E.isFunctionDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"function",Ot(h),.1,f);continue}if(E.isVariableStatement(h)){for(let y of h.declarationList.declarations){let P=lo(y.name);P&&y.initializer&&(E.isArrowFunction(y.initializer)||E.isFunctionExpression(y.initializer))&&ht(e,u,k,w,y,P,"function",Ot(y),.08,f)}continue}if(E.isClassDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"class",Ot(h),.1,f);for(let y of h.members)(E.isMethodDeclaration(y)||E.isGetAccessorDeclaration(y)||E.isSetAccessorDeclaration(y))&&lo(y.name)&&ht(e,u,k,w,y,lo(y.name),"method",!1,.05,f,h.name.text);continue}if(E.isInterfaceDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"interface",Ot(h),.09,f);continue}if(E.isTypeAliasDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"type",Ot(h),.09,f);continue}E.isEnumDeclaration(h)&&h.name&&ht(e,u,k,w,h,h.name.text,"enum",Ot(h),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let P=hr(y,m.record.filePath,r,n,i);P&&g.add(P)}let w=new Set,k=new Map,h=s(y=>{if(E.isCallExpression(y)||E.isNewExpression(y)){let P=Th(y.expression);P&&!Ee.has(P)&&w.add(P);let Q=_h(d,y.expression)?.declarations?.[0];if(Q){let x=f.get(bc(e,Q));x&&x.id!==m.record.id&&k.set(x.id,{symbolId:x.id,name:x.name,filePath:x.filePath,moduleId:x.moduleId,reason:co(m.record.moduleId,x.moduleId,g)})}}E.forEachChild(y,h)},"visit");h(m.body??m.declaration),m.record.calls=Array.from(w).slice(0,24),m.record.callTargets=Array.from(k.values()).slice(0,Se),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var Eh=p(()=>{"use strict";ct();or();wc();s(RR,"scriptKindFromFilePath");s(kh,"getNodeLine");s(bc,"getDeclarationKey");s(xh,"getSignatureSnippet");s(Sc,"hasModifier");s(Ot,"isExportedDeclaration");s(lo,"getPropertyNameText");s(Th,"getCallExpressionName");s(Rh,"collectTypeScriptImportPaths");s(ht,"registerTypeScriptSymbol");s(_h,"resolveTypeScriptCallSymbol");s(_R,"analyzeTypeScriptFiles")});import He from"path";function QR(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function ER(e){let t=new Map;for(let n of e)t.set(n.language,(t.get(n.language)??0)+1);return Array.from(t.entries()).map(([n,r])=>({language:n,capabilityTier:de(n),fileCount:r}))}function IR(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function $R(e,t){return e.map(n=>IR(n,t))}async function fo(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",o=t.preflight,a=o?.storageRoot??await Wi(r,i),c=e.inventory,d=c?null:await tr(r,n.source),l=o?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(v=>K(v)));if(l&&l.length>0)for(let v of l){let b=He.join(r,v);await ji(b)?f.add(v):f.delete(v)}let u=Array.from(f).sort((v,b)=>v.localeCompare(b)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k}=Tm(u,n.areas),h=u.filter(v=>Jt.has(He.extname(v).toLowerCase())),y=new Set(h),P=o?.dirtyPathsFingerprint??(l?rr(l):void 0),S=o?.dirtySourcePaths?o.dirtySourcePaths.filter(v=>y.has(v)):l?l.filter(v=>y.has(v)):[],Q=o?.dirtySourceStateMap??(S.length>0?await nn(r,S,m,n.areas,i):void 0),x=o?.dirtySourceFingerprint??(l?tn(Q?Array.from(Q.values()).sort((v,b)=>v.filePath.localeCompare(b.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Fi(n,u),workspaceSnapshot:o?.workspaceSnapshot??Di(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k,sourceFiles:h,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:P,dirtySourceFingerprint:x,dirtySourceStateMap:Q,moduleAliases:Ph(n.areas),buckets:Na(h)}}function Pc(e,t){return{...e,sourceStates:t,sourceFingerprint:tn(t)}}async function vc(e,t){let n=new Map(t.map(o=>[o,null])),r=Na(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:o}=await Promise.resolve().then(()=>(Eh(),Qh)),a=await o(e.workspaceRoot,r.typeScriptFiles,e.overview.areas,e.sourceFileSet,e.moduleAliases);for(let c of a)n.set(c.filePath,c)}if(r.pythonFiles.length>0){let o=await hh(e.workspaceRoot,r.pythonFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.goFiles.length>0){let o=await gh(e.workspaceRoot,r.goFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.rustFiles.length>0){let o=await yh(e.workspaceRoot,r.rustFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}let i=e.analysisProfile==="light"?[...r.typeScriptFiles,...r.fallbackFiles]:r.fallbackFiles;if(i.length>0){let o=await Promise.all(i.map(a=>bh(e.workspaceRoot,a,e.areaByFile.get(a)?.id??e.overview.areas[0].id)));for(let[a,c]of o.entries())n.set(i[a],c??null)}return n}function CR(e,t){return QR(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function po(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=CR(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let P=y.name.toLowerCase(),S=i.get(P)??[];S.push(y),i.set(P,S)}let o=r.map(y=>{let P=new Set;for(let x of y.importPaths){let v=hr(x,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);v&&P.add(v)}let S=y.calls.flatMap(x=>(i.get(x.toLowerCase())??[]).map(v=>({candidate:v,reason:co(y.moduleId,v.moduleId,P)}))).filter(({candidate:x})=>x.id!==y.id).sort((x,v)=>{if(x.reason!==v.reason){let b=["same-module","imported-module","name-match"];return b.indexOf(x.reason)-b.indexOf(v.reason)}return x.candidate.filePath.localeCompare(v.candidate.filePath)}),Q=new Map;for(let{candidate:x,reason:v}of S)if(Q.has(x.id)||Q.set(x.id,{symbolId:x.id,name:x.name,filePath:x.filePath,moduleId:x.moduleId,reason:v}),Q.size>=Se)break;return{...y,callTargets:Array.from(Q.values())}}),a=$R(o,e.analysisProfile),c=new Map;for(let y of e.overview.areas)c.set(y.id,{dependencies:new Set,dependents:new Set,languageCounts:new Map,sourceFileCount:0,symbolCount:0,entryFiles:[]});for(let y of n){let P=c.get(y.moduleId);if(!P)continue;let S=new Map(P.languageCounts);S.set(y.language,(S.get(y.language)??0)+1);let Q=new Set(P.dependencies),x=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?fe([...P.entryFiles,y.filePath],4):P.entryFiles;for(let v of y.importPaths){let b=hr(v,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);b&&b!==y.moduleId&&Q.add(b)}c.set(y.moduleId,{...P,sourceFileCount:P.sourceFileCount+1,symbolCount:P.symbolCount+y.symbols.length,languageCounts:S,dependencies:Q,entryFiles:x})}for(let[y,P]of c.entries())for(let S of P.dependencies){let Q=c.get(S);Q&&c.set(S,{...Q,dependents:new Set([...Q.dependents,y])})}let d=Array.from(c.entries()).map(([y,P])=>{let S=e.overview.areas.find(I=>I.id===y);if(!S)return null;let Q=Array.from(P.dependencies).sort((I,A)=>I.localeCompare(A)),x=Array.from(P.dependents).sort((I,A)=>I.localeCompare(A)),v=Array.from(P.languageCounts.entries()).map(([I,A])=>({language:I,capabilityTier:de(I),fileCount:A})).sort((I,A)=>A.fileCount-I.fileCount),b=a.filter(I=>I.moduleId===y);return{moduleId:S.id,label:S.label,kind:S.kind,root:S.root,fileCount:e.filesByAreaId.get(S.id)?.length??0,sourceFileCount:P.sourceFileCount,symbolCount:P.symbolCount,languages:v,topSymbols:b.sort((I,A)=>Number(A.exported)-Number(I.exported)||A.confidence-I.confidence).slice(0,6).map(I=>I.name),dependencies:Q,dependents:x,entryFiles:P.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:S.sampleFiles.slice(0,5),processIds:[],confidence:Sm(b,v)}}).filter(y=>y!==null).sort((y,P)=>P.symbolCount-y.symbolCount||y.moduleId.localeCompare(P.moduleId)),l=vh(d,a),f=new Map;for(let y of l){let P=f.get(y.moduleId)??[];P.push(y.id),f.set(y.moduleId,P)}let u=d.map(y=>({...y,processIds:f.get(y.moduleId)??[]})),m={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:ER(n),modules:u,symbols:a,processes:l},g={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:e.overviewFingerprint,workspaceSnapshot:e.workspaceSnapshot,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languageBreakdown:m.languages,sourceStates:e.sourceStates},w={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,_m(t.get(y)??null)]))},k=vm(e),h={schemaVersion:J,workspaceRoot:e.workspaceRoot,branch:e.workspaceSnapshot.branch,head:e.workspaceSnapshot.head,queryGeneratedAt:m.generatedAt,overviewFingerprint:e.overviewFingerprint,sourceFingerprint:e.sourceFingerprint,sourceFileCount:e.sourceFiles.length,dirtyPathsFingerprint:e.dirtyPathsFingerprint??rr(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??tn([]),dirtySourcePaths:k};return await at(He.join(e.storageRoot,um),u),await at(He.join(e.storageRoot,fm),a),await at(He.join(e.storageRoot,pm),l),await at(He.join(e.storageRoot,ot),m),await at(He.join(e.storageRoot,Mi),h),Pm(e)&&(await at(He.join(e.storageRoot,Ai),g),await at(He.join(e.storageRoot,Xi),w)),m}var Ih=p(()=>{"use strict";$i();yc();wc();or();ct();or();s(QR,"orderedSourceFilesForBuild");s(ER,"collectLanguageBreakdown");s(IR,"calibrateSymbolConfidenceForProfile");s($R,"calibrateSymbolsForProfile");s(fo,"prepareRepoIntelligenceBuildInputsFromSnapshot");s(Pc,"finalizeRepoIntelligenceBuildInputs");s(vc,"analyzeSourceFilesForBuild");s(CR,"collectOrderedAnalyses");s(po,"materializeRepoIntelligenceIndex")});import gt from"path";async function xc(e){let t=await Da(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=Pc(e,t),r=await vc(n,n.sourceFiles);return po(n,r)}async function Tc(e){return ae(gt.join(e,Ai),Om)}async function $h(e){return ae(gt.join(e,Xi),gm)}async function mo(e){return ae(gt.join(e,Mi),ym)}function Ch(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ah(e,t,n){return t.schemaVersion===J&&n.schemaVersion===J&&t.workspaceRoot===e.workspaceRoot&&n.workspaceRoot===e.workspaceRoot&&t.workspaceSnapshot.source===e.workspaceSnapshot.source&&t.sourceStates.length===t.sourceFileCount&&n.sourceFingerprint===t.sourceFingerprint}async function AR(e,t){let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function Xh(e,t){return Ni(e.workspaceSnapshot)&&Wa(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function Mh(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===J&&t.workspaceRoot===e.workspaceRoot&&t.head===e.workspaceSnapshot.head&&t.branch===e.workspaceSnapshot.branch&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length&&t.dirtyPathsFingerprint===e.dirtyPathsFingerprint&&t.dirtySourceFingerprint===e.dirtySourceFingerprint)}async function jh(e){if(!Ni(e.workspaceSnapshot))return null;let t=await Tc(e.storageRoot);if(!t||t.schemaVersion!==J||t.workspaceRoot!==e.workspaceRoot||!Wa(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function Wh(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await mo(e.storageRoot);if(!t||t.schemaVersion!==J||t.workspaceRoot!==e.workspaceRoot||t.head!==e.workspaceSnapshot.head||t.branch!==e.workspaceSnapshot.branch||t.overviewFingerprint!==e.overviewFingerprint||t.dirtyPathsFingerprint!==e.dirtyPathsFingerprint||t.dirtySourceFingerprint!==e.dirtySourceFingerprint)return null;let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function ho(e){return new Map(e.map(t=>[t.filePath,t]))}function Rc(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:Pc(e,n)}function _c(e,t){let n=new Set;for(let r of e){let i=t.get(r.filePath);if(!i){n.add(r.filePath);continue}if(i.analyzerVersion!==r.analyzerVersion)return null;(i.fileFingerprint!==r.fileFingerprint||i.language!==r.language||i.moduleId!==r.moduleId)&&n.add(r.filePath)}return n}async function Qc(e,t,n,r){if(!e.sourceStates)return null;let i=ho(e.sourceStates),o=e.analysisProfile==="full"&&Array.from(r).some(d=>{let l=i.get(d);return l?$t(l.language):!1}),a=new Set;for(let d of e.sourceStates){if(o&&$t(d.language)){a.add(d.filePath);continue}r.has(d.filePath)&&a.add(d.filePath)}let c=new Map;for(let d of e.sourceStates)if(!a.has(d.filePath)){if(!Ch(n.analyses,d.filePath))return null;c.set(d.filePath,Qm(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await vc(e,e.sourceFiles.filter(l=>a.has(l)));for(let l of a)c.set(l,d.get(l)??null)}for(let d of e.sourceStates){if(!c.has(d.filePath))return null;let l=c.get(d.filePath)??null;if(l&&(l.filePath!==d.filePath||l.moduleId!==d.moduleId||l.language!==d.language)||t.get(d.filePath)?.analyzerVersion!==void 0&&t.get(d.filePath)?.analyzerVersion!==d.analyzerVersion)return null}return c}async function Fh(e,t,n){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0||t.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.head!==t.workspaceSnapshot.head||e.workspaceSnapshot.branch!==t.workspaceSnapshot.branch)return null;let r=new Set(e.dirtyPaths??[]),i=await mo(e.storageRoot),o=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=ho(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let w=a.get(g);if(!w){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||o.has(g)){d.add(g);continue}c.set(g,w)}if(d.size>0){let g=new Set;for(let w of d){let k=l.get(w);if(k){c.set(w,k);continue}g.add(w)}if(g.size>0){let w=await nn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[k,h]of w.entries())c.set(k,h)}}let f=Rc(e,c);if(!f?.sourceStates)return null;let u=_c(f.sourceStates,a);if(!u)return null;let m=await Qc(f,a,n,u);return m?po(f,m):null}async function Dh(e,t,n){let r=await nn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=Rc(e,r);if(!i?.sourceStates)return null;let o=ho(t.sourceStates),a=_c(i.sourceStates,o);if(!a)return null;if(a.size===0)return AR(i,t);let c=await Qc(i,o,n,a);return c?po(i,c):null}async function Nh(e,t){if(!t)return null;let n=await $h(e.storageRoot);if(!n||!Ah(e,t,n))return null;let r=await Fh(e,t,n);return r||Dh(e,t,n)}async function kc(e,t=!1){let n=t?null:await Tc(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await mo(e.storageRoot):null;if(n&&Xh(e,n)){let i=await ae(gt.join(e.storageRoot,ot),en);if(i?.schemaVersion===J&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(Mh(e,r)){let i=await ae(gt.join(e.storageRoot,ot),en);if(i?.schemaVersion===J&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await Nh(e,n);if(i)return i}return xc(e)}async function Or(e,t=!1,n="full"){if(t){let c=await fo(e,{profile:n});return kc(c,!0)}let r=await Rm(e,n),i=await jh(r);if(i)return i;let o=await Wh(r);if(o)return o;let a=await fo(e,{preflight:r});return kc(a,!1)}async function XR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await fo(n,{profile:t.profile??"full"});return xc(r)}async function gr(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh});return Or(n,t.refresh===!0,t.profile??"full")}var Ec=p(()=>{"use strict";$i();or();Ih();ct();s(xc,"buildRepoIntelligenceIndexFromInputs");s(Tc,"readRepoIntelligenceManifest");s($h,"readFileAnalysisIndex");s(mo,"readDirtySourceHint");s(Ch,"hasOwnAnalysisEntry");s(Ah,"hasCompatibleIncrementalCache");s(AR,"readCompatibleCachedQueryIndex");s(Xh,"canDirectReuseCleanCachedQueryIndex");s(Mh,"canDirectReuseDirtyCachedQueryIndex");s(jh,"tryDirectReuseCleanCachedQueryIndexFromPreflight");s(Wh,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");s(ho,"mapSourceStatesByFile");s(Rc,"buildCompleteInputsFromSourceStates");s(_c,"classifyChangedOrNewSourceFiles");s(Qc,"buildIncrementalAnalysisEntries");s(Fh,"tryGitDirtyIncrementalRepoIntelligenceBuild");s(Dh,"tryStatBasedIncrementalRepoIntelligenceBuild");s(Nh,"tryIncrementalRepoIntelligenceBuild");s(kc,"getRepoIntelligenceIndexFromInputs");s(Or,"getRepoIntelligenceIndexFromSnapshot");s(XR,"buildRepoIntelligenceIndex");s(gr,"getRepoIntelligenceIndex")});import MR from"path";function Lh(e,t,n,r){return e>=20||t>=4e3||n>=5||r>=5?"systemic":e>=8||t>=1200||n>=3||r>=3?"complex":e>=3||t>=250||n>=2||r>=2?"moderate":"simple"}function qh(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function ln(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function yr(e,t,n){if(n){let i=K(n),o=e.modules.find(a=>i===a.root||i.startsWith(`${a.root}/`)||a.sampleFiles.includes(i));if(o)return o}let r=t?.trim().toLowerCase();return r?e.modules.slice().sort((i,o)=>o.symbolCount-i.symbolCount).find(i=>i.moduleId.toLowerCase()===r||i.label.toLowerCase()===r||i.root.toLowerCase()===r||MR.posix.basename(i.root).toLowerCase()===r)??e.modules.find(i=>i.moduleId.toLowerCase().includes(r)||i.label.toLowerCase().includes(r)||i.root.toLowerCase().includes(r))??null:e.modules.find(i=>i.moduleId!==".")??e.modules[0]??null}function zh(e,t,n){let r=t.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.symbols.filter(o=>o.name.toLowerCase()===r||o.qualifiedName.toLowerCase()===r||o.filePath.toLowerCase()===r).sort((o,a)=>{let c=i&&(o.moduleId.toLowerCase().includes(i)||o.filePath.toLowerCase().includes(i))?1:0,d=i&&(a.moduleId.toLowerCase().includes(i)||a.filePath.toLowerCase().includes(i))?1:0;return d!==c?d-c:Number(a.exported)-Number(o.exported)||a.confidence-o.confidence})}function Uh(e,t,n){let r=t?.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.processes.filter(o=>{let a=!r||o.label.toLowerCase().includes(r)||o.entryFile.toLowerCase().includes(r)||(o.entrySymbol?.toLowerCase().includes(r)??!1),c=!i||o.moduleId.toLowerCase().includes(i);return a&&c}).sort((o,a)=>a.confidence-o.confidence||o.label.localeCompare(a.label))}function Oo(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,Se)}function Ic(e,t){let n=yr(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:ln(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function $c(e,t){let n=zh(e,t.symbol,t.module);if(n.length===0)throw new Error(`No symbol matched "${t.symbol}".`);let[r,...i]=n;return{symbol:r,alternatives:i.slice(0,4),callers:Oo(e,r.id),freshness:ln(e),confidence:r.confidence}}function Vh(e,t){let n=Uh(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let o=yr(e,t.module,t.targetPath);if(o?.processIds[0]){let a=e.processes.find(c=>c.id===o.processIds[0]);if(a)return{process:a,alternatives:[],freshness:ln(e),confidence:a.confidence}}}let[r,...i]=n;if(!r)throw new Error(`No process matched "${t.entry??t.module??t.targetPath??"request"}".`);return{process:r,alternatives:i.slice(0,4),freshness:ln(e),confidence:r.confidence}}function Cc(e,t,n){let r=null,i=[],o=[],a=[],c=.65;if(t.symbol){let l=$c(e,{symbol:t.symbol,module:t.module}),f=fe([l.symbol.moduleId,...l.symbol.callTargets.map(u=>u.moduleId),...l.callers.map(u=>u.moduleId)]);r={kind:"symbol",label:l.symbol.name,moduleId:l.symbol.moduleId,filePath:l.symbol.filePath},i=e.modules.filter(u=>f.includes(u.moduleId)),o=fe([l.symbol.id,...l.symbol.callTargets.map(u=>u.symbolId),...l.callers.map(u=>u.id)]).map(u=>e.symbols.find(m=>m.id===u)).filter(u=>u!==void 0),a=l.callers,c=l.confidence}else if(t.path){let l=K(t.path),f=yr(e,void 0,l),u=e.symbols.filter(m=>m.filePath===l);r={kind:"path",label:l,moduleId:f?.moduleId,filePath:l},i=f?[f,...e.modules.filter(m=>f.dependents.includes(m.moduleId))]:[],o=u,a=u.flatMap(m=>Oo(e,m.id)).slice(0,Se),c=f?.confidence??.62}else{let l=yr(e,t.module,t.targetPath);if(!l)throw new Error("impact_estimate requires one of symbol, path, or module.");r={kind:"module",label:l.label,moduleId:l.moduleId},i=[l,...e.modules.filter(f=>l.dependents.includes(f.moduleId))],o=e.symbols.filter(f=>f.moduleId===l.moduleId).slice(0,Se),a=o.flatMap(f=>Oo(e,f.id)).slice(0,Se),c=l.confidence}let d=n?n.files.filter(l=>i.some(f=>l.areaId===f.moduleId)||o.some(f=>l.path===f.filePath)).length:0;return{target:r,summary:d>0?`${r.label} overlaps with ${d} currently changed file(s); validate blast radius before editing.`:`${r.label} primarily affects ${fe(i.map(l=>l.label),4).join(", ")||"its local module"} and ${o.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:o.slice(0,Se),callers:a.slice(0,Se),changedScope:n,freshness:ln(e),confidence:c}}async function jR(e,t={}){let n=await gr(e,t);return Ic(n,t)}async function WR(e,t){let n=await gr(e,t);return $c(n,t)}async function FR(e,t){let n=await gr(e,t);return Vh(n,t)}async function DR(e,t){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await Or(n,t.refresh===!0,t.profile??"full"),i;try{i=await Ei(n,{scope:"all"})}catch(o){we("impact_estimate could not load changed scope.",o),i=void 0}return Cc(r,t,i)}async function NR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=t.targetPath??(e.executionCwd?".":void 0),[i,o]=await Promise.all([Or(n,t.refresh===!0,t.profile??"full"),Ei(n,{scope:"all"}).catch(b=>(we("Routing signals could not load changed scope.",b),null))]),a=null,c=null;try{a=Ic(i,{targetPath:r})}catch(b){we("Routing signals could not resolve module context.",b)}try{c=Cc(i,{targetPath:r},o??void 0)}catch(b){we("Routing signals could not resolve impact estimate.",b)}let d=o?.areasTouched.map(b=>b.areaId).slice(0,8)??[],l=o?.totalChangedFiles??0,f=o?.changedLineCount??0,u=o?.addedLineCount??0,m=o?.deletedLineCount??0,g=o?.areasTouched.length??0,w=c?.impactedModules.length??(a?1:0),k=Lh(l,f,g,w),h=qh(l,f,g),y=a?.confidence,P=c?.confidence,S=(y??1)<.72||(P??1)<.72,Q=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",x=k==="complex"||k==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,v=S||(o?.riskHints.length??0)>0||(c?.changedScope?.riskHints.length??0)>0;return{workspaceRoot:i.workspaceRoot,changedFileCount:l,changedLineCount:f,addedLineCount:u,deletedLineCount:m,touchedModuleCount:g,changedModules:d,crossModule:g>1||w>1,reviewScale:h,riskHints:fe([...S?["Light repo routing uses heuristic static analysis; validate low-confidence edges before editing."]:[],...o?.riskHints??[],...c?.changedScope?.riskHints??[]],4),activeModuleId:a?.module.moduleId,activeModuleConfidence:y,activeImpactConfidence:P,impactedModuleCount:w,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:Q,suggestedComplexity:k,plannerBias:x,investigationBias:v,lowConfidence:S}}var Kh=p(()=>{"use strict";$i();Ec();ct();s(Lh,"deriveRoutingComplexity");s(qh,"deriveReviewScale");s(ln,"buildFreshnessLabel");s(yr,"findModuleMatch");s(zh,"findSymbolMatches");s(Uh,"findProcessMatches");s(Oo,"collectCallers");s(Ic,"resolveModuleContextFromIndex");s($c,"resolveSymbolContextFromIndex");s(Vh,"resolveProcessContextFromIndex");s(Cc,"resolveImpactEstimateFromIndex");s(jR,"getModuleContext");s(WR,"getSymbolContext");s(FR,"getProcessContext");s(DR,"getImpactEstimate");s(NR,"getRepoRoutingSignals")});var Yh=p(()=>{"use strict";Ec();Kh()});function Ac(e,...t){let n=e.trim().toLowerCase(),r=0;for(let i of t){if(!i)continue;let o=i.toLowerCase();if(o===n){r=Math.max(r,1);continue}if(o.startsWith(n)){r=Math.max(r,.92);continue}if(o.includes(n)){r=Math.max(r,.78);continue}let a=n.split(/\s+/).filter(Boolean);a.length>0&&a.every(c=>o.includes(c))&&(r=Math.max(r,.66))}return r}function LR(e,t){return{item:{title:`${e.name} (${e.kind})`,locator:`${e.filePath}:${e.line}`,snippet:e.signature,score:t,metadata:{kind:"symbol",moduleId:e.moduleId,exported:e.exported,confidence:e.confidence}},artifact:{kind:"symbol",label:e.qualifiedName,value:`${e.filePath}:${e.line}`}}}function qR(e,t){return{item:{title:e.label,locator:e.root,snippet:`Module ${e.moduleId} with ${e.symbolCount} symbols and ${e.sourceFileCount} source files.`,score:t,metadata:{kind:"module",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"module",label:e.label,value:e.root}}}function zR(e,t){return{item:{title:e.label,locator:e.entryFile,snippet:e.summary,score:t,metadata:{kind:"process",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"process",label:e.label,value:e.entryFile}}}function UR(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Ac(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...LR(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Ac(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...qR(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Ac(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...zR(a,c)})}i.sort((a,c)=>c.score!==a.score?c.score-a.score:a.item.title.localeCompare(c.item.title));let o=i.slice(0,r);return{items:o.map(a=>a.item),artifacts:o.map(a=>a.artifact),generatedAt:e.generatedAt,sourceFileCount:e.sourceFileCount,capabilityEngine:e.capability?.engine}}var Gh=p(()=>{"use strict";s(Ac,"scoreCandidate");s(LR,"buildSymbolItem");s(qR,"buildModuleItem");s(zR,"buildProcessItem");s(UR,"collectSemanticLookupItems")});function go(e){return e>=.8?"high":e>=.65?"medium":"low"}function yo(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function VR(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Files: ${t.fileCount} total | ${t.sourceFileCount} source | ${t.symbolCount} symbols`,`Languages: ${t.languages.map(n=>`${n.language}/${n.capabilityTier}:${n.fileCount}`).join(" | ")||"none"}`,`Dependencies: ${t.dependencies.join(" | ")||"none"}`,`Dependents: ${t.dependents.join(" | ")||"none"}`,`Entry files: ${t.entryFiles.join(" | ")||"none"}`,`Top symbols: ${t.topSymbols.join(" | ")||"none"}`,`Tests: ${t.keyTests.join(" | ")||"none"}`,`Docs: ${t.keyDocs.join(" | ")||"none"}`,`Processes: ${t.processIds.join(" | ")||"none"}`,`Evidence: ${e.evidence.join(" | ")||"none"}`,...yo(e.capability)].join(`
805
- `)}function KR(e){let{symbol:t}=e;return[`Symbol context for ${t.name}`,`Definition: ${t.filePath}:${t.line}`,`Module: ${t.moduleId} | Kind: ${t.kind} | Exported: ${t.exported?"yes":"no"}`,`Language: ${t.language}/${t.capabilityTier}`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Signature: ${t.signature}`,`Possible callees: ${t.callTargets.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Imports: ${t.importPaths.join(" | ")||"none"}`,e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>`${n.name} @ ${n.filePath}:${n.line}`).join(" | ")}`:"Alternatives: none",...yo(e.capability)].join(`
806
- `)}function YR(e){let{process:t}=e;return[`Process context for ${t.label}`,`Module: ${t.moduleId}`,`Entry: ${t.entryFile}${t.entrySymbol?` -> ${t.entrySymbol}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${t.summary}`,"Steps:",...t.steps.map(n=>`- ${n.kind} ${n.symbolName} @ ${n.filePath}${n.line?`:${n.line}`:""} | ${n.note}`),e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>n.label).join(" | ")}`:"Alternatives: none",...yo(e.capability)].join(`
807
- `)}function GR(e){return[`Impact estimate for ${e.target.label}`,`Target: ${e.target.kind}${e.target.moduleId?` | module=${e.target.moduleId}`:""}${e.target.filePath?` | file=${e.target.filePath}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${go(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${e.summary}`,`Impacted modules: ${e.impactedModules.map(t=>`${t.label}(${t.moduleId})`).join(" | ")||"none"}`,`Impacted symbols: ${e.impactedSymbols.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,e.changedScope?`Changed-scope overlap: ${e.changedScope.files.filter(t=>e.impactedModules.some(n=>n.moduleId===t.areaId)||e.impactedSymbols.some(n=>n.filePath===t.path)).length} file(s)`:"Changed-scope overlap: unavailable",...yo(e.capability)].join(`
808
- `)}var Bh=p(()=>{"use strict";s(go,"confidenceLabel");s(yo,"capabilityLines");s(VR,"renderModuleContext");s(KR,"renderSymbolContext");s(YR,"renderProcessContext");s(GR,"renderImpactEstimate")});function BR(e){let t=0,n=new Map,r=new Map,i=new Set,o=[],a=[],c=s(d=>{n.set(d,t),r.set(d,t),t++,o.push(d),i.add(d);for(let l of e.get(d)??[])n.has(l)?i.has(l)&&r.set(d,Math.min(r.get(d)??0,n.get(l)??0)):(c(l),r.set(d,Math.min(r.get(d)??0,r.get(l)??0)));if((r.get(d)??0)===(n.get(d)??0)){let l=[],f="";do f=o.pop()??"",i.delete(f),l.push(f);while(f!==d&&o.length>=0&&f!=="");a.push(l)}},"strongconnect");for(let d of e.keys())n.has(d)||c(d);return a}function ZR(e){return e>=4?"high":e===3?"medium":"low"}function HR(e){let t=e.modules??[],n=new Set(t.map(d=>d.moduleId)),r=new Map,i=0;for(let d of t){let l=(d.dependencies??[]).filter(f=>n.has(f)&&f!==d.moduleId);r.set(d.moduleId,l),i+=l.length}let o=BR(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:ZR(d.length)}}).sort((d,l)=>l.hopCount-d.hopCount),a=o.filter(d=>d.severity==="high").length,c=o.length===0?"No circular dependencies found.":`${o.length} cycle(s) found, ${a} high-severity.`;return{cycles:o,scanned:{modules:t.length,edges:i},summary:c}}function JR(e){let t=[e.summary,`Scanned ${e.scanned.modules} modules, ${e.scanned.edges} edges.`];for(let n of e.cycles)t.push(`- [${n.severity}] ${n.hopCount}-hop: ${n.chain.join(" -> ")}`);return t.join(`
809
- `)}var Zh=p(()=>{"use strict";s(BR,"tarjanScc");s(ZR,"severityFor");s(HR,"findCyclicDependencies");s(JR,"renderCycleAnalysis")});var Hh={};Nc(Hh,{buildCompleteInputsFromSourceStates:()=>Rc,buildFreshnessLabel:()=>ln,buildIncrementalAnalysisEntries:()=>Qc,buildRepoIntelligenceIndex:()=>XR,buildRepoIntelligenceIndexFromInputs:()=>xc,canDirectReuseCleanCachedQueryIndex:()=>Xh,canDirectReuseDirtyCachedQueryIndex:()=>Mh,classifyChangedOrNewSourceFiles:()=>_c,collectCallers:()=>Oo,collectSemanticLookupItems:()=>UR,deriveReviewScale:()=>qh,deriveRoutingComplexity:()=>Lh,findCyclicDependencies:()=>HR,findModuleMatch:()=>yr,findProcessMatches:()=>Uh,findSymbolMatches:()=>zh,getImpactEstimate:()=>DR,getModuleContext:()=>jR,getProcessContext:()=>FR,getRepoIntelligenceIndex:()=>gr,getRepoIntelligenceIndexFromInputs:()=>kc,getRepoIntelligenceIndexFromSnapshot:()=>Or,getRepoRoutingSignals:()=>NR,getSymbolContext:()=>WR,hasCompatibleIncrementalCache:()=>Ah,hasOwnAnalysisEntry:()=>Ch,mapSourceStatesByFile:()=>ho,readDirtySourceHint:()=>mo,readFileAnalysisIndex:()=>$h,readRepoIntelligenceManifest:()=>Tc,renderCycleAnalysis:()=>JR,renderImpactEstimate:()=>GR,renderModuleContext:()=>VR,renderProcessContext:()=>YR,renderSymbolContext:()=>KR,resolveImpactEstimateFromIndex:()=>Cc,resolveModuleContextFromIndex:()=>Ic,resolveProcessContextFromIndex:()=>Vh,resolveSymbolContextFromIndex:()=>$c,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>jh,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>Wh,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Fh,tryIncrementalRepoIntelligenceBuild:()=>Nh,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Dh});var Jh=p(()=>{"use strict";Yh();Gh();Bh();Zh()});import{parentPort as jc}from"node:worker_threads";if(!jc)throw new Error("semantic-worker must run inside a worker thread.");function Xc(e){return typeof e=="object"&&e!==null}s(Xc,"isRecord");function e_(e){return Xc(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&Xc(e.context)&&Xc(e.options)}s(e_,"isRequest");function t_(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}s(t_,"serializeError");async function n_(e){let t=await r_();switch(e.kind){case"buildIndex":return t.buildRepoIntelligenceIndex(e.context,e.options);case"getIndex":return t.getRepoIntelligenceIndex(e.context,e.options);case"module":return t.getModuleContext(e.context,e.options);case"symbol":return t.getSymbolContext(e.context,e.options);case"process":return t.getProcessContext(e.context,e.options);case"impact":return t.getImpactEstimate(e.context,e.options);case"routing":return t.getRepoRoutingSignals(e.context,e.options);case"semanticLookup":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.collectSemanticLookupItems(n,e.options.query,e.options.lookupKind,e.options.limit)}case"cyclicDeps":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.findCyclicDependencies(n)}}}s(n_,"runRequest");function eO(e){jc?.postMessage(e)}s(eO,"post");var tO=Promise.resolve(),Mc;function r_(){return Mc||(Mc=import.meta.url.endsWith(".ts")?i_():Promise.resolve().then(()=>(Jh(),Hh))),Mc}s(r_,"loadSemanticIndex");async function i_(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}s(i_,"loadDevSemanticIndex");jc.on("message",e=>{tO=tO.then(async()=>{if(e_(e))try{eO({id:e.id,ok:!0,result:await n_(e)})}catch(n){eO({id:e.id,ok:!1,error:t_(n)})}}).catch(()=>{})});
804
+ `)}function TR(e){let t=new Set,n=[/\b([A-Za-z_][A-Za-z0-9_]*)\s*\(/g,/\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/g];for(let r of n){let i=null;for(;(i=r.exec(e))!==null;){let o=i[1];if(!(!o||Ee.has(o))&&(t.add(o),t.size>=24))break}}return Array.from(t)}function re(e,t,n){let r=`${n.line}:${n.kind}:${n.name}`;t.has(r)||(t.add(r),e.push(n))}function RR(e,t){let n=[],r=new Set,i=[],o=[],a=[],c=0;for(let[d,l]of e.entries()){let f=l.trim();if(!f)continue;let u=null;if(t==="typescript"||t==="javascript"){if(u=/^(export\s+)?(?:async\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*\(/.exec(f),u){re(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08});continue}if(u=/^(export\s+)?(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*(?:async\s*)?(?:\([^=]*\)|[A-Za-z_$][A-Za-z0-9_$]*)\s*=>/.exec(f),u){re(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.06});continue}if(u=/^(export\s+)?class\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?interface\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?type\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=/.exec(f)??/^(export\s+)?enum\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f),u){let m=f.includes("interface")?"interface":f.includes("type ")?"type":f.includes("enum ")?"enum":"class";re(n,r,{name:u[2],kind:m,line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08})}continue}if(t==="python"){if(u=/^def\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}u=/^class\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&re(n,r,{name:u[1],kind:"class",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}if(t==="go"){if(u=/^func\s+\(([^)]+)\)\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:hh(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){re(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}u=/^type\s+([A-Za-z_][A-Za-z0-9_]*)\s+(?:struct|interface)/.exec(f),u&&re(n,r,{name:u[1],kind:f.includes("interface")?"interface":"struct",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}if(t==="rust"){let m=a[a.length-1];if(u=/^impl(?:<[^>]+>)?\s+(?:[A-Za-z0-9_:<&>\[\]]+\s+for\s+)?([A-Za-z_][A-Za-z0-9_:<>]*)/.exec(f),u){let g=yc(u[1]);a.push({name:g,depth:c+ke(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(re(n,r,{name:u[1],kind:m?.name?"method":"function",line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:m?.name?.07:.06,qualifier:m?.name}),c+=ke(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}for(u=/^(?:pub\s+)?(struct|enum|trait)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&re(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=ke(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}if(t==="java"){if(u=/^(?:public\s+)?(class|interface|enum)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(re(n,r,{name:u[2],kind:u[1]==="interface"?"interface":u[1]==="enum"?"enum":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.05}),i.push({name:u[2],depth:c+ke(l)}),c+=ke(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(u=/^(?:public|protected|private|static|final|synchronized|abstract|\s)+[\w<>\[\], ?]+\s+([A-Za-z_][A-Za-z0-9_]*)\s*\([^;]*\)\s*\{?$/.exec(f),u&&!Ee.has(u[1])){let m=i[i.length-1]?.name;re(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=ke(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(t==="cpp"){if(u=/^(class|struct|enum)(?:\s+(?:class|struct))?\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(re(n,r,{name:u[2],kind:u[1]==="enum"?"enum":u[1]==="struct"?"struct":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.03}),u[1]!=="enum"&&o.push({name:u[2],depth:c+ke(l)}),c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)::([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ee.has(u[2])){for(re(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ee.has(u[1])){let m=o[o.length-1]?.name;re(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=ke(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop()}}return n.slice(0,st)}async function Ph(e,t,n){let r=mt.join(e,t);if((await Sh.stat(r)).size>Ht)return null;let o=await Sh.readFile(r,"utf8"),a=o.split(/\r?\n/),c=te(t),d=de(c),l=or(o,c),f=RR(a,c),u=ze(d),m=f.map((g,w,k)=>{let h=xR(a,c,g,k,w),y=g.calls??TR(h);return{id:`${t}#${g.qualifier?`${g.qualifier}.`:""}${g.name}:${g.line}`,name:g.name,qualifiedName:`${t}:${g.qualifier?`${g.qualifier}.`:""}${g.name}`,kind:g.kind,filePath:t,moduleId:n,language:c,capabilityTier:d,line:g.line,signature:g.signature,exported:g.exported,calls:y,callTargets:[],importPaths:l,confidence:Math.min(.97,u+g.confidenceBoost)}});return{filePath:t,moduleId:n,language:c,capabilityTier:d,importPaths:l,symbols:m}}function vh(e){let t=new Map;for(let n of e)t.set(n.id.toLowerCase(),n.id),t.set(n.label.toLowerCase(),n.id),t.set(mt.posix.basename(n.root).toLowerCase(),n.id);return t}function _R(e,t,n){if(!e.startsWith("."))return null;let r=mt.posix.dirname(t),i;if(e.includes("/"))i=K(mt.posix.join(r,e));else{let a=e.match(/^\.+/)?.[0]?.length??0,c=e.slice(a).replace(/\./g,"/"),d=r;for(let l=1;l<a;l+=1)d=mt.posix.dirname(d);i=K(mt.posix.join(d,c))}let o=[i];for(let a of Jt)o.push(`${i}${a}`),o.push(`${i}/index${a}`);for(let a of o)if(n.has(a))return a;return null}function Or(e,t,n,r,i){let o=_R(e,t,n);if(o)return be(o,r).id;let a=e.toLowerCase();for(let[c,d]of i.entries())if(a===c||a.startsWith(`${c}/`)||a.endsWith(`/${c}`))return d;return null}function lo(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function kh(e,t){let n=new Map(t.map(o=>[o.id,o])),r=new Map;for(let o of t){let a=r.get(o.moduleId)??[];a.push(o),r.set(o.moduleId,a)}let i=[];for(let o of e){let a=r.get(o.moduleId)??[],c=o.entryFiles.length>0?o.entryFiles:o.sampleFiles;for(let d of c.slice(0,2)){let l=a.find(h=>h.filePath===d&&h.exported)??a.find(h=>h.filePath===d)??a[0];if(!l)continue;let f=[{kind:"entry",symbolName:l.name,symbolId:l.id,filePath:l.filePath,line:l.line,note:`Entry symbol ${l.name} in ${l.filePath}`}];for(let h of l.importPaths.slice(0,3))f.push({kind:"imports",symbolName:h,filePath:l.filePath,note:`Imports ${h}`});let u=l.callTargets.slice(0,3);for(let h of u){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Calls ${h.name} (${h.reason})`})}let m=u.map(h=>n.get(h.symbolId)).filter(h=>h!==void 0).flatMap(h=>h.callTargets.slice(0,2)).slice(0,2);for(let h of m){let y=n.get(h.symbolId);f.push({kind:"calls",symbolName:h.name,symbolId:h.symbolId,filePath:h.filePath,line:y?.line,note:`Then reaches ${h.name} (${h.reason})`})}let g=f.slice(0,hm),w=fe(g.map(h=>n.get(h.symbolId??"")?.moduleId).filter(h=>typeof h=="string"),4),k=`${o.moduleId}::${mt.posix.basename(d)}`;i.push({id:k,label:`${o.label} entry via ${mt.posix.basename(d)}`,moduleId:o.moduleId,entryFile:d,entrySymbol:l.name,summary:w.length>0?`${l.name} fans into ${fe(u.map(h=>h.name),4).join(", ")||"local work"} and touches modules ${w.join(", ")}.`:`${l.name} starts the main path for ${o.label}.`,steps:g,confidence:Math.min(.95,l.confidence-.02+u.length*.03)})}}return i}var Sc=p(()=>{"use strict";ct();wc();s(bh,"countOccurrences");s(ke,"countBraceDelta");s(xR,"extractSymbolBody");s(TR,"extractCallNames");s(re,"pushSymbol");s(RR,"extractSymbolsFromLines");s(Ph,"analyzeSourceFile");s(vh,"buildModuleAliases");s(_R,"resolveRelativeImport");s(Or,"resolveImportToModule");s(lo,"rankReferenceReason");s(kh,"buildProcessCapsules")});var Eh={};Lc(Eh,{analyzeTypeScriptFiles:()=>ER,collectTypeScriptImportPaths:()=>_h,getCallExpressionName:()=>Rh,getDeclarationKey:()=>Pc,getNodeLine:()=>xh,getPropertyNameText:()=>uo,getSignatureSnippet:()=>Th,hasModifier:()=>bc,isExportedDeclaration:()=>Ot,registerTypeScriptSymbol:()=>ht,resolveTypeScriptCallSymbol:()=>Qh,scriptKindFromFilePath:()=>QR});import fo from"path";import E from"typescript";function QR(e){switch(fo.extname(e).toLowerCase()){case".ts":return E.ScriptKind.TS;case".tsx":return E.ScriptKind.TSX;case".jsx":return E.ScriptKind.JSX;default:return E.ScriptKind.JS}}function xh(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function Pc(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${K(fo.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function Th(e,t){let n=t.getStart(e),r=e.text.indexOf(`
805
+ `,n);return e.text.slice(n,r===-1?void 0:r).trim()||t.getText(e).split(/\r?\n/,1)[0]?.trim()||"<unknown>"}function bc(e,t){return E.canHaveModifiers(e)?!!E.getModifiers(e)?.some(n=>n.kind===t):!1}function Ot(e){return bc(e,E.SyntaxKind.ExportKeyword)||bc(e,E.SyntaxKind.DefaultKeyword)?!0:E.isVariableDeclaration(e)&&E.isVariableDeclarationList(e.parent)&&E.isVariableStatement(e.parent.parent)?Ot(e.parent.parent):!1}function uo(e){return e&&(E.isIdentifier(e)||E.isPrivateIdentifier(e)||E.isStringLiteral(e)||E.isNumericLiteral(e))?e.text:null}function Rh(e){return E.isIdentifier(e)?e.text:E.isPropertyAccessExpression(e)?e.name.text:E.isElementAccessExpression(e)&&E.isIdentifier(e.argumentExpression)?e.argumentExpression.text:null}function _h(e){let t=new Set,n=s(i=>{i?.trim()&&t.add(i.trim())},"addImport"),r=s(i=>{if(E.isImportDeclaration(i)||E.isExportDeclaration(i))i.moduleSpecifier&&E.isStringLiteralLike(i.moduleSpecifier)&&n(i.moduleSpecifier.text);else if(E.isImportEqualsDeclaration(i)){let o=i.moduleReference;E.isExternalModuleReference(o)&&o.expression&&E.isStringLiteralLike(o.expression)&&n(o.expression.text)}else E.isCallExpression(i)&&E.isIdentifier(i.expression)&&i.expression.text==="require"&&i.arguments.length===1&&E.isStringLiteralLike(i.arguments[0])&&n(i.arguments[0].text);E.forEachChild(i,r)},"visit");return r(e),Array.from(t).slice(0,12)}function ht(e,t,n,r,i,o,a,c,d,l,f){if(!o.trim())return;let u=xh(r,i),m=f?`${n.filePath}:${f}.${o}`:`${n.filePath}:${o}`,g={id:`${n.filePath}#${f?`${f}.`:""}${o}:${u}`,name:o,qualifiedName:m,kind:a,filePath:n.filePath,moduleId:n.moduleId,language:n.language,capabilityTier:n.capabilityTier,line:u,signature:Th(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,ze(n.capabilityTier)+d)};if(n.symbols.find(h=>h.id===g.id)||n.symbols.length>=st)return;n.symbols.push(g);let k;E.isFunctionDeclaration(i)||E.isMethodDeclaration(i)||E.isGetAccessorDeclaration(i)||E.isSetAccessorDeclaration(i)||E.isFunctionExpression(i)||E.isArrowFunction(i)?k=i.body??void 0:E.isVariableDeclaration(i)?k=i.initializer??void 0:(E.isClassDeclaration(i)||E.isClassExpression(i))&&(k=i),t.push({record:g,declaration:i,body:k}),l.set(Pc(e,i),g)}function Qh(e,t){return E.isPropertyAccessExpression(t)?e.getSymbolAtLocation(t.name)??e.getSymbolAtLocation(t):E.isElementAccessExpression(t)?e.getSymbolAtLocation(t.argumentExpression)??e.getSymbolAtLocation(t):e.getSymbolAtLocation(t)}async function ER(e,t,n,r,i){let o={allowJs:!0,checkJs:!1,target:E.ScriptTarget.Latest,module:E.ModuleKind.ESNext,moduleResolution:E.ModuleResolutionKind.NodeNext,jsx:E.JsxEmit.Preserve,skipLibCheck:!0,noEmit:!0,allowSyntheticDefaultImports:!0},a=t.map(m=>fo.join(e,m)),c=E.createProgram(a,o),d=c.getTypeChecker(),l=new Map,f=new Map,u=[];for(let m of t){let g=te(m);if(!$t(g))continue;let w=c.getSourceFile(fo.join(e,m));if(!w)continue;let k={filePath:m,moduleId:be(m,n).id,language:g,capabilityTier:de(g),importPaths:_h(w),symbols:[]};l.set(m,k);for(let h of w.statements){if(E.isFunctionDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"function",Ot(h),.1,f);continue}if(E.isVariableStatement(h)){for(let y of h.declarationList.declarations){let P=uo(y.name);P&&y.initializer&&(E.isArrowFunction(y.initializer)||E.isFunctionExpression(y.initializer))&&ht(e,u,k,w,y,P,"function",Ot(y),.08,f)}continue}if(E.isClassDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"class",Ot(h),.1,f);for(let y of h.members)(E.isMethodDeclaration(y)||E.isGetAccessorDeclaration(y)||E.isSetAccessorDeclaration(y))&&uo(y.name)&&ht(e,u,k,w,y,uo(y.name),"method",!1,.05,f,h.name.text);continue}if(E.isInterfaceDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"interface",Ot(h),.09,f);continue}if(E.isTypeAliasDeclaration(h)&&h.name){ht(e,u,k,w,h,h.name.text,"type",Ot(h),.09,f);continue}E.isEnumDeclaration(h)&&h.name&&ht(e,u,k,w,h,h.name.text,"enum",Ot(h),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let P=Or(y,m.record.filePath,r,n,i);P&&g.add(P)}let w=new Set,k=new Map,h=s(y=>{if(E.isCallExpression(y)||E.isNewExpression(y)){let P=Rh(y.expression);P&&!Ee.has(P)&&w.add(P);let Q=Qh(d,y.expression)?.declarations?.[0];if(Q){let x=f.get(Pc(e,Q));x&&x.id!==m.record.id&&k.set(x.id,{symbolId:x.id,name:x.name,filePath:x.filePath,moduleId:x.moduleId,reason:lo(m.record.moduleId,x.moduleId,g)})}}E.forEachChild(y,h)},"visit");h(m.body??m.declaration),m.record.calls=Array.from(w).slice(0,24),m.record.callTargets=Array.from(k.values()).slice(0,Se),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var Ih=p(()=>{"use strict";ct();sr();Sc();s(QR,"scriptKindFromFilePath");s(xh,"getNodeLine");s(Pc,"getDeclarationKey");s(Th,"getSignatureSnippet");s(bc,"hasModifier");s(Ot,"isExportedDeclaration");s(uo,"getPropertyNameText");s(Rh,"getCallExpressionName");s(_h,"collectTypeScriptImportPaths");s(ht,"registerTypeScriptSymbol");s(Qh,"resolveTypeScriptCallSymbol");s(ER,"analyzeTypeScriptFiles")});import He from"path";function IR(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function $R(e){let t=new Map;for(let n of e)t.set(n.language,(t.get(n.language)??0)+1);return Array.from(t.entries()).map(([n,r])=>({language:n,capabilityTier:de(n),fileCount:r}))}function CR(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function AR(e,t){return e.map(n=>CR(n,t))}async function po(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",o=t.preflight,a=o?.storageRoot??await Fi(r,i),c=e.inventory,d=c?null:await nr(r,n.source),l=o?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(v=>K(v)));if(l&&l.length>0)for(let v of l){let b=He.join(r,v);await Wi(b)?f.add(v):f.delete(v)}let u=Array.from(f).sort((v,b)=>v.localeCompare(b)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k}=Rm(u,n.areas),h=u.filter(v=>Jt.has(He.extname(v).toLowerCase())),y=new Set(h),P=o?.dirtyPathsFingerprint??(l?ir(l):void 0),S=o?.dirtySourcePaths?o.dirtySourcePaths.filter(v=>y.has(v)):l?l.filter(v=>y.has(v)):[],Q=o?.dirtySourceStateMap??(S.length>0?await nn(r,S,m,n.areas,i):void 0),x=o?.dirtySourceFingerprint??(l?tn(Q?Array.from(Q.values()).sort((v,b)=>v.filePath.localeCompare(b.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Di(n,u),workspaceSnapshot:o?.workspaceSnapshot??Ni(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k,sourceFiles:h,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:P,dirtySourceFingerprint:x,dirtySourceStateMap:Q,moduleAliases:vh(n.areas),buckets:La(h)}}function vc(e,t){return{...e,sourceStates:t,sourceFingerprint:tn(t)}}async function kc(e,t){let n=new Map(t.map(o=>[o,null])),r=La(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:o}=await Promise.resolve().then(()=>(Ih(),Eh)),a=await o(e.workspaceRoot,r.typeScriptFiles,e.overview.areas,e.sourceFileSet,e.moduleAliases);for(let c of a)n.set(c.filePath,c)}if(r.pythonFiles.length>0){let o=await Oh(e.workspaceRoot,r.pythonFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.goFiles.length>0){let o=await yh(e.workspaceRoot,r.goFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}if(r.rustFiles.length>0){let o=await wh(e.workspaceRoot,r.rustFiles,e.overview.areas);for(let a of o)n.set(a.filePath,a)}let i=e.analysisProfile==="light"?[...r.typeScriptFiles,...r.fallbackFiles]:r.fallbackFiles;if(i.length>0){let o=await Promise.all(i.map(a=>Ph(e.workspaceRoot,a,e.areaByFile.get(a)?.id??e.overview.areas[0].id)));for(let[a,c]of o.entries())n.set(i[a],c??null)}return n}function XR(e,t){return IR(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function mo(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=XR(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let P=y.name.toLowerCase(),S=i.get(P)??[];S.push(y),i.set(P,S)}let o=r.map(y=>{let P=new Set;for(let x of y.importPaths){let v=Or(x,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);v&&P.add(v)}let S=y.calls.flatMap(x=>(i.get(x.toLowerCase())??[]).map(v=>({candidate:v,reason:lo(y.moduleId,v.moduleId,P)}))).filter(({candidate:x})=>x.id!==y.id).sort((x,v)=>{if(x.reason!==v.reason){let b=["same-module","imported-module","name-match"];return b.indexOf(x.reason)-b.indexOf(v.reason)}return x.candidate.filePath.localeCompare(v.candidate.filePath)}),Q=new Map;for(let{candidate:x,reason:v}of S)if(Q.has(x.id)||Q.set(x.id,{symbolId:x.id,name:x.name,filePath:x.filePath,moduleId:x.moduleId,reason:v}),Q.size>=Se)break;return{...y,callTargets:Array.from(Q.values())}}),a=AR(o,e.analysisProfile),c=new Map;for(let y of e.overview.areas)c.set(y.id,{dependencies:new Set,dependents:new Set,languageCounts:new Map,sourceFileCount:0,symbolCount:0,entryFiles:[]});for(let y of n){let P=c.get(y.moduleId);if(!P)continue;let S=new Map(P.languageCounts);S.set(y.language,(S.get(y.language)??0)+1);let Q=new Set(P.dependencies),x=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?fe([...P.entryFiles,y.filePath],4):P.entryFiles;for(let v of y.importPaths){let b=Or(v,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);b&&b!==y.moduleId&&Q.add(b)}c.set(y.moduleId,{...P,sourceFileCount:P.sourceFileCount+1,symbolCount:P.symbolCount+y.symbols.length,languageCounts:S,dependencies:Q,entryFiles:x})}for(let[y,P]of c.entries())for(let S of P.dependencies){let Q=c.get(S);Q&&c.set(S,{...Q,dependents:new Set([...Q.dependents,y])})}let d=Array.from(c.entries()).map(([y,P])=>{let S=e.overview.areas.find(I=>I.id===y);if(!S)return null;let Q=Array.from(P.dependencies).sort((I,A)=>I.localeCompare(A)),x=Array.from(P.dependents).sort((I,A)=>I.localeCompare(A)),v=Array.from(P.languageCounts.entries()).map(([I,A])=>({language:I,capabilityTier:de(I),fileCount:A})).sort((I,A)=>A.fileCount-I.fileCount),b=a.filter(I=>I.moduleId===y);return{moduleId:S.id,label:S.label,kind:S.kind,root:S.root,fileCount:e.filesByAreaId.get(S.id)?.length??0,sourceFileCount:P.sourceFileCount,symbolCount:P.symbolCount,languages:v,topSymbols:b.sort((I,A)=>Number(A.exported)-Number(I.exported)||A.confidence-I.confidence).slice(0,6).map(I=>I.name),dependencies:Q,dependents:x,entryFiles:P.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:S.sampleFiles.slice(0,5),processIds:[],confidence:bm(b,v)}}).filter(y=>y!==null).sort((y,P)=>P.symbolCount-y.symbolCount||y.moduleId.localeCompare(P.moduleId)),l=kh(d,a),f=new Map;for(let y of l){let P=f.get(y.moduleId)??[];P.push(y.id),f.set(y.moduleId,P)}let u=d.map(y=>({...y,processIds:f.get(y.moduleId)??[]})),m={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:$R(n),modules:u,symbols:a,processes:l},g={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:e.overviewFingerprint,workspaceSnapshot:e.workspaceSnapshot,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languageBreakdown:m.languages,sourceStates:e.sourceStates},w={schemaVersion:J,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,Qm(t.get(y)??null)]))},k=km(e),h={schemaVersion:J,workspaceRoot:e.workspaceRoot,branch:e.workspaceSnapshot.branch,head:e.workspaceSnapshot.head,queryGeneratedAt:m.generatedAt,overviewFingerprint:e.overviewFingerprint,sourceFingerprint:e.sourceFingerprint,sourceFileCount:e.sourceFiles.length,dirtyPathsFingerprint:e.dirtyPathsFingerprint??ir(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??tn([]),dirtySourcePaths:k};return await at(He.join(e.storageRoot,fm),u),await at(He.join(e.storageRoot,pm),a),await at(He.join(e.storageRoot,mm),l),await at(He.join(e.storageRoot,ot),m),await at(He.join(e.storageRoot,ji),h),vm(e)&&(await at(He.join(e.storageRoot,Xi),g),await at(He.join(e.storageRoot,Mi),w)),m}var $h=p(()=>{"use strict";Ci();wc();Sc();sr();ct();sr();s(IR,"orderedSourceFilesForBuild");s($R,"collectLanguageBreakdown");s(CR,"calibrateSymbolConfidenceForProfile");s(AR,"calibrateSymbolsForProfile");s(po,"prepareRepoIntelligenceBuildInputsFromSnapshot");s(vc,"finalizeRepoIntelligenceBuildInputs");s(kc,"analyzeSourceFilesForBuild");s(XR,"collectOrderedAnalyses");s(mo,"materializeRepoIntelligenceIndex")});import gt from"path";async function Tc(e){let t=await Na(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=vc(e,t),r=await kc(n,n.sourceFiles);return mo(n,r)}async function Rc(e){return ae(gt.join(e,Xi),gm)}async function Ch(e){return ae(gt.join(e,Mi),ym)}async function ho(e){return ae(gt.join(e,ji),wm)}function Ah(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Xh(e,t,n){return t.schemaVersion===J&&n.schemaVersion===J&&t.workspaceRoot===e.workspaceRoot&&n.workspaceRoot===e.workspaceRoot&&t.workspaceSnapshot.source===e.workspaceSnapshot.source&&t.sourceStates.length===t.sourceFileCount&&n.sourceFingerprint===t.sourceFingerprint}async function MR(e,t){let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function Mh(e,t){return Li(e.workspaceSnapshot)&&Fa(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function jh(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===J&&t.workspaceRoot===e.workspaceRoot&&t.head===e.workspaceSnapshot.head&&t.branch===e.workspaceSnapshot.branch&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length&&t.dirtyPathsFingerprint===e.dirtyPathsFingerprint&&t.dirtySourceFingerprint===e.dirtySourceFingerprint)}async function Wh(e){if(!Li(e.workspaceSnapshot))return null;let t=await Rc(e.storageRoot);if(!t||t.schemaVersion!==J||t.workspaceRoot!==e.workspaceRoot||!Fa(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function Fh(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await ho(e.storageRoot);if(!t||t.schemaVersion!==J||t.workspaceRoot!==e.workspaceRoot||t.head!==e.workspaceSnapshot.head||t.branch!==e.workspaceSnapshot.branch||t.overviewFingerprint!==e.overviewFingerprint||t.dirtyPathsFingerprint!==e.dirtyPathsFingerprint||t.dirtySourceFingerprint!==e.dirtySourceFingerprint)return null;let n=await ae(gt.join(e.storageRoot,ot),en);return n?.schemaVersion!==J||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function Oo(e){return new Map(e.map(t=>[t.filePath,t]))}function _c(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:vc(e,n)}function Qc(e,t){let n=new Set;for(let r of e){let i=t.get(r.filePath);if(!i){n.add(r.filePath);continue}if(i.analyzerVersion!==r.analyzerVersion)return null;(i.fileFingerprint!==r.fileFingerprint||i.language!==r.language||i.moduleId!==r.moduleId)&&n.add(r.filePath)}return n}async function Ec(e,t,n,r){if(!e.sourceStates)return null;let i=Oo(e.sourceStates),o=e.analysisProfile==="full"&&Array.from(r).some(d=>{let l=i.get(d);return l?$t(l.language):!1}),a=new Set;for(let d of e.sourceStates){if(o&&$t(d.language)){a.add(d.filePath);continue}r.has(d.filePath)&&a.add(d.filePath)}let c=new Map;for(let d of e.sourceStates)if(!a.has(d.filePath)){if(!Ah(n.analyses,d.filePath))return null;c.set(d.filePath,Em(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await kc(e,e.sourceFiles.filter(l=>a.has(l)));for(let l of a)c.set(l,d.get(l)??null)}for(let d of e.sourceStates){if(!c.has(d.filePath))return null;let l=c.get(d.filePath)??null;if(l&&(l.filePath!==d.filePath||l.moduleId!==d.moduleId||l.language!==d.language)||t.get(d.filePath)?.analyzerVersion!==void 0&&t.get(d.filePath)?.analyzerVersion!==d.analyzerVersion)return null}return c}async function Dh(e,t,n){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0||t.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.head!==t.workspaceSnapshot.head||e.workspaceSnapshot.branch!==t.workspaceSnapshot.branch)return null;let r=new Set(e.dirtyPaths??[]),i=await ho(e.storageRoot),o=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=Oo(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let w=a.get(g);if(!w){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||o.has(g)){d.add(g);continue}c.set(g,w)}if(d.size>0){let g=new Set;for(let w of d){let k=l.get(w);if(k){c.set(w,k);continue}g.add(w)}if(g.size>0){let w=await nn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[k,h]of w.entries())c.set(k,h)}}let f=_c(e,c);if(!f?.sourceStates)return null;let u=Qc(f.sourceStates,a);if(!u)return null;let m=await Ec(f,a,n,u);return m?mo(f,m):null}async function Nh(e,t,n){let r=await nn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=_c(e,r);if(!i?.sourceStates)return null;let o=Oo(t.sourceStates),a=Qc(i.sourceStates,o);if(!a)return null;if(a.size===0)return MR(i,t);let c=await Ec(i,o,n,a);return c?mo(i,c):null}async function Lh(e,t){if(!t)return null;let n=await Ch(e.storageRoot);if(!n||!Xh(e,t,n))return null;let r=await Dh(e,t,n);return r||Nh(e,t,n)}async function xc(e,t=!1){let n=t?null:await Rc(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await ho(e.storageRoot):null;if(n&&Mh(e,n)){let i=await ae(gt.join(e.storageRoot,ot),en);if(i?.schemaVersion===J&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(jh(e,r)){let i=await ae(gt.join(e.storageRoot,ot),en);if(i?.schemaVersion===J&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await Lh(e,n);if(i)return i}return Tc(e)}async function gr(e,t=!1,n="full"){if(t){let c=await po(e,{profile:n});return xc(c,!0)}let r=await _m(e,n),i=await Wh(r);if(i)return i;let o=await Fh(r);if(o)return o;let a=await po(e,{preflight:r});return xc(a,!1)}async function jR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await po(n,{profile:t.profile??"full"});return Tc(r)}async function yr(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh});return gr(n,t.refresh===!0,t.profile??"full")}var Ic=p(()=>{"use strict";Ci();sr();$h();ct();s(Tc,"buildRepoIntelligenceIndexFromInputs");s(Rc,"readRepoIntelligenceManifest");s(Ch,"readFileAnalysisIndex");s(ho,"readDirtySourceHint");s(Ah,"hasOwnAnalysisEntry");s(Xh,"hasCompatibleIncrementalCache");s(MR,"readCompatibleCachedQueryIndex");s(Mh,"canDirectReuseCleanCachedQueryIndex");s(jh,"canDirectReuseDirtyCachedQueryIndex");s(Wh,"tryDirectReuseCleanCachedQueryIndexFromPreflight");s(Fh,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");s(Oo,"mapSourceStatesByFile");s(_c,"buildCompleteInputsFromSourceStates");s(Qc,"classifyChangedOrNewSourceFiles");s(Ec,"buildIncrementalAnalysisEntries");s(Dh,"tryGitDirtyIncrementalRepoIntelligenceBuild");s(Nh,"tryStatBasedIncrementalRepoIntelligenceBuild");s(Lh,"tryIncrementalRepoIntelligenceBuild");s(xc,"getRepoIntelligenceIndexFromInputs");s(gr,"getRepoIntelligenceIndexFromSnapshot");s(jR,"buildRepoIntelligenceIndex");s(yr,"getRepoIntelligenceIndex")});import WR from"path";function qh(e,t,n,r){return e>=20||t>=4e3||n>=5||r>=5?"systemic":e>=8||t>=1200||n>=3||r>=3?"complex":e>=3||t>=250||n>=2||r>=2?"moderate":"simple"}function zh(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function ln(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function wr(e,t,n){if(n){let i=K(n),o=e.modules.find(a=>i===a.root||i.startsWith(`${a.root}/`)||a.sampleFiles.includes(i));if(o)return o}let r=t?.trim().toLowerCase();return r?e.modules.slice().sort((i,o)=>o.symbolCount-i.symbolCount).find(i=>i.moduleId.toLowerCase()===r||i.label.toLowerCase()===r||i.root.toLowerCase()===r||WR.posix.basename(i.root).toLowerCase()===r)??e.modules.find(i=>i.moduleId.toLowerCase().includes(r)||i.label.toLowerCase().includes(r)||i.root.toLowerCase().includes(r))??null:e.modules.find(i=>i.moduleId!==".")??e.modules[0]??null}function Uh(e,t,n){let r=t.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.symbols.filter(o=>o.name.toLowerCase()===r||o.qualifiedName.toLowerCase()===r||o.filePath.toLowerCase()===r).sort((o,a)=>{let c=i&&(o.moduleId.toLowerCase().includes(i)||o.filePath.toLowerCase().includes(i))?1:0,d=i&&(a.moduleId.toLowerCase().includes(i)||a.filePath.toLowerCase().includes(i))?1:0;return d!==c?d-c:Number(a.exported)-Number(o.exported)||a.confidence-o.confidence})}function Vh(e,t,n){let r=t?.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.processes.filter(o=>{let a=!r||o.label.toLowerCase().includes(r)||o.entryFile.toLowerCase().includes(r)||(o.entrySymbol?.toLowerCase().includes(r)??!1),c=!i||o.moduleId.toLowerCase().includes(i);return a&&c}).sort((o,a)=>a.confidence-o.confidence||o.label.localeCompare(a.label))}function go(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,Se)}function $c(e,t){let n=wr(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:ln(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function Cc(e,t){let n=Uh(e,t.symbol,t.module);if(n.length===0)throw new Error(`No symbol matched "${t.symbol}".`);let[r,...i]=n;return{symbol:r,alternatives:i.slice(0,4),callers:go(e,r.id),freshness:ln(e),confidence:r.confidence}}function Kh(e,t){let n=Vh(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let o=wr(e,t.module,t.targetPath);if(o?.processIds[0]){let a=e.processes.find(c=>c.id===o.processIds[0]);if(a)return{process:a,alternatives:[],freshness:ln(e),confidence:a.confidence}}}let[r,...i]=n;if(!r)throw new Error(`No process matched "${t.entry??t.module??t.targetPath??"request"}".`);return{process:r,alternatives:i.slice(0,4),freshness:ln(e),confidence:r.confidence}}function Ac(e,t,n){let r=null,i=[],o=[],a=[],c=.65;if(t.symbol){let l=Cc(e,{symbol:t.symbol,module:t.module}),f=fe([l.symbol.moduleId,...l.symbol.callTargets.map(u=>u.moduleId),...l.callers.map(u=>u.moduleId)]);r={kind:"symbol",label:l.symbol.name,moduleId:l.symbol.moduleId,filePath:l.symbol.filePath},i=e.modules.filter(u=>f.includes(u.moduleId)),o=fe([l.symbol.id,...l.symbol.callTargets.map(u=>u.symbolId),...l.callers.map(u=>u.id)]).map(u=>e.symbols.find(m=>m.id===u)).filter(u=>u!==void 0),a=l.callers,c=l.confidence}else if(t.path){let l=K(t.path),f=wr(e,void 0,l),u=e.symbols.filter(m=>m.filePath===l);r={kind:"path",label:l,moduleId:f?.moduleId,filePath:l},i=f?[f,...e.modules.filter(m=>f.dependents.includes(m.moduleId))]:[],o=u,a=u.flatMap(m=>go(e,m.id)).slice(0,Se),c=f?.confidence??.62}else{let l=wr(e,t.module,t.targetPath);if(!l)throw new Error("impact_estimate requires one of symbol, path, or module.");r={kind:"module",label:l.label,moduleId:l.moduleId},i=[l,...e.modules.filter(f=>l.dependents.includes(f.moduleId))],o=e.symbols.filter(f=>f.moduleId===l.moduleId).slice(0,Se),a=o.flatMap(f=>go(e,f.id)).slice(0,Se),c=l.confidence}let d=n?n.files.filter(l=>i.some(f=>l.areaId===f.moduleId)||o.some(f=>l.path===f.filePath)).length:0;return{target:r,summary:d>0?`${r.label} overlaps with ${d} currently changed file(s); validate blast radius before editing.`:`${r.label} primarily affects ${fe(i.map(l=>l.label),4).join(", ")||"its local module"} and ${o.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:o.slice(0,Se),callers:a.slice(0,Se),changedScope:n,freshness:ln(e),confidence:c}}async function FR(e,t={}){let n=await yr(e,t);return $c(n,t)}async function DR(e,t){let n=await yr(e,t);return Cc(n,t)}async function NR(e,t){let n=await yr(e,t);return Kh(n,t)}async function LR(e,t){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await gr(n,t.refresh===!0,t.profile??"full"),i;try{i=await Ii(n,{scope:"all"})}catch(o){we("impact_estimate could not load changed scope.",o),i=void 0}return Ac(r,t,i)}async function qR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=t.targetPath??(e.executionCwd?".":void 0),[i,o]=await Promise.all([gr(n,t.refresh===!0,t.profile??"full"),Ii(n,{scope:"all"}).catch(b=>(we("Routing signals could not load changed scope.",b),null))]),a=null,c=null;try{a=$c(i,{targetPath:r})}catch(b){we("Routing signals could not resolve module context.",b)}try{c=Ac(i,{targetPath:r},o??void 0)}catch(b){we("Routing signals could not resolve impact estimate.",b)}let d=o?.areasTouched.map(b=>b.areaId).slice(0,8)??[],l=o?.totalChangedFiles??0,f=o?.changedLineCount??0,u=o?.addedLineCount??0,m=o?.deletedLineCount??0,g=o?.areasTouched.length??0,w=c?.impactedModules.length??(a?1:0),k=qh(l,f,g,w),h=zh(l,f,g),y=a?.confidence,P=c?.confidence,S=(y??1)<.72||(P??1)<.72,Q=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",x=k==="complex"||k==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,v=S||(o?.riskHints.length??0)>0||(c?.changedScope?.riskHints.length??0)>0;return{workspaceRoot:i.workspaceRoot,changedFileCount:l,changedLineCount:f,addedLineCount:u,deletedLineCount:m,touchedModuleCount:g,changedModules:d,crossModule:g>1||w>1,reviewScale:h,riskHints:fe([...S?["Light repo routing uses heuristic static analysis; validate low-confidence edges before editing."]:[],...o?.riskHints??[],...c?.changedScope?.riskHints??[]],4),activeModuleId:a?.module.moduleId,activeModuleConfidence:y,activeImpactConfidence:P,impactedModuleCount:w,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:Q,suggestedComplexity:k,plannerBias:x,investigationBias:v,lowConfidence:S}}var Yh=p(()=>{"use strict";Ci();Ic();ct();s(qh,"deriveRoutingComplexity");s(zh,"deriveReviewScale");s(ln,"buildFreshnessLabel");s(wr,"findModuleMatch");s(Uh,"findSymbolMatches");s(Vh,"findProcessMatches");s(go,"collectCallers");s($c,"resolveModuleContextFromIndex");s(Cc,"resolveSymbolContextFromIndex");s(Kh,"resolveProcessContextFromIndex");s(Ac,"resolveImpactEstimateFromIndex");s(FR,"getModuleContext");s(DR,"getSymbolContext");s(NR,"getProcessContext");s(LR,"getImpactEstimate");s(qR,"getRepoRoutingSignals")});var Gh=p(()=>{"use strict";Ic();Yh()});function Xc(e,...t){let n=e.trim().toLowerCase(),r=0;for(let i of t){if(!i)continue;let o=i.toLowerCase();if(o===n){r=Math.max(r,1);continue}if(o.startsWith(n)){r=Math.max(r,.92);continue}if(o.includes(n)){r=Math.max(r,.78);continue}let a=n.split(/\s+/).filter(Boolean);a.length>0&&a.every(c=>o.includes(c))&&(r=Math.max(r,.66))}return r}function zR(e,t){return{item:{title:`${e.name} (${e.kind})`,locator:`${e.filePath}:${e.line}`,snippet:e.signature,score:t,metadata:{kind:"symbol",moduleId:e.moduleId,exported:e.exported,confidence:e.confidence}},artifact:{kind:"symbol",label:e.qualifiedName,value:`${e.filePath}:${e.line}`}}}function UR(e,t){return{item:{title:e.label,locator:e.root,snippet:`Module ${e.moduleId} with ${e.symbolCount} symbols and ${e.sourceFileCount} source files.`,score:t,metadata:{kind:"module",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"module",label:e.label,value:e.root}}}function VR(e,t){return{item:{title:e.label,locator:e.entryFile,snippet:e.summary,score:t,metadata:{kind:"process",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"process",label:e.label,value:e.entryFile}}}function KR(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Xc(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...zR(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Xc(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...UR(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Xc(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...VR(a,c)})}i.sort((a,c)=>c.score!==a.score?c.score-a.score:a.item.title.localeCompare(c.item.title));let o=i.slice(0,r);return{items:o.map(a=>a.item),artifacts:o.map(a=>a.artifact),generatedAt:e.generatedAt,sourceFileCount:e.sourceFileCount,capabilityEngine:e.capability?.engine}}var Bh=p(()=>{"use strict";s(Xc,"scoreCandidate");s(zR,"buildSymbolItem");s(UR,"buildModuleItem");s(VR,"buildProcessItem");s(KR,"collectSemanticLookupItems")});function yo(e){return e>=.8?"high":e>=.65?"medium":"low"}function wo(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function YR(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${yo(e.confidence)} (${e.confidence.toFixed(2)})`,`Files: ${t.fileCount} total | ${t.sourceFileCount} source | ${t.symbolCount} symbols`,`Languages: ${t.languages.map(n=>`${n.language}/${n.capabilityTier}:${n.fileCount}`).join(" | ")||"none"}`,`Dependencies: ${t.dependencies.join(" | ")||"none"}`,`Dependents: ${t.dependents.join(" | ")||"none"}`,`Entry files: ${t.entryFiles.join(" | ")||"none"}`,`Top symbols: ${t.topSymbols.join(" | ")||"none"}`,`Tests: ${t.keyTests.join(" | ")||"none"}`,`Docs: ${t.keyDocs.join(" | ")||"none"}`,`Processes: ${t.processIds.join(" | ")||"none"}`,`Evidence: ${e.evidence.join(" | ")||"none"}`,...wo(e.capability)].join(`
806
+ `)}function GR(e){let{symbol:t}=e;return[`Symbol context for ${t.name}`,`Definition: ${t.filePath}:${t.line}`,`Module: ${t.moduleId} | Kind: ${t.kind} | Exported: ${t.exported?"yes":"no"}`,`Language: ${t.language}/${t.capabilityTier}`,`Freshness: ${e.freshness}`,`Confidence: ${yo(e.confidence)} (${e.confidence.toFixed(2)})`,`Signature: ${t.signature}`,`Possible callees: ${t.callTargets.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Imports: ${t.importPaths.join(" | ")||"none"}`,e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>`${n.name} @ ${n.filePath}:${n.line}`).join(" | ")}`:"Alternatives: none",...wo(e.capability)].join(`
807
+ `)}function BR(e){let{process:t}=e;return[`Process context for ${t.label}`,`Module: ${t.moduleId}`,`Entry: ${t.entryFile}${t.entrySymbol?` -> ${t.entrySymbol}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${yo(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${t.summary}`,"Steps:",...t.steps.map(n=>`- ${n.kind} ${n.symbolName} @ ${n.filePath}${n.line?`:${n.line}`:""} | ${n.note}`),e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>n.label).join(" | ")}`:"Alternatives: none",...wo(e.capability)].join(`
808
+ `)}function ZR(e){return[`Impact estimate for ${e.target.label}`,`Target: ${e.target.kind}${e.target.moduleId?` | module=${e.target.moduleId}`:""}${e.target.filePath?` | file=${e.target.filePath}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${yo(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${e.summary}`,`Impacted modules: ${e.impactedModules.map(t=>`${t.label}(${t.moduleId})`).join(" | ")||"none"}`,`Impacted symbols: ${e.impactedSymbols.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,e.changedScope?`Changed-scope overlap: ${e.changedScope.files.filter(t=>e.impactedModules.some(n=>n.moduleId===t.areaId)||e.impactedSymbols.some(n=>n.filePath===t.path)).length} file(s)`:"Changed-scope overlap: unavailable",...wo(e.capability)].join(`
809
+ `)}var Zh=p(()=>{"use strict";s(yo,"confidenceLabel");s(wo,"capabilityLines");s(YR,"renderModuleContext");s(GR,"renderSymbolContext");s(BR,"renderProcessContext");s(ZR,"renderImpactEstimate")});function HR(e){let t=0,n=new Map,r=new Map,i=new Set,o=[],a=[],c=s(d=>{n.set(d,t),r.set(d,t),t++,o.push(d),i.add(d);for(let l of e.get(d)??[])n.has(l)?i.has(l)&&r.set(d,Math.min(r.get(d)??0,n.get(l)??0)):(c(l),r.set(d,Math.min(r.get(d)??0,r.get(l)??0)));if((r.get(d)??0)===(n.get(d)??0)){let l=[],f="";do f=o.pop()??"",i.delete(f),l.push(f);while(f!==d&&o.length>=0&&f!=="");a.push(l)}},"strongconnect");for(let d of e.keys())n.has(d)||c(d);return a}function JR(e){return e>=4?"high":e===3?"medium":"low"}function e_(e){let t=e.modules??[],n=new Set(t.map(d=>d.moduleId)),r=new Map,i=0;for(let d of t){let l=(d.dependencies??[]).filter(f=>n.has(f)&&f!==d.moduleId);r.set(d.moduleId,l),i+=l.length}let o=HR(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:JR(d.length)}}).sort((d,l)=>l.hopCount-d.hopCount),a=o.filter(d=>d.severity==="high").length,c=o.length===0?"No circular dependencies found.":`${o.length} cycle(s) found, ${a} high-severity.`;return{cycles:o,scanned:{modules:t.length,edges:i},summary:c}}function t_(e){let t=[e.summary,`Scanned ${e.scanned.modules} modules, ${e.scanned.edges} edges.`];for(let n of e.cycles)t.push(`- [${n.severity}] ${n.hopCount}-hop: ${n.chain.join(" -> ")}`);return t.join(`
810
+ `)}var Hh=p(()=>{"use strict";s(HR,"tarjanScc");s(JR,"severityFor");s(e_,"findCyclicDependencies");s(t_,"renderCycleAnalysis")});var Jh={};Lc(Jh,{buildCompleteInputsFromSourceStates:()=>_c,buildFreshnessLabel:()=>ln,buildIncrementalAnalysisEntries:()=>Ec,buildRepoIntelligenceIndex:()=>jR,buildRepoIntelligenceIndexFromInputs:()=>Tc,canDirectReuseCleanCachedQueryIndex:()=>Mh,canDirectReuseDirtyCachedQueryIndex:()=>jh,classifyChangedOrNewSourceFiles:()=>Qc,collectCallers:()=>go,collectSemanticLookupItems:()=>KR,deriveReviewScale:()=>zh,deriveRoutingComplexity:()=>qh,findCyclicDependencies:()=>e_,findModuleMatch:()=>wr,findProcessMatches:()=>Vh,findSymbolMatches:()=>Uh,getImpactEstimate:()=>LR,getModuleContext:()=>FR,getProcessContext:()=>NR,getRepoIntelligenceIndex:()=>yr,getRepoIntelligenceIndexFromInputs:()=>xc,getRepoIntelligenceIndexFromSnapshot:()=>gr,getRepoRoutingSignals:()=>qR,getSymbolContext:()=>DR,hasCompatibleIncrementalCache:()=>Xh,hasOwnAnalysisEntry:()=>Ah,mapSourceStatesByFile:()=>Oo,readDirtySourceHint:()=>ho,readFileAnalysisIndex:()=>Ch,readRepoIntelligenceManifest:()=>Rc,renderCycleAnalysis:()=>t_,renderImpactEstimate:()=>ZR,renderModuleContext:()=>YR,renderProcessContext:()=>BR,renderSymbolContext:()=>GR,resolveImpactEstimateFromIndex:()=>Ac,resolveModuleContextFromIndex:()=>$c,resolveProcessContextFromIndex:()=>Kh,resolveSymbolContextFromIndex:()=>Cc,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>Wh,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>Fh,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Dh,tryIncrementalRepoIntelligenceBuild:()=>Lh,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Nh});var eO=p(()=>{"use strict";Gh();Bh();Zh();Hh()});import{parentPort as Wc}from"node:worker_threads";if(!Wc)throw new Error("semantic-worker must run inside a worker thread.");function Mc(e){return typeof e=="object"&&e!==null}s(Mc,"isRecord");function n_(e){return Mc(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&Mc(e.context)&&Mc(e.options)}s(n_,"isRequest");function r_(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}s(r_,"serializeError");async function i_(e){let t=await o_();switch(e.kind){case"buildIndex":return t.buildRepoIntelligenceIndex(e.context,e.options);case"getIndex":return t.getRepoIntelligenceIndex(e.context,e.options);case"module":return t.getModuleContext(e.context,e.options);case"symbol":return t.getSymbolContext(e.context,e.options);case"process":return t.getProcessContext(e.context,e.options);case"impact":return t.getImpactEstimate(e.context,e.options);case"routing":return t.getRepoRoutingSignals(e.context,e.options);case"semanticLookup":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.collectSemanticLookupItems(n,e.options.query,e.options.lookupKind,e.options.limit)}case"cyclicDeps":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.findCyclicDependencies(n)}}}s(i_,"runRequest");function tO(e){Wc?.postMessage(e)}s(tO,"post");var nO=Promise.resolve(),jc;function o_(){return jc||(jc=import.meta.url.endsWith(".ts")?s_():Promise.resolve().then(()=>(eO(),Jh))),jc}s(o_,"loadSemanticIndex");async function s_(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}s(s_,"loadDevSemanticIndex");Wc.on("message",e=>{nO=nO.then(async()=>{if(n_(e))try{tO({id:e.id,ok:!0,result:await i_(e)})}catch(n){tO({id:e.id,ok:!1,error:r_(n)})}}).catch(()=>{})});