@kodax-ai/kodax 0.7.85 → 0.7.86

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 (63) hide show
  1. package/CHANGELOG.md +93 -1
  2. package/README.md +1867 -1841
  3. package/README_CN.md +1136 -1130
  4. package/dist/chunks/{agent-OQ37XUWF.js → agent-IO6TXNCV.js} +1 -1
  5. package/dist/chunks/argument-completer-JMICSGL6.js +2 -0
  6. package/dist/chunks/chunk-2RAXDUC7.js +379 -0
  7. package/dist/chunks/{chunk-MJ4G5ZCW.js → chunk-A5VQGXH2.js} +1 -1
  8. package/dist/chunks/{chunk-TBBY2DKE.js → chunk-AAFFS6RU.js} +2 -2
  9. package/dist/chunks/{chunk-IA246OAN.js → chunk-B36G256E.js} +2 -2
  10. package/dist/chunks/{chunk-3E4OSFP2.js → chunk-G5FGIRDJ.js} +136 -137
  11. package/dist/chunks/{chunk-RSOAHVUR.js → chunk-GVGLYVG4.js} +1 -1
  12. package/dist/chunks/chunk-MFCPQZ7E.js +519 -0
  13. package/dist/chunks/chunk-Q6UAGROD.js +415 -0
  14. package/dist/chunks/{chunk-IWRNGH4M.js → chunk-R4EHASEN.js} +5 -5
  15. package/dist/chunks/{chunk-ZVOXWLT6.js → chunk-U6HNMLNN.js} +226 -214
  16. package/dist/chunks/{chunk-ODRLFQQH.js → chunk-UKCDCVMD.js} +1 -1
  17. package/dist/chunks/{chunk-CZCEFGQG.js → chunk-XA4ENCAH.js} +1 -1
  18. package/dist/chunks/{chunk-SR4E5FQK.js → chunk-XUKLF26Q.js} +2 -2
  19. package/dist/chunks/{compaction-config-3WLLNN57.js → compaction-config-5RMG22CY.js} +1 -1
  20. package/dist/chunks/{construction-bootstrap-CZ6NWEWQ.js → construction-bootstrap-4DGAYOWH.js} +1 -1
  21. package/dist/chunks/{dist-NFLLOZWF.js → dist-DFW7MXT7.js} +1 -1
  22. package/dist/chunks/host-6MMHYTI5.js +2 -0
  23. package/dist/chunks/run-manager-ISQSWCAM.js +2 -0
  24. package/dist/chunks/{utils-KFLK3EHJ.js → utils-LV7FHKYN.js} +1 -1
  25. package/dist/index.d.ts +8 -8
  26. package/dist/index.js +1 -1
  27. package/dist/kodax_bootstrap.js +1 -1
  28. package/dist/kodax_cli.js +1459 -1411
  29. package/dist/kodax_resume.js +78 -76
  30. package/dist/runtime-worker.js +1467 -1419
  31. package/dist/sandbox-workspace-session.js +346 -302
  32. package/dist/sdk-a2a.d.ts +5 -5
  33. package/dist/sdk-a2a.js +1 -1
  34. package/dist/sdk-agent.js +1 -1
  35. package/dist/sdk-coding.d.ts +8 -8
  36. package/dist/sdk-coding.js +1 -1
  37. package/dist/sdk-experimental-memory.js +1 -1
  38. package/dist/sdk-mcp.js +1 -1
  39. package/dist/sdk-repl.d.ts +9 -11
  40. package/dist/sdk-repl.js +1 -1
  41. package/dist/sdk-runtime.d.ts +14 -6
  42. package/dist/sdk-runtime.js +1 -1
  43. package/dist/sdk-sandbox.d.ts +1 -1
  44. package/dist/sdk-sandbox.js +1 -1
  45. package/dist/sdk-session.d.ts +3 -3
  46. package/dist/sdk-session.js +1 -1
  47. package/dist/sdk-skills.js +1 -1
  48. package/dist/semantic-worker.js +63 -64
  49. package/dist/types-chunks/{bash-prefix-extractor.d-BnZQDirs.d.ts → bash-prefix-extractor.d-QqKtuLZm.d.ts} +9 -3
  50. package/dist/types-chunks/{guardrail.d-BCkgaWT1.d.ts → guardrail.d-Y_AIh8-I.d.ts} +1 -7
  51. package/dist/types-chunks/{public-api.d-N6G6Jw8X.d.ts → public-api.d-Cg-4GTbK.d.ts} +1 -1
  52. package/dist/types-chunks/{repl.d-BkTIOkJD.d.ts → repl.d-Bhrbueab.d.ts} +4 -4
  53. package/dist/types-chunks/{sdk-session-DLkZTOc-.d.ts → sdk-session-fQ_KENev.d.ts} +1 -1
  54. package/dist/types-chunks/{shell-command-sets.d-BrLw-WN9.d.ts → shell-command-sets.d-DRGjd_7Q.d.ts} +1 -1
  55. package/dist/types-chunks/{types.d-Ch3BD97c.d.ts → types.d-BRrJU4pb.d.ts} +1 -1
  56. package/dist/types-chunks/{utils.d-BI-kjuev.d.ts → utils.d-BIhh_BqE.d.ts} +3 -3
  57. package/package.json +1 -1
  58. package/dist/chunks/argument-completer-IMRSIF2N.js +0 -2
  59. package/dist/chunks/chunk-2XJQNFVR.js +0 -379
  60. package/dist/chunks/chunk-CDWYKVZC.js +0 -482
  61. package/dist/chunks/chunk-RTFVMEF6.js +0 -415
  62. package/dist/chunks/host-LWUSSCWH.js +0 -2
  63. package/dist/chunks/run-manager-PBMOVP7A.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- var Cc=Object.defineProperty;var s=(e,t)=>Cc(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ac=(e,t)=>{for(var n in t)Cc(e,n,{get:t[n],enumerable:!0})};import qh from"path";function Xc(e){return qh.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var Mc=p(()=>{"use strict";s(Xc,"resolveExecutionCwd")});var jc=p(()=>{"use strict"});var Mt=p(()=>{"use strict"});var un=p(()=>{"use strict"});import{AsyncLocalStorage as zh}from"node:async_hooks";function gr(e){let t=Uh.getStore()?.credential;return t?fn(e,t,new WeakMap):e}function fn(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(fn(e.message,t,n));return n.set(e,o),o.name=e.name,e.stack!==void 0&&(o.stack=fn(e.stack,t,n)),o}if(Array.isArray(e)){let o=[];n.set(e,o);for(let a of e)o.push(fn(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]=fn(a.value,t,n)}return i}var Uh,yr=p(()=>{"use strict";Uh=new zh;s(gr,"redactScopedProviderCredential");s(fn,"redactCredentialValue")});var jt=p(()=>{"use strict"});var ho=p(()=>{"use strict"});var Wc=p(()=>{"use strict"});var Oo=p(()=>{"use strict"});var Ot=p(()=>{"use strict"});var Fc=p(()=>{"use strict"});var go=p(()=>{"use strict"});import{AsyncLocalStorage as Vh}from"node:async_hooks";var d_,pn=p(()=>{"use strict";d_=new Vh});var mn,Dc,wr,Nc,gt=p(()=>{"use strict";mn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Dc={...mn,multimodalSupport:"image-input"},wr={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},Nc={...wr,multimodalSupport:"image-input"}});var hn=p(()=>{"use strict";jt();Fc();yr();go();ho();pn();gt();Ot()});import{parse as R_}from"partial-json";var Pr=p(()=>{"use strict"});var On=p(()=>{"use strict"});var vr=p(()=>{"use strict"});var gn=p(()=>{"use strict"});var yo=p(()=>{"use strict"});import N_ from"@anthropic-ai/sdk";var xr=p(()=>{"use strict";hn();Pr();On();jt();vr();Ot();gn();yo();pn()});import rQ from"openai";var Tr=p(()=>{"use strict";hn();jt();Pr();On();vr();Ot();gn();yo();pn()});var hQ,OQ,gQ,yQ,So=p(()=>{"use strict";hQ=Object.freeze({status:"terminated"}),OQ=Object.freeze({status:"already-exited"}),gQ=Object.freeze({status:"unknown"}),yQ=String.raw`
2
+ var Xc=Object.defineProperty;var s=(e,t)=>Xc(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var Mc=(e,t)=>{for(var n in t)Xc(e,n,{get:t[n],enumerable:!0})};import Vh from"path";function jc(e){return Vh.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var Wc=p(()=>{"use strict";s(jc,"resolveExecutionCwd")});var Fc=p(()=>{"use strict"});var jt=p(()=>{"use strict"});var un=p(()=>{"use strict"});import{AsyncLocalStorage as Kh}from"node:async_hooks";function yr(e){let t=Yh.getStore()?.credential;return t?fn(e,t,new WeakMap):e}function fn(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(fn(e.message,t,n));return n.set(e,o),o.name=e.name,e.stack!==void 0&&(o.stack=fn(e.stack,t,n)),o}if(Array.isArray(e)){let o=[];n.set(e,o);for(let a of e)o.push(fn(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]=fn(a.value,t,n)}return i}var Yh,wr=p(()=>{"use strict";Yh=new Kh;s(yr,"redactScopedProviderCredential");s(fn,"redactCredentialValue")});var Wt=p(()=>{"use strict"});var Oo=p(()=>{"use strict"});var Dc=p(()=>{"use strict"});var go=p(()=>{"use strict"});var gt=p(()=>{"use strict"});var Nc=p(()=>{"use strict"});var yo=p(()=>{"use strict"});import{AsyncLocalStorage as Gh}from"node:async_hooks";var h_,pn=p(()=>{"use strict";h_=new Gh});var mn,Lc,Sr,qc,yt=p(()=>{"use strict";mn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Lc={...mn,multimodalSupport:"image-input"},Sr={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},qc={...Sr,multimodalSupport:"image-input"}});var hn=p(()=>{"use strict";Wt();Nc();wr();yo();Oo();pn();yt();gt()});import{parse as C_}from"partial-json";var vr=p(()=>{"use strict"});var On=p(()=>{"use strict"});var kr=p(()=>{"use strict"});var gn=p(()=>{"use strict"});var wo=p(()=>{"use strict"});import K_ from"@anthropic-ai/sdk";var Tr=p(()=>{"use strict";hn();vr();On();Wt();kr();gt();gn();wo();pn()});import dQ from"openai";var Rr=p(()=>{"use strict";hn();Wt();vr();On();kr();gt();gn();wo();pn()});var bQ,PQ,vQ,kQ,bo=p(()=>{"use strict";bQ=Object.freeze({status:"terminated"}),PQ=Object.freeze({status:"already-exited"}),vQ=Object.freeze({status:"unknown"}),kQ=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
- }`});import{ClientSideConnection as PQ,PROTOCOL_VERSION as vQ,ndJsonStream as kQ}from"@agentclientprotocol/sdk";var Yc=p(()=>{"use strict";So()});var Rr=p(()=>{"use strict";hn();Yc();gt();gn()});var bo=p(()=>{"use strict";So()});var Po=p(()=>{"use strict"});var Gc=p(()=>{"use strict";bo();Po()});var vo=p(()=>{"use strict"});import Bc from"node:fs";import Zc from"node:os";import Hc from"node:path";function Jc(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 wO(){let e=Hc.join(Zc.homedir(),".codex","config.toml");try{return Bc.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function SO(){let e=Hc.join(Zc.homedir(),".gemini","settings.json");try{let t=JSON.parse(Bc.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 Wt(){return wO()||hO}function Ft(){return SO()||OO}function yn(){return Jc([Wt(),...gO])}function wn(){return Jc([Ft(),...yO])}var hO,OO,gO,yO,Sn=p(()=>{"use strict";hO="gpt-5.4",OO="auto-gemini-3",gO=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],yO=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];s(Jc,"dedupePreserveOrder");s(wO,"readCodexConfiguredModel");s(SO,"readGeminiConfiguredModel");s(Wt,"getCodexCliDefaultModel");s(Ft,"getGeminiCliDefaultModel");s(yn,"getCodexCliKnownModels");s(wn,"getGeminiCliKnownModels")});var iE,oE,ed=p(()=>{"use strict";Rr();Gc();vo();Sn();gt();iE=Ft(),oE=wn()});var td=p(()=>{"use strict";bo();Po()});var gE,yE,nd=p(()=>{"use strict";Rr();td();vo();Sn();gE=Wt(),yE=yn()});function Ce(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yt(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 Dt(e,t){if(e!==void 0)return yt(e,t)}function fd(e,t){if(e!==void 0){if(typeof e!="string"||!ad.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ad.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Be(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 K(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function ld(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)=>yt(n,`${t}[${r}]`))}}function PO(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=yt(i,`${t}.${r}`);return n}function vO(e,t){if(e!==void 0){if(typeof e!="string"||!sd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${sd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function xo(e,t){if(typeof e!="string"||!rd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${rd.join(", ")}, got ${JSON.stringify(e)}`);return e}function kO(e,t){if(typeof e!="string"||!id.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${id.join(", ")}, got ${JSON.stringify(e)}`);return e}function xO(e,t){if(e!==void 0){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 ud(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=kO(e.effortStrategy,`${t}.effortStrategy`),r=vO(e.reasoningPreset,`${t}.reasoningPreset`),i=xO(e.thinkingStrategy,`${t}.thinkingStrategy`),o=Dt(e.defaultEffort,`${t}.defaultEffort`),a=PO(e.effortAliases,`${t}.effortAliases`),c=ld(e.disabledEfforts,`${t}.disabledEfforts`),d=ld(e.localRejectEfforts,`${t}.localRejectEfforts`),l=K(e.allowCustomEffort,`${t}.allowCustomEffort`),f=K(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=K(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=K(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=K(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),S=K(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),x=K(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),h=K(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((k,v)=>{if(!Ce(k))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${v}] must be an object`);return{value:yt(k.value,`${t}.supportedEfforts[${v}].value`),...Dt(k.description,`${t}.supportedEfforts[${v}].description`)!==void 0?{description:Dt(k.description,`${t}.supportedEfforts[${v}].description`)}:{},...K(k.isDefault,`${t}.supportedEfforts[${v}].isDefault`)!==void 0?{isDefault:K(k.isDefault,`${t}.supportedEfforts[${v}].isDefault`)}:{},...K(k.isUserVisible,`${t}.supportedEfforts[${v}].isUserVisible`)!==void 0?{isUserVisible:K(k.isUserVisible,`${t}.supportedEfforts[${v}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Ce(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let k={};for(let[v,R]of Object.entries(e.budgetByEffort))k[v]=Be(R,`${t}.budgetByEffort.${v}`)??0;y.budgetByEffort=k}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),S!==void 0&&(y.supportsManualThinkingBudget=S),x!==void 0&&(y.supportsDisabledThinking=x),h!==void 0&&(y.requiresEffortBetaHeader=h),y}function pd(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?ud(n,`${t}.reasoningProfile`):ud(r,`${t}.reasoningCapabilityV2`)}function TO(e,t){if(typeof e!="string"||!cd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${cd.join(", ")}, got ${JSON.stringify(e)}`);return e}function RO(e,t){if(typeof e!="string"||!dd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${dd.join(", ")}, got ${JSON.stringify(e)}`);return e}function _O(e,t){if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=yt(e.id,`${t}.id`),r=Dt(e.wireModel,`${t}.wireModel`),i=Dt(e.displayName,`${t}.displayName`),o=Be(e.contextWindow,`${t}.contextWindow`),a=Be(e.maxOutputTokens,`${t}.maxOutputTokens`),c=fd(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=Be(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),l=K(e.replayReasoningContent,`${t}.replayReasoningContent`),f=K(e.strictThinkingSignature,`${t}.strictThinkingSignature`),u=Be(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:xo(e.reasoningCapability,`${t}.reasoningCapability`),g=pd(e,t),S={id:n};return r!==void 0&&(S.wireModel=r),i!==void 0&&(S.displayName=i),o!==void 0&&(S.contextWindow=o),a!==void 0&&(S.maxOutputTokens=a),c!==void 0&&(S.maxOutputTokensField=c),d!==void 0&&(S.thinkingBudgetCap=d),m!==void 0&&(S.reasoningCapability=m),g!==void 0&&(S.reasoningProfile=g),l!==void 0&&(S.replayReasoningContent=l),f!==void 0&&(S.strictThinkingSignature=f),u!==void 0&&(S.streamMaxDurationMs=u),S}function QO(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=xo(i,`${t}.${r}`);return n}function EO(e,t){if(!Ce(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=K(e.cliBridge,`providers.${t}.cliBridge`),r=yt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=xo(e.reasoningCapability,`providers.${t}.reasoningCapability`),o=pd(e,`providers.${t}`),a=TO(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=RO(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=Be(e.contextWindow,`providers.${t}.contextWindow`),l=Be(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=fd(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Be(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=K(e.supportsThinking,`providers.${t}.supportsThinking`),g=QO(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),S=Dt(e.model,`providers.${t}.model`);if(n&&(S!==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&&S===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let x;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);x=e.models.map((k,v)=>_O(k,`providers.${t}.models[${v}]`));let y=new Set([...S===void 0?[]:[S],...x.map(k=>k.id)]);for(let[k,v]of x.entries())if(v.wireModel!==void 0&&!y.has(v.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${k}].wireModel must reference a declared model, got ${JSON.stringify(v.wireModel)}`)}let h={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return o!==void 0&&(h.reasoningProfile=o),S!==void 0&&(h.model=S),x!==void 0&&(h.models=x),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 md(e){if(!Ce(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=yt(e.updatedAt,"updatedAt");if(!Ce(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]=EO(i,r);return{version:1,updatedAt:t,providers:n}}var rd,id,od,sd,ad,cd,dd,hd=p(()=>{"use strict";rd=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],id=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],od=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],sd=["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"],ad=["max_tokens","max_completion_tokens"],cd=["native","image-input-native","cli-bridge","image-input-cli-bridge"],dd=["count-tokens","models-list","minimal-message","unsupported"];s(Ce,"isPlainObject");s(yt,"requireString");s(Dt,"optionalString");s(fd,"optionalMaxOutputTokensField");s(Be,"optionalNumber");s(K,"optionalBoolean");s(ld,"optionalStringArray");s(PO,"optionalStringMap");s(vO,"optionalReasoningPreset");s(xo,"requireReasoningCapability");s(kO,"requireEffortStrategy");s(xO,"optionalThinkingStrategy");s(ud,"validateReasoningProfile");s(pd,"validateReasoningProfileField");s(TO,"requireProfileName");s(RO,"requireVerifyStrategy");s(_O,"validateModelDescriptor");s(QO,"validateModelReasoningCapabilities");s(EO,"validateProviderEntry");s(md,"validateProviderCapabilitiesJson")});import{existsSync as IO,readFileSync as $O}from"node:fs";import Nt from"node:path";import{fileURLToPath as CO}from"node:url";function XO(){if(process.env.KODAX_BUNDLED==="true")return Nt.join(Nt.dirname(process.execPath),"provider-capabilities.json");let e=Nt.dirname(CO(import.meta.url)),t=[Nt.join(e,"provider-capabilities.json"),Nt.join(Nt.dirname(e),"provider-capabilities.json")];for(let n of t)if(IO(n))return n;return t[0]}function MO(e){if(e.models){for(let t of e.models)t.reasoningProfile&&Od(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&Od(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function Od(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 jO(e){if(e==="gemini-cli"){let t=Ft();return{model:t,models:wn().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Wt();return{model:t,models:yn().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function WO(e,t){let n=AO[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=jO(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 gd(){if(_r)return _r;let e=XO(),t;try{let i=$O(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=md(t),r={};for(let[i,o]of Object.entries(n.providers))r[i]=MO(WO(i,o));return _r=Object.freeze(r),_r}var AO,_r,yd=p(()=>{"use strict";gt();Sn();hd();AO=Object.freeze({native:mn,"image-input-native":Dc,"cli-bridge":wr,"image-input-cli-bridge":Nc}),_r=null;s(XO,"resolveJsonPath");s(MO,"deepFreezeSnapshot");s(Od,"freezeReasoningProfile");s(jO,"resolveCliBridgeModels");s(WO,"buildSnapshot");s(gd,"getProviderSnapshots")});import LE from"@anthropic-ai/sdk";var Qr,wd,bn=p(()=>{"use strict";xr();Tr();ed();nd();jt();yr();gt();yd();Qr=gd(),wd=process.env.KODAX_PROVIDER??"zhipu-coding"});var Qo=p(()=>{"use strict";xr();Tr();Ot()});var Er=p(()=>{"use strict";Qo();bn();gt()});var Co=p(()=>{"use strict";bn();Er()});var Ad=p(()=>{"use strict";bn();Er();Co()});var Ao=p(()=>{"use strict";hn();xr();Tr();Rr();bn();Qo();Er();Co();Ad();vr()});var jd=p(()=>{"use strict";Ao();Ot();Oo()});var Xo=p(()=>{"use strict"});var Mo=p(()=>{"use strict";Xo()});var Wd=p(()=>{"use strict";Mo();On()});var Pn=p(()=>{"use strict";yr();jt();ho();Wc();Oo();Ot();jd();Ao();Sn();Pr();On();pn();Xo();Mo();Wd();go();gn()});function L(e){let t=gr(e),n=Og.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Fd(t)}
90
- `)}catch{}}function Fd(e){let t=gr(e),n=gg(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function gg(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 Og,pe=p(()=>{"use strict";Pn();Og=[];s(L,"emitKodaXDiagnostic");s(Fd,"formatKodaXDiagnostic");s(gg,"formatDiagnosticDetail")});var Dd=p(()=>{"use strict"});var Nd=p(()=>{"use strict"});var Ld=p(()=>{"use strict"});function yg(){qd+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${qd}-${e}`}var vn,qd,jo=p(()=>{"use strict";vn=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??yg,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))}},qd=0;s(yg,"defaultNextSpanId")});function wg(){zd+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${zd}-${e}`}function Wo(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??wg)(),r=t(),i=e.name??"trace",o=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new vn({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,Fo=p(()=>{"use strict";jo();zd=0;s(wg,"defaultNextTraceId");s(Wo,"createTrace")});function No(e){for(let t of Do)try{t.onSpanStart(e)}catch{}}function Lo(e){for(let t of Do)try{t.onSpanEnd(e)}catch{}}function qo(e){for(let t of Do)try{t.onTraceEnd(e)}catch{}}var Do,zo=p(()=>{"use strict";Do=[];s(No,"_emitSpanStart");s(Lo,"_emitSpanEnd");s(qo,"_emitTraceEnd")});var Ir,Ud,Vd=p(()=>{"use strict";Fo();zo();Ir=class{static{s(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Wo({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:No,onSpanEnd:Lo,onTraceEnd:qo})}},Ud=new Ir});var Kd=p(()=>{"use strict"});var Yd=p(()=>{"use strict"});var Uo=p(()=>{"use strict";jo();Fo();Vd();zo();Kd();Yd()});var kn=p(()=>{"use strict"});var $r=p(()=>{"use strict"});var xg,Q0,Vo=p(()=>{"use strict";pe();kn();$r();xg=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],Q0=new Set(xg)});var Ko=p(()=>{"use strict";kn();$r()});var Yo=p(()=>{"use strict"});var Go=p(()=>{"use strict"});var Bo=p(()=>{"use strict"});var Zo=p(()=>{"use strict";Uo();Vo();Ko();Yo();Go();Bo();un()});var Zd=p(()=>{"use strict"});var Hd=p(()=>{"use strict"});var Jd=p(()=>{"use strict"});var el=p(()=>{"use strict";kn();Zd();Hd();Jd()});import{homedir as Vg}from"node:os";import{isAbsolute as mC,normalize as Kg,resolve as Yg,sep as tl}from"node:path";import{join as rl}from"node:path";function wt(){if(nl)return nl;let e=process.env[Bg];return e&&e.length>0?e:rl(Vg(),Gg)}function Y(...e){return rl(wt(),...e)}function xn(e,t){let n=s(a=>{let c=Kg(Yg(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),o=i.endsWith(tl)?i:`${i}${tl}`;return r===i||r.startsWith(o)}var Gg,Bg,nl,G=p(()=>{"use strict";Gg=".kodax",Bg="KODAX_HOME";s(wt,"getAgentConfigHome");s(Y,"getAgentConfigPath");s(xn,"isPathInsideDirectory")});var il=p(()=>{"use strict";Pn();G()});var Ho=p(()=>{"use strict"});import{spawnSync as Tn}from"node:child_process";import{readFileSync as Zg}from"node:fs";function al(e,t){let n=!1;try{process.kill(-e,t),n=!0}catch{}try{process.kill(e,t),n=!0}catch{}return n}function Jo(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function es(e){return Jo(-e)||Jo(e)}async function cl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!es(e))return!0;await new Promise(r=>setTimeout(r,50))}return!es(e)}function Hg(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 Jg(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 ey(){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=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Rn,windowsHide:!0});if(!t.error&&t.status===0){let o=Hg(t.stdout);if(o.length>0)return o}let n=Date.now(),r=Tn("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:Rn,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:Jg(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 ty(){let e=["$source = @'",fl,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
- `),t=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Rn,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 Ar(){return ty()??ey()}function Lt(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=Ar()?.find(i=>i.pid===e);return r?.creationTime==="0"?void 0:r?.creationTime}if(process.platform==="linux")try{let r=Zg(`/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=Tn("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:Rn,windowsHide:!0}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function ny(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)||!ry(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 ry(e,t){if(e==="0"||t===void 0||t==="0")return!0;try{return BigInt(e)>=BigInt(t)}catch{return!1}}function iy(e,t=Ar()){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 dl(e){let t=Ar();if(t===void 0)return;let n=iy([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 oy(e){return[e.root.pid,...e.descendants.map(t=>t.pid),...e.uncertainDescendantPids].some(Jo)}async function ll(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!oy(e))return dl(e)===!0;await new Promise(r=>setTimeout(r,50))}return dl(e)===!0}function ul(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 = @'",fl,"'@","Add-Type -TypeDefinition $source",...n].join(`
93
- `),i=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",r],{encoding:"utf8",timeout:t,windowsHide:!0});return!i.error&&i.status===0}function sy(e,t){let n=Ar();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=ny(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 ay(e,t,n){let r=[e.root,...e.descendants],i=ul(r,t);return e.completeTree?await ll(e,n)?Cr:i?(ul(r,t),await ll(e,n)?Cr:Ze):Ze:Ze}function cy(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 Xr(e,t={}){if(process.platform==="win32"){let r=t.taskkillMs??Rn,i=t.forceMs??ol,o=t.expectedProcessStartIdentity;if(o===void 0)return Ze;let a=cy(e,o,t.expectedProcessTreeIdentities,t.expectedProcessTreeComplete===!0),d=sy(e,o)??a;return d===void 0||d===null?Ze:ay(d,r,i)}if(t.expectedProcessStartIdentity!==void 0)return es(e)?Ze:sl;let n=t.forceMs??ol;return al(e,"SIGTERM")?await cl(e,n)?Cr:(al(e,"SIGKILL"),await cl(e,n)?Cr:Ze):sl}var ol,Rn,TC,RC,fl,Cr,sl,Ze,Mr=p(()=>{"use strict";ol=2e3,Rn=5e3,TC=String.raw`
89
+ }`});import{ClientSideConnection as _Q,PROTOCOL_VERSION as QQ,ndJsonStream as EQ}from"@agentclientprotocol/sdk";var Bc=p(()=>{"use strict";bo()});var _r=p(()=>{"use strict";hn();Bc();yt();gn()});var Po=p(()=>{"use strict";bo()});var vo=p(()=>{"use strict"});var Zc=p(()=>{"use strict";Po();vo()});var ko=p(()=>{"use strict"});import Hc from"node:fs";import Jc from"node:os";import ed from"node:path";function td(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 PO(){let e=ed.join(Jc.homedir(),".codex","config.toml");try{return Hc.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function vO(){let e=ed.join(Jc.homedir(),".gemini","settings.json");try{let t=JSON.parse(Hc.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 PO()||yO}function Dt(){return vO()||wO}function yn(){return td([Ft(),...SO])}function wn(){return td([Dt(),...bO])}var yO,wO,SO,bO,Sn=p(()=>{"use strict";yO="gpt-5.4",wO="auto-gemini-3",SO=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],bO=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];s(td,"dedupePreserveOrder");s(PO,"readCodexConfiguredModel");s(vO,"readGeminiConfiguredModel");s(Ft,"getCodexCliDefaultModel");s(Dt,"getGeminiCliDefaultModel");s(yn,"getCodexCliKnownModels");s(wn,"getGeminiCliKnownModels")});var lE,uE,nd=p(()=>{"use strict";_r();Zc();ko();Sn();yt();lE=Dt(),uE=wn()});var rd=p(()=>{"use strict";Po();vo()});var vE,kE,id=p(()=>{"use strict";_r();rd();ko();Sn();vE=Ft(),kE=yn()});function Ce(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wt(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 wt(e,t)}function md(e,t){if(e!==void 0){if(typeof e!="string"||!dd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${dd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Ze(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 K(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function fd(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)=>wt(n,`${t}[${r}]`))}}function xO(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=wt(i,`${t}.${r}`);return n}function TO(e,t){if(e!==void 0){if(typeof e!="string"||!cd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${cd.join(", ")}, got ${JSON.stringify(e)}`);return e}}function To(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 RO(e,t){if(typeof e!="string"||!sd.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${sd.join(", ")}, got ${JSON.stringify(e)}`);return e}function _O(e,t){if(e!==void 0){if(typeof e!="string"||!ad.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ad.join(", ")}, got ${JSON.stringify(e)}`);return e}}function pd(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=RO(e.effortStrategy,`${t}.effortStrategy`),r=TO(e.reasoningPreset,`${t}.reasoningPreset`),i=_O(e.thinkingStrategy,`${t}.thinkingStrategy`),o=Nt(e.defaultEffort,`${t}.defaultEffort`),a=xO(e.effortAliases,`${t}.effortAliases`),c=fd(e.disabledEfforts,`${t}.disabledEfforts`),d=fd(e.localRejectEfforts,`${t}.localRejectEfforts`),l=K(e.allowCustomEffort,`${t}.allowCustomEffort`),f=K(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=K(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=K(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=K(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),S=K(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),x=K(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),h=K(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,b)=>{if(!Ce(P))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${b}] must be an object`);return{value:wt(P.value,`${t}.supportedEfforts[${b}].value`),...Nt(P.description,`${t}.supportedEfforts[${b}].description`)!==void 0?{description:Nt(P.description,`${t}.supportedEfforts[${b}].description`)}:{},...K(P.isDefault,`${t}.supportedEfforts[${b}].isDefault`)!==void 0?{isDefault:K(P.isDefault,`${t}.supportedEfforts[${b}].isDefault`)}:{},...K(P.isUserVisible,`${t}.supportedEfforts[${b}].isUserVisible`)!==void 0?{isUserVisible:K(P.isUserVisible,`${t}.supportedEfforts[${b}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Ce(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let P={};for(let[b,Q]of Object.entries(e.budgetByEffort))P[b]=Ze(Q,`${t}.budgetByEffort.${b}`)??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),S!==void 0&&(y.supportsManualThinkingBudget=S),x!==void 0&&(y.supportsDisabledThinking=x),h!==void 0&&(y.requiresEffortBetaHeader=h),y}function hd(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?pd(n,`${t}.reasoningProfile`):pd(r,`${t}.reasoningCapabilityV2`)}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 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 IO(e,t){if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=wt(e.id,`${t}.id`),r=Nt(e.wireModel,`${t}.wireModel`),i=Nt(e.displayName,`${t}.displayName`),o=Ze(e.contextWindow,`${t}.contextWindow`),a=Ze(e.maxOutputTokens,`${t}.maxOutputTokens`),c=md(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=Ze(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),l=K(e.replayReasoningContent,`${t}.replayReasoningContent`),f=K(e.strictThinkingSignature,`${t}.strictThinkingSignature`),u=Ze(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:To(e.reasoningCapability,`${t}.reasoningCapability`),g=hd(e,t),S={id:n};return r!==void 0&&(S.wireModel=r),i!==void 0&&(S.displayName=i),o!==void 0&&(S.contextWindow=o),a!==void 0&&(S.maxOutputTokens=a),c!==void 0&&(S.maxOutputTokensField=c),d!==void 0&&(S.thinkingBudgetCap=d),m!==void 0&&(S.reasoningCapability=m),g!==void 0&&(S.reasoningProfile=g),l!==void 0&&(S.replayReasoningContent=l),f!==void 0&&(S.strictThinkingSignature=f),u!==void 0&&(S.streamMaxDurationMs=u),S}function $O(e,t){if(e===void 0)return;if(!Ce(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=To(i,`${t}.${r}`);return n}function CO(e,t){if(!Ce(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=K(e.cliBridge,`providers.${t}.cliBridge`),r=wt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=To(e.reasoningCapability,`providers.${t}.reasoningCapability`),o=hd(e,`providers.${t}`),a=QO(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=EO(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=Ze(e.contextWindow,`providers.${t}.contextWindow`),l=Ze(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=md(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Ze(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=K(e.supportsThinking,`providers.${t}.supportsThinking`),g=$O(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),S=Nt(e.model,`providers.${t}.model`);if(n&&(S!==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&&S===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let x;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);x=e.models.map((P,b)=>IO(P,`providers.${t}.models[${b}]`));let y=new Set([...S===void 0?[]:[S],...x.map(P=>P.id)]);for(let[P,b]of x.entries())if(b.wireModel!==void 0&&!y.has(b.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${P}].wireModel must reference a declared model, got ${JSON.stringify(b.wireModel)}`)}let h={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return o!==void 0&&(h.reasoningProfile=o),S!==void 0&&(h.model=S),x!==void 0&&(h.models=x),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 Od(e){if(!Ce(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=wt(e.updatedAt,"updatedAt");if(!Ce(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]=CO(i,r);return{version:1,updatedAt:t,providers:n}}var od,sd,ad,cd,dd,ld,ud,gd=p(()=>{"use strict";od=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],sd=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],ad=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],cd=["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"],dd=["max_tokens","max_completion_tokens"],ld=["native","image-input-native","cli-bridge","image-input-cli-bridge"],ud=["count-tokens","models-list","minimal-message","unsupported"];s(Ce,"isPlainObject");s(wt,"requireString");s(Nt,"optionalString");s(md,"optionalMaxOutputTokensField");s(Ze,"optionalNumber");s(K,"optionalBoolean");s(fd,"optionalStringArray");s(xO,"optionalStringMap");s(TO,"optionalReasoningPreset");s(To,"requireReasoningCapability");s(RO,"requireEffortStrategy");s(_O,"optionalThinkingStrategy");s(pd,"validateReasoningProfile");s(hd,"validateReasoningProfileField");s(QO,"requireProfileName");s(EO,"requireVerifyStrategy");s(IO,"validateModelDescriptor");s($O,"validateModelReasoningCapabilities");s(CO,"validateProviderEntry");s(Od,"validateProviderCapabilitiesJson")});import{existsSync as AO,readFileSync as XO}from"node:fs";import Lt from"node:path";import{fileURLToPath as MO}from"node:url";function WO(){if(process.env.KODAX_BUNDLED==="true")return Lt.join(Lt.dirname(process.execPath),"provider-capabilities.json");let e=Lt.dirname(MO(import.meta.url)),t=[Lt.join(e,"provider-capabilities.json"),Lt.join(Lt.dirname(e),"provider-capabilities.json")];for(let n of t)if(AO(n))return n;return t[0]}function FO(e){if(e.models){for(let t of e.models)t.reasoningProfile&&yd(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&yd(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function yd(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 DO(e){if(e==="gemini-cli"){let t=Dt();return{model:t,models:wn().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Ft();return{model:t,models:yn().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function NO(e,t){let n=jO[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=DO(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 wd(){if(Qr)return Qr;let e=WO(),t;try{let i=XO(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=Od(t),r={};for(let[i,o]of Object.entries(n.providers))r[i]=FO(NO(i,o));return Qr=Object.freeze(r),Qr}var jO,Qr,Sd=p(()=>{"use strict";yt();Sn();gd();jO=Object.freeze({native:mn,"image-input-native":Lc,"cli-bridge":Sr,"image-input-cli-bridge":qc}),Qr=null;s(WO,"resolveJsonPath");s(FO,"deepFreezeSnapshot");s(yd,"freezeReasoningProfile");s(DO,"resolveCliBridgeModels");s(NO,"buildSnapshot");s(wd,"getProviderSnapshots")});import YE from"@anthropic-ai/sdk";var Er,bd,bn=p(()=>{"use strict";Tr();Rr();nd();id();Wt();wr();yt();Sd();Er=wd(),bd=process.env.KODAX_PROVIDER??"zhipu-coding"});var Eo=p(()=>{"use strict";Tr();Rr();gt()});var Ir=p(()=>{"use strict";Eo();bn();yt()});var Ao=p(()=>{"use strict";bn();Ir()});var Md=p(()=>{"use strict";bn();Ir();Ao()});var Xo=p(()=>{"use strict";hn();Tr();Rr();_r();bn();Eo();Ir();Ao();Md();kr()});var Fd=p(()=>{"use strict";Xo();gt();go()});var Mo=p(()=>{"use strict"});var jo=p(()=>{"use strict";Mo()});var Dd=p(()=>{"use strict";jo();On()});var Pn=p(()=>{"use strict";wr();Wt();Oo();Dc();go();gt();Fd();Xo();Sn();vr();On();pn();Mo();jo();Dd();yo();gn()});function L(e){let t=yr(e),n=wg.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Nd(t)}
90
+ `)}catch{}}function Nd(e){let t=yr(e),n=Sg(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function Sg(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 wg,pe=p(()=>{"use strict";Pn();wg=[];s(L,"emitKodaXDiagnostic");s(Nd,"formatKodaXDiagnostic");s(Sg,"formatDiagnosticDetail")});var Ld=p(()=>{"use strict"});var qd=p(()=>{"use strict"});var zd=p(()=>{"use strict"});function bg(){Ud+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${Ud}-${e}`}var vn,Ud,Wo=p(()=>{"use strict";vn=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??bg,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))}},Ud=0;s(bg,"defaultNextSpanId")});function Pg(){Vd+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${Vd}-${e}`}function Fo(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??Pg)(),r=t(),i=e.name??"trace",o=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new vn({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 Vd,Do=p(()=>{"use strict";Wo();Vd=0;s(Pg,"defaultNextTraceId");s(Fo,"createTrace")});function Lo(e){for(let t of No)try{t.onSpanStart(e)}catch{}}function qo(e){for(let t of No)try{t.onSpanEnd(e)}catch{}}function zo(e){for(let t of No)try{t.onTraceEnd(e)}catch{}}var No,Uo=p(()=>{"use strict";No=[];s(Lo,"_emitSpanStart");s(qo,"_emitSpanEnd");s(zo,"_emitTraceEnd")});var $r,Kd,Yd=p(()=>{"use strict";Do();Uo();$r=class{static{s(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Fo({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:Lo,onSpanEnd:qo,onTraceEnd:zo})}},Kd=new $r});var Gd=p(()=>{"use strict"});var Bd=p(()=>{"use strict"});var Vo=p(()=>{"use strict";Wo();Do();Yd();Uo();Gd();Bd()});var kn=p(()=>{"use strict"});var Cr=p(()=>{"use strict"});var _g,X0,Ko=p(()=>{"use strict";pe();kn();Cr();_g=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],X0=new Set(_g)});var Yo=p(()=>{"use strict";kn();Cr()});var Go=p(()=>{"use strict"});var Bo=p(()=>{"use strict"});var Zo=p(()=>{"use strict"});var Ho=p(()=>{"use strict";Vo();Ko();Yo();Go();Bo();Zo();un()});var Jd=p(()=>{"use strict"});var el=p(()=>{"use strict"});var tl=p(()=>{"use strict"});var nl=p(()=>{"use strict";kn();Jd();el();tl()});import{homedir as Gg}from"node:os";import{isAbsolute as SC,normalize as Bg,resolve as Zg,sep as rl}from"node:path";import{join as ol}from"node:path";function St(){if(il)return il;let e=process.env[Jg];return e&&e.length>0?e:ol(Gg(),Hg)}function Y(...e){return ol(St(),...e)}function xn(e,t){let n=s(a=>{let c=Bg(Zg(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),o=i.endsWith(rl)?i:`${i}${rl}`;return r===i||r.startsWith(o)}var Hg,Jg,il,G=p(()=>{"use strict";Hg=".kodax",Jg="KODAX_HOME";s(St,"getAgentConfigHome");s(Y,"getAgentConfigPath");s(xn,"isPathInsideDirectory")});var sl=p(()=>{"use strict";Pn();G()});var Jo=p(()=>{"use strict"});import{spawnSync as Tn}from"node:child_process";import{readFileSync as ey}from"node:fs";function dl(e,t){let n=!1;try{process.kill(-e,t),n=!0}catch{}try{process.kill(e,t),n=!0}catch{}return n}function es(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}function ts(e){return es(-e)||es(e)}async function ll(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!ts(e))return!0;await new Promise(r=>setTimeout(r,50))}return!ts(e)}function ty(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 ny(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 ry(){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=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Rn,windowsHide:!0});if(!t.error&&t.status===0){let o=ty(t.stdout);if(o.length>0)return o}let n=Date.now(),r=Tn("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:Rn,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:ny(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 iy(){let e=["$source = @'",ml,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
+ `),t=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Rn,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 Xr(){return iy()??ry()}function Ae(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=Xr()?.find(i=>i.pid===e);return r?.creationTime==="0"?void 0:r?.creationTime}if(process.platform==="linux")try{let r=ey(`/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=Tn("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:Rn,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)||!sy(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 sy(e,t){if(e==="0"||t===void 0||t==="0")return!0;try{return BigInt(e)>=BigInt(t)}catch{return!1}}function ay(e,t=Xr()){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 ul(e){let t=Xr();if(t===void 0)return;let n=ay([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 cy(e){return[e.root.pid,...e.descendants.map(t=>t.pid),...e.uncertainDescendantPids].some(es)}async function fl(e,t){let n=Date.now()+t;for(;Date.now()<n;){if(!cy(e))return ul(e)===!0;await new Promise(r=>setTimeout(r,50))}return ul(e)===!0}function pl(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 = @'",ml,"'@","Add-Type -TypeDefinition $source",...n].join(`
93
+ `),i=Tn("powershell.exe",["-NoProfile","-NonInteractive","-Command",r],{encoding:"utf8",timeout:t,windowsHide:!0});return!i.error&&i.status===0}function dy(e,t){let n=Xr();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 ly(e,t,n){let r=[e.root,...e.descendants],i=pl(r,t);return e.completeTree?await fl(e,n)?Ar:i?(pl(r,t),await fl(e,n)?Ar:He):He:He}function uy(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 Mr(e,t={}){if(process.platform==="win32"){let r=t.taskkillMs??Rn,i=t.forceMs??al,o=t.expectedProcessStartIdentity;if(o===void 0)return He;let a=uy(e,o,t.expectedProcessTreeIdentities,t.expectedProcessTreeComplete===!0),d=dy(e,o)??a;return d===void 0||d===null?He:ly(d,r,i)}if(t.expectedProcessStartIdentity!==void 0)return ts(e)?He:cl;let n=t.forceMs??al;return dl(e,"SIGTERM")?await ll(e,n)?Ar:(dl(e,"SIGKILL"),await ll(e,n)?Ar:He):cl}var al,Rn,$C,CC,ml,Ar,cl,He,_n=p(()=>{"use strict";al=2e3,Rn=5e3,$C=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
- }`,RC=String.raw`
160
+ }`,CC=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
- }`,fl=String.raw`
168
+ }`,ml=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
- }`,Cr=Object.freeze({status:"terminated"}),sl=Object.freeze({status:"already-exited"}),Ze=Object.freeze({status:"unknown"});s(al,"signalPosixPidTree");s(Jo,"signalTargetExists");s(es,"isPosixPidTreeAlive");s(cl,"waitForPosixPidTreeExit");s(Hg,"parseWindowsProcessSnapshotJson");s(Jg,"parseWmicCreationTime");s(ey,"readWindowsProcessSnapshotFallback");s(ty,"readWindowsProcessSnapshotNative");s(Ar,"readWindowsProcessSnapshot");s(Lt,"readProcessStartIdentity");s(ny,"collectDescendantIdentities");s(ry,"windowsCreationAtLeast");s(iy,"currentCapturedWindowsPids");s(dl,"capturedWindowsProcessesGone");s(oy,"capturedWindowsPidMayBeAlive");s(ll,"waitForCapturedWindowsProcessesExit");s(ul,"terminateCapturedWindowsProcesses");s(sy,"captureWindowsProcessTree");s(ay,"killCapturedWindowsTree");s(cy,"retainedWindowsProcessTree");s(Xr,"killPidTree")});import{spawnSync as En}from"node:child_process";import{lstatSync as dy,mkdirSync as ly,realpathSync as pl,renameSync as uy,readdirSync as fy,readFileSync as bl,rmSync as Fr,writeFileSync as AC}from"node:fs";import Z from"node:path";function Nr(){return Y("runtime","processes","children")}function my(){return Y("processes","children")}function hy(){let e=my(),t=Z.dirname(Z.dirname(e));try{let n=pl.native(t),r=t;for(let i of["processes","children"]){r=Z.join(r,i);let o=dy(r);if(o.isSymbolicLink()||!o.isDirectory())throw new Error(`Legacy managed-child path is not a physical directory: ${r}`);let a=pl.native(r),c=Z.relative(n,a);if(c===".."||c.startsWith(`..${Z.sep}`)||Z.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 Pl(e,t){return Z.join(Nr(),`${e}.${t}.json`)}function _n(e){let t=Z.join(Nr(),".unresolved"),n=Z.join(t,Z.basename(e));try{return ly(t,{recursive:!0}),uy(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 ml(e,t){let n=Dr.get(e),r=Pl(e,t),i=kl(r);return i.status==="unsupported"||i.status==="current"&&i.record.registrationId!==t?!1:(Fr(r,{force:!0}),n?.record.registrationId===t&&Dr.delete(e),!0)}function Qn(e){try{return Fr(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 jr(e){try{return process.kill(e,0),!0}catch{return!1}}function Oy(e){return Z.basename(e).toLowerCase()}function hl(e,t){let n=t.toLowerCase(),r=e.toLowerCase();if(n.includes(r))return!0;let i=Z.basename(r);return i.length>3&&n.includes(i)}function gy(e){return e.length>3&&!e.startsWith("-")}function Ol(e,t){let n=t.toLowerCase();if(!hl(e.command,n)&&!n.includes(Oy(e.command)))return!1;let r=e.args?.filter(gy)??[];return r.length===0||r.some(i=>hl(i,n))}function yy(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((i,o)=>i===r[o])}function wy(e){if(e.ownerPid!==process.pid)return!1;let t=Dr.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&&yy(t.record.args,e.args)&&t.record.cwd===e.cwd}function Sy(e){if(process.platform==="win32"){let r=vl(e);if(r.status!=="found")return;let i=ts(r.info.CreationDate);return i===void 0?void 0:`windows:${(BigInt(i)+11644473600000n).toString()}`}if(process.platform==="linux")try{let r=bl(`/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=En("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:In}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function gl(e,t){if(!jr(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 ts(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 by(e){return e.replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function Py(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=by(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 Wr(e){let t=En("wmic",["process","where",`ProcessId=${e}`,"get","ProcessId,CreationDate,CommandLine","/format:list"],{encoding:"utf8",timeout:In,windowsHide:!0});if(t.error)return{status:"unknown"};if(t.status!==0)return{status:"unknown"};let n=Py(t.stdout);return n?{status:"found",info:n}:{status:"missing"}}function vl(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=En("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:In,windowsHide:!0});if(n.error||n.status!==0)return Wr(e);if(!n.stdout.trim())return{status:"missing"};try{return{status:"found",info:JSON.parse(n.stdout)}}catch{return Wr(e)}}function vy(e){let t=En("ps",["-p",String(e),"-o","command="],{encoding:"utf8",timeout:In});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 ky(e){if(process.platform==="win32"){let n=vl(e.pid);if(n.status==="unknown")return;if(n.status==="missing")return!1;let r=n.info;if(!r?.CommandLine||!Ol(e,r.CommandLine))return!1;let i=ts(r.CreationDate);return i===void 0||e.processStartIdentity===void 0?void 0:(BigInt(i)+11644473600000n).toString()===e.processStartIdentity}let t=vy(e.pid);if(t.status!=="unknown")return t.status==="missing"?!1:Ol(e,t.commandLine)}function kl(e){try{let t=JSON.parse(bl(e,"utf8"));return _y(t)?t.version!==py?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 xy(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 Ty(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=En("powershell.exe",["-NoProfile","-NonInteractive","-Command",n],{encoding:"utf8",timeout:In,windowsHide:!0}),i=r.error||r.status!==0||!r.stdout.trim()?void 0:xy(r.stdout);if(i===void 0)return new Map(t.map(a=>[a,Wr(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 Ry(e){return process.platform!=="win32"?new Map(e.map(t=>[t,Sy(t)])):new Map([...Ty(e)].map(([t,n])=>{if(n.status!=="found")return[t,void 0];let r=ts(n.info.CreationDate);return[t,r===void 0?void 0:`windows:${(BigInt(r)+11644473600000n).toString()}`]}))}function _y(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 ns(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=hy(),u=[{directory:Nr(),current:!0},...f===void 0?[]:[{directory:f,current:!1}]];for(let h of u)try{a.push(...fy(h.directory).filter(y=>y.endsWith(".json")).map(y=>({file:y,filePath:Z.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:kl(h)})),g=m.flatMap(({persisted:h})=>h.status!=="invalid"&&jr(h.record.ownerPid)?[h.record.ownerPid]:[]),S=Ry(g),x=s(h=>S.get(h),"readOwnerStartIdentity");for(let{filePath:h,current:y,persisted:k}of m){if(!y){if(k.status==="invalid"){Qn(h)?n+=1:d();continue}_n(h)&&(o+=1),d(k.record.ownerPid);continue}if(k.status==="unsupported"){if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&k.record.ownerPid===process.pid){Fr(h,{force:!0}),n+=1;continue}gl(k.record,x)==="gone"&&!jr(k.record.pid)&&_n(h)&&(o+=1),d(k.record.ownerPid);continue}if(k.status==="invalid"){Fr(h,{force:!0}),n+=1;continue}let v=k.record;if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&v.ownerPid===process.pid){Qn(h)?n+=1:d(v.ownerPid);continue}if(!e.includeCurrentOwner&&v.ownerPid===process.pid){let b=x(process.pid);if(v.ownerProcessStartIdentity===void 0||b===void 0||v.ownerProcessStartIdentity===b){d(v.ownerPid);continue}}if(v.ownerPid!==process.pid&&gl(v,x)!=="gone"){d(v.ownerPid);continue}let R=jr(v.pid);if(!R){if(process.platform!=="win32"){Qn(h)?n+=1:d(v.ownerPid);continue}let b=v.processTreeIdentities?.find(_=>_.pid===v.pid);if(v.processStartIdentity===void 0||b?.creationTime!==v.processStartIdentity){_n(h)&&(o+=1),d(v.ownerPid);continue}}let P=R?wy(v)?!0:ky(v):!0;if(P===void 0){d(v.ownerPid);continue}if(!P){if(process.platform!=="win32"){Qn(h)?n+=1:d(v.ownerPid);continue}let b=v.processTreeIdentities?.find(_=>_.pid===v.pid);if(v.processStartIdentity===void 0||b?.creationTime!==v.processStartIdentity){_n(h)&&(o+=1),d(v.ownerPid);continue}}(await Xr(v.pid,{...v.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:v.processStartIdentity},...v.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:v.processTreeIdentities},expectedProcessTreeComplete:v.processTreeComplete===!0})).status!=="unknown"?Qn(h)?t+=1:d(v.ownerPid):(process.platform==="win32"&&(!R||P===!1)&&_n(h)&&(o+=1),d(v.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:Z.join(Nr(),".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=[...Dr.values()].filter(({record:c})=>c.ownerPid===process.pid);for(let{record:c}of a){if(o.add(Z.basename(Pl(c.pid,c.registrationId))),process.platform==="win32"&&e.currentOwnerJobContained===!0){ml(c.pid,c.registrationId)?n+=1:(r+=1,i+=1);continue}try{(await Xr(c.pid,{...c.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:c.processStartIdentity},...c.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:c.processTreeIdentities},expectedProcessTreeComplete:c.processTreeComplete===!0})).status==="unknown"||!ml(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 py,In,Dr,rs=p(()=>{"use strict";pe();G();Mr();py=4,In=5e3,Dr=new Map;s(Nr,"registryDir");s(my,"legacyRegistryDir");s(hy,"verifiedLegacyRegistryDir");s(Pl,"registryPath");s(_n,"quarantineRecord");s(ml,"removeRecord");s(Qn,"removePersistedRecord");s(jr,"isPidAlive");s(Oy,"commandNeedle");s(hl,"tokenMatches");s(gy,"significantArg");s(Ol,"commandMatches");s(yy,"argsMatch");s(wy,"activeChildMatchesRecord");s(Sy,"processStartIdentity");s(gl,"managedOwnerState");s(ts,"parseWindowsDate");s(by,"decodeWmicValue");s(Py,"parseWmicListOutput");s(Wr,"getWindowsProcessInfoViaWmic");s(vl,"getWindowsProcessInfo");s(vy,"getPosixCommandLine");s(ky,"isConfirmedRecord");s(kl,"readRecord");s(xy,"parseWindowsProcessInfoRows");s(Ty,"getWindowsProcessInfos");s(Ry,"processStartIdentities");s(_y,"isManagedChildRecordBase");s(ns,"cleanupRegisteredManagedChildren");s(Qy,"cleanupActiveCurrentOwnerChildren")});var xl,Ey,Iy,NC,Tl=p(()=>{"use strict";xl="KODAX_EFFECT_JOB_PAYLOAD",Ey=String.raw`
255
+ }`,Ar=Object.freeze({status:"terminated"}),cl=Object.freeze({status:"already-exited"}),He=Object.freeze({status:"unknown"});s(dl,"signalPosixPidTree");s(es,"signalTargetExists");s(ts,"isPosixPidTreeAlive");s(ll,"waitForPosixPidTreeExit");s(ty,"parseWindowsProcessSnapshotJson");s(ny,"parseWmicCreationTime");s(ry,"readWindowsProcessSnapshotFallback");s(iy,"readWindowsProcessSnapshotNative");s(Xr,"readWindowsProcessSnapshot");s(Ae,"readProcessStartIdentity");s(oy,"collectDescendantIdentities");s(sy,"windowsCreationAtLeast");s(ay,"currentCapturedWindowsPids");s(ul,"capturedWindowsProcessesGone");s(cy,"capturedWindowsPidMayBeAlive");s(fl,"waitForCapturedWindowsProcessesExit");s(pl,"terminateCapturedWindowsProcesses");s(dy,"captureWindowsProcessTree");s(ly,"killCapturedWindowsTree");s(uy,"retainedWindowsProcessTree");s(Mr,"killPidTree")});import{spawnSync as In}from"node:child_process";import{lstatSync as fy,mkdirSync as py,realpathSync as hl,renameSync as my,readdirSync as hy,readFileSync as vl,rmSync as Fr,writeFileSync as DC}from"node:fs";import Z from"node:path";function Nr(){return Y("runtime","processes","children")}function gy(){return Y("processes","children")}function yy(){let e=gy(),t=Z.dirname(Z.dirname(e));try{let n=hl.native(t),r=t;for(let i of["processes","children"]){r=Z.join(r,i);let o=fy(r);if(o.isSymbolicLink()||!o.isDirectory())throw new Error(`Legacy managed-child path is not a physical directory: ${r}`);let a=hl.native(r),c=Z.relative(n,a);if(c===".."||c.startsWith(`..${Z.sep}`)||Z.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 kl(e,t){return Z.join(Nr(),`${e}.${t}.json`)}function Qn(e){let t=Z.join(Nr(),".unresolved"),n=Z.join(t,Z.basename(e));try{return py(t,{recursive:!0}),my(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 Ol(e,t){let n=Dr.get(e),r=kl(e,t),i=Tl(r);return i.status==="unsupported"||i.status==="current"&&i.record.registrationId!==t?!1:(Fr(r,{force:!0}),n?.record.registrationId===t&&Dr.delete(e),!0)}function En(e){try{return Fr(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 jr(e){try{return process.kill(e,0),!0}catch{return!1}}function wy(e){return Z.basename(e).toLowerCase()}function gl(e,t){let n=t.toLowerCase(),r=e.toLowerCase();if(n.includes(r))return!0;let i=Z.basename(r);return i.length>3&&n.includes(i)}function Sy(e){return e.length>3&&!e.startsWith("-")}function yl(e,t){let n=t.toLowerCase();if(!gl(e.command,n)&&!n.includes(wy(e.command)))return!1;let r=e.args?.filter(Sy)??[];return r.length===0||r.some(i=>gl(i,n))}function by(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((i,o)=>i===r[o])}function Py(e){if(e.ownerPid!==process.pid)return!1;let t=Dr.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&&by(t.record.args,e.args)&&t.record.cwd===e.cwd}function vy(e){if(process.platform==="win32"){let r=xl(e);if(r.status!=="found")return;let i=ns(r.info.CreationDate);return i===void 0?void 0:`windows:${(BigInt(i)+11644473600000n).toString()}`}if(process.platform==="linux")try{let r=vl(`/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=In("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:$n}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}function wl(e,t){if(!jr(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 ns(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 ky(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=ky(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 Wr(e){let t=In("wmic",["process","where",`ProcessId=${e}`,"get","ProcessId,CreationDate,CommandLine","/format:list"],{encoding:"utf8",timeout:$n,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 xl(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=In("powershell.exe",["-NoProfile","-NonInteractive","-Command",t],{encoding:"utf8",timeout:$n,windowsHide:!0});if(n.error||n.status!==0)return Wr(e);if(!n.stdout.trim())return{status:"missing"};try{return{status:"found",info:JSON.parse(n.stdout)}}catch{return Wr(e)}}function Ty(e){let t=In("ps",["-p",String(e),"-o","command="],{encoding:"utf8",timeout:$n});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 Ry(e){if(process.platform==="win32"){let n=xl(e.pid);if(n.status==="unknown")return;if(n.status==="missing")return!1;let r=n.info;if(!r?.CommandLine||!yl(e,r.CommandLine))return!1;let i=ns(r.CreationDate);return i===void 0||e.processStartIdentity===void 0?void 0:(BigInt(i)+11644473600000n).toString()===e.processStartIdentity}let t=Ty(e.pid);if(t.status!=="unknown")return t.status==="missing"?!1:yl(e,t.commandLine)}function Tl(e){try{let t=JSON.parse(vl(e,"utf8"));return Iy(t)?t.version!==Oy?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 _y(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 Qy(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=In("powershell.exe",["-NoProfile","-NonInteractive","-Command",n],{encoding:"utf8",timeout:$n,windowsHide:!0}),i=r.error||r.status!==0||!r.stdout.trim()?void 0:_y(r.stdout);if(i===void 0)return new Map(t.map(a=>[a,Wr(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 Ey(e){return process.platform!=="win32"?new Map(e.map(t=>[t,vy(t)])):new Map([...Qy(e)].map(([t,n])=>{if(n.status!=="found")return[t,void 0];let r=ns(n.info.CreationDate);return[t,r===void 0?void 0:`windows:${(BigInt(r)+11644473600000n).toString()}`]}))}function Iy(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 rs(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 $y(e);t+=l.killed,n+=l.pruned,r+=l.skipped,i+=l.unresolved;let f=yy(),u=[{directory:Nr(),current:!0},...f===void 0?[]:[{directory:f,current:!1}]];for(let h of u)try{a.push(...hy(h.directory).filter(y=>y.endsWith(".json")).map(y=>({file:y,filePath:Z.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:Tl(h)})),g=m.flatMap(({persisted:h})=>h.status!=="invalid"&&jr(h.record.ownerPid)?[h.record.ownerPid]:[]),S=Ey(g),x=s(h=>S.get(h),"readOwnerStartIdentity");for(let{filePath:h,current:y,persisted:P}of m){if(!y){if(P.status==="invalid"){En(h)?n+=1:d();continue}Qn(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="unsupported"){if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&P.record.ownerPid===process.pid){Fr(h,{force:!0}),n+=1;continue}wl(P.record,x)==="gone"&&!jr(P.record.pid)&&Qn(h)&&(o+=1),d(P.record.ownerPid);continue}if(P.status==="invalid"){Fr(h,{force:!0}),n+=1;continue}let b=P.record;if(process.platform==="win32"&&e.currentOwnerJobContained===!0&&b.ownerPid===process.pid){En(h)?n+=1:d(b.ownerPid);continue}if(!e.includeCurrentOwner&&b.ownerPid===process.pid){let w=x(process.pid);if(b.ownerProcessStartIdentity===void 0||w===void 0||b.ownerProcessStartIdentity===w){d(b.ownerPid);continue}}if(b.ownerPid!==process.pid&&wl(b,x)!=="gone"){d(b.ownerPid);continue}let Q=jr(b.pid);if(!Q){if(process.platform!=="win32"){En(h)?n+=1:d(b.ownerPid);continue}let w=b.processTreeIdentities?.find(_=>_.pid===b.pid);if(b.processStartIdentity===void 0||w?.creationTime!==b.processStartIdentity){Qn(h)&&(o+=1),d(b.ownerPid);continue}}let T=Q?Py(b)?!0:Ry(b):!0;if(T===void 0){d(b.ownerPid);continue}if(!T){if(process.platform!=="win32"){En(h)?n+=1:d(b.ownerPid);continue}let w=b.processTreeIdentities?.find(_=>_.pid===b.pid);if(b.processStartIdentity===void 0||w?.creationTime!==b.processStartIdentity){Qn(h)&&(o+=1),d(b.ownerPid);continue}}(await Mr(b.pid,{...b.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:b.processStartIdentity},...b.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:b.processTreeIdentities},expectedProcessTreeComplete:b.processTreeComplete===!0})).status!=="unknown"?En(h)?t+=1:d(b.ownerPid):(process.platform==="win32"&&(!Q||T===!1)&&Qn(h)&&(o+=1),d(b.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:Z.join(Nr(),".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 $y(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=[...Dr.values()].filter(({record:c})=>c.ownerPid===process.pid);for(let{record:c}of a){if(o.add(Z.basename(kl(c.pid,c.registrationId))),process.platform==="win32"&&e.currentOwnerJobContained===!0){Ol(c.pid,c.registrationId)?n+=1:(r+=1,i+=1);continue}try{(await Mr(c.pid,{...c.processStartIdentity===void 0?{}:{expectedProcessStartIdentity:c.processStartIdentity},...c.processTreeIdentities===void 0?{}:{expectedProcessTreeIdentities:c.processTreeIdentities},expectedProcessTreeComplete:c.processTreeComplete===!0})).status==="unknown"||!Ol(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 Oy,$n,Dr,is=p(()=>{"use strict";pe();G();_n();Oy=4,$n=5e3,Dr=new Map;s(Nr,"registryDir");s(gy,"legacyRegistryDir");s(yy,"verifiedLegacyRegistryDir");s(kl,"registryPath");s(Qn,"quarantineRecord");s(Ol,"removeRecord");s(En,"removePersistedRecord");s(jr,"isPidAlive");s(wy,"commandNeedle");s(gl,"tokenMatches");s(Sy,"significantArg");s(yl,"commandMatches");s(by,"argsMatch");s(Py,"activeChildMatchesRecord");s(vy,"processStartIdentity");s(wl,"managedOwnerState");s(ns,"parseWindowsDate");s(ky,"decodeWmicValue");s(xy,"parseWmicListOutput");s(Wr,"getWindowsProcessInfoViaWmic");s(xl,"getWindowsProcessInfo");s(Ty,"getPosixCommandLine");s(Ry,"isConfirmedRecord");s(Tl,"readRecord");s(_y,"parseWindowsProcessInfoRows");s(Qy,"getWindowsProcessInfos");s(Ey,"processStartIdentities");s(Iy,"isManagedChildRecordBase");s(rs,"cleanupRegisteredManagedChildren");s($y,"cleanupActiveCurrentOwnerChildren")});var Rl,Cy,Ay,KC,_l=p(()=>{"use strict";Rl="KODAX_EFFECT_JOB_PAYLOAD",Cy=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
- }`,Iy=String.raw`
415
+ }`,Ay=String.raw`
416
416
  $ErrorActionPreference = 'Stop'
417
417
  try {
418
418
  $payload = [Text.Encoding]::UTF8.GetString(
419
- [Convert]::FromBase64String($env:${xl})) | ConvertFrom-Json
420
- Remove-Item Env:${xl} -ErrorAction SilentlyContinue
419
+ [Convert]::FromBase64String($env:${Rl})) | ConvertFrom-Json
420
+ Remove-Item Env:${Rl} -ErrorAction SilentlyContinue
421
421
  $source = @'
422
- ${Ey}
422
+ ${Cy}
423
423
  '@
424
424
  Add-Type -TypeDefinition $source
425
425
  [KodaXEffectJob]::Run(
@@ -431,30 +431,29 @@ ${Ey}
431
431
  [Console]::Out.WriteLine('ERROR:' + $_.Exception.Message)
432
432
  [Console]::Out.Flush()
433
433
  exit 1
434
- }`,NC=Buffer.from(Iy,"utf16le").toString("base64")});var Rl=p(()=>{"use strict"});var is=p(()=>{"use strict"});var _l=p(()=>{"use strict"});var Ql=p(()=>{"use strict";is()});var ss=p(()=>{"use strict";is();_l();Ql()});var qt=p(()=>{"use strict"});var $l=p(()=>{"use strict";qt()});import{Jimp as dA}from"jimp";var Dy,cs=p(()=>{"use strict";qt();Dy=Math.floor(3.75*1024*1024)});var Cl=p(()=>{"use strict";qt();cs()});var Ly,Al=p(()=>{"use strict";Ly=1440*60*1e3});var ds=p(()=>{"use strict";Pn()});var ls=p(()=>{"use strict";qt();ds()});var Xl=p(()=>{"use strict";ss();ls()});var Ml=p(()=>{"use strict";qt();$l();cs();Cl();Al();ds();ls();Xl()});var $n=p(()=>{"use strict"});var Dl=p(()=>{"use strict";Zo();$n();$n();$n()});var Nl=p(()=>{"use strict"});var Ll=p(()=>{"use strict";$n();Dl();Nl()});var us=p(()=>{"use strict";G()});var fs=p(()=>{"use strict";G()});var ql=p(()=>{"use strict"});var ps=p(()=>{"use strict"});var zl=p(()=>{"use strict";ps();fs();us()});var Ul=p(()=>{"use strict";pe()});var Vl=p(()=>{"use strict"});var ms=p(()=>{"use strict";Ul();Vl()});var Lr=p(()=>{"use strict"});var Kl=p(()=>{"use strict"});var qr=p(()=>{"use strict";G();Lr();Lr()});var Gl=p(()=>{"use strict"});var Bl=p(()=>{"use strict"});var zr=p(()=>{"use strict";Lr();Kl();qr();Gl();Bl()});var eu=p(()=>{"use strict"});var Os=p(()=>{"use strict"});import{fileURLToPath as hw}from"url";import{dirname as Ow}from"path";var gw,mM,gs=p(()=>{"use strict";Os();gw=hw(import.meta.url),mM=Ow(gw)});import tu from"yaml";function ww(e){let t=e.split(`
434
+ }`,KC=Buffer.from(Ay,"utf16le").toString("base64")});var Ql=p(()=>{"use strict"});var os=p(()=>{"use strict"});var El=p(()=>{"use strict"});var Il=p(()=>{"use strict";os()});var as=p(()=>{"use strict";os();El();Il()});var qt=p(()=>{"use strict"});var Al=p(()=>{"use strict";qt()});import{Jimp as hA}from"jimp";var qy,ds=p(()=>{"use strict";qt();qy=Math.floor(3.75*1024*1024)});var Xl=p(()=>{"use strict";qt();ds()});var Uy,Ml=p(()=>{"use strict";Uy=1440*60*1e3});var ls=p(()=>{"use strict";Pn()});var us=p(()=>{"use strict";qt();ls()});var jl=p(()=>{"use strict";as();us()});var Wl=p(()=>{"use strict";qt();Al();ds();Xl();Ml();ls();us();jl()});var Cn=p(()=>{"use strict"});var Ll=p(()=>{"use strict";Ho();Cn();Cn();Cn()});var ql=p(()=>{"use strict"});var zl=p(()=>{"use strict";Cn();Ll();ql()});var fs=p(()=>{"use strict";G()});var ps=p(()=>{"use strict";G()});var Ul=p(()=>{"use strict"});var ms=p(()=>{"use strict"});var Vl=p(()=>{"use strict";ms();ps();fs()});var Kl=p(()=>{"use strict";pe()});var Yl=p(()=>{"use strict"});var hs=p(()=>{"use strict";Kl();Yl()});var Lr=p(()=>{"use strict"});var Gl=p(()=>{"use strict"});var qr=p(()=>{"use strict";G();Lr();Lr()});var Zl=p(()=>{"use strict"});var Hl=p(()=>{"use strict"});var zr=p(()=>{"use strict";Lr();Gl();qr();Zl();Hl()});var nu=p(()=>{"use strict"});var gs=p(()=>{"use strict"});import{fileURLToPath as yw}from"url";import{dirname as ww}from"path";var Sw,SM,ys=p(()=>{"use strict";gs();Sw=yw(import.meta.url),SM=ww(Sw)});import ru from"yaml";function Pw(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 nu(e,t={}){let n=e.replace(/^/,"").replace(/\r\n/g,`
436
+ `)}function iu(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=tu.parse(i)??{}}catch{a=tu.parse(ww(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 ru(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 Sw(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 bw(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>Sw(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function iu(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of yw){let i=bw(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var yw,ou=p(()=>{"use strict";yw=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];s(ww,"sanitizeYaml");s(nu,"parseYamlFrontmatter");s(ru,"normalizeAllowedToolsString");s(Sw,"normalizeYamlHookEntry");s(bw,"normalizeYamlHookEntryList");s(iu,"normalizeYamlHookMap")});import{readFile as Pw,readdir as vw}from"fs/promises";import{join as St,relative as kw}from"path";function su(e){let[t,n]=nu(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:ru(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:iu(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 Ur(e,t){let n=St(e,"SKILL.md");try{let r=await Pw(n,"utf-8"),{frontmatter:i,body:o}=su(r),[a,c,d,l,f]=await Promise.all([zt(St(e,"scripts")),zt(St(e,"references")),zt(St(e,"assets")),zt(St(e,"templates")),zt(St(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 vw(e,{withFileTypes:!0});r.sort((i,o)=>i.name.localeCompare(o.name));for(let i of r){let o=St(e,i.name);if(i.isDirectory()){n.push(...await zt(o,t));continue}i.isFile()&&n.push({name:i.name,path:o,relativePath:kw(t,o).replace(/\\/g,"/")})}}catch{}return n}var Cn=p(()=>{"use strict";pe();ou();s(su,"parseSkillMarkdown");s(Ur,"loadFullSkill");s(zt,"loadSkillFiles")});var ys=p(()=>{"use strict"});var ws=p(()=>{"use strict"});var au,cu,Vr=p(()=>{"use strict";au=64*1024,cu=256*1024});import{randomUUID as uu}from"node:crypto";import{mkdir as fu,open as pu,readFile as Pt,readdir as bs,rm as xw,stat as Br,writeFile as mu}from"node:fs/promises";import{dirname as Tw,join as Ss}from"node:path";async function Ps(e,t=Rw){await fu(Tw(e),{recursive:!0});let n=await Qw(e,t),r=!1;return async()=>{if(!r){r=!0;try{await n.handle.close()}finally{await yu(e,n.token)}}}}async function Qw(e,t){let n=Date.now()+t,r=await Ew(e),i,o=!1;try{for(await Iw(r,n,e);;){await Ou(r);try{return i=await Mw(e),i}catch(a){let c=await Fw(a,e);if(c==="retry_missing"){if(o)throw a;o=!0,await Gr(Yr);continue}if(c==="not_contended")throw a;o=!1;let d=await jw(e);if(d!==void 0&&await Ww(e,d))continue;if(Date.now()>=n)throw bu(e);await Gr(Yr)}}}finally{try{await wu(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 yu(e,i.token)}catch(d){c.push(d)}throw c.length===1?a:new AggregateError(c,"learning lock acquisition cleanup failed")}}}async function Ew(e){let t=`${e}.queue`,n=uu(),r=`${process.pid} ${n}
443
- `,i=Ss(t,`choosing-${n}.lock`);await fu(t,{recursive:!0}),await lu(i,r);try{await gu(t);let o=await $w(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(_w,"0")}-${n}.lock`,d=Ss(t,c);return await lu(d,r),{queuePath:t,path:d,name:c,raw:r}}finally{await wu(i,r)}}async function Iw(e,t,n){for(;;){await gu(e.queuePath),await Ou(e);let r=await bs(e.queuePath),i=r.some(a=>a.startsWith("choosing-")),o=r.map(vs).filter(a=>a!==void 0).sort(Cw)[0];if(!i&&o?.name===e.name)return;if(Date.now()>=t)throw bu(n);await Gr(Yr)}}async function lu(e,t){let n=await pu(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await bt(e),r}}async function Ou(e){try{if(await Pt(e.path,"utf8")!==e.raw)throw new Error(`learning store lock ticket lost: ${e.path}`)}catch(t){throw H(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function $w(e){return(await bs(e)).map(vs).filter(t=>t!==void 0)}function vs(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 Cw(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function gu(e){let t=await bs(e);await Promise.all(t.filter(Aw).map(async n=>{let r=Ss(e,n);await Xw(r)&&await bt(r)}))}function Aw(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||vs(e)!==void 0}async function Xw(e){try{let t=await Br(e),n=ks(await Pt(e,"utf8"));return n?.released===!0?!0:Date.now()-t.mtimeMs<=hu?!1:n===void 0||!Su(n.pid)}catch(t){if(H(t,"ENOENT")||["EPERM","EACCES","EBUSY"].some(n=>H(t,n)))return!1;throw t}}async function Mw(e){let t=await pu(e,"wx"),n=uu();try{return await t.writeFile(`${process.pid} ${n}
444
- `,"utf8"),{handle:t,token:n}}catch(r){throw await t.close(),await bt(e),r}}async function jw(e){try{let t=await Br(e),n=await Pt(e,"utf8"),r=ks(n),i=r?.token!==void 0&&await Dw(e,r.token);return!i&&Date.now()-t.mtimeMs<=hu?void 0:i||r!==void 0&&!Su(r.pid)?{raw:n,mtimeMs:t.mtimeMs,size:t.size}:void 0}catch(t){if(["ENOENT","EPERM","EACCES","EBUSY"].some(n=>H(t,n)))return;throw t}}async function Ww(e,t){try{let n=await Br(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await Pt(e,"utf8")!==t.raw?!1:(await bt(e),!0)}catch(n){if(H(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>H(n,r)))return!1;throw n}}async function Fw(e,t){if(H(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>H(e,n)))return"not_contended";try{return(await Br(t)).isFile()?"contended":"not_contended"}catch(n){if(H(n,"ENOENT"))return"retry_missing";throw e}}async function yu(e,t){try{if(ks(await Pt(e,"utf8"))?.token!==t)return;let r;try{await mu(Kr(e,t),`${t}
445
- `,"utf8")}catch(i){r=i}try{await bt(e)}catch(i){if(r===void 0&&xs(i))return;throw r===void 0?i:new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}try{await bt(Kr(e,t))}catch(i){L({source:"learning.store-lock",level:"warn",message:"Released learning lock left a harmless cleanup marker.",detail:{filePath:Kr(e,t),error:i instanceof Error?i.message:String(i)}})}}catch(n){if(!H(n,"ENOENT"))throw n}}async function wu(e,t){let n;try{if(await Pt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await mu(e,`${t.trimEnd()} released
446
- `,"utf8")}catch(r){if(H(r,"ENOENT"))return;n=r}try{await bt(e)}catch(r){if(n===void 0&&xs(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function Dw(e,t){try{return(await Pt(Kr(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>H(n,r)))return!1;throw n}}function Kr(e,t){return`${e}.${t}.released`}function ks(e){let t=/^(\d+)(?: ([0-9a-f-]+))?(?: (released))?\s*$/i.exec(e);if(!t)return;let n=Number(t[1]);if(!(!Number.isSafeInteger(n)||n<=0))return t[2]===void 0?{pid:n,released:t[3]!==void 0}:{pid:n,token:t[2],released:t[3]!==void 0}}function Su(e){try{return process.kill(e,0),!0}catch(t){return!H(t,"ESRCH")}}function H(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function xs(e){return["EPERM","EACCES","EBUSY"].some(t=>H(e,t))}async function bt(e){for(let t=1;t<=du;t+=1)try{await xw(e,{force:!0});return}catch(n){if(H(n,"ENOENT"))return;if(!xs(n)||t===du)throw n;await Gr(Yr)}}function bu(e){return new Error(`learning store lock timed out: ${e}`)}async function Gr(e){await new Promise(t=>setTimeout(t,e))}var Rw,Yr,hu,_w,du,vt=p(()=>{"use strict";pe();Rw=5e3,Yr=10,hu=3e4,_w=16,du=8;s(Ps,"acquireLearningFileLock");s(Qw,"acquireLock");s(Ew,"createLockTicket");s(Iw,"waitForTicketTurn");s(lu,"createOwnerFile");s(Ou,"assertTicketOwned");s($w,"listQueueTickets");s(vs,"parseQueueTicket");s(Cw,"compareQueueTickets");s(gu,"cleanupAbandonedQueueEntries");s(Aw,"isQueueEntryName");s(Xw,"isAbandonedQueueEntry");s(Mw,"createLock");s(jw,"observeStaleLock");s(Ww,"removeObservedStaleLock");s(Fw,"classifyExistingLockContention");s(yu,"releaseLock");s(wu,"releaseQueueEntry");s(Dw,"hasReleaseMarker");s(Kr,"releaseMarkerPath");s(ks,"parseOwner");s(Su,"isProcessAlive");s(H,"isFileError");s(xs,"isTransientFileContention");s(bt,"removeFileWithTransientRetry");s(bu,"lockTimeout");s(Gr,"delay")});var kt=p(()=>{"use strict";G();qr();vt()});var Ts=p(()=>{"use strict";Vr();ws()});var Rs=p(()=>{"use strict";Ts();Vr();kt()});var Qs=p(()=>{"use strict";ys();kt()});var Tu=p(()=>{"use strict";G();qr()});var a1,Ru=p(()=>{"use strict";a1=1024*1024});var Qu=p(()=>{"use strict";Qs()});var ve=p(()=>{"use strict"});var Hr=p(()=>{"use strict";ve();vt();G()});var Es=p(()=>{"use strict";kt();ve()});var Au=p(()=>{"use strict";G();ve();Hr();Es();Rs();kt()});var Xu=p(()=>{"use strict";ve()});var W1,jn=p(()=>{"use strict";ve();W1=16*1024});var Mu=p(()=>{"use strict";ve();jn()});var K1,ju=p(()=>{"use strict";ve();Hr();K1=16*1024});var Nu=p(()=>{"use strict";ve();pe();jn()});var ti=p(()=>{"use strict";ys();ws();Vr();kt();Ts();Rs();Qs();Tu();Ru();Qu();ve();Au();Hr();Es();Xu();Mu();ju();Nu();jn()});var $s=p(()=>{"use strict";ti();gs();Cn()});import{execSync as PS}from"child_process";import vS from"path";function zu(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of kS)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 xS(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&vS.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return zu(r[0]);for(let i of r){let o=i?.trim();if(o&&!/^cd\s+/.test(o.toLowerCase())&&!zu(o))return!1}return!0}function Uu(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 Wn(e,t,n){return new ni(n).resolve(e,t)}var kS,ni,Fn=p(()=>{"use strict";kS=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(zu,"isSingleSafeDynamicContextCommand");s(xS,"isSafeDynamicContextCommand");s(Uu,"parseArguments");ni=class{static{s(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=Uu(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(!xS(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return PS(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(Wn,"resolveSkillContent")});var Cs=p(()=>{"use strict";pe();$s();Cn();Fn()});var Vu=p(()=>{"use strict";Cs();Fn()});function Ku(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function ri(e){return e.replace(/\\/g,"/")}function _S(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 QS(e){let t=_S(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}/: ${ri(`${e.path}/${i}`)} (${o.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:o}of t.slice(0,As))r.push(`- ${i}/${o.relativePath}: ${ri(o.path)}`);return t.length>As&&r.push(`- ... ${t.length-As} more files under ${ri(e.path)}`),r}function ES(e,t,n){let r=[];r.push(`<skill name="${Ku(e.name)}" location="${Ku(e.path)}">`),r.push(""),r.push(`Skill root: ${ri(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=QS(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(`
447
- `)}async function Xs(e,t,n){let r=await Wn(e.content,t,n);return{content:ES(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}var As,Ms=p(()=>{"use strict";Fn();s(Ku,"escapeXml");As=120;s(ri,"formatDisplayPath");s(_S,"collectSupportFiles");s(QS,"buildSupportFileContext");s(ES,"buildSkillBlock");s(Xs,"expandSkillForLLM")});import{existsSync as IS}from"node:fs";import{mkdir as $S,readFile as js,readdir as CS,stat as Gu,writeFile as Uj}from"node:fs/promises";import AS from"node:os";import Ae from"node:path";import{fileURLToPath as Bu,pathToFileURL as XS}from"node:url";import MS from"yaml";async function He(){if(Ut)return Ut;let e=Ae.dirname(Bu(import.meta.url)),t=[],n=Ae.resolve(e,"../../../index.js");if(IS(n))return Ut=await import(XS(n).href),Ut;t.push(`relative SDK path not found: ${n}`);try{return Ut=await import(["@kodax-ai","kodax"].join("/")),Ut}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=ru.parse(i)??{}}catch{a=ru.parse(Pw(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 ou(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 vw(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 kw(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>vw(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function su(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of bw){let i=kw(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var bw,au=p(()=>{"use strict";bw=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];s(Pw,"sanitizeYaml");s(iu,"parseYamlFrontmatter");s(ou,"normalizeAllowedToolsString");s(vw,"normalizeYamlHookEntry");s(kw,"normalizeYamlHookEntryList");s(su,"normalizeYamlHookMap")});import{readFile as xw,readdir as Tw}from"fs/promises";import{join as bt,relative as Rw}from"path";function cu(e){let[t,n]=iu(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:ou(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:su(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 Ur(e,t){let n=bt(e,"SKILL.md");try{let r=await xw(n,"utf-8"),{frontmatter:i,body:o}=cu(r),[a,c,d,l,f]=await Promise.all([zt(bt(e,"scripts")),zt(bt(e,"references")),zt(bt(e,"assets")),zt(bt(e,"templates")),zt(bt(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 Tw(e,{withFileTypes:!0});r.sort((i,o)=>i.name.localeCompare(o.name));for(let i of r){let o=bt(e,i.name);if(i.isDirectory()){n.push(...await zt(o,t));continue}i.isFile()&&n.push({name:i.name,path:o,relativePath:Rw(t,o).replace(/\\/g,"/")})}}catch{}return n}var An=p(()=>{"use strict";pe();au();s(cu,"parseSkillMarkdown");s(Ur,"loadFullSkill");s(zt,"loadSkillFiles")});var ws=p(()=>{"use strict"});var Ss=p(()=>{"use strict"});var du,lu,Vr=p(()=>{"use strict";du=64*1024,lu=256*1024});import{randomUUID as mu}from"node:crypto";import{mkdir as hu,open as Ou,readFile as vt,readdir as Ps,rm as _w,stat as Br,writeFile as gu}from"node:fs/promises";import{dirname as Qw,join as bs}from"node:path";async function vs(e,t=Ew){await hu(Qw(e),{recursive:!0});let n=await $w(e,t),r=!1;return async()=>{if(!r){r=!0;try{await n.handle.close()}finally{await bu(e,n.token)}}}}async function $w(e,t){let n=Date.now()+t,r=await Cw(e),i,o=!1;try{for(await Aw(r,n,e);;){await wu(r);try{return i=await Fw(e),i}catch(a){let c=await Lw(a,e);if(c==="retry_missing"){if(o)throw a;o=!0,await Gr(Yr);continue}if(c==="not_contended")throw a;o=!1;let d=await Dw(e);if(d!==void 0&&await Nw(e,d))continue;if(Date.now()>=n)throw xu(e);await Gr(Yr)}}}finally{try{await Pu(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 bu(e,i.token)}catch(d){c.push(d)}throw c.length===1?a:new AggregateError(c,"learning lock acquisition cleanup failed")}}}async function Cw(e){let t=`${e}.queue`,n=mu(),r=vu(n),i=bs(t,`choosing-${n}.lock`);await hu(t,{recursive:!0}),await pu(i,r);try{await Su(t);let o=await Xw(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(Iw,"0")}-${n}.lock`,d=bs(t,c);return await pu(d,r),{queuePath:t,path:d,name:c,raw:r}}finally{await Pu(i,r)}}async function Aw(e,t,n){for(;;){await Su(e.queuePath),await wu(e);let r=await Ps(e.queuePath),i=r.some(a=>a.startsWith("choosing-")),o=r.map(ks).filter(a=>a!==void 0).sort(Mw)[0];if(!i&&o?.name===e.name)return;if(Date.now()>=t)throw xu(n);await Gr(Yr)}}async function pu(e,t){let n=await Ou(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await Pt(e),r}}async function wu(e){try{if(await vt(e.path,"utf8")!==e.raw)throw new Error(`learning store lock ticket lost: ${e.path}`)}catch(t){throw H(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function Xw(e){return(await Ps(e)).map(ks).filter(t=>t!==void 0)}function ks(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 Mw(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function Su(e){let t=await Ps(e);await Promise.all(t.filter(jw).map(async n=>{let r=bs(e,n);await Ww(r)&&await Pt(r)}))}function jw(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||ks(e)!==void 0}async function Ww(e){try{let t=await Br(e),n=xs(await vt(e,"utf8"));return n?.released===!0?!0:Date.now()-t.mtimeMs<=yu?!1:n===void 0||!ku(n)}catch(t){if(H(t,"ENOENT")||["EPERM","EACCES","EBUSY"].some(n=>H(t,n)))return!1;throw t}}async function Fw(e){let t=await Ou(e,"wx"),n=mu();try{return await t.writeFile(vu(n),"utf8"),{handle:t,token:n}}catch(r){throw await t.close(),await Pt(e),r}}async function Dw(e){try{let t=await Br(e),n=await vt(e,"utf8"),r=xs(n),i=r?.token!==void 0&&await qw(e,r.token);return!i&&Date.now()-t.mtimeMs<=yu?void 0:i||r!==void 0&&!ku(r)?{raw:n,mtimeMs:t.mtimeMs,size:t.size}:void 0}catch(t){if(["ENOENT","EPERM","EACCES","EBUSY"].some(n=>H(t,n)))return;throw t}}async function Nw(e,t){try{let n=await Br(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await vt(e,"utf8")!==t.raw?!1:(await Pt(e),!0)}catch(n){if(H(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>H(n,r)))return!1;throw n}}async function Lw(e,t){if(H(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>H(e,n)))return"not_contended";try{return(await Br(t)).isFile()?"contended":"not_contended"}catch(n){if(H(n,"ENOENT"))return"retry_missing";throw e}}async function bu(e,t){try{if(xs(await vt(e,"utf8"))?.token!==t)return;let r;try{await gu(Kr(e,t),`${t}
443
+ `,"utf8")}catch(i){r=i}try{await Pt(e)}catch(i){if(r===void 0&&Ts(i))return;throw r===void 0?i:new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}try{await Pt(Kr(e,t))}catch(i){L({source:"learning.store-lock",level:"warn",message:"Released learning lock left a harmless cleanup marker.",detail:{filePath:Kr(e,t),error:i instanceof Error?i.message:String(i)}})}}catch(n){if(!H(n,"ENOENT"))throw n}}async function Pu(e,t){let n;try{if(await vt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await gu(e,`${t.trimEnd()} released
444
+ `,"utf8")}catch(r){if(H(r,"ENOENT"))return;n=r}try{await Pt(e)}catch(r){if(n===void 0&&Ts(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function qw(e,t){try{return(await vt(Kr(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>H(n,r)))return!1;throw n}}function Kr(e,t){return`${e}.${t}.released`}function vu(e){let t=fu===void 0?"":` identity=${Buffer.from(fu).toString("base64url")}`;return`${process.pid} ${e}${t}
445
+ `}function xs(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 zw(e){try{return process.kill(e,0),!0}catch(t){return!H(t,"ESRCH")}}function H(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function ku(e){if(!zw(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=Ae(e.pid);return t===void 0||t===e.processStartIdentity}function Ts(e){return["EPERM","EACCES","EBUSY"].some(t=>H(e,t))}async function Pt(e){for(let t=1;t<=uu;t+=1)try{await _w(e,{force:!0});return}catch(n){if(H(n,"ENOENT"))return;if(!Ts(n)||t===uu)throw n;await Gr(Yr)}}function xu(e){return new Error(`learning store lock timed out: ${e}`)}async function Gr(e){await new Promise(t=>setTimeout(t,e))}var Ew,Yr,yu,Iw,uu,fu,kt=p(()=>{"use strict";pe();_n();Ew=5e3,Yr=10,yu=3e4,Iw=16,uu=8,fu=Ae(process.pid);s(vs,"acquireLearningFileLock");s($w,"acquireLock");s(Cw,"createLockTicket");s(Aw,"waitForTicketTurn");s(pu,"createOwnerFile");s(wu,"assertTicketOwned");s(Xw,"listQueueTickets");s(ks,"parseQueueTicket");s(Mw,"compareQueueTickets");s(Su,"cleanupAbandonedQueueEntries");s(jw,"isQueueEntryName");s(Ww,"isAbandonedQueueEntry");s(Fw,"createLock");s(Dw,"observeStaleLock");s(Nw,"removeObservedStaleLock");s(Lw,"classifyExistingLockContention");s(bu,"releaseLock");s(Pu,"releaseQueueEntry");s(qw,"hasReleaseMarker");s(Kr,"releaseMarkerPath");s(vu,"lockOwnerRecord");s(xs,"parseOwner");s(zw,"isProcessAlive");s(H,"isFileError");s(ku,"isRecordedOwnerAlive");s(Ts,"isTransientFileContention");s(Pt,"removeFileWithTransientRetry");s(xu,"lockTimeout");s(Gr,"delay")});var xt=p(()=>{"use strict";G();qr();kt()});var Rs=p(()=>{"use strict";Vr();Ss()});var _s=p(()=>{"use strict";Rs();Vr();xt()});var Es=p(()=>{"use strict";ws();xt()});var Eu=p(()=>{"use strict";G();qr()});var m1,Iu=p(()=>{"use strict";m1=1024*1024});var Cu=p(()=>{"use strict";Es()});var ve=p(()=>{"use strict"});var Hr=p(()=>{"use strict";ve();kt();G()});var Is=p(()=>{"use strict";xt();ve()});var Wu=p(()=>{"use strict";G();ve();Hr();Is();_s();xt()});var Fu=p(()=>{"use strict";ve()});var U1,Wn=p(()=>{"use strict";ve();U1=16*1024});var Du=p(()=>{"use strict";ve();Wn()});var ej,Nu=p(()=>{"use strict";ve();Hr();ej=16*1024});var Uu=p(()=>{"use strict";ve();pe();Wn()});var ti=p(()=>{"use strict";ws();Ss();Vr();xt();Rs();_s();Es();Eu();Iu();Cu();ve();Wu();Hr();Is();Fu();Du();Nu();Uu();Wn()});var Cs=p(()=>{"use strict";ti();ys();An()});import{execSync as TS}from"child_process";import RS from"path";function Yu(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of _S)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 QS(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&RS.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Yu(r[0]);for(let i of r){let o=i?.trim();if(o&&!/^cd\s+/.test(o.toLowerCase())&&!Yu(o))return!1}return!0}function Gu(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 Fn(e,t,n){return new ni(n).resolve(e,t)}var _S,ni,Dn=p(()=>{"use strict";_S=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(Yu,"isSingleSafeDynamicContextCommand");s(QS,"isSafeDynamicContextCommand");s(Gu,"parseArguments");ni=class{static{s(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=Gu(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(!QS(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return TS(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(Fn,"resolveSkillContent")});var As=p(()=>{"use strict";pe();Cs();An();Dn()});var Bu=p(()=>{"use strict";As();Dn()});function Zu(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function ri(e){return e.replace(/\\/g,"/")}function $S(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 CS(e){let t=$S(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}/: ${ri(`${e.path}/${i}`)} (${o.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:o}of t.slice(0,Xs))r.push(`- ${i}/${o.relativePath}: ${ri(o.path)}`);return t.length>Xs&&r.push(`- ... ${t.length-Xs} more files under ${ri(e.path)}`),r}function AS(e,t,n){let r=[];r.push(`<skill name="${Zu(e.name)}" location="${Zu(e.path)}">`),r.push(""),r.push(`Skill root: ${ri(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=CS(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 Ms(e,t,n){let r=await Fn(e.content,t,n);return{content:AS(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}var Xs,js=p(()=>{"use strict";Dn();s(Zu,"escapeXml");Xs=120;s(ri,"formatDisplayPath");s($S,"collectSupportFiles");s(CS,"buildSupportFileContext");s(AS,"buildSkillBlock");s(Ms,"expandSkillForLLM")});import{existsSync as XS}from"node:fs";import{mkdir as MS,readFile as Ws,readdir as jS,stat as Ju,writeFile as Hj}from"node:fs/promises";import WS from"node:os";import Xe from"node:path";import{fileURLToPath as ef,pathToFileURL as FS}from"node:url";import DS from"yaml";async function Je(){if(Ut)return Ut;let e=Xe.dirname(ef(import.meta.url)),t=[],n=Xe.resolve(e,"../../../index.js");if(XS(n))return Ut=await import(FS(n).href),Ut;t.push(`relative SDK path not found: ${n}`);try{return Ut=await import(["@kodax-ai","kodax"].join("/")),Ut}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}.
448
447
  Attempted:
449
448
  - ${t.join(`
450
- - `)}`)}function jS(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
449
+ - `)}`)}function NS(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
451
450
  `).replace(/\r/g,`
452
451
  `).trimStart();if(!t.startsWith(`---
453
452
  `))throw new Error("SKILL.md missing YAML frontmatter");let n=t.indexOf(`
454
453
  ---
455
- `,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 ii(e){let{yamlText:t,body:n}=jS(e),r=MS.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 Nn(e){let t=Ae.join(e,"SKILL.md");if(!(await Gu(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await js(t,"utf8"),{frontmatter:i,body:o}=ii(r);return{skillDir:Ae.resolve(e),skillMdPath:t,rawContent:r,body:o,frontmatter:i}}async function Ln(e){try{return await Gu(e),!0}catch{return!1}}function oi(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:Dn(t),stddev:Dn(Math.sqrt(n)),min:Dn(Math.min(...e)),max:Dn(Math.max(...e))}}function Dn(e,t=4){return Number(e.toFixed(t))}function si(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function Yu(e){try{return JSON.parse(e)}catch{return null}}function Vt(e){let t=Yu(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:Yu(e.slice(n,r+1))}async function ke(e,t=null){try{return JSON.parse(await js(e,"utf8"))}catch{return t}}async function Kt(e,t){let n=Ae.dirname(Bu(e));return js(Ae.resolve(n,t),"utf8")}function ne(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 ii(e){let{yamlText:t,body:n}=NS(e),r=DS.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 Ln(e){let t=Xe.join(e,"SKILL.md");if(!(await Ju(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Ws(t,"utf8"),{frontmatter:i,body:o}=ii(r);return{skillDir:Xe.resolve(e),skillMdPath:t,rawContent:r,body:o,frontmatter:i}}async function qn(e){try{return await Ju(e),!0}catch{return!1}}function oi(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:Nn(t),stddev:Nn(Math.sqrt(n)),min:Nn(Math.min(...e)),max:Nn(Math.max(...e))}}function Nn(e,t=4){return Number(e.toFixed(t))}function si(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function Hu(e){try{return JSON.parse(e)}catch{return null}}function Vt(e){let t=Hu(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:Hu(e.slice(n,r+1))}async function ke(e,t=null){try{return JSON.parse(await Ws(e,"utf8"))}catch{return t}}async function Kt(e,t){let n=Xe.dirname(ef(e));return Ws(Xe.resolve(n,t),"utf8")}function ne(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)}
456
455
 
457
- [truncated ${r} chars]`}function Zu(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?Dn(n/t):0}}async function Ws(e,t=e,n=[]){let r=await CS(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((o,a)=>o.name.localeCompare(a.name))){let o=Ae.join(t,i.name);if(i.isDirectory()){await Ws(e,o,n);continue}i.isFile()&&n.push({absolutePath:o,relativePath:Ae.relative(e,o).replace(/\\/g,"/")})}return n}function qn(){return Ae.join(AS.homedir(),".kodax","skills")}async function re(e){return await $S(e,{recursive:!0}),e}var Ut,he=p(()=>{"use strict";Ut=null;s(He,"loadKodaXSDK");s(jS,"extractFrontmatter");s(ii,"parseSkillMarkdown");s(Nn,"loadSkill");s(Ln,"pathExists");s(oi,"calculateStats");s(Dn,"roundNumber");s(si,"formatDelta");s(Yu,"safeJsonParse");s(Vt,"extractJsonObject");s(ke,"readJsonFile");s(Kt,"loadRelativeText");s(ne,"truncateText");s(Zu,"computePassSummary");s(Ws,"collectFiles");s(qn,"getDefaultSkillsDir");s(re,"ensureDirectory")});import{writeFile as Hu}from"node:fs/promises";import Je from"node:path";function WS(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function FS(e,t){let n=WS(e);return`---
456
+ [truncated ${r} chars]`}function tf(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?Nn(n/t):0}}async function Fs(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=Xe.join(t,i.name);if(i.isDirectory()){await Fs(e,o,n);continue}i.isFile()&&n.push({absolutePath:o,relativePath:Xe.relative(e,o).replace(/\\/g,"/")})}return n}function zn(){return Xe.join(WS.homedir(),".kodax","skills")}async function re(e){return await MS(e,{recursive:!0}),e}var Ut,he=p(()=>{"use strict";Ut=null;s(Je,"loadKodaXSDK");s(NS,"extractFrontmatter");s(ii,"parseSkillMarkdown");s(Ln,"loadSkill");s(qn,"pathExists");s(oi,"calculateStats");s(Nn,"roundNumber");s(si,"formatDelta");s(Hu,"safeJsonParse");s(Vt,"extractJsonObject");s(ke,"readJsonFile");s(Kt,"loadRelativeText");s(ne,"truncateText");s(tf,"computePassSummary");s(Fs,"collectFiles");s(zn,"getDefaultSkillsDir");s(re,"ensureDirectory")});import{writeFile as nf}from"node:fs/promises";import et from"node:path";function LS(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function qS(e,t){let n=LS(e);return`---
458
457
  name: ${e}
459
458
  description: ${t}
460
459
  user-invocable: true
@@ -483,10 +482,10 @@ Describe the task this skill handles, the trigger boundary, and the expected out
483
482
  - Put deeper guidance in \`references/\`.
484
483
  - Put reusable templates or static files in \`assets/\`.
485
484
  - Put repeatable helper scripts in \`scripts/\`.
486
- `}function DS(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 NS(e){let t=Je.resolve(e.baseDir??qn()),n=Je.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await Ln(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await re(n),await re(Je.join(n,"references")),await re(Je.join(n,"assets")),await re(Je.join(n,"scripts")),await Hu(Je.join(n,"SKILL.md"),FS(e.name,r),"utf8"),e.includeEvals!==!1&&(await re(Je.join(n,"evals")),await Hu(Je.join(n,"evals","evals.json"),`${DS(e.name)}
487
- `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function LS(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 Ju(e=process.argv){let t=LS(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 NS(t);console.log(`Initialized ${n.skillDir}`)}var qS,ef=p(()=>{"use strict";he();s(WS,"titleFromSlug");s(FS,"renderSkillTemplate");s(DS,"renderEvalTemplate");s(NS,"initSkill");s(LS,"parseArgs");s(Ju,"main");qS=!1;qS&&Ju().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import tf from"node:path";async function zn(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await Nn(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=>!zS.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=tf.basename(tf.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 nf(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await zn(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 zS,US,ai=p(()=>{"use strict";he();zS=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);s(zn,"validateSkillDirectory");s(nf,"main");US=!1;US&&nf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Fs,writeFile as Xe}from"node:fs/promises";import j from"node:path";function VS(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function KS(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function YS(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 GS(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(`
485
+ `}function zS(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 US(e){let t=et.resolve(e.baseDir??zn()),n=et.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await qn(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await re(n),await re(et.join(n,"references")),await re(et.join(n,"assets")),await re(et.join(n,"scripts")),await nf(et.join(n,"SKILL.md"),qS(e.name,r),"utf8"),e.includeEvals!==!1&&(await re(et.join(n,"evals")),await nf(et.join(n,"evals","evals.json"),`${zS(e.name)}
486
+ `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function VS(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 rf(e=process.argv){let t=VS(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 US(t);console.log(`Initialized ${n.skillDir}`)}var KS,of=p(()=>{"use strict";he();s(LS,"titleFromSlug");s(qS,"renderSkillTemplate");s(zS,"renderEvalTemplate");s(US,"initSkill");s(VS,"parseArgs");s(rf,"main");KS=!1;KS&&rf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import sf from"node:path";async function Un(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await Ln(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=>!YS.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=sf.basename(sf.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 af(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await Un(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 YS,GS,ai=p(()=>{"use strict";he();YS=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);s(Un,"validateSkillDirectory");s(af,"main");GS=!1;GS&&af().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Ds,writeFile as Me}from"node:fs/promises";import W from"node:path";function BS(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function ZS(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function HS(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 JS(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(`
488
487
  `)}
489
- `}async function BS(e,t){let n=j.dirname(j.resolve(t.evalsPath)),r=j.resolve(t.cwd??process.cwd()),i=[];for(let o of e??[]){let a=j.isAbsolute(o)?o:j.resolve(n,o),c=j.resolve(r,o),d=null,l=a;try{d=await Fs(a,"utf8")}catch{d=await Fs(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${o}`);i.push(`### ${o}
488
+ `}async function eb(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 Ds(a,"utf8")}catch{d=await Ds(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${o}`);i.push(`### ${o}
490
489
  \`\`\`
491
490
  ${d}
492
491
  \`\`\`
@@ -496,15 +495,15 @@ ${i.join(`
496
495
 
497
496
  `)}
498
497
 
499
- `}async function ZS(e,t){let n=String(e.prompt??e.query??"").trim();return`${await BS(e.files,t)}${n}`.trim()}async function HS(e,t){let{runKodaX:n,estimateTokens:r}=await He(),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:j.resolve(t.cwd??process.cwd())}},e);return{result:o,totalTokens:r(o.messages),durationMs:Date.now()-i}}async function JS(e,t,n,r){return e==="with_skill"?(await Xs(t,n,{workingDirectory:j.resolve(r.cwd??process.cwd()),projectRoot:j.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}async function eb(e,t,n,r,i){let o=j.join(e,"outputs");await re(o);let a={total_tool_calls:KS(i.result.messages),errors_encountered:YS(i.result.messages),output_chars:i.result.lastText.length};await Xe(j.join(o,"result.md"),`${i.result.lastText}
500
- `,"utf8"),await Xe(j.join(o,"prompt.txt"),`${r}
501
- `,"utf8"),await Xe(j.join(e,"transcript.md"),GS(r,i.result),"utf8"),await Xe(j.join(o,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
502
- `,"utf8"),await Xe(j.join(o,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
503
- `,"utf8"),await Xe(j.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)}
504
- `,"utf8"),await Xe(j.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)}
505
- `,"utf8")}async function tb(e,t=HS){let n=await Ur(j.resolve(e.skillPath),"user");if(!n)throw new Error(`Failed to load skill from ${e.skillPath}`);let r=j.resolve(e.workspaceDir);await re(r);let i=JSON.parse(await Fs(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=j.join(r,`eval-${l}`);await re(u),await Xe(j.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(VS).filter(Boolean)},null,2)}
506
- `,"utf8");let m=await ZS(f,e),g={};for(let S of a){let x=j.join(u,S);await re(x),g[S]=[];for(let h=1;h<=c;h+=1){let y=j.join(x,`run-${h}`);await re(y);let k=await JS(S,n,m,e),v=await t(k,{...e,configName:S,evalItem:f,runIndex:h});await eb(y,S,f,k,v),g[S].push({run_id:`run-${h}`,session_id:v.result.sessionId,success:v.result.success,total_tokens:v.totalTokens,duration_ms:v.durationMs,output_chars:v.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 nb(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 rf(e=process.argv){let t=nb(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 tb(t),r=`${JSON.stringify(n,null,2)}
507
- `;t.output?(await Xe(t.output,r,"utf8"),console.log(`Wrote ${j.resolve(t.output)}`)):process.stdout.write(r)}var rb,of=p(()=>{"use strict";Ms();Cn();he();s(VS,"normalizeAssertion");s(KS,"countToolCalls");s(YS,"countToolErrors");s(GS,"renderTranscript");s(BS,"readInputFiles");s(ZS,"buildEvalPrompt");s(HS,"defaultRunAgent");s(JS,"prepareConfigPrompt");s(eb,"writeRunArtifacts");s(tb,"runEvalWorkspace");s(nb,"parseArgs");s(rf,"main");rb=!1;rb&&rf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as ib,readFile as Ds,writeFile as af}from"node:fs/promises";import W from"node:path";function Tt(e){return String(e??"").trim()}function cf(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Tt(i):i&&typeof i=="object"&&typeof i.text=="string"?Tt(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Tt(e?.expected_output);return r?[r]:[]}function Ns(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function sf(e,t){return{text:Tt(e?.text??t),passed:e?.passed===!0,evidence:Tt(e?.evidence)}}function ob(e,t){let n=Vt(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:Tt(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}o.add(c),i.push(sf(r[c],a))}if(t.length===0)for(let a of r){let c=sf(a,"");c.text&&i.push(c)}return{overall_summary:Tt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:Ns(n.user_notes_summary?.uncertainties),needs_review:Ns(n.user_notes_summary?.needs_review),workarounds:Ns(n.user_notes_summary?.workarounds)}}}async function Ls(e){return(await ib(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>W.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function sb(e){let t=W.dirname(e),n=W.dirname(t),r=W.basename(t),i=W.basename(e),o=W.join(e,"outputs"),a=await ke(W.join(n,"eval_metadata.json"),{}),c=await Ds(W.join(o,"result.md"),"utf8").catch(()=>""),d=await Ds(W.join(o,"prompt.txt"),"utf8").catch(()=>""),l=await Ds(W.join(e,"transcript.md"),"utf8").catch(()=>""),f=await ke(W.join(o,"metrics.json"),{}),u=await ke(W.join(e,"result.json"),{}),m=await ke(W.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 ab(e){let t=cf(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
498
+ `}async function tb(e,t){let n=String(e.prompt??e.query??"").trim();return`${await eb(e.files,t)}${n}`.trim()}async function nb(e,t){let{runKodaX:n,estimateTokens:r}=await Je(),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 rb(e,t,n,r){return e==="with_skill"?(await Ms(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}async function ib(e,t,n,r,i){let o=W.join(e,"outputs");await re(o);let a={total_tool_calls:ZS(i.result.messages),errors_encountered:HS(i.result.messages),output_chars:i.result.lastText.length};await Me(W.join(o,"result.md"),`${i.result.lastText}
499
+ `,"utf8"),await Me(W.join(o,"prompt.txt"),`${r}
500
+ `,"utf8"),await Me(W.join(e,"transcript.md"),JS(r,i.result),"utf8"),await Me(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 Me(W.join(o,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
502
+ `,"utf8"),await Me(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
+ `,"utf8"),await Me(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 ob(e,t=nb){let n=await Ur(W.resolve(e.skillPath),"user");if(!n)throw new Error(`Failed to load skill from ${e.skillPath}`);let r=W.resolve(e.workspaceDir);await re(r);let i=JSON.parse(await Ds(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 re(u),await Me(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(BS).filter(Boolean)},null,2)}
505
+ `,"utf8");let m=await tb(f,e),g={};for(let S of a){let x=W.join(u,S);await re(x),g[S]=[];for(let h=1;h<=c;h+=1){let y=W.join(x,`run-${h}`);await re(y);let P=await rb(S,n,m,e),b=await t(P,{...e,configName:S,evalItem:f,runIndex:h});await ib(y,S,f,P,b),g[S].push({run_id:`run-${h}`,session_id:b.result.sessionId,success:b.result.success,total_tokens:b.totalTokens,duration_ms:b.durationMs,output_chars:b.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 sb(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 cf(e=process.argv){let t=sb(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 ob(t),r=`${JSON.stringify(n,null,2)}
506
+ `;t.output?(await Me(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var ab,df=p(()=>{"use strict";js();An();he();s(BS,"normalizeAssertion");s(ZS,"countToolCalls");s(HS,"countToolErrors");s(JS,"renderTranscript");s(eb,"readInputFiles");s(tb,"buildEvalPrompt");s(nb,"defaultRunAgent");s(rb,"prepareConfigPrompt");s(ib,"writeRunArtifacts");s(ob,"runEvalWorkspace");s(sb,"parseArgs");s(cf,"main");ab=!1;ab&&cf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as cb,readFile as Ns,writeFile as uf}from"node:fs/promises";import F from"node:path";function Rt(e){return String(e??"").trim()}function ff(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 Ls(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function lf(e,t){return{text:Rt(e?.text??t),passed:e?.passed===!0,evidence:Rt(e?.evidence)}}function db(e,t){let n=Vt(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(lf(r[c],a))}if(t.length===0)for(let a of r){let c=lf(a,"");c.text&&i.push(c)}return{overall_summary:Rt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:Ls(n.user_notes_summary?.uncertainties),needs_review:Ls(n.user_notes_summary?.needs_review),workarounds:Ls(n.user_notes_summary?.workarounds)}}}async function qs(e){return(await cb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>F.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function lb(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 ke(F.join(n,"eval_metadata.json"),{}),c=await Ns(F.join(o,"result.md"),"utf8").catch(()=>""),d=await Ns(F.join(o,"prompt.txt"),"utf8").catch(()=>""),l=await Ns(F.join(e,"transcript.md"),"utf8").catch(()=>""),f=await ke(F.join(o,"metrics.json"),{}),u=await ke(F.join(e,"result.json"),{}),m=await ke(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 ub(e){let t=ff(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
508
507
  `):"(No explicit assertions; infer one expectation from expected_output if present.)";return`${e.agentInstructions.trim()}
509
508
 
510
509
  Return JSON with this shape:
@@ -550,12 +549,12 @@ ${JSON.stringify({total_tool_calls:e.metrics.total_tool_calls??e.result.executio
550
549
 
551
550
  ## Transcript Excerpt
552
551
  ${ne(e.transcript,5e3)}
553
- `}async function df(e,t){let{runKodaX:n}=await He();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:W.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}async function cb(e,t,n=df){let r=await sb(W.resolve(e)),i=cf(r.evalMetadata),o=await Kt(import.meta.url,"../agents/grader.md"),a=ab({...r,agentInstructions:o}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=ob(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:Zu(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 af(W.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
554
- `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function db(e,t=df){let n=W.resolve(e.workspaceDir);await re(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],o=[];for(let c of await Ls(n))if(W.basename(c).startsWith("eval-"))for(let d of await Ls(c)){let l=W.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await Ls(d)){if(!W.basename(f).startsWith("run-"))continue;let u=W.join(f,"grading.json");if(await ke(u,null)&&e.overwrite!==!0){o.push(W.relative(n,f).replace(/\\/g,"/"));continue}let g=await cb(f,e,t);i.push({run:W.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 af(W.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
555
- `,"utf8"),a}function lb(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 lf(e=process.argv){let t=lb(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 db(t);process.stdout.write(`${JSON.stringify(n,null,2)}
556
- `)}var ub,uf=p(()=>{"use strict";he();s(Tt,"normalizeExpectationText");s(cf,"normalizeExpectedRubric");s(Ns,"normalizeStringArray");s(sf,"normalizeExpectationEntry");s(ob,"normalizeParsedGrading");s(Ls,"listDirectories");s(sb,"loadRunContext");s(ab,"buildGradingPrompt");s(df,"defaultRunJudge");s(cb,"gradeRun");s(db,"gradeWorkspace");s(lb,"parseArgs");s(lf,"main");ub=!1;ub&&lf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as fb,readdir as pb,stat as mb,writeFile as ff}from"node:fs/promises";import ie from"node:path";async function qs(e){return JSON.parse(await fb(e,"utf8"))}async function hb(e){try{return await mb(e),!0}catch{return!1}}async function zs(e){return(await pb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>ie.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function ci(e){let t=await hb(ie.join(e,"runs"))?ie.join(e,"runs"):e,n=(await zs(t)).filter(i=>ie.basename(i).startsWith("eval-")),r={};for(let i of n){let o=ie.join(i,"eval_metadata.json"),c=(await qs(o).catch(()=>({}))).eval_id??ie.basename(i);for(let d of await zs(i)){let l=ie.basename(d),f=(await zs(d)).filter(u=>ie.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await qs(ie.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await qs(ie.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:ie.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 Ob(e){let t={};for(let[o,a]of Object.entries(e))t[o]={pass_rate:oi(a.map(c=>Number(c.pass_rate??0))),time_seconds:oi(a.map(c=>Number(c.time_seconds??0))),tokens:oi(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:si(r.pass_rate.mean-i.pass_rate.mean),time_seconds:si(r.time_seconds.mean-i.time_seconds.mean),tokens:si(r.tokens.mean-i.tokens.mean)}}}function Us(e,t,n){let r=Ob(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:ie.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function gb(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 yb(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}=yb(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await ci(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Us(e,t,n),i=ie.join(e,"benchmark.json"),o=ie.join(e,"benchmark.md");await ff(i,JSON.stringify(r,null,2)),await ff(o,`${gb(r)}
558
- `),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var Sb,pf=p(()=>{"use strict";he();s(qs,"readJson");s(hb,"pathExists");s(zs,"listDirectories");s(ci,"loadRunResults");s(Ob,"summarizeConfigs");s(Us,"buildBenchmarkDocument");s(gb,"renderBenchmarkMarkdown");s(yb,"parseArgs");s(wb,"main");Sb=!1;Sb&&wb().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Vs}from"node:fs/promises";import Me from"node:path";function di(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function bb(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 Pb(e,t,n){let r=Vt(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:di(r.key_findings),variance_hotspots:di(r.variance_hotspots),suggested_actions:di(r.suggested_actions),watchouts:di(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 vb(e){return`${e.agentInstructions.trim()}
552
+ `}async function pf(e,t){let{runKodaX:n}=await Je();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 fb(e,t,n=pf){let r=await lb(F.resolve(e)),i=ff(r.evalMetadata),o=await Kt(import.meta.url,"../agents/grader.md"),a=ub({...r,agentInstructions:o}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=db(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:tf(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 uf(F.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
553
+ `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function pb(e,t=pf){let n=F.resolve(e.workspaceDir);await re(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],o=[];for(let c of await qs(n))if(F.basename(c).startsWith("eval-"))for(let d of await qs(c)){let l=F.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await qs(d)){if(!F.basename(f).startsWith("run-"))continue;let u=F.join(f,"grading.json");if(await ke(u,null)&&e.overwrite!==!0){o.push(F.relative(n,f).replace(/\\/g,"/"));continue}let g=await fb(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 uf(F.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
554
+ `,"utf8"),a}function mb(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 mf(e=process.argv){let t=mb(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 pb(t);process.stdout.write(`${JSON.stringify(n,null,2)}
555
+ `)}var hb,hf=p(()=>{"use strict";he();s(Rt,"normalizeExpectationText");s(ff,"normalizeExpectedRubric");s(Ls,"normalizeStringArray");s(lf,"normalizeExpectationEntry");s(db,"normalizeParsedGrading");s(qs,"listDirectories");s(lb,"loadRunContext");s(ub,"buildGradingPrompt");s(pf,"defaultRunJudge");s(fb,"gradeRun");s(pb,"gradeWorkspace");s(mb,"parseArgs");s(mf,"main");hb=!1;hb&&mf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Ob,readdir as gb,stat as yb,writeFile as Of}from"node:fs/promises";import ie from"node:path";async function zs(e){return JSON.parse(await Ob(e,"utf8"))}async function wb(e){try{return await yb(e),!0}catch{return!1}}async function Us(e){return(await gb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>ie.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function ci(e){let t=await wb(ie.join(e,"runs"))?ie.join(e,"runs"):e,n=(await Us(t)).filter(i=>ie.basename(i).startsWith("eval-")),r={};for(let i of n){let o=ie.join(i,"eval_metadata.json"),c=(await zs(o).catch(()=>({}))).eval_id??ie.basename(i);for(let d of await Us(i)){let l=ie.basename(d),f=(await Us(d)).filter(u=>ie.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await zs(ie.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await zs(ie.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:ie.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 Sb(e){let t={};for(let[o,a]of Object.entries(e))t[o]={pass_rate:oi(a.map(c=>Number(c.pass_rate??0))),time_seconds:oi(a.map(c=>Number(c.time_seconds??0))),tokens:oi(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:si(r.pass_rate.mean-i.pass_rate.mean),time_seconds:si(r.time_seconds.mean-i.time_seconds.mean),tokens:si(r.tokens.mean-i.tokens.mean)}}}function Vs(e,t,n){let r=Sb(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:ie.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function bb(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 Pb(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 vb(){let{iterationDir:e,skillName:t}=Pb(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await ci(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Vs(e,t,n),i=ie.join(e,"benchmark.json"),o=ie.join(e,"benchmark.md");await Of(i,JSON.stringify(r,null,2)),await Of(o,`${bb(r)}
557
+ `),console.log(`Wrote ${i}`),console.log(`Wrote ${o}`)}var kb,gf=p(()=>{"use strict";he();s(zs,"readJson");s(wb,"pathExists");s(Us,"listDirectories");s(ci,"loadRunResults");s(Sb,"summarizeConfigs");s(Vs,"buildBenchmarkDocument");s(bb,"renderBenchmarkMarkdown");s(Pb,"parseArgs");s(vb,"main");kb=!1;kb&&vb().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Ks}from"node:fs/promises";import je from"node:path";function di(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function xb(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 Tb(e,t,n){let r=Vt(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:di(r.key_findings),variance_hotspots:di(r.variance_hotspots),suggested_actions:di(r.suggested_actions),watchouts:di(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 Rb(e){return`${e.agentInstructions.trim()}
559
558
 
560
559
  Return JSON with this shape:
561
560
  {
@@ -573,12 +572,12 @@ ${ne(JSON.stringify({skill_name:e.benchmark.skill_name,configs:e.benchmark.confi
573
572
 
574
573
  ## Failure Clusters
575
574
  ${ne(JSON.stringify(e.failureClusters,null,2),8e3)}
576
- `}async function kb(e,t){let{runKodaX:n}=await He();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:Me.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function xb(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(`
575
+ `}async function _b(e,t){let{runKodaX:n}=await Je();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:je.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Qb(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(`
577
576
  `)}
578
- `}async function Tb(e,t=kb){let n=Me.resolve(e.workspaceDir),r=Me.resolve(e.benchmarkPath??Me.join(n,"benchmark.json")),i=await ke(r,null);if(!i){let g=await ci(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Us(n,e.skillName??Me.basename(n),g),await Vs(r,`${JSON.stringify(i,null,2)}
579
- `,"utf8")}let o=await ci(n),a=bb(o),c=await Kt(import.meta.url,"../agents/analyzer.md"),d=vb({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=Pb(l,i,a),u=Me.resolve(e.outputPath??Me.join(n,"analysis.json")),m=Me.resolve(e.markdownPath??Me.join(n,"analysis.md"));return await Vs(u,`${JSON.stringify(f,null,2)}
580
- `,"utf8"),await Vs(m,xb(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function Rb(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 mf(e=process.argv){let t=Rb(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 Tb(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
581
- `)}var _b,hf=p(()=>{"use strict";pf();he();s(di,"normalizeStringArray");s(bb,"summarizeFailureClusters");s(Pb,"normalizeAnalysisResult");s(vb,"buildAnalysisPrompt");s(kb,"defaultRunAnalyst");s(xb,"renderAnalysisMarkdown");s(Tb,"analyzeBenchmark");s(Rb,"parseArgs");s(mf,"main");_b=!1;_b&&mf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Qb,readFile as Of,writeFile as gf}from"node:fs/promises";import q from"node:path";async function Ys(e){return(await Qb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>q.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Ks(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Eb(e){let t=Vt(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:Ks(t.strengths_a),strengths_b:Ks(t.strengths_b),risks:Ks(t.risks)}}async function Ib(e,t,n,r){let i=(await Ys(q.join(e,t))).filter(u=>q.basename(u).startsWith("run-")),o=(await Ys(q.join(e,n))).filter(u=>q.basename(u).startsWith("run-")),a=i[r],c=o[r];if(!a||!c)return null;let d=await ke(q.join(e,"eval_metadata.json"),{}),l=await Of(q.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await Of(q.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:q.basename(a),configName:t,output:l},runB:{runDir:c,runId:q.basename(c),configName:n,output:f}}}function $b(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
577
+ `}async function Eb(e,t=_b){let n=je.resolve(e.workspaceDir),r=je.resolve(e.benchmarkPath??je.join(n,"benchmark.json")),i=await ke(r,null);if(!i){let g=await ci(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Vs(n,e.skillName??je.basename(n),g),await Ks(r,`${JSON.stringify(i,null,2)}
578
+ `,"utf8")}let o=await ci(n),a=xb(o),c=await Kt(import.meta.url,"../agents/analyzer.md"),d=Rb({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=Tb(l,i,a),u=je.resolve(e.outputPath??je.join(n,"analysis.json")),m=je.resolve(e.markdownPath??je.join(n,"analysis.md"));return await Ks(u,`${JSON.stringify(f,null,2)}
579
+ `,"utf8"),await Ks(m,Qb(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function Ib(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 yf(e=process.argv){let t=Ib(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 Eb(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
580
+ `)}var $b,wf=p(()=>{"use strict";gf();he();s(di,"normalizeStringArray");s(xb,"summarizeFailureClusters");s(Tb,"normalizeAnalysisResult");s(Rb,"buildAnalysisPrompt");s(_b,"defaultRunAnalyst");s(Qb,"renderAnalysisMarkdown");s(Eb,"analyzeBenchmark");s(Ib,"parseArgs");s(yf,"main");$b=!1;$b&&yf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Cb,readFile as Sf,writeFile as bf}from"node:fs/promises";import q from"node:path";async function Gs(e){return(await Cb(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>q.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Ys(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Ab(e){let t=Vt(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:Ys(t.strengths_a),strengths_b:Ys(t.strengths_b),risks:Ys(t.risks)}}async function Xb(e,t,n,r){let i=(await Gs(q.join(e,t))).filter(u=>q.basename(u).startsWith("run-")),o=(await Gs(q.join(e,n))).filter(u=>q.basename(u).startsWith("run-")),a=i[r],c=o[r];if(!a||!c)return null;let d=await ke(q.join(e,"eval_metadata.json"),{}),l=await Sf(q.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await Sf(q.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:q.basename(a),configName:t,output:l},runB:{runDir:c,runId:q.basename(c),configName:n,output:f}}}function Mb(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
582
581
 
583
582
  Return JSON with this shape:
584
583
  {
@@ -606,15 +605,15 @@ ${ne(t.A.output,12e3)}
606
605
 
607
606
  ## Candidate B
608
607
  ${ne(t.B.output,12e3)}
609
- `}async function Cb(e,t){let{runKodaX:n}=await He();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:q.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Ab(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function Xb(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(`
608
+ `}async function jb(e,t){let{runKodaX:n}=await Je();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:q.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Wb(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function Fb(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(`
610
609
  `)}
611
- `}async function Mb(e,t=Cb){let n=q.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 Kt(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Ys(n))if(q.basename(u).startsWith("eval-"))for(let m=0;m<o;m+=1){let g=await Ib(u,r,i,m);if(!g)break;let S=c.length%2===0,x=$b({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:S}),h=await t(x,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=Eb(h),k=Ab(y.winner,S,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:q.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:q.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:S?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:k,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=q.resolve(e.outputPath??q.join(n,"comparison.json")),f=q.resolve(e.markdownPath??q.join(n,"comparison.md"));return await gf(l,`${JSON.stringify(d,null,2)}
612
- `,"utf8"),await gf(f,Xb(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function jb(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 yf(e=process.argv){let t=jb(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 Mb(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
613
- `)}var Wb,wf=p(()=>{"use strict";he();s(Ys,"listDirectories");s(Ks,"normalizeStringArray");s(Eb,"normalizeComparisonResult");s(Ib,"loadComparisonPair");s($b,"buildComparisonPrompt");s(Cb,"defaultRunComparator");s(Ab,"mapWinnerToConfig");s(Xb,"renderComparisonMarkdown");s(Mb,"compareWorkspace");s(jb,"parseArgs");s(yf,"main");Wb=!1;Wb&&yf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Fb,writeFile as Db}from"node:fs/promises";import{createHash as Nb}from"node:crypto";import Gs from"node:path";import{zipSync as Lb,strToU8 as qb}from"fflate";function Ub(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Vb(e){return Nb("sha256").update(e).digest("hex")}function Kb(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 Yb(e,t={}){let n=await zn(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
610
+ `}async function Db(e,t=jb){let n=q.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 Kt(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Gs(n))if(q.basename(u).startsWith("eval-"))for(let m=0;m<o;m+=1){let g=await Xb(u,r,i,m);if(!g)break;let S=c.length%2===0,x=Mb({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:S}),h=await t(x,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=Ab(h),P=Wb(y.winner,S,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:q.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:q.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:S?{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=q.resolve(e.outputPath??q.join(n,"comparison.json")),f=q.resolve(e.markdownPath??q.join(n,"comparison.md"));return await bf(l,`${JSON.stringify(d,null,2)}
611
+ `,"utf8"),await bf(f,Fb(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function Nb(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 Pf(e=process.argv){let t=Nb(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 Db(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
612
+ `)}var Lb,vf=p(()=>{"use strict";he();s(Gs,"listDirectories");s(Ys,"normalizeStringArray");s(Ab,"normalizeComparisonResult");s(Xb,"loadComparisonPair");s(Mb,"buildComparisonPrompt");s(jb,"defaultRunComparator");s(Wb,"mapWinnerToConfig");s(Fb,"renderComparisonMarkdown");s(Db,"compareWorkspace");s(Nb,"parseArgs");s(Pf,"main");Lb=!1;Lb&&Pf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as qb,writeFile as zb}from"node:fs/promises";import{createHash as Ub}from"node:crypto";import Bs from"node:path";import{zipSync as Vb,strToU8 as Kb}from"fflate";function Gb(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Bb(e){return Ub("sha256").update(e).digest("hex")}function Zb(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 Hb(e,t={}){let n=await Un(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
614
613
  - ${n.errors.join(`
615
- - `)}`);let r=await Nn(e),i=await Ws(e),o=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=Ub(await Fb(d.absolutePath));o.push({...d,bytes:l,sha256:Vb(l)})}let a=Kb(r,o,t),c={[zb]:qb(JSON.stringify(a,null,2))};for(let d of o)c[d.relativePath]=d.bytes;return{manifest:a,bytes:Lb(c,{level:6})}}async function Gb(e,t,n={}){let r=await Yb(e,n);return await Db(t,r.bytes),{...r,outputPath:Gs.resolve(t)}}function Bb(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 Sf(e=process.argv){let t=Bb(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await Nn(t.skillDir),r=t.output??Gs.join(Gs.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await Gb(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var zb,Zb,bf=p(()=>{"use strict";ai();he();zb=".kodax-package.json";s(Ub,"toUint8Array");s(Vb,"sha256");s(Kb,"createPackageManifest");s(Yb,"buildSkillPackage");s(Gb,"writeSkillPackage");s(Bb,"parseArgs");s(Sf,"main");Zb=!1;Zb&&Sf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as Hb,mkdir as Bs,readFile as kf,rm as xf,stat as Jb,writeFile as eP}from"node:fs/promises";import xe from"node:path";import{strFromU8 as Pf,unzipSync as tP}from"fflate";function nP(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function rP(e){let t=nP(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function iP(e){return/\.(skill|zip)$/i.test(e)}function oP(e){let t=tP(e),n=Object.entries(t).map(([l,f])=>({relativePath:rP(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=ii(Pf(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===vf),d=c?JSON.parse(Pf(c.bytes)):null;return{skillName:o,manifest:d,entries:n.filter(l=>l.relativePath!==vf)}}async function sP(e,t){if(await Ln(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await xf(e,{recursive:!0,force:!0})}await Bs(e,{recursive:!0})}async function aP(e,t={}){let n=xe.resolve(t.skillsDir??qn()),r=oP(await kf(e)),i=xe.join(n,r.skillName);await sP(i,t.force===!0);for(let o of r.entries){let a=xe.join(i,o.relativePath);await Bs(xe.dirname(a),{recursive:!0}),await eP(a,o.bytes)}return{skillName:r.skillName,installedTo:i,source:xe.resolve(e),manifest:r.manifest}}async function cP(e,t={}){let n=await zn(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
614
+ - `)}`);let r=await Ln(e),i=await Fs(e),o=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=Gb(await qb(d.absolutePath));o.push({...d,bytes:l,sha256:Bb(l)})}let a=Zb(r,o,t),c={[Yb]:Kb(JSON.stringify(a,null,2))};for(let d of o)c[d.relativePath]=d.bytes;return{manifest:a,bytes:Vb(c,{level:6})}}async function Jb(e,t,n={}){let r=await Hb(e,n);return await zb(t,r.bytes),{...r,outputPath:Bs.resolve(t)}}function eP(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 kf(e=process.argv){let t=eP(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await Ln(t.skillDir),r=t.output??Bs.join(Bs.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await Jb(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var Yb,tP,xf=p(()=>{"use strict";ai();he();Yb=".kodax-package.json";s(Gb,"toUint8Array");s(Bb,"sha256");s(Zb,"createPackageManifest");s(Hb,"buildSkillPackage");s(Jb,"writeSkillPackage");s(eP,"parseArgs");s(kf,"main");tP=!1;tP&&kf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as nP,mkdir as Zs,readFile as _f,rm as Qf,stat as rP,writeFile as iP}from"node:fs/promises";import xe from"node:path";import{strFromU8 as Tf,unzipSync as oP}from"fflate";function sP(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function aP(e){let t=sP(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function cP(e){return/\.(skill|zip)$/i.test(e)}function dP(e){let t=oP(e),n=Object.entries(t).map(([l,f])=>({relativePath:aP(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=ii(Tf(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===Rf),d=c?JSON.parse(Tf(c.bytes)):null;return{skillName:o,manifest:d,entries:n.filter(l=>l.relativePath!==Rf)}}async function lP(e,t){if(await qn(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Qf(e,{recursive:!0,force:!0})}await Zs(e,{recursive:!0})}async function uP(e,t={}){let n=xe.resolve(t.skillsDir??zn()),r=dP(await _f(e)),i=xe.join(n,r.skillName);await lP(i,t.force===!0);for(let o of r.entries){let a=xe.join(i,o.relativePath);await Zs(xe.dirname(a),{recursive:!0}),await iP(a,o.bytes)}return{skillName:r.skillName,installedTo:i,source:xe.resolve(e),manifest:r.manifest}}async function fP(e,t={}){let n=await Un(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
616
615
  - ${n.errors.join(`
617
- - `)}`);let r=xe.join(e,"SKILL.md"),i=ii(await kf(r,"utf8")),o=xe.resolve(t.skillsDir??qn()),a=xe.join(o,i.frontmatter.name);if(await Ln(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await xf(a,{recursive:!0,force:!0})}return await Bs(o,{recursive:!0}),await Hb(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:xe.resolve(e),manifest:null}}async function dP(e,t={}){let n=xe.resolve(e),r=await Jb(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return cP(n,t);if(r.isFile()&&iP(n))return aP(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function lP(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 Tf(e=process.argv){let t=lP(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 dP(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var vf,uP,Rf=p(()=>{"use strict";ai();he();vf=".kodax-package.json";s(nP,"normalizeArchivePath");s(rP,"assertSafeArchivePath");s(iP,"isZipLike");s(oP,"readSkillPackageBuffer");s(sP,"ensureInstallTarget");s(aP,"installSkillArchive");s(cP,"installSkillDirectory");s(dP,"installSkill");s(lP,"parseArgs");s(Tf,"main");uP=!1;uP&&Tf().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});var _f=p(()=>{"use strict";ef();ai();of();uf();hf();wf();bf();Rf();he()});var Zs=p(()=>{"use strict";gs();Os();Cn();$s();Fn();Cs();Vu();Ms();_f()});var Hs=p(()=>{"use strict"});var Js=p(()=>{"use strict"});var li=p(()=>{"use strict"});var Qf=p(()=>{"use strict";vt()});var tD,If=p(()=>{"use strict";Zs();zr();kt();vt();Hs();Js();li();Qf();tD=1440*60*1e3});var cD,Un=p(()=>{"use strict";zr();pe();vt();G();cD=5*6e4});var $f=p(()=>{"use strict";jn();li();Un()});var Cf=p(()=>{"use strict";eu();If();li();Hs();Js();Un();Un();Un();$f()});var JD,Vn=p(()=>{"use strict";G();JD=new Intl.Segmenter("zh-CN",{granularity:"word"})});var ea=p(()=>{"use strict";Ho();Mr();rs()});var ta=p(()=>{"use strict";pe();G()});var ui=p(()=>{"use strict"});var na=p(()=>{"use strict";G();ta();ui()});var ra=p(()=>{"use strict"});var ia=p(()=>{"use strict";Vn();ea();ta();na();pe();ui();ra()});var oa=p(()=>{"use strict";Mt();Vn();ia()});var Mf=p(()=>{"use strict";oa()});var nL,jf=p(()=>{"use strict";Vn();nL=String.raw`const TOOL_NAME = 'echo_tool';
616
+ - `)}`);let r=xe.join(e,"SKILL.md"),i=ii(await _f(r,"utf8")),o=xe.resolve(t.skillsDir??zn()),a=xe.join(o,i.frontmatter.name);if(await qn(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await Qf(a,{recursive:!0,force:!0})}return await Zs(o,{recursive:!0}),await nP(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:xe.resolve(e),manifest:null}}async function pP(e,t={}){let n=xe.resolve(e),r=await rP(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return fP(n,t);if(r.isFile()&&cP(n))return uP(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function mP(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 Ef(e=process.argv){let t=mP(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 pP(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var Rf,hP,If=p(()=>{"use strict";ai();he();Rf=".kodax-package.json";s(sP,"normalizeArchivePath");s(aP,"assertSafeArchivePath");s(cP,"isZipLike");s(dP,"readSkillPackageBuffer");s(lP,"ensureInstallTarget");s(uP,"installSkillArchive");s(fP,"installSkillDirectory");s(pP,"installSkill");s(mP,"parseArgs");s(Ef,"main");hP=!1;hP&&Ef().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});var $f=p(()=>{"use strict";of();ai();df();hf();wf();vf();xf();If();he()});var Hs=p(()=>{"use strict";ys();gs();An();Cs();Dn();As();Bu();js();$f()});var Js=p(()=>{"use strict"});var ea=p(()=>{"use strict"});var li=p(()=>{"use strict"});var Cf=p(()=>{"use strict";kt()});var cD,Xf=p(()=>{"use strict";Hs();zr();xt();kt();Js();ea();li();Cf();cD=1440*60*1e3});var hD,Vn=p(()=>{"use strict";zr();pe();kt();G();hD=5*6e4});var Mf=p(()=>{"use strict";Wn();li();Vn()});var jf=p(()=>{"use strict";nu();Xf();li();Js();ea();Vn();Vn();Vn();Mf()});var sN,Kn=p(()=>{"use strict";G();sN=new Intl.Segmenter("zh-CN",{granularity:"word"})});var ta=p(()=>{"use strict";Jo();_n();is()});var na=p(()=>{"use strict";pe();G()});var ui=p(()=>{"use strict"});var ra=p(()=>{"use strict";G();na();ui()});var ia=p(()=>{"use strict"});var oa=p(()=>{"use strict";Kn();ta();na();ra();pe();ui();ia()});var sa=p(()=>{"use strict";jt();Kn();oa()});var Df=p(()=>{"use strict";sa()});var dL,Nf=p(()=>{"use strict";Kn();dL=String.raw`const TOOL_NAME = 'echo_tool';
618
617
  const RESOURCE_URI = 'memory://guide';
619
618
  const PROMPT_NAME = 'draft_prompt';
620
619
  let buffer = '';
@@ -794,16 +793,16 @@ process.stdin.on('data', (chunk) => {
794
793
 
795
794
  process.on('SIGTERM', () => process.exit(0));
796
795
  process.on('SIGINT', () => process.exit(0));
797
- `});var Wf=p(()=>{"use strict";Vn();ia();oa();ra();ea();ui();na();Mf();jf()});async function XP(e,t,n){let r=Df("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function MP(e,t,n){let r=Df("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function jP(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 Ff,CP,AP,Df,WP,Nf=p(()=>{"use strict";Ff=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),CP=0,AP=0,Df=s(e=>{let t=e==="label"?++CP:++AP,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");s(XP,"appendLabel");s(MP,"appendArtifact");s(jP,"buildLineageTree");WP=Object.freeze({name:"lineage",entryTypes:Ff,operators:Object.freeze({label:s((async(e,...t)=>{let[n,r]=t;return XP(e,n,r)}),"label"),attachArtifact:s((async(e,...t)=>{let[n,r]=t;return MP(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:s(e=>jP(e),"buildLineageTree")})})});var Lf=p(()=>{"use strict"});var fi=p(()=>{"use strict"});var pi=p(()=>{"use strict";fi()});var sa=p(()=>{"use strict"});var aa=p(()=>{"use strict";sa()});var qf=p(()=>{"use strict"});var mi=p(()=>{"use strict"});var hi=p(()=>{"use strict"});var KP,da,Oi,Yt=p(()=>{"use strict";Mt();pi();aa();qf();fi();un();mi();hi();KP=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"]),da=KP,Oi=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
796
+ `});var Lf=p(()=>{"use strict";Kn();oa();sa();ia();ta();ui();ra();Df();Nf()});async function FP(e,t,n){let r=zf("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function DP(e,t,n){let r=zf("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function NP(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 qf,jP,WP,zf,LP,Uf=p(()=>{"use strict";qf=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),jP=0,WP=0,zf=s(e=>{let t=e==="label"?++jP:++WP,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");s(FP,"appendLabel");s(DP,"appendArtifact");s(NP,"buildLineageTree");LP=Object.freeze({name:"lineage",entryTypes:qf,operators:Object.freeze({label:s((async(e,...t)=>{let[n,r]=t;return FP(e,n,r)}),"label"),attachArtifact:s((async(e,...t)=>{let[n,r]=t;return DP(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:s(e=>NP(e),"buildLineageTree")})})});var Vf=p(()=>{"use strict"});var fi=p(()=>{"use strict"});var pi=p(()=>{"use strict";fi()});var aa=p(()=>{"use strict"});var ca=p(()=>{"use strict";aa()});var Kf=p(()=>{"use strict"});var mi=p(()=>{"use strict"});var hi=p(()=>{"use strict"});var ZP,la,Oi,Yt=p(()=>{"use strict";jt();pi();ca();Kf();fi();un();mi();hi();ZP=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"]),la=ZP,Oi=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
798
797
 
799
- `});var la=p(()=>{"use strict";Mt()});var Gt=p(()=>{"use strict";Yt();la()});var Gf=p(()=>{"use strict";Gt()});var Bf=p(()=>{"use strict"});var Sq,bq,Zf=p(()=>{"use strict";Yt();Gt();Sq=Oi.trimEnd(),bq=16*1024});var Hf=p(()=>{"use strict";pi();Gt()});var Jf=p(()=>{"use strict";Gt()});var HP,ep=p(()=>{"use strict";Yt();fi();HP={enabled:!1,maxAge:20,protectedTools:Array.from(da)}});var tp=p(()=>{"use strict"});var np=p(()=>{"use strict";G()});var rp=p(()=>{"use strict";Yt()});var ip=p(()=>{"use strict";Mt();un();mi();hi()});var op=p(()=>{"use strict"});var sp=p(()=>{"use strict";rp();ip();op()});var ap=p(()=>{"use strict";Nf();Lf();Gf();Bf();Gt();Zf();Hf();Jf();mi();hi();pi();sa();aa();Yt();ep();la();tp();np();sp()});var cp=p(()=>{"use strict"});var fa=p(()=>{"use strict"});var pa=p(()=>{"use strict"});var gi=p(()=>{"use strict"});import QU from"typescript";var ma=p(()=>{"use strict"});var ha=p(()=>{"use strict";gi();ma()});var lp=p(()=>{"use strict";gi();ha()});var Oa=p(()=>{"use strict";Pn();fa()});var up=p(()=>{"use strict";pa();Oa()});var fp=p(()=>{"use strict";cp();fa();pa();gi();ha();ma();lp();Oa();up()});var pp=p(()=>{"use strict"});var ga=p(()=>{"use strict"});var mp=p(()=>{"use strict";ga();ga()});var hp=p(()=>{"use strict"});var Op=p(()=>{"use strict";pp();mp();hp()});var yi=p(()=>{"use strict"});var ya=p(()=>{"use strict";yi()});var U5,gp=p(()=>{"use strict";yi();ya();U5=new Intl.Segmenter("en",{granularity:"grapheme"})});var yp=p(()=>{"use strict";gp();yi();ya()});var wi=p(()=>{"use strict";jc();Mt();un();pe();Dd();Nd();Ld();Zo();Yo();Bo();Go();kn();Vo();Ko();$r();el();G();il();Ho();Mr();rs();Tl();Rl();ss();Ml();Ll();us();fs();ql();zl();ps();ms();ms();zr();Cf();ti();ti();vt();Wf();Zs();Uo();ap();fp();Op();yp()});import wp from"node:fs";import wa from"node:os";import je from"node:path";function Pp(e){return(e==="~"?wa.homedir():/^~[\\/]/.test(e)?je.join(wa.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,wa.homedir())}function Sa(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=Pp(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=je.resolve(t,n);for(;;){try{wp.lstatSync(i)}catch(o){if(o.code!=="ENOENT")return;let a=je.dirname(i);if(a===i)return;r.unshift(je.basename(i)),i=a;continue}try{return je.join(wp.realpathSync.native(i),...r)}catch{return}}}function Sp(e,t){let n=je.relative(t,e);if(!(!n||n.startsWith("..")||je.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 vp(e,t=process.cwd()){let n;try{n=wt()}catch{return!1}let r=je.resolve(n),i=je.resolve(t,Pp(e));if(xn(i,r)){let d=Sp(i,r);if(bp(d))return!0}let o=Sa(n)??r,a=Sa(e,t);if(a===void 0)return xn(i,r);if(!xn(a,o))return!1;let c=Sp(a,o);return bp(c)}function bp(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var kp=p(()=>{"use strict";wi();s(Pp,"expandHome");s(Sa,"canonicalizeAgentHomePolicyPath");s(Sp,"normalizedRelative");s(vp,"isAgentHomeHardMutationTarget");s(bp,"isHardAgentHomeRelativePath")});import{randomUUID as _p}from"node:crypto";import{mkdir as Sv,readFile as bv,rename as Pv,rm as xp,writeFile as vv}from"node:fs/promises";import Qp from"node:path";function Rp(e,t){return Qp.join(e,"runtime",...Tp===void 0?[]:[`test-filesystem-effects-${Tp}`],t)}function _v(){let e=wt();return{coordinatorPath:Rp(e,Rv),statePath:Rp(e,Tv)}}function ba(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.posixProcessGroup===void 0||typeof t.posixProcessGroup=="boolean")&&(t.windowsJobContained===void 0||typeof t.windowsJobContained=="boolean")}async function Kn(e){let t;try{t=await bv(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(ba))throw new Error("Invalid direct filesystem effect state.");if(!Array.isArray(r.shells)||!r.shells.every(ba))throw new Error("Invalid shell filesystem effect state.");let i=r.namespaces??[];if(!Array.isArray(i)||!i.every(ba))throw new Error("Invalid namespace filesystem effect state.");return{direct:r.direct,namespaces:i,shells:r.shells}}function Qv(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function Ep(e){if(!Qv(e.pid))return!1;let t=e.pid===process.pid?Pa:Lt(e.pid);return e.processStartIdentity===void 0||t===void 0||t===e.processStartIdentity}function Ev(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=Lt(e.effectPid);return n!==void 0&&(e.effectProcessStartIdentity===void 0||n===e.effectProcessStartIdentity)?"alive":process.platform!=="win32"||e.windowsJobContained===!0||!t?"absent":"unknown"}function Iv(e,t){let n=new Map;for(let i of[...e.direct,...e.namespaces,...e.shells])n.set(i,Ep(i));let r=s(i=>n.get(i)===!0||Ev(i,t)!=="absent","keepExternalEffect");return{direct:e.direct.filter(i=>n.get(i)===!0),namespaces:e.namespaces.filter(r),shells:e.shells.filter(r)}}async function $v(e){return await Yn(e,async()=>{let r=await Kn(e);return[...r.namespaces,...r.shells].some(i=>!Ep(i))})?(await ns()).skipped>0:!0}async function Pi(e,t){let{statePath:n}=e;if(t.direct.length===0&&t.namespaces.length===0&&t.shells.length===0){await xp(n,{force:!0});return}await Sv(Qp.dirname(n),{recursive:!0});let r=`${n}.${process.pid}.${_p()}.tmp`;await vv(r,`${JSON.stringify(t)}
800
- `,"utf8");try{await Pv(r,n)}catch(i){try{await xp(r,{force:!0})}catch(o){throw new AggregateError([i,o],"Filesystem effect state update and cleanup both failed.")}throw i}}async function Yn(e,t){let n=await Ps(e.coordinatorPath,kv);try{return await t()}finally{await n()}}async function Cv(e){let t=_v(),n=_p(),r={pid:process.pid,token:n,...Pa===void 0?{}:{processStartIdentity:Pa}},i=Date.now()+xv,o=await $v(t);for(;!await Yn(t,async()=>{let w=Iv(await Kn(t),o);return(e==="shell"?w.direct.length>0||w.namespaces.length>0:e==="direct"?w.shells.length>0||w.namespaces.length>0:w.direct.length>0||w.namespaces.length>0||w.shells.length>0)?!1:(await Pi(t,e==="shell"?{direct:w.direct,namespaces:w.namespaces,shells:[...w.shells,r]}:e==="direct"?{direct:[...w.direct,r],namespaces:w.namespaces,shells:w.shells}:{direct:w.direct,namespaces:[...w.namespaces,r],shells:w.shells}),!0)});){if(Date.now()>=i)throw new Error("A model filesystem effect is already active; retry after it finishes.");await new Promise(w=>setTimeout(w,20))}let a=!1,c,d=!1,l=!1,f=s(()=>Yn(t,async()=>{let P=await Kn(t),w=(e==="shell"?P.shells:e==="direct"?P.direct:P.namespaces).find(b=>b.token===n);if(w===void 0){if(l)return;throw new Error("Filesystem effect lease ownership was lost.")}if(w.effectPid!==void 0&&w.effectFinished!==!0)throw new Error("Filesystem effect process tree has not been proven drained.");l=!0,await Pi(t,e==="shell"?{direct:P.direct,namespaces:P.namespaces,shells:P.shells.filter(b=>b.token!==n)}:e==="direct"?{direct:P.direct.filter(b=>b.token!==n),namespaces:P.namespaces,shells:P.shells}:{direct:P.direct,namespaces:P.namespaces.filter(b=>b.token!==n),shells:P.shells})}),"releaseOnce"),u=s(()=>{if(a||d)return;d=!0;let P=s(()=>{setTimeout(()=>{f().then(()=>{a=!0,d=!1}).catch(()=>{P()})},250).unref?.()},"retry");P()},"scheduleBackgroundRelease"),m=s(async()=>{let P;for(let w=1;w<=bi;w+=1)try{await f();return}catch(b){P=b,w<bi&&await new Promise(_=>setTimeout(_,20))}throw u(),P},"releaseReliably"),g=s(async()=>{a||(c??=m().then(()=>{a=!0}).finally(()=>{c=void 0}),await c)},"release"),S=s(async(P,w)=>{if(!Number.isInteger(P)||P<=0)throw new Error(`Invalid filesystem effect process id: ${P}`);await Yn(t,async()=>{let b=await Kn(t);if(!(e==="shell"?b.shells:e==="direct"?b.direct:b.namespaces).some(I=>I.token===n))throw new Error("Filesystem effect lease ownership was lost before process binding.");let E=Lt(P),A={...r,effectPid:P,effectFinished:!1,...E===void 0?{}:{effectProcessStartIdentity:E},posixProcessGroup:process.platform!=="win32",windowsJobContained:w},$=s(I=>I.token===n?A:I,"replaceOwner");await Pi(t,{direct:e==="direct"?b.direct.map($):b.direct,namespaces:e==="namespace"?b.namespaces.map($):b.namespaces,shells:e==="shell"?b.shells.map($):b.shells})}),x=!1},"bindEffectProcess"),x=!1,h,y=!1,k=s(()=>Yn(t,async()=>{let P=await Kn(t),w=s(_=>_.token===n?{..._,effectFinished:!0}:_,"replaceOwner");if(!(e==="shell"?P.shells:e==="direct"?P.direct:P.namespaces).some(_=>_.token===n))throw new Error("Filesystem effect lease ownership was lost before tree completion.");await Pi(t,{direct:e==="direct"?P.direct.map(w):P.direct,namespaces:e==="namespace"?P.namespaces.map(w):P.namespaces,shells:e==="shell"?P.shells.map(w):P.shells})}),"finishEffectProcessOnce"),v=s(()=>{if(x||y)return;y=!0;let P=s(()=>{setTimeout(()=>{k().then(()=>{x=!0,y=!1}).catch(()=>{P()})},250).unref?.()},"retry");P()},"scheduleBackgroundFinish");return Object.assign(g,{bindEffectProcess:S,finishEffectProcess:s(async()=>{x||(h??=(async()=>{let P;for(let w=1;w<=bi;w+=1)try{await k(),x=!0;return}catch(b){P=b,w<bi&&await new Promise(_=>setTimeout(_,20))}throw v(),P})().finally(()=>{h=void 0}),await h)},"finishEffectProcess")})}function Av(){return Cv("direct")}async function Xv(e){let t=await Av();try{return await e()}finally{await t()}}function Mv(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function jv(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,"/"),Mv()?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 va(e,t){let n=jv(e),i=(Si.get(n)??Promise.resolve()).catch(()=>{}).then(async()=>Xv(async()=>{if(vp(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return await t()})),o=i.catch(()=>{}).finally(()=>{Si.get(n)===o&&Si.delete(n)});return Si.set(n,o),i}var Si,kv,xv,bi,Tv,Rv,Pa,Tp,Ip=p(()=>{"use strict";wi();kp();Si=new Map,kv=5e3,xv=1e3,bi=3,Tv="model-filesystem-effects.json",Rv="model-filesystem-effects.lock",Pa=Lt(process.pid),Tp=process.env.VITEST_WORKER_ID===void 0?void 0:`${process.env.VITEST_WORKER_ID}-${process.pid}`.replace(/[^a-z0-9_-]/gi,"_");s(Rp,"effectRuntimePath");s(_v,"captureEffectLeaseStorage");s(ba,"isEffectLeaseOwner");s(Kn,"readEffectLeaseState");s(Qv,"isProcessAlive");s(Ep,"isEffectLeaseOwnerAlive");s(Ev,"modelEffectTreeState");s(Iv,"removeStaleEffectLeases");s($v,"reconcileAbandonedManagedEffects");s(Pi,"writeEffectLeaseState");s(Yn,"withEffectLeaseCoordinator");s(Cv,"acquireEffectLease");s(Av,"acquireDirectFileMutationLease");s(Xv,"withHostFileSystemMutation");s(Mv,"isWindowsPathPlatform");s(jv,"normalizePathForKey");s(va,"withFileMutation")});import{AsyncLocalStorage as Wv}from"node:async_hooks";import We from"fs/promises";import xa from"path";async function oe(e,t){try{let n=await We.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function Oe(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&L({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function Gn(e){return Fv.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function Lv(e){return ka=(ka+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${ka}.tmp`}async function zv(e,t){for(let r=1;;r+=1)try{await We.rename(e,t);return}catch(i){let o=i?.code;if(r>=5||!o||!qv.has(o))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function Fe(e,t){await va(e,async()=>{let n=xa.dirname(e);await We.mkdir(n,{recursive:!0});let r=Lv(e);try{await We.writeFile(r,`${JSON.stringify(t,null,2)}
801
- `,"utf8"),await zv(r,e)}catch(i){throw await We.rm(r,{force:!0}).catch(()=>{}),i}await Uv(n,xa.basename(e)).catch(()=>{})})}async function vi(e){await va(e,async()=>{await We.mkdir(e,{recursive:!0})})}async function Uv(e,t){let n=`${t}.`,r=Date.now(),i=await We.readdir(e);await Promise.all(i.filter(o=>o.startsWith(n)&&Nv.test(o.slice(n.length))).map(async o=>{let a=xa.join(e,o);try{let c=await We.stat(a);r-c.mtimeMs>=Dv&&await We.rm(a,{force:!0})}catch{}}))}var Fv,Dv,Nv,ka,qv,ki=p(()=>{"use strict";wi();Ip();Fv=new Wv;s(oe,"safeReadJson");s(Oe,"debugLogRepoIntelligence");s(Gn,"resolveRepoIntelligenceStorageDir");Dv=3600*1e3,Nv=/^\d+\.\d+(?:\.\d+)?\.tmp$/,ka=0;s(Lv,"nextAtomicTempPath");qv=new Set(["EPERM","EBUSY","EACCES"]);s(zv,"renameWithRetry");s(Fe,"writeJsonFileAtomic");s(vi,"ensureRepoIntelligenceStorageDir");s(Uv,"sweepStaleTempFiles")});import Rt from"fs/promises";import C from"path";import{createHash as Ra}from"node:crypto";import{execFile as Vv}from"child_process";import{promisify as Kv}from"util";function _t(e){return typeof e=="object"&&e!==null}function sk(e){return _t(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 ak(e){return _t(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.source==="git"||e.source==="filesystem")&&typeof e.generatedAt=="string"&&typeof e.truncated=="boolean"&&_t(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=>sk(t))}function ck(e){return _t(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 dk(e){return _t(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 lk(e){return _t(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||dk(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 se(e,t){return(await Yv("git",e,{cwd:t,timeout:Zv,windowsHide:!0,maxBuffer:8388608})).stdout.toString()}async function Bn(e){try{return await Rt.access(e),!0}catch{return!1}}async function Ea(e){let t=Ri(e);return await vi(t),t}function D(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Up(e){let t=Ra("sha256");for(let n of Array.from(e,r=>D(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function uk(e){return rk.has(C.posix.basename(D(e)))}function fk(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(D(e[n]??"")!==D(t[n]??""))return!1;return!0}function Qt(e){let t=D(e);return t===".agent"||t===".kodax"||Hv.some(n=>t.startsWith(n))}async function pk(e){try{let t=(await se(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:C.resolve(t),source:"git"}}catch{}return{workspaceRoot:C.resolve(e),source:"filesystem"}}async function mk(e){try{return(await Rt.stat(e)).isDirectory()?e:C.dirname(e)}catch{return e}}async function hk(e){let t=(await se(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await se(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(D).filter(i=>!Qt(i))));return{files:r.slice(0,et),truncated:r.length>et}}async function $p(e){let t=[],n=!1;async function r(i){if(t.length>=et){n=!0;return}let o=await Rt.readdir(i,{withFileTypes:!0});for(let a of o){if(t.length>=et){n=!0;return}if(a.isDirectory()){if(ok.has(a.name))continue;await r(C.join(i,a.name));continue}if(!a.isFile())continue;let c=D(C.relative(e,C.join(i,a.name)));Qt(c)||t.push(c)}}return s(r,"walk"),await r(e),{files:t,truncated:n}}function Ok(e){let t=D(e).toLowerCase();return t.split("/").some(r=>ek.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Bt(e){let t=D(e),n=C.extname(t).toLowerCase(),r=C.posix.basename(t);return Qa.has(r)?"config":t.startsWith("docs/")||zp.has(t)||qp.has(n)?"docs":Ok(t)?"tests":Jv.has(n)?"source":"other"}async function Vp(e,t){if(t===".")return"Workspace Root";let n=C.join(e,t,"package.json"),r=C.join(e,t,"pyproject.toml"),i=C.join(e,t,"Cargo.toml");if(await Bn(n))try{let o=JSON.parse(await Rt.readFile(n,"utf8"));if(o.name?.trim())return o.name.trim()}catch{}for(let o of[r,i])if(await Bn(o))try{let c=(await Rt.readFile(o,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return C.posix.basename(t)}async function gk(e,t){let n=new Map;for(let i of t){let a=D(i).split("/");if(a.length===1){n.set(".","root");continue}if(nk.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=tk.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("/")&&Qa.has(C.posix.basename(l)));r.push({id:i,label:await Vp(e,i),kind:o,root:i,fileCount:c.length,manifests:d.slice(0,_a),sampleFiles:c.slice(0,_a)})}return r.sort((i,o)=>o.fileCount!==i.fileCount?o.fileCount-i.fileCount:i.root.localeCompare(o.root))}async function Cp(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([se(["branch","--show-current"],e),se(["rev-parse","HEAD"],e),se(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function Zn(e,t){if(t==="git")try{return await hk(e)}catch{return $p(e)}return $p(e)}async function xi(e,t){let n=await Yp(e,Dp);return!n||n.schemaVersion!==ce||t&&n.overviewGeneratedAt!==t?null:n}async function Ap(e){let n=(await se(["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=D(o.slice(3));if(c&&!Qt(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=D(n[i+1]??"");d&&!Qt(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function Kp(e,t){return oe(Ri(e,t),ak)}async function Yp(e,t){return oe(Ri(e,t),ck)}async function yk(e){return oe(Ri(e,Wp),lk)}async function wk(e,t){let n=Ra("sha256");n.update(Up(t));for(let r of t){let i=C.join(e,r);n.update(r),n.update(":");try{if(await Rt.stat(i),n.update("present:"),uk(r)){let o=await Rt.readFile(i,"utf8");n.update(Ra("sha256").update(o).digest("hex"))}}catch(o){let a=_t(o)&&typeof o.code=="string"?o.code:void 0;n.update(a==="ENOENT"?"missing":"unreadable")}n.update("|")}return n.digest("hex")}async function Xp(e,t){let n=t.map(r=>D(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:Up(n),dirtySemanticFingerprint:await wk(e,n)}}async function Sk(e,t,n){let r=new Set(t.map(i=>D(i)));for(let i of n){let o=C.join(e,i);await Bn(o)?r.add(i):r.delete(i)}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function Gp(e,t,n,r,i){let o=n.map(c=>D(c)),a={schemaVersion:ce,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:o.length,sourceFiles:o.filter(c=>Bt(c)==="source").length,docFiles:o.filter(c=>Bt(c)==="docs").length,testFiles:o.filter(c=>Bt(c)==="tests").length,configFiles:o.filter(c=>Bt(c)==="config").length},manifests:o.filter(c=>Qa.has(C.posix.basename(c))).slice(0,12),keyDocs:o.filter(c=>zp.has(c)||/^README/i.test(C.posix.basename(c))&&qp.has(C.extname(c).toLowerCase())).slice(0,8),entryHints:o.filter(c=>ik.includes(C.posix.basename(c))).slice(0,8),areas:await gk(e,o)};return{overview:a,inventory:{schemaVersion:ce,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...o].sort((c,d)=>c.localeCompare(d)),sourceFiles:o.filter(c=>Bt(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function Bp(e,t,n,r={}){let i={schemaVersion:ce,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 Fe(C.join(e,Wp),i),await Fe(C.join(e,Fp),t),await Fe(C.join(e,Dp),n),r.writeBaseline===!0&&(await Fe(C.join(e,Np),t),await Fe(C.join(e,Lp),n))}function bk(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===ce&&t.schemaVersion===ce&&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 Pk(e,t,n,r){return!!(e&&t&&e.schemaVersion===ce&&t.schemaVersion===ce&&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 vk(e,t,n){let r=await Kp(e,Np),i=await Yp(e,Lp);if(!bk(r,i,t))return null;let o=i,{dirtyPaths:a}=n,c=new Set(o.allFiles);if(r.truncated)for(let x of a){let h=C.join(e,x);if(!c.has(x)||await Bn(h)===!1)return null}let d=new Set(c);for(let x of a){let h=C.join(e,x);await Bn(h)?d.add(x):d.delete(x)}let l=Array.from(d).sort((x,h)=>x.localeCompare(h)),f=r.truncated||l.length>et,u=f?l.slice(0,et):l,{overview:m,inventory:g}=await Gp(e,"git",u,f,t),S=await Ea(e);return await Bp(S,m,g,{dirtyIdentity:n}),m}async function kk(e,t,n,r,i){if(!t||!n||t.schemaVersion!==ce||t.source!=="filesystem"||n.schemaVersion!==ce||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let o=r.map(a=>D(a)).sort((a,c)=>a.localeCompare(c));if(!fk(n.allFiles,o))return!1;for(let a of t.areas)if(await Vp(e,a.root)!==a.label)return!1;return!0}async function Ta(e,t,n,r,i){let{files:o,truncated:a}=i??await Zn(e,t),c=t==="git"&&r?.dirtyPaths.length?await Sk(e,o,r.dirtyPaths):o.map(g=>D(g)),d=a||c.length>et,l=d?c.slice(0,et):c,f=await Ea(e),{overview:u,inventory:m}=await Gp(e,t,l,d,n);return await Bp(f,u,m,{writeBaseline:t==="git"&&n?.hasUncommittedChanges!==!0,dirtyIdentity:r}),{workspaceRoot:e,source:t,overview:u,inventory:m,dirtyPaths:r?.dirtyPaths}}async function Et(e,t={}){let n=Xc(e),r=await mk(t.targetPath?C.resolve(n,t.targetPath):n),{workspaceRoot:i,source:o}=await pk(r),a=await Kp(i,Fp),c=await yk(i),d,l;if(!t.refresh){if(d=await Cp(i,o),o!=="git"){let u=a?.schemaVersion===ce?await xi(i,a.generatedAt):null,m=await Zn(i,o);return await kk(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:o,overview:a,inventory:u}:Ta(i,o,d,void 0,m)}if(o==="git"&&a?.schemaVersion===ce&&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 xi(i,a.generatedAt)};if(o==="git"&&d?.hasUncommittedChanges===!0){let u=await Ap(i).catch(m=>(Oe("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Xp(i,u),Pk(a,c,d,l))return{workspaceRoot:i,source:o,overview:a,inventory:await xi(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await vk(i,d,l);if(m)return{workspaceRoot:i,source:o,overview:m,inventory:await xi(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return Ta(i,o,d,l)}if(d=await Cp(i,o),o==="git"&&d?.hasUncommittedChanges===!0){let f=await Ap(i).catch(u=>(Oe("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Xp(i,f))}return Ta(i,o,d,l)}function Mp(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function xk(e){if(!e.trim())return null;let t=e.slice(0,2),n=e.slice(3).trim(),r=D(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 Tk(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function jp(e,t){let n=D(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 Rk(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 _k(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 se(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(d){throw Oe(`Rejected compare base ref "${a}".`,d),new Error(`Could not resolve base ref "${a}".`)}return(await se(["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:D(u),status:Mp(l??"M")}}).filter(d=>!Qt(d.path))}let i=(await se(["status","--porcelain=v1","--untracked-files=all"],e)).split(/\r?\n/).map(xk).filter(a=>a!==null).filter(a=>Tk(a,t)),o=new Map;for(let a of i)Qt(a.path)||o.set(a.path,{path:a.path,status:Mp(a.status)});return Array.from(o.values())}async function Qk(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await se(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await se(["diff","--cached","--numstat"],e):t==="unstaged"?r=await se(["diff","--numstat"],e):r=await se(["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=D(u.split(" -> ").pop()??u);if(Qt(m))continue;let g=l==="-"?0:Number.parseInt(l,10),S=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(S)&&(o+=S)}return{changedLineCount:i+o,addedLineCount:i,deletedLineCount:o}}async function Ti(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 _k(r.workspaceRoot,n,t.baseRef),o=await Qk(r.workspaceRoot,n,t.baseRef).catch(u=>(Oe("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=jp(u.path,r.areas);return{path:u.path,status:u.status,category:Bt(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=jp(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<_a?[...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:ce,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:Rk(a,Array.from(c.values()))},f=await Ea(r.workspaceRoot);return await Fe(C.join(f,Bv),l),l}function Ek(){return Gn(Gv)}function Ri(e,...t){let n=Ek(),r=C.isAbsolute(n)?n:C.join(e,n);return C.join(r,...t)}var Yv,Gv,Wp,Fp,Dp,Np,Lp,Bv,ce,et,_a,Zv,Hv,Jv,qp,ek,tk,nk,Qa,rk,zp,ik,ok,Zp=p(()=>{"use strict";Mc();ki();Yv=Kv(Vv),Gv=C.join(".agent","repo-intelligence"),Wp="manifest.json",Fp="repo-overview.json",Dp="repo-overview-inventory.json",Np="repo-overview-baseline.json",Lp="repo-overview-inventory-baseline.json",Bv="changed-scope.json",ce=3,et=12e3,_a=3,Zv=5e3,Hv=[".agent/",".kodax/"],Jv=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"]),qp=new Set([".md",".mdx",".rst",".txt"]),ek=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),tk=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"]]),nk=new Set(["packages","apps","libs","services"]),Qa=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"]),zp=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"]),ik=["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"],ok=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);s(_t,"isRecord");s(sk,"isRepoAreaOverview");s(ak,"isRepoOverviewPayload");s(ck,"isRepoOverviewInventoryPayload");s(dk,"isGitSummaryPayload");s(lk,"isRepoOverviewManifestPayload");s(se,"runGit");s(Bn,"exists");s(Ea,"ensureStorageDir");s(D,"normalizeRelativePath");s(Up,"computePathFingerprint");s(uk,"isAreaLabelSensitiveManifestPath");s(fk,"sameNormalizedPathList");s(Qt,"isManagedMetadataPath");s(pk,"resolveWorkspaceRoot");s(mk,"resolveTargetDirectory");s(hk,"listGitFiles");s($p,"walkFilesystemFiles");s(Ok,"isTestFile");s(Bt,"classifyFileCategory");s(Vp,"readAreaLabel");s(gk,"buildAreas");s(Cp,"getGitSummary");s(Zn,"collectWorkspaceFilesForSource");s(xi,"readRepoOverviewInventory");s(Ap,"collectWorkspaceDirtyPaths");s(Kp,"readStoredRepoOverview");s(Yp,"readStoredRepoOverviewInventory");s(yk,"readStoredRepoOverviewManifest");s(wk,"computeDirtySemanticFingerprint");s(Xp,"buildDirtyOverviewIdentity");s(Sk,"applyDirtyPathPatchToFiles");s(Gp,"buildRepoOverviewArtifacts");s(Bp,"writeRepoOverviewArtifacts");s(bk,"canUseOverviewBaseline");s(Pk,"canDirectReuseDirtyOverview");s(vk,"tryBuildDirtyRepoOverviewFromBaseline");s(kk,"canDirectReuseFilesystemOverview");s(Ta,"buildRepoOverviewSnapshotForWorkspace");s(Et,"resolveRepoOverviewSnapshot");s(Mp,"resolveChangedStatus");s(xk,"parsePorcelainLine");s(Tk,"includesCandidate");s(jp,"findAreaForFile");s(Rk,"buildRiskHints");s(_k,"collectChangedFiles");s(Qk,"collectChangedLineStats");s(Ti,"analyzeChangedScopeFromSnapshot");s(Ek,"getRepoIntelligenceDir");s(Ri,"resolveRepoIntelligencePath")});var _i=p(()=>{"use strict";Zp();ki()});import Ik from"fs/promises";import Hn from"path";import{createHash as Qi}from"node:crypto";function Te(e){return typeof e=="object"&&e!==null}function Jt(e){return Te(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 nm(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function Ck(e){return e==="high"||e==="medium"||e==="low"}function Ak(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function Xk(e){return Te(e)&&nm(e.language)&&Ck(e.capabilityTier)&&typeof e.fileCount=="number"}function Mk(e){return Te(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&nm(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function jk(e){return Te(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 rm(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&jk(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>Xk(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>Mk(t))}function Wk(e){return Te(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&Ak(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 Fk(e){return Te(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>Wk(t))}function im(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&Te(e.analyses)&&Object.values(e.analyses).every(t=>t===null||Fk(t))}function om(e){return Te(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 z(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function J(e){switch(Hn.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 ae(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 De(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function am(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?De(n.capabilityTier):.4}async function Ci(e){try{return await Ik.access(e),!0}catch{return!1}}async function Ai(e,t="full"){let n=Dk(),r=Hn.isAbsolute(n)?n:Hn.join(e,n),i=t==="light"?Hn.join(r,"light"):r;return await vi(i),i}function cm(e,t,n){return Qi("sha256").update(z(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function en(e){let t=Qi("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Xi(e,t){let n=Qi("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 Jn(e){let t=Qi("sha256");for(let n of Array.from(e,r=>z(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Mi(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function ji(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function Ia(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function dm(e){return e.workspaceSnapshot.source!=="git"||ji(e.workspaceSnapshot)}function lm(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function rt(e,t){return Fe(e,t)}function um(e){let t=z(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function fm(e){let t=z(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function ye(e,t){let n=z(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 de(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function er(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 de(n,12)}function Dk(){return Gn($k)}var $k,tt,Ei,Ii,$i,Hp,Jp,em,B,Zt,nt,tm,ge,Ht,Re,it=p(()=>{"use strict";ki();$k=Hn.join(".agent","repo-intelligence"),tt="repo-intelligence-index.json",Ei="repo-intelligence-manifest.json",Ii="file-analysis-index.json",$i="repo-intelligence-dirty-source-hint.json",Hp="module-index.json",Jp="symbol-index.json",em="process-index.json",B=9,Zt=512*1024,nt=40,tm=8,ge=8,Ht=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),Re=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);s(Te,"isRecord");s(Jt,"isRepoIntelligenceIndexPayload");s(nm,"isRepoLanguageId");s(Ck,"isLanguageCapabilityTier");s(Ak,"isRepoSymbolKind");s(Xk,"isRepoLanguageSupportPayload");s(Mk,"isRepoSourceFileStatePayload");s(jk,"isRepoWorkspaceSnapshotPayload");s(rm,"isRepoIntelligenceManifestPayload");s(Wk,"isCachedRepoSymbolRecordPayload");s(Fk,"isCachedFileAnalysisEntryPayload");s(im,"isFileAnalysisIndexPayload");s(om,"isDirtySourceHintPayload");s(z,"normalizeRelativePath");s(J,"languageFromFile");s(ae,"capabilityTierForLanguage");s(sm,"analyzerVersionForLanguage");s(De,"baseConfidenceForTier");s(am,"computeModuleConfidence");s(Ci,"exists");s(Ai,"ensureStorageDir");s(cm,"computeFileFingerprint");s(en,"computeSourceFingerprint");s(Xi,"computeOverviewFingerprint");s(Jn,"computePathFingerprint");s(Mi,"workspaceSnapshotFromOverview");s(ji,"isCleanGitSnapshot");s(Ia,"sameWorkspaceSnapshot");s(dm,"shouldPersistRepoIntelligenceBaseline");s(lm,"getDirtySourcePathsForInputs");s(rt,"writeJsonFileAtomic");s(um,"isTestFile");s(fm,"isDocFile");s(ye,"findAreaForFile");s(de,"dedupeStrings");s(er,"extractImports");s(Dk,"getRepoIntelligenceDir")});import $a from"path";import Nk from"fs/promises";function pm(e,t){let n=new Map,r=new Map,i=new Map,o=new Map;for(let a of e){let c=ye(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),um(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(fm(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 mm(e,t="full"){let n=e.workspaceRoot,r=await Ai(n,t),i=Mi(e.overview),o=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>z(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=o?Jn(o):void 0,c=(o??[]).filter(f=>Ht.has($a.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await Ci($a.join(n,f))&&d.push(f);let l=d.length>0?await tn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Xi(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:o,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:o?en(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Ca(e,t,n,r,i="full"){let o=[];for(let a of t){let c=z(a),d=await Nk.stat($a.join(e,c)),l=J(c);o.push({filePath:c,fileFingerprint:cm(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??ye(c,r).id,analyzerVersion:sm(l,i)})}return o.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function tn(e,t,n,r,i="full"){let o=Array.from(new Set(Array.from(t,c=>z(c)))).sort((c,d)=>c.localeCompare(d)),a=await Ca(e,o,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function hm(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 Om(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:ae(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:ae(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function Aa(e){return{typeScriptFiles:e.filter(t=>It(J(t))),pythonFiles:e.filter(t=>J(t)==="python"),goFiles:e.filter(t=>J(t)==="go"),rustFiles:e.filter(t=>J(t)==="rust"),fallbackFiles:e.filter(t=>{let n=J(t);return!It(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function It(e){return e==="typescript"||e==="javascript"}var tr=p(()=>{"use strict";it();s(pm,"buildAreaFileLookups");s(mm,"buildRepoIntelligencePreflight");s(Ca,"collectSourceFileStates");s(tn,"collectSourceFileStateMap");s(hm,"serializeCachedFileAnalysisEntry");s(Om,"hydrateCachedFileAnalysis");s(Aa,"bucketSourceFiles");s(It,"isTypeScriptLikeLanguage")});function Sm(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 rr(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 _e&&e.index<0?null:e.parent;if(!a)return e;e=a}let o=r?0:N.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof _e&&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 ym(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 Ma(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 bm(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 _e&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Wa(i,n)}function zk(e,t,n){let r=e.resolveInner(t,n),i=null;for(let o=r instanceof _e?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=$t.get(o.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let c=new _e(a.tree,a.overlay[0].from+o.from,-1,o);(i||(i=[r])).push(rr(c,t,n,!1))}}return i?bm(i):r}function Da(e){return e.children.some(t=>t instanceof ot||!t.type.isAnonymous||Da(t))}function Uk(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:o=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new Xa(n,n.length):n,d=r.types,l=0,f=0;function u(P,w,b,_,E,A){let{id:$,start:I,end:M,size:F}=c,U=f,Ge=l;if(F<0)if(c.next(),F==-1){let $e=o[$];b.push($e),_.push(I-P);return}else if(F==-3){l=$;return}else if(F==-4){f=$;return}else throw new RangeError(`Unrecognized record size: ${F}`);let ln=d[$],hr,mt,Ic=I-P;if(M-I<=i&&(mt=h(c.pos-w,E))){let $e=new Uint16Array(mt.size-mt.skip),fe=c.pos-mt.size,Pe=$e.length;for(;c.pos>fe;)Pe=y(mt.start,$e,Pe);hr=new ot($e,M-mt.start,r),Ic=mt.start-P}else{let $e=c.pos-F;c.next();let fe=[],Pe=[],ht=$>=a?$:-1,Xt=0,Or=M;for(;c.pos>$e;)ht>=0&&c.id==ht&&c.size>=0?(c.end<=Or-i&&(S(fe,Pe,I,Xt,c.end,Or,ht,U,Ge),Xt=fe.length,Or=c.end),c.next()):A>2500?m(I,$e,fe,Pe):u(I,$e,fe,Pe,ht,A+1);if(ht>=0&&Xt>0&&Xt<fe.length&&S(fe,Pe,I,Xt,I,Or,ht,U,Ge),fe.reverse(),Pe.reverse(),ht>-1&&Xt>0){let $c=g(ln,Ge);hr=Na(ln,fe,Pe,0,fe.length,0,M-I,$c,$c)}else hr=x(ln,fe,Pe,M-I,U-M,Ge)}b.push(hr),_.push(Ic)}s(u,"takeNode");function m(P,w,b,_){let E=[],A=0,$=-1;for(;c.pos>w;){let{id:I,start:M,end:F,size:U}=c;if(U>4)c.next();else{if($>-1&&M<$)break;$<0&&($=F-i),E.push(I,M,F),A++,c.next()}}if(A){let I=new Uint16Array(A*4),M=E[E.length-2];for(let F=E.length-3,U=0;F>=0;F-=3)I[U++]=E[F],I[U++]=E[F+1]-M,I[U++]=E[F+2]-M,I[U++]=U;b.push(new ot(I,E[2]-M,r)),_.push(M-P)}}s(m,"takeFlatNode");function g(P,w){return(b,_,E)=>{let A=0,$=b.length-1,I,M;if($>=0&&(I=b[$])instanceof ee){if(!$&&I.type==P&&I.length==E)return I;(M=I.prop(X.lookAhead))&&(A=_[$]+I.length+M)}return x(P,b,_,E,A,w)}}s(g,"makeBalanced");function S(P,w,b,_,E,A,$,I,M){let F=[],U=[];for(;P.length>_;)F.push(P.pop()),U.push(w.pop()+b-E);P.push(x(r.types[$],F,U,A-E,I-A,M)),w.push(E-b)}s(S,"makeRepeatLeaf");function x(P,w,b,_,E,A,$){if(A){let I=[X.contextHash,A];$=$?[I].concat($):[I]}if(E>25){let I=[X.lookAhead,E];$=$?[I].concat($):[I]}return new ee(P,w,b,_,$)}s(x,"makeTree");function h(P,w){let b=c.fork(),_=0,E=0,A=0,$=b.end-i,I={size:0,start:0,skip:0};e:for(let M=b.pos-P;b.pos>M;){let F=b.size;if(b.id==w&&F>=0){I.size=_,I.start=E,I.skip=A,A+=4,_+=4,b.next();continue}let U=b.pos-F;if(F<0||U<M||b.start<$)break;let Ge=b.id>=a?4:0,ln=b.start;for(b.next();b.pos>U;){if(b.size<0)if(b.size==-3||b.size==-4)Ge+=4;else break e;else b.id>=a&&(Ge+=4);b.next()}E=ln,_+=F,A+=Ge}return(w<0||_==P)&&(I.size=_,I.start=E,I.skip=A),I.size>4?I:void 0}s(h,"findBufferSize");function y(P,w,b){let{id:_,start:E,end:A,size:$}=c;if(c.next(),$>=0&&_<a){let I=b;if($>4){let M=c.pos-($-4);for(;c.pos>M;)b=y(P,w,b)}w[--b]=I,w[--b]=A-P,w[--b]=E-P,w[--b]=_}else $==-3?l=_:$==-4&&(f=_);return b}s(y,"copyToBuffer");let k=[],v=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,k,v,-1,0);let R=(t=e.length)!==null&&t!==void 0?t:k.length?v[0]+k[0].length:0;return new ee(d[e.topID],k.reverse(),v.reverse(),R)}function Fi(e,t){if(!e.isAnonymous||t instanceof ot||t.type!=e)return 1;let n=wm.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof ee)){n=1;break}n+=Fi(e,r)}wm.set(t,n)}return n}function Na(e,t,n,r,i,o,a,c,d){let l=0;for(let S=r;S<i;S++)l+=Fi(e,t[S]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(S,x,h,y,k){for(let v=h;v<y;){let R=v,P=x[v],w=Fi(e,S[v]);for(v++;v<y;v++){let b=Fi(e,S[v]);if(w+b>=f)break;w+=b}if(v==R+1){if(w>f){let b=S[R];g(b.children,b.positions,0,b.children.length,x[R]+k);continue}u.push(S[R])}else{let b=x[v-1]+S[v-1].length-P;u.push(Na(e,S,x,R,v,P,b,null,d))}m.push(P+k-o)}}return s(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var Lk,nr,X,$t,qk,me,Di,Wi,gm,N,ee,Xa,ot,Ni,_e,ja,ir,Wa,or,wm,Li,Fa,nY,La=p(()=>{Lk=0,nr=class{static{s(this,"Range")}constructor(t,n){this.from=t,this.to=n}},X=class{static{s(this,"NodeProp")}constructor(t={}){this.id=Lk++,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=me.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};X.closedBy=new X({deserialize:s(e=>e.split(" "),"deserialize")});X.openedBy=new X({deserialize:s(e=>e.split(" "),"deserialize")});X.group=new X({deserialize:s(e=>e.split(" "),"deserialize")});X.isolate=new X({deserialize:s(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});X.contextHash=new X({perNode:!0});X.lookAhead=new X({perNode:!0});X.mounted=new X({perNode:!0});$t=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[X.mounted.id]}},qk=Object.create(null),me=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):qk,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(X.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(X.group),o=-1;o<(i?i.length:0);o++){let a=n[o<0?r.name:i[o]];if(a)return a}}}};me.none=new me("",Object.create(null),0,8);Di=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 me(r.name,i,r.id,r.flags):r)}return new e(n)}},Wi=new WeakMap,gm=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"})(N||(N={}));ee=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=$t.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 or(this.topNode,t)}cursorAt(t,n=0,r=0){let i=Wi.get(this)||this.topNode,o=new or(i);return o.moveTo(t,n),Wi.set(this,o._tree),o}get topNode(){return new _e(this,0,0,null)}resolve(t,n=0){let r=rr(Wi.get(this)||this.topNode,t,n,!1);return Wi.set(this,r),r}resolveInner(t,n=0){let r=rr(gm.get(this)||this.topNode,t,n,!0);return gm.set(this,r),r}resolveStack(t,n=0){return zk(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:o=this.length}=t,a=t.mode||0,c=(a&N.IncludeAnonymous)>0;for(let d=this.cursor(a|N.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:Na(me.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(me.none,n,r,i)))}static build(t){return Uk(t)}};ee.empty=new ee(me.none,[],[],0);Xa=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)}},ot=class e{static{s(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return me.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&&!(Sm(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(Sm,"checkSide");s(rr,"resolveNode");Ni=class{static{s(this,"BaseNode")}cursor(t=0){return new or(this,t)}getChild(t,n=null,r=null){let i=ym(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return ym(this,t,n,r)}resolve(t,n=0){return rr(this,t,n,!1)}resolveInner(t,n=0){return rr(this,t,n,!0)}matchContext(t){return Ma(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}},_e=class e extends Ni{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&N.EnterBracketed&&f instanceof ee&&(m=$t.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!Sm(i,r,u,u+f.length))){if(f instanceof ot){if(o&N.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new ir(new ja(a,f,t,u),null,g)}else if(o&N.IncludeAnonymous||!f.type.isAnonymous||Da(f)){let g;if(!(o&N.IgnoreMounts)&&(g=$t.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let S=new e(f,u,t,a);return o&N.IncludeAnonymous||!S.type.isAnonymous?S:S.nextChild(n<0?f.children.length-1:0,n,r,i,o)}}}if(o&N.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&N.IgnoreOverlays)&&(i=$t.get(this._tree))&&i.overlay){let o=t-this.from,a=r&N.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(ym,"getChildren");s(Ma,"matchNodeContext");ja=class{static{s(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},ir=class e extends Ni{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&N.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 ee(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};s(bm,"iterStack");Wa=class{static{s(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return bm(this.heads)}};s(zk,"stackIterator");or=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&~N.EnterBracketed,t instanceof _e)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 _e?(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&N.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&N.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&N.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&N.IncludeAnonymous||c instanceof ot||!c.type.isAnonymous||Da(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 ir(this.buffer,n,this.stack[i]);return this.bufferNode=new ir(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 Ma(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 Ma(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(Da,"hasChild");s(Uk,"buildTree");wm=new WeakMap;s(Fi,"nodeSize");s(Na,"balanceRange");Li=class{static{s(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Fa(t)),r=r?r.length?r.map(i=>new nr(i.from,i.to)):[new nr(0,0)]:[new nr(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}}},Fa=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)}},nY=new X({perNode:!0})});function sr(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 Rm(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 S=e[g];if(d.allows(S)&&(t.token.value==-1||t.token.value==S||Kk(S,t.token.value,i,o))){t.acceptToken(S);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,S=l+g+(g<<1),x=e[S],h=e[S+1]||65536;if(f<x)m=g;else if(f>=h)u=g+1;else{a=e[S+2],t.advance();continue e}}break}}function vm(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function Kk(e,t,n,r){let i=vm(n,r,t);return i<0||vm(n,r,e)<i}function km(e,t,n){let r=e.cursor(N.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 xm(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 Ne(e,t){return e[t]|e[t+1]<<16}function Yk(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 Tm(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Ua,qi,Va,Ka,nn,Pm,Ya,st,ar,ue,le,qa,Ga,Ba,Za,Ha,za,rn,at,zi=p(()=>{La();Ua=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 qi(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 Va(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 qi(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()}},qi=class{static{s(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},Va=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}},Ka=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(sr,"decodeArray");nn=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}},Pm=new nn,Ya=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=Pm,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=Pm,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}},st=class{static{s(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;Rm(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};st.prototype.contextual=st.prototype.fallback=st.prototype.extend=!1;ar=class{static{s(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?sr(t):t}token(t,n){let r=t.pos,i=0;for(;;){let o=t.next<0,a=t.resolveOffset(1,1);if(Rm(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))}};ar.prototype.contextual=st.prototype.fallback=st.prototype.extend=!1;ue=class{static{s(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};s(Rm,"readToken");s(vm,"findOffset");s(Kk,"overrides");le=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),qa=null;s(km,"cutAt");Ga=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?km(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?km(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 ee){if(a==t){if(a<this.safeFrom)return null;let c=a+o.length;if(c<=this.safeTo){let d=o.prop(X.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}}},Ba=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 nn)}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 nn,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 nn,{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=Ne(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Ne(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Ne(c,l+1),n,r,i))}return i}},Za=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 Ya(n,i),this.tokens=new Ba(t,this.stream),this.topTerm=t.top[1];let{from:o}=i[0];this.stacks=[Ua.start(this,t.top[0],o)],this.fragments=r.length&&this.stream.end-o>t.bufferLength*4?new Ga(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&&Yk(i);if(a)return le&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw le&&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 le&&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=le?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(X.contextHash)||0)==f))return t.useNode(u,m),le&&console.log(a+this.stackID(t)+` (via reuse of ${o.getName(u.type.id)})`),!0;if(!(u instanceof ee)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof ee&&u.positions[0]==0)u=g;else break}}let c=o.stateSlot(t.state,4);if(c>0)return t.reduce(c),le&&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,S=g?t:t.split(),x=this.tokens.mainToken;if(S.apply(f,u,x?x.start:S.pos,m),le&&console.log(a+this.stackID(S)+` (via ${(f&65536)==0?"shift":`reduce of ${o.getName(f&65535)}`} for ${o.getName(u)} @ ${i}${S==t?"":", split"})`),g)return!0;S.pos>i?n.push(S):r.push(S)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return xm(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=le?this.stackID(c)+" -> ":"";if(c.deadEnd&&(o||(o=!0,c.restart(),le&&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()&&(le&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)le&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))le&&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),le&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),xm(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),ee.build({buffer:Ka.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=(qa||(qa=new WeakMap)).get(t);return n||qa.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};s(xm,"pushStackDedup");Ha=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"),rn=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}},at=class e extends Li{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=X[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 Di(n.map((c,d)=>me.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=sr(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(Tm),this.states=sr(t.states,Uint32Array),this.data=sr(t.stateData),this.goto=sr(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new st(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 Za(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=Ne(r,o+2)];else{if(r[o+1]==2)return Ne(r,o+2);break}if(a==n||a==0)return Ne(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=Ne(this.data,o+2);else break;i=n(Ne(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=Ne(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]=Tm(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 Ha(t,r,i)}static deserialize(t){return new e(t)}};s(Ne,"pair");s(Yk,"findFinished");s(Tm,"getSpecializer")});function Zk(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function Hk(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 sn(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 on(r,a,d>0?o.slice(0,d):null);t[l]=f.sort(t[l])}}return Jk.add(t)}function ex(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 Gk,we,Bk,Yi,Jk,on,T,Ui,ct,_m,Qm,dt,Vi,Ja,Ie,Ct,Qe,Ee,ec,cr,Ki,O,dY,Gi=p(()=>{La();Gk=0,we=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=Gk++}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 Yi(t);return r=>r.modified.indexOf(n)>-1?r:Yi.get(r.base||r,r.modified.concat(n).sort((i,o)=>i.id-o.id))}},Bk=0,Yi=class e{static{s(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=Bk++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&Zk(n,c.modified));if(r)return r;let i=[],o=new we(t.name,i,t,n);for(let c of n)c.instances.push(o);let a=Hk(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(Zk,"sameArray");s(Hk,"powerSet");s(sn,"styleTags");Jk=new X({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 on(i.tags,i.mode,i.context);n?n.next=o:r=o,n=o}return r}}),on=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}};on.empty=new on([],2,null);s(ex,"tagHighlighter");T=we.define,Ui=T(),ct=T(),_m=T(ct),Qm=T(ct),dt=T(),Vi=T(dt),Ja=T(dt),Ie=T(),Ct=T(Ie),Qe=T(),Ee=T(),ec=T(),cr=T(ec),Ki=T(),O={comment:Ui,lineComment:T(Ui),blockComment:T(Ui),docComment:T(Ui),name:ct,variableName:T(ct),typeName:_m,tagName:T(_m),propertyName:Qm,attributeName:T(Qm),className:T(ct),labelName:T(ct),namespace:T(ct),macroName:T(ct),literal:dt,string:Vi,docString:T(Vi),character:T(Vi),attributeValue:T(Vi),number:Ja,integer:T(Ja),float:T(Ja),bool:T(dt),regexp:T(dt),escape:T(dt),color:T(dt),url:T(dt),keyword:Qe,self:T(Qe),null:T(Qe),atom:T(Qe),unit:T(Qe),modifier:T(Qe),operatorKeyword:T(Qe),controlKeyword:T(Qe),definitionKeyword:T(Qe),moduleKeyword:T(Qe),operator:Ee,derefOperator:T(Ee),arithmeticOperator:T(Ee),logicOperator:T(Ee),bitwiseOperator:T(Ee),compareOperator:T(Ee),updateOperator:T(Ee),definitionOperator:T(Ee),typeOperator:T(Ee),controlOperator:T(Ee),punctuation:ec,separator:T(ec),bracket:cr,angleBracket:T(cr),squareBracket:T(cr),paren:T(cr),brace:T(cr),content:Ie,heading:Ct,heading1:T(Ct),heading2:T(Ct),heading3:T(Ct),heading4:T(Ct),heading5:T(Ct),heading6:T(Ct),contentSeparator:T(Ie),list:T(Ie),quote:T(Ie),emphasis:T(Ie),strong:T(Ie),link:T(Ie),monospace:T(Ie),strikethrough:T(Ie),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:Ki,documentMeta:T(Ki),annotation:T(Ki),processingInstruction:T(Ki),definition:we.defineModifier("definition"),constant:we.defineModifier("constant"),function:we.defineModifier("function"),standard:we.defineModifier("standard"),local:we.defineModifier("local"),special:we.defineModifier("special")};for(let e in O){let t=O[e];t instanceof we&&(t.name=e)}dY=ex([{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 tx,nx,rx,ix,ox,sx,ax,cx,dx,lx,ux,fx,px,mx,hx,Ox,gx,yx,Em,wx,Sx,bx,Px,vx,kx,xx,Im,$m=p(()=>{zi();Gi();tx=177,nx=179,rx=184,ix=12,ox=13,sx=17,ax=20,cx=25,dx=53,lx=95,ux=142,fx=144,px=145,mx=148,hx=10,Ox=13,gx=32,yx=9,Em=47,wx=41,Sx=125,bx=new ue((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==hx||r==Ox||r==Em&&e.peek(n+1)==Em)||r==wx||r==Sx)&&e.acceptToken(tx),!(r!=gx&&r!=yx);)r=e.peek(++n)},{contextual:!0}),Px=new Set([lx,rx,ax,ix,sx,fx,px,ux,mx,ox,dx,cx]),vx=new rn({start:!1,shift:s((e,t)=>t==nx?e:Px.has(t),"shift")}),kx=sn({"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}),xx={__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},Im=at.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:vx,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:[kx],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:[bx,1,2,new ar("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=>xx[e]||-1,"get")}],tokenPrec:5451})});function tc(e){return e==At||e==dr}function nc(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Zi(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 _T(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==Hi?8-t%8:1;return t}function $T(e,t){if(t==wT)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==ST)for(let n=0;n<2&&nc(e.next);n++)e.advance();else if(t==PT)for(let n=0;n<4&&nc(e.next);n++)e.advance();else if(t==vT)for(let n=0;n<8&&nc(e.next);n++)e.advance();else if(t==bT&&e.next==rc){for(e.advance();e.next>=0&&e.next!=Xm&&e.next!=Lm&&e.next!=qm&&e.next!=At;)e.advance();e.next==Xm&&e.advance()}}var Tx,Wm,Fm,Rx,Cm,_x,Qx,Ex,Ix,Dm,Am,$x,Cx,Ax,Xx,Mx,jx,Wx,Fx,Dx,Nx,Lx,qx,zx,Ux,Vx,Kx,Yx,Gx,Bx,Zx,Hx,Jx,eT,Nm,tT,nT,rT,iT,oT,sT,aT,cT,dT,lT,uT,fT,pT,mT,hT,OT,At,dr,ic,Hi,oc,gT,yT,rc,Xm,Lm,qm,Mm,wT,ST,bT,PT,vT,kT,xT,TT,Bi,zm,Le,qe,ze,Ue,RT,jm,QT,ET,IT,CT,AT,Um,Vm=p(()=>{zi();Gi();Tx=1,Wm=194,Fm=195,Rx=196,Cm=197,_x=198,Qx=199,Ex=200,Ix=2,Dm=3,Am=201,$x=24,Cx=25,Ax=49,Xx=50,Mx=55,jx=56,Wx=57,Fx=59,Dx=60,Nx=61,Lx=62,qx=63,zx=65,Ux=238,Vx=71,Kx=241,Yx=242,Gx=243,Bx=244,Zx=245,Hx=246,Jx=247,eT=248,Nm=72,tT=249,nT=250,rT=251,iT=252,oT=253,sT=254,aT=255,cT=256,dT=73,lT=77,uT=263,fT=112,pT=130,mT=151,hT=152,OT=155,At=10,dr=13,ic=32,Hi=9,oc=35,gT=40,yT=46,rc=123,Xm=125,Lm=39,qm=34,Mm=92,wT=111,ST=120,bT=78,PT=117,vT=85,kT=new Set([Cx,Ax,Xx,uT,zx,pT,jx,Wx,Ux,Lx,qx,Nm,dT,lT,Dx,Nx,mT,hT,OT,fT]);s(tc,"isLineBreak");s(nc,"isHex");xT=new ue((e,t)=>{let n;if(e.next<0)e.acceptToken(Qx);else if(t.context.flags&Bi)tc(e.next)&&e.acceptToken(_x,1);else if(((n=e.peek(-1))<0||tc(n))&&t.canShift(Cm)){let r=0;for(;e.next==ic||e.next==Hi;)e.advance(),r++;(e.next==At||e.next==dr||e.next==oc)&&e.acceptToken(Cm,-r)}else tc(e.next)&&e.acceptToken(Rx,1)},{contextual:!0}),TT=new ue((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==At||r==dr){let i=0,o=0;for(;;){if(e.next==ic)i++;else if(e.next==Hi)i+=8-i%8;else break;e.advance(),o++}i!=n.indent&&e.next!=At&&e.next!=dr&&e.next!=oc&&(i<n.indent?e.acceptToken(Fm,-o):e.acceptToken(Wm))}}),Bi=1,zm=2,Le=4,qe=8,ze=16,Ue=32;s(Zi,"Context");RT=new Zi(null,0,0);s(_T,"countIndent");jm=new Map([[Kx,0],[Yx,Le],[Gx,qe],[Bx,qe|Le],[Zx,ze],[Hx,ze|Le],[Jx,ze|qe],[eT,ze|qe|Le],[tT,Ue],[nT,Ue|Le],[rT,Ue|qe],[iT,Ue|qe|Le],[oT,Ue|ze],[sT,Ue|ze|Le],[aT,Ue|ze|qe],[cT,Ue|ze|qe|Le]].map(([e,t])=>[e,t|zm])),QT=new rn({start:RT,reduce(e,t,n,r){return e.flags&Bi&&kT.has(t)||(t==Vx||t==Nm)&&e.flags&zm?e.parent:e},shift(e,t,n,r){return t==Wm?new Zi(e,_T(r.read(r.pos,n.pos)),0):t==Fm?e.parent:t==$x||t==Mx||t==Fx||t==Dm?new Zi(e,0,Bi):jm.has(t)?new Zi(e,0,jm.get(t)|e.flags&Bi):e},hash(e){return e.hash}}),ET=new ue(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==ic||n==Hi)){n!=gT&&n!=yT&&n!=At&&n!=dr&&n!=oc&&e.acceptToken(Tx);return}}}),IT=new ue((e,t)=>{let{flags:n}=t.context,r=n&Le?qm:Lm,i=(n&qe)>0,o=!(n&ze),a=(n&Ue)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==rc)if(e.peek(1)==rc)e.advance(2);else{if(e.pos==c){e.acceptToken(Dm,1);return}break}else if(o&&e.next==Mm){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),$T(e,d)),e.acceptToken(Ix);return}break}else if(e.next==Mm&&!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(Am,i?3:1);return}break}else if(e.next==At){if(i)e.advance();else if(e.pos==c){e.acceptToken(Am);return}break}else e.advance();e.pos>c&&e.acceptToken(Ex)});s($T,"skipEscape");CT=sn({'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}),AT={__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},Um=at.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:QT,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:[CT],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:[ET,TT,xT,IT,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:s(e=>AT[e]||-1,"get")}],tokenPrec:7668})});function sc(e){return e>=48&&e<=57}function eo(e){return sc(e)||e==95}var XT,MT,jT,WT,FT,Km,DT,NT,Ym,LT,Ji,Gm,qT,zT,Bm,Zm,UT,VT,KT,YT,GT,BT,ZT,HT,Hm,Jm=p(()=>{zi();Gi();XT=1,MT=2,jT=3,WT=4,FT=5,Km=98,DT=101,NT=102,Ym=114,LT=69,Ji=48,Gm=46,qT=43,zT=45,Bm=35,Zm=34,UT=124,VT=60,KT=62;s(sc,"isNum");s(eo,"isNum_");YT=new ue((e,t)=>{if(sc(e.next)){let n=!1;do e.advance();while(eo(e.next));if(e.next==Gm){if(n=!0,e.advance(),sc(e.next))do e.advance();while(eo(e.next));else if(e.next==Gm||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==DT||e.next==LT){if(n=!0,e.advance(),(e.next==qT||e.next==zT)&&e.advance(),!eo(e.next))return;do e.advance();while(eo(e.next))}if(e.next==NT){let r=e.peek(1);if(r==Ji+3&&e.peek(2)==Ji+2||r==Ji+6&&e.peek(2)==Ji+4)e.advance(3),n=!0;else return}n&&e.acceptToken(FT)}else if(e.next==Km||e.next==Ym){if(e.next==Km&&e.advance(),e.next!=Ym)return;e.advance();let n=0;for(;e.next==Bm;)n++,e.advance();if(e.next!=Zm)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==Zm;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=Bm)continue e;e.advance()}e.acceptToken(WT);return}}}}),GT=new ue(e=>{e.next==UT&&e.acceptToken(XT,1)}),BT=new ue(e=>{e.next==VT?e.acceptToken(MT,1):e.next==KT&&e.acceptToken(jT,1)}),ZT=sn({"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}),HT={__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},Hm=at.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:[ZT],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:[GT,BT,YT,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:s(e=>HT[e]||-1,"get")}],tokenPrec:15596})});import cn from"fs/promises";import dc from"path";function th(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function lc(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function V(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function Se(e,t){return e.slice(t.from,t.to)}function Ve(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function Ke(e,t){return e[t-1]?.trim()||"<unknown>"}function JT(e,t){let n=[];return V(t,r=>{if(r.type.name!=="ImportStatement")return;let i=Se(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))}),de(n,12)}function cc(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return Se(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return V(t,i=>{let o=cc(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?cc(e,n):null}function eh(e,t){let n=new Set,r=s(i=>{if(i.type.name==="CallExpression"){let o=i.firstChild,a=o?cc(e,o):null;a&&!Re.has(a)&&n.add(a)}V(i,r)},"walk");return r(t),Array.from(n).slice(0,24)}async function nh(e,t,n){let r=[];for(let i of t){let o=dc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),f=Um.parse(c).topNode,u=J(i),m=ae(u),g=De(m),S=JT(c,f),x=[],h=ye(i,n).id;V(f,y=>{if(y.type.name==="FunctionDefinition"){let w=null;if(V(y,E=>{E.type.name==="VariableName"&&!w&&(w=Se(c,E).trim())}),!w)return;let b=w,_=Ve(c,y);x.push({id:`${i}#${b}:${_}`,name:b,qualifiedName:`${i}:${b}`,kind:"function",filePath:i,moduleId:h,language:u,capabilityTier:m,line:_,signature:Ke(d,_),exported:!b.startsWith("_"),calls:eh(c,y),callTargets:[],importPaths:S,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let k=null,v=null;if(V(y,w=>{w.type.name==="VariableName"&&!k?k=Se(c,w).trim():w.type.name==="Body"&&(v=w)}),!k)return;let R=k,P=Ve(c,y);x.push({id:`${i}#${R}:${P}`,name:R,qualifiedName:`${i}:${R}`,kind:"class",filePath:i,moduleId:h,language:u,capabilityTier:m,line:P,signature:Ke(d,P),exported:!R.startsWith("_"),calls:[],callTargets:[],importPaths:S,confidence:Math.min(.99,g+.08)}),v&&V(v,w=>{if(w.type.name!=="FunctionDefinition")return;let b=null;if(V(w,A=>{A.type.name==="VariableName"&&!b&&(b=Se(c,A).trim())}),!b)return;let _=b,E=Ve(c,w);x.push({id:`${i}#${R}.${_}:${E}`,name:_,qualifiedName:`${i}:${R}.${_}`,kind:"method",filePath:i,moduleId:h,language:u,capabilityTier:m,line:E,signature:Ke(d,E),exported:!_.startsWith("_"),calls:eh(c,w),callTargets:[],importPaths:S,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:h,language:u,capabilityTier:m,importPaths:S,symbols:x.slice(0,nt)})}return r}function lr(e,t){let n=null;return V(e,r=>{!n&&t(r)&&(n=r)}),n}function eR(e,t){let n=null;return V(e,r=>{t(r)&&(n=r)}),n}function rh(e,t){if(t(e))return e;let n=null;return V(e,r=>{n||(n=rh(r,t))}),n}function to(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&&!Re.has(c)&&r.add(c)}V(o,i)},"walk");return i(t),Array.from(r).slice(0,24)}function no(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return Se(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return V(t,i=>{let o=no(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?no(e,n):null}function ro(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return Se(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return V(t,i=>{let o=ro(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?ro(e,n):null}function an(e,t,n){let r=lr(t,i=>i.type.name===n);return r?Se(e,r).trim():null}function ac(e,t){return/^pub(?:\([^)]*\))?\s/.test(Se(e,t).trimStart())}async function ih(e,t,n){let r=[];for(let i of t){let o=dc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=Im.parse(c),f=ye(i,n).id,u=J(i),m=ae(u),g=De(m),S=er(c,u),x=[];V(l.topNode,h=>{if(h.type.name==="TypeDecl"){let w=lr(h,A=>A.type.name==="TypeSpec"),b=w?an(c,w,"DefName"):null;if(!w||!b)return;let _=lr(w,A=>A.type.name==="InterfaceType")?"interface":"struct",E=Ve(c,w);x.push({id:`${i}#${b}:${E}`,name:b,qualifiedName:`${i}:${b}`,kind:_,filePath:i,moduleId:f,language:u,capabilityTier:m,line:E,signature:Ke(d,E),exported:/^[A-Z]/.test(b),calls:[],callTargets:[],importPaths:S,confidence:Math.min(.97,g+.07)});return}if(h.type.name==="FunctionDecl"){let w=an(c,h,"DefName");if(!w)return;let b=Ve(c,h);x.push({id:`${i}#${w}:${b}`,name:w,qualifiedName:`${i}:${w}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:b,signature:Ke(d,b),exported:/^[A-Z]/.test(w),calls:to(c,h,no),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.07)});return}if(h.type.name!=="MethodDecl")return;let y=lr(h,w=>w.type.name==="Parameters"),k=an(c,h,"FieldName"),v=y?rh(y,w=>w.type.name==="TypeName"):null,R=v?Se(c,v).trim():void 0;if(!k)return;let P=Ve(c,h);x.push({id:`${i}#${R?`${R}.`:""}${k}:${P}`,name:k,qualifiedName:`${i}:${R?`${R}.`:""}${k}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:P,signature:Ke(d,P),exported:/^[A-Z]/.test(k),calls:to(c,h,no),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:S,symbols:x.slice(0,nt)})}return r}async function oh(e,t,n){let r=[];for(let i of t){let o=dc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=Hm.parse(c),f=ye(i,n).id,u=J(i),m=ae(u),g=De(m),S=er(c,u),x=[];V(l.topNode,h=>{if(h.type.name==="StructItem"||h.type.name==="TraitItem"||h.type.name==="EnumItem"){let R=an(c,h,"TypeIdentifier");if(!R)return;let P=h.type.name==="TraitItem"?"trait":h.type.name==="EnumItem"?"enum":"struct",w=Ve(c,h);x.push({id:`${i}#${R}:${w}`,name:R,qualifiedName:`${i}:${R}`,kind:P,filePath:i,moduleId:f,language:u,capabilityTier:m,line:w,signature:Ke(d,w),exported:ac(c,h),calls:[],callTargets:[],importPaths:S,confidence:Math.min(.97,g+.06)});return}if(h.type.name==="FunctionItem"){let R=an(c,h,"BoundIdentifier");if(!R)return;let P=Ve(c,h);x.push({id:`${i}#${R}:${P}`,name:R,qualifiedName:`${i}:${R}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:P,signature:Ke(d,P),exported:ac(c,h),calls:to(c,h,ro),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.06)});return}if(h.type.name!=="ImplItem")return;let y=eR(h,R=>R.type.name==="TypeIdentifier"),k=y?lc(Se(c,y).trim()):void 0,v=lr(h,R=>R.type.name==="DeclarationList");!k||!v||V(v,R=>{if(R.type.name!=="FunctionItem")return;let P=an(c,R,"BoundIdentifier");if(!P)return;let w=Ve(c,R);x.push({id:`${i}#${k}.${P}:${w}`,name:P,qualifiedName:`${i}:${k}.${P}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:w,signature:Ke(d,w),exported:ac(c,R),calls:to(c,R,ro),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:S,symbols:x.slice(0,nt)})}return r}var uc=p(()=>{"use strict";$m();Vm();Jm();it();s(th,"extractGoReceiverQualifier");s(lc,"normalizeRustQualifier");s(V,"forEachSyntaxChild");s(Se,"getSyntaxNodeText");s(Ve,"getPythonNodeLine");s(Ke,"getPythonSignature");s(JT,"collectPythonImports");s(cc,"getPythonCallName");s(eh,"collectPythonCallNames");s(nh,"analyzePythonFiles");s(lr,"findFirstSyntaxChild");s(eR,"findLastSyntaxChild");s(rh,"findSyntaxDescendant");s(to,"collectLezerCallNames");s(no,"getGoCallName");s(ro,"getRustCallName");s(an,"findSyntaxNodeText");s(ac,"isRustExported");s(ih,"analyzeGoFiles");s(oh,"analyzeRustFiles")});import sh from"fs/promises";import lt from"path";function ah(e,t){return Array.from(e.matchAll(t)).length}function be(e){return ah(e,/\{/g)-ah(e,/\}/g)}function tR(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]??"",S=g.trim();if(!S){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!S.startsWith("#"))break;m+=1}return e.slice(o,m).join(`
798
+ `});var ua=p(()=>{"use strict";jt()});var Gt=p(()=>{"use strict";Yt();ua()});var Jf=p(()=>{"use strict";Gt()});var ep=p(()=>{"use strict"});var Rq,_q,tp=p(()=>{"use strict";Yt();Gt();Rq=Oi.trimEnd(),_q=16*1024});var np=p(()=>{"use strict";pi();Gt()});var rp=p(()=>{"use strict";Gt()});var nv,ip=p(()=>{"use strict";Yt();fi();nv={enabled:!1,maxAge:20,protectedTools:Array.from(la)}});var op=p(()=>{"use strict"});var sp=p(()=>{"use strict";G()});var ap=p(()=>{"use strict";Yt()});var cp=p(()=>{"use strict";jt();un();mi();hi()});var dp=p(()=>{"use strict"});var lp=p(()=>{"use strict";ap();cp();dp()});var up=p(()=>{"use strict";Uf();Vf();Jf();ep();Gt();tp();np();rp();mi();hi();pi();aa();ca();Yt();ip();ua();op();sp();lp()});var fp=p(()=>{"use strict"});var pa=p(()=>{"use strict"});var ma=p(()=>{"use strict"});var gi=p(()=>{"use strict"});import MU from"typescript";var ha=p(()=>{"use strict"});var Oa=p(()=>{"use strict";gi();ha()});var mp=p(()=>{"use strict";gi();Oa()});var ga=p(()=>{"use strict";Pn();pa()});var hp=p(()=>{"use strict";ma();ga()});var Op=p(()=>{"use strict";fp();pa();ma();gi();Oa();ha();mp();ga();hp()});var gp=p(()=>{"use strict"});var ya=p(()=>{"use strict"});var yp=p(()=>{"use strict";ya();ya()});var wp=p(()=>{"use strict"});var Sp=p(()=>{"use strict";gp();yp();wp()});var yi=p(()=>{"use strict"});var wa=p(()=>{"use strict";yi()});var H5,bp=p(()=>{"use strict";yi();wa();H5=new Intl.Segmenter("en",{granularity:"grapheme"})});var Pp=p(()=>{"use strict";bp();yi();wa()});var wi=p(()=>{"use strict";Fc();jt();un();pe();Ld();qd();zd();Ho();Go();Zo();Bo();kn();Ko();Yo();Cr();nl();G();sl();Jo();_n();is();_l();Ql();as();Wl();zl();fs();ps();Ul();Vl();ms();hs();hs();zr();jf();ti();ti();kt();Lf();Hs();Vo();up();Op();Sp();Pp()});import vp from"node:fs";import Sa from"node:os";import We from"node:path";function Tp(e){return(e==="~"?Sa.homedir():/^~[\\/]/.test(e)?We.join(Sa.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,Sa.homedir())}function ba(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=Tp(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=We.resolve(t,n);for(;;){try{vp.lstatSync(i)}catch(o){if(o.code!=="ENOENT")return;let a=We.dirname(i);if(a===i)return;r.unshift(We.basename(i)),i=a;continue}try{return We.join(vp.realpathSync.native(i),...r)}catch{return}}}function kp(e,t){let n=We.relative(t,e);if(!(!n||n.startsWith("..")||We.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 Rp(e,t=process.cwd()){let n;try{n=St()}catch{return!1}let r=We.resolve(n),i=We.resolve(t,Tp(e));if(xn(i,r)){let d=kp(i,r);if(xp(d))return!0}let o=ba(n)??r,a=ba(e,t);if(a===void 0)return xn(i,r);if(!xn(a,o))return!1;let c=kp(a,o);return xp(c)}function xp(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var _p=p(()=>{"use strict";wi();s(Tp,"expandHome");s(ba,"canonicalizeAgentHomePolicyPath");s(kp,"normalizedRelative");s(Rp,"isAgentHomeHardMutationTarget");s(xp,"isHardAgentHomeRelativePath")});import{randomUUID as $p}from"node:crypto";import{mkdir as kv,readFile as xv,rename as Tv,rm as Qp,writeFile as Rv}from"node:fs/promises";import vi from"node:path";function Ip(e,t){return vi.join(e,"runtime",...Ep===void 0?[]:[`test-filesystem-effects-${Ep}`],t)}function Cv(){let e=process.platform==="win32"?vi.join(vi.resolve(process.env.PROGRAMDATA??"C:\\ProgramData"),"KodaX","sandbox-runtime"):St();return{coordinatorPath:Ip(e,$v),statePath:Ip(e,Iv)}}function Pa(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 Yn(e){let t;try{t=await xv(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(Pa))throw new Error("Invalid direct filesystem effect state.");if(!Array.isArray(r.shells)||!r.shells.every(Pa))throw new Error("Invalid shell filesystem effect state.");let i=r.namespaces??[];if(!Array.isArray(i)||!i.every(Pa))throw new Error("Invalid namespace filesystem effect state.");return{direct:r.direct,namespaces:i,shells:r.shells}}function Av(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function Cp(e){if(!Av(e.pid))return!1;let t=e.pid===process.pid?ka:Ae(e.pid);return e.processStartIdentity===void 0||t===void 0||t===e.processStartIdentity}function Xv(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=Ae(e.effectPid);return n!==void 0&&(e.effectProcessStartIdentity===void 0||n===e.effectProcessStartIdentity)?"alive":process.platform!=="win32"||e.windowsJobContained===!0||!t?"absent":"unknown"}function Mv(e,t){let n=new Map;for(let i of[...e.direct,...e.namespaces,...e.shells])n.set(i,Cp(i));let r=s(i=>n.get(i)===!0||Xv(i,t)!=="absent","keepExternalEffect");return{direct:e.direct.filter(i=>n.get(i)===!0),namespaces:e.namespaces.filter(r),shells:e.shells.filter(r)}}async function jv(e){return await Gn(e,async()=>{let r=await Yn(e);return[...r.namespaces,...r.shells].some(i=>!Cp(i))})?(await rs()).skipped>0:!0}async function Pi(e,t){let{statePath:n}=e;if(t.direct.length===0&&t.namespaces.length===0&&t.shells.length===0){await Qp(n,{force:!0});return}await kv(vi.dirname(n),{recursive:!0});let r=`${n}.${process.pid}.${$p()}.tmp`;await Rv(r,`${JSON.stringify(t)}
799
+ `,"utf8");try{await Tv(r,n)}catch(i){try{await Qp(r,{force:!0})}catch(o){throw new AggregateError([i,o],"Filesystem effect state update and cleanup both failed.")}throw i}}async function Gn(e,t){let n=await vs(e.coordinatorPath,_v);try{return await t()}finally{await n()}}function Wv(e,t){return e.sandboxPolicyKey===void 0||t===void 0?!0:e.sandboxPolicyKey!==t}function va(e,t){return t===void 0||e.sandboxPolicyKey===void 0?!0:e.sandboxPolicyKey!==t}async function Fv(e,t){let n=Cv(),r=$p(),i={pid:process.pid,token:r,...ka===void 0?{}:{processStartIdentity:ka},...t===void 0?{}:{sandboxPolicyKey:t}},o=Date.now()+Qv,a=Date.now()+Ev,c=await jv(n);for(;;){let w=await Gn(n,async()=>{let k=Mv(await Yn(n),c);return(e==="shell"?k.direct.length>0||k.namespaces.some($=>Wv($,t)):e==="direct"?k.shells.length>0||k.namespaces.length>0:k.direct.length>0||k.namespaces.length>0||k.shells.some($=>va($,t)))?t!==void 0&&(e==="namespace"?k.namespaces.some(A=>A.sandboxPolicyKey!==t)||k.shells.some(A=>va(A,t)):e==="shell"&&k.namespaces.some(A=>A.sandboxPolicyKey!==void 0&&A.sandboxPolicyKey!==t))?"sandbox-policy-conflict":k.direct.length===0&&(e==="namespace"?t!==void 0&&k.shells.every(A=>!va(A,t))&&k.namespaces.length>0&&k.namespaces.every(A=>A.sandboxPolicyKey===t):e==="shell"&&t===void 0&&k.namespaces.length>0&&k.namespaces.every(A=>A.sandboxPolicyKey!==void 0))?"sandbox-acl-transition":!1:(await Pi(n,e==="shell"?{direct:k.direct,namespaces:k.namespaces,shells:[...k.shells,i]}:e==="direct"?{direct:[...k.direct,i],namespaces:k.namespaces,shells:k.shells}:{direct:k.direct,namespaces:[...k.namespaces,i],shells:k.shells}),!0)});if(w===!0)break;if(w==="sandbox-policy-conflict")throw new Error("A different sandbox policy is already active.");let _=w==="sandbox-acl-transition"?a:o;if(Date.now()>=_)throw new Error("A model filesystem effect is already active; retry after it finishes.");await new Promise(k=>setTimeout(k,20))}let d=!1,l,f=!1,u=!1,m=s(()=>Gn(n,async()=>{let w=await Yn(n),_=(e==="shell"?w.shells:e==="direct"?w.direct:w.namespaces).find(k=>k.token===r);if(_===void 0){if(u)return;throw new Error("Filesystem effect lease ownership was lost.")}if(_.effectPid!==void 0&&_.effectFinished!==!0)throw new Error("Filesystem effect process tree has not been proven drained.");u=!0,await Pi(n,e==="shell"?{direct:w.direct,namespaces:w.namespaces,shells:w.shells.filter(k=>k.token!==r)}:e==="direct"?{direct:w.direct.filter(k=>k.token!==r),namespaces:w.namespaces,shells:w.shells}:{direct:w.direct,namespaces:w.namespaces.filter(k=>k.token!==r),shells:w.shells})}),"releaseOnce"),g=s(()=>{if(d||f)return;f=!0;let w=s(()=>{setTimeout(()=>{m().then(()=>{d=!0,f=!1}).catch(()=>{w()})},250).unref?.()},"retry");w()},"scheduleBackgroundRelease"),S=s(async()=>{let w;for(let _=1;_<=bi;_+=1)try{await m();return}catch(k){w=k,_<bi&&await new Promise(C=>setTimeout(C,20))}throw g(),w},"releaseReliably"),x=s(async()=>{d||(l??=S().then(()=>{d=!0}).finally(()=>{l=void 0}),await l)},"release"),h=s(async(w,_)=>{if(!Number.isInteger(w)||w<=0)throw new Error(`Invalid filesystem effect process id: ${w}`);await Gn(n,async()=>{let k=await Yn(n);if(!(e==="shell"?k.shells:e==="direct"?k.direct:k.namespaces).some(j=>j.token===r))throw new Error("Filesystem effect lease ownership was lost before process binding.");let $=Ae(w),I={...i,effectPid:w,effectFinished:!1,...$===void 0?{}:{effectProcessStartIdentity:$},posixProcessGroup:process.platform!=="win32",windowsJobContained:_},A=s(j=>j.token===r?I:j,"replaceOwner");await Pi(n,{direct:e==="direct"?k.direct.map(A):k.direct,namespaces:e==="namespace"?k.namespaces.map(A):k.namespaces,shells:e==="shell"?k.shells.map(A):k.shells})}),y=!1},"bindEffectProcess"),y=!1,P,b=!1,Q=s(()=>Gn(n,async()=>{let w=await Yn(n),_=s(C=>C.token===r?{...C,effectFinished:!0}:C,"replaceOwner");if(!(e==="shell"?w.shells:e==="direct"?w.direct:w.namespaces).some(C=>C.token===r))throw new Error("Filesystem effect lease ownership was lost before tree completion.");await Pi(n,{direct:e==="direct"?w.direct.map(_):w.direct,namespaces:e==="namespace"?w.namespaces.map(_):w.namespaces,shells:e==="shell"?w.shells.map(_):w.shells})}),"finishEffectProcessOnce"),T=s(()=>{if(y||b)return;b=!0;let w=s(()=>{setTimeout(()=>{Q().then(()=>{y=!0,b=!1}).catch(()=>{w()})},250).unref?.()},"retry");w()},"scheduleBackgroundFinish");return Object.assign(x,{bindEffectProcess:h,finishEffectProcess:s(async()=>{y||(P??=(async()=>{let w;for(let _=1;_<=bi;_+=1)try{await Q(),y=!0;return}catch(k){w=k,_<bi&&await new Promise(C=>setTimeout(C,20))}throw T(),w})().finally(()=>{P=void 0}),await P)},"finishEffectProcess")})}function Dv(){return Fv("direct")}async function Nv(e){let t=await Dv();try{return await e()}finally{await t()}}function Lv(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function qv(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,"/"),Lv()?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 xa(e,t){let n=qv(e),i=(Si.get(n)??Promise.resolve()).catch(()=>{}).then(async()=>Nv(async()=>{if(Rp(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return await t()})),o=i.catch(()=>{}).finally(()=>{Si.get(n)===o&&Si.delete(n)});return Si.set(n,o),i}var Si,_v,Qv,Ev,bi,Iv,$v,ka,Ep,Ap=p(()=>{"use strict";wi();_p();Si=new Map,_v=3e4,Qv=1e3,Ev=3e4,bi=3,Iv="model-filesystem-effects.json",$v="model-filesystem-effects.lock",ka=Ae(process.pid),Ep=process.env.VITEST_WORKER_ID===void 0?void 0:`${process.env.VITEST_WORKER_ID}-${process.pid}`.replace(/[^a-z0-9_-]/gi,"_");s(Ip,"effectRuntimePath");s(Cv,"captureEffectLeaseStorage");s(Pa,"isEffectLeaseOwner");s(Yn,"readEffectLeaseState");s(Av,"isProcessAlive");s(Cp,"isEffectLeaseOwnerAlive");s(Xv,"modelEffectTreeState");s(Mv,"removeStaleEffectLeases");s(jv,"reconcileAbandonedManagedEffects");s(Pi,"writeEffectLeaseState");s(Gn,"withEffectLeaseCoordinator");s(Wv,"namespaceConflictsWithShell");s(va,"shellConflictsWithNamespace");s(Fv,"acquireEffectLease");s(Dv,"acquireDirectFileMutationLease");s(Nv,"withHostFileSystemMutation");s(Lv,"isWindowsPathPlatform");s(qv,"normalizePathForKey");s(xa,"withFileMutation")});import{AsyncLocalStorage as zv}from"node:async_hooks";import Fe from"fs/promises";import Ra from"path";async function oe(e,t){try{let n=await Fe.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function Oe(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&L({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function Bn(e){return Uv.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function Yv(e){return Ta=(Ta+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${Ta}.tmp`}async function Bv(e,t){for(let r=1;;r+=1)try{await Fe.rename(e,t);return}catch(i){let o=i?.code;if(r>=5||!o||!Gv.has(o))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function De(e,t){await xa(e,async()=>{let n=Ra.dirname(e);await Fe.mkdir(n,{recursive:!0});let r=Yv(e);try{await Fe.writeFile(r,`${JSON.stringify(t,null,2)}
800
+ `,"utf8"),await Bv(r,e)}catch(i){throw await Fe.rm(r,{force:!0}).catch(()=>{}),i}await Zv(n,Ra.basename(e)).catch(()=>{})})}async function ki(e){await xa(e,async()=>{await Fe.mkdir(e,{recursive:!0})})}async function Zv(e,t){let n=`${t}.`,r=Date.now(),i=await Fe.readdir(e);await Promise.all(i.filter(o=>o.startsWith(n)&&Kv.test(o.slice(n.length))).map(async o=>{let a=Ra.join(e,o);try{let c=await Fe.stat(a);r-c.mtimeMs>=Vv&&await Fe.rm(a,{force:!0})}catch{}}))}var Uv,Vv,Kv,Ta,Gv,xi=p(()=>{"use strict";wi();Ap();Uv=new zv;s(oe,"safeReadJson");s(Oe,"debugLogRepoIntelligence");s(Bn,"resolveRepoIntelligenceStorageDir");Vv=3600*1e3,Kv=/^\d+\.\d+(?:\.\d+)?\.tmp$/,Ta=0;s(Yv,"nextAtomicTempPath");Gv=new Set(["EPERM","EBUSY","EACCES"]);s(Bv,"renameWithRetry");s(De,"writeJsonFileAtomic");s(ki,"ensureRepoIntelligenceStorageDir");s(Zv,"sweepStaleTempFiles")});import _t from"fs/promises";import X from"path";import{createHash as Qa}from"node:crypto";import{execFile as Hv}from"child_process";import{promisify as Jv}from"util";function Qt(e){return typeof e=="object"&&e!==null}function fk(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 pk(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=>fk(t))}function mk(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 hk(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 Ok(e){return Qt(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||hk(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 se(e,t){return(await ek("git",e,{cwd:t,timeout:rk,windowsHide:!0,maxBuffer:8388608})).stdout.toString()}async function Zn(e){try{return await _t.access(e),!0}catch{return!1}}async function $a(e){let t=_i(e);return await ki(t),t}function D(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Yp(e){let t=Qa("sha256");for(let n of Array.from(e,r=>D(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function gk(e){return dk.has(X.posix.basename(D(e)))}function yk(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(D(e[n]??"")!==D(t[n]??""))return!1;return!0}function Et(e){let t=D(e);return t===".agent"||t===".kodax"||ik.some(n=>t.startsWith(n))}async function wk(e){try{let t=(await se(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:X.resolve(t),source:"git"}}catch{}return{workspaceRoot:X.resolve(e),source:"filesystem"}}async function Sk(e){try{return(await _t.stat(e)).isDirectory()?e:X.dirname(e)}catch{return e}}async function bk(e){let t=(await se(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await se(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(D).filter(i=>!Et(i))));return{files:r.slice(0,tt),truncated:r.length>tt}}async function Xp(e){let t=[],n=!1;async function r(i){if(t.length>=tt){n=!0;return}let o=await _t.readdir(i,{withFileTypes:!0});for(let a of o){if(t.length>=tt){n=!0;return}if(a.isDirectory()){if(uk.has(a.name))continue;await r(X.join(i,a.name));continue}if(!a.isFile())continue;let c=D(X.relative(e,X.join(i,a.name)));Et(c)||t.push(c)}}return s(r,"walk"),await r(e),{files:t,truncated:n}}function Pk(e){let t=D(e).toLowerCase();return t.split("/").some(r=>sk.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Bt(e){let t=D(e),n=X.extname(t).toLowerCase(),r=X.posix.basename(t);return Ia.has(r)?"config":t.startsWith("docs/")||Kp.has(t)||Vp.has(n)?"docs":Pk(t)?"tests":ok.has(n)?"source":"other"}async function Gp(e,t){if(t===".")return"Workspace Root";let n=X.join(e,t,"package.json"),r=X.join(e,t,"pyproject.toml"),i=X.join(e,t,"Cargo.toml");if(await Zn(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 Zn(o))try{let c=(await _t.readFile(o,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return X.posix.basename(t)}async function vk(e,t){let n=new Map;for(let i of t){let a=D(i).split("/");if(a.length===1){n.set(".","root");continue}if(ck.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=ak.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("/")&&Ia.has(X.posix.basename(l)));r.push({id:i,label:await Gp(e,i),kind:o,root:i,fileCount:c.length,manifests:d.slice(0,Ea),sampleFiles:c.slice(0,Ea)})}return r.sort((i,o)=>o.fileCount!==i.fileCount?o.fileCount-i.fileCount:i.root.localeCompare(o.root))}async function Mp(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([se(["branch","--show-current"],e),se(["rev-parse","HEAD"],e),se(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function Hn(e,t){if(t==="git")try{return await bk(e)}catch{return Xp(e)}return Xp(e)}async function Ti(e,t){let n=await Zp(e,qp);return!n||n.schemaVersion!==ce||t&&n.overviewGeneratedAt!==t?null:n}async function jp(e){let n=(await se(["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=D(o.slice(3));if(c&&!Et(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=D(n[i+1]??"");d&&!Et(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function Bp(e,t){return oe(_i(e,t),pk)}async function Zp(e,t){return oe(_i(e,t),mk)}async function kk(e){return oe(_i(e,Np),Ok)}async function xk(e,t){let n=Qa("sha256");n.update(Yp(t));for(let r of t){let i=X.join(e,r);n.update(r),n.update(":");try{if(await _t.stat(i),n.update("present:"),gk(r)){let o=await _t.readFile(i,"utf8");n.update(Qa("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 Wp(e,t){let n=t.map(r=>D(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:Yp(n),dirtySemanticFingerprint:await xk(e,n)}}async function Tk(e,t,n){let r=new Set(t.map(i=>D(i)));for(let i of n){let o=X.join(e,i);await Zn(o)?r.add(i):r.delete(i)}return Array.from(r).sort((i,o)=>i.localeCompare(o))}async function Hp(e,t,n,r,i){let o=n.map(c=>D(c)),a={schemaVersion:ce,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:o.length,sourceFiles:o.filter(c=>Bt(c)==="source").length,docFiles:o.filter(c=>Bt(c)==="docs").length,testFiles:o.filter(c=>Bt(c)==="tests").length,configFiles:o.filter(c=>Bt(c)==="config").length},manifests:o.filter(c=>Ia.has(X.posix.basename(c))).slice(0,12),keyDocs:o.filter(c=>Kp.has(c)||/^README/i.test(X.posix.basename(c))&&Vp.has(X.extname(c).toLowerCase())).slice(0,8),entryHints:o.filter(c=>lk.includes(X.posix.basename(c))).slice(0,8),areas:await vk(e,o)};return{overview:a,inventory:{schemaVersion:ce,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...o].sort((c,d)=>c.localeCompare(d)),sourceFiles:o.filter(c=>Bt(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function Jp(e,t,n,r={}){let i={schemaVersion:ce,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 De(X.join(e,Np),i),await De(X.join(e,Lp),t),await De(X.join(e,qp),n),r.writeBaseline===!0&&(await De(X.join(e,zp),t),await De(X.join(e,Up),n))}function Rk(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===ce&&t.schemaVersion===ce&&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 _k(e,t,n,r){return!!(e&&t&&e.schemaVersion===ce&&t.schemaVersion===ce&&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 Qk(e,t,n){let r=await Bp(e,zp),i=await Zp(e,Up);if(!Rk(r,i,t))return null;let o=i,{dirtyPaths:a}=n,c=new Set(o.allFiles);if(r.truncated)for(let x of a){let h=X.join(e,x);if(!c.has(x)||await Zn(h)===!1)return null}let d=new Set(c);for(let x of a){let h=X.join(e,x);await Zn(h)?d.add(x):d.delete(x)}let l=Array.from(d).sort((x,h)=>x.localeCompare(h)),f=r.truncated||l.length>tt,u=f?l.slice(0,tt):l,{overview:m,inventory:g}=await Hp(e,"git",u,f,t),S=await $a(e);return await Jp(S,m,g,{dirtyIdentity:n}),m}async function Ek(e,t,n,r,i){if(!t||!n||t.schemaVersion!==ce||t.source!=="filesystem"||n.schemaVersion!==ce||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let o=r.map(a=>D(a)).sort((a,c)=>a.localeCompare(c));if(!yk(n.allFiles,o))return!1;for(let a of t.areas)if(await Gp(e,a.root)!==a.label)return!1;return!0}async function _a(e,t,n,r,i){let{files:o,truncated:a}=i??await Hn(e,t),c=t==="git"&&r?.dirtyPaths.length?await Tk(e,o,r.dirtyPaths):o.map(g=>D(g)),d=a||c.length>tt,l=d?c.slice(0,tt):c,f=await $a(e),{overview:u,inventory:m}=await Hp(e,t,l,d,n);return await Jp(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=jc(e),r=await Sk(t.targetPath?X.resolve(n,t.targetPath):n),{workspaceRoot:i,source:o}=await wk(r),a=await Bp(i,Lp),c=await kk(i),d,l;if(!t.refresh){if(d=await Mp(i,o),o!=="git"){let u=a?.schemaVersion===ce?await Ti(i,a.generatedAt):null,m=await Hn(i,o);return await Ek(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:o,overview:a,inventory:u}:_a(i,o,d,void 0,m)}if(o==="git"&&a?.schemaVersion===ce&&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 Ti(i,a.generatedAt)};if(o==="git"&&d?.hasUncommittedChanges===!0){let u=await jp(i).catch(m=>(Oe("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Wp(i,u),_k(a,c,d,l))return{workspaceRoot:i,source:o,overview:a,inventory:await Ti(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await Qk(i,d,l);if(m)return{workspaceRoot:i,source:o,overview:m,inventory:await Ti(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return _a(i,o,d,l)}if(d=await Mp(i,o),o==="git"&&d?.hasUncommittedChanges===!0){let f=await jp(i).catch(u=>(Oe("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Wp(i,f))}return _a(i,o,d,l)}function Fp(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function Ik(e){if(!e.trim())return null;let t=e.slice(0,2),n=e.slice(3).trim(),r=D(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 $k(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function Dp(e,t){let n=D(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 Ck(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 Ak(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 se(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(d){throw Oe(`Rejected compare base ref "${a}".`,d),new Error(`Could not resolve base ref "${a}".`)}return(await se(["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:D(u),status:Fp(l??"M")}}).filter(d=>!Et(d.path))}let i=(await se(["status","--porcelain=v1","--untracked-files=all"],e)).split(/\r?\n/).map(Ik).filter(a=>a!==null).filter(a=>$k(a,t)),o=new Map;for(let a of i)Et(a.path)||o.set(a.path,{path:a.path,status:Fp(a.status)});return Array.from(o.values())}async function Xk(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await se(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await se(["diff","--cached","--numstat"],e):t==="unstaged"?r=await se(["diff","--numstat"],e):r=await se(["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=D(u.split(" -> ").pop()??u);if(Et(m))continue;let g=l==="-"?0:Number.parseInt(l,10),S=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(S)&&(o+=S)}return{changedLineCount:i+o,addedLineCount:i,deletedLineCount:o}}async function Ri(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 Ak(r.workspaceRoot,n,t.baseRef),o=await Xk(r.workspaceRoot,n,t.baseRef).catch(u=>(Oe("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=Dp(u.path,r.areas);return{path:u.path,status:u.status,category:Bt(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=Dp(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<Ea?[...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:ce,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:Ck(a,Array.from(c.values()))},f=await $a(r.workspaceRoot);return await De(X.join(f,nk),l),l}function Mk(){return Bn(tk)}function _i(e,...t){let n=Mk(),r=X.isAbsolute(n)?n:X.join(e,n);return X.join(r,...t)}var ek,tk,Np,Lp,qp,zp,Up,nk,ce,tt,Ea,rk,ik,ok,Vp,sk,ak,ck,Ia,dk,Kp,lk,uk,em=p(()=>{"use strict";Wc();xi();ek=Jv(Hv),tk=X.join(".agent","repo-intelligence"),Np="manifest.json",Lp="repo-overview.json",qp="repo-overview-inventory.json",zp="repo-overview-baseline.json",Up="repo-overview-inventory-baseline.json",nk="changed-scope.json",ce=3,tt=12e3,Ea=3,rk=5e3,ik=[".agent/",".kodax/"],ok=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"]),Vp=new Set([".md",".mdx",".rst",".txt"]),sk=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),ak=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"]]),ck=new Set(["packages","apps","libs","services"]),Ia=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"]),dk=new Set(["package.json","pyproject.toml","Cargo.toml"]),Kp=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"]),lk=["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"],uk=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);s(Qt,"isRecord");s(fk,"isRepoAreaOverview");s(pk,"isRepoOverviewPayload");s(mk,"isRepoOverviewInventoryPayload");s(hk,"isGitSummaryPayload");s(Ok,"isRepoOverviewManifestPayload");s(se,"runGit");s(Zn,"exists");s($a,"ensureStorageDir");s(D,"normalizeRelativePath");s(Yp,"computePathFingerprint");s(gk,"isAreaLabelSensitiveManifestPath");s(yk,"sameNormalizedPathList");s(Et,"isManagedMetadataPath");s(wk,"resolveWorkspaceRoot");s(Sk,"resolveTargetDirectory");s(bk,"listGitFiles");s(Xp,"walkFilesystemFiles");s(Pk,"isTestFile");s(Bt,"classifyFileCategory");s(Gp,"readAreaLabel");s(vk,"buildAreas");s(Mp,"getGitSummary");s(Hn,"collectWorkspaceFilesForSource");s(Ti,"readRepoOverviewInventory");s(jp,"collectWorkspaceDirtyPaths");s(Bp,"readStoredRepoOverview");s(Zp,"readStoredRepoOverviewInventory");s(kk,"readStoredRepoOverviewManifest");s(xk,"computeDirtySemanticFingerprint");s(Wp,"buildDirtyOverviewIdentity");s(Tk,"applyDirtyPathPatchToFiles");s(Hp,"buildRepoOverviewArtifacts");s(Jp,"writeRepoOverviewArtifacts");s(Rk,"canUseOverviewBaseline");s(_k,"canDirectReuseDirtyOverview");s(Qk,"tryBuildDirtyRepoOverviewFromBaseline");s(Ek,"canDirectReuseFilesystemOverview");s(_a,"buildRepoOverviewSnapshotForWorkspace");s(It,"resolveRepoOverviewSnapshot");s(Fp,"resolveChangedStatus");s(Ik,"parsePorcelainLine");s($k,"includesCandidate");s(Dp,"findAreaForFile");s(Ck,"buildRiskHints");s(Ak,"collectChangedFiles");s(Xk,"collectChangedLineStats");s(Ri,"analyzeChangedScopeFromSnapshot");s(Mk,"getRepoIntelligenceDir");s(_i,"resolveRepoIntelligencePath")});var Qi=p(()=>{"use strict";em();xi()});import jk from"fs/promises";import Jn from"path";import{createHash as Ei}from"node:crypto";function Te(e){return typeof e=="object"&&e!==null}function Jt(e){return Te(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 Fk(e){return e==="high"||e==="medium"||e==="low"}function Dk(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function Nk(e){return Te(e)&&om(e.language)&&Fk(e.capabilityTier)&&typeof e.fileCount=="number"}function Lk(e){return Te(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&om(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function qk(e){return Te(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 sm(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&qk(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>Nk(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>Lk(t))}function zk(e){return Te(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&Dk(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 Uk(e){return Te(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>zk(t))}function am(e){return Te(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&Te(e.analyses)&&Object.values(e.analyses).every(t=>t===null||Uk(t))}function cm(e){return Te(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 z(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function J(e){switch(Jn.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 ae(e){switch(e){case"typescript":case"javascript":case"python":case"go":case"rust":return"high";case"java":return"medium";default:return"low"}}function dm(e,t="full"){return(e==="typescript"||e==="javascript")&&t==="light"?2:1}function Ne(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function lm(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?Ne(n.capabilityTier):.4}async function Ai(e){try{return await jk.access(e),!0}catch{return!1}}async function Xi(e,t="full"){let n=Vk(),r=Jn.isAbsolute(n)?n:Jn.join(e,n),i=t==="light"?Jn.join(r,"light"):r;return await ki(i),i}function um(e,t,n){return Ei("sha256").update(z(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function en(e){let t=Ei("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Mi(e,t){let n=Ei("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 er(e){let t=Ei("sha256");for(let n of Array.from(e,r=>z(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function ji(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function Wi(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function Ca(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function fm(e){return e.workspaceSnapshot.source!=="git"||Wi(e.workspaceSnapshot)}function pm(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function it(e,t){return De(e,t)}function mm(e){let t=z(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function hm(e){let t=z(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function ye(e,t){let n=z(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 de(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function tr(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 de(n,12)}function Vk(){return Bn(Wk)}var Wk,nt,Ii,$i,Ci,tm,nm,rm,B,Zt,rt,im,ge,Ht,Re,ot=p(()=>{"use strict";xi();Wk=Jn.join(".agent","repo-intelligence"),nt="repo-intelligence-index.json",Ii="repo-intelligence-manifest.json",$i="file-analysis-index.json",Ci="repo-intelligence-dirty-source-hint.json",tm="module-index.json",nm="symbol-index.json",rm="process-index.json",B=9,Zt=512*1024,rt=40,im=8,ge=8,Ht=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),Re=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);s(Te,"isRecord");s(Jt,"isRepoIntelligenceIndexPayload");s(om,"isRepoLanguageId");s(Fk,"isLanguageCapabilityTier");s(Dk,"isRepoSymbolKind");s(Nk,"isRepoLanguageSupportPayload");s(Lk,"isRepoSourceFileStatePayload");s(qk,"isRepoWorkspaceSnapshotPayload");s(sm,"isRepoIntelligenceManifestPayload");s(zk,"isCachedRepoSymbolRecordPayload");s(Uk,"isCachedFileAnalysisEntryPayload");s(am,"isFileAnalysisIndexPayload");s(cm,"isDirtySourceHintPayload");s(z,"normalizeRelativePath");s(J,"languageFromFile");s(ae,"capabilityTierForLanguage");s(dm,"analyzerVersionForLanguage");s(Ne,"baseConfidenceForTier");s(lm,"computeModuleConfidence");s(Ai,"exists");s(Xi,"ensureStorageDir");s(um,"computeFileFingerprint");s(en,"computeSourceFingerprint");s(Mi,"computeOverviewFingerprint");s(er,"computePathFingerprint");s(ji,"workspaceSnapshotFromOverview");s(Wi,"isCleanGitSnapshot");s(Ca,"sameWorkspaceSnapshot");s(fm,"shouldPersistRepoIntelligenceBaseline");s(pm,"getDirtySourcePathsForInputs");s(it,"writeJsonFileAtomic");s(mm,"isTestFile");s(hm,"isDocFile");s(ye,"findAreaForFile");s(de,"dedupeStrings");s(tr,"extractImports");s(Vk,"getRepoIntelligenceDir")});import Aa from"path";import Kk from"fs/promises";function Om(e,t){let n=new Map,r=new Map,i=new Map,o=new Map;for(let a of e){let c=ye(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),mm(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(hm(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 gm(e,t="full"){let n=e.workspaceRoot,r=await Xi(n,t),i=ji(e.overview),o=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>z(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=o?er(o):void 0,c=(o??[]).filter(f=>Ht.has(Aa.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await Ai(Aa.join(n,f))&&d.push(f);let l=d.length>0?await tn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Mi(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:o,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:o?en(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Xa(e,t,n,r,i="full"){let o=[];for(let a of t){let c=z(a),d=await Kk.stat(Aa.join(e,c)),l=J(c);o.push({filePath:c,fileFingerprint:um(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??ye(c,r).id,analyzerVersion:dm(l,i)})}return o.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function tn(e,t,n,r,i="full"){let o=Array.from(new Set(Array.from(t,c=>z(c)))).sort((c,d)=>c.localeCompare(d)),a=await Xa(e,o,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function ym(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 wm(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:ae(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:ae(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function Ma(e){return{typeScriptFiles:e.filter(t=>$t(J(t))),pythonFiles:e.filter(t=>J(t)==="python"),goFiles:e.filter(t=>J(t)==="go"),rustFiles:e.filter(t=>J(t)==="rust"),fallbackFiles:e.filter(t=>{let n=J(t);return!$t(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function $t(e){return e==="typescript"||e==="javascript"}var nr=p(()=>{"use strict";ot();s(Om,"buildAreaFileLookups");s(gm,"buildRepoIntelligencePreflight");s(Xa,"collectSourceFileStates");s(tn,"collectSourceFileStateMap");s(ym,"serializeCachedFileAnalysisEntry");s(wm,"hydrateCachedFileAnalysis");s(Ma,"bucketSourceFiles");s($t,"isTypeScriptLikeLanguage")});function vm(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 ir(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 _e&&e.index<0?null:e.parent;if(!a)return e;e=a}let o=r?0:N.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof _e&&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 bm(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 Wa(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 km(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 _e&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Da(i,n)}function Bk(e,t,n){let r=e.resolveInner(t,n),i=null;for(let o=r instanceof _e?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 _e(a.tree,a.overlay[0].from+o.from,-1,o);(i||(i=[r])).push(ir(c,t,n,!1))}}return i?km(i):r}function La(e){return e.children.some(t=>t instanceof st||!t.type.isAnonymous||La(t))}function Zk(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:o=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new ja(n,n.length):n,d=r.types,l=0,f=0;function u(T,v,w,_,k,C){let{id:$,start:I,end:A,size:j}=c,U=f,Be=l;if(j<0)if(c.next(),j==-1){let $e=o[$];w.push($e),_.push(I-T);return}else if(j==-3){l=$;return}else if(j==-4){f=$;return}else throw new RangeError(`Unrecognized record size: ${j}`);let ln=d[$],Or,ht,Cc=I-T;if(A-I<=i&&(ht=h(c.pos-v,k))){let $e=new Uint16Array(ht.size-ht.skip),fe=c.pos-ht.size,Pe=$e.length;for(;c.pos>fe;)Pe=y(ht.start,$e,Pe);Or=new st($e,A-ht.start,r),Cc=ht.start-T}else{let $e=c.pos-j;c.next();let fe=[],Pe=[],Ot=$>=a?$:-1,Mt=0,gr=A;for(;c.pos>$e;)Ot>=0&&c.id==Ot&&c.size>=0?(c.end<=gr-i&&(S(fe,Pe,I,Mt,c.end,gr,Ot,U,Be),Mt=fe.length,gr=c.end),c.next()):C>2500?m(I,$e,fe,Pe):u(I,$e,fe,Pe,Ot,C+1);if(Ot>=0&&Mt>0&&Mt<fe.length&&S(fe,Pe,I,Mt,I,gr,Ot,U,Be),fe.reverse(),Pe.reverse(),Ot>-1&&Mt>0){let Ac=g(ln,Be);Or=qa(ln,fe,Pe,0,fe.length,0,A-I,Ac,Ac)}else Or=x(ln,fe,Pe,A-I,U-A,Be)}w.push(Or),_.push(Cc)}s(u,"takeNode");function m(T,v,w,_){let k=[],C=0,$=-1;for(;c.pos>v;){let{id:I,start:A,end:j,size:U}=c;if(U>4)c.next();else{if($>-1&&A<$)break;$<0&&($=j-i),k.push(I,A,j),C++,c.next()}}if(C){let I=new Uint16Array(C*4),A=k[k.length-2];for(let j=k.length-3,U=0;j>=0;j-=3)I[U++]=k[j],I[U++]=k[j+1]-A,I[U++]=k[j+2]-A,I[U++]=U;w.push(new st(I,k[2]-A,r)),_.push(A-T)}}s(m,"takeFlatNode");function g(T,v){return(w,_,k)=>{let C=0,$=w.length-1,I,A;if($>=0&&(I=w[$])instanceof ee){if(!$&&I.type==T&&I.length==k)return I;(A=I.prop(M.lookAhead))&&(C=_[$]+I.length+A)}return x(T,w,_,k,C,v)}}s(g,"makeBalanced");function S(T,v,w,_,k,C,$,I,A){let j=[],U=[];for(;T.length>_;)j.push(T.pop()),U.push(v.pop()+w-k);T.push(x(r.types[$],j,U,C-k,I-C,A)),v.push(k-w)}s(S,"makeRepeatLeaf");function x(T,v,w,_,k,C,$){if(C){let I=[M.contextHash,C];$=$?[I].concat($):[I]}if(k>25){let I=[M.lookAhead,k];$=$?[I].concat($):[I]}return new ee(T,v,w,_,$)}s(x,"makeTree");function h(T,v){let w=c.fork(),_=0,k=0,C=0,$=w.end-i,I={size:0,start:0,skip:0};e:for(let A=w.pos-T;w.pos>A;){let j=w.size;if(w.id==v&&j>=0){I.size=_,I.start=k,I.skip=C,C+=4,_+=4,w.next();continue}let U=w.pos-j;if(j<0||U<A||w.start<$)break;let Be=w.id>=a?4:0,ln=w.start;for(w.next();w.pos>U;){if(w.size<0)if(w.size==-3||w.size==-4)Be+=4;else break e;else w.id>=a&&(Be+=4);w.next()}k=ln,_+=j,C+=Be}return(v<0||_==T)&&(I.size=_,I.start=k,I.skip=C),I.size>4?I:void 0}s(h,"findBufferSize");function y(T,v,w){let{id:_,start:k,end:C,size:$}=c;if(c.next(),$>=0&&_<a){let I=w;if($>4){let A=c.pos-($-4);for(;c.pos>A;)w=y(T,v,w)}v[--w]=I,v[--w]=C-T,v[--w]=k-T,v[--w]=_}else $==-3?l=_:$==-4&&(f=_);return w}s(y,"copyToBuffer");let P=[],b=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,P,b,-1,0);let Q=(t=e.length)!==null&&t!==void 0?t:P.length?b[0]+P[0].length:0;return new ee(d[e.topID],P.reverse(),b.reverse(),Q)}function Di(e,t){if(!e.isAnonymous||t instanceof st||t.type!=e)return 1;let n=Pm.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof ee)){n=1;break}n+=Di(e,r)}Pm.set(t,n)}return n}function qa(e,t,n,r,i,o,a,c,d){let l=0;for(let S=r;S<i;S++)l+=Di(e,t[S]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(S,x,h,y,P){for(let b=h;b<y;){let Q=b,T=x[b],v=Di(e,S[b]);for(b++;b<y;b++){let w=Di(e,S[b]);if(v+w>=f)break;v+=w}if(b==Q+1){if(v>f){let w=S[Q];g(w.children,w.positions,0,w.children.length,x[Q]+P);continue}u.push(S[Q])}else{let w=x[b-1]+S[b-1].length-T;u.push(qa(e,S,x,Q,b,T,w,null,d))}m.push(T+P-o)}}return s(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var Yk,rr,M,Ct,Gk,me,Ni,Fi,Sm,N,ee,ja,st,Li,_e,Fa,or,Da,sr,Pm,qi,Na,dY,za=p(()=>{Yk=0,rr=class{static{s(this,"Range")}constructor(t,n){this.from=t,this.to=n}},M=class{static{s(this,"NodeProp")}constructor(t={}){this.id=Yk++,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=me.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};M.closedBy=new M({deserialize:s(e=>e.split(" "),"deserialize")});M.openedBy=new M({deserialize:s(e=>e.split(" "),"deserialize")});M.group=new M({deserialize:s(e=>e.split(" "),"deserialize")});M.isolate=new M({deserialize:s(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({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[M.mounted.id]}},Gk=Object.create(null),me=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):Gk,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(M.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(M.group),o=-1;o<(i?i.length:0);o++){let a=n[o<0?r.name:i[o]];if(a)return a}}}};me.none=new me("",Object.create(null),0,8);Ni=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 me(r.name,i,r.id,r.flags):r)}return new e(n)}},Fi=new WeakMap,Sm=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"})(N||(N={}));ee=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 sr(this.topNode,t)}cursorAt(t,n=0,r=0){let i=Fi.get(this)||this.topNode,o=new sr(i);return o.moveTo(t,n),Fi.set(this,o._tree),o}get topNode(){return new _e(this,0,0,null)}resolve(t,n=0){let r=ir(Fi.get(this)||this.topNode,t,n,!1);return Fi.set(this,r),r}resolveInner(t,n=0){let r=ir(Sm.get(this)||this.topNode,t,n,!0);return Sm.set(this,r),r}resolveStack(t,n=0){return Bk(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:o=this.length}=t,a=t.mode||0,c=(a&N.IncludeAnonymous)>0;for(let d=this.cursor(a|N.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:qa(me.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(me.none,n,r,i)))}static build(t){return Zk(t)}};ee.empty=new ee(me.none,[],[],0);ja=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)}},st=class e{static{s(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return me.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&&!(vm(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(vm,"checkSide");s(ir,"resolveNode");Li=class{static{s(this,"BaseNode")}cursor(t=0){return new sr(this,t)}getChild(t,n=null,r=null){let i=bm(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return bm(this,t,n,r)}resolve(t,n=0){return ir(this,t,n,!1)}resolveInner(t,n=0){return ir(this,t,n,!0)}matchContext(t){return Wa(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}},_e=class e extends Li{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&N.EnterBracketed&&f instanceof ee&&(m=Ct.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!vm(i,r,u,u+f.length))){if(f instanceof st){if(o&N.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new or(new Fa(a,f,t,u),null,g)}else if(o&N.IncludeAnonymous||!f.type.isAnonymous||La(f)){let g;if(!(o&N.IgnoreMounts)&&(g=Ct.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let S=new e(f,u,t,a);return o&N.IncludeAnonymous||!S.type.isAnonymous?S:S.nextChild(n<0?f.children.length-1:0,n,r,i,o)}}}if(o&N.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&N.IgnoreOverlays)&&(i=Ct.get(this._tree))&&i.overlay){let o=t-this.from,a=r&N.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(bm,"getChildren");s(Wa,"matchNodeContext");Fa=class{static{s(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},or=class e extends Li{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&N.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 ee(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};s(km,"iterStack");Da=class{static{s(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return km(this.heads)}};s(Bk,"stackIterator");sr=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&~N.EnterBracketed,t instanceof _e)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 _e?(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&N.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&N.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&N.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&N.IncludeAnonymous||c instanceof st||!c.type.isAnonymous||La(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 or(this.buffer,n,this.stack[i]);return this.bufferNode=new or(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 Wa(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 Wa(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(La,"hasChild");s(Zk,"buildTree");Pm=new WeakMap;s(Di,"nodeSize");s(qa,"balanceRange");qi=class{static{s(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Na(t)),r=r?r.length?r.map(i=>new rr(i.from,i.to)):[new rr(0,0)]:[new rr(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}}},Na=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)}},dY=new M({perNode:!0})});function ar(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 Em(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 S=e[g];if(d.allows(S)&&(t.token.value==-1||t.token.value==S||Jk(S,t.token.value,i,o))){t.acceptToken(S);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,S=l+g+(g<<1),x=e[S],h=e[S+1]||65536;if(f<x)m=g;else if(f>=h)u=g+1;else{a=e[S+2],t.advance();continue e}}break}}function Tm(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function Jk(e,t,n,r){let i=Tm(n,r,t);return i<0||Tm(n,r,e)<i}function Rm(e,t,n){let r=e.cursor(N.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 _m(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 Le(e,t){return e[t]|e[t+1]<<16}function ex(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 Qm(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Ka,zi,Ya,Ga,nn,xm,Ba,at,cr,ue,le,Ua,Za,Ha,Ja,ec,Va,rn,ct,Ui=p(()=>{za();Ka=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 zi(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 Ya(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 zi(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()}},zi=class{static{s(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},Ya=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}},Ga=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(ar,"decodeArray");nn=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 nn,Ba=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}},at=class{static{s(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;Em(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};at.prototype.contextual=at.prototype.fallback=at.prototype.extend=!1;cr=class{static{s(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?ar(t):t}token(t,n){let r=t.pos,i=0;for(;;){let o=t.next<0,a=t.resolveOffset(1,1);if(Em(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))}};cr.prototype.contextual=at.prototype.fallback=at.prototype.extend=!1;ue=class{static{s(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};s(Em,"readToken");s(Tm,"findOffset");s(Jk,"overrides");le=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Ua=null;s(Rm,"cutAt");Za=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?Rm(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?Rm(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 ee){if(a==t){if(a<this.safeFrom)return null;let c=a+o.length;if(c<=this.safeTo){let d=o.prop(M.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}}},Ha=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 nn)}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 nn,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 nn,{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=Le(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Le(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Le(c,l+1),n,r,i))}return i}},Ja=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 Ba(n,i),this.tokens=new Ha(t,this.stream),this.topTerm=t.top[1];let{from:o}=i[0];this.stacks=[Ka.start(this,t.top[0],o)],this.fragments=r.length&&this.stream.end-o>t.bufferLength*4?new Za(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&&ex(i);if(a)return le&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw le&&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 le&&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=le?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(M.contextHash)||0)==f))return t.useNode(u,m),le&&console.log(a+this.stackID(t)+` (via reuse of ${o.getName(u.type.id)})`),!0;if(!(u instanceof ee)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof ee&&u.positions[0]==0)u=g;else break}}let c=o.stateSlot(t.state,4);if(c>0)return t.reduce(c),le&&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,S=g?t:t.split(),x=this.tokens.mainToken;if(S.apply(f,u,x?x.start:S.pos,m),le&&console.log(a+this.stackID(S)+` (via ${(f&65536)==0?"shift":`reduce of ${o.getName(f&65535)}`} for ${o.getName(u)} @ ${i}${S==t?"":", split"})`),g)return!0;S.pos>i?n.push(S):r.push(S)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return _m(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=le?this.stackID(c)+" -> ":"";if(c.deadEnd&&(o||(o=!0,c.restart(),le&&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()&&(le&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)le&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))le&&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),le&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),_m(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),ee.build({buffer:Ga.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=(Ua||(Ua=new WeakMap)).get(t);return n||Ua.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};s(_m,"pushStackDedup");ec=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}},Va=s(e=>e,"id"),rn=class{static{s(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Va,this.reduce=t.reduce||Va,this.reuse=t.reuse||Va,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},ct=class e extends qi{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=M[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 Ni(n.map((c,d)=>me.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=ar(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(Qm),this.states=ar(t.states,Uint32Array),this.data=ar(t.stateData),this.goto=ar(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new at(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 Ja(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=Le(r,o+2)];else{if(r[o+1]==2)return Le(r,o+2);break}if(a==n||a==0)return Le(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=Le(this.data,o+2);else break;i=n(Le(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=Le(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]=Qm(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 ec(t,r,i)}static deserialize(t){return new e(t)}};s(Le,"pair");s(ex,"findFinished");s(Qm,"getSpecializer")});function rx(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function ix(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 sn(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 on(r,a,d>0?o.slice(0,d):null);t[l]=f.sort(t[l])}}return ox.add(t)}function sx(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 tx,we,nx,Gi,ox,on,R,Vi,dt,Im,$m,lt,Ki,tc,Ie,At,Qe,Ee,nc,dr,Yi,O,OY,Bi=p(()=>{za();tx=0,we=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=tx++}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 Gi(t);return r=>r.modified.indexOf(n)>-1?r:Gi.get(r.base||r,r.modified.concat(n).sort((i,o)=>i.id-o.id))}},nx=0,Gi=class e{static{s(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=nx++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&rx(n,c.modified));if(r)return r;let i=[],o=new we(t.name,i,t,n);for(let c of n)c.instances.push(o);let a=ix(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(rx,"sameArray");s(ix,"powerSet");s(sn,"styleTags");ox=new M({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 on(i.tags,i.mode,i.context);n?n.next=o:r=o,n=o}return r}}),on=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}};on.empty=new on([],2,null);s(sx,"tagHighlighter");R=we.define,Vi=R(),dt=R(),Im=R(dt),$m=R(dt),lt=R(),Ki=R(lt),tc=R(lt),Ie=R(),At=R(Ie),Qe=R(),Ee=R(),nc=R(),dr=R(nc),Yi=R(),O={comment:Vi,lineComment:R(Vi),blockComment:R(Vi),docComment:R(Vi),name:dt,variableName:R(dt),typeName:Im,tagName:R(Im),propertyName:$m,attributeName:R($m),className:R(dt),labelName:R(dt),namespace:R(dt),macroName:R(dt),literal:lt,string:Ki,docString:R(Ki),character:R(Ki),attributeValue:R(Ki),number:tc,integer:R(tc),float:R(tc),bool:R(lt),regexp:R(lt),escape:R(lt),color:R(lt),url:R(lt),keyword:Qe,self:R(Qe),null:R(Qe),atom:R(Qe),unit:R(Qe),modifier:R(Qe),operatorKeyword:R(Qe),controlKeyword:R(Qe),definitionKeyword:R(Qe),moduleKeyword:R(Qe),operator:Ee,derefOperator:R(Ee),arithmeticOperator:R(Ee),logicOperator:R(Ee),bitwiseOperator:R(Ee),compareOperator:R(Ee),updateOperator:R(Ee),definitionOperator:R(Ee),typeOperator:R(Ee),controlOperator:R(Ee),punctuation:nc,separator:R(nc),bracket:dr,angleBracket:R(dr),squareBracket:R(dr),paren:R(dr),brace:R(dr),content:Ie,heading:At,heading1:R(At),heading2:R(At),heading3:R(At),heading4:R(At),heading5:R(At),heading6:R(At),contentSeparator:R(Ie),list:R(Ie),quote:R(Ie),emphasis:R(Ie),strong:R(Ie),link:R(Ie),monospace:R(Ie),strikethrough:R(Ie),inserted:R(),deleted:R(),changed:R(),invalid:R(),meta:Yi,documentMeta:R(Yi),annotation:R(Yi),processingInstruction:R(Yi),definition:we.defineModifier("definition"),constant:we.defineModifier("constant"),function:we.defineModifier("function"),standard:we.defineModifier("standard"),local:we.defineModifier("local"),special:we.defineModifier("special")};for(let e in O){let t=O[e];t instanceof we&&(t.name=e)}OY=sx([{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 ax,cx,dx,lx,ux,fx,px,mx,hx,Ox,gx,yx,wx,Sx,bx,Px,vx,kx,Cm,xx,Tx,Rx,_x,Qx,Ex,Ix,Am,Xm=p(()=>{Ui();Bi();ax=177,cx=179,dx=184,lx=12,ux=13,fx=17,px=20,mx=25,hx=53,Ox=95,gx=142,yx=144,wx=145,Sx=148,bx=10,Px=13,vx=32,kx=9,Cm=47,xx=41,Tx=125,Rx=new ue((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==bx||r==Px||r==Cm&&e.peek(n+1)==Cm)||r==xx||r==Tx)&&e.acceptToken(ax),!(r!=vx&&r!=kx);)r=e.peek(++n)},{contextual:!0}),_x=new Set([Ox,dx,px,lx,fx,yx,wx,gx,Sx,ux,hx,mx]),Qx=new rn({start:!1,shift:s((e,t)=>t==cx?e:_x.has(t),"shift")}),Ex=sn({"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}),Ix={__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},Am=ct.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:Qx,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:[Ex],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:[Rx,1,2,new cr("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=>Ix[e]||-1,"get")}],tokenPrec:5451})});function rc(e){return e==Xt||e==lr}function ic(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Hi(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 AT(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==Ji?8-t%8:1;return t}function WT(e,t){if(t==xT)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==TT)for(let n=0;n<2&&ic(e.next);n++)e.advance();else if(t==_T)for(let n=0;n<4&&ic(e.next);n++)e.advance();else if(t==QT)for(let n=0;n<8&&ic(e.next);n++)e.advance();else if(t==RT&&e.next==oc){for(e.advance();e.next>=0&&e.next!=Wm&&e.next!=Um&&e.next!=Vm&&e.next!=Xt;)e.advance();e.next==Wm&&e.advance()}}var $x,Nm,Lm,Cx,Mm,Ax,Xx,Mx,jx,qm,jm,Wx,Fx,Dx,Nx,Lx,qx,zx,Ux,Vx,Kx,Yx,Gx,Bx,Zx,Hx,Jx,eT,tT,nT,rT,iT,oT,sT,zm,aT,cT,dT,lT,uT,fT,pT,mT,hT,OT,gT,yT,wT,ST,bT,PT,Xt,lr,sc,Ji,ac,vT,kT,oc,Wm,Um,Vm,Fm,xT,TT,RT,_T,QT,ET,IT,$T,Zi,Km,qe,ze,Ue,Ve,CT,Dm,XT,MT,jT,FT,DT,Ym,Gm=p(()=>{Ui();Bi();$x=1,Nm=194,Lm=195,Cx=196,Mm=197,Ax=198,Xx=199,Mx=200,jx=2,qm=3,jm=201,Wx=24,Fx=25,Dx=49,Nx=50,Lx=55,qx=56,zx=57,Ux=59,Vx=60,Kx=61,Yx=62,Gx=63,Bx=65,Zx=238,Hx=71,Jx=241,eT=242,tT=243,nT=244,rT=245,iT=246,oT=247,sT=248,zm=72,aT=249,cT=250,dT=251,lT=252,uT=253,fT=254,pT=255,mT=256,hT=73,OT=77,gT=263,yT=112,wT=130,ST=151,bT=152,PT=155,Xt=10,lr=13,sc=32,Ji=9,ac=35,vT=40,kT=46,oc=123,Wm=125,Um=39,Vm=34,Fm=92,xT=111,TT=120,RT=78,_T=117,QT=85,ET=new Set([Fx,Dx,Nx,gT,Bx,wT,qx,zx,Zx,Yx,Gx,zm,hT,OT,Vx,Kx,ST,bT,PT,yT]);s(rc,"isLineBreak");s(ic,"isHex");IT=new ue((e,t)=>{let n;if(e.next<0)e.acceptToken(Xx);else if(t.context.flags&Zi)rc(e.next)&&e.acceptToken(Ax,1);else if(((n=e.peek(-1))<0||rc(n))&&t.canShift(Mm)){let r=0;for(;e.next==sc||e.next==Ji;)e.advance(),r++;(e.next==Xt||e.next==lr||e.next==ac)&&e.acceptToken(Mm,-r)}else rc(e.next)&&e.acceptToken(Cx,1)},{contextual:!0}),$T=new ue((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==Xt||r==lr){let i=0,o=0;for(;;){if(e.next==sc)i++;else if(e.next==Ji)i+=8-i%8;else break;e.advance(),o++}i!=n.indent&&e.next!=Xt&&e.next!=lr&&e.next!=ac&&(i<n.indent?e.acceptToken(Lm,-o):e.acceptToken(Nm))}}),Zi=1,Km=2,qe=4,ze=8,Ue=16,Ve=32;s(Hi,"Context");CT=new Hi(null,0,0);s(AT,"countIndent");Dm=new Map([[Jx,0],[eT,qe],[tT,ze],[nT,ze|qe],[rT,Ue],[iT,Ue|qe],[oT,Ue|ze],[sT,Ue|ze|qe],[aT,Ve],[cT,Ve|qe],[dT,Ve|ze],[lT,Ve|ze|qe],[uT,Ve|Ue],[fT,Ve|Ue|qe],[pT,Ve|Ue|ze],[mT,Ve|Ue|ze|qe]].map(([e,t])=>[e,t|Km])),XT=new rn({start:CT,reduce(e,t,n,r){return e.flags&Zi&&ET.has(t)||(t==Hx||t==zm)&&e.flags&Km?e.parent:e},shift(e,t,n,r){return t==Nm?new Hi(e,AT(r.read(r.pos,n.pos)),0):t==Lm?e.parent:t==Wx||t==Lx||t==Ux||t==qm?new Hi(e,0,Zi):Dm.has(t)?new Hi(e,0,Dm.get(t)|e.flags&Zi):e},hash(e){return e.hash}}),MT=new ue(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==sc||n==Ji)){n!=vT&&n!=kT&&n!=Xt&&n!=lr&&n!=ac&&e.acceptToken($x);return}}}),jT=new ue((e,t)=>{let{flags:n}=t.context,r=n&qe?Vm:Um,i=(n&ze)>0,o=!(n&Ue),a=(n&Ve)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==oc)if(e.peek(1)==oc)e.advance(2);else{if(e.pos==c){e.acceptToken(qm,1);return}break}else if(o&&e.next==Fm){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),WT(e,d)),e.acceptToken(jx);return}break}else if(e.next==Fm&&!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(jm,i?3:1);return}break}else if(e.next==Xt){if(i)e.advance();else if(e.pos==c){e.acceptToken(jm);return}break}else e.advance();e.pos>c&&e.acceptToken(Mx)});s(WT,"skipEscape");FT=sn({'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}),DT={__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},Ym=ct.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:XT,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:[FT],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:[MT,$T,IT,jT,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:s(e=>DT[e]||-1,"get")}],tokenPrec:7668})});function cc(e){return e>=48&&e<=57}function to(e){return cc(e)||e==95}var NT,LT,qT,zT,UT,Bm,VT,KT,Zm,YT,eo,Hm,GT,BT,Jm,eh,ZT,HT,JT,eR,tR,nR,rR,iR,th,nh=p(()=>{Ui();Bi();NT=1,LT=2,qT=3,zT=4,UT=5,Bm=98,VT=101,KT=102,Zm=114,YT=69,eo=48,Hm=46,GT=43,BT=45,Jm=35,eh=34,ZT=124,HT=60,JT=62;s(cc,"isNum");s(to,"isNum_");eR=new ue((e,t)=>{if(cc(e.next)){let n=!1;do e.advance();while(to(e.next));if(e.next==Hm){if(n=!0,e.advance(),cc(e.next))do e.advance();while(to(e.next));else if(e.next==Hm||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==VT||e.next==YT){if(n=!0,e.advance(),(e.next==GT||e.next==BT)&&e.advance(),!to(e.next))return;do e.advance();while(to(e.next))}if(e.next==KT){let r=e.peek(1);if(r==eo+3&&e.peek(2)==eo+2||r==eo+6&&e.peek(2)==eo+4)e.advance(3),n=!0;else return}n&&e.acceptToken(UT)}else if(e.next==Bm||e.next==Zm){if(e.next==Bm&&e.advance(),e.next!=Zm)return;e.advance();let n=0;for(;e.next==Jm;)n++,e.advance();if(e.next!=eh)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==eh;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=Jm)continue e;e.advance()}e.acceptToken(zT);return}}}}),tR=new ue(e=>{e.next==ZT&&e.acceptToken(NT,1)}),nR=new ue(e=>{e.next==HT?e.acceptToken(LT,1):e.next==JT&&e.acceptToken(qT,1)}),rR=sn({"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}),iR={__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},th=ct.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:[rR],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:[tR,nR,eR,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:s(e=>iR[e]||-1,"get")}],tokenPrec:15596})});import cn from"fs/promises";import uc from"path";function ih(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function fc(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function V(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function Se(e,t){return e.slice(t.from,t.to)}function Ke(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function Ye(e,t){return e[t-1]?.trim()||"<unknown>"}function oR(e,t){let n=[];return V(t,r=>{if(r.type.name!=="ImportStatement")return;let i=Se(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))}),de(n,12)}function lc(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return Se(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return V(t,i=>{let o=lc(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?lc(e,n):null}function rh(e,t){let n=new Set,r=s(i=>{if(i.type.name==="CallExpression"){let o=i.firstChild,a=o?lc(e,o):null;a&&!Re.has(a)&&n.add(a)}V(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=uc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),f=Ym.parse(c).topNode,u=J(i),m=ae(u),g=Ne(m),S=oR(c,f),x=[],h=ye(i,n).id;V(f,y=>{if(y.type.name==="FunctionDefinition"){let v=null;if(V(y,k=>{k.type.name==="VariableName"&&!v&&(v=Se(c,k).trim())}),!v)return;let w=v,_=Ke(c,y);x.push({id:`${i}#${w}:${_}`,name:w,qualifiedName:`${i}:${w}`,kind:"function",filePath:i,moduleId:h,language:u,capabilityTier:m,line:_,signature:Ye(d,_),exported:!w.startsWith("_"),calls:rh(c,y),callTargets:[],importPaths:S,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let P=null,b=null;if(V(y,v=>{v.type.name==="VariableName"&&!P?P=Se(c,v).trim():v.type.name==="Body"&&(b=v)}),!P)return;let Q=P,T=Ke(c,y);x.push({id:`${i}#${Q}:${T}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"class",filePath:i,moduleId:h,language:u,capabilityTier:m,line:T,signature:Ye(d,T),exported:!Q.startsWith("_"),calls:[],callTargets:[],importPaths:S,confidence:Math.min(.99,g+.08)}),b&&V(b,v=>{if(v.type.name!=="FunctionDefinition")return;let w=null;if(V(v,C=>{C.type.name==="VariableName"&&!w&&(w=Se(c,C).trim())}),!w)return;let _=w,k=Ke(c,v);x.push({id:`${i}#${Q}.${_}:${k}`,name:_,qualifiedName:`${i}:${Q}.${_}`,kind:"method",filePath:i,moduleId:h,language:u,capabilityTier:m,line:k,signature:Ye(d,k),exported:!_.startsWith("_"),calls:rh(c,v),callTargets:[],importPaths:S,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:h,language:u,capabilityTier:m,importPaths:S,symbols:x.slice(0,rt)})}return r}function ur(e,t){let n=null;return V(e,r=>{!n&&t(r)&&(n=r)}),n}function sR(e,t){let n=null;return V(e,r=>{t(r)&&(n=r)}),n}function sh(e,t){if(t(e))return e;let n=null;return V(e,r=>{n||(n=sh(r,t))}),n}function no(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&&!Re.has(c)&&r.add(c)}V(o,i)},"walk");return i(t),Array.from(r).slice(0,24)}function ro(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return Se(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return V(t,i=>{let o=ro(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?ro(e,n):null}function io(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return Se(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return V(t,i=>{let o=io(e,i);o&&(r=o)}),r}let n=t.firstChild;return n?io(e,n):null}function an(e,t,n){let r=ur(t,i=>i.type.name===n);return r?Se(e,r).trim():null}function dc(e,t){return/^pub(?:\([^)]*\))?\s/.test(Se(e,t).trimStart())}async function ah(e,t,n){let r=[];for(let i of t){let o=uc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=Am.parse(c),f=ye(i,n).id,u=J(i),m=ae(u),g=Ne(m),S=tr(c,u),x=[];V(l.topNode,h=>{if(h.type.name==="TypeDecl"){let v=ur(h,C=>C.type.name==="TypeSpec"),w=v?an(c,v,"DefName"):null;if(!v||!w)return;let _=ur(v,C=>C.type.name==="InterfaceType")?"interface":"struct",k=Ke(c,v);x.push({id:`${i}#${w}:${k}`,name:w,qualifiedName:`${i}:${w}`,kind:_,filePath:i,moduleId:f,language:u,capabilityTier:m,line:k,signature:Ye(d,k),exported:/^[A-Z]/.test(w),calls:[],callTargets:[],importPaths:S,confidence:Math.min(.97,g+.07)});return}if(h.type.name==="FunctionDecl"){let v=an(c,h,"DefName");if(!v)return;let w=Ke(c,h);x.push({id:`${i}#${v}:${w}`,name:v,qualifiedName:`${i}:${v}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:w,signature:Ye(d,w),exported:/^[A-Z]/.test(v),calls:no(c,h,ro),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.07)});return}if(h.type.name!=="MethodDecl")return;let y=ur(h,v=>v.type.name==="Parameters"),P=an(c,h,"FieldName"),b=y?sh(y,v=>v.type.name==="TypeName"):null,Q=b?Se(c,b).trim():void 0;if(!P)return;let T=Ke(c,h);x.push({id:`${i}#${Q?`${Q}.`:""}${P}:${T}`,name:P,qualifiedName:`${i}:${Q?`${Q}.`:""}${P}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:T,signature:Ye(d,T),exported:/^[A-Z]/.test(P),calls:no(c,h,ro),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:S,symbols:x.slice(0,rt)})}return r}async function ch(e,t,n){let r=[];for(let i of t){let o=uc.join(e,i);if((await cn.stat(o)).size>Zt)continue;let c=await cn.readFile(o,"utf8"),d=c.split(/\r?\n/),l=th.parse(c),f=ye(i,n).id,u=J(i),m=ae(u),g=Ne(m),S=tr(c,u),x=[];V(l.topNode,h=>{if(h.type.name==="StructItem"||h.type.name==="TraitItem"||h.type.name==="EnumItem"){let Q=an(c,h,"TypeIdentifier");if(!Q)return;let T=h.type.name==="TraitItem"?"trait":h.type.name==="EnumItem"?"enum":"struct",v=Ke(c,h);x.push({id:`${i}#${Q}:${v}`,name:Q,qualifiedName:`${i}:${Q}`,kind:T,filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ye(d,v),exported:dc(c,h),calls:[],callTargets:[],importPaths:S,confidence:Math.min(.97,g+.06)});return}if(h.type.name==="FunctionItem"){let Q=an(c,h,"BoundIdentifier");if(!Q)return;let T=Ke(c,h);x.push({id:`${i}#${Q}:${T}`,name:Q,qualifiedName:`${i}:${Q}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:T,signature:Ye(d,T),exported:dc(c,h),calls:no(c,h,io),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.06)});return}if(h.type.name!=="ImplItem")return;let y=sR(h,Q=>Q.type.name==="TypeIdentifier"),P=y?fc(Se(c,y).trim()):void 0,b=ur(h,Q=>Q.type.name==="DeclarationList");!P||!b||V(b,Q=>{if(Q.type.name!=="FunctionItem")return;let T=an(c,Q,"BoundIdentifier");if(!T)return;let v=Ke(c,Q);x.push({id:`${i}#${P}.${T}:${v}`,name:T,qualifiedName:`${i}:${P}.${T}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:Ye(d,v),exported:dc(c,Q),calls:no(c,Q,io),callTargets:[],importPaths:S,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:S,symbols:x.slice(0,rt)})}return r}var pc=p(()=>{"use strict";Xm();Gm();nh();ot();s(ih,"extractGoReceiverQualifier");s(fc,"normalizeRustQualifier");s(V,"forEachSyntaxChild");s(Se,"getSyntaxNodeText");s(Ke,"getPythonNodeLine");s(Ye,"getPythonSignature");s(oR,"collectPythonImports");s(lc,"getPythonCallName");s(rh,"collectPythonCallNames");s(oh,"analyzePythonFiles");s(ur,"findFirstSyntaxChild");s(sR,"findLastSyntaxChild");s(sh,"findSyntaxDescendant");s(no,"collectLezerCallNames");s(ro,"getGoCallName");s(io,"getRustCallName");s(an,"findSyntaxNodeText");s(dc,"isRustExported");s(ah,"analyzeGoFiles");s(ch,"analyzeRustFiles")});import dh from"fs/promises";import ut from"path";function lh(e,t){return Array.from(e.matchAll(t)).length}function be(e){return lh(e,/\{/g)-lh(e,/\}/g)}function aR(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]??"",S=g.trim();if(!S){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!S.startsWith("#"))break;m+=1}return e.slice(o,m).join(`
802
801
  `)}let c=0,d=!1,l=o;for(let u=o;u<e.length;u+=1){let m=e[u]??"";if(c+=be(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 nR(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||Re.has(o))&&(t.add(o),t.size>=24))break}}return Array.from(t)}function te(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){te(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){te(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";te(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){te(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&&te(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){te(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:th(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){te(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&&te(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=lc(u[1]);a.push({name:g,depth:c+be(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(te(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+=be(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&&te(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=be(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(te(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+be(l)}),c+=be(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&&!Re.has(u[1])){let m=i[i.length-1]?.name;te(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=be(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(te(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+be(l)}),c+=be(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&&!Re.has(u[2])){for(te(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=be(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&&!Re.has(u[1])){let m=o[o.length-1]?.name;te(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=be(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop()}}return n.slice(0,nt)}async function ch(e,t,n){let r=lt.join(e,t);if((await sh.stat(r)).size>Zt)return null;let o=await sh.readFile(r,"utf8"),a=o.split(/\r?\n/),c=J(t),d=ae(c),l=er(o,c),f=rR(a,c),u=De(d),m=f.map((g,S,x)=>{let h=tR(a,c,g,x,S),y=g.calls??nR(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 dh(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(lt.posix.basename(n.root).toLowerCase(),n.id);return t}function iR(e,t,n){if(!e.startsWith("."))return null;let r=lt.posix.dirname(t),i;if(e.includes("/"))i=z(lt.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=lt.posix.dirname(d);i=z(lt.posix.join(d,c))}let o=[i];for(let a of Ht)o.push(`${i}${a}`),o.push(`${i}/index${a}`);for(let a of o)if(n.has(a))return a;return null}function ur(e,t,n,r,i){let o=iR(e,t,n);if(o)return ye(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 io(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function lh(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,tm),S=de(g.map(h=>n.get(h.symbolId??"")?.moduleId).filter(h=>typeof h=="string"),4),x=`${o.moduleId}::${lt.posix.basename(d)}`;i.push({id:x,label:`${o.label} entry via ${lt.posix.basename(d)}`,moduleId:o.moduleId,entryFile:d,entrySymbol:l.name,summary:S.length>0?`${l.name} fans into ${de(u.map(h=>h.name),4).join(", ")||"local work"} and touches modules ${S.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 fc=p(()=>{"use strict";it();uc();s(ah,"countOccurrences");s(be,"countBraceDelta");s(tR,"extractSymbolBody");s(nR,"extractCallNames");s(te,"pushSymbol");s(rR,"extractSymbolsFromLines");s(ch,"analyzeSourceFile");s(dh,"buildModuleAliases");s(iR,"resolveRelativeImport");s(ur,"resolveImportToModule");s(io,"rankReferenceReason");s(lh,"buildProcessCapsules")});var Oh={};Ac(Oh,{analyzeTypeScriptFiles:()=>sR,collectTypeScriptImportPaths:()=>mh,getCallExpressionName:()=>ph,getDeclarationKey:()=>mc,getNodeLine:()=>uh,getPropertyNameText:()=>oo,getSignatureSnippet:()=>fh,hasModifier:()=>pc,isExportedDeclaration:()=>ft,registerTypeScriptSymbol:()=>ut,resolveTypeScriptCallSymbol:()=>hh,scriptKindFromFilePath:()=>oR});import so from"path";import Q from"typescript";function oR(e){switch(so.extname(e).toLowerCase()){case".ts":return Q.ScriptKind.TS;case".tsx":return Q.ScriptKind.TSX;case".jsx":return Q.ScriptKind.JSX;default:return Q.ScriptKind.JS}}function uh(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function mc(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${z(so.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function fh(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 pc(e,t){return Q.canHaveModifiers(e)?!!Q.getModifiers(e)?.some(n=>n.kind===t):!1}function ft(e){return pc(e,Q.SyntaxKind.ExportKeyword)||pc(e,Q.SyntaxKind.DefaultKeyword)?!0:Q.isVariableDeclaration(e)&&Q.isVariableDeclarationList(e.parent)&&Q.isVariableStatement(e.parent.parent)?ft(e.parent.parent):!1}function oo(e){return e&&(Q.isIdentifier(e)||Q.isPrivateIdentifier(e)||Q.isStringLiteral(e)||Q.isNumericLiteral(e))?e.text:null}function ph(e){return Q.isIdentifier(e)?e.text:Q.isPropertyAccessExpression(e)?e.name.text:Q.isElementAccessExpression(e)&&Q.isIdentifier(e.argumentExpression)?e.argumentExpression.text:null}function mh(e){let t=new Set,n=s(i=>{i?.trim()&&t.add(i.trim())},"addImport"),r=s(i=>{if(Q.isImportDeclaration(i)||Q.isExportDeclaration(i))i.moduleSpecifier&&Q.isStringLiteralLike(i.moduleSpecifier)&&n(i.moduleSpecifier.text);else if(Q.isImportEqualsDeclaration(i)){let o=i.moduleReference;Q.isExternalModuleReference(o)&&o.expression&&Q.isStringLiteralLike(o.expression)&&n(o.expression.text)}else Q.isCallExpression(i)&&Q.isIdentifier(i.expression)&&i.expression.text==="require"&&i.arguments.length===1&&Q.isStringLiteralLike(i.arguments[0])&&n(i.arguments[0].text);Q.forEachChild(i,r)},"visit");return r(e),Array.from(t).slice(0,12)}function ut(e,t,n,r,i,o,a,c,d,l,f){if(!o.trim())return;let u=uh(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:fh(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,De(n.capabilityTier)+d)};if(n.symbols.find(h=>h.id===g.id)||n.symbols.length>=nt)return;n.symbols.push(g);let x;Q.isFunctionDeclaration(i)||Q.isMethodDeclaration(i)||Q.isGetAccessorDeclaration(i)||Q.isSetAccessorDeclaration(i)||Q.isFunctionExpression(i)||Q.isArrowFunction(i)?x=i.body??void 0:Q.isVariableDeclaration(i)?x=i.initializer??void 0:(Q.isClassDeclaration(i)||Q.isClassExpression(i))&&(x=i),t.push({record:g,declaration:i,body:x}),l.set(mc(e,i),g)}function hh(e,t){return Q.isPropertyAccessExpression(t)?e.getSymbolAtLocation(t.name)??e.getSymbolAtLocation(t):Q.isElementAccessExpression(t)?e.getSymbolAtLocation(t.argumentExpression)??e.getSymbolAtLocation(t):e.getSymbolAtLocation(t)}async function sR(e,t,n,r,i){let o={allowJs:!0,checkJs:!1,target:Q.ScriptTarget.Latest,module:Q.ModuleKind.ESNext,moduleResolution:Q.ModuleResolutionKind.NodeNext,jsx:Q.JsxEmit.Preserve,skipLibCheck:!0,noEmit:!0,allowSyntheticDefaultImports:!0},a=t.map(m=>so.join(e,m)),c=Q.createProgram(a,o),d=c.getTypeChecker(),l=new Map,f=new Map,u=[];for(let m of t){let g=J(m);if(!It(g))continue;let S=c.getSourceFile(so.join(e,m));if(!S)continue;let x={filePath:m,moduleId:ye(m,n).id,language:g,capabilityTier:ae(g),importPaths:mh(S),symbols:[]};l.set(m,x);for(let h of S.statements){if(Q.isFunctionDeclaration(h)&&h.name){ut(e,u,x,S,h,h.name.text,"function",ft(h),.1,f);continue}if(Q.isVariableStatement(h)){for(let y of h.declarationList.declarations){let k=oo(y.name);k&&y.initializer&&(Q.isArrowFunction(y.initializer)||Q.isFunctionExpression(y.initializer))&&ut(e,u,x,S,y,k,"function",ft(y),.08,f)}continue}if(Q.isClassDeclaration(h)&&h.name){ut(e,u,x,S,h,h.name.text,"class",ft(h),.1,f);for(let y of h.members)(Q.isMethodDeclaration(y)||Q.isGetAccessorDeclaration(y)||Q.isSetAccessorDeclaration(y))&&oo(y.name)&&ut(e,u,x,S,y,oo(y.name),"method",!1,.05,f,h.name.text);continue}if(Q.isInterfaceDeclaration(h)&&h.name){ut(e,u,x,S,h,h.name.text,"interface",ft(h),.09,f);continue}if(Q.isTypeAliasDeclaration(h)&&h.name){ut(e,u,x,S,h,h.name.text,"type",ft(h),.09,f);continue}Q.isEnumDeclaration(h)&&h.name&&ut(e,u,x,S,h,h.name.text,"enum",ft(h),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let k=ur(y,m.record.filePath,r,n,i);k&&g.add(k)}let S=new Set,x=new Map,h=s(y=>{if(Q.isCallExpression(y)||Q.isNewExpression(y)){let k=ph(y.expression);k&&!Re.has(k)&&S.add(k);let R=hh(d,y.expression)?.declarations?.[0];if(R){let P=f.get(mc(e,R));P&&P.id!==m.record.id&&x.set(P.id,{symbolId:P.id,name:P.name,filePath:P.filePath,moduleId:P.moduleId,reason:io(m.record.moduleId,P.moduleId,g)})}}Q.forEachChild(y,h)},"visit");h(m.body??m.declaration),m.record.calls=Array.from(S).slice(0,24),m.record.callTargets=Array.from(x.values()).slice(0,ge),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var gh=p(()=>{"use strict";it();tr();fc();s(oR,"scriptKindFromFilePath");s(uh,"getNodeLine");s(mc,"getDeclarationKey");s(fh,"getSignatureSnippet");s(pc,"hasModifier");s(ft,"isExportedDeclaration");s(oo,"getPropertyNameText");s(ph,"getCallExpressionName");s(mh,"collectTypeScriptImportPaths");s(ut,"registerTypeScriptSymbol");s(hh,"resolveTypeScriptCallSymbol");s(sR,"analyzeTypeScriptFiles")});import Ye from"path";function aR(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function cR(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:ae(n),fileCount:r}))}function dR(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function lR(e,t){return e.map(n=>dR(n,t))}async function ao(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",o=t.preflight,a=o?.storageRoot??await Ai(r,i),c=e.inventory,d=c?null:await Zn(r,n.source),l=o?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(w=>z(w)));if(l&&l.length>0)for(let w of l){let b=Ye.join(r,w);await Ci(b)?f.add(w):f.delete(w)}let u=Array.from(f).sort((w,b)=>w.localeCompare(b)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:S,docFilesByAreaId:x}=pm(u,n.areas),h=u.filter(w=>Ht.has(Ye.extname(w).toLowerCase())),y=new Set(h),k=o?.dirtyPathsFingerprint??(l?Jn(l):void 0),v=o?.dirtySourcePaths?o.dirtySourcePaths.filter(w=>y.has(w)):l?l.filter(w=>y.has(w)):[],R=o?.dirtySourceStateMap??(v.length>0?await tn(r,v,m,n.areas,i):void 0),P=o?.dirtySourceFingerprint??(l?en(R?Array.from(R.values()).sort((w,b)=>w.filePath.localeCompare(b.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Xi(n,u),workspaceSnapshot:o?.workspaceSnapshot??Mi(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:S,docFilesByAreaId:x,sourceFiles:h,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:k,dirtySourceFingerprint:P,dirtySourceStateMap:R,moduleAliases:dh(n.areas),buckets:Aa(h)}}function hc(e,t){return{...e,sourceStates:t,sourceFingerprint:en(t)}}async function Oc(e,t){let n=new Map(t.map(o=>[o,null])),r=Aa(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:o}=await Promise.resolve().then(()=>(gh(),Oh)),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 nh(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 ih(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 oh(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=>ch(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 uR(e,t){return aR(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function co(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=uR(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let k=y.name.toLowerCase(),v=i.get(k)??[];v.push(y),i.set(k,v)}let o=r.map(y=>{let k=new Set;for(let P of y.importPaths){let w=ur(P,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);w&&k.add(w)}let v=y.calls.flatMap(P=>(i.get(P.toLowerCase())??[]).map(w=>({candidate:w,reason:io(y.moduleId,w.moduleId,k)}))).filter(({candidate:P})=>P.id!==y.id).sort((P,w)=>{if(P.reason!==w.reason){let b=["same-module","imported-module","name-match"];return b.indexOf(P.reason)-b.indexOf(w.reason)}return P.candidate.filePath.localeCompare(w.candidate.filePath)}),R=new Map;for(let{candidate:P,reason:w}of v)if(R.has(P.id)||R.set(P.id,{symbolId:P.id,name:P.name,filePath:P.filePath,moduleId:P.moduleId,reason:w}),R.size>=ge)break;return{...y,callTargets:Array.from(R.values())}}),a=lR(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 k=c.get(y.moduleId);if(!k)continue;let v=new Map(k.languageCounts);v.set(y.language,(v.get(y.language)??0)+1);let R=new Set(k.dependencies),P=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?de([...k.entryFiles,y.filePath],4):k.entryFiles;for(let w of y.importPaths){let b=ur(w,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);b&&b!==y.moduleId&&R.add(b)}c.set(y.moduleId,{...k,sourceFileCount:k.sourceFileCount+1,symbolCount:k.symbolCount+y.symbols.length,languageCounts:v,dependencies:R,entryFiles:P})}for(let[y,k]of c.entries())for(let v of k.dependencies){let R=c.get(v);R&&c.set(v,{...R,dependents:new Set([...R.dependents,y])})}let d=Array.from(c.entries()).map(([y,k])=>{let v=e.overview.areas.find(_=>_.id===y);if(!v)return null;let R=Array.from(k.dependencies).sort((_,E)=>_.localeCompare(E)),P=Array.from(k.dependents).sort((_,E)=>_.localeCompare(E)),w=Array.from(k.languageCounts.entries()).map(([_,E])=>({language:_,capabilityTier:ae(_),fileCount:E})).sort((_,E)=>E.fileCount-_.fileCount),b=a.filter(_=>_.moduleId===y);return{moduleId:v.id,label:v.label,kind:v.kind,root:v.root,fileCount:e.filesByAreaId.get(v.id)?.length??0,sourceFileCount:k.sourceFileCount,symbolCount:k.symbolCount,languages:w,topSymbols:b.sort((_,E)=>Number(E.exported)-Number(_.exported)||E.confidence-_.confidence).slice(0,6).map(_=>_.name),dependencies:R,dependents:P,entryFiles:k.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:v.sampleFiles.slice(0,5),processIds:[],confidence:am(b,w)}}).filter(y=>y!==null).sort((y,k)=>k.symbolCount-y.symbolCount||y.moduleId.localeCompare(k.moduleId)),l=lh(d,a),f=new Map;for(let y of l){let k=f.get(y.moduleId)??[];k.push(y.id),f.set(y.moduleId,k)}let u=d.map(y=>({...y,processIds:f.get(y.moduleId)??[]})),m={schemaVersion:B,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:cR(n),modules:u,symbols:a,processes:l},g={schemaVersion:B,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},S={schemaVersion:B,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,hm(t.get(y)??null)]))},x=lm(e),h={schemaVersion:B,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??Jn(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??en([]),dirtySourcePaths:x};return await rt(Ye.join(e.storageRoot,Hp),u),await rt(Ye.join(e.storageRoot,Jp),a),await rt(Ye.join(e.storageRoot,em),l),await rt(Ye.join(e.storageRoot,tt),m),await rt(Ye.join(e.storageRoot,$i),h),dm(e)&&(await rt(Ye.join(e.storageRoot,Ei),g),await rt(Ye.join(e.storageRoot,Ii),S)),m}var yh=p(()=>{"use strict";_i();uc();fc();tr();it();tr();s(aR,"orderedSourceFilesForBuild");s(cR,"collectLanguageBreakdown");s(dR,"calibrateSymbolConfidenceForProfile");s(lR,"calibrateSymbolsForProfile");s(ao,"prepareRepoIntelligenceBuildInputsFromSnapshot");s(hc,"finalizeRepoIntelligenceBuildInputs");s(Oc,"analyzeSourceFilesForBuild");s(uR,"collectOrderedAnalyses");s(co,"materializeRepoIntelligenceIndex")});import pt from"path";async function yc(e){let t=await Ca(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=hc(e,t),r=await Oc(n,n.sourceFiles);return co(n,r)}async function wc(e){return oe(pt.join(e,Ei),rm)}async function wh(e){return oe(pt.join(e,Ii),im)}async function lo(e){return oe(pt.join(e,$i),om)}function Sh(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function bh(e,t,n){return t.schemaVersion===B&&n.schemaVersion===B&&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 fR(e,t){let n=await oe(pt.join(e.storageRoot,tt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function Ph(e,t){return ji(e.workspaceSnapshot)&&Ia(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function vh(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===B&&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 kh(e){if(!ji(e.workspaceSnapshot))return null;let t=await wc(e.storageRoot);if(!t||t.schemaVersion!==B||t.workspaceRoot!==e.workspaceRoot||!Ia(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await oe(pt.join(e.storageRoot,tt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function xh(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await lo(e.storageRoot);if(!t||t.schemaVersion!==B||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 oe(pt.join(e.storageRoot,tt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function uo(e){return new Map(e.map(t=>[t.filePath,t]))}function Sc(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:hc(e,n)}function bc(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 Pc(e,t,n,r){if(!e.sourceStates)return null;let i=uo(e.sourceStates),o=e.analysisProfile==="full"&&Array.from(r).some(d=>{let l=i.get(d);return l?It(l.language):!1}),a=new Set;for(let d of e.sourceStates){if(o&&It(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(!Sh(n.analyses,d.filePath))return null;c.set(d.filePath,Om(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await Oc(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 Th(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 lo(e.storageRoot),o=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=uo(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let S=a.get(g);if(!S){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||o.has(g)){d.add(g);continue}c.set(g,S)}if(d.size>0){let g=new Set;for(let S of d){let x=l.get(S);if(x){c.set(S,x);continue}g.add(S)}if(g.size>0){let S=await tn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[x,h]of S.entries())c.set(x,h)}}let f=Sc(e,c);if(!f?.sourceStates)return null;let u=bc(f.sourceStates,a);if(!u)return null;let m=await Pc(f,a,n,u);return m?co(f,m):null}async function Rh(e,t,n){let r=await tn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=Sc(e,r);if(!i?.sourceStates)return null;let o=uo(t.sourceStates),a=bc(i.sourceStates,o);if(!a)return null;if(a.size===0)return fR(i,t);let c=await Pc(i,o,n,a);return c?co(i,c):null}async function _h(e,t){if(!t)return null;let n=await wh(e.storageRoot);if(!n||!bh(e,t,n))return null;let r=await Th(e,t,n);return r||Rh(e,t,n)}async function gc(e,t=!1){let n=t?null:await wc(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await lo(e.storageRoot):null;if(n&&Ph(e,n)){let i=await oe(pt.join(e.storageRoot,tt),Jt);if(i?.schemaVersion===B&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(vh(e,r)){let i=await oe(pt.join(e.storageRoot,tt),Jt);if(i?.schemaVersion===B&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await _h(e,n);if(i)return i}return yc(e)}async function fr(e,t=!1,n="full"){if(t){let c=await ao(e,{profile:n});return gc(c,!0)}let r=await mm(e,n),i=await kh(r);if(i)return i;let o=await xh(r);if(o)return o;let a=await ao(e,{preflight:r});return gc(a,!1)}async function pR(e,t={}){let n=await Et(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await ao(n,{profile:t.profile??"full"});return yc(r)}async function pr(e,t={}){let n=await Et(e,{targetPath:t.targetPath,refresh:t.refresh});return fr(n,t.refresh===!0,t.profile??"full")}var vc=p(()=>{"use strict";_i();tr();yh();it();s(yc,"buildRepoIntelligenceIndexFromInputs");s(wc,"readRepoIntelligenceManifest");s(wh,"readFileAnalysisIndex");s(lo,"readDirtySourceHint");s(Sh,"hasOwnAnalysisEntry");s(bh,"hasCompatibleIncrementalCache");s(fR,"readCompatibleCachedQueryIndex");s(Ph,"canDirectReuseCleanCachedQueryIndex");s(vh,"canDirectReuseDirtyCachedQueryIndex");s(kh,"tryDirectReuseCleanCachedQueryIndexFromPreflight");s(xh,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");s(uo,"mapSourceStatesByFile");s(Sc,"buildCompleteInputsFromSourceStates");s(bc,"classifyChangedOrNewSourceFiles");s(Pc,"buildIncrementalAnalysisEntries");s(Th,"tryGitDirtyIncrementalRepoIntelligenceBuild");s(Rh,"tryStatBasedIncrementalRepoIntelligenceBuild");s(_h,"tryIncrementalRepoIntelligenceBuild");s(gc,"getRepoIntelligenceIndexFromInputs");s(fr,"getRepoIntelligenceIndexFromSnapshot");s(pR,"buildRepoIntelligenceIndex");s(pr,"getRepoIntelligenceIndex")});import mR 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 Eh(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function dn(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function mr(e,t,n){if(n){let i=z(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 Ih(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 $h(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 fo(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,ge)}function kc(e,t){let n=mr(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:dn(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function xc(e,t){let n=Ih(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:fo(e,r.id),freshness:dn(e),confidence:r.confidence}}function Ch(e,t){let n=$h(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let o=mr(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:dn(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:dn(e),confidence:r.confidence}}function Tc(e,t,n){let r=null,i=[],o=[],a=[],c=.65;if(t.symbol){let l=xc(e,{symbol:t.symbol,module:t.module}),f=de([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=de([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=z(t.path),f=mr(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=>fo(e,m.id)).slice(0,ge),c=f?.confidence??.62}else{let l=mr(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,ge),a=o.flatMap(f=>fo(e,f.id)).slice(0,ge),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 ${de(i.map(l=>l.label),4).join(", ")||"its local module"} and ${o.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:o.slice(0,ge),callers:a.slice(0,ge),changedScope:n,freshness:dn(e),confidence:c}}async function hR(e,t={}){let n=await pr(e,t);return kc(n,t)}async function OR(e,t){let n=await pr(e,t);return xc(n,t)}async function gR(e,t){let n=await pr(e,t);return Ch(n,t)}async function yR(e,t){let n=await Et(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await fr(n,t.refresh===!0,t.profile??"full"),i;try{i=await Ti(n,{scope:"all"})}catch(o){Oe("impact_estimate could not load changed scope.",o),i=void 0}return Tc(r,t,i)}async function wR(e,t={}){let n=await Et(e,{targetPath:t.targetPath,refresh:t.refresh}),r=t.targetPath??(e.executionCwd?".":void 0),[i,o]=await Promise.all([fr(n,t.refresh===!0,t.profile??"full"),Ti(n,{scope:"all"}).catch(b=>(Oe("Routing signals could not load changed scope.",b),null))]),a=null,c=null;try{a=kc(i,{targetPath:r})}catch(b){Oe("Routing signals could not resolve module context.",b)}try{c=Tc(i,{targetPath:r},o??void 0)}catch(b){Oe("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,S=c?.impactedModules.length??(a?1:0),x=Qh(l,f,g,S),h=Eh(l,f,g),y=a?.confidence,k=c?.confidence,v=(y??1)<.72||(k??1)<.72,R=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",P=x==="complex"||x==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,w=v||(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||S>1,reviewScale:h,riskHints:de([...v?["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:k,impactedModuleCount:S,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:R,suggestedComplexity:x,plannerBias:P,investigationBias:w,lowConfidence:v}}var Ah=p(()=>{"use strict";_i();vc();it();s(Qh,"deriveRoutingComplexity");s(Eh,"deriveReviewScale");s(dn,"buildFreshnessLabel");s(mr,"findModuleMatch");s(Ih,"findSymbolMatches");s($h,"findProcessMatches");s(fo,"collectCallers");s(kc,"resolveModuleContextFromIndex");s(xc,"resolveSymbolContextFromIndex");s(Ch,"resolveProcessContextFromIndex");s(Tc,"resolveImpactEstimateFromIndex");s(hR,"getModuleContext");s(OR,"getSymbolContext");s(gR,"getProcessContext");s(yR,"getImpactEstimate");s(wR,"getRepoRoutingSignals")});var Xh=p(()=>{"use strict";vc();Ah()});function Rc(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 SR(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 bR(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 PR(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 vR(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Rc(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...SR(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Rc(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...bR(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Rc(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...PR(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 Mh=p(()=>{"use strict";s(Rc,"scoreCandidate");s(SR,"buildSymbolItem");s(bR,"buildModuleItem");s(PR,"buildProcessItem");s(vR,"collectSemanticLookupItems")});function po(e){return e>=.8?"high":e>=.65?"medium":"low"}function mo(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function kR(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${po(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"}`,...mo(e.capability)].join(`
805
- `)}function xR(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: ${po(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",...mo(e.capability)].join(`
806
- `)}function TR(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: ${po(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",...mo(e.capability)].join(`
807
- `)}function RR(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: ${po(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",...mo(e.capability)].join(`
808
- `)}var jh=p(()=>{"use strict";s(po,"confidenceLabel");s(mo,"capabilityLines");s(kR,"renderModuleContext");s(xR,"renderSymbolContext");s(TR,"renderProcessContext");s(RR,"renderImpactEstimate")});function _R(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 QR(e){return e>=4?"high":e===3?"medium":"low"}function ER(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=_R(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:QR(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 IR(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 Wh=p(()=>{"use strict";s(_R,"tarjanScc");s(QR,"severityFor");s(ER,"findCyclicDependencies");s(IR,"renderCycleAnalysis")});var Fh={};Ac(Fh,{buildCompleteInputsFromSourceStates:()=>Sc,buildFreshnessLabel:()=>dn,buildIncrementalAnalysisEntries:()=>Pc,buildRepoIntelligenceIndex:()=>pR,buildRepoIntelligenceIndexFromInputs:()=>yc,canDirectReuseCleanCachedQueryIndex:()=>Ph,canDirectReuseDirtyCachedQueryIndex:()=>vh,classifyChangedOrNewSourceFiles:()=>bc,collectCallers:()=>fo,collectSemanticLookupItems:()=>vR,deriveReviewScale:()=>Eh,deriveRoutingComplexity:()=>Qh,findCyclicDependencies:()=>ER,findModuleMatch:()=>mr,findProcessMatches:()=>$h,findSymbolMatches:()=>Ih,getImpactEstimate:()=>yR,getModuleContext:()=>hR,getProcessContext:()=>gR,getRepoIntelligenceIndex:()=>pr,getRepoIntelligenceIndexFromInputs:()=>gc,getRepoIntelligenceIndexFromSnapshot:()=>fr,getRepoRoutingSignals:()=>wR,getSymbolContext:()=>OR,hasCompatibleIncrementalCache:()=>bh,hasOwnAnalysisEntry:()=>Sh,mapSourceStatesByFile:()=>uo,readDirtySourceHint:()=>lo,readFileAnalysisIndex:()=>wh,readRepoIntelligenceManifest:()=>wc,renderCycleAnalysis:()=>IR,renderImpactEstimate:()=>RR,renderModuleContext:()=>kR,renderProcessContext:()=>TR,renderSymbolContext:()=>xR,resolveImpactEstimateFromIndex:()=>Tc,resolveModuleContextFromIndex:()=>kc,resolveProcessContextFromIndex:()=>Ch,resolveSymbolContextFromIndex:()=>xc,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>kh,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>xh,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Th,tryIncrementalRepoIntelligenceBuild:()=>_h,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Rh});var Dh=p(()=>{"use strict";Xh();Mh();jh();Wh()});import{parentPort as Ec}from"node:worker_threads";if(!Ec)throw new Error("semantic-worker must run inside a worker thread.");function _c(e){return typeof e=="object"&&e!==null}s(_c,"isRecord");function $R(e){return _c(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&_c(e.context)&&_c(e.options)}s($R,"isRequest");function CR(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}s(CR,"serializeError");async function AR(e){let t=await XR();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(AR,"runRequest");function Nh(e){Ec?.postMessage(e)}s(Nh,"post");var Lh=Promise.resolve(),Qc;function XR(){return Qc||(Qc=import.meta.url.endsWith(".ts")?MR():Promise.resolve().then(()=>(Dh(),Fh))),Qc}s(XR,"loadSemanticIndex");async function MR(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}s(MR,"loadDevSemanticIndex");Ec.on("message",e=>{Lh=Lh.then(async()=>{if($R(e))try{Nh({id:e.id,ok:!0,result:await AR(e)})}catch(n){Nh({id:e.id,ok:!1,error:CR(n)})}}).catch(()=>{})});
802
+ `)}function cR(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||Re.has(o))&&(t.add(o),t.size>=24))break}}return Array.from(t)}function te(e,t,n){let r=`${n.line}:${n.kind}:${n.name}`;t.has(r)||(t.add(r),e.push(n))}function dR(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){te(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){te(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";te(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){te(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&&te(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){te(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:ih(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){te(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&&te(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=fc(u[1]);a.push({name:g,depth:c+be(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(te(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+=be(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&&te(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=be(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(te(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+be(l)}),c+=be(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&&!Re.has(u[1])){let m=i[i.length-1]?.name;te(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=be(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(te(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+be(l)}),c+=be(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&&!Re.has(u[2])){for(te(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=be(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&&!Re.has(u[1])){let m=o[o.length-1]?.name;te(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=be(l);o.length>0&&c<(o[o.length-1]?.depth??0);)o.pop()}}return n.slice(0,rt)}async function uh(e,t,n){let r=ut.join(e,t);if((await dh.stat(r)).size>Zt)return null;let o=await dh.readFile(r,"utf8"),a=o.split(/\r?\n/),c=J(t),d=ae(c),l=tr(o,c),f=dR(a,c),u=Ne(d),m=f.map((g,S,x)=>{let h=aR(a,c,g,x,S),y=g.calls??cR(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 fh(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(ut.posix.basename(n.root).toLowerCase(),n.id);return t}function lR(e,t,n){if(!e.startsWith("."))return null;let r=ut.posix.dirname(t),i;if(e.includes("/"))i=z(ut.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=ut.posix.dirname(d);i=z(ut.posix.join(d,c))}let o=[i];for(let a of Ht)o.push(`${i}${a}`),o.push(`${i}/index${a}`);for(let a of o)if(n.has(a))return a;return null}function fr(e,t,n,r,i){let o=lR(e,t,n);if(o)return ye(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 oo(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function ph(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,im),S=de(g.map(h=>n.get(h.symbolId??"")?.moduleId).filter(h=>typeof h=="string"),4),x=`${o.moduleId}::${ut.posix.basename(d)}`;i.push({id:x,label:`${o.label} entry via ${ut.posix.basename(d)}`,moduleId:o.moduleId,entryFile:d,entrySymbol:l.name,summary:S.length>0?`${l.name} fans into ${de(u.map(h=>h.name),4).join(", ")||"local work"} and touches modules ${S.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 mc=p(()=>{"use strict";ot();pc();s(lh,"countOccurrences");s(be,"countBraceDelta");s(aR,"extractSymbolBody");s(cR,"extractCallNames");s(te,"pushSymbol");s(dR,"extractSymbolsFromLines");s(uh,"analyzeSourceFile");s(fh,"buildModuleAliases");s(lR,"resolveRelativeImport");s(fr,"resolveImportToModule");s(oo,"rankReferenceReason");s(ph,"buildProcessCapsules")});var wh={};Mc(wh,{analyzeTypeScriptFiles:()=>fR,collectTypeScriptImportPaths:()=>gh,getCallExpressionName:()=>Oh,getDeclarationKey:()=>Oc,getNodeLine:()=>mh,getPropertyNameText:()=>so,getSignatureSnippet:()=>hh,hasModifier:()=>hc,isExportedDeclaration:()=>pt,registerTypeScriptSymbol:()=>ft,resolveTypeScriptCallSymbol:()=>yh,scriptKindFromFilePath:()=>uR});import ao from"path";import E from"typescript";function uR(e){switch(ao.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 mh(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function Oc(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${z(ao.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function hh(e,t){let n=t.getStart(e),r=e.text.indexOf(`
803
+ `,n);return e.text.slice(n,r===-1?void 0:r).trim()||t.getText(e).split(/\r?\n/,1)[0]?.trim()||"<unknown>"}function hc(e,t){return E.canHaveModifiers(e)?!!E.getModifiers(e)?.some(n=>n.kind===t):!1}function pt(e){return hc(e,E.SyntaxKind.ExportKeyword)||hc(e,E.SyntaxKind.DefaultKeyword)?!0:E.isVariableDeclaration(e)&&E.isVariableDeclarationList(e.parent)&&E.isVariableStatement(e.parent.parent)?pt(e.parent.parent):!1}function so(e){return e&&(E.isIdentifier(e)||E.isPrivateIdentifier(e)||E.isStringLiteral(e)||E.isNumericLiteral(e))?e.text:null}function Oh(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 gh(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 ft(e,t,n,r,i,o,a,c,d,l,f){if(!o.trim())return;let u=mh(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:hh(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,Ne(n.capabilityTier)+d)};if(n.symbols.find(h=>h.id===g.id)||n.symbols.length>=rt)return;n.symbols.push(g);let x;E.isFunctionDeclaration(i)||E.isMethodDeclaration(i)||E.isGetAccessorDeclaration(i)||E.isSetAccessorDeclaration(i)||E.isFunctionExpression(i)||E.isArrowFunction(i)?x=i.body??void 0:E.isVariableDeclaration(i)?x=i.initializer??void 0:(E.isClassDeclaration(i)||E.isClassExpression(i))&&(x=i),t.push({record:g,declaration:i,body:x}),l.set(Oc(e,i),g)}function yh(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 fR(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=>ao.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=J(m);if(!$t(g))continue;let S=c.getSourceFile(ao.join(e,m));if(!S)continue;let x={filePath:m,moduleId:ye(m,n).id,language:g,capabilityTier:ae(g),importPaths:gh(S),symbols:[]};l.set(m,x);for(let h of S.statements){if(E.isFunctionDeclaration(h)&&h.name){ft(e,u,x,S,h,h.name.text,"function",pt(h),.1,f);continue}if(E.isVariableStatement(h)){for(let y of h.declarationList.declarations){let P=so(y.name);P&&y.initializer&&(E.isArrowFunction(y.initializer)||E.isFunctionExpression(y.initializer))&&ft(e,u,x,S,y,P,"function",pt(y),.08,f)}continue}if(E.isClassDeclaration(h)&&h.name){ft(e,u,x,S,h,h.name.text,"class",pt(h),.1,f);for(let y of h.members)(E.isMethodDeclaration(y)||E.isGetAccessorDeclaration(y)||E.isSetAccessorDeclaration(y))&&so(y.name)&&ft(e,u,x,S,y,so(y.name),"method",!1,.05,f,h.name.text);continue}if(E.isInterfaceDeclaration(h)&&h.name){ft(e,u,x,S,h,h.name.text,"interface",pt(h),.09,f);continue}if(E.isTypeAliasDeclaration(h)&&h.name){ft(e,u,x,S,h,h.name.text,"type",pt(h),.09,f);continue}E.isEnumDeclaration(h)&&h.name&&ft(e,u,x,S,h,h.name.text,"enum",pt(h),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let P=fr(y,m.record.filePath,r,n,i);P&&g.add(P)}let S=new Set,x=new Map,h=s(y=>{if(E.isCallExpression(y)||E.isNewExpression(y)){let P=Oh(y.expression);P&&!Re.has(P)&&S.add(P);let Q=yh(d,y.expression)?.declarations?.[0];if(Q){let T=f.get(Oc(e,Q));T&&T.id!==m.record.id&&x.set(T.id,{symbolId:T.id,name:T.name,filePath:T.filePath,moduleId:T.moduleId,reason:oo(m.record.moduleId,T.moduleId,g)})}}E.forEachChild(y,h)},"visit");h(m.body??m.declaration),m.record.calls=Array.from(S).slice(0,24),m.record.callTargets=Array.from(x.values()).slice(0,ge),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var Sh=p(()=>{"use strict";ot();nr();mc();s(uR,"scriptKindFromFilePath");s(mh,"getNodeLine");s(Oc,"getDeclarationKey");s(hh,"getSignatureSnippet");s(hc,"hasModifier");s(pt,"isExportedDeclaration");s(so,"getPropertyNameText");s(Oh,"getCallExpressionName");s(gh,"collectTypeScriptImportPaths");s(ft,"registerTypeScriptSymbol");s(yh,"resolveTypeScriptCallSymbol");s(fR,"analyzeTypeScriptFiles")});import Ge from"path";function pR(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function mR(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:ae(n),fileCount:r}))}function hR(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function OR(e,t){return e.map(n=>hR(n,t))}async function co(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",o=t.preflight,a=o?.storageRoot??await Xi(r,i),c=e.inventory,d=c?null:await Hn(r,n.source),l=o?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(v=>z(v)));if(l&&l.length>0)for(let v of l){let w=Ge.join(r,v);await Ai(w)?f.add(v):f.delete(v)}let u=Array.from(f).sort((v,w)=>v.localeCompare(w)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:S,docFilesByAreaId:x}=Om(u,n.areas),h=u.filter(v=>Ht.has(Ge.extname(v).toLowerCase())),y=new Set(h),P=o?.dirtyPathsFingerprint??(l?er(l):void 0),b=o?.dirtySourcePaths?o.dirtySourcePaths.filter(v=>y.has(v)):l?l.filter(v=>y.has(v)):[],Q=o?.dirtySourceStateMap??(b.length>0?await tn(r,b,m,n.areas,i):void 0),T=o?.dirtySourceFingerprint??(l?en(Q?Array.from(Q.values()).sort((v,w)=>v.filePath.localeCompare(w.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Mi(n,u),workspaceSnapshot:o?.workspaceSnapshot??ji(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:S,docFilesByAreaId:x,sourceFiles:h,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:P,dirtySourceFingerprint:T,dirtySourceStateMap:Q,moduleAliases:fh(n.areas),buckets:Ma(h)}}function gc(e,t){return{...e,sourceStates:t,sourceFingerprint:en(t)}}async function yc(e,t){let n=new Map(t.map(o=>[o,null])),r=Ma(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:o}=await Promise.resolve().then(()=>(Sh(),wh)),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 ah(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 ch(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=>uh(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 gR(e,t){return pR(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function lo(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=gR(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let P=y.name.toLowerCase(),b=i.get(P)??[];b.push(y),i.set(P,b)}let o=r.map(y=>{let P=new Set;for(let T of y.importPaths){let v=fr(T,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);v&&P.add(v)}let b=y.calls.flatMap(T=>(i.get(T.toLowerCase())??[]).map(v=>({candidate:v,reason:oo(y.moduleId,v.moduleId,P)}))).filter(({candidate:T})=>T.id!==y.id).sort((T,v)=>{if(T.reason!==v.reason){let w=["same-module","imported-module","name-match"];return w.indexOf(T.reason)-w.indexOf(v.reason)}return T.candidate.filePath.localeCompare(v.candidate.filePath)}),Q=new Map;for(let{candidate:T,reason:v}of b)if(Q.has(T.id)||Q.set(T.id,{symbolId:T.id,name:T.name,filePath:T.filePath,moduleId:T.moduleId,reason:v}),Q.size>=ge)break;return{...y,callTargets:Array.from(Q.values())}}),a=OR(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 b=new Map(P.languageCounts);b.set(y.language,(b.get(y.language)??0)+1);let Q=new Set(P.dependencies),T=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?de([...P.entryFiles,y.filePath],4):P.entryFiles;for(let v of y.importPaths){let w=fr(v,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);w&&w!==y.moduleId&&Q.add(w)}c.set(y.moduleId,{...P,sourceFileCount:P.sourceFileCount+1,symbolCount:P.symbolCount+y.symbols.length,languageCounts:b,dependencies:Q,entryFiles:T})}for(let[y,P]of c.entries())for(let b of P.dependencies){let Q=c.get(b);Q&&c.set(b,{...Q,dependents:new Set([...Q.dependents,y])})}let d=Array.from(c.entries()).map(([y,P])=>{let b=e.overview.areas.find(_=>_.id===y);if(!b)return null;let Q=Array.from(P.dependencies).sort((_,k)=>_.localeCompare(k)),T=Array.from(P.dependents).sort((_,k)=>_.localeCompare(k)),v=Array.from(P.languageCounts.entries()).map(([_,k])=>({language:_,capabilityTier:ae(_),fileCount:k})).sort((_,k)=>k.fileCount-_.fileCount),w=a.filter(_=>_.moduleId===y);return{moduleId:b.id,label:b.label,kind:b.kind,root:b.root,fileCount:e.filesByAreaId.get(b.id)?.length??0,sourceFileCount:P.sourceFileCount,symbolCount:P.symbolCount,languages:v,topSymbols:w.sort((_,k)=>Number(k.exported)-Number(_.exported)||k.confidence-_.confidence).slice(0,6).map(_=>_.name),dependencies:Q,dependents:T,entryFiles:P.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:b.sampleFiles.slice(0,5),processIds:[],confidence:lm(w,v)}}).filter(y=>y!==null).sort((y,P)=>P.symbolCount-y.symbolCount||y.moduleId.localeCompare(P.moduleId)),l=ph(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:B,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:mR(n),modules:u,symbols:a,processes:l},g={schemaVersion:B,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},S={schemaVersion:B,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,ym(t.get(y)??null)]))},x=pm(e),h={schemaVersion:B,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??er(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??en([]),dirtySourcePaths:x};return await it(Ge.join(e.storageRoot,tm),u),await it(Ge.join(e.storageRoot,nm),a),await it(Ge.join(e.storageRoot,rm),l),await it(Ge.join(e.storageRoot,nt),m),await it(Ge.join(e.storageRoot,Ci),h),fm(e)&&(await it(Ge.join(e.storageRoot,Ii),g),await it(Ge.join(e.storageRoot,$i),S)),m}var bh=p(()=>{"use strict";Qi();pc();mc();nr();ot();nr();s(pR,"orderedSourceFilesForBuild");s(mR,"collectLanguageBreakdown");s(hR,"calibrateSymbolConfidenceForProfile");s(OR,"calibrateSymbolsForProfile");s(co,"prepareRepoIntelligenceBuildInputsFromSnapshot");s(gc,"finalizeRepoIntelligenceBuildInputs");s(yc,"analyzeSourceFilesForBuild");s(gR,"collectOrderedAnalyses");s(lo,"materializeRepoIntelligenceIndex")});import mt from"path";async function Sc(e){let t=await Xa(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=gc(e,t),r=await yc(n,n.sourceFiles);return lo(n,r)}async function bc(e){return oe(mt.join(e,Ii),sm)}async function Ph(e){return oe(mt.join(e,$i),am)}async function uo(e){return oe(mt.join(e,Ci),cm)}function vh(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function kh(e,t,n){return t.schemaVersion===B&&n.schemaVersion===B&&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 yR(e,t){let n=await oe(mt.join(e.storageRoot,nt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function xh(e,t){return Wi(e.workspaceSnapshot)&&Ca(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function Th(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===B&&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 Rh(e){if(!Wi(e.workspaceSnapshot))return null;let t=await bc(e.storageRoot);if(!t||t.schemaVersion!==B||t.workspaceRoot!==e.workspaceRoot||!Ca(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await oe(mt.join(e.storageRoot,nt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function _h(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await uo(e.storageRoot);if(!t||t.schemaVersion!==B||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 oe(mt.join(e.storageRoot,nt),Jt);return n?.schemaVersion!==B||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function fo(e){return new Map(e.map(t=>[t.filePath,t]))}function Pc(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:gc(e,n)}function vc(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 kc(e,t,n,r){if(!e.sourceStates)return null;let i=fo(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(!vh(n.analyses,d.filePath))return null;c.set(d.filePath,wm(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await yc(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 Qh(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 uo(e.storageRoot),o=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=fo(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let S=a.get(g);if(!S){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||o.has(g)){d.add(g);continue}c.set(g,S)}if(d.size>0){let g=new Set;for(let S of d){let x=l.get(S);if(x){c.set(S,x);continue}g.add(S)}if(g.size>0){let S=await tn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[x,h]of S.entries())c.set(x,h)}}let f=Pc(e,c);if(!f?.sourceStates)return null;let u=vc(f.sourceStates,a);if(!u)return null;let m=await kc(f,a,n,u);return m?lo(f,m):null}async function Eh(e,t,n){let r=await tn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=Pc(e,r);if(!i?.sourceStates)return null;let o=fo(t.sourceStates),a=vc(i.sourceStates,o);if(!a)return null;if(a.size===0)return yR(i,t);let c=await kc(i,o,n,a);return c?lo(i,c):null}async function Ih(e,t){if(!t)return null;let n=await Ph(e.storageRoot);if(!n||!kh(e,t,n))return null;let r=await Qh(e,t,n);return r||Eh(e,t,n)}async function wc(e,t=!1){let n=t?null:await bc(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await uo(e.storageRoot):null;if(n&&xh(e,n)){let i=await oe(mt.join(e.storageRoot,nt),Jt);if(i?.schemaVersion===B&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(Th(e,r)){let i=await oe(mt.join(e.storageRoot,nt),Jt);if(i?.schemaVersion===B&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await Ih(e,n);if(i)return i}return Sc(e)}async function pr(e,t=!1,n="full"){if(t){let c=await co(e,{profile:n});return wc(c,!0)}let r=await gm(e,n),i=await Rh(r);if(i)return i;let o=await _h(r);if(o)return o;let a=await co(e,{preflight:r});return wc(a,!1)}async function wR(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await co(n,{profile:t.profile??"full"});return Sc(r)}async function mr(e,t={}){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh});return pr(n,t.refresh===!0,t.profile??"full")}var xc=p(()=>{"use strict";Qi();nr();bh();ot();s(Sc,"buildRepoIntelligenceIndexFromInputs");s(bc,"readRepoIntelligenceManifest");s(Ph,"readFileAnalysisIndex");s(uo,"readDirtySourceHint");s(vh,"hasOwnAnalysisEntry");s(kh,"hasCompatibleIncrementalCache");s(yR,"readCompatibleCachedQueryIndex");s(xh,"canDirectReuseCleanCachedQueryIndex");s(Th,"canDirectReuseDirtyCachedQueryIndex");s(Rh,"tryDirectReuseCleanCachedQueryIndexFromPreflight");s(_h,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");s(fo,"mapSourceStatesByFile");s(Pc,"buildCompleteInputsFromSourceStates");s(vc,"classifyChangedOrNewSourceFiles");s(kc,"buildIncrementalAnalysisEntries");s(Qh,"tryGitDirtyIncrementalRepoIntelligenceBuild");s(Eh,"tryStatBasedIncrementalRepoIntelligenceBuild");s(Ih,"tryIncrementalRepoIntelligenceBuild");s(wc,"getRepoIntelligenceIndexFromInputs");s(pr,"getRepoIntelligenceIndexFromSnapshot");s(wR,"buildRepoIntelligenceIndex");s(mr,"getRepoIntelligenceIndex")});import SR from"path";function $h(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 Ch(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function dn(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function hr(e,t,n){if(n){let i=z(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||SR.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 Ah(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 Xh(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 po(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,ge)}function Tc(e,t){let n=hr(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:dn(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function Rc(e,t){let n=Ah(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:po(e,r.id),freshness:dn(e),confidence:r.confidence}}function Mh(e,t){let n=Xh(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let o=hr(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:dn(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:dn(e),confidence:r.confidence}}function _c(e,t,n){let r=null,i=[],o=[],a=[],c=.65;if(t.symbol){let l=Rc(e,{symbol:t.symbol,module:t.module}),f=de([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=de([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=z(t.path),f=hr(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=>po(e,m.id)).slice(0,ge),c=f?.confidence??.62}else{let l=hr(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,ge),a=o.flatMap(f=>po(e,f.id)).slice(0,ge),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 ${de(i.map(l=>l.label),4).join(", ")||"its local module"} and ${o.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:o.slice(0,ge),callers:a.slice(0,ge),changedScope:n,freshness:dn(e),confidence:c}}async function bR(e,t={}){let n=await mr(e,t);return Tc(n,t)}async function PR(e,t){let n=await mr(e,t);return Rc(n,t)}async function vR(e,t){let n=await mr(e,t);return Mh(n,t)}async function kR(e,t){let n=await It(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await pr(n,t.refresh===!0,t.profile??"full"),i;try{i=await Ri(n,{scope:"all"})}catch(o){Oe("impact_estimate could not load changed scope.",o),i=void 0}return _c(r,t,i)}async function xR(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([pr(n,t.refresh===!0,t.profile??"full"),Ri(n,{scope:"all"}).catch(w=>(Oe("Routing signals could not load changed scope.",w),null))]),a=null,c=null;try{a=Tc(i,{targetPath:r})}catch(w){Oe("Routing signals could not resolve module context.",w)}try{c=_c(i,{targetPath:r},o??void 0)}catch(w){Oe("Routing signals could not resolve impact estimate.",w)}let d=o?.areasTouched.map(w=>w.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,S=c?.impactedModules.length??(a?1:0),x=$h(l,f,g,S),h=Ch(l,f,g),y=a?.confidence,P=c?.confidence,b=(y??1)<.72||(P??1)<.72,Q=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",T=x==="complex"||x==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,v=b||(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||S>1,reviewScale:h,riskHints:de([...b?["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:S,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:Q,suggestedComplexity:x,plannerBias:T,investigationBias:v,lowConfidence:b}}var jh=p(()=>{"use strict";Qi();xc();ot();s($h,"deriveRoutingComplexity");s(Ch,"deriveReviewScale");s(dn,"buildFreshnessLabel");s(hr,"findModuleMatch");s(Ah,"findSymbolMatches");s(Xh,"findProcessMatches");s(po,"collectCallers");s(Tc,"resolveModuleContextFromIndex");s(Rc,"resolveSymbolContextFromIndex");s(Mh,"resolveProcessContextFromIndex");s(_c,"resolveImpactEstimateFromIndex");s(bR,"getModuleContext");s(PR,"getSymbolContext");s(vR,"getProcessContext");s(kR,"getImpactEstimate");s(xR,"getRepoRoutingSignals")});var Wh=p(()=>{"use strict";xc();jh()});function Qc(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 TR(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 RR(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 _R(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 QR(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Qc(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...TR(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Qc(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...RR(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Qc(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,..._R(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 Fh=p(()=>{"use strict";s(Qc,"scoreCandidate");s(TR,"buildSymbolItem");s(RR,"buildModuleItem");s(_R,"buildProcessItem");s(QR,"collectSemanticLookupItems")});function mo(e){return e>=.8?"high":e>=.65?"medium":"low"}function ho(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function ER(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${mo(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"}`,...ho(e.capability)].join(`
804
+ `)}function IR(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: ${mo(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",...ho(e.capability)].join(`
805
+ `)}function $R(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: ${mo(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",...ho(e.capability)].join(`
806
+ `)}function CR(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: ${mo(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",...ho(e.capability)].join(`
807
+ `)}var Dh=p(()=>{"use strict";s(mo,"confidenceLabel");s(ho,"capabilityLines");s(ER,"renderModuleContext");s(IR,"renderSymbolContext");s($R,"renderProcessContext");s(CR,"renderImpactEstimate")});function AR(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 XR(e){return e>=4?"high":e===3?"medium":"low"}function MR(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=AR(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:XR(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(`
808
+ `)}var Nh=p(()=>{"use strict";s(AR,"tarjanScc");s(XR,"severityFor");s(MR,"findCyclicDependencies");s(jR,"renderCycleAnalysis")});var Lh={};Mc(Lh,{buildCompleteInputsFromSourceStates:()=>Pc,buildFreshnessLabel:()=>dn,buildIncrementalAnalysisEntries:()=>kc,buildRepoIntelligenceIndex:()=>wR,buildRepoIntelligenceIndexFromInputs:()=>Sc,canDirectReuseCleanCachedQueryIndex:()=>xh,canDirectReuseDirtyCachedQueryIndex:()=>Th,classifyChangedOrNewSourceFiles:()=>vc,collectCallers:()=>po,collectSemanticLookupItems:()=>QR,deriveReviewScale:()=>Ch,deriveRoutingComplexity:()=>$h,findCyclicDependencies:()=>MR,findModuleMatch:()=>hr,findProcessMatches:()=>Xh,findSymbolMatches:()=>Ah,getImpactEstimate:()=>kR,getModuleContext:()=>bR,getProcessContext:()=>vR,getRepoIntelligenceIndex:()=>mr,getRepoIntelligenceIndexFromInputs:()=>wc,getRepoIntelligenceIndexFromSnapshot:()=>pr,getRepoRoutingSignals:()=>xR,getSymbolContext:()=>PR,hasCompatibleIncrementalCache:()=>kh,hasOwnAnalysisEntry:()=>vh,mapSourceStatesByFile:()=>fo,readDirtySourceHint:()=>uo,readFileAnalysisIndex:()=>Ph,readRepoIntelligenceManifest:()=>bc,renderCycleAnalysis:()=>jR,renderImpactEstimate:()=>CR,renderModuleContext:()=>ER,renderProcessContext:()=>$R,renderSymbolContext:()=>IR,resolveImpactEstimateFromIndex:()=>_c,resolveModuleContextFromIndex:()=>Tc,resolveProcessContextFromIndex:()=>Mh,resolveSymbolContextFromIndex:()=>Rc,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>Rh,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>_h,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Qh,tryIncrementalRepoIntelligenceBuild:()=>Ih,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Eh});var qh=p(()=>{"use strict";Wh();Fh();Dh();Nh()});import{parentPort as $c}from"node:worker_threads";if(!$c)throw new Error("semantic-worker must run inside a worker thread.");function Ec(e){return typeof e=="object"&&e!==null}s(Ec,"isRecord");function WR(e){return Ec(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&Ec(e.context)&&Ec(e.options)}s(WR,"isRequest");function FR(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}s(FR,"serializeError");async function DR(e){let t=await NR();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(DR,"runRequest");function zh(e){$c?.postMessage(e)}s(zh,"post");var Uh=Promise.resolve(),Ic;function NR(){return Ic||(Ic=import.meta.url.endsWith(".ts")?LR():Promise.resolve().then(()=>(qh(),Lh))),Ic}s(NR,"loadSemanticIndex");async function LR(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}s(LR,"loadDevSemanticIndex");$c.on("message",e=>{Uh=Uh.then(async()=>{if(WR(e))try{zh({id:e.id,ok:!0,result:await DR(e)})}catch(n){zh({id:e.id,ok:!1,error:FR(n)})}}).catch(()=>{})});