From f5ebf32b8cdedda5ce20cedca6c3c66f526ed756 Mon Sep 17 00:00:00 2001 From: maunzCache Date: Sun, 30 Mar 2025 15:04:50 +0200 Subject: [PATCH] feat: update the playground from upstream reference --- docs/index.html | 165 +- docs/playground.js | 294 ++- docs/tree-sitter-hcl.wasm | Bin 199233 -> 93351 bytes docs/vendor/tree-sitter.js | 1 - docs/vendor/tree-sitter.wasm | Bin 177542 -> 203630 bytes docs/vendor/web-tree-sitter.js | 4001 ++++++++++++++++++++++++++++++++ 6 files changed, 4318 insertions(+), 143 deletions(-) delete mode 100644 docs/vendor/tree-sitter.js create mode 100644 docs/vendor/web-tree-sitter.js diff --git a/docs/index.html b/docs/index.html index 43479e8..8d7306d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,83 +1,110 @@ - - - Tree Sitter HCL Playground - - - - + Taken from https://github.com/tree-sitter/tree-sitter/blob/master/docs/src/7-playground.md + --> - - + + -
-

Tree Sitter HCL Playground

-

Code

-
- - +

Tree Sitter HCL Playground

- - + + + + + + + + + + + \ No newline at end of file diff --git a/docs/playground.js b/docs/playground.js index a297500..2eee709 100644 --- a/docs/playground.js +++ b/docs/playground.js @@ -1,49 +1,146 @@ // This file is licensed under MIT license -// Copyright (c) 2018 Max Brunsfeld -// Taken from https://github.com/tree-sitter/tree-sitter/docs/assets/playground.js -let tree; +// Taken from https://github.com/tree-sitter/tree-sitter/docs/src/assets/js/playground.js + +function initializeLocalTheme() { + const themeToggle = document.getElementById('theme-toggle'); + if (!themeToggle) return; + + // Load saved theme or use system preference + const savedTheme = localStorage.getItem('theme'); + const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; + const initialTheme = savedTheme || (prefersDark ? 'dark' : 'light'); + + // Set initial theme + document.documentElement.setAttribute('data-theme', initialTheme); + + themeToggle.addEventListener('click', () => { + const currentTheme = document.documentElement.getAttribute('data-theme'); + const newTheme = currentTheme === 'light' ? 'dark' : 'light'; + document.documentElement.setAttribute('data-theme', newTheme); + localStorage.setItem('theme', newTheme); + }); +} + +function initializeCustomSelect({ initialValue = null, addListeners = false }) { + const button = document.getElementById('language-button'); + const select = document.getElementById('language-select'); + if (!button || !select) return; + + const dropdown = button.nextElementSibling; + const selectedValue = button.querySelector('.selected-value'); + + if (initialValue) { + select.value = initialValue; + } + if (select.selectedIndex >= 0 && select.options[select.selectedIndex]) { + selectedValue.textContent = select.options[select.selectedIndex].text; + } else { + selectedValue.textContent = 'JavaScript'; + } + + if (addListeners) { + button.addEventListener('click', (e) => { + e.preventDefault(); // Prevent form submission + dropdown.classList.toggle('show'); + }); + + document.addEventListener('click', (e) => { + if (!button.contains(e.target)) { + dropdown.classList.remove('show'); + } + }); + + dropdown.querySelectorAll('.option').forEach(option => { + option.addEventListener('click', () => { + selectedValue.textContent = option.textContent; + select.value = option.dataset.value; + dropdown.classList.remove('show'); + + const event = new Event('change'); + select.dispatchEvent(event); + }); + }); + } +} + +window.initializePlayground = async (opts) => { + const { Parser, Language } = window.TreeSitter; + + const { local } = opts; + if (local) { + initializeLocalTheme(); + } + initializeCustomSelect({ addListeners: true }); + + let tree; -(async () => { const CAPTURE_REGEX = /@\s*([\w\._-]+)/g; - const COLORS_BY_INDEX = [ - "blue", - "chocolate", - "darkblue", - "darkcyan", - "darkgreen", - "darkred", - "darkslategray", - "dimgray", - "green", - "indigo", - "navy", - "red", - "sienna", + const LIGHT_COLORS = [ + "#0550ae", // blue + "#ab5000", // rust brown + "#116329", // forest green + "#844708", // warm brown + "#6639ba", // purple + "#7d4e00", // orange brown + "#0969da", // bright blue + "#1a7f37", // green + "#cf222e", // red + "#8250df", // violet + "#6e7781", // gray + "#953800", // dark orange + "#1b7c83" // teal ]; - const scriptURL = document.getElementById("playground-script").src; + const DARK_COLORS = [ + "#79c0ff", // light blue + "#ffa657", // orange + "#7ee787", // light green + "#ff7b72", // salmon + "#d2a8ff", // light purple + "#ffa198", // pink + "#a5d6ff", // pale blue + "#56d364", // bright green + "#ff9492", // light red + "#e0b8ff", // pale purple + "#9ca3af", // gray + "#ffb757", // yellow orange + "#80cbc4" // light teal + ]; const codeInput = document.getElementById("code-input"); + const languageSelect = document.getElementById("language-select"); const loggingCheckbox = document.getElementById("logging-checkbox"); + const anonymousNodes = document.getElementById('anonymous-nodes-checkbox'); const outputContainer = document.getElementById("output-container"); + const createIssueBtn = document.getElementById("create-issue-btn"); const outputContainerScroll = document.getElementById( "output-container-scroll", ); const playgroundContainer = document.getElementById("playground-container"); const queryCheckbox = document.getElementById("query-checkbox"); - const createIssueBtn = document.getElementById("create-issue-btn"); const queryContainer = document.getElementById("query-container"); const queryInput = document.getElementById("query-input"); + const accessibilityCheckbox = document.getElementById("accessibility-checkbox"); const updateTimeSpan = document.getElementById("update-time"); + const languagesByName = {}; loadState(); - await TreeSitter.init(); + await Parser.init(); + + const parser = new Parser(); + + console.log(parser, codeInput, queryInput); - const parser = new TreeSitter(); const codeEditor = CodeMirror.fromTextArea(codeInput, { lineNumbers: true, - showCursorWhenSelecting: true, + showCursorWhenSelecting: true + }); + + codeEditor.on('keydown', (_, event) => { + if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') { + event.stopPropagation(); // Prevent mdBook from going back/forward + } }); const queryEditor = CodeMirror.fromTextArea(queryInput, { @@ -51,6 +148,12 @@ let tree; showCursorWhenSelecting: true, }); + queryEditor.on('keydown', (_, event) => { + if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') { + event.stopPropagation(); // Prevent mdBook from going back/forward + } + }); + const cluster = new Clusterize({ rows: [], noDataText: null, @@ -61,7 +164,7 @@ let tree; const saveStateOnChange = debounce(saveState, 2000); const runTreeQueryOnChange = debounce(runTreeQuery, 50); - let languageName = "hcl"; + let languageName = languageSelect.value; let treeRows = null; let treeRowHighlightedIndex = -1; let parseCount = 0; @@ -74,20 +177,37 @@ let tree; queryEditor.on("changes", debounce(handleQueryChange, 150)); loggingCheckbox.addEventListener("change", handleLoggingChange); + anonymousNodes.addEventListener('change', renderTree); queryCheckbox.addEventListener("change", handleQueryEnableChange); + accessibilityCheckbox.addEventListener("change", handleQueryChange); + languageSelect.addEventListener("change", handleLanguageChange); outputContainer.addEventListener("click", handleTreeClick); createIssueBtn.addEventListener("click", handleCreateIssue); + handleQueryEnableChange(); - await loadLanguage(); + await handleLanguageChange(); playgroundContainer.style.visibility = "visible"; - async function loadLanguage() { - const query = new URL(scriptURL).search; - const url = `tree-sitter-hcl.wasm${query}`; - const language = await TreeSitter.Language.load(url); + async function handleLanguageChange() { + const newLanguageName = languageSelect.value; + if (!languagesByName[newLanguageName]) { + const url = `tree-sitter-${newLanguageName}.wasm`; + languageSelect.disabled = true; + try { + languagesByName[newLanguageName] = await Language.load(url); + } catch (e) { + console.error(e); + languageSelect.value = languageName; + return; + } finally { + languageSelect.disabled = false; + } + } + tree = null; - parser.setLanguage(language); + languageName = newLanguageName; + parser.setLanguage(languagesByName[newLanguageName]); handleCodeChange(); handleQueryChange(); } @@ -127,7 +247,7 @@ let tree; for (let i = 0; ; i++) { if (i > 0 && i % 10000 === 0) { - await new Promise(r => setTimeout(r, 0)); + await new Promise((r) => setTimeout(r, 0)); if (parseCount !== currentRenderCount) { cursor.delete(); isRendering--; @@ -137,9 +257,12 @@ let tree; let displayName; if (cursor.nodeIsMissing) { - displayName = `MISSING ${cursor.nodeType}`; + const nodeTypeText = cursor.nodeIsNamed ? cursor.nodeType : `"${cursor.nodeType}"`; + displayName = `MISSING ${nodeTypeText}`; } else if (cursor.nodeIsNamed) { displayName = cursor.nodeType; + } else if (anonymousNodes.checked) { + displayName = cursor.nodeType } if (visitedChildren) { @@ -165,19 +288,25 @@ let tree; const start = cursor.startPosition; const end = cursor.endPosition; const id = cursor.nodeId; - let fieldName = cursor.currentFieldName(); + let fieldName = cursor.currentFieldName; if (fieldName) { fieldName += ": "; } else { fieldName = ""; } - row = `
${" ".repeat( - indentLevel, - )}${fieldName}${displayName} [${ - start.row - }, ${start.column}] - [${end.row}, ${end.column}])`; + + const nodeClass = + displayName === 'ERROR' || displayName.startsWith('MISSING') + ? 'node-link error' + : cursor.nodeIsNamed + ? 'node-link named' + : 'node-link anonymous'; + + row = `
${" ".repeat(indentLevel)}${fieldName}` + + `` + + `${displayName} ` + + `[${start.row}, ${start.column}] - [${end.row}, ${end.column}]`; finishedRow = true; } @@ -201,6 +330,14 @@ let tree; handleCursorMovement(); } + function getCaptureCSS(name) { + if (accessibilityCheckbox.checked) { + return `color: white; background-color: ${colorForCaptureName(name)}`; + } else { + return `color: ${colorForCaptureName(name)}`; + } + } + function runTreeQuery(_, startRow, endRow) { if (endRow == null) { const viewport = codeEditor.getViewport(); @@ -210,7 +347,7 @@ let tree; codeEditor.operation(() => { const marks = codeEditor.getAllMarks(); - marks.forEach(m => m.clear()); + marks.forEach((m) => m.clear()); if (tree && query) { const captures = query.captures( @@ -229,7 +366,7 @@ let tree; { inclusiveLeft: true, inclusiveRight: true, - css: `color: ${colorForCaptureName(name)}`, + css: getCaptureCSS(name), }, ); } @@ -237,6 +374,21 @@ let tree; }); } + // When we change from a dark theme to a light theme (and vice versa), the colors of the + // captures need to be updated. + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + if (mutation.attributeName === 'class') { + handleQueryChange(); + } + }); + }); + + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class'] + }); + function handleQueryChange() { if (query) { query.delete(); @@ -245,17 +397,17 @@ let tree; } queryEditor.operation(() => { - queryEditor.getAllMarks().forEach(m => m.clear()); + queryEditor.getAllMarks().forEach((m) => m.clear()); if (!queryCheckbox.checked) return; const queryText = queryEditor.getValue(); try { - query = parser.getLanguage().query(queryText); + query = parser.language.query(queryText); let match; let row = 0; - queryEditor.eachLine(line => { + queryEditor.eachLine((line) => { while ((match = CAPTURE_REGEX.exec(line.text))) { queryEditor.markText( { line: row, ch: match.index }, @@ -322,7 +474,7 @@ let tree; "plain", ); } - treeRowHighlightedIndex = treeRows.findIndex(row => + treeRowHighlightedIndex = treeRows.findIndex((row) => row.includes(`data-id=${node.id}`), ); if (treeRowHighlightedIndex !== -1) { @@ -339,9 +491,9 @@ let tree; const containerHeight = outputContainerScroll.clientHeight; const offset = treeRowHighlightedIndex * lineHeight; if (scrollTop > offset - 20) { - $(outputContainerScroll).animate({ scrollTop: offset - 20 }, 150); + outputContainerScroll.animate({ scrollTop: offset - 20 }, 150); } else if (scrollTop < offset + lineHeight + 40 - containerHeight) { - $(outputContainerScroll).animate( + outputContainerScroll.animate( { scrollTop: offset - containerHeight + 40 }, 150, ); @@ -364,7 +516,7 @@ ${outputText} const queryParams = `title=${encodeURIComponent( title, )}&body=${encodeURIComponent(body)}`; - const url = `https://github.com/MichaHoffmann/tree-sitter-hcl/issues/new?${queryParams}`; + const url = `https://github.com/tree-sitter-grammars/tree-sitter-hcl/issues/new?${queryParams}`; window.open(url); } @@ -372,7 +524,7 @@ ${outputText} if (event.target.tagName === "A") { event.preventDefault(); const [startRow, startColumn, endRow, endColumn] = - event.target.dataset.range.split(",").map(n => parseInt(n)); + event.target.dataset.range.split(",").map((n) => parseInt(n)); codeEditor.focus(); codeEditor.setSelection( { line: startRow, ch: startColumn }, @@ -440,43 +592,40 @@ ${outputText} function colorForCaptureName(capture) { const id = query.captureNames.indexOf(capture); - return COLORS_BY_INDEX[id % COLORS_BY_INDEX.length]; - } + const isDark = document.querySelector('html').classList.contains('ayu') || + document.querySelector('html').classList.contains('coal') || + document.querySelector('html').classList.contains('navy'); - function storageGetItem(lookupKey) { - try { - return localStorage.getItem(lookupKey); - } catch { - return null; - } - } - - function storageSetItem(lookupKey, value) { - try { - return localStorage.setIem(lookupKey, value); - } catch {} + const colors = isDark ? DARK_COLORS : LIGHT_COLORS; + return colors[id % colors.length]; } function loadState() { - const language = storageGetItem("language"); - const sourceCode = storageGetItem("sourceCode"); - const query = storageGetItem("query"); - const queryEnabled = storageGetItem("queryEnabled"); + const language = localStorage.getItem("language"); + const sourceCode = localStorage.getItem("sourceCode"); + const anonNodes = localStorage.getItem("anonymousNodes"); + const query = localStorage.getItem("query"); + const queryEnabled = localStorage.getItem("queryEnabled"); if (language != null && sourceCode != null && query != null) { queryInput.value = query; codeInput.value = sourceCode; + languageSelect.value = language; + initializeCustomSelect({ initialValue: language }); + anonymousNodes.checked = anonNodes === "true"; queryCheckbox.checked = queryEnabled === "true"; } } function saveState() { - storageSetItem("sourceCode", codeEditor.getValue()); + localStorage.setItem("language", languageSelect.value); + localStorage.setItem("sourceCode", codeEditor.getValue()); + localStorage.setItem("anonymousNodes", anonymousNodes.checked); saveQueryState(); } function saveQueryState() { - storageSetItem("queryEnabled", queryCheckbox.checked); - storageSetItem("query", queryEditor.getValue()); + localStorage.setItem("queryEnabled", queryCheckbox.checked); + localStorage.setItem("query", queryEditor.getValue()); } function debounce(func, wait, immediate) { @@ -494,5 +643,4 @@ ${outputText} if (callNow) func.apply(context, args); }; } -})(); - +}; \ No newline at end of file diff --git a/docs/tree-sitter-hcl.wasm b/docs/tree-sitter-hcl.wasm index 024376f8c8657d327105a0134d472e79ba7db568..e51f16a4cb24f1a0a31d32b9f9763b931ed8b1c7 100755 GIT binary patch literal 93351 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

&n4{2LJdQW*aZgg*--{~k>H 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 vVILEuwFYXrGqEr*^sq26d|+W{var r,n={};for(r in Module)Module.hasOwnProperty(r)&&(n[r]=Module[r]);var s,o,_=[],a="./this.program",u=function(e,t){throw t},i=!1,l=!1;i="object"==typeof window,l="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o=!i&&!s&&!l;var d,c,m,f,p,h="";s?(h=l?require("path").dirname(h)+"/":__dirname+"/",d=function(e,t){return f||(f=require("fs")),p||(p=require("path")),e=p.normalize(e),f.readFileSync(e,t?null:"utf8")},m=function(e){var t=d(e,!0);return t.buffer||(t=new Uint8Array(t)),k(t.buffer),t},process.argv.length>1&&(a=process.argv[1].replace(/\\/g,"/")),_=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),u=function(e){process.exit(e)},Module.inspect=function(){return"[Emscripten Module object]"}):o?("undefined"!=typeof read&&(d=function(e){return read(e)}),m=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(k("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?_=scriptArgs:void 0!==arguments&&(_=arguments),"function"==typeof quit&&(u=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(i||l)&&(l?h=self.location.href:void 0!==t&&t.currentScript&&(h=t.currentScript.src),h=0!==h.indexOf("blob:")?h.substr(0,h.lastIndexOf("/")+1):"",d=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},l&&(m=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),c=function(e,t,r){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)});Module.print||console.log.bind(console);var g=Module.printErr||console.warn.bind(console);for(r in n)n.hasOwnProperty(r)&&(Module[r]=n[r]);n=null,Module.arguments&&(_=Module.arguments),Module.thisProgram&&(a=Module.thisProgram),Module.quit&&(u=Module.quit);var w=16;var y,M=[];function b(e,t){if(!y){y=new WeakMap;for(var r=0;r>0]=t;break;case"i16":L[e>>1]=t;break;case"i32":W[e>>2]=t;break;case"i64":ue=[t>>>0,(ae=t,+Math.abs(ae)>=1?ae>0?(0|Math.min(+Math.floor(ae/4294967296),4294967295))>>>0:~~+Math.ceil((ae-+(~~ae>>>0))/4294967296)>>>0:0)],W[e>>2]=ue[0],W[e+4>>2]=ue[1];break;case"float":O[e>>2]=t;break;case"double":Z[e>>3]=t;break;default:oe("invalid type for setValue: "+r)}}function N(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return R[e>>0];case"i16":return L[e>>1];case"i32":case"i64":return W[e>>2];case"float":return O[e>>2];case"double":return Z[e>>3];default:oe("invalid type for getValue: "+t)}return null}"object"!=typeof WebAssembly&&oe("no native wasm support detected");var P=!1;function k(e,t){e||oe("Assertion failed: "+t)}var C=1;var q,R,T,L,W,O,Z,F="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function $(e,t,r){for(var n=t+r,s=t;e[s]&&!(s>=n);)++s;if(s-t>16&&e.subarray&&F)return F.decode(e.subarray(t,s));for(var o="";t>10,56320|1023&i)}}else o+=String.fromCharCode((31&_)<<6|a)}else o+=String.fromCharCode(_)}return o}function j(e,t){return e?$(T,e,t):""}function U(e,t,r,n){if(!(n>0))return 0;for(var s=r,o=r+n-1,_=0;_=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++_);if(a<=127){if(r>=o)break;t[r++]=a}else if(a<=2047){if(r+1>=o)break;t[r++]=192|a>>6,t[r++]=128|63&a}else if(a<=65535){if(r+2>=o)break;t[r++]=224|a>>12,t[r++]=128|a>>6&63,t[r++]=128|63&a}else{if(r+3>=o)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63,t[r++]=128|a>>6&63,t[r++]=128|63&a}}return t[r]=0,r-s}function D(e,t,r){return U(e,T,t,r)}function z(e){for(var t=0,r=0;r=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}function G(e){var t=z(e)+1,r=ze(t);return U(e,R,r,t),r}function H(e){q=e,Module.HEAP8=R=new Int8Array(e),Module.HEAP16=L=new Int16Array(e),Module.HEAP32=W=new Int32Array(e),Module.HEAPU8=T=new Uint8Array(e),Module.HEAPU16=new Uint16Array(e),Module.HEAPU32=new Uint32Array(e),Module.HEAPF32=O=new Float32Array(e),Module.HEAPF64=Z=new Float64Array(e)}var B=Module.INITIAL_MEMORY||33554432;(A=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:B/65536,maximum:32768}))&&(q=A.buffer),B=q.byteLength,H(q);var K=new WebAssembly.Table({initial:17,element:"anyfunc"}),V=[],X=[],Q=[],J=[],Y=!1;var ee=0,te=null,re=null;function ne(e){ee++,Module.monitorRunDependencies&&Module.monitorRunDependencies(ee)}function se(e){if(ee--,Module.monitorRunDependencies&&Module.monitorRunDependencies(ee),0==ee&&(null!==te&&(clearInterval(te),te=null),re)){var t=re;re=null,t()}}function oe(e){throw Module.onAbort&&Module.onAbort(e),g(e+=""),P=!0,1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}Module.preloadedImages={},Module.preloadedAudios={},Module.preloadedWasm={};var _e,ae,ue,ie="data:application/octet-stream;base64,";function le(e){return e.startsWith(ie)}function de(e){return e.startsWith("file://")}function ce(e){try{if(e==_e&&v)return new Uint8Array(v);if(m)return m(e);throw"both async and sync fetching of the wasm failed"}catch(e){oe(e)}}le(_e="tree-sitter.wasm")||(_e=function(e){return Module.locateFile?Module.locateFile(e,h):h+e}(_e));var me={},fe={get:function(e,t){return me[t]||(me[t]=new WebAssembly.Global({value:"i32",mutable:!0})),me[t]}};function pe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?K.get(r)():K.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(Module)}}function he(e){var t=0;function r(){for(var r=0,n=1;;){var s=e[t++];if(r+=(127&s)*n,n*=128,!(128&s))break}return r}if(e instanceof WebAssembly.Module){var n=WebAssembly.Module.customSections(e,"dylink");k(0!=n.length,"need dylink section"),e=new Int8Array(n[0])}else{k(1836278016==new Uint32Array(new Uint8Array(e.subarray(0,24)).buffer)[0],"need to see wasm magic number"),k(0===e[8],"need the dylink section to be first"),t=9,r(),k(6===e[t]),k(e[++t]==="d".charCodeAt(0)),k(e[++t]==="y".charCodeAt(0)),k(e[++t]==="l".charCodeAt(0)),k(e[++t]==="i".charCodeAt(0)),k(e[++t]==="n".charCodeAt(0)),k(e[++t]==="k".charCodeAt(0)),t++}var s={};s.memorySize=r(),s.memoryAlign=r(),s.tableSize=r(),s.tableAlign=r();var o=r();s.neededDynlibs=[];for(var _=0;_0}function ye(e){return 0==e.indexOf("dynCall_")||["stackAlloc","stackSave","stackRestore"].includes(e)?e:"_"+e}function Me(e,t){for(var r in e)if(e.hasOwnProperty(r)){Fe.hasOwnProperty(r)||(Fe[r]=e[r]);var n=ye(r);Module.hasOwnProperty(n)||(Module[n]=e[r])}}var be={nextHandle:1,loadedLibs:{},loadedLibNames:{}};function ve(e,t,r){return e.includes("j")?function(e,t,r){var n=Module["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)}(e,t,r):K.get(t).apply(null,r)}var Ee=5250880;function Ie(e){return["__cpp_exception","__wasm_apply_data_relocs","__dso_handle","__set_stack_limits"].includes(e)}function Ae(e,t){var r={};for(var n in e){var s=e[n];"object"==typeof s&&(s=s.value),"number"==typeof s&&(s+=t),r[n]=s}return function(e){for(var t in e)if(!Ie(t)){var r=!1,n=e[t];t.startsWith("orig$")&&(t=t.split("$")[1],r=!0),me[t]||(me[t]=new WebAssembly.Global({value:"i32",mutable:!0})),(r||0==me[t].value)&&("function"==typeof n?me[t].value=b(n):"number"==typeof n?me[t].value=n:g("unhandled export type for `"+t+"`: "+typeof n))}}(r),r}function Se(e,t){var r,n;return t&&(r=Fe["orig$"+e]),r||(r=Fe[e]),r||(r=Module[ye(e)]),!r&&e.startsWith("invoke_")&&(n=e.split("_")[1],r=function(){var e=Ue();try{return ve(n,arguments[0],Array.prototype.slice.call(arguments,1))}catch(t){if(De(e),t!==t+0&&"longjmp"!==t)throw t;Ge(1,0)}}),r}function xe(e,t){var r=he(e);function n(){var n=Math.pow(2,r.memoryAlign);n=Math.max(n,w);var s,o,_,a=(s=function(e){if(Y)return $e(e);var t=Ee,r=t+e+15&-16;return Ee=r,me.__heap_base.value=r,t}(r.memorySize+n),(o=n)||(o=w),Math.ceil(s/o)*o),u=K.length;K.grow(r.tableSize);for(var i=a;i>2]=n,-1;r=ke()}return W[t>>2]=r/1e3|0,W[t+4>>2]=r%1e3*1e3*1e3|0,0}function Le(e){try{return A.grow(e-q.byteLength+65535>>>16),H(A.buffer),1}catch(e){}}function We(e){Ve(e)}function Oe(e){E(e)}Te.sig="iii",We.sig="vi",Oe.sig="vi";var Ze,Fe={__heap_base:Ee,__indirect_function_table:K,__memory_base:1024,__stack_pointer:Ce,__table_base:1,abort:qe,clock_gettime:Te,emscripten_memcpy_big:function(e,t,r){T.copyWithin(e,t,t+r)},emscripten_resize_heap:function(e){var t,r,n=T.length;if((e>>>=0)>2147483648)return!1;for(var s=1;s<=4;s*=2){var o=n*(1+.2/s);if(o=Math.min(o,e+100663296),Le(Math.min(2147483648,((t=Math.max(e,o))%(r=65536)>0&&(t+=r-t%r),t))))return!0}return!1},exit:We,memory:A,setTempRet0:Oe,tree_sitter_log_callback:function(e,t){if(ct){const r=j(t);ct(r,0!==e)}},tree_sitter_parse_callback:function(e,t,r,n,s){var o=dt(t,{row:r,column:n});"string"==typeof o?(x(s,o.length,"i32"),function(e,t,r){if(void 0===r&&(r=2147483647),r<2)return 0;for(var n=(r-=2)<2*e.length?r/2:e.length,s=0;s>1]=o,t+=2}L[t>>1]=0}(o,e,10240)):x(s,0,"i32")}},$e=(function(){var e={env:Fe,wasi_snapshot_preview1:Fe,"GOT.mem":new Proxy(Fe,fe),"GOT.func":new Proxy(Fe,fe)};function t(e,t){var r=e.exports;r=Ae(r,1024),Module.asm=r;var n,s=he(t);s.neededDynlibs&&(I=s.neededDynlibs.concat(I)),Me(r),n=Module.asm.__wasm_call_ctors,X.unshift(n),se()}function r(e){t(e.instance,e.module)}function n(t){return function(){if(!v&&(i||l)){if("function"==typeof fetch&&!de(_e))return fetch(_e,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+_e+"'";return e.arrayBuffer()}).catch(function(){return ce(_e)});if(c)return new Promise(function(e,t){c(_e,function(t){e(new Uint8Array(t))},t)})}return Promise.resolve().then(function(){return ce(_e)})}().then(function(t){return WebAssembly.instantiate(t,e)}).then(t,function(e){g("failed to asynchronously prepare wasm: "+e),oe(e)})}if(ne(),Module.instantiateWasm)try{return Module.instantiateWasm(e,t)}catch(e){return g("Module.instantiateWasm callback failed with error: "+e),!1}v||"function"!=typeof WebAssembly.instantiateStreaming||le(_e)||de(_e)||"function"!=typeof fetch?n(r):fetch(_e,{credentials:"same-origin"}).then(function(t){return WebAssembly.instantiateStreaming(t,e).then(r,function(e){return g("wasm streaming compile failed: "+e),g("falling back to ArrayBuffer instantiation"),n(r)})})}(),Module.___wasm_call_ctors=function(){return(Module.___wasm_call_ctors=Module.asm.__wasm_call_ctors).apply(null,arguments)},Module._malloc=function(){return($e=Module._malloc=Module.asm.malloc).apply(null,arguments)}),je=(Module._calloc=function(){return(Module._calloc=Module.asm.calloc).apply(null,arguments)},Module._realloc=function(){return(Module._realloc=Module.asm.realloc).apply(null,arguments)},Module._free=function(){return(Module._free=Module.asm.free).apply(null,arguments)},Module._ts_language_symbol_count=function(){return(Module._ts_language_symbol_count=Module.asm.ts_language_symbol_count).apply(null,arguments)},Module._ts_language_version=function(){return(Module._ts_language_version=Module.asm.ts_language_version).apply(null,arguments)},Module._ts_language_field_count=function(){return(Module._ts_language_field_count=Module.asm.ts_language_field_count).apply(null,arguments)},Module._ts_language_symbol_name=function(){return(Module._ts_language_symbol_name=Module.asm.ts_language_symbol_name).apply(null,arguments)},Module._ts_language_symbol_for_name=function(){return(Module._ts_language_symbol_for_name=Module.asm.ts_language_symbol_for_name).apply(null,arguments)},Module._ts_language_symbol_type=function(){return(Module._ts_language_symbol_type=Module.asm.ts_language_symbol_type).apply(null,arguments)},Module._ts_language_field_name_for_id=function(){return(Module._ts_language_field_name_for_id=Module.asm.ts_language_field_name_for_id).apply(null,arguments)},Module._memcpy=function(){return(Module._memcpy=Module.asm.memcpy).apply(null,arguments)},Module._ts_parser_delete=function(){return(Module._ts_parser_delete=Module.asm.ts_parser_delete).apply(null,arguments)},Module._ts_parser_reset=function(){return(Module._ts_parser_reset=Module.asm.ts_parser_reset).apply(null,arguments)},Module._ts_parser_set_language=function(){return(Module._ts_parser_set_language=Module.asm.ts_parser_set_language).apply(null,arguments)},Module._ts_parser_timeout_micros=function(){return(Module._ts_parser_timeout_micros=Module.asm.ts_parser_timeout_micros).apply(null,arguments)},Module._ts_parser_set_timeout_micros=function(){return(Module._ts_parser_set_timeout_micros=Module.asm.ts_parser_set_timeout_micros).apply(null,arguments)},Module._memmove=function(){return(Module._memmove=Module.asm.memmove).apply(null,arguments)},Module._memcmp=function(){return(Module._memcmp=Module.asm.memcmp).apply(null,arguments)},Module._ts_query_new=function(){return(Module._ts_query_new=Module.asm.ts_query_new).apply(null,arguments)},Module._ts_query_delete=function(){return(Module._ts_query_delete=Module.asm.ts_query_delete).apply(null,arguments)},Module._iswspace=function(){return(Module._iswspace=Module.asm.iswspace).apply(null,arguments)},Module._iswalnum=function(){return(Module._iswalnum=Module.asm.iswalnum).apply(null,arguments)},Module._ts_query_pattern_count=function(){return(Module._ts_query_pattern_count=Module.asm.ts_query_pattern_count).apply(null,arguments)},Module._ts_query_capture_count=function(){return(Module._ts_query_capture_count=Module.asm.ts_query_capture_count).apply(null,arguments)},Module._ts_query_string_count=function(){return(Module._ts_query_string_count=Module.asm.ts_query_string_count).apply(null,arguments)},Module._ts_query_capture_name_for_id=function(){return(Module._ts_query_capture_name_for_id=Module.asm.ts_query_capture_name_for_id).apply(null,arguments)},Module._ts_query_string_value_for_id=function(){return(Module._ts_query_string_value_for_id=Module.asm.ts_query_string_value_for_id).apply(null,arguments)},Module._ts_query_predicates_for_pattern=function(){return(Module._ts_query_predicates_for_pattern=Module.asm.ts_query_predicates_for_pattern).apply(null,arguments)},Module._ts_tree_copy=function(){return(Module._ts_tree_copy=Module.asm.ts_tree_copy).apply(null,arguments)},Module._ts_tree_delete=function(){return(Module._ts_tree_delete=Module.asm.ts_tree_delete).apply(null,arguments)},Module._ts_init=function(){return(Module._ts_init=Module.asm.ts_init).apply(null,arguments)},Module._ts_parser_new_wasm=function(){return(Module._ts_parser_new_wasm=Module.asm.ts_parser_new_wasm).apply(null,arguments)},Module._ts_parser_enable_logger_wasm=function(){return(Module._ts_parser_enable_logger_wasm=Module.asm.ts_parser_enable_logger_wasm).apply(null,arguments)},Module._ts_parser_parse_wasm=function(){return(Module._ts_parser_parse_wasm=Module.asm.ts_parser_parse_wasm).apply(null,arguments)},Module._ts_language_type_is_named_wasm=function(){return(Module._ts_language_type_is_named_wasm=Module.asm.ts_language_type_is_named_wasm).apply(null,arguments)},Module._ts_language_type_is_visible_wasm=function(){return(Module._ts_language_type_is_visible_wasm=Module.asm.ts_language_type_is_visible_wasm).apply(null,arguments)},Module._ts_tree_root_node_wasm=function(){return(Module._ts_tree_root_node_wasm=Module.asm.ts_tree_root_node_wasm).apply(null,arguments)},Module._ts_tree_edit_wasm=function(){return(Module._ts_tree_edit_wasm=Module.asm.ts_tree_edit_wasm).apply(null,arguments)},Module._ts_tree_get_changed_ranges_wasm=function(){return(Module._ts_tree_get_changed_ranges_wasm=Module.asm.ts_tree_get_changed_ranges_wasm).apply(null,arguments)},Module._ts_tree_cursor_new_wasm=function(){return(Module._ts_tree_cursor_new_wasm=Module.asm.ts_tree_cursor_new_wasm).apply(null,arguments)},Module._ts_tree_cursor_delete_wasm=function(){return(Module._ts_tree_cursor_delete_wasm=Module.asm.ts_tree_cursor_delete_wasm).apply(null,arguments)},Module._ts_tree_cursor_reset_wasm=function(){return(Module._ts_tree_cursor_reset_wasm=Module.asm.ts_tree_cursor_reset_wasm).apply(null,arguments)},Module._ts_tree_cursor_goto_first_child_wasm=function(){return(Module._ts_tree_cursor_goto_first_child_wasm=Module.asm.ts_tree_cursor_goto_first_child_wasm).apply(null,arguments)},Module._ts_tree_cursor_goto_next_sibling_wasm=function(){return(Module._ts_tree_cursor_goto_next_sibling_wasm=Module.asm.ts_tree_cursor_goto_next_sibling_wasm).apply(null,arguments)},Module._ts_tree_cursor_goto_parent_wasm=function(){return(Module._ts_tree_cursor_goto_parent_wasm=Module.asm.ts_tree_cursor_goto_parent_wasm).apply(null,arguments)},Module._ts_tree_cursor_current_node_type_id_wasm=function(){return(Module._ts_tree_cursor_current_node_type_id_wasm=Module.asm.ts_tree_cursor_current_node_type_id_wasm).apply(null,arguments)},Module._ts_tree_cursor_current_node_is_named_wasm=function(){return(Module._ts_tree_cursor_current_node_is_named_wasm=Module.asm.ts_tree_cursor_current_node_is_named_wasm).apply(null,arguments)},Module._ts_tree_cursor_current_node_is_missing_wasm=function(){return(Module._ts_tree_cursor_current_node_is_missing_wasm=Module.asm.ts_tree_cursor_current_node_is_missing_wasm).apply(null,arguments)},Module._ts_tree_cursor_current_node_id_wasm=function(){return(Module._ts_tree_cursor_current_node_id_wasm=Module.asm.ts_tree_cursor_current_node_id_wasm).apply(null,arguments)},Module._ts_tree_cursor_start_position_wasm=function(){return(Module._ts_tree_cursor_start_position_wasm=Module.asm.ts_tree_cursor_start_position_wasm).apply(null,arguments)},Module._ts_tree_cursor_end_position_wasm=function(){return(Module._ts_tree_cursor_end_position_wasm=Module.asm.ts_tree_cursor_end_position_wasm).apply(null,arguments)},Module._ts_tree_cursor_start_index_wasm=function(){return(Module._ts_tree_cursor_start_index_wasm=Module.asm.ts_tree_cursor_start_index_wasm).apply(null,arguments)},Module._ts_tree_cursor_end_index_wasm=function(){return(Module._ts_tree_cursor_end_index_wasm=Module.asm.ts_tree_cursor_end_index_wasm).apply(null,arguments)},Module._ts_tree_cursor_current_field_id_wasm=function(){return(Module._ts_tree_cursor_current_field_id_wasm=Module.asm.ts_tree_cursor_current_field_id_wasm).apply(null,arguments)},Module._ts_tree_cursor_current_node_wasm=function(){return(Module._ts_tree_cursor_current_node_wasm=Module.asm.ts_tree_cursor_current_node_wasm).apply(null,arguments)},Module._ts_node_symbol_wasm=function(){return(Module._ts_node_symbol_wasm=Module.asm.ts_node_symbol_wasm).apply(null,arguments)},Module._ts_node_child_count_wasm=function(){return(Module._ts_node_child_count_wasm=Module.asm.ts_node_child_count_wasm).apply(null,arguments)},Module._ts_node_named_child_count_wasm=function(){return(Module._ts_node_named_child_count_wasm=Module.asm.ts_node_named_child_count_wasm).apply(null,arguments)},Module._ts_node_child_wasm=function(){return(Module._ts_node_child_wasm=Module.asm.ts_node_child_wasm).apply(null,arguments)},Module._ts_node_named_child_wasm=function(){return(Module._ts_node_named_child_wasm=Module.asm.ts_node_named_child_wasm).apply(null,arguments)},Module._ts_node_child_by_field_id_wasm=function(){return(Module._ts_node_child_by_field_id_wasm=Module.asm.ts_node_child_by_field_id_wasm).apply(null,arguments)},Module._ts_node_next_sibling_wasm=function(){return(Module._ts_node_next_sibling_wasm=Module.asm.ts_node_next_sibling_wasm).apply(null,arguments)},Module._ts_node_prev_sibling_wasm=function(){return(Module._ts_node_prev_sibling_wasm=Module.asm.ts_node_prev_sibling_wasm).apply(null,arguments)},Module._ts_node_next_named_sibling_wasm=function(){return(Module._ts_node_next_named_sibling_wasm=Module.asm.ts_node_next_named_sibling_wasm).apply(null,arguments)},Module._ts_node_prev_named_sibling_wasm=function(){return(Module._ts_node_prev_named_sibling_wasm=Module.asm.ts_node_prev_named_sibling_wasm).apply(null,arguments)},Module._ts_node_parent_wasm=function(){return(Module._ts_node_parent_wasm=Module.asm.ts_node_parent_wasm).apply(null,arguments)},Module._ts_node_descendant_for_index_wasm=function(){return(Module._ts_node_descendant_for_index_wasm=Module.asm.ts_node_descendant_for_index_wasm).apply(null,arguments)},Module._ts_node_named_descendant_for_index_wasm=function(){return(Module._ts_node_named_descendant_for_index_wasm=Module.asm.ts_node_named_descendant_for_index_wasm).apply(null,arguments)},Module._ts_node_descendant_for_position_wasm=function(){return(Module._ts_node_descendant_for_position_wasm=Module.asm.ts_node_descendant_for_position_wasm).apply(null,arguments)},Module._ts_node_named_descendant_for_position_wasm=function(){return(Module._ts_node_named_descendant_for_position_wasm=Module.asm.ts_node_named_descendant_for_position_wasm).apply(null,arguments)},Module._ts_node_start_point_wasm=function(){return(Module._ts_node_start_point_wasm=Module.asm.ts_node_start_point_wasm).apply(null,arguments)},Module._ts_node_end_point_wasm=function(){return(Module._ts_node_end_point_wasm=Module.asm.ts_node_end_point_wasm).apply(null,arguments)},Module._ts_node_start_index_wasm=function(){return(Module._ts_node_start_index_wasm=Module.asm.ts_node_start_index_wasm).apply(null,arguments)},Module._ts_node_end_index_wasm=function(){return(Module._ts_node_end_index_wasm=Module.asm.ts_node_end_index_wasm).apply(null,arguments)},Module._ts_node_to_string_wasm=function(){return(Module._ts_node_to_string_wasm=Module.asm.ts_node_to_string_wasm).apply(null,arguments)},Module._ts_node_children_wasm=function(){return(Module._ts_node_children_wasm=Module.asm.ts_node_children_wasm).apply(null,arguments)},Module._ts_node_named_children_wasm=function(){return(Module._ts_node_named_children_wasm=Module.asm.ts_node_named_children_wasm).apply(null,arguments)},Module._ts_node_descendants_of_type_wasm=function(){return(Module._ts_node_descendants_of_type_wasm=Module.asm.ts_node_descendants_of_type_wasm).apply(null,arguments)},Module._ts_node_is_named_wasm=function(){return(Module._ts_node_is_named_wasm=Module.asm.ts_node_is_named_wasm).apply(null,arguments)},Module._ts_node_has_changes_wasm=function(){return(Module._ts_node_has_changes_wasm=Module.asm.ts_node_has_changes_wasm).apply(null,arguments)},Module._ts_node_has_error_wasm=function(){return(Module._ts_node_has_error_wasm=Module.asm.ts_node_has_error_wasm).apply(null,arguments)},Module._ts_node_is_missing_wasm=function(){return(Module._ts_node_is_missing_wasm=Module.asm.ts_node_is_missing_wasm).apply(null,arguments)},Module._ts_query_matches_wasm=function(){return(Module._ts_query_matches_wasm=Module.asm.ts_query_matches_wasm).apply(null,arguments)},Module._ts_query_captures_wasm=function(){return(Module._ts_query_captures_wasm=Module.asm.ts_query_captures_wasm).apply(null,arguments)},Module._iswdigit=function(){return(Module._iswdigit=Module.asm.iswdigit).apply(null,arguments)},Module._iswalpha=function(){return(Module._iswalpha=Module.asm.iswalpha).apply(null,arguments)},Module._iswlower=function(){return(Module._iswlower=Module.asm.iswlower).apply(null,arguments)},Module._towupper=function(){return(Module._towupper=Module.asm.towupper).apply(null,arguments)},Module.___errno_location=function(){return(je=Module.___errno_location=Module.asm.__errno_location).apply(null,arguments)}),Ue=(Module._memchr=function(){return(Module._memchr=Module.asm.memchr).apply(null,arguments)},Module._strlen=function(){return(Module._strlen=Module.asm.strlen).apply(null,arguments)},Module.stackSave=function(){return(Ue=Module.stackSave=Module.asm.stackSave).apply(null,arguments)}),De=Module.stackRestore=function(){return(De=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)},ze=Module.stackAlloc=function(){return(ze=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},Ge=Module._setThrew=function(){return(Ge=Module._setThrew=Module.asm.setThrew).apply(null,arguments)};Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev=function(){return(Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev=Module.asm._ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev).apply(null,arguments)},Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm=function(){return(Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm=Module.asm._ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm).apply(null,arguments)},Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm=function(){return(Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm=Module.asm._ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm).apply(null,arguments)},Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEm=function(){return(Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEm=Module.asm._ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEm).apply(null,arguments)},Module.__ZNKSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4copyEPcmm=function(){return(Module.__ZNKSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4copyEPcmm=Module.asm._ZNKSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4copyEPcmm).apply(null,arguments)},Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc=function(){return(Module.__ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc=Module.asm._ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc).apply(null,arguments)},Module.__ZNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev=function(){return(Module.__ZNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev=Module.asm._ZNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev).apply(null,arguments)},Module.__ZNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw=function(){return(Module.__ZNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw=Module.asm._ZNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw).apply(null,arguments)},Module.__Znwm=function(){return(Module.__Znwm=Module.asm._Znwm).apply(null,arguments)},Module.__ZdlPv=function(){return(Module.__ZdlPv=Module.asm._ZdlPv).apply(null,arguments)},Module.__ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv=function(){return(Module.__ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv=Module.asm._ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv).apply(null,arguments)},Module._orig$ts_parser_timeout_micros=function(){return(Module._orig$ts_parser_timeout_micros=Module.asm.orig$ts_parser_timeout_micros).apply(null,arguments)},Module._orig$ts_parser_set_timeout_micros=function(){return(Module._orig$ts_parser_set_timeout_micros=Module.asm.orig$ts_parser_set_timeout_micros).apply(null,arguments)};function He(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}Module.allocate=function(e,t){var r;return r=t==C?ze(e.length):$e(e.length),e.subarray||e.slice?T.set(e,r):T.set(new Uint8Array(e),r),r};re=function e(){Ze||Ke(),Ze||(re=e)};var Be=!1;function Ke(e){function t(){Ze||(Ze=!0,Module.calledRun=!0,P||(Y=!0,pe(X),pe(Q),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Xe&&function(e){var t=Module._main;if(t){var r=(e=e||[]).length+1,n=ze(4*(r+1));W[n>>2]=G(a);for(var s=1;s>2)+s]=G(e[s-1]);W[(n>>2)+r]=0;try{Ve(t(r,n),!0)}catch(e){if(e instanceof He)return;if("unwind"==e)return;var o=e;e&&"object"==typeof e&&e.stack&&(o=[e,e.stack]),g("exception thrown: "+o),u(1,e)}finally{!0}}}(e),function(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)e=Module.postRun.shift(),J.unshift(e);var e;pe(J)}()))}e=e||_,ee>0||!Be&&(function(){if(I.length){if(!m)return ne(),void I.reduce(function(e,t){return e.then(function(){return Ne(t,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0})})},Promise.resolve()).then(function(){se(),Pe()});I.forEach(function(e){Ne(e,{global:!0,nodelete:!0,allowUndefined:!0})}),Pe()}else Pe()}(),Be=!0,ee>0)||(!function(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)e=Module.preRun.shift(),V.unshift(e);var e;pe(V)}(),ee>0||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()))}function Ve(e,t){e,t&&we()&&0===e||(we()||(!0,Module.onExit&&Module.onExit(e),P=!0),u(e,new He(e)))}if(Module.run=Ke,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var Xe=!0;Module.noInitialRun&&(Xe=!1),Ke();const Qe=Module,Je={},Ye=4,et=5*Ye,tt=2*Ye,rt=2*Ye+2*tt,nt={row:0,column:0},st=/[\w-.]*/g,ot=1,_t=2,at=/^_?tree_sitter_\w+/;var ut,it,lt,dt,ct;class ParserImpl{static init(){lt=Qe._ts_init(),ut=N(lt,"i32"),it=N(lt+Ye,"i32")}initialize(){Qe._ts_parser_new_wasm(),this[0]=N(lt,"i32"),this[1]=N(lt+Ye,"i32")}delete(){Qe._ts_parser_delete(this[0]),Qe._free(this[1]),this[0]=0,this[1]=0}setLanguage(e){let t;if(e){if(e.constructor!==Language)throw new Error("Argument must be a Language");{t=e[0];const r=Qe._ts_language_version(t);if(re.slice(t,n));else{if("function"!=typeof e)throw new Error("Argument must be a string or a function");dt=e}this.logCallback?(ct=this.logCallback,Qe._ts_parser_enable_logger_wasm(this[0],1)):(ct=null,Qe._ts_parser_enable_logger_wasm(this[0],0));let n=0,s=0;if(r&&r.includedRanges){n=r.includedRanges.length;let e=s=Qe._calloc(n,rt);for(let t=0;t0){let e=r;for(let r=0;r0){let r=t;for(let t=0;t0){let r=t;for(let t=0;t0){let e=a;for(let t=0;t<_;t++)u[t]=wt(this.tree,e),e+=et}return Qe._free(a),Qe._free(o),u}get nextSibling(){return gt(this),Qe._ts_node_next_sibling_wasm(this.tree[0]),wt(this.tree)}get previousSibling(){return gt(this),Qe._ts_node_prev_sibling_wasm(this.tree[0]),wt(this.tree)}get nextNamedSibling(){return gt(this),Qe._ts_node_next_named_sibling_wasm(this.tree[0]),wt(this.tree)}get previousNamedSibling(){return gt(this),Qe._ts_node_prev_named_sibling_wasm(this.tree[0]),wt(this.tree)}get parent(){return gt(this),Qe._ts_node_parent_wasm(this.tree[0]),wt(this.tree)}descendantForIndex(e,t=e){if("number"!=typeof e||"number"!=typeof t)throw new Error("Arguments must be numbers");gt(this);let r=lt+et;return x(r,e,"i32"),x(r+Ye,t,"i32"),Qe._ts_node_descendant_for_index_wasm(this.tree[0]),wt(this.tree)}namedDescendantForIndex(e,t=e){if("number"!=typeof e||"number"!=typeof t)throw new Error("Arguments must be numbers");gt(this);let r=lt+et;return x(r,e,"i32"),x(r+Ye,t,"i32"),Qe._ts_node_named_descendant_for_index_wasm(this.tree[0]),wt(this.tree)}descendantForPosition(e,t=e){if(!ht(e)||!ht(t))throw new Error("Arguments must be {row, column} objects");gt(this);let r=lt+et;return bt(r,e),bt(r+tt,t),Qe._ts_node_descendant_for_position_wasm(this.tree[0]),wt(this.tree)}namedDescendantForPosition(e,t=e){if(!ht(e)||!ht(t))throw new Error("Arguments must be {row, column} objects");gt(this);let r=lt+et;return bt(r,e),bt(r+tt,t),Qe._ts_node_named_descendant_for_position_wasm(this.tree[0]),wt(this.tree)}walk(){return gt(this),Qe._ts_tree_cursor_new_wasm(this.tree[0]),new TreeCursor(Je,this.tree)}toString(){gt(this);const e=Qe._ts_node_to_string_wasm(this.tree[0]),t=function(e){for(var t="";;){var r=T[e++>>0];if(!r)return t;t+=String.fromCharCode(r)}}(e);return Qe._free(e),t}}class TreeCursor{constructor(e,t){pt(e),this.tree=t,Mt(this)}delete(){yt(this),Qe._ts_tree_cursor_delete_wasm(this.tree[0]),this[0]=this[1]=this[2]=0}reset(e){gt(e),yt(this,lt+et),Qe._ts_tree_cursor_reset_wasm(this.tree[0]),Mt(this)}get nodeType(){return this.tree.language.types[this.nodeTypeId]||"ERROR"}get nodeTypeId(){return yt(this),Qe._ts_tree_cursor_current_node_type_id_wasm(this.tree[0])}get nodeId(){return yt(this),Qe._ts_tree_cursor_current_node_id_wasm(this.tree[0])}get nodeIsNamed(){return yt(this),1===Qe._ts_tree_cursor_current_node_is_named_wasm(this.tree[0])}get nodeIsMissing(){return yt(this),1===Qe._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0])}get nodeText(){yt(this);const e=Qe._ts_tree_cursor_start_index_wasm(this.tree[0]),t=Qe._ts_tree_cursor_end_index_wasm(this.tree[0]);return mt(this.tree,e,t)}get startPosition(){return yt(this),Qe._ts_tree_cursor_start_position_wasm(this.tree[0]),vt(lt)}get endPosition(){return yt(this),Qe._ts_tree_cursor_end_position_wasm(this.tree[0]),vt(lt)}get startIndex(){return yt(this),Qe._ts_tree_cursor_start_index_wasm(this.tree[0])}get endIndex(){return yt(this),Qe._ts_tree_cursor_end_index_wasm(this.tree[0])}currentNode(){return yt(this),Qe._ts_tree_cursor_current_node_wasm(this.tree[0]),wt(this.tree)}currentFieldId(){return yt(this),Qe._ts_tree_cursor_current_field_id_wasm(this.tree[0])}currentFieldName(){return this.tree.language.fields[this.currentFieldId()]}gotoFirstChild(){yt(this);const e=Qe._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);return Mt(this),1===e}gotoNextSibling(){yt(this);const e=Qe._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);return Mt(this),1===e}gotoParent(){yt(this);const e=Qe._ts_tree_cursor_goto_parent_wasm(this.tree[0]);return Mt(this),1===e}}class Language{constructor(e,t){pt(e),this[0]=t,this.types=new Array(Qe._ts_language_symbol_count(this[0]));for(let e=0,t=this.types.length;e0){if("string"!==s[0].type)throw new Error("Predicates must begin with a literal value");const t=s[0].value;let r=!0;switch(t){case"not-eq?":r=!1;case"eq?":if(3!==s.length)throw new Error(`Wrong number of arguments to \`#eq?\` predicate. Expected 2, got ${s.length-1}`);if("capture"!==s[1].type)throw new Error(`First argument of \`#eq?\` predicate must be a capture. Got "${s[1].value}"`);if("capture"===s[2].type){const t=s[1].name,n=s[2].name;m[e].push(function(e){let s,o;for(const r of e)r.name===t&&(s=r.node),r.name===n&&(o=r.node);return void 0===s||void 0===o||s.text===o.text===r})}else{const t=s[1].name,n=s[2].value;m[e].push(function(e){for(const s of e)if(s.name===t)return s.node.text===n===r;return!0})}break;case"not-match?":r=!1;case"match?":if(3!==s.length)throw new Error(`Wrong number of arguments to \`#match?\` predicate. Expected 2, got ${s.length-1}.`);if("capture"!==s[1].type)throw new Error(`First argument of \`#match?\` predicate must be a capture. Got "${s[1].value}".`);if("string"!==s[2].type)throw new Error(`Second argument of \`#match?\` predicate must be a string. Got @${s[2].value}.`);const n=s[1].name,o=new RegExp(s[2].value);m[e].push(function(e){for(const t of e)if(t.name===n)return o.test(t.node.text)===r;return!0});break;case"set!":if(s.length<2||s.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${s.length-1}.`);if(s.some(e=>"string"!==e.type))throw new Error('Arguments to `#set!` predicate must be a strings.".');i[e]||(i[e]={}),i[e][s[1].value]=s[2]?s[2].value:null;break;case"is?":case"is-not?":if(s.length<2||s.length>3)throw new Error(`Wrong number of arguments to \`#${t}\` predicate. Expected 1 or 2. Got ${s.length-1}.`);if(s.some(e=>"string"!==e.type))throw new Error(`Arguments to \`#${t}\` predicate must be a strings.".`);const _="is?"===t?l:d;_[e]||(_[e]={}),_[e][s[1].value]=s[2]?s[2].value:null;break;default:c[e].push({operator:t,operands:s.slice(1)})}s.length=0}}Object.freeze(i[e]),Object.freeze(l[e]),Object.freeze(d[e])}return Qe._free(r),new Query(Je,n,a,m,c,Object.freeze(i),Object.freeze(l),Object.freeze(d))}static load(e){let t;if(e instanceof Uint8Array)t=Promise.resolve(e);else{const r=e;if("undefined"!=typeof process&&process.versions&&process.versions.node){const e=require("fs");t=Promise.resolve(e.readFileSync(r))}else t=fetch(r).then(e=>e.arrayBuffer().then(t=>{if(e.ok)return new Uint8Array(t);{const r=new TextDecoder("utf-8").decode(t);throw new Error(`Language.load failed with status ${e.status}.\n\n${r}`)}}))}const r="function"==typeof loadSideModule?loadSideModule:xe;return t.then(e=>r(e,{loadAsync:!0})).then(e=>{const t=Object.keys(e),r=t.find(e=>at.test(e)&&!e.includes("external_scanner_"));r||console.log(`Couldn't find language function in WASM file. Symbols:\n${JSON.stringify(t,null,2)}`);const n=e[r]();return new Language(Je,n)})}}class Query{constructor(e,t,r,n,s,o,_,a){pt(e),this[0]=t,this.captureNames=r,this.textPredicates=n,this.predicates=s,this.setProperties=o,this.assertedProperties=_,this.refutedProperties=a,this.exceededMatchLimit=!1}delete(){Qe._ts_query_delete(this[0]),this[0]=0}matches(e,t,r,n){t||(t=nt),r||(r=nt),n||(n={});let s=n.matchLimit;if(void 0===s)s=0;else if("number"!=typeof s)throw new Error("Arguments must be numbers");gt(e),Qe._ts_query_matches_wasm(this[0],e.tree[0],t.row,t.column,r.row,r.column,s);const o=N(lt,"i32"),_=N(lt+Ye,"i32"),a=N(lt+2*Ye,"i32"),u=new Array(o);this.exceededMatchLimit=!!a;let i=0,l=_;for(let t=0;te(s))){u[i++]={pattern:r,captures:s};const e=this.setProperties[r];e&&(u[t].setProperties=e);const n=this.assertedProperties[r];n&&(u[t].assertedProperties=n);const o=this.refutedProperties[r];o&&(u[t].refutedProperties=o)}}return u.length=i,Qe._free(_),u}captures(e,t,r,n){t||(t=nt),r||(r=nt),n||(n={});let s=n.matchLimit;if(void 0===s)s=0;else if("number"!=typeof s)throw new Error("Arguments must be numbers");gt(e),Qe._ts_query_captures_wasm(this[0],e.tree[0],t.row,t.column,r.row,r.column,s);const o=N(lt,"i32"),_=N(lt+Ye,"i32"),a=N(lt+2*Ye,"i32"),u=[];this.exceededMatchLimit=!!a;const i=[];let l=_;for(let t=0;te(i))){const e=i[n],r=this.setProperties[t];r&&(e.setProperties=r);const s=this.assertedProperties[t];s&&(e.assertedProperties=s);const o=this.refutedProperties[t];o&&(e.refutedProperties=o),u.push(e)}}return Qe._free(_),u}predicatesForPattern(e){return this.predicates[e]}didExceedMatchLimit(){return this.exceededMatchLimit}}function mt(e,t,r){const n=r-t;let s=e.textCallback(t,null,r);for(t+=s.length;t0))break;t+=n.length,s+=n}return t>r&&(s=s.slice(0,n)),s}function ft(e,t,r,n){for(let s=0,o=n.length;s{ParserImpl.init(),e()})}))}}return Parser}();"object"==typeof exports&&(module.exports=TreeSitter); diff --git a/docs/vendor/tree-sitter.wasm b/docs/vendor/tree-sitter.wasm index 84ac0a2a01419c8f212ae5e68c2dec77f718c43d..140b943e235efbd55c302d1f994a98b09ca24d38 100644 GIT binary patch literal 203630 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

L3SM zGb%t^@J!Z>a-diMi-7B6eMT8>FHlj<;3$x-#H<2x8>B;{!IS{WT`MfTLu{*1u1Ua+KiCKSB4U}YESWmGzSzw z(k=>2paBaFCIL5aB^DM3P!XoU262iK zJ1FUMLaHE6P-j>`i5XNKF)A>FasYz@yCxHZITOe{W{`QziXfXn{l5%YHRb{BUgf|t zIk+$@P+-pTCx(7&8ff6G)cYy-dLjjx@ zQp}h#pk*vH#(6=bbf9Bz|j1p+vGfHZ+))QqVFtOHcCW`R;vHfXF^nb8q6xC_!0 zqQnfUN)#9zZ!lyjFgr4PN`rDRvmgrt*e{^$!33@| zz4<7z!955H4N#5Es=%Vagzy(gUx5-MOT7XUDka(!K9$T;ScFO!h!-E^B$mfAE*%xZo@*Ppb@UYRHMkCzzWVc3Jlzt@M<{&6eJo< zDWK*GtaSrPyb6q0~1qMfl zY>-zqKx5R07#W%Cl^GlrAo-m^gUJJw(KVP7KrJ-|Mo@PMdD(gIXWXfTy1F@e*l29pA~O%4%dP-1rEf+Rzv z?4bdPZcx5p&|p#lcS%)1VWgnQ0%?7N(y1IddTW=tlaVNxdWFfoG$ zQ;rg}*aC-sffADfW0oh_1_fq#HUXzm%yNJksT@#X6l7yCV}h0eOuV2z2B^CM5d--Q zR1ARq2~MOrpd1aU6j5?Lr~?I3?V-S!1!_Qnlz}Eo5E-8dDdRK2GCm7=8J`&?<1>Rw zHb}8Xa^^>M05tQ1=C?qZAC$zwRgZ@PgA;=}sPq9B3XrtL0O|~ZszrWo1tv`<3Gk2z zs4)j>4Jd$`L7;-1$x$Lpk%@WK2aPWcL z;Gw_-stuSx%0PZXBnogZ5Lz2B!V(25a-smujxjlcYXe3?wE;6I)2Ns;3n+jFi@=pD z%v+$!16uYMD6z2AD==cO5I_-uYCpFE%wDjkAXx!c6EZmd|H}+6Ff^DvK(jRrkaiU_ zNF3b61s8~nkdk#h2U=kY&Y+;e6kNH33P5mj1GRL(Wf{CcG-6_`XRHH-B?F{oB%sN} zpv1IX2{fPpD$$)RI+iOiW`U{&4JH8v#w_kQCdN7@a3h~Xkr~w1XHf)sj)kcX#DVDt z^)A8sB|4lM8X6it$Tx$cjZu?Hgd1c&XgnBHxiW!9>>WYPM@H!^P*b&lkqOda2Y3HL zF5^*R1o!ixWwZdOVuu>f=-BX&xzLfLOcC7UX4GfY05z^4>Oq>^z(tn^lZXZrhX#|6 z0#t?(($QuD^}t^8FmXZZgawS*N?a-okaiw}5(mgaMg=BiM#uGBS&j?>zZpSZ-~d_2 z1M7T)yRs~x2}ICHUA+Q_BP(S1m;*F?%n4$1gCZ5Ijum7g2WUcrmr;Skk*Uy?mlZ^V zRPnO#uyQM~x$-iCT6rMdN}P_2g%B=i>i05dmOC#qND(Jw)X|lfksA~d3Q$=$UIr=9 z;DR!v<808tr@(JU1;#8TP6c*XkPMdsJ7``VH0i_S$mlH%_Sg*WECnvd2MnO_SSaD~93�lq0}4n`TIA4RQUUo?gGm6CBw;2gu|mx1hFQu9vXoJQRa%kN zkr6a34e~q;D{yEq87Q%Vy88SKjI2<=%mmtd!L7gwcGYK2XmEqZg}@@;VG+OrQ*#_9 z!VDAH3lm|2i5!B7fTx}nvK{X+fLi2SpotR)s9m49Kq26e4UJu}TmV#V9w$id0yuQI z6*#ka*g+=qfPDr^3aq>g3OtVg84DFzK_gS3K`UN}KNVOp2CWo%c^E@IVHLZ=nDiAX4Pz1_hb|EOez6dB73Ef<0}qI4JOdL#PoE`iiWe(J5G318W3N zb+Iadk`*NJaD!5h0+#|Ws7C@Ssu5|Tg&pK;1#psJ&EjDL%_j1iF&ThMbcC`$;D9rL zDPx5y6M(v>8ElFGSei47hlLxFOc}Wqz}Xd)&Oq*mgdiwDLFo+pX zLfxhV4LcSG1+dNrn9jxEuxNnmWCR5Urx{ZLG(Th>#wM?P6WK2-os?r1Q%fY_ic%LJM*)n^2c zs3{46CSt%1BSltjM+OCU1wLs-9!Ca6c1H$9US^Q zBCc292Tu)yrh!2Q@q=c9!R4I&xH)v>cIzRz-XS5Clzpvx8DOJ1CX2fm1nXU`J5^tVc=6m6w^R9^60>0#DMhN-Ob# z<~Knu0cB-okjKI466_vGg5_3Xc2(qaWB`|hpo9XhumnJpF5oJO8{}FB&;kezCeWlP zsO_r=>gNkWrV)8T)9j3(!CW5DI5lXrjS(~j51upxO%K*9z#Rc@CxB-WnLz_VtkU4& z11``UH7Ilx!MRlec$fD;2dh?}Lz2WsztG{a`K!SmQGkjZWE1Sy*a z6OSSXXs(J`8f>Y&;R>~dyMG_r$h9tAc~b4Emo9Te&83gAfR&|nf!WCw{$a4T{u zu!5o*)H4zV1q~}GXjmbU3?h*unj6$8ghn)|k%S!48j$D}FlRP^uo%pl6(BLn0qU2q zfO?7o=FAchF$Pe<42xw2P*iguM=}Rlk<0{IB*U4d$f+OA zss*hI)L`NPH7!8H8IbNJsFlwMN`g$F?h`oOGI4W3&7c78cMCu$4$y+522dHzeUOb&2sC#E zOYAJ*`q|OI(L{k+T2Tb#2oXg-5XGR#3Zhs*#fAnGhawkf5*ZSEpy^ac21P;8Y_gLQ zFN=c$A8Ikj3ohmq1;Oh#RFs5WK_fH@EZ}^S4H~^ElvWf~U{z#MU;|ZA;8jyXjtq+Y zOpujRJWTZpqM!-Bk}M@|P+llP7}8RPZ79WV{%a7fmXXrptZ4}^=shenw;Q%8E76K9C)t0 z%%HXe$TTHTFoTTdfFw^>UM7&~pvVQaTzFtD7sf(R4gjqU1r1s8yYqrZITiRoRSSax zH>e0=P~ZU-K@6Ze1vG}v1}cOYK=lm+xP>PG4kIQ8NEeU+sdf6a~KtbK^ankfmo|R{vukj0*4}#0yn4v0ObkL92Ykv_n_yc3mi-$ zkfy`~hHTK(5GdZkvtpq90?y^2wMpQWgRGz?uMnu9V};agV71`6L;+BiVbNex0Qs9m z1GFF*)GFoyjrJ+AftDz6LS3o9^z#@E?EEkQN~UP$<0 zDFJv`xxrd^L2H6JLF+1*e0doaIF)!6*zjpm;9;o;)tw=ryso0a1J2ms%q6103R?fH z0B*G?ih=yjpvVrQSRe%mhawlKfdb3c3T#T8p!FAQpdbLb1yq7C)hmdBmK~I2DRF@E zIVk9rgjqnV6PQ7R2B74}0!ruLqzcaGA}sX^BA~Q~$mfC}Zk8fw?HvnfT@%Ov4p6@4 zR^R~TYf%sd%hxQRd<`y`SQJG;UgO{f^&Awq6nLZ+xIy`v2eieuo2HC^{%Gm6nW;!>-P9(pAVn>&O3FNhG(5N@7f{+_8s0{#ek$@Rfi~=)gZDoW4 zr!E7tBO_=KkxhZujh91#S%F!TIRI2cf>{xu`V-9ZFlPqM^crL-Fe@+#n1Px&4xmOW zg95WAlYu!CsM29}bO6n(nS(1cW=$pwb0!WRZf;Pdfj!CM$W*8x2r6P&xD{9+^&&5W zf*`m=02##W0X0aIIRa)1a{$B?P;i6$r7V!#0C8%BIkN_Y6#%OAVNL~&u`)YKWH~Z8 zG76aTaAEjc5fmBS2V?9iUNQ1~aA>5TDbGsR2ZDm@(Br*5g)y5(H=! z5ok3KXmpcVlc|9b)Hnx4A5#Y-sO=7BR)Cu3%+U6{g#svjfj9!-vsGU6_uDB6oeJ|9T^lsEA2Qz!xN4S ziXxD90yq#soj-WJ0~*L=(O^;mk0?M(KPOOMT7e%_Um$vtkR>mQBHRiBiW~}piku2U zpmnm`AhnJRilUC7)+ZyV`cVdVD?tOw(uyk3rkk)MgCc0G4%FxpbYxHz02Rmzj0(zb zpq3hFNK-)t+Wz7Jr7Li+MhrA1hbYk4u$9ZApivxsMh0*d!KWbV$e5)l3U7b$DzYeW zg8B}S_7})N9%xc!Rp0>?)m$Ko1>|uyP@|I-+{IDk0#Q7mfgWB3R%uW}h*g0TRBUo6 zaAk3WcjQ3LVprk-1p~B==LqT^g7(xXae`L1 zEDj1{*cMqU@D)LNpP+p^&}JDUI|H`@AE-wNay%QjS;nNm<_NCqcsW3=7f={0ae=xX zyo?H5kX9KlsA~pJ4xmOEAEHsl%f_w111fhw8h9BLxIpO$L@OwPT2r8sNP(M|3G8x^ z50G8Y#;w2&T8SY6j(-USDMfAtNkw4=X+xRdiyfJqZlo*sadr=WbU!6cxh z1}af?z-5PylSPN3u7b{TB~Y7#rCvdIxq^<9LC12?U~Lw7DG_)PIA~G0I=IUMRs)gX zhV+yKz$p(=`hs!^r1S*^Eoe=%qA;lFg*83Eop&KnT4qrc22mW`ilU%moB_1YOo7FW zX%DEBWieyg0WE#EfcQdYOdCM7s2S555G`!Rw1N>_bU1*PhJz+C!NuYRMswx@a7D_r zgVCHBRPZrtGOb`VXU+fx0C>D40>T0hsDKMZ@PG=l;{-;~suIws2{UNa1XlbmU{qpJ zUdU#RMIhL2DuSb0MB4l(luuWxezogqYEk5bs(iavnJC7u;LXUhwFgGX27;` zK+0%HF>C;F6S&6@bBP7WISQaYJ+lTA%oRvQ@eW2M@EQ;{1(7U8IZ&ayf>9AXOumK@ z)UVQD+Q0}3R1Ky*jEa1)!dSzRK@n8+i8?YUf{H#7&{!*I)eI=tfJ#Uu(2NJD)N}<; z;(|t##XxJ)oWT7!P)A6K3pAL=1scqQ4q1yq8b=^qO3JRh4B*i`Mg>T*%POtJ2r589 z6*G7s4K#2K-9Z2<<)9l2xRuyl6~#f@h(KGqco`JLK=q6mXgrV0kx@|`RDy!0>%hZs zte^%YhqNL;s2-P41n*rCPz0^u;Q;M;P+$a&->@nQD6oOHGjJz%TiKMkOQr7l~Yh~V{uSW2aUslD`ZgYN+>WZ=s+u0W=&>Lg)X1~YL0=IvUh`JW3UjXtZsEQF&5J#?S`9a()NJ;@|hSjT_;0jfd9Ylef zfZ+ZQWRs^Nc)KX53Fye6AgI784H~=?RNz$5%u+`lsHGsNsI4Fi859%* zwc|yU*rXM;K`aSHEf6ID8qQIW%>pGj9&mzF01X98C~_!(Qm3RMmx7ccn}W0=i-L?I zC%8ijD!vpHvXoS@r$ruUaSdv*p`}GoKL)%g0Gtp(wH~NX3`*LdqzImRU& zLQ(>&0xu+Wa4YbGD`O^5bg?U_Dsn2wDzYdDDzYi?K;jWJK&=Ezy^JgjpcO=*Ngl9? zpx!($IF*8S^MWgDv_#5}NTi@jpNSi6Gq|DwWos6Qdq6n|3jWN|G{)oVbkPR?t$=&QcUq04?uQ zQc+NL=Vjz!<%Sps3I-12{5(6RET#gQAopgQ6s;t?0<0C;@6eaw`acdXF-S zBH(6%l%lADq@t37fTFO1grd9xx1u5sGdHy1%L*#nKwC{f`y)ZQi5oOa2AYCn0QF); zK11>e$Ks66!Z#gSy zI1jX0f(4X|Km|cIXgPMa5;Lew0A&FVQ1^ucx@M(bfdkYLRNz2rtT2Ga5kT7jv$$QA zKpV{1+(FyW71+T$Wbip#aDi43DzI{& zW@8cut(gI}YZL`R#ioEF8;Ifn74D$+1FjH3TL6?mg+Hi=1DXj2RTm7PgbJPv28|_w=gK%i)hj2cdSwNVH7W9OD{v@s zDzGbZDR3+DC_qXpMQ(8T@qn@uqXLhk3aA8EVsiua5n*L2WbYe~0vovh1KMdXou$ME zs*J%UENJ=}d3Xj?Hh?oTc$5h=_sIv^d5#!m;s!0h(9f zhonL9ZhCN*0c8vDPQH2tu%|$EDX4=6srS+X@njTp$5Z zxdO3`6VV3}01r!n#-*z~l>B{{vob zF3eI7Dk4E6cdXzt&yleZR@!oa3sGo`fRTfN8$4|e9#g_nnsP$ROaV}HftOK108(ax zic=15@T@ARHGovm^0IR)2=g+4OHn28Y$z{yj0w~Y7Vzg~QQ%ywzy;bT-J&S%2VlZUretJ_RvF9_ZF`tOHQo+z;6p1?oX-20%l2*hZ81LCfSgK*<-ByBr0;Ebz>W zh@ucEpRs_7D^OtqN)zA)Gk9nYI?n`Jz786}0PW}mMJfY$MHoWS|(79zpX_;CW?ka1&Mp zl#1Cvy?8}F1#VCe-$8*HG#QztBmi3B1X@O>z@#7mnz(fYHS~o+Z7wFr84>K@Vu+Io zG)@f4{8^9*b+G$+KvQ@S2ZP-X_X#-HL*|e`XI{W(W;sCvu%NMJPv{DKPznfP=OmX_5m6OR^Wq%3m<6q1{^L-pcOhi zpfM8AQZywt$lM92`_2T~YzOW?DzJb?3pzmc zj{<{&5TwopFHK+oty=<}9sn)xz{f;@i#-NzP!@+IbI^zeH}_L^Mt;zgCX)gSC~1JV zj(~cbtdPSEuuO&^Eq)P-&w~!>vt;FN1C;%E$1kLvGGAIav@|+MT&+$4kDhhz|97wk#XkHPVj@aSp zh!f;d0Yz>Fb_GbcQ52NtKr{MWpcQ$b)+VO{PZnswBxIZy)Kvrx#)A5e-i6@BNgQqp zoC;iS;I;-6Xg4U60V)USi&QgEge0WFgNue_0fth^CW z6aXf0pgun+ut4iFxIl}&z(L0hnsV~xWd?-+B5*xCr^7+JkeN%eKm`b>*Z?nu7XS}n zfp$rOGJG~@ojqt)9OP8U$UDd%pgw~V6L{zbv}}h3yr~hkf&#qJ7&La~$Xt>I?k6k< zpW6W5dCdgUjuZ@_WCb!Cv@H&_)K37k1TssB6~q=%Vuu6+XgjUZ4^}mZOH`fm}FL9gdNoZ%6N>ht=8P2&4Hjjji6>2 z=u9(^_gKIdvMMlw>nG6mAkfJM;Bz}bE9pSZbC4k{a2JC#34r#PaC38iVPa$l?P`JU zFJ%BN8wYJNV+5t=DWK3XW10dQ00*5>1d?EIRLO#D*9D#N#p1|Xk_FmC%>db@W&%21 zOoIv3j$j5Ymf`{R@>oH~_GAgza)WkKiGWtrf}})1W3;Ra%usO_(3}y-QU)c^sR-;a z*Md$!1LaFbNEHg&X$|r!Od4z^Xuk-nfD_1HETEkUETAHZMS&3%qoBPR4B*Z(sQJnW z+Nq<#!~s4G3A7>#-1cZ-LJDoi1|~#sgEr8BPmN-L?s*0s4FVcN0qvpy*=GRS&949n z25`$7)FWa7<$5rW2ht)J0qqkqW0C<6TdFW{zh-CT0)@H)WEChl@B}~y`Y@O=E#L&1 z+rp{H2-$ASrosRU79LOzRA7Sn8xkxc3gBSjft2^yR471HNPtxsC@?yzWGR8$gC+t_ zAY)lThZHeG#w8V4kzAU%FO1ay83S5S#Q-`rfstE*6|M+utPUi=RKNko zfGtQlASyunPvKhGpgTo1m{xE?5;9zh0aQI~;DjWE6`bH=cMlgfMMtR~n z3}aDXaNNQLDp*0oFARh&qD?QwJxw;sB-89!_w$ zg9X87{eU`;aOZ#z^#Z5p9!_w`gVljFgZ3xDm4O3k0yL01Ab~UmYe>$4Dw+aO^aZP; zKTt(qAd2>2RdfWZXb(iu39O1PKoy;UD7u1G(H*FwD;-0$$0@0NUls42o3Haxmz&X7KzqXp0l*6h=_{ zg#|P>4L%SOR2MOV_Qx}T>QvAMd=}8=cj#6(576i=XqO?VWdrIOfwv$-Hr=y83uo8{ zO;E25RONtn$AX%ZpyjR1Ad^8gh(r#kQiW`)2KDp=Kr4h4K}i<6!;u5DVUq#0fmQ*M zH*y>qLA3!m5J9VoK$}9rIjeTcQ&BQj(>_0-nGH z&C9WXMtnf4S2UO)bvm;qlL)A~2emUHRJ=KW0N({V=ARj_vivzR`oOuBkHy1ednS+?^ z%;3H83QUU3%8ZU{xFH8H)jKkR4}z6)WCV}HgJwCHKueuLp$FQTuEYk)bL`%{OrRNi z5zu-hPhKX_aVA+xObVbqtlSEqgM~onV?mlYF5tr|l;G`1(6(k5(2_d^MuB(WrLrt$ zOevs}#YGX+{$@~61dW+9f!5%F^F8_0}r4ufC>Qc(HpE_-yjMA&=E?w3IHb1W;<}}3seArR;z<- z07U`l#0^JA@HtrAKbS$;0&)fxXp|XrMkeS;N${bY&@~inu#K;vcxKaQ)ZkWNmUaYh zlVgTMw0q=@zU`7>W0WCzi!vNly%X~nAMc@lu zJrlR%9R{d~4g-t@S|bHIDh$$}VE~=Wzz7;&VFop^z>9#H^%it){;9|g zZoGjTf}q@>z^=d|;08K&7c@`fwi2jq4LV7}QQjB4E&z1a9jHO9!0gz7e4H?d2R~1kS%JY(0i4D_ zb&Ui!xJe4GWMq^%U^OU<5@@Z80uy*RT!Bd%ymJB68B|~fH?r9^m}DH8+#$Ut3Gm)- z1`Q?|P}dpSA68J}fOHr+92rZLK>L@N6j;5bl|Z>3RG@)Qt5swI9bpJ=EWn3T&XNaq?6UYMZSOXoU&8NT)uF}93@P~ZXOH_(Z{%nB?>o&fEM0G-7ODsB*70GIlR1_ZcnQ2_4=2CXOn zH?(BHM?11BFoX7ta)YemR)Ay>7DZ-In+3d)ga2rujsj>vNC7(f!T^#7ogWPgL9M;tD`{{Xw{jcLLq4FD`YAHbjUp{mx3lybQ!>lBy}0MK+6KanHh9oHmD)X zqrt$U#12_j$PStZVg(Vx&=^tTWT{tRhZ)7Hzz(YX!5JRZk}Xu?1s&YU3R*@7EeG6r z89|GixIxQbK-MvXECWqbfscSzfSoX*%b@GX1gciqH9&iAz=x-UwyuG8E`XN$vqBXx zgX#?h(7q#1&ZS3_1{&3sj_n59SApGlBXUTnZclzZgLQ$Of8F zXHa5>EI@?pbq1|f;AN14oXxBPKD~oggUN;)d<+k$VF8+50xySR06E(R6amZ%EPlL@ z1DQb+6W}mr03S33KH-@`3Y0h*6hRA_6?in6SRnl&Zg4kIfd@1c!=fYxDxKIs3rZD1 z3#eF_92CTsgQp`ww@5%OWCR`N3F;p!fR3v&V_LunN*>_zaoO}489)Q+pqvY8k+VQK zGZ;a<8Q>GJ*q{|2Xj}^1u4iF(00)60vjXV+a29aQ#{uokaVv1ZI&%u#;3YW%o}ksn zpa}}FNucT+ywP_7Xk9BScsK!c&>JKOL1_^bejwTgRLFsx4C*w2D~AP)KD?lkodxU( zX3($*=*(3GK2U2+fzOcx+(re>4zYpU59*d?LB^b+VFVJL!w9Z-_#7FttQjYOMsfKd zJ^%$NhdGmk0tbl20Gc9&bQ3|1BG9r85DgmMhs6@;jtD8x>QqpB1vIA!Q3PEP2JTU^ zfDUm}0WY=%)!3leWP?n7G8Sfm7#g5D-z`g#4b-{-kCfYh&m{we8EF0)v_%u-e`Wotse{)J_%1R^o@O zv)j}5cXU;~-QrojX%H@HFN1{l4)IRuBW77yzo4pr?C-YAH}Hy#SoDK&RjG`hsdK(0Q`#pz~yT6_`;@zXg>* zN}%l`paw3)nM_%V;DwdU4hpQGy_L+MU}I7O?b&1oH>R>6`GMI%ffIBl1p{b{KKNW( zW>AI!6*A!a1r*r8XIq2JVg_w9$x`A1#S{ZKXjYjWbZ{-G8dQL6>joVF4xV{e1huw7 zHZp+9XLit;tB^BeLGzJH%(@H=N_?O$0J9@U7I?)d=!|U%@Or!~C1yQF7DX;lAb^_x zx(p0_EDVfH44`EzjtxwOt{`U=7bMR!}hr8s`8{bAa`4;8YTY zbp1dZnLtw?pzUr*_g{d9;z02ZUOK~qb4D22^#jd4fVOq40FMQO90$JphMC)pX$`2Y z4l)gNs3`;JTwP`bNoz(P(8N7x(v2B(U@e;hvjPw3kUQ{pQwC7Olo50&JGcPnRuBP2 zMV1mLxOD{b45%oDjB&34Ez)tU2XB!C&oP4sMOScw&Vetf;K!M5Q z$mqx*5UdCqV`I!xVg_xZ042{g;JE{CM@G=<$3oCfZ#KtzP}@-0krg`2+QJE1nI#Yc zN-UrmVg?PS7ET2Y0S|5k0d7TR1wjQ4M@G;&b{uZfprb4l1-QW{EGP;qfL#SETLmF? z9Y1732ek5!dkqsK2V^fKs7b291Uml_d}c4Wl?pyu9&7~YP6#FzC05W$oy-oP&De|( z?}28(m6#kwaH;)ph0-Gmj&poIC!vJbq3P7?s_=XK|I$#26&JOTh}hl7$F_&_aC1qZzZ327Jrv?d0;TZtJoeGDGgWB`pifJ%E% zLjpX9463`q^58|lJc>}~vw~gDpuhrZ(17;mf>MPL=vEcbq1@obp`cY#pz_O+f&0D) z?2sFSY$ZO>_uFfDWW!0#ySn3fv0J zf{YAGOpZ*2ib9Z*44DKq48SX+ctI^f(4|D6tuEZ4r6~NMx(~FfnH#j6nn{73ml3pF z3zUI`TzT0*vOJ1tiogmOA**IVOPoO~@j>y#@5rGHT7(923cCUmcpgyT9cV-vTm&$H z*N1WPFo6ckKug8gK!pZq^o!H6t`NK_6?C!(Xx|}d?E-iQ3aAARYGbp5>Rnjt4P=KD zXoDdG2Pk~OKEtK}bmkT48XM4Y;9QW*1xi?;!!SUV0n{Sc2qLJVk7)};1Cu9s6BgLP zWgt62u4Z@q_y7NYc8JS)KzSWnp@0sdR+I##X9Z3LHplwnEO0f%1!`V1f!4oCg7&4e zgYH>Fr~;YA2vrF(0JOS~T>-2T>JJ`}KX{=2P=K7B0h%L$jI4t6V6hY=47Lqy6t@Bs z=o|si5?3WQSP7-X0qXREiZM_!=27ATC6{a^CQ#d2gNa9p2Q*d*sDd+mQu4 zFaT-^bAjeEc+40;1B?7-44@PKIn5YA0_yeif?9@%4iBgq2Tq-!{Uo611udTf`xkOhm=t(T0*fPKwj#Jd z;{ol60C`XVv^y6Rc;MBQJdjcjJdDK!>LMs`c_N05xxldjp9jM=Yz*=^_%%7&J_H{nB%uU4OGAkX+(cJU-~%ma0q z%q3vkKqpbbR|-Nc1EqQ?P%l^_n_Gzuv?3dPQ50w^C-}HjR!0Uu&>Su(ia}RGg7)Y` zayWR7f=7uHk^wkD)jTIS1AqpjVXY?6byVP16Qr8Ql>tB|bAnPf8>pIR0S!WMfNgypdkS8xE1)^dr;39G_j)vx`2ui(t$~E1&umu zF!gYOw+Dc7M{@_A_WO#emP# zV+CLL!3mzw2RjK zN>8ldBhW#eWKf5J4b(efQGyO4LP8qUfdCC`gT|AUxIony2lNI6&`2x`q!kW2lUE5; zKY=S?a18~j5Lv+OaL{}Jq+5g3r~q|7q5T$c!3HuObbTIZIV#9dNTZuYfmMMEv~dA+ zB_=QUq7G26n-$c&=22jUq+nJBUQl`h^>!3lK${X+z#D-;{dQ0j7Myq>USfrK2{hXS zDt(z4KhiKBy?B zAOt$KN*Z)As=J~LxRQ5J0G&yuAP(+IGV3!6D1o<4f&v{>FN4w}Xz~hjjwk52KhP!z za33DjUj&_6!weo!0bOqh=_!Io&_Im_@W7-f@|X%Yq{;y`8Ko82vlUn!pD^TPDM%`? zWjo5{WC=`S1Z{VLc?@(CqAmkypE0<-0GjCm9~{7-!L)!A6x5)W0}p6ej2Sd620DsU zfk%NIb689mwC@Q#umw7@ffF5P(8s68W01eW$1Be3J_yJyYWHoe0K0nnBe)x7EaKWdkU-y zGFeK(W=s>96j&U0fKJ*_U{q#u1T7|UoWPW&AS~bmDiHTDg4V@?X4p9#>%prQ!0B}d z=qPnio&xniFwt^jR{W6@w*!>9yVB+8-yy2=_> z>r^O+DX=*HU;r&Ub zBa<1E3}{f22#aShf^D9`NWf;$5zC-sPC&!Mpt29tg@%s*If`U~PnLshf8bJJhIE<0 zi;6)P$AH()utM_+Xo7|XRB8WURA2!IHm3rcGLs_*Xf5v##wtbf1C9$;ND0FVYH@5=mV%T(1E?hd$pWCo58yII5gbS0%mEGyF2^$rSxVqTeKs&UGM9k5$!rSn4KAS3 zP*5b4fluIJ0j*110h*=&E!bJXq`(5A7eMJ5P`Uw>$r;R;IzTj|8PgL+h&piQXRv1c z1m%MgBuM`SP{REGpV^x63y39c&3FeyGgvd;0;L3IGo}Zi+t|3EN$Lss0yt&`7ER_A zOrT5mz{~|q=1d}>gWEKjXD~q)W3Xs4PhbMgcQS+G`vIdFlL|9;yeOOTq*?vTzckzz0St$Zm@npwpZfK{KnM6CXg6v7m`H zP)ikD+%hZ3Lt>8&)VpVPWCYK%f|k=Tu|OgabZ``?L&OZqrZX5pjscko;w@lQk_DLv z+8zyVg|L}1&0z#xiNOe7;G!f4x&u>z9kRNCrQY!o3wW)90_gB}Go~4!ZDs5lOgx~b zjEItmG-zBGzK9RBe-X6jSVBPrB+mi9G61}R1bj#i#5bTF@SqcVK)C~SRt_k{6xbc5 zN*v`&9Urk2W`S%`kOv(T0XkbtkyAk)bcTSEgn~T$2n$6)1$ifpj^&R0g`j04pz?u% zML`g})d$SsP!P#ltH7xMIt~(aTs4n^2;$CTCIJO0DY!o>`=?k>lnjNx5G7BURIjMwMfm1;?3lz$rt(V}< zU*M?%(BfUD1CR+4NS6?Nw8I`o$kHTsaDPDobOQ=#G!in}20HQvbR#w^=&&!)@su3i zyr9#O96^&R(5???XCtUzzze!glmoQ-fCV(FRieNGI##y;dRZ7Vq+fE65mc2yu3o_G zm@q3qIws&g1t^Rd6+s3<8it^X71TRngY-_=96_sA85Gzc7q<0qDKUdv-5fmZ;KgoW zGeCV6(9|Aic#-V@sQ1-_ynGF`1{<8wKr#zB6_^Fw9T^otx1-JF1}{qL0WE(6b&=YqY5>hY zLYH@e+GWuGI4FaGZp8r2#DkmAkk&M0cQTtJJ7^^f*lb3S+2B?T{B&{HZUGhnTgXX8 zpr$yi;s>?GLD%H!I5t2=R&be;0cn;ifKLGjn*_R68NBEW)C5Lp_=20Fpfj=@KtY$F z#0+vWILKW=i#U`Sm6$adZn2v)w1C!NFl#V8VmD*x0qv4&Vax*0^MS6tQes6?#EMV^ z>865v+o0Rk1ew9@Q&8uc3Az>%bW{mw=`pyY$_z~k%)Fq*FDM;V(5=9r@McDed{DDl zkqz8YRSrJn?V7zr4k%epjsc&)CZk}r^o^FI~$0AEE)!_HU$-};5*sD8y7&4 zn8mHYnx()2?KMCK16sgsP%P1<01s$|ECE|cn}DMXk~~181E8b;YCwPv9O4F-LZG8j zK=Ym&N*s_0dC-C|PV)RzSvSp;rJF~b_O3gFdQAaO_oRfz|zPKg854g{~$hTKFAYVm>A z!a#>4aknx-MYIa|++I+CFoRC8U;uRuK=m4YmoRA61h~J&uF2$L&J1dpfjUYy=FFhB z8Hi~DZfme>FnK7!R;0k3ti%km!vI8hfSS~xqL~?TDG;%^d_0GiAKHHSf~R~}Q9s{$wof;!gV@RfM}Fvx&);04H5@6>p}O`ftuwYKCIdP0Ik`+0@OBTG-Cp_c0q%T z){LNrK4?z;6R4rfqQP_lG%F8jC4*Y(;MTV$Gbqh~mQ%ApTI$e7JE)}&TKd7F!E}Pr zj0xNj*JpgfXw3*Z9Fs+#@d2YXqY=n3Nc-Ic#DuieK}S8XKw9e1Mmwmb4sNtV8u(ry zwVKQ;7|oe{AZ_J6pcXo_Bj_UJ9Uvx)CNt>3P!9zb@cGNE0*#=q6R!e4Xp9G3n}b3T zl=ycrDk+#VF92y$03X{78enrY05y0S1VR<$mxGq{fd@B1l^CQ&4+>3CX9wK-25qm0 zj(i~Xz9%q&3k4PprYTIIqozP3KH#IO!HYXU#()}U;2pAx{Gf3_@Yx}t%PiSIoqy2M z4)CSLpp9psIa5&I4zjP-K>@Vt*dbd0-hTwGWP%LWgBJv_fO0$oWakNN*h2v_K4|t4Q~)U!U<{f}JfP!kL4lzG-ptJa zn#U4=9C644G72&l!RpB1cm|`O0u?}@f(LJb#Rxtk7(D&}E1*Ed4@e&P5JL)}G7CDS04lSNHQq} zR>xxu;E8f3T?R%_OV^Pp3v_E6WSn6EC+PU#2u0973(!cSBOj=w1I;ghZnpzn%c01s zz^Tv31Ui`&6h%A=EDD^~j9j2zqctPQ)sP7)Mg~RDqy__MZ6FJLKP+g~A)_N(PL>j@ zJ|l}YBS<%^1|tJ#t1*WHNR|yO%K(-IZ53kBU<7S3gEUb_6&)y$z%%x2pjFtgR)>xw7l_LZ?#MDIFgY@1f!iaX z@B--oUCpMz2%67;+{4BIzm`>(fgPGr1h~PIrwj@lt_n*XT2HL0YgJiVUC# z1np)~02Kz@H<+2YLC05ucKksX4Jt8$YY8UktQcs1o--Rf-=@Ii$OUGBHaRmv=AJ<3 z1A!X7ETB^m!LC5`NkCg7k%}57N1klZJOZnuKuHm3pKM7HXn`YW00L4UftJ}amt-q) zDX_qAxCX7=VFa!80j;+JAN&t$9fA%eMlu;x5JHwngU%vjg)FsY0vBSC>j)S?o18#p z3bPp#4`^Yi0%&OpJNQ_9&_-fV0tfj7e6SD;Xp1vw6cHQ{8cd+-3pDwr$fN+8)nNgT zXMv{?K`XAom68fKc;TOhg6>EGkGv`JD6lDjjLA|07nq=hjo|r5 z1_jV;G&lE7VI~R4X$}V2N}MVT3Y?BA;4y_3PSB}7%1n-+YgHW?1bmq4L2Dy4lte+@ zMsRak0MbEJ6a%jq;{?SJ6KK>6R2MUW+zPrpQV_JR4zyNUgGog}5RzsSVoLCYaPxcRS0bb_-b}9JG3Jq|2hF|B4J_^pHz-G+|De4^= z9HFD&;BAaE7(uI`z@y;c-Hi(v;iKT7b10b{8LSy(6_^zGtr%oLC#J&AYXyysGl8b@ z1wi`2W8+Mq89jN>{w(miXwVWM(6Q#AA#(8Uk{OJkDi35KXzpVHqY^J@@D`*VJVed` z8rlWzfM!(S10Cf68VLby4up=5Gixv@fCisHyIYH$FXpBmUOByms4xYqB=owNyBUI88*2YVGXIu0r+89**#25mWD2Nl=g(Q(jra%M-g(Qz*Dm=tIwg+!SW zw*r@=Kp98`WCfQaM;Uln9K4`VgMmeX1zdtMDKKd;fbKt8tH7!Nx*Hk9=TYE785ZY* zWK2*1flm_voiV};8x{whpAKq1fwopLgXT;B{bzOq4|{_)#DZ6#LpN7JstNF6onU#; z`Weuu1&abNbXc4nwB8bQSu|so5|4s7D3^jxR|ns~2N}f$H_qTG4AlAo9n!4;F8shn z=W_7A3MLIEnx;4fCg_kbG|hpI24hl?!j{OOtL{O8hd*_3qoghtMCyW+-=rilR%!6z zu;AnbX-Y_-q&ZM;1)jt}r6wYYae?v(?j$A!pMYUkkb=&&C~_!Bf#+ga6{O&EF`$#c z7*Ns}M;0iJv4iH}m^2u8K!;<3Pf~^~nuMk?&{9Xlv#j02R$ zI25>{X^aacje)QA;#S~P-~=6nz$~C3roib4I$%pd1lEs-PN$#^pMk17MKRaXH~4!X99)0(jibaoWD-2)o&+muXF7vtuB3~s8DY2fO<`1ESKt9{4PXY{d<5!yF@dfs+`tH0DgtJLhF3&D?JG^@ z1&pAjB4E)OjG&bU;Jt5Cz)MA#K%I;U;Bg%=vk$yf1kCIKFBJi+?O+5g6#<*jzzA9@ z0%lf#R*Ha?mVp+EfWqNjuP=b%bG6T&$gIwkS9!7RF$WmZ~E)mgWb^v8S&{dnv zn#>-cp)`I4W=GIa8mOhq0Y1wNl#4-IHyJdTR)8kS%$Qby`%a*SEcoa*W(7Xb&L3t4 z&>#``I!wrYk_w=Ur6jThCNhHd-@sIXb`XOG#6ib$@F|FxGl51w;5r2qKn?)aE!?1$ z;8{xG24DiHR0Q{rTfi4j#b_|`2zY=T0PY|vFd}A^VYh^QkcIVN8jOhkwxnB!omI5cZ*kcFHf!+YE85HnQ-~iu2D8S+Xj(#Rc^ef6h%Rn&&2FDZ7 z#h{=?q2i!@2sw(f%nl%pEsRQB3PRx05j3Ww$PFq;89*mNfEYYV!V03H za8{5I@BmLja)W2#IY3*8LH#FiuyQDff%fhpt>OcBMYt6}$L?{$DqwEt1%L`dpl%(f zf&l2QS}p}nm@9Zdr_wWm3SrPvQ_vCsX3z!5N?>P#))_-q?r?y%+QF@609lO~&xbBJ z11(xbIv)jQp&Kugf-uNTxRq|akeNdckheL&7h7_G7Aw~%aDes+Rw!_Q)7OTp<52K*Cl5vLy$!kQU@824)8ZF34q&9Eu_!o1n{t zK|2S*2UeW{U6a7A1e!xu;85VuWG*mg2A!^;!E}WaJjx7Ovj;j<1JpPH?cmj5I>V{N z#Z<4r3*O?FrNraN0a{(J#0M!A`Jfvc7`YYrKrJrlT_&I%yFAc=F9A^EJONsh3R(gM zZmBb9FkRqO;)l#RfG$2z;!@xN-G%Edt;D6k1s>Yr0iA*kvKh3Dj#+^VR@{NgOfEzP z06J-c$BYSdY$s?P;|cJdXONr0d!Bi?&6v)Bmgj&Li-Xp(34l)Y1K*|#YA1kJSn)D| zQUFvNw-T2lbORuGOL`e-2MB1nDdBwB7#Gj=k2wI7* zpdhFK_Abay@J0yc5=i9^n(P2;Q4q{hP=NE41QhtQl=vMvKn(yz1<>tXpwI$qN9+<* z;s;5Cb_qg^;D;IkT>}Z-EC}76%>}+10X&&Q~)u2BhesTJtR1p`9v6XU zS~x&UwXT3>SU}zYC3p@Era#b`77k7358xV^8I<#1FoJrYVCDmGjSObq0N2ROpyK5U zxJG6Mot$+6TqA>-XBZ)iH#s2lFQAzg4h^OQ;2Ifh!VYka3}$YCF5cwOXIuweyvYHn z|6LTonFNiag+??V!MfnrcCfb?^ZfT%c4do2A4JYZEdna6{XKJlx<+ zr^F3TrhE#Z8$7&0bAbx*Mc#_MB&Nd&(DVjNhoE!@Y9k`2Lj@*l#w(y0V}+(Q(3~9) zI3*TAQZ6V%|6x?%R^Wvuy$R$cJy41TP4aQ*GhRU?Jy0qHP4aQ*GlEhfu}Kd!O$eIg z!<+P&K}k(fE0u0V+y)P#nw@!`;5DuA48r~tYhNx+d2bbN+1sFGs@O(uhvMoWN} zMuQ4bMeud!T#y{jtifah9`&;Um2IHq5J=f00g^owz*7y(3K9w&jtW_z`y2&AL8_s- zkU@iK4<~f6je$WCeC9M{=>mg-WR{W$sQm@5IzYp3pf(&cXxj@B%bpdP6%>|(ZeCRo z1daQGDni7#FQ_vFI<1Hq)Y+K=S_KU{Wgju_3+nNK`vjo$s{knlxy+bA7mdOeL32Sz zc$q=lI(fk3sUX%2MkQ`=X$2Nvz^Eh#9)kn(<}fO8fydxDK}~#6Z(2#7m&x%Fiy|Lr zZ8FMAXio50FKC1byb>C8bPs44Lqv&JT9F&X5&#h_pn(R^a1dx~G)Mq#B{ZmR2M@$? zg2sA96hPORfch$+6Tdjo$9fgu199963gFQ zd_e>E3>*r)S!)%z75G7s%nTZi<3$ zL>>0!0|yxB{4-uqeGP7mqppVL1)0gKAO{_i69Kg#;KRO%VjSFW5LOTcU&seKDqDdW zw9gFOuTT;OO>KcH1kk2B9_ZOupj5~QVM8v(1kEc6g6@5V9M}Zf$ioXd2Me_449c0o z2uTX=ybQ{Wiu?+E8Vo#&pnJdg!RKJ{fX=}JUDysgw+edwAoQF(ZqT$D>N!~4pnfRm zazbftMQ*T>pwp`$x3w!k3=(5x(I5e(=$DHBCb$Z>L@h9M~7fr=|G zO~|p{912|EP4)r`pgqb0pkYS%QCNJSUbQcij`FZ{UOs>c257fM?&hA-y>v(CurW{Wjo81$AH<6gV6kKnp1x>lLIG7!;&^rMY)O zk3bj5R$>JmNTUEdc$Yy5bdo&iSTxWne9Q`@nXo{%cd%$MvG9V%rng_&ICFxf&~=*OcJ0OCQ$e@2|!qo+rmIA(!hfO zph;gxf@gDr7L*ErmZLmnVPdRE3XrU2d&i!@coqyd_$V+L8%92l!YD7SMTtOrWVc4$wK)8cZBnpiLEEuY&v!F1kUBD?le) zLyv+3EsNm?jWB_drWER47FKu(&aA)+F2OkzSP>;Sn*uAm1PA$u0aSvsfl6@j)Gerg z$H1Y$n6(ykbswk{X8@JrjEGWPfdRA}2D&y5d;p1x5+e(EHWsp>1$65ssE-etxnn{p z!W|jFOFg7OezyUY;h-$Ugi?k>HvTLCjTC}B$vroKQ5JOA;RgorsobE}umUubF*pij zJJxuECXHDf*+6&jGIE1clai1I6N4ZFgOY+HgX0{~RwpG+(7@&bMg>mLa-=zojsl?j zCP8Wxg%mg)AppfLAPvxn}19oxeO&%&?+n;MNpmR2wKg>Sfa!VKD>ez<-`%09B`fkUB$$R z*dquEWLCr|2q*xUKo@6lg4~?|vLFStq!qll0dznP2XrjN37|8^nG`^)$rRWec|gnIKu3WnWC=uq#)vsVRX)h&oEl6H;B}%(;Gl6) zVug$hf$vAd7A7Jjgoz7iNYjkT1{5X`TR;mMKqJ9ype8S9EgPF-J;*(vuC@py5X=}s zCoVI9+Lqu$RvF9~K?mfpftRpxDKI*Ljw9nYXXF8y3JGp#_(^1ggd7wYz&F7$ItqaK z5en>3K1Via-i`-E2!KmY$OH)FdLYMo(AsAfP`i}@)Z_tA-?4$treOfjw88ojp!rx% z4JHFnG6Pv>f)sid1VfL9gwV5qgq{Jy7D(usfD(Ws4=A)ixAlTYw7?;yVa5dBm<~FV z6jXeJG}EO>Xn#W6-5-dK-mp6b_r@dFetEsI$0nqz)=e_ zO8_)&#;DK8qX0fK-jM-xDha0slZPS)$QTAi0ZZbi@(J&32sp#VMF z6e0;)P>oaqgIboLL0lnFOTiULX^;b%6gVKq!h^42U{nCz+{c8pJHJzrGNp09?koJF=A&DY3)UDKUUT z#6gJzRC9r+oEQ{Ay<-QE25=n=lDC0oS$2@E;5ke;US=s!TS!5`7sO)MXM~u};-COJ zbL9X7$R(fyZP^hHV{%Xs0!<2oQ=|iAzXBxi!Cqno8O{jy5-+0yBgg?fzPyZ}rF%$b zgFOl}9=wMM?r$bYl!0mxa4G;D;0nr=e7?L)jvNYnp#2P>7=+xt2s;vr&yfjqLLE1# zp~tNNKM_h1wA&3-azOmg2zH_n$cfneFNETMcEU6;PuMz z^Ep9t)}RGfpnHXcz;zF3(>S-Hkb)4%ZU>NG6u6*CLV;UR2$C#7-D}VYAuFVrVWYsU zAOqbg1#&BBWhgr+<%8;9YeoxjvxeCKLcwqR;89`(9R~<4;~3#(8mP6;Sf<3JzyL~} zpc98>azIPXK|4VdK}V}FWrGea2W=b%MKVHx5@;7=*ZHDK--ZD`UQWcZktxTK33iyBq8ups&tX&& z)Mpd{g?1r$u|Ge!C=>*3l9gBB2eq38K}&-LK?hdzE6AfP4Q6*_0-a0*T6+pgV}hW) ztAd~*9DeYMT}P&D@WNOrM+R<1aYqJ4QBdilC;~dz)R93^7F1zCvIdA$;8&0brDBi) zij1IZGeO6gWhse(G!-f_`0}!Y{KKTkssOTAi3_xj4s>%c$ZCj)f)uFU76)r^Q^#=&OGE&WCu0*Ku3rxihzt31nss3 zot4X62%4c*VgMa>EepPuNl_H!70?_wXlDg@9k&9=SpwiKNuWc)VO~^_1urMbQW6Fo zgw4bVItCjYVW7=LJ_^F1LyROqZd3yK1iV*{L4zqkNenbd20G#x>?Z{Ye_jR!F;J+3 z?h^wq98+KbaY5Z)29SPGxdd9A3v!Tx1ZYT3LO~34oG_@-zzE(<47vv?8*H98c&9u! zctD-81a!CyJEW(k#Oe>)*u~?@3yKI({DRMsWl-QzVsvEk2QL@ES%z_dn`0>1iOB($ z+rT~oAGWF>2I>znf+!L23ORmI*B#VcgRIU5uVIHAzOTdqQYE3p0O_lMJgUS1I$9ch zwi#%vGHB-bZ#Rf zXpKC0`WckcAcy{fQ=tMRi7GLGuA6sIU{K%(MZTN@1C^|Xr&b0>K2T$ZRS~pk1~fFt zr~q140P=!6DA6!zF!?AzGpzu~?Mi&06v_pfN(3co4p1N}(*iwm5rL2}Tf%?HXapzVIdC2dx$ zNt+d(xIvo|KttD{-I$8tI~+KWk~U*WmLn5r;{iCTSwRDOpbLY+`%MWYZN?I!k~S-7 zY=%dH6_m7DK%3Y&kdij2kO19~odr!zpm~d%n5?J8^WN)J>ZN8>qsjIgT{||6of&0Zdte$ zgcXEAH6M?H6nOOpq`d)Z&15Trw@?Z~x>KOL0~r(qK}k*&G&(K-y<<^Okx_v`Q4q9; ztzH4N4M-HxLjYwzM1w~Ost@cqP|p#x{sBCQ#tnA7C}_`8wvqrin=|P$uqZJ){$l{2 zz$yS9Xi|`a^k2Yvm;sc0K~pdaP)R1xZa!8>G0X=x%JDx#A-KK+EzIImkOgG|P&$(U zyB}PVGJ%*PO5C9SGpO=oa!}w_f;Uw_BA|IbP+?rA#IL{vYMOy|{ei0kcF?pUyMhF$ z01*Q@mkVT}61#%9Coh8n*8xWc4_?sNpEyVXtAZG)ZUO6IRbU4l!~(j^5;X3~pA8zI z1Gh2Z7J~Y)S)le9gAxPC8U_UkaMxCm5mYI%gKT32+r|K~jS*xUXn!w60fT}#l5+4h zM@*oa8*~{9=%`EZY7!<;%qf8H7JvpJ_+%GwkU(q$#XM+)6w;A~Z=eN5D+6L6jzd9M zfeBQQ3xhh+0^kq@HTFSK3?66W1~n(Z9cczfwk!n((Cs|9I@02hjx;NzBP{`HcnO0| z1h1SGVRC@13uIIfg!EViLA@PN?ZBYG=q;@TtAoIamI0a`;SN^>Wf}#z(-lRz6+{&v z=?&hKhdY1~)RUJ0*Dj!Y6l6ioXjuh$P&1laff2m=S_%}FQVN2gmJ5%96gUbM*ub;G zj%OG^>uEt}$ul`9D1y&d7g1nlss|-?NcY!9K}bOa)Rh6HWPVU*2DF=$L5UAk!n%Qb z=RDv=9>kT2e3)e-tULr+AfUhpF7Eh2Ze|6QEji#uA-ER|aZrI01H5MhF7rV>BSuiy zl2w6S0d#6xmOdkkr!+X-Fd^WCt&OW>?@+;06^wpoGls$e_RtiYn0JZ3fWUZJ<2`pz~Hh zPP0*B2jzM$PzvS(nMIs)xIiO5;DK}(&_PxL-Uk9}qXwIwqYI2CvmKocGcSprd@!puk0p8-ZKk;9(r_ z0GbjLXp97041tEt!5c)GK-H6w5~HI4xY7cNzyAZ;Fb^5v0F9482QR_)gHj)x22+S4 zcupn36?};uX!kYfgbPTH1czDxDDuFO3N9lc7DLMj1+WVk5Eg?E8fSEb*$XirKK=%_ z7qneW0NSThkZ}heA_C5U0ScgjK4{wrGLMr3zSIIdcvhgq3K=p39VdY_E{xj$0L@D> zgB;6(bqs|8v{n?m3l+3u9Wu}k-Y*T> zjm)6Hju<1tIamR0zk-IQ1wk=Th^5R$s8M24fT%(YTrhcqM~k>YCkDbtix^A5xfOK# zBOk8D6KItvs8R*B8x=tt6xqQ=k^Nx}pgEn)|a7BNE4Eag(*%Tf>o)t(HXy%OLN za#rXa+8m$>c~($916?1i#06^jL(3&bcTkrSJg&nIifm9dVWR-K8%Ge-Ne5p$1zu|c z8vFvy2tdcq5WWU&R!18;|q485GzR85IQe899`orh@vosHq9Bsrby~ zqK297py^makQ0R*|NjGLWYCfUM$kE?py4zgCT<2u(-mAUK!S-06inbDdq@=y>e+y1 zOhEl5CXi>La-c~R@MS+t`ixwV2>>_HCNl*_u(gn~1go{&+_20GnqP%=4L~EX;GOTF zJ10Q#<^bw(WP|&mpxGOEbSkkbfUeR3O${-FCY-=U7x;`aARZeM}b1n(Geh1K`Ztc9c4hB zE>OOKn8xh*9vrHm{tG+!_JnLD2GBeQ=)?-ph!VI;wqnRokOsGdM3_PI4THu3Pwc^ z)CL7RXi5Ooa#LgiHz=4CxD?o7bvKhEg91BJ-K_$0fQ2Gx5fPgP6R1G}n)n0fUXXJ@ zw_8J;gKMA!wHp~gLz3BiOpHtn&|zZGDqRLg=A0}g2G~$A zXcP{#SRI^UG?+m5QG@n-fi83c4MT#f6;RI$yd$3hlI`!!*ML!e`>LHh{6{a*$JRz$T2no5Ls06^&pF*U*gZ-Zbd-a*s$2nC4B zju}$FgDW5K;*c5OQ@X)>5Qynkf){qo0IinbFk_kkHUZ=*a7j@DTAZZ-o}y(0P0@lz zUqRvQK4m`vA3vfS!8nTM;^a{F< z7jjA@*eC38Wo)3aCQw?}VA4T&$N+TG1*m`kw=`HChnk0Uz|Ca~gokW~xQ8sj9&$l= z$YaQQ2<(#p)cgk)i$NCy4_3lbDz}0pXmtaEE5zcUAcWw88|MhF9E_GUs8ggv`5592gbju}UA?TJfX3$V5JIGf^+7#H7SU?35 zsEMh-=;#ExQ557Dd59kz89`@VF)A>FJOMHeq+N-{(cYJrS%DFBJ2eAnnHvwtXcj95 z&>?lKo}jg+pi&96K8gWZ5NxjkOA*ME;My+>Cd++?nUSp?v`PZB^Y|xdC<3%H5>#}9 z&LniS1`QX0L_qsMctDe;ps?rTW@dl^W(JTOK>bcoQ%N98i3PL*f&si*i~-VN1>Lx+ zz@Weaid`nKM;Ji?2Rh4#!H<_o%8?PYsReW%ZZ_xuF-Y%%2^PUjun1;!4Ziw zBPeVXSacZ}m6(tsmrHdprbXweK}ABgY+pdAxAJ&BQ%1+hlW5R7-Rrw{Z~m5 z*fvKdMbLqk&Hjr1~5e()bX;WYYohu6(gJ1$x>(B^hbd-nq!I2TPwgPmw zIH;xBP+tr(Ooa3m{$S4j(i#>c@+sbTR8UVsd?Qh^!bR?r|> z7Pl3H0QmR~Zth#AOni_tGZesk#T^;J6Tgh0+acLNJr_2|yA19MY>t}lpn)C7dhoO| zD6VrrOISdwUHKrnv_J{8JDLwPz6ct}aAW~>c)-K143KlR*g?8Va2!3#2D&lIR~me- z1^DPuP~(mZXE%jQ0emfO324EY8B-3(&!ms^2bfe(}$ zSwLBw1$@wkA{%HZNC30}AGDwaG&RNpk^rr70bR@pzLkXsw$l}qsd*5S8*GrP06>R2 zf|g~2^s#^rGyx4b@?_E-CDP#2EJ3%*v4BR8!K-drKueBT6+maafDFtAxl93k-wF#zGn*?fGiV_m*i8c9 z%M)1@ctAynA}=J~U?eCc7!+8ulsG}h<#6$_GBU9-Gq7?i@H(=3@-l;R9j_y+KQFUW zLsLhGf&#B2bIDq#AB@c%%N4ocvP@2mSY(;Orug$Rf@EhL05wgKH8XKLHMMjszz_#7 zYT^Q|`sT7?0QH)|JrD3gQIOxj2^3ttI)Ja|a{vv(flk(BPy{V5V*qu|*%Sof2d;re zTftn=fDfpP1{ybG23;Tyy5I>se&WcM4a#;7pe`u0BU3hHCnAHRKoLlURe>MelK{o9 z0Aw!=ETw`|E(cP|>;g90mPc!B}6P99RIadLxJu!C1xgO>4gfJ%MPrFh(+ zh*APwfX4_rJP*8P1Dt+YKr7f;L7TZbKqtGhf(kw%$odR3Mn2F*;-HgT!Mn0Wz;o`3 z{0eM}?BH5~$w7fl;5#E|#kK|$j}n{XeFo5=6`P~3J1;xKWwpi-6rbV;p1 z1c=GwXa!m=2VSKD+9$vXE?Nb`rFcNPuojW%B_ZhW2P|bB=xPK7X2*IrX+>6$VGN*k zW}q9G6*#j60vdS=K$t`4C2Y0xqB;KDf$nt(wSKm0NvP(2H-SwMqfi~{kz;NyViFoMzr z=;92}0V<9R0y0XV)0sdUDL{=W&~ywV_^@YCW^`myWaVMwRuB@1fi!y^Kn1+f|&_?w)$-b@WLQ)f``@5aGjtz zbkH%FdTuQB@VeZQ5p+ccyoz>Y%;E#DnFAG05YaeDbuR)=`%27?dZ5Y|<}6T~7qprj zBn(j=39368Ktq`IpkZ!MOAD;iQ4`!sf+Ty;#q99T6DWaz%>&CZgD#Ilq(LS~vjg0W z26-JR$1*{4ER&-yXubj5=>n%$CIwKgWpI?pQsM)xbO&u3WXcvu03C4wnvDacX9f+X z2qhL!Aqq~_F`yAZP}v5WeNh6PE6Jq5iZTMoT%yRrRIdOzxQhk3Y-2%`Z6K4G%$Pul zo!yKn1e8-Cwy-L&a+@(lfHuW}nvI}CfFXM^!JALL4{ZWt_Hz3f5j*T?R)69(Ha=@N|bjJTIFRXxaw6|DOR=L9O(j7E17|cP*%|O0xX~^ z1>8nZWCgWjL7@UV+5~rd0d#G&KrA>gL5dZ4ARTz{m@cTX&8ENu>fVA{7>wKsJj#rY z&pERcSOxwvg6nk1_Dkfr1MO~gWCZo4z=fw0E2tpg0hjm8%&eeNA6&%Vhm`jqJ3-4$ z1Y$vYK=C;Tv|tA$3_2)~5mZNm#!DQ*qaonyd>Ozs0JwhUfF=k~_GA=@2d_L`*88ue6Q10N{_n&bpEt3Xp+Y@jJFT?WvmXwVn{tD{ghXp#loykrM8B^kKEQ*EqB z?fwSPHAA4f78G&F5{#e@0jRQyfX1VvJ}8@j3-IpB?natI%9+xlz~C3uR#7$0-ZPoj&SB|M^GTMgZd|sCL=UHAm>YftN}+m zJE(gKx&+LTAGDegw4hdr84^a|eN7&qlVCu5K_KA+7MlY)cLY2Q0b1(F2CAw#HJCt0 zGJ-b#fsWq>6&awu7HFslvZ7dl9W?9B209otO9|3d16S%1pko!l+r>FRwFu|{UdAj% zP;LR40l8uov?yCiz>(b>)K3NF2~ZY;29l#+B>)}>QD6lPgRmpDj@)@ct6ac? zQS6`z^g>WOiXFW18`ew)Z6Ff@-*Y7dV)7}0o5G+@3#bpJzzS;KgL(u6)q_uy2Zt@V z@#6s6bV*nvq^Aq+PZWasx}c#JM}aIw(CK=h{afHl(MAEhxUmqF_ds_SXfRcPOECt} zE_DI$6m&i4C?)6=zY;irnL$hFSrm9d3l~9Ky?7kK6&f>mR}ARPS1{j^0o;XCUY2tGrERRPf=XJu7jQQ!cjWN6QTLxEEfbhiiSHZca!)F-rVz$oNEwIr-8 z;(_&=!DSJsO(GEC$P7A|1)6h}SRD^AxPzuPKzSZ?FHAO{7$XA51(WHZ&|?G-CvHB>6z&QLLb2%6Pzy z5&S-dBrd4$*gy%^1uZGDfkpznr9lH((4-`iqsRttVzVJPvDpw^8&KZ7p?lyiFZiH6aF>_a5#~E)(7IF5Nm5LpaT-u5ro;)_HwGz66xkH` zzyo)n$^#T|-~kPAq35muT4G-aT1vzWy48mdG&=!mP{PVzWk$y@pxGH9FuMXP zY*d)t43v97W6}zopkc`7jtQVqR~+MzpgKYk6n5a@CQxq}I^e_#-8Jk68u@c%1K-*N zIz9+gO@W8=+;|zJKpgO?mY}VJtd3k++@JskwPWF-@5T%2db9b0C`fq?-Zabux(b&? zpOFQ!K9rS*nHyXvfCgmwm>C!u7`dT2oH^T(3AD!))K&m59c2Y61YvLxE3joLF@jp+ zjM;oFjEoFS%-jl~p)@9La4`hB5mFHphYGA#44^e@paC`Ttsx-GLF@29H^M;55~xj} ztyF9{Yyw}7!r+Kumjd)6HAawKOt|f00Wps$?n3DKIQZLgARaX=1^c(kboWv$*dp&5@TWjZJp6z5&%s=NPv#t za=(BuM$A)v$qqBN9PL7O0%HJEfjtrqZlc~BVyx=DgX z0aqEs0_ufAuXF@0tO8#w&JJn#uz;?nW`PXtgU(3@ZJ!l*&nN|I(1h!z@osbzy_+6LC$4yWKduOO_zWgp)8OP1kEUetO3vIXgD%}k0%5j`mDqS zUW*Cx41 zDY1Yuo0Ae~o(6Q^nJ;K|jSIA+26R&pXblm<$)Hg!kPkuga|+;QJM?ZEQ0zg%6MFU) z(l!DG7RO@@0`C|V!Li8$ieyko2tcL_SV3$Nw4qnfdSo_F#JYdb?Q7sB3?$B3k?S4! zEQDDWwOPi6o$BRLhAK*^hy?}E-f%^*KN$-ZH9!{FD6nTK3M+s&IjJgu zE?Jbx$x@VdWKdKCbwL!xKvE@&n$S}OWI)9RB!Pp|t*C;ECuj`~=)gMA>Crq2VxShR z7)WoS600vSC&*Etbs-=pDzPc@Du70rz{|+MA}k6Dpt?X2tihF+U4hq;4b)EO)n{Y@ zIbBgfK@rp(P=uQUT6!%8DmH~c+sIi#`|j8jc|jFF3uyJJm;!i?QwX$?9C9fac+3iP zIiaE&XvG49q72A03T)hpyb3a)(vL?GtVK;h2Bs8ri5)m|v4B{hb3hbX6r>bc6+{)q zK}m=OvTIsVTmh8sRl!RIK!!RpD9R|PDzYlDD2hX`1OrbPvnYZFKK?TlDoQdrC`f~5 zr$N0Q&}q(~Qb!uJIUCgL;a6YnZqSB7$o51L1xc_3Xu}{cqk@QnBv^qyBNJ%xE*t1@Xch&|Y>-`$bjq&4 z58jap3PL3|nCaj<-Psh_L7G`~8CXD@5fvo;L1utD5Fle%75G7=HzdLpL5sIR1}Ud+qm&z!C?E-I(U2c-o_t^;RY=0Z?i!Bh|0?arVCs%RV;L2Mz= zA$Oo7>RFM-w!o7jEDCIH+#n?^N-VCRbIZW_&8?_Vkp(2mqy)Ne(~&`m6d{8$_m zxE;Z1h#9nC*#k783En22WzFaTzVARmHcOEmRMm2UE(rz&1iOM5XvH_Xf+!?(I3550 zXDqY^nFqQ(M4!<^iQAQz85|>^D`z0az+9=w2D(d&*#WdO%#j0hp*DD%68Mx%(D*-N zmJ)ni8r1m%tqulFX(+KOfX_8n;8KwH23<-6%9SkK;FJj3V#w^Ezz*>fFX((YZqRKm z++a_@&Tj(GEhw@pK(3PnUxx?jcY>ndOA%D5!yEt(deGpA5;tgj8MxK~O((N~VuA-W zt^nFbz+%nl<;bWg3rb%S3UXk7LMkoLX&wr~irfmK3R<8EHD(6|Zhb}}B^E~x&_$aZ zU>hA7v#c4t6u2ElvJ^q3EjY1*w`zc#1y-WO333GJxG-UTMjnt0Kqn)E4j%?h$Ab>@ z0|};+05ds&2eBPM(axdI=mDw~ zm_g^zae>kk$aoVac2H^nWkdybB{uj9dQfwdu}p~#5*VNxfgr_>0wBpiwDy1vW%TfFu++;lW@64h9oYFo0S~ppr~rG9$NwEcievP#+CkrGiFt zS-@!sbfy&t=3HWeih6**uPEsWTd^e{ryw19f58cY?~)HFcVRDjKyfYqECP&E@E<}hG0 zhXZ02Xjv<0eGHa>gKP>0U75=OI>ZQz3I&K65@4r*4qkOoKnr}x9%3dHunH5<5gv{V zpyjoo6lI{m2tJGv)L&5oH3wMW(E=J|VuGJ9%m6yW7&Q0~N(rDt(ZGB688ny-uzAb^ z;wS@d#QJS+?mR~3dXSwg5F@}Vc2PG4flhK`@xwR8CH_im= zB{P6FFEem+pN1_r2HDAgv|<=s#(-^SRX|=ZjItUWblfw82WV^*ZLu&TY_Twb)!^VY zzZk2*L5qdK4F=ExY|vt1(7J8~l-1x+jnKuycvpjix{}bv!i?Z%6KMIi5_owq+G1hE zB69FzVbJzSP{oIPH8=}sxgy9o#A0F4YH-j3bI_789>;pnqGIT3VerkhOpvS&Uoi|y z_mI`#%tcCIZ^GAub1N`G2Khh>zm=FB6+s8Y$@w}mI5H|QmN+&(XlP(5lm>5m1dso5 zbAM$57cro7SeQX`Ni0fCpnef(hFp;a6v3dS{U9OOCV0>)2POq(#EH1z6&c_ZjySgu zR1PB@rUcru4^2XlmF1vb7sNV{XPFgPK*t|5DKJBZ_P_^2vw*w?+OGs|b$|yLKyz!L z_6TIE5EPDxWAk8Xj{!6_!3;V+iYV3;4`Xuxr3eJ$e{X4y6SRPBAO6c)~~4!Mh(p z2Z}Q(;99o=I)H@Pj0se%gVwLWR@H&JW?7(hS!PTfpd~ykS&pFfuAtG30e1+m6$1lk zoO{3>!U=K+IB^?*7mvdn1WMW9+qYR17YX*i7}Hl}L_vK$BexOpaV`yr6MNCPyWAUUn%^>CwUnI%5a4G?@du^#>%@ z!KlQ7m=!3cAiTu{u2DgHAu|^YO6<6FlOHOa=%K=?z=8-B(9A#Rv|tv{f!&}r zuS}q+C**K}jJCqV1$3}`2O}ttf;S&BJ2HZjJknqwd9ee!6`c%sI5P0Caf61IU?~eU zgv$uJ0|=a&=$QE#tQbHOtDtp^pd_6Iy3`IdGRi0r&dUgztA)*~a+rZGBj*OC7lCjo zZUrXp1I&!9^`KG>lxm=>yg(Hjbj2_eD5Zi2zCZ`5fl5$Ntp)1TGk{KJ2Loz#6hYdb89S$Y~Wot;LF%qK@%;|s*l~5rCx!J6|rs{G=|FVDXqk! zzyg|p1P^+GQU|jFu4R>=>+o10%_nBiyfNrZ4{il!P=yCRLkE(8SQJ=6`z}BpWdIeP zpa}s+1@H~1U@;KE0=kP86k6a(U>=auLBayy5*Kuc19)@}GW8DXj)Dhy8NsDGqXHwy zxk{kUKKL{bh?{Yp{R(xn2x!w1c)uBFZwsjMU{zq`22HFmgU9zlyM&oQOFGLVBgL07|p&ZNu&kLH1n1q2N+g11OIGJuqW8ubj&gV7nem7%UoQ2?!#1;szq zdR+zykjEVv3%M(xO}YZe2pa=GXd@cvG+qV`rW_?ukHjC`o&p`q1eqaV%u)gmHGwX< zUG4&Yqx_FnB161=Lal&2lR+`GRzVoCdm&3e=Uz0-d(OUdFwdiIELdBQSu| z3#eiNXIED6pciO%lo^~|*)*6C%P`qAm-hn(LB(K6$SPzCD5%_py42JgAU{kJ*gL2ULV*gJKDKk`yy&(wCe2E+ZpTz2gc-WmY9n4if}T4m+Lzo&N?t zPm8%gfx)TXoEg%`XHHOHfbM8ujzBO$g9wld7MMN2Jy7Nf2nFr1Gj~8b<>0GJLATUF zJL${|7#$lRm7*X6=wuBB&U+pz(;Tmtb}A-9Zx zPGtofpaU@g)bZy2%gn@9&s3)jx}!vi1$31zXm6bcq|YP+Iz>Q0krhO7fC_m~$AcZj z1GTh4H^hKTQ6>#09?%8|2GBA?_)RdNo-DZ83`)+RtCv8htASf!jt@{=_yBQ=BuG8T zivplCSiq&e1``jr5~vCS6{MgP3%b<fb2Ia}g0`(dp3lJd%BTP9s_CW_@STTSv)Bz_E22kJ>fC9&wVIk-g zJq9x-&+zQdfY0IG`qPkw!e*-MF0 z8oIoTajgQU0#{9qIdcU#H-c~8Wdx-o1_dw$TF?t}IV@RC0L}LafG$Tm!pO*452`8z z6u})z4n-Caj|H?O6132i4a5@xMGJ_*W6cPS8Bn%l00lRw{s8UL1?4*)SS*8wgYd*M zDC9UmaRwd}fixDlK_?nzfs6!giU!3pI27YHwp#C^Z5ok1*$*JBPe0>wh{h)acX3(S-Gr05s39%@!fJWXyIRZ4$2+F|V zd!fvkGq|~LFoFyQSG5|T`UmW5ff83 zGm{)7+h1S=-&dpn-Wd$K1DhpFQB;A!aSCG=EzShz9u&yqeJjIvQf2zzXsXB(s473hI22LuJ6FE~sMKibhVo!qarV8V`-KmJ80|=bR;|2?Fy_}pwsJ^L5T@mMj#Rs3--hW+H}GQGKP^` z0kr-dw1)*$B7&*|_H0nXRKj9Ew*o(??$1&J&mw>h&16vIW~z4t^^HN5m=f4>9wlZ_ z0#jmglmXut&ZWV?018J?y~2vPG@KQ5p%{2@lpD0}joA@2_y=k>fsVNcr)Ue1b`2&5 zeMTp6gG@?6RD%g@4+m(@+#v68K)l1O!2~D7Ly;9U8d49M!D0Y~DF@^tb`HpGYoO@k0EH=I zAvd@@2NyN2yr7dUKnwU-KwGOBcog{*STqdlHmDhfhl>h$x7=f%qv3ir_2s7!>#vgru|l z3%Nl@J3zLD#DKC6xLnLo0-sCGuE602*`1f;U#P^PAOxz#92pdaKt~FK);2OKvMUII zoX8D6Jd9m|MFDg&E=UO|TkELRc&ZL0)z@{~k8!AV6(fy0#-)DK_*4Gi)rh`1?0 zE@lOt1u7(+r6dk^sFH+dp^~JlqL6|lFQWnrXw5%};&Ou+0y3Y2mq~$7LBw4_TtULU zNKpvnB#7(4yTv#_>uErz;eg!(8p8)4dj{@HDGGsRYatmIoL4iHI23sOS?U!y6nNc1 zhmvYA<#-l>`gaOKg^EI;g$KN#Gd*+}AmuKkR0bcZ4(i!6IX3)bE_CE5Qv|Q_09_5J z$O*o$Ndc0TK)rJ}a3g?6gNXyQ>I5ndnFHol1nqv}2PFw62L<$N+(A(b+LjN|>Y)I> z$sKePHiNq&KS&bd1aKJw5nuwRf6(bYpp`ewpeqa=SwUP@(9y6uj+`Jix1u=YmYi9P zko$2upmYNx=;RU5ZUZ*Q2F5H!G0>5PHHzRn?W`F=szFV|8jxlyhWQ}H3|0*Dp!8f& zr6~$Ju!0$y@fbj542zPSqeZr&Jctb{x)iyX9Tb=qIYEcGL&`}-J_UINPEd&n8od;N z77k1-^`N_ELqO|XR1}!N#R4c=KuasZ*$aHTssyMQ0Bt=|;sK4QA_`YTA9TzB$p4@USdyt;0q#4Tep6%uc}f7(2;u-OyJ7%wMHHA^vp{>H zz>cp6uPX)JgsQ=$;>cW*4RShosbzEDYo#Q}7uIw)a){LcwWLFfU;1Fct-z>C8m zI$)s&DqcY=6g9xU2aQvMt#tsA@GIUKK?fg!?{#NF3O8_|FoCZ30PQ$ugrq55hIx#< z>a)s)_}4 z;3Xp{)q>X6kMP~k3lURN$?Uaa1tXN{-6W?HJHGw#kfEV!?-|8#z0XBTDu9_ z0tdQX1H4j<3A7l3Nr@B0QRGoz(`TH;sKf!PA~?bALhz-54hkH)49p-wJ`E-j5Qho0 zd`AJakw%F_0knjQhnX9^NenbP!U4{d;POrZbWJj3^ar%i6g)TrHUpF{K?OWG80Lak zv@(GX_ygTD1#U+}aw~`lYRD)EyYezff%fu(Tmil~8Wa=Y1PF_9P%R89PBcJEEWu65 zLQpa14mz+0l!UmUB^^`>QqqA`xN(DOT?O_c&~7(SW@pl8T)+t4cPRyuFNB_XuOz|C zpa9w52JTCNHx5C@oivzgK!?SHLJxeDDrb=+V<9N5gKA+L5CPhe2)dgAwDu0v-UY3q z=7DT34*;z%2Q6~~EmQ=L_6UJ*+)>~G6$Y%J)}tWk7CIv3gG%jch zvI4IHdp2m%B!dErKq;uUVgRLi(2xVDCkgV45<7S>0F?GY7~~!wP`wWE9dou4J0BA> z1L*n%4JHpo7LdFRcxfnzg%AKOCIc;?0u5h-mclE5PAOqg-~lbb1nr>&pU4ZkW)ZZ= zn>!nHjyh-!4X7M}sANV}sl*OifeCde_@HOd_AE3-pfy2!&|ru5-vU4@2Nb~Sz?V>f z!;?jykq5N-8=QneS5Yc(f+GQZ;UMVH8T8QQ0EI3KD0D${RxAo!pwI;!AFRO?;tkqr ztH6#WI5n7jK#Pc&z(b#)#fq5DU{K(510`HgRDhQ0g1Shc1jr96k|iN~4BZu_K*FF? zCZUV|SW1)xKsqGAr>}u`yMcO3psq7$!6qMQ5NLmWp%NEpOBI6#Q-A^!NF3C80^Lji zT9F6hb7Z-()HBtC7S=I<$DBbdAthGF29`ocPSBMJ5=9F9ppap4P!Ly;Qect>HC|X9 z8H+(~1g*ydHJ=rj6hPMpNhyFex+;h}GPoCk+V8B6ET9ep8>nz|WGq(TEL7wKEnI3) zD0BraxG!{7kSr>M%u<7_W>NxeU~mLo^UVg@MkxqtwSl}0s>&5W1FKn}l7R;lsL+%k z2rBBpZBqqKZqW73pi}SXGZsRQ$O0u`7zSCu0$O(i8bSkQKG0HJHeH6fj8J!R>oW>~ z+WVja2AoqN0=$f%f{6vR@EJ5o#|-LVgOq^6AGD(pRLqxTDS`&sm_Q{Os6u9QbjSu> zth#~GoEda_6PqT}3Py8g3k5ci=mJJ_W&;H_#|I2q3T&X;-gyMf6qrEw6)}NYD+QqX z0#rnTtO7R#89+NI6hJq}LvFeR?HC00@1nZbbrD%-$UF*4~g zsDr9=&|&(Z+glmAkp@3Ow_7uTj?4nBuwn)EPnkidgRz3gh8RGn3S}$tII@(2R(yi8 zzZnx~4+Urf4a5VVHw8N8Pk~)v3L`k=z*k5!fR4`tWfjPn2&iQW8g2pepd%yPN}y3% zP&)`T1IMDo2`W2SKwD*mK`ahXRu=|cCddWqsj)bK*8L%Go8Urh*8@$u2!jU6m_XyP z;ES(Wl!PH$WtbJXK*QjypoW=(FzAE;8ORlcpfmJA)i0>YrU+VG2v(xV3_d}MSwT>N z3pRPn?8u1jYn%8jAuaZ0=10RC0m`E$f+0#phb<$uu%l?_%F^yji5PR zW-}(x05|x~8IVzs`#!*nB$*Y!`{uxgae}fNlLAi`=q7m3xG+nJ66jn71!hn`A3Qs+ zzyw+c$^;&DH3uDF31V@WGjKpgnLt-3f`+WXJ0&F)KnJ&hiw)3@DVCBf&`c_eBWRFR zfyt4<9aOu6(gce>BcCD{s7&TM2$~3mp5V!&#N@~XTKEiZ4ReC0^_f6@WpD?Fm4}fV zT#bV|@R(g@&;ci~F#vW@rleS7Z$j~*%CC60m^F(pmQMkK<6fcvI}Sm2%P;R%$Y$aXR~QC1(-7{K#Bwpb7l!} zR$^9QbCk#uDB}hdS4fMd*)*9zg^2(}IjAti2{0i&W%P-~g43pfVU*UV=}okN`C{ z99c?~#K1R0aVddU)Pk;!gzfbQwbmf53PI4SZ!SjxP)))PI)wmyAQtG(MlQ%waCXqz z>@1M)Kq)|xl^Yb=iYyB3noJyu3JUC?k$q_p1)hlmtpEotqf`PbD?|)es=nNyM zDmuZK<;WmV4m#}ue3(6#0u#uqpfOklF7SXNXjL<4ry9rr&=5T{XzY>?l-NL-1mq|K z$V_Mb-O`R7+m0Cc^?Hx3Irc)3!0w?k8vu376X8~5;BThpaV)+ zl)xd27zqV?5VV~ER3Ip_gSxTc`@TU8kYbSYl(;|xNT6MvpjrfUkqUTF3~~&VFmf#- zjHpG}6_^!7K(z=n=v*AgapOuN3S1x~*cF69tDv~RwTOrUS2pY-ThI+_pjrfU#ekx) z0=oiOi6WPR0E>eHmx6$TFsv5g0v&P)sYRGULw_s^+=yBPw3-t%{0%Pkxj)^%&Z^=u0=p)7E6f| z7szW&h*|_xWhyZ%D1a&s&_+ZC&}u(vGX_u*1FE3FOXp=kj+B6$qy!ol1r2pGfi4%} z1LZ;<(6(3}P;(_qkyAksR75C1N)b@2gb!4dSTpj04o+hP-yp-JzzOPcKsvLGAeG>@ z7I--;52*Np&mMsq+MvV&o-D$gUEu~h3v>bo=%#4Mw2%zwpt|BLM;7pHGVr=E8&nr^ zfYzUIaDy%g%wlz9aEUWDWa4sHb*P!|i583cWmBtczTP!Xdb2+ClJEZm?|LqHqotr*ULMzI*J7(75b zz*!(g7szoStiS=9B$NUlc?8<+!33(HnLzC-VNcMEI_QWK(5frY4bI?FPC!WvWDIDz z0;mcX0WH#y22HmJXfR1Ah-ffLfZPvigo7I0pcrQYjfo0?YH0xl5fCK;+Q2KIAOe}P z7XytJD=b$MgA8~pfJUG}=@E2gE4P9`mZE@y08_n!G+t#QSxO?_yetX=3L@bBc_8~i zhJcc~B9kL%x)~(I4O%y*$O9^O*c7-RA)~+p3K=%XGoVBVs-F;gxD}Wbq(Bj_fT|ia z&T@hQyrxe<7}RM74U9p0+f0z9RcyKp9^lqBBR41l!G#uRm{);aK|+Ba6#1YAnIQKwbggRm|tu0KQ6{j~mp{IRlwjL$#X| z)b<9Sk%uTa@#h$E&}DT@j<6iV3SKsXo@11_L3svryA|a82TqW!NY3E{4c9_*0jQ*a z+U1x^J{c+h~)hn2{7tS@$CDZ?yPki!Tx(FZN$KrLdJF(9FOECmu+E9mYa zaM1&v&jn{((Bb{y9z1CH26UDw$ni4ZT_T`*8MGt?JfUU->WPEeS_-V7$#}4DIFRN` z`9W1SwDA)F8pz{N;Lq~pWd^lTK`XjIOCCX&Wx(wMZCzpj%^5)EQ^5rlWY!rxC8)s! zx_Svb*$f(}R$_5v0!1Wfr8%gtslfyq=LGoxH1z;d%mTW{MTwb@i3L1(q|c}U8c74s zEQ31N;4xUp$Tg_onZT$B76sk+1nT*hDY1fXF9h{gK_^#&#{s|xZWMY;D}t8WvSx!8 z&VYxI6hL(nV+oQP@By8m#=odQ1?ZRxCh#CQxIwg#k%tvjh=P&`$nW3^E&y~O5))`G z45(HDrDg^8Y*6}##*2ceGLs{BmOvHQF!0se;GhDR&Y)%%co7YXai9WYA!OVD6sX|& zaM02kkR_06DFB?+K~_W6LgsyVK#LKwK?4_{VL$K*ZIIbE4$ye30u#6e3!3}^bw)sC zHK=P1Dt|%42cWJqC}LPaD-mIRCT4v`9Z+Bu@`BEOfDe?jqRec9mwLncY5bsm8b7F? z#tfdt0QK5o(-6=kl&!=J8pi@nT7d!&x_ku^1leXx0idh47_ArdZLNkH@aoZ!RkKnVz>0JI7N;%f;-W>AR_P5VsXJ*S}78w)tavpI5r z`ddn@pi?7Q71%*F78~U3dL>o`M$mR^aQVyz+1d_TFwF|ebX>k5Z?J%7eZYHL9T`9^ zQ;>SlLNHLXoe|^=aKnrd)V&AYbp>gd;W}9q)G%X2Z1x6>( zdb|Js?Li%X@Ol$ycb}X49}5#pJ#@mB5mekBU;t%P&?caI(5MY)^#-U}#s=E31R6X7 zYX`5s19_MQH0cl8^$qIjqa2G38hvE}-Es(9-mC-~LjkXG2K5XXajtO&Ed_(FYJw~v z1GP**BPfuv7`$WwG_}pF$t0l23A&IK)bLhfgfFE4FCdmsU{v5VX9Ar|4O&$J@&d=u z_W~EnNq0!G09sECSwqEva@q)Jtp^i$)i$Wf%i$}n!~z;N1Eo$#EZ|C=pjZH}paL&S z14lXwsG!M$oO_EI3m|i|Kr5P|^&|LDbI_OtI2ITbK(WBh4_cqasLu%R5prK(X5y-6 ztW#hFwRu3>?dm}b6`8?2NX-Bm^#QS*+CslP_pGw zWCOJ$SU?y5X)qz0H{j(~knP3)q-~(%!LBR_;vJO-wa)E|)z?ZmzYCuo}nOlL2 z`!_2SH{^;D&_PU0Dh%L21g(sO#0uyROi(q%0jW-uI6-w08>p2GSy`q68d+lkt=9xM zDL{!F#AA|y+$p948h`{f)xd%xpkuAgm;|5!&H%nG7#61k?ppQD6rf4;r6`ReX*N?pcsag+MF#K-c$hYBDi^=Fvf$)InFl@|ZJoD1Z*p zl*m>BErSI$pg|+FObq5sAfIuA{R!GBs{!^rXat7=RG%v_fzEYc0?iFDIi6?85~u_X z{DZFTVbW#rhqfI+%_7jQ3ed87P|p!`syApqJ!tQs0wZ|WC20LDs89ec<^pf!01dvf z;@rIpJ^GFZbo(4=bO&7MgE~}@tsESVpd)TTO$nJC&eS(r0{*WiP<*ekGbe`H}|gCu@|Y;Z(@22_>6Z6#2PM2QVF zx}&1R4jSwQcVNJSN-PQtnoK;PsUQYTCK+(020D_-5p-7pJ9s?w00J> za@w4UMFE`tz)Oe0m7NHv_6O~#0Tu78us{cG21TqMV}y=}E3sHHfR^;3Dr1H<0l~^3 zEkAIZRf9+Dm1>S4vlv7`MvEvhNrTj(YZg#o%7QHHmH;m>2DOtkm;|!8L043PE*Ar( zZ%{OWQynP685Ee;f--2*H4L+(NtPlg zTZ&{UvMI2DJAt687IMuQ=sY`6>8t=5+hNjRk}zWetuS!N2Ce-T03}Oi5Q_seK?!Ct zm@^wdGB>15RAL9k8E6p&D6xRT29&iy1I*0OG8{A>&HyUSm_h5m;l;Hg2WS)?biD{O zsDaWzSSBr^MhCy1<}s|O5w~3oaW3NpqN6X%bfGDH&`E;0a35rI4W9 z<^k%zGlRNJ?4UDavlN&?#U`^OdzJ#DAPa*O=z=zOXpyPG#No)8rNH9J3)+&3O*yQb zW!7atXkq~+Cs3;d6y%KXGM5#ymKf*uIhh=AnF|@3K;8tRfVu|+a^4$wXaZbjKx{#j zxuE^7ETB>gv~(2IAOIcO0*etuXB$+Efy-QGP??Jw3a-4MUK6NN2e(9!JOpZa!`A$= zK|BOHRYeI;`yS#Ud}A%Fpj3_QA&@PQ_C2UV1UJaIL3cxFGJ}g?CTK)TfJz=mhipw| z22f^XQef6(1{J~3UN{G6-q9b_%>+$&nK6Nu>@tED6hMk+M(!=_OoEWSB9N`b4&L8m zlcmT5+7b^sddZ3b)G1?k1np{eOtER;vK0RR;-L10~S8dptQx z+*wMX4Q=4|q9b1x&F@Y%JTp!2FYK?6(*%%I|rU6+9wbP^jlLrH+z0HEEO?4SukmXa)xHqa!M5(mn5 z8Bp2pW5WBwQcJJc=Zpaf#81}_6Q z=uj-s>NxOv0|ss(21n2`3q}pl#wQIX1~+ML32+4|0A4!B&+W(zI+8?}K}4F{3$&#b zwA&Uc1=>!+0Gig|2NiBipr(ih6AP$t1l7!-JFoN^HNZokAnQRxbD;C>L1%Mt^MmbR z&}W>$=<3K=!rcXF+kvj|04;QJ02TNwpk*zf4FKS=Do~}$T#^MkgACNW09{TB$`Wjl zC79r(1ZsXk+Et)!aF9b#LAQ)3faaz_ZEDcAN>D2R)R2MnxIyi8(3)d*Na@S&$XEi} zxB)uy3US5;WH&bGf*45Yi~FDrMo@Lap#a;61sYuejUIqDii7M2?XCj(feCae8EE(b z-0uT55I}1uxWQLsuqZJ&GI@fQ4}vN_&?-JqN(YZ6{`>#`KYJl~M=dimrowhZR6ihh=bttXTjX4vR6+SzC(W zmJrAU(D*QD44%0}i3wya++j=*hjDY?YQ3LI)ErpdloEb zqre1e+~_#&uPIbww`SA<@tl-ECvh=?dZ&z_-YEmP`v_i*4^j?lUJ8O+{-9Qsw4w-T z={&S?C7=ZE>$7Aja)3NsL7$Ngl)&^ESwK6U zK*JiKB~e^V^`KQ9;MxkjTM)_vvlaM3R)P8)poI*&47#A+IWMT0!S2|=R0Q?}$WE{d zPz9^YpaU8&04>S@4O1{elyHM;ZP1VmXtEs?x}XiS3<|uipsih?^A;e#E;frJN0}pkA!zEJO+h$Ikpom)g4Kb}EC0_}2(pv~)C33Ba}dRf z9FB~jtCTz@*fP1~5ISwU0 z&|-Xl@EMGpAd}c2zU2V2qa266b9X$n#HXI zK3Yx&G>^)x&j{M|_U}J4Xo=n<7Vz-}%%EsyDrBj5e8d7iwpf81v|tS6X3$Ne0-m6C zaG+T@25_Q-xsXu-bO5FTvm;lbBlwUj2GAl%22eGlqr~FKQV3pZ4W1tV|DV}Sfx%UY z6*N)@o(E!7UOa*3$)u4tIGblfTOyE{v03B$~qyRoH+8_(!5@ygTao}iU0w(bA}sHy|alOAAzXMbqj>INzp zK$WaDqm}|li3E}gXplk56L3g^_9}=%w~iQz^gK#*Q)&e556NDbZ!f% z=yR0I$x`6Va{R&!8b|=GNE8Guy%7OzC@RT<>>LD*_JNirFeovA3N(_1?D+3fG0^nv8NV5P$Gq-{u_-qc)3A><70b0HY$`GKrPw;vDpoS4BSV5Cx zP;){1VjFhY|p0~2_B z2XyTXsOb!9-+L%9f>N*&8|ZFn%YW(n0fOpf(4)BXf!48HOw+ zE>NAt;mBM9YDcmuaKTn!ffOomIWm_)$~JK`W zO~Mg02?k1L(nX+38+;?0321B`eC`M%Xly?Q)TU-sVAW&}FlUkh%|&T4dw|An85Nko zeN@m)94okw3L33r)nGCK?FVKA?Yc0qX4C-b&}Y;GWec#F4#*;~$r@&ib|6_zW(9Lb zGYCt51~_F5U2p{K?Ut^04;BK z>HUhYMb=05caqJBT}hx; zIH(Z^o?_qtH{w9)8D$OtG_(R9j0bi4pmP9>pg8~q1x5uP(8^xW$}IRCfDUL}7u=jx zQD6kE>9hg$|3IhPf{(8-04>l|;8_k`UI+C!SV{mK_{^XQUvT_0I!a_IFgiM9D=<3V z2hS3)fDZQsRdA5DxdZ6TL(u7P@htU@OrVoZ7#P647G6fsOoj@muw&C;G63CE#|YX! z!KlEf$rNJF3>yAs)MWAjO<;hjNPv19O7ft!(uLBXMe(4$^-Q4YDo#fcuzu$W(8?Ro8RN3d z4hsB=VhXaL?d6J`3apA;3OwM|v+RO zgGqz^#iQxMAnoxBg4C16wJQQ%Z$Q2?(DXV+k|;8x^uWKiG)jb(@^v4SqF04Z1C z0qI}|bv<}MQUZ!>p!r1i(8W85KnRc^RY}L9I#9B(xN0i14 z0aXd0{Z(LRvp}2;9(aKkI}o3v6+57jdlqg5Xp{(nR@w@I(w2aNP?n+)XdkTvcnbok zqbY61#NkxWZN|u0@5l&h4TEbw2IRGBpf(+|1E^{Sw@g8Y=7Y|m=2l?jJ_H&60`Ct4 zAAkX_Y(W>9fGTMT(CQk-LdXB$v(Z2WA}B|)D1b^CP|*Ua`@rLt;2BSF8wE1s37T32 zr54c67SO;G=nNwTa2p6Zv&jlAsu@8I7tp#M7Eu2dyvj#F0W{Ug3@T!v?OaAkw*?de z;5kgjLT)9{9ai9RT~vk4SSC9`gMgr75$r3_VnWc$2GDRRWU7-DRQ!OB;srGg8NuBV zkeP~%pv(z%0kbXxD`<9)1vIe)nn+>RWncrl2b9~HKy516xl-UW$iRUIT7bZ6#v}nc zLk`p~S76X!5CM(zWP?~dO6;zn6A9c46<9!fCzY6_K~t6@p!Ix6`Y0&V!09b%s zfiW8-03I^{2RVZhXyR3g$sc^~D`*xQG))P*4OxX&o3T&=mHx(8sF-e2sg~5?QfkOerhPZ|e;uFCVdml+w^ z>p?ySP1P`FgO;hnc87s(00wy<6jY#851*=JQe+0l9-9Iqr~#G(UaA8=90eNUjGz^a zETEnTa*Tpvtq^?KFRV)rsyadS7qt1t27$_7fIpe7}#&xxq^ zKrKyZZ3kJ+3R=O*3mTXLpOeF=&nTb>jtFK);MECCg}m$-(FYz}WP=TBfHv@0Z1h1b4olpci*g%O1v`7?eIV0#e1kj#dusHNaV9@M3 zXqEwb$N{JY25MkK4mki_7|oKU#OMtU25!)TQwGQc9(ZXfD1C7&uyMCAGBJY|#laIf zs3?V;dY`JTAl%lWJu#zk;zd6wtGnl9JQb-iUl-~4Jx`MltH`R z1Q{7X=c4m~CRG&}9VK!=+mS#+1mL=qdnsrMt}=t8LbehUXsQ&Hc0v7a$WepL0^lKU z@B$_VP;Z49G?vbhrNAU$3+e%J!16Ze&IE99F*~w=&Ua&WtSMCF1htbvQCFpdB+M*_}abY#g=WCX1O%u)iKLjs=lWp-pP1kJQDAdJ^wg5MPg zTCxJt16olBIs_VAFDk(AQs4$TTLkr@1n|ryk1`vm00lb;67+(gE7F-9K^G5lpJf8A zGh3M2pp)(x9Kj3NK~V=p^jQdASp~W}6_jZL+gx%pb~-=GK3Fef^P&KxK5jk%w5I~pR*3{0H%4tyGQPT7Z~(#34CD$D+9G4m=A!AhKhk&?Tp|XfE*uz z4iI6MR)pN_3ThBQ$EsN%u?wA`VbNex;8p-1-wA4A^MbFOU~vR(qy%LFP^3Z*zE1!p z2Z*ad`584j2?jBi=)@Mppc@51F^d$Ppk1qu$kE9LN;pveU`;w$q7&3^2Hju_G8<2H zvVo!#d^aXIRs|Fo9TCy#D3C=&jPk;EJc4e;RbqCeFd9Mm)dqYr0@T-_L=1`vR_G9g zBC`UQBZC(>dqP;?jn|+Y#|5eaZG3ncLEUZ8@p8B_B`l+GK<&VpDVZ=c3aAJI9T)@d zj(`Z3ECnV|MqvbH6ed`v1fLQHS~USOo0kFPE%5SP7SQReOx)0%3X58hCt0xNRAx*E zz@rwlSOe++X1D{GVGcl)3ZUJa(83PXM1~Gbu!0=I1&V(z(DFcVcGgf}2dy$x0S()N zrd*+^;Ti{MMVA6GsR3F_(;$C?;})E`p#?o^kb;*qa(IDnG(wAd2FTnsBm<*IJ;Q2M}{t6_7Tpn(PSLK-RRS>aI+zLgkSNHai65NOnc>_AV0u&B3z z6zCR^s5gN`y#cHsfJD6k-lzxX253RaNT5t-;dUgYOlMT&fTmpVwcwya8r*t6&~fID9h_O9CMXYR#s-vG1VH=qKsUsKy68$=kd;AP zj*KNr%%Fu83T)o++jo>egOfyE!2=#r0WBg2kHCTY`e0jF71+S{G=Sml2A>J>Oa%SaWNp%(b_GD?BeGlMMx zHLBUb>l;9)AcHCbKF~#5pb>r*CD0iH5W_innH9J}T_P1FW`EH72S(6AJ>Y>d0R?cA z0MzpWokj^7U;J=cX&^Td}xu8KEPFRN&>_*54D0o7U2a|kBPgv2U?wz>vVn07KgcnlU94dDf<{)DKm$SyApd|0YtZ;Mq$&oFX)$K; zF*7hRf>)A*j=cnzE#O6S9H5mgkb)f6ux5m41Wk<<5?h6WuBZbI&LX#tz*Q)?u?w$4 zLED7Ez=8u*&tVOE%7Y^X5*!H%9FT@7Bsd;Gf&;el7AZhL zbrGm3h&@nnI+O~5LdP`X0tplcSQ=RdUUu)04Qj1}mjHvOJs@|8GH5V?dST%9fC3|^ zCkE-T_JH?3f`vgBw}3JcxQC_01ZlxDIYK&OOyGVmW~B{U=!?B020A^x0eoCN2lr(b zMm|uH&!EAyg%do!1UhyOsm~4`t7MRJd;}i!hxOT+!F@C)Z%}6%a>GpvrxIwOQ3-Ta z5o<}75(j8dfD^R#f*W+S>l{WUR?tZ-9H7kvk^${o1Q`mtDM5)}0d!adsD(L$QHcw5N*`$18mPWf-~z3b z0?CL-gBH}VXfS~-X9Eo>GlQ&W16vPS-wrxwR7n6dT+XDx?g<{nVp3rD2Dg$y7a22W zgLcg@DX?efICk*)f;+t+vllQb@PYaJW zXiXCb_#ig$c*qg%ECn_V1|IN4xRf%ZBS-+0@Oc^FJkXk|0}P-=Rd6BD)*et7OPX7e z6>KCcXf_wrKdDz>0h#NPs4WjV0tmE#5VDSn86?gKIxv7mfmz@eBP`}Ylf?`Qyx;*x(CQ0r1s3iFY>d2+ z)wbaH1)Y-%swJ5~3%9`g89;OI9FC0O>!v|t8sNmuqrj;EIt*TkKTC-n+DTI40A5g}kzy@k_aDi4TK=)#? zg7=OouzG_h`&dA&70}6z;E{Az@R9S(pku7StqN}N78fQZUIiuv?kv!i-b|p~&5R1X z3Vh(B7C>h=@Pf~fLl*}fV#f&Dlg$mf?HzQ_Ip|~<(7s!4kWSE`AmqX|(CH)Wpk-tn z3jEnh9FB~jy%ym1m;&fDDJIB)&m5qzV23ys)bN3X2L~iPSiqsc1v*Iq%mQun0-x*- z9$p292lV=SHU)N&?Howq!3GKs@V;MW1vYQcIs@<-e{iFf*g(UP5W|&NKy1)q#tK{t zJl?$ERvm*97ig%AK?zM98Ukz}NhljMPzO4A6LdrpXxawkG*IdRRSKX6kRtfRM`i^! z&_X^Y$i$NpXpIab=XpK4ghM^K+hP%wMPv!odms-6+C+jO3>i_&W=nailB?EIKhU2 zZc_yv^9-8*SK!QcWCEYL1xlTu)&cwsG0<)VGbR>p?mNtk9QEMoW+iseS}@2cDhp_Q z8gyhGcu>s*I)JMP%H!ZI89v}5LxBxcTtNnRL3=?#r|y9!9Y9O6d2+Hq`@~TX>H{4o z%?&MWJrr0#BlC=)C97sk;1!afjW&=#vH)#;gB;rj-q{Dc&>nQD2jVh6CD5iE@M#y2 zQ$TR78~_C!D`;&Oct#O=Y#(UD6li!L3vz59_^dC;S$XiAp22-J76njp!8pB70kn4p zv3(76A1>t3J|@sQ4jv^YH(pSrfOfhnfDV4kQUa~31f>}8op@jdXl@dIN&{%5(f~AB zh2#?OseN3aDS6N$D$ub{W=uYyg=(NcD+H~=2l)bYR2kTfg`mAbpm9%j$SI=C+#-yO z^~#(|3{L$G4GkB-2jMbsf97D~0Bz9YRAhrhJY@ALvm>M911|Wa6@xMpX!)TGr~(8} zh=IXg1FA9@92r46SwQDma=@h(ILw(qwy=Y2VE`TW2)a-m z6k!`UA&Nlj;F!&rAlI!kui$h%z<{{d4ZO35#f%B07&Mx;g43}9ym)~Ddifg2#3`K6 zYuy@H%$a&PLGfY6)B!Sn4rdm~Do`MS#x7VCnH(7%E#NT-TCT_hxsQuU1H5XHNdZDh zKq$ykMkWrV8{0rzw;jP}k}!hC?!hy0B96?EbEr6$Y?3ZR5;#v}pm6YDq{!rcJb9?$G} z0=cLJ@jz4Jf(#7cHI$A{|%1n+TS)iF8X>j;Kcff=43==p9$AGRH0^J(N z4Jutgi~j`}xF=p_WHN$G{TXB{$*M3Y$T~5aGifNug1W;B3bM*fj-pv+Oe&y>5bzE_ zM$nmSERJ=Bp#BT!9BW63oGc|V1<<*Nj*KOs@hLC|v={|cyn#8OV?02`G?)XrxdP-w z(2N3O5!u?g9GS8}_YQzI%dvs(uLQNX!2NH~F_2tfbHQs61fb3Wb70N_b70N_bD+)w z&jl;62)IfqFbnj6SF<@> zsDaiWfYfp*ncFd40Ns9RZq9syOF<1JC;?i93}%53D_~LtO{Fj?GdM0_%2wh8wHy=} zK*#$m09_!Vpr*kDUO>aDpazad9|bUr!<;Duv_k-N_5oD z1(l{5jtrot9O#TmB_;(iP}2_7YY+pK<6H`2;J{{r?hXa5s}KO4I-+O}cc6kfsBmWm zrC$Z`P6p5^3EZH4I-pd4gA1bY0F(wD)y@Da=)v0})^LFaqcxcqa6v9(5>&zBQ3M&6U7P9MopjWdI$82%b^I9FG9I1U@kg8IM4SIfCZH!4t!fzyKZn4<1lt z1x?EXfS1f8oLY{Oa%}TRs{w@ZU!@^4ldBPLMD*bJ6xbPA854|Xek~`9;H&^5QWQ)Dgun$dC^3R6hX!aG`@sp4|H7#V zUb^{*(-m}VtOEFuF;E?jR3kSaYA}#u&<&@5I6)h5%$UA_4f(+d8e0Y3NXnRH#`FVp z#v7!W3U0-K7BZQeGeM4(V%1>!!l?wd@&~7qAoz?wP)QC-B(P(gKhoP)h}pjS;~K z?%Bc;EdzA!7$woZXM!bKU55WmRt!_13HUpcIYSRd0%p`?fNNkx(!i+60Mme)m>Eb& z%nGcIJzQCef}jBH;R3A^1c&VcPS7DY3apw8Te!@b4=^flIvxO>Ar5LiC@>1RIfCc9 z!HXbxAaiPnq_4{WzIuk~0K`mi7D3Jq5DU3MvIjuR`xL;L5PY&PX!#eb2Gbrc&>Clu z0`MXTK@BF*X@;OP)j(ISO5|jL+V;!~7!{Zyqq4`DvJ^NS7chbcslnR7i@{hS!NLp~ zcT`|jWK@6{1s;SWn8876!H!3G2rh)=A5bn-0ft`V61gt+6Bk22BQRiXgrN2Odc!7--=+BX}N^ggE=cnWbn3jVUqEBrC`tEu7#E zs1hiVgEpHw)+>V6or7|to1zeCc7p+2r3-?p1+XSiR$?ttQpy64c!GskHJHG$40a57 zjEYeKB+sD40O}W+gIAP+QzN9a+rp^83ChPEAllrVsRu+0g6|L(gCvLfjG*MufSepa zd-kEpK}-RZKe!ddKm`J%#3wF2fE|dIAP{1R6yeCAD5uQecz_waf=ofsk+nog1QJ}J zTh2iP$pVVt^Tv4;r9o9714xKPQ61t_VFh+jOZ^6DyD5Vi(*-67{{$0gO|F6vXi*V( zAeR+fYJo>fSRFyp1G=UMT=OYNI~stti%YvINEd<`~a65wb z&4b3{nwhhBSU_venwhge`C3Pb0dzV%vlNH}J;Vp3ZVG!AsB^^)UJVHnIKZC8175Lo zfIUlr0d#vAFKCIUqXcN~NSV>Gi34p>e?}bCStObK({u4Z!Ba0m0>LYydWEUIkLdLG1N*4o)CR3`*eZNx?HPjto`|py~|N z(>=okKC%OpO+nGOfK!PFoC6hvLF1-88caH%gRl$~gcTS-^9@-VObnonF`!d%7?eP_ zP=Z#Mf)Wb@X!HZLuayt9bpW)t06ZPTqy#D^*+55klw>I~I5I%e0%$8LhZ`?w{GADO zfDE)B&jsqoD=>f-Oo8|Fuqp6?x*2>5prz^Dpw&G*8cZ4>7qKV^Lw4wLfSjYx2-*e0 z$PJnRVgTh0c90qq$mo6{Xd#ReDA$-VodE?LgDwLjI0P6RIkLFTm`;EM*)^FyFqt#& z0QGHz71$kjFoAOM38pLof6%Ca22%oft2d~LrGV0Y#8uFMqXb*3q@)&wE79)3Yh~|Av1thd@`6ZZ2|e6&5UUSJb_;TuOiq$Ab~?GW?13| zFZ#t&bfHx^AZ4KFL9TE>GiHjAwcDUoKS=#F&^$1xmyWS`o+d#HS;@Wt9u7ai#rOi^ z!U3h_iX|MFQHyW_;o!)qXr#an+O!Q?%EZg6z^%Xy&Ujg%VFnOW3N#V*fk}}YM1Nu8 zHe9omIY+79b|Zd8$31vSv&|G zo&)tOK?mc3j~PJg;)BX3q_GN2zqo?8Fi8mn@UVgAAt7D|_XvM*DnSN7n4w+=-3rgk z09sa|0=bcl8SZh&u!$0Q0|>51KdjpIGwRDvFl z0jk{<)ImY?ffIBz7o=7|ZO6Xg1dXmRfLgDh9h8vfC?jfflo7OS1+?W?nj6$7lmHd| zNUc~#1!>S47X?NIX=qEB5w$@Jk}$}EwP_haH7a!B3zGuq{!mz@iNu3!HUSmfpj8K; z$$!v6)u1&n;H4N~pRs~xcKAU4TfnKv1Fid^Qw%JyCA5$u(^){vX2H8pJVD10;HvW} zsqI0h!-8&V2Q5iZWCLA!!=wZ{&x;K-^$xnR)saCFT)cp4dq$+%9#j&5MhU^SJrlUL z2bl$KC4kN|!d=^g4nhL8W)#8U0lGLFRGpAs+w*}&XqjJt<~cw|RDde{7mV-BEoT?F zvJ@p1SV2>5iprqlggCPlRTNl3tI`!gXDva83t-~}QsBV~MLqDrOp3+|td29dvJ^Ey zjWqCOy^MvR{SA=OtOei|aS;l_j!Y#A!j5b?O1$8)3`c%XY4G8N4A2X+5n2+!14W=z z)WZc{g~JV6KMHDfujK?y*fTJIt~mis*fYqPGsuCaIyD(2%o#vO2QX5)PVhKz23mjQrGWzd9~%Ag4|l>u%l1Kd;wh^gEPjF4#}CI`^@ zR}4zrkWN3S8U?M`<96j`0X1~)fQxtV_$OE$=)y*Bq+UN8XgG)s+?xfB>M$wtfLsSD zKlQRed7DR36&zlWQ7%gmn?(t<8=F;wNkM@HT8coXgK9vO6+;7PnAj3Bf5ZY>9Kfo< z1e)gpZOR7Eba8-Il7V_9pu0wMvXnrVt|~DpK$iQ0IvoN^;4u;g1r{YHP)~>zdiM%w zl8XUkB6#GM6|}W31LR;2S7;%?%IyfcN`e)%wt>Nums!e@0d&X#NKJtPLzX`;vlJ*U zLEctkQ-CbV0iDSOnHGa~zo1nesHF=U>IY>7CXmfcW=sm8gB#gE-b75}fhLw1KnWl0 zo)T^aVOK>N1y#`4mI-KMiGr%Df+~1?O8~UW&XGY;%aK7*(~&_@-;qI4+mS(0$B{u% z7c?B_$e;*1eaR5iX91;V5DgmI0l7Z`(#+OSlmPKm6h)aF6nI$bL1&TIC|ZD4tGa?G z5W(|KpbIt>B+Qs@fR2_DHDkI0qIt}iF2Ki^&N6_q^92IqOGslUuqGU+qkyd!j@E<& zDFc-~$W2*L2>~5DQD7AS`50V2bbu}&RfR+$^hiz<1yv0u4NhIYcP*UXB(C~-7&{3caJUYS;8s6Xs4bgJ*a)K(9IgFqND5!G=O5H3D z3ZT3CAQO}d{JIR_RnUwI{Lr0EY@nHONIOUbvOrkGm6rwD&_y2CWdx1zAP7i0V?G-EQLFP>;@`W zzoV)Z!F-{V2S}16Ks&ikcATHm=ns%KTxovlz-fW%0F&!%F}^dPYo_5 zEzFrP%0DG0d?g^Lodb#wSV6?3z~TlvtpGIsp}`aZ8gBzNUO-DW6!{z(6=f7aZ4@?M zR!~<0QeR_foj_7NsC6O&>b`)2EJcYQn#4t*Nt^?e#Nn+I4p1=z&htpE6AoG=a(-AM z=LaQn5e0s5B8OE&WVTK~8^a8FK^v|isS^~Y(6K6JP-7IdR%I?bq zmjMl;Ix;92y7ID0fewoX)vk)*={*KTU63nul$aIuK@1ZmEk$h*!$3(>Q3t$G98@=g zYi|ib22icV3R-Rqx)=d;EDESU;|R{Y9D=N1S^+#%qrs#BF-JvF$B|LdP=QI28I%Zl z7`Z_wI2eEkCIv&#K3rXf3T{Oaa7CjC>ZvjqfZN;*CZMZo6j(JFbU-~n&|RXSlJeZHqZ*7~B|iOcH3U zhQS7OBRyzj3Z{tLSK5r}0cco^MS%w<$l@!#7PMbefdeMO<}0nhqQC>Oq{W=+321{S zcQ&YL1&u zD`+a{c!J&EqG+L@rJx1#Bt(xEScTJssq(}x${%0#On1NOmgBn(#<*3Z?jSOdymgI6khEsk( zC%7BH8)iYbxtK9^FoSkOm@#c(23WO2fwmwGB+@rGl9-zW7lN< z!31jkf^Gl6WX@!uz@eZES_TYSH7)@<<=Bw{oHke#I23slI2<|3ctD4$D{?9Dfm*nH zp!Q)3sI?8svkDAIO%+JD5;P@K16nHx@&l+UVK4w!@t`7H0J8`efEM9Apdy?F(o|ys zO?^PuP%!qL41=ldMc(KpcUC0L+9ff>DfiCTaQKnrl# zNGfP76g1olx0&cxihwStLIV|Bp!z*QkP$rT0&c}Z#(khnM@B{P$f|_`H#kT^H#C6v zqJkRN5=sn^IV?7C*95eW0_z->fGaQP_;IEz@Pv~LZ1Rc$G?m1p#LrT%zyNCEmt=uX zJXPcd9qkAj&SC})XMyLu7(nCnSxS%%dE5#-pq7;)ivs9^SS1++P}d4Pam5CjxB^{G z1e>@54W)xlB?Vao?wBzvf@ilu!%L3*pg}t}&;^*h;C)tL1>o)n_{1Xx(3TOF93=+O z@)9-;rXEH`(ApAa1<;T=b`7Q%OlC|oz--7&*a9f~0h2lN1V#l8MF#L0nTnuJJ~#Aeb6)7t=8TFw;O;!= zv>{0AOi2VfHN^<(*|LF-<`)4UY|gC9z^KRrI@%G`dlhk21RcHkA9SFb0u$&WY)5`? zUPe&%U%&{uA^|MHuEDf~QHc#MwE}cb-anYs1khn!aNZO~i1rzbj!-cLW-EsMpyG$m zieVp!X0c+}1EPhk8Fztb5i5qBAezmQzYw(UrliPH3cL#D=FAQXyrAV+HV{Dz2xX$cs~`e8mz`HZ7*x9PIx>I?Kd>nr3cR4(3rawX zVL<1#H-Ki21f(HeWs)v(Y~XNYP~eg-as-{I#4TL}D&G{C6?iq6z{j?OSrL$h^Ss~# z+(DPe^J*}GuXU7G!7T7m z?qHS{$mL)i3ZS511{KS^n#>ZQQWYz-V9ph-c;1`Y+bZ17G>wk$;k1$J2AvMBIn zv4Sg15Wxak4bT9(xfv7}t>6^^4aARWz$U{%V-*-9h-8gvaDd8b*yJt;Xj%cj6dkhe z1AMA7bnJ=)G++ZN8Pfw0EpEp221HAnF}(n< zLSMkC$fv-r%WwmFZY#Sk!%ZedaAnA@!E^(BO%FGymH_RWX2+PI0?qD0di4u9l_1N) zAQd_vs6yw%S)s$H0>KBUF=Z(-fewRU23;w|0$yqY+E|RdCTwdc^kY22Q-q&4!%ed+&x{x1zPz7s&yG0A2aw$gAQ6<18(k};ez&X)XkW#aDlWj z!4~3f-~#Xe1Dy;BIsJ`QlX(JH0E>fy26#*yG;QGcfhkMiBclSlCi4d-B@57|oC#b? z=Apcdpe;7xpfmPC4I{7)FVM-wtQt&bxIhhN(BgLmNd?gUP4N0?a4L4?WmRAY8Fquo zoH+xWRbGIy3J)uI{{g7ZIm4vH;|e~vhTE|olqW!`AJkjbU^>C12#PB%1#l}vi9wGM zbdWvhSWfVn%?_aA7lJ{jk}~kIfQnx>ZqUt(OohDQfJ#tgQV;;0@Ca&rfmbF8L-taD zR=4wk>wtx*b$|u~hZ%f)!x5__sPPRM%K)9)sDNZ5FE?~71GI((qm<)i1gYiW2hG!g z%z(_yfs}$W0`go5(y||v^;A5dB99p~vj9DHt{+?sLrygT8JPfyeaNbN*pMTrcZk`vZlEx4CnbmQ7G#RS;BQ z2el9d{1l8_c|p^iUpTV_0(iKQltn<5-C)QP2m;x{!^N$@2Nq;j;7|bFl*i-9=&r!x zDi93b_EhgCt;oj>DjKttxD|Lnm4yPIW4#+>H(m>;0-u7QKnN&MdZ6W*22%^P-c(=^ za93t@oXedBkr(&|SqcZ6ngXA{&Y&m^atEk@xxoZ#?|@4KaHR{{od&vI0=^;yTroyrNpBEuB1VY4<=CK1GFIr+V}t^ zIHbCm3)~n1rDG1*cQga+LwplLjr8LfUr14O;&O?gMe7uW}WEEbfG# zYugVxF9mk4Ey#b^>J+3B6>rO)ml3^?B2c1&N)3TP)Y)cOmPWKC7(i_a0b6iJ1FdJo zRt_^k3R_KvcG#4LCPNRqIRh)G`3ai5V8E0DWi!lj7hnOv#6gm{mnH&@>mMg)EG|1WQ44@@743J~S zL3a$ouEJx2b=4KXMyr7Kjw&z-yaVlR2B}j5H?zQ796>XN+@P5-1<(oYppkI~2JjW! zprppbXblvY zL4gMvZZ?51L4(jX5GH77+68n$JNV){aPWb~>o`DZ2Yl3n6N92TXm*ATv@Z};oJ?Vh6qT>BIiL1K&B`3qk8>9T`iCK-xefOQ1rE zd98xElR{gIIr9xr`3q@5lhF4YHk~0*T!1FmK&M=QmzaVQB>3QHXj?`>SOMCW0cEuX zoC?BB^(dWfQ0)!sV}Lr{pcn;rRzRm}K}V4Uq`-#>X)xVk0v)akO&Xwv6Q~EIz_M1! zT!8~L@74mI-Z6LLXbu4PGu%M4e4w@pcpQZtG=yf(3_3pu)QXY-HL{pNQ;LNGp`ev$ zptIE#K_kg5YoW#|nS%@jc?^_sSPESg1d1VE1fAc==*Zv>TG@0}P&Z5Z# z$?Pl|OyHGXpf(2F$)Lsxs2u^4gk*LuNM`3kWOgtUlG(vbXlCaEomK>@uGuv~6JyL4 z;LL83C1490=uqHN1fML$iXKG<3JlrWDZa6osJUn~}p8;sem?Fi@(59ESjke$W|1;Km(jR2?*^#|&R8 z3M$GOv%v>8gO7WLTvQ7>{v9daKotS#93s%EksJyPkb?&y3#*txS1odZ&puFK;boKp z9W@9_bs!908MIwulnQxm)4+;2t% z=uTpA2MX41!Pj$ul=zT6;tWclP2He=DCmeeB|Zg3Z(arkJ_SWL1wls!chDWWpbNXe zhZAxu@F^;S&c6@>-LjjdBnWB>vnVlu@&agwxg&$3i~?wC4pg=9FoQdCASDb6LXNQ0 zG?kbgncTp4v0+ zxIoPVCGc&U97^D$N!UOq0dXiWf`(+czz2E?gUw;7cVuJ*9iIrop3k&&a?FKD!6(2Ntj&K;zwDKQMu` zK>ffEI>LfOfeGXXX0S_`6*#07r9dZ!ECBamAq6rjsldU@06IkuG)S)?0-DofR*(eU zPy*_R@iHh#DoFYBGJ}d;Nd+m;{yne&lY*3jWVQkq=x9-IUKUV#W&-WzW6T0+$j))> z@>v8X zCjy$X0?C0+DTc_gfbuG6!83yr$UwwJLd>8k8u(d!ptDw46_~k|L8$|LH4rF&DTq6& zWGOHSIDs6(z^cH@t-uJn@twg@AqynLq9Ej0U!3L03O)rz1zq9`YMX(2SD-0YP+Ws%mU%(P zs&c^Bpn@Wjfd}021l{`xE)*EREJP^-=7M&SfJ!WBZqWG*5}=_8xFIYGpf#^j3M>kc zy+~jdvVM?+K^ACCAGE9$e0VAcq{Rqc*bS+)6v5F0E5kqwzCqI_AVa~2r-IhJPhe!J z2OV;MWN6GdiFGGtI>0-fHVzz8{rK$A%VbYwm!sD&zE&RhVF;tvd23d{nYpt3nj zi4hcT;Ev`AC!LQFoIh1ETCgTc)BNK)npm%$kdpaWIF!?oNX4?&VLzb2E2 zIdcM74s^n_Em)2PKC+CKl$jt&8GJq*1IQE>Rs|-cqzo!HAW4}Knv@~#Mi zVQOXpR~(qBnHjWZjYWY2l$ya;PZ6D(JwWLjoaP+Bso5bLIWhBq%5nzK_z|c!1H~Ex zT4H8EO3d5};tE0n9^eQ7M~0G+q9FM0c~Gq=1U3S4aVWQf5VZ0Djmap-9w_pTY@joEK}+dC6)mXxVN`%ELFNJ-SfT_~4mw*3bXW`cIAcdf@E$KvQ~VD0iZSlH@JS~23062DWbp$YHdCMZ#e*sM6iGc z@Ie;^33x&GP=Xp}EJ_**T%a>jK%4Gh$K8M$hHRjskV6SH1hHIE95Q*Y$OGE#AfaHf z9K4%FMS)9E7&;lE0%}<>fcA8O)(k2!>of9zCIbpVi;ILo@hAz2N6^7D(4ih>M@B_K zsCGfezyF!NL9F_I9d#melU zAOsq4WKs|U4LFLh)GIK7*6u(z;4?BiClYcQFB4zmW=44`h95;*;U zTP}Tbc_yvicAV@iqL^mCeR8yGo~641zC9r+8O}b1jYtho&(w*1YXhw-4($M8Ylzp z$HIMPBlx^tMg=w{22juG7;Qbhn(C9$_da7ZQ#q@Kv4_c(8dDY&<0w7!K%Sj zpuhrOaR@yh0=zL4v_PL3v}Bw|f!PtXgNYHkp$)X+kkJusUxWfP=;T~b#}s^aqlW_I zY)a594|G!-qZv~PH)zF+0(d(vg97LR90l;AM;EAnLHFW-8iH7C0_}$a?UG^uok495 zTEMKxtYE$z)aU@M-(*q%txWFrpQ#>nP~-zf@Qu5m z=Cm%uGe!kYU54k3S&9-M##2T|mNJl;AeVqjL>7<)qXv@o*AcA%)GJ;xxOcDxApmPtw?KvyRo~1C z0t!6RpcRe^EDB80pcS8>t|4fNwTOa5mLjtPucJ&hsJ#ceos<#O?`5h3)xt~;3WDIG z3RLK4EAjF%ftNjkCw)O9se<57lBLtW^*I3AQMj zGl8>m4=1=83)(*fIUu=*6OK>+}6)3bmN z#sOEfGe8|b(21E)x&=x%fchECW=wxTEo}xfrXNuH3#j!kXwCQm%(rHI2c=&@?ExQk z2s(fnq#tzTi~=KgfZ3Yy4I`*Mr@=IZ2{bs*1j;!Rz=shtf%*Y6z$?YUq8;G7sldz@ zCeX>hU}gi888|6&YB2p_1hpE#qCdce6qxyi5wt9k33SuO2S(7MaWL~8BWT?unE8eg zG~NYfzG4I|O$2MZ0bZub1X`QOsmToLgMgAgrzSI~XJP?zGNiv^;KabKXbx^gg7%$( z?$`p2w=p>?6hW@4W&%~sI*tu2kU?>NQ0oDDY#pe@!jPpT0Ltjhumi6_%eX)_DkFHc zKlH$BP_lt7I7L42T2w&_bl|n9BWN}pcHp%r=#<16j0&QlfyF5x8nlF;5wzSK)Er@P zP!LrxS6~9|xDZhg1sxqO08(qsH~~~9Fl#cgm@~0}Bs7?KK+8czK|TH%jG*O`AX7oS z1&m5UW=spf>cN8{Qf5qZK!<5F7Ai6Gf`pks)4@!I(Azngz&F1zWPz3>gLXV?F!6wT z2qH?1(vYKV1VCJtEJbj~K|+xSv`Jlqi34;@l>*p5EDEBabjky&Rz<-_lS!30%9lDm zVkrch3R#;8S*Zy!23&N5G8p)fA|3^ECykEfj{Jq7ngdj%GO#GHWSN2eDXPK1p}?56 zR)Il*2Q=O-s=>gcz$l#s&S~aMpsVVj6A=swq9AvwD1mP{)?l(=b!6aHkjjEYF=HW^ zp#ds1+_Jy{0y@hKq{9YWQ7eclNP!Xv=mui2JZO4`TLI)9p)62vaw`ZZh=Q^Ks{*(Z z(Pel5I@1DtuMD`}c*v;41FAMqTSuU)A6Xm}B=i|IK#~&rj4qH_TLCY~;Qj(m(BuI4 zh*v?-j1B0%4IUQAKDPvj6422Bpbn7=4|uT)XhN6?S`_l4EP(+v3qj2&P&orRtN^wI zMi4Y%3tj>v2%E5F;#L3`NT3!w1N?*&P=@3LjhHFG`Y`jrCygp#KNt_%iE(69R3Z9w zNyu>pn2Uq(^kg8lF1X_$45|3Y&XN~0+v!>P~ZRun*f9>0+JU3jbkt>fJ!(}Cki|&Cj{zj zfO;ID7MKvITL|(W_|hW<0nk_m4}4IKK|us`{xYl@(A!H+^z(q{rNAuYkvRqh&=PUbU<+tu4z%H1i3c_^#{(L90gYZN zg71-MfaGH~1s-=$j}^3Sg9kL0!2rrt(6J05W(Ngf&`>K2Xn!$-BB*9$2KC@dKr6RF zBXbh)u?*0`8=Q^;Sqdxyo}fA;OGyYGSkQqvcsQ~uFhX)QXfQxTK?oG%W=tI13c?B; z0v_C;f+b6dNkIeL<%30~BM)o}U6Db7(^0^TX%4ssHe;Fr>aIXeTm~gWkn91*ECogd zE@dW1Hqe;D45lo{dI29$^OOM;&!7P)aB~ARr-pab45Sj&EkX= z2A6BR3?R`5po4ipJswsCPR9q}(~!+TOS(8g_5TA#&{_7Zpo_6U^WT1;Qir$&R-i!@ zZqSGX=mZ+@zzt|fhCx9F)Q1O;lYkdjLPu4Y6~vSol^8V{zJOO=h=DFm`@?R<06sDu zhZM*ykU8@)6WQ237nLIawM^BB0ByK&Pod`gh<6oQ{( zugSE96Lf4ksKA@SsbCIS76O{y1J!5{n!yo#qCKky(-cndp~qk+%t1L${Q%1KB*+(> zfacsd%$VkY7P5m{pWw=92Fh{jGa$#QgD%%JH)mo1_Z%U?HUoU4hT{~@EJYy&R!7jG zKcHE9(AhnTph+cA0AVa^W-wy{-zUHTSr~YR3$l}U17uMkXxI;W$OCL8vm$IIGx#WQ z&`M_TNI3FJW)|2=W=;*J6O0NV9bTXr9>_{&Q0#-UkFWxhAOizviUjP-DPVF2=%h5} zk}O9K(8*+=x%wHP&D7@0m3Z_S9YET6963OJDn&*G9&ix|T4Mt$xp1gnkx$TEixQI~6KL}s=mHn! zl58bruo=ri*PVfSf1vZ&U`jxHB*2%TfsU@y0I&2{;80)!c?dLL16d9PT}BEq6f~%- z$OfAAVt{A_IRm1R88q$925ka@c8h{+0vV;i;>eK=x(0~>G+Ds}KCK?)MbP#)ArON_ zNdnYYX9ls+`|8Y~F$t8uI&%s5Dq`@)4+Un}$#bA)95bxs=2qlT5CS!qKoke4c?haP z!M1=VYe0=y4h0F&5S)U5CbI^}SpuNN2RaG@3M^(!8lY(h(7-k$sLtXBIg3S!MM2CL z9C<>Z!@aUWtMOSB1VD12qwAoT|C*aKYbXeSq6a)X1zwN=4t~&dH%J_jssuplKX zK(!g4KqI4q0LV28pyFG=kt0h1A*KPkn??X40QL!sf*5Gn9JHd;05l&C9$o?EECmKf zR>%R_42}w*^RGZ#+L(~`4}eaXgl9DHVf)Bi20+W~Ao~G8TLwVc2E5K6cSd8wmeJV3 z$3dLo0#6Zua*VKoASk1;a)ZV_K@JDy0Hi_%+;N-13C>NRo&u;k01XT)fNr^DF3AQb zNzipJN<@@+kYjgdaDs21RsvrlFb8r$gCl5@GWZNbP&0%D=?p{Aa4a}gK}LXZr7BQC z&45`rf^C8f0)fj$(6WpyNHXUEoqh$N(CbVxaIs21YA}yP!EB@OVC}CIh6l16dB;H|PR6D?de% z*--?R+d;Ptf`;XwB@1X^NCJLM82IWc@Iiu(5;>rCMxgS#xNMrauw8OuODQw9*h0^%?WfG&RccOKly01eS7fzFBf zf1bfx8dT;maC3qeVX_D?aUWn}WP@Hr$gIMk0G|ElQD6qmwWoka3_!QPDT2-6QDSnG z$WdYx=wLHURYG7H26y6cG*d_g%2c>EV^jesL#8OUQ`jtH0o>M4Pi zxqvyKG|!;H!~^Dlh6`96p?5ujb&#l?1++&Da(Xf7q)<>38r+};orkT!s6e*6xIq{C zfqGmZ=Yj{gn8A?&4od|_0a;gWZg6Y}$T~84a(gf`LxYu31r*Dm=7J-?KWNiBsGkHH z57l6r!U!65Fk|9T=2T(^RSTePx}fXcK(WLKF}{NlZW5CU14togKpa%QQU&=?J<4ZsAA=>?$hVJrdd zwFJ3@2|Q{9szn4qmw|0%WMl#PNg-Q_QH6mCbb=T7_8-uhhoFr(td9JJpnD{B8CXDF zEL{fho->dkAbT{JI24(|DHL?4I3s97v6g!}F0=_*Clny{++K^D! zU=jhzfbYfQ0c9yLO9B*3U=}2e@PN{#1``K3A+abhIx2vi-N3}e2D*0<+=yWW2O*ON zlL%;?8OS*@;48m$Afr?gpgNWjG#IV{s_j4r0VuM8xEzY?Fb_i)*)r%dfIZ9t@;Zwm zD~JMnm|25~N0AlO5#~^20Z}aAoAE#%R)Kg}K>_SxkoTDt*s?%A1Fc+RUk<+H5ma2U zgJvrfSfmv|H#>rd=QWsQKd6$S-XP%_eBk^p<12XuXx258?1_(nFc%N4*fA|M%4CI$s&QzjNC#kLmE zG7nY|j{`*TK!g+^ssunnA`l@Bh*dnGtIa@bwFID(RN|n)LTC;Ior?kPA_+haT4V<8 zzyXbgu!1@t%nD4|S)is2w4~sHY(mjd0BcbJHCaKqirH5heBvGlL|Q?K5qek)D|jwc zfe~3DXq1#g0o>^j@dq7f;8YJ<%fjGTZ^k47Dr&)I^FZ#jWB_GHkmao4DH8CB%?zLe zn81plZe{>A7eo}`jun6`ZfAkG2A5+QAku^#3mT>dg$CTQphKPO&6otRIu>L(#IX$A zpq5~k5({We4)jn79?(>Qh60#UfKU<&JPP8Vr9I3X3OtSyS&9;nXyaF5a6ABC`>qJ? zeDHv##59>CAoJ(~pm{P)CI!%msi3R`8i!!jWYREaQcwVo2FfUKDky`FfZ>FUNpmWw zfPxx)D-DYRCunj6w4@g_P2g5oRoOg{<6TQDg%v zR1^f|W)Vdt&`^kgA_IuW!L6tWTJoL+UOWiuNGNfGZcb*YR}ggkz*y+WQpO5WF2k)P zn5D!BT9d#G89ZWwgaMNVlZ+x4s4$U$-035tC;+}wQBe(4L4r~ZALJkuE(pa4p`fNH zf-<`zqk=M+7E@4M4n8r6O@R+IU#q-afk{CiTM2a11Cs)azjW4G1<)OrLJ%QFkdT5H zXuYHWB<;5-Dk^X(@MSBof%a50fWks)xgxKE64-bS1vbcOXnde;_bg5fib@JxifjtX zii(b)>I-BIivpjov=WOi=q3r!_@a=45F#fD`AUNvzn3fu~OZlGQu$i0pXitGwppy@*J zCSwIIUui`V1u+FNkSicUV!qM}%FC4)6qvlF6+xr!P-_?znEa&`nVc9DRTWqi_(1o# zgUShBX$20@$}|QAA&9dX6d3)b6%-YeYCwiSLr#GK6wsjZ7c9ND1!71x=oWcZQ0O^= zW(`!AD=|Q36hLzqS!-Jql@!<&M6$RQ*%kN|gf$r$lvF^MJ*t3ofaf|@mV>vifS1aH z#@sq%WeJw`Cg2GmCcvrItULeRQ+(DA7LpnZ(+rY$s=yf)6hS2+^p0yr(7YZffigJ?l!2x(85Nkon{ymF%0LsG zjG)$;j$^||=0fmw)=Dg(8(u);!)1=_g+&T1jtv}z;L~3~lW9y4o0uRrF+pr%0*xQA za4Uc=V+OYx!Ob;BM}Z>nN;Obf0y-&00Wzm4tiZTd0bIzofCe8xg)eAB5u~^SjqWNb zfX1w$C6^jFiAyV}EmxEQ6o*f)>VuMwb~C_(0PJ>>#$30*8XEcM*78SOLlbk3xW44+;^`t>B>HSH?nE7_op> z9g2Zg`#|M66a+w1YakvoH>mIhtqKE`cc73{U{v4+U30~)z?iMbt{?+C2@g`-$$$>9 zlU9&c5QQBtC+#b(z@Z=mJHSp6baV?JNV5P!mjFl?sPKmC0u|mI3IZ@)N(y`+t5`rs zBrz&*`Lj5H3QkC00bCn__Dh58WCMl20-Hay(B*)Z?hGKi;Bw&dl1qUxn_CflHJSo1 z$USO`Dhk}7N(jtQ;8x&;7xq#L%8Duq>`I`@Sy4$zQB{G98@wlo88j%tpdjhX%izeN zAnC|h0xGgVt$R;ta90*|bETxCMh<932DB>35ugB? z_yaBMMDiVILl&+!{KyGG$b#FlJT~KiV?)ZRO>Np1!K&golRDtq9w#XycrSOCE|V1GmTQ4*B~cXyWd=uwEG2do2FSUKHsC`MnN%Q@46IWK>TQGSLr~wB z8{8FCz-Z27q5$s4ODKRBvxCkw;0E>CnLyi(9kjXdT&t2oDo#8LY>42aS|h_ z!OR1i3&ZCm@QsR~iiaH(CK8|%3}is3ae*drz?a^F2e(1)1Wlw0Law1lxEkUo4$z_i zc96?txFLsBDkyM(CWa&wI6(800ty_UYY%xqBl@78EQbQv^&B88p`k1Q4qj&Pas)_{ z05!m&7xuD)8VEuP3`#9y~4w z*~|f2Daa1$sT+U{G2sTyO=OudnSjPZK~4p&Pz2rjuE60a15S-X;Bo>qGR**5X#?&M za)4q6JoPUDnY|ZKUWvc2!L4md!x+gL;%8cd>zT8hAJeob%a0IUjURBdB)?TDJsRp9FFdH^@b7 zP#4L7M)p9XV4&)R1Jo*!Rg_bZQIrKA@yGK?PYw83hi=qFc}mI_O|ZPSA3H7Ldi@wht&4l=vX= zz{1N2T42rT3f^<5!0E`84N6a}pal`2bA6dq6a|TH4B&7BEx1wS2eoKG2P%Wc zg&83s1zuP0qy#>*f=z=dM1f78QAL3nvXGil19bENIJ?_+SAs zM+S)V92vM3r9cNfW-BrxdtC-J69-Cyj1aH$LcPul@;c<87ZF8q(4Y^CqBOIEg0uo7 z)a#&SF^ZC)&0H|A3!r!%d04+KJom9mJI^hBh^X0KVV|EX$_P2$Kc-1SHGg3L15FcLVLZVbx$# zQGgUnEYN%nYO%6FqD%>#uR#t{;$?AAfMjJ*(}NE*Ai@C3+3cV`33zN*fej+VAO+$I zC@^GkD{_L@L~#Q9`Kb*pc9E8*L#RTFWck?tryEuVt|~!!>u3& zx{ZR<6XZ}9Xralezyd8a86a_|faEezkqUAYsQgi40Ue?Us`DKg6gU-Fq(KWP`FKGK za~VP7XN=(MLqS8-V0qA0n@WseMGT-W6L_MB1vGNR1UeR(kz0XbtpW?AFqUy--~nH9 z10K`{ulEE^g)o9FWCqp2h5)Yu8#DyK_dkGY14RL*I%sIX>IW83?tyk%IYCRyz-LM_ zgIM6u0XJk>bQwUSTuh*ap^8ijpwIy?Lt|HB0f!E#{s31NjG!ukK{^W@z|5dFFlaTD z0w>7FeBhoRGpwrO0d3WX48Dsfu}Fg!fh({;bx0_(fNCK~+F(!s=}~}&3^&{dZ0Ko^ z1yr(vT5X^h04G7Zf2J;P_=zU{v4-X$7s;QxE`| zDFOBY(^>^KaQs4izy{I+j$4op&=HLw0SQHD+_GeGgXVHTaSN@qKzHM?c!C!Hg4Q{* zC@@Mx)=IO2wgPhq2!p0Y6+kqD0{El{1qNOw@GdV%;{aT5z!C!}2|yA9Xssh8F@W#% z29>GM@L>SOFlhB4sD}<}VY7jJ#Ry`7W0)mN5zGO_Ff%y)GlLH1v;k)U22d7Y07o(l zXu^>}ff+Pn#Q_@71GOPQSpYnc#i9WAI;b`TEm~sa1`UfagTqM?w9(TMs#8RXK^jG) zgd+IZ0RaU_E&vUtC@{lv0jLfGwc=P|?G1YQUWQ!XgLe0UCJ`CeDp1Au;1U2dH-qAH zJcR(LRR&fID+l=CFDUbXiv)g0 zk5n^*?vw&8Pf^Gc0C!L{lt803pav^9lLKfSAh^JX9RCHnXBFfWW~fsbnd%jop-y22 z6++NP8YAeybT-g7d{F3toB|esv=G3j$}_?x8Kl6i83o2H@by+q3akR4iAPXd9CYfx zE`tr^Vi^l1@QM}*$nCD+1~=%!4rqg$g{2;}0R+_W24@XUh^s(u0!;w0IDlHVu!bWq zwBZP9Td{zSe({&_+2gsM*H{YMJtZTBf`?pnZ)BoRFo2Ahtdu=yX-k_#&HQ zJ?K23Y(-GBQh`l@(~$>c5a{9y7DvWx&{_siRi^;jFALg{pulFu0NQ{DUb)5!>fT#` zqC^Iw2sAhdn%#sz zZiCH%>mfKHGF4_!I3WP`T}fhI8+LDS2i>0E(q z1sTvdAVik}lL7~5>>0uXnE@HQ5`>I|f;RLjftnA1;HGk1{MdX=?Ufv zfKKE9wNN-fZ7c=_CRn}8RIdP@N`{VzK_-$x)4^;Y1B5~Sbsi8G)PMk=UI^-~Lw7ZC zOGC!%V7r>YOISd)Ja{mVBa0id*9ctbE6Rd4WhsDq?x2|#SoAYOmO_D|AGF*a6#Yz~ zX>n-u%Yvex5i;8Zy2=^6?-)74LCdWe6qr2W`$9p{%><2ZCiuWNc(XoY+8!L;5Uarp zYCy|tz|qYJif0Z5Mo_FXfSM%C3LKzOW{?v=olpfvki(f3xD+6|LA$=ei*6wf2d`QM zwb;P=L1+CyCUe0Piwp`>b~p!UcOcmPp#2pxpz#c_`x!vvTCAGP3ZUz}*g-vV12ZPj zNGdCM*{q2ISWE!4oQEAWI>!MT`3JKYK#N$|LB}qzfL4MtfR@#Xf`X*ZHKT$EBn3dmwn-qkS~J*c&0)WvQ}(1be#PH19*v+0;4h~IOag3evFO|*`P&cpmr}~323|zyavk$ zGy$l|sjG&`{7(qj_ z&EQ@pXc-7IXypo{CX)d~!39ttbDv{mWCblBGl04c6y`DzCu%Y?fZ_*quPrl&IgwQ4sRnK&S8 z)kum$(4I_Czf6-^LXi_xc!?;of+*0$8Yub{*+D!3MNqD1ghw_9dQ7uJq8W5DFC>mx zLHUPKffJO;z(=5&K>P_>$Hu71gckpWp#Cq;=wHhOSv_cwt;D1P3Qq9BAWX`fN-W^; zQUL9J2Zxsige71O+F7c=0$x5K0x}zv5Wou~I6(92O!|zVau_@>q5_&z0`L9RU{Zi= zL*-Fq1&?SlftKHZ)2;?+M3vD|CI`Hr8q^VEz`0BxES9m9U^mTxLkZ0=r*DfiVj-Nx}kJ zC8PivI|sACYYv$pQ)YpTOhl(HN1iN!7Dn(W1ta)e9neA^@Ya524(KXK1t#tk$U0J@ z(yJp+mLe1ASR8>?&=o$6ZlFm`(1CG;EXihKf}~$8)@U$+@)Rfqf%heYvoUCl40LF< z0;3~O7HC~Vi6es}gFqW2q*sm0H_T29LEJrzFv~ED6wq>8@ZlDq!(v!K7j-d$N?#t( zyc%e&Cj)pEu>?}cfVZH7OEhTymI2N4f<}KpIhO~?HQ=}cFB${K6(cyV6u_<_HNx5n zM%WJ)CSG`8vVjg41QnS)3T(=pN}S+4BLHfIgY%4pBO~}k9yUjwEF~^wCQy>7QsM>G zJ4L%eGx||3!t`C}ahpbe} z25mqFEvD6EVo>B$U~n`683LLIS72wU2lbLbEjwsi3(^--V#-qFP~Zcv7GY7~10BKP z$N=Gka+Zh^E9f8xP)-Gnz<}2}Nq{z6Dex@^HL#dq!)4(6H9>QfjP9UWVQ^~;vZe%i z;Ex5=cw_{1?w_4qBO|!~_Zu(0DRv%nI7nWmI4S zwL4is6nLHpG$spMHVhtZV*w4LGJ-9J2Nok}MKGkT$p`8yWPx^)g6eVxN0Dp=KJcbD z@XZvUE+F(=Ze|AsE`e4?P~VRMv=GCQ0d!b0rve)^bAeeBpo)zRykJ^^oBIeSlLS2F zv8XVB&L{)T2C^t~DhWVS9t&ts5C^C+1-dkh1+)wlGV}%NF(`mHw1AHL1a+Y~K}~e< zQ4FBbJ4JSIxy%MSAc;|t5i~;#I%?jLL6H@_KM{0VF6iQBX3%N3j!cE%^I=&*dq6=O zFxefMp

$2f&>Oy1QJU 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 literal 177542 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 R0vXY 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 __defProp(target, "name", { value, configurable: true }); +var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { + get: (a, b) => (typeof require !== "undefined" ? require : a)[b] +}) : x)(function(x) { + if (typeof require !== "undefined") return require.apply(this, arguments); + throw Error('Dynamic require of "' + x + '" is not supported'); +}); + +// src/constants.ts +var SIZE_OF_SHORT = 2; +var SIZE_OF_INT = 4; +var SIZE_OF_CURSOR = 4 * SIZE_OF_INT; +var SIZE_OF_NODE = 5 * SIZE_OF_INT; +var SIZE_OF_POINT = 2 * SIZE_OF_INT; +var SIZE_OF_RANGE = 2 * SIZE_OF_INT + 2 * SIZE_OF_POINT; +var ZERO_POINT = { row: 0, column: 0 }; +var INTERNAL = Symbol("INTERNAL"); +function assertInternal(x) { + if (x !== INTERNAL) throw new Error("Illegal constructor"); +} +__name(assertInternal, "assertInternal"); +function isPoint(point) { + return !!point && typeof point.row === "number" && typeof point.column === "number"; +} +__name(isPoint, "isPoint"); +function setModule(module2) { + C = module2; +} +__name(setModule, "setModule"); +var C; + +// src/lookahead_iterator.ts +var LookaheadIterator = class { + static { + __name(this, "LookaheadIterator"); + } + /** @internal */ + [0] = 0; + // Internal handle for WASM + /** @internal */ + language; + /** @internal */ + constructor(internal, address, language) { + assertInternal(internal); + this[0] = address; + this.language = language; + } + /** Get the current symbol of the lookahead iterator. */ + get currentTypeId() { + return C._ts_lookahead_iterator_current_symbol(this[0]); + } + /** Get the current symbol name of the lookahead iterator. */ + get currentType() { + return this.language.types[this.currentTypeId] || "ERROR"; + } + /** Delete the lookahead iterator, freeing its resources. */ + delete() { + C._ts_lookahead_iterator_delete(this[0]); + this[0] = 0; + } + /** + * Reset the lookahead iterator. + * + * This returns `true` if the language was set successfully and `false` + * otherwise. + */ + reset(language, stateId) { + if (C._ts_lookahead_iterator_reset(this[0], language[0], stateId)) { + this.language = language; + return true; + } + return false; + } + /** + * Reset the lookahead iterator to another state. + * + * This returns `true` if the iterator was reset to the given state and + * `false` otherwise. + */ + resetState(stateId) { + return Boolean(C._ts_lookahead_iterator_reset_state(this[0], stateId)); + } + /** + * Returns an iterator that iterates over the symbols of the lookahead iterator. + * + * The iterator will yield the current symbol name as a string for each step + * until there are no more symbols to iterate over. + */ + [Symbol.iterator]() { + return { + next: /* @__PURE__ */ __name(() => { + if (C._ts_lookahead_iterator_next(this[0])) { + return { done: false, value: this.currentType }; + } + return { done: true, value: "" }; + }, "next") + }; + } +}; + +// src/query.ts +var CaptureQuantifier = { + Zero: 0, + ZeroOrOne: 1, + ZeroOrMore: 2, + One: 3, + OneOrMore: 4 +}; +var Query = class { + static { + __name(this, "Query"); + } + /** @internal */ + [0] = 0; + // Internal handle for WASM + /** @internal */ + exceededMatchLimit; + /** @internal */ + textPredicates; + /** The names of the captures used in the query. */ + captureNames; + /** The quantifiers of the captures used in the query. */ + captureQuantifiers; + /** + * The other user-defined predicates associated with the given index. + * + * This includes predicates with operators other than: + * - `match?` + * - `eq?` and `not-eq?` + * - `any-of?` and `not-any-of?` + * - `is?` and `is-not?` + * - `set!` + */ + predicates; + /** The properties for predicates with the operator `set!`. */ + setProperties; + /** The properties for predicates with the operator `is?`. */ + assertedProperties; + /** The properties for predicates with the operator `is-not?`. */ + refutedProperties; + /** The maximum number of in-progress matches for this cursor. */ + matchLimit; + /** @internal */ + constructor(internal, address, captureNames, captureQuantifiers, textPredicates, predicates, setProperties, assertedProperties, refutedProperties) { + assertInternal(internal); + this[0] = address; + this.captureNames = captureNames; + this.captureQuantifiers = captureQuantifiers; + this.textPredicates = textPredicates; + this.predicates = predicates; + this.setProperties = setProperties; + this.assertedProperties = assertedProperties; + this.refutedProperties = refutedProperties; + this.exceededMatchLimit = false; + } + /** Delete the query, freeing its resources. */ + delete() { + C._ts_query_delete(this[0]); + this[0] = 0; + } + /** + * Iterate over all of the matches in the order that they were found. + * + * Each match contains the index of the pattern that matched, and a list of + * captures. Because multiple patterns can match the same set of nodes, + * one match may contain captures that appear *before* some of the + * captures from a previous match. + * + * @param {Node} node - The node to execute the query on. + * + * @param {QueryOptions} options - Options for query execution. + */ + matches(node, options = {}) { + const startPosition = options.startPosition ?? ZERO_POINT; + const endPosition = options.endPosition ?? ZERO_POINT; + const startIndex = options.startIndex ?? 0; + const endIndex = options.endIndex ?? 0; + const matchLimit = options.matchLimit ?? 4294967295; + const maxStartDepth = options.maxStartDepth ?? 4294967295; + const timeoutMicros = options.timeoutMicros ?? 0; + const progressCallback = options.progressCallback; + if (typeof matchLimit !== "number") { + throw new Error("Arguments must be numbers"); + } + this.matchLimit = matchLimit; + if (endIndex !== 0 && startIndex > endIndex) { + throw new Error("`startIndex` cannot be greater than `endIndex`"); + } + if (endPosition !== ZERO_POINT && (startPosition.row > endPosition.row || startPosition.row === endPosition.row && startPosition.column > endPosition.column)) { + throw new Error("`startPosition` cannot be greater than `endPosition`"); + } + if (progressCallback) { + C.currentQueryProgressCallback = progressCallback; + } + marshalNode(node); + C._ts_query_matches_wasm( + this[0], + node.tree[0], + startPosition.row, + startPosition.column, + endPosition.row, + endPosition.column, + startIndex, + endIndex, + matchLimit, + maxStartDepth, + timeoutMicros + ); + const rawCount = C.getValue(TRANSFER_BUFFER, "i32"); + const startAddress = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const didExceedMatchLimit = C.getValue(TRANSFER_BUFFER + 2 * SIZE_OF_INT, "i32"); + const result = new Array(rawCount); + this.exceededMatchLimit = Boolean(didExceedMatchLimit); + let filteredCount = 0; + let address = startAddress; + for (let i2 = 0; i2 < rawCount; i2++) { + const pattern = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const captureCount = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const captures = new Array(captureCount); + address = unmarshalCaptures(this, node.tree, address, captures); + if (this.textPredicates[pattern].every((p) => p(captures))) { + result[filteredCount] = { pattern, captures }; + const setProperties = this.setProperties[pattern]; + result[filteredCount].setProperties = setProperties; + const assertedProperties = this.assertedProperties[pattern]; + result[filteredCount].assertedProperties = assertedProperties; + const refutedProperties = this.refutedProperties[pattern]; + result[filteredCount].refutedProperties = refutedProperties; + filteredCount++; + } + } + result.length = filteredCount; + C._free(startAddress); + C.currentQueryProgressCallback = null; + return result; + } + /** + * Iterate over all of the individual captures in the order that they + * appear. + * + * This is useful if you don't care about which pattern matched, and just + * want a single, ordered sequence of captures. + * + * @param {Node} node - The node to execute the query on. + * + * @param {QueryOptions} options - Options for query execution. + */ + captures(node, options = {}) { + const startPosition = options.startPosition ?? ZERO_POINT; + const endPosition = options.endPosition ?? ZERO_POINT; + const startIndex = options.startIndex ?? 0; + const endIndex = options.endIndex ?? 0; + const matchLimit = options.matchLimit ?? 4294967295; + const maxStartDepth = options.maxStartDepth ?? 4294967295; + const timeoutMicros = options.timeoutMicros ?? 0; + const progressCallback = options.progressCallback; + if (typeof matchLimit !== "number") { + throw new Error("Arguments must be numbers"); + } + this.matchLimit = matchLimit; + if (endIndex !== 0 && startIndex > endIndex) { + throw new Error("`startIndex` cannot be greater than `endIndex`"); + } + if (endPosition !== ZERO_POINT && (startPosition.row > endPosition.row || startPosition.row === endPosition.row && startPosition.column > endPosition.column)) { + throw new Error("`startPosition` cannot be greater than `endPosition`"); + } + if (progressCallback) { + C.currentQueryProgressCallback = progressCallback; + } + marshalNode(node); + C._ts_query_captures_wasm( + this[0], + node.tree[0], + startPosition.row, + startPosition.column, + endPosition.row, + endPosition.column, + startIndex, + endIndex, + matchLimit, + maxStartDepth, + timeoutMicros + ); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const startAddress = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const didExceedMatchLimit = C.getValue(TRANSFER_BUFFER + 2 * SIZE_OF_INT, "i32"); + const result = new Array(); + this.exceededMatchLimit = Boolean(didExceedMatchLimit); + const captures = new Array(); + let address = startAddress; + for (let i2 = 0; i2 < count; i2++) { + const pattern = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const captureCount = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const captureIndex = C.getValue(address, "i32"); + address += SIZE_OF_INT; + captures.length = captureCount; + address = unmarshalCaptures(this, node.tree, address, captures); + if (this.textPredicates[pattern].every((p) => p(captures))) { + const capture = captures[captureIndex]; + const setProperties = this.setProperties[pattern]; + capture.setProperties = setProperties; + const assertedProperties = this.assertedProperties[pattern]; + capture.assertedProperties = assertedProperties; + const refutedProperties = this.refutedProperties[pattern]; + capture.refutedProperties = refutedProperties; + result.push(capture); + } + } + C._free(startAddress); + C.currentQueryProgressCallback = null; + return result; + } + /** Get the predicates for a given pattern. */ + predicatesForPattern(patternIndex) { + return this.predicates[patternIndex]; + } + /** + * Disable a certain capture within a query. + * + * This prevents the capture from being returned in matches, and also + * avoids any resource usage associated with recording the capture. + */ + disableCapture(captureName) { + const captureNameLength = C.lengthBytesUTF8(captureName); + const captureNameAddress = C._malloc(captureNameLength + 1); + C.stringToUTF8(captureName, captureNameAddress, captureNameLength + 1); + C._ts_query_disable_capture(this[0], captureNameAddress, captureNameLength); + C._free(captureNameAddress); + } + /** + * Disable a certain pattern within a query. + * + * This prevents the pattern from matching, and also avoids any resource + * usage associated with the pattern. This throws an error if the pattern + * index is out of bounds. + */ + disablePattern(patternIndex) { + if (patternIndex >= this.predicates.length) { + throw new Error( + `Pattern index is ${patternIndex} but the pattern count is ${this.predicates.length}` + ); + } + C._ts_query_disable_pattern(this[0], patternIndex); + } + /** + * Check if, on its last execution, this cursor exceeded its maximum number + * of in-progress matches. + */ + didExceedMatchLimit() { + return this.exceededMatchLimit; + } + /** Get the byte offset where the given pattern starts in the query's source. */ + startIndexForPattern(patternIndex) { + if (patternIndex >= this.predicates.length) { + throw new Error( + `Pattern index is ${patternIndex} but the pattern count is ${this.predicates.length}` + ); + } + return C._ts_query_start_byte_for_pattern(this[0], patternIndex); + } + /** Get the byte offset where the given pattern ends in the query's source. */ + endIndexForPattern(patternIndex) { + if (patternIndex >= this.predicates.length) { + throw new Error( + `Pattern index is ${patternIndex} but the pattern count is ${this.predicates.length}` + ); + } + return C._ts_query_end_byte_for_pattern(this[0], patternIndex); + } + /** Get the number of patterns in the query. */ + patternCount() { + return C._ts_query_pattern_count(this[0]); + } + /** Get the index for a given capture name. */ + captureIndexForName(captureName) { + return this.captureNames.indexOf(captureName); + } + /** Check if a given pattern within a query has a single root node. */ + isPatternRooted(patternIndex) { + return C._ts_query_is_pattern_rooted(this[0], patternIndex) === 1; + } + /** Check if a given pattern within a query has a single root node. */ + isPatternNonLocal(patternIndex) { + return C._ts_query_is_pattern_non_local(this[0], patternIndex) === 1; + } + /** + * Check if a given step in a query is 'definite'. + * + * A query step is 'definite' if its parent pattern will be guaranteed to + * match successfully once it reaches the step. + */ + isPatternGuaranteedAtStep(byteIndex) { + return C._ts_query_is_pattern_guaranteed_at_step(this[0], byteIndex) === 1; + } +}; + +// src/language.ts +var PREDICATE_STEP_TYPE_CAPTURE = 1; +var PREDICATE_STEP_TYPE_STRING = 2; +var QUERY_WORD_REGEX = /[\w-]+/g; +var LANGUAGE_FUNCTION_REGEX = /^tree_sitter_\w+$/; +var Language = class _Language { + static { + __name(this, "Language"); + } + /** @internal */ + [0] = 0; + // Internal handle for WASM + /** + * A list of all node types in the language. The index of each type in this + * array is its node type id. + */ + types; + /** + * A list of all field names in the language. The index of each field name in + * this array is its field id. + */ + fields; + /** @internal */ + constructor(internal, address) { + assertInternal(internal); + this[0] = address; + this.types = new Array(C._ts_language_symbol_count(this[0])); + for (let i2 = 0, n = this.types.length; i2 < n; i2++) { + if (C._ts_language_symbol_type(this[0], i2) < 2) { + this.types[i2] = C.UTF8ToString(C._ts_language_symbol_name(this[0], i2)); + } + } + this.fields = new Array(C._ts_language_field_count(this[0]) + 1); + for (let i2 = 0, n = this.fields.length; i2 < n; i2++) { + const fieldName = C._ts_language_field_name_for_id(this[0], i2); + if (fieldName !== 0) { + this.fields[i2] = C.UTF8ToString(fieldName); + } else { + this.fields[i2] = null; + } + } + } + /** + * Gets the name of the language. + */ + get name() { + const ptr = C._ts_language_name(this[0]); + if (ptr === 0) return null; + return C.UTF8ToString(ptr); + } + /** + * Gets the version of the language. + */ + get version() { + return C._ts_language_version(this[0]); + } + /** + * Gets the number of fields in the language. + */ + get fieldCount() { + return this.fields.length - 1; + } + /** + * Gets the number of states in the language. + */ + get stateCount() { + return C._ts_language_state_count(this[0]); + } + /** + * Get the field id for a field name. + */ + fieldIdForName(fieldName) { + const result = this.fields.indexOf(fieldName); + return result !== -1 ? result : null; + } + /** + * Get the field name for a field id. + */ + fieldNameForId(fieldId) { + return this.fields[fieldId] ?? null; + } + /** + * Get the node type id for a node type name. + */ + idForNodeType(type, named) { + const typeLength = C.lengthBytesUTF8(type); + const typeAddress = C._malloc(typeLength + 1); + C.stringToUTF8(type, typeAddress, typeLength + 1); + const result = C._ts_language_symbol_for_name(this[0], typeAddress, typeLength, named ? 1 : 0); + C._free(typeAddress); + return result || null; + } + /** + * Gets the number of node types in the language. + */ + get nodeTypeCount() { + return C._ts_language_symbol_count(this[0]); + } + /** + * Get the node type name for a node type id. + */ + nodeTypeForId(typeId) { + const name2 = C._ts_language_symbol_name(this[0], typeId); + return name2 ? C.UTF8ToString(name2) : null; + } + /** + * Check if a node type is named. + * + * @see {@link https://tree-sitter.github.io/tree-sitter/using-parsers/2-basic-parsing.html#named-vs-anonymous-nodes} + */ + nodeTypeIsNamed(typeId) { + return C._ts_language_type_is_named_wasm(this[0], typeId) ? true : false; + } + /** + * Check if a node type is visible. + */ + nodeTypeIsVisible(typeId) { + return C._ts_language_type_is_visible_wasm(this[0], typeId) ? true : false; + } + /** + * Get the supertypes ids of this language. + * + * @see {@link https://tree-sitter.github.io/tree-sitter/using-parsers/6-static-node-types.html?highlight=supertype#supertype-nodes} + */ + get supertypes() { + C._ts_language_supertypes_wasm(this[0]); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const result = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + result[i2] = C.getValue(address, "i16"); + address += SIZE_OF_SHORT; + } + } + return result; + } + /** + * Get the subtype ids for a given supertype node id. + */ + subtypes(supertype) { + C._ts_language_subtypes_wasm(this[0], supertype); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const result = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + result[i2] = C.getValue(address, "i16"); + address += SIZE_OF_SHORT; + } + } + return result; + } + /** + * Get the next state id for a given state id and node type id. + */ + nextState(stateId, typeId) { + return C._ts_language_next_state(this[0], stateId, typeId); + } + /** + * Create a new lookahead iterator for this language and parse state. + * + * This returns `null` if state is invalid for this language. + * + * Iterating {@link LookaheadIterator} will yield valid symbols in the given + * parse state. Newly created lookahead iterators will return the `ERROR` + * symbol from {@link LookaheadIterator#currentType}. + * + * Lookahead iterators can be useful for generating suggestions and improving + * syntax error diagnostics. To get symbols valid in an `ERROR` node, use the + * lookahead iterator on its first leaf node state. For `MISSING` nodes, a + * lookahead iterator created on the previous non-extra leaf node may be + * appropriate. + */ + lookaheadIterator(stateId) { + const address = C._ts_lookahead_iterator_new(this[0], stateId); + if (address) return new LookaheadIterator(INTERNAL, address, this); + return null; + } + /** + * Create a new query from a string containing one or more S-expression + * patterns. + * + * The query is associated with a particular language, and can only be run + * on syntax nodes parsed with that language. References to Queries can be + * shared between multiple threads. + * + * @link {@see https://tree-sitter.github.io/tree-sitter/using-parsers/queries} + */ + query(source) { + const sourceLength = C.lengthBytesUTF8(source); + const sourceAddress = C._malloc(sourceLength + 1); + C.stringToUTF8(source, sourceAddress, sourceLength + 1); + const address = C._ts_query_new( + this[0], + sourceAddress, + sourceLength, + TRANSFER_BUFFER, + TRANSFER_BUFFER + SIZE_OF_INT + ); + if (!address) { + const errorId = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const errorByte = C.getValue(TRANSFER_BUFFER, "i32"); + const errorIndex = C.UTF8ToString(sourceAddress, errorByte).length; + const suffix = source.slice(errorIndex, errorIndex + 100).split("\n")[0]; + let word = suffix.match(QUERY_WORD_REGEX)?.[0] ?? ""; + let error; + switch (errorId) { + case 2: + error = new RangeError(`Bad node name '${word}'`); + break; + case 3: + error = new RangeError(`Bad field name '${word}'`); + break; + case 4: + error = new RangeError(`Bad capture name @${word}`); + break; + case 5: + error = new TypeError(`Bad pattern structure at offset ${errorIndex}: '${suffix}'...`); + word = ""; + break; + default: + error = new SyntaxError(`Bad syntax at offset ${errorIndex}: '${suffix}'...`); + word = ""; + break; + } + error.index = errorIndex; + error.length = word.length; + C._free(sourceAddress); + throw error; + } + const stringCount = C._ts_query_string_count(address); + const captureCount = C._ts_query_capture_count(address); + const patternCount = C._ts_query_pattern_count(address); + const captureNames = new Array(captureCount); + const captureQuantifiers = new Array(patternCount); + const stringValues = new Array(stringCount); + for (let i2 = 0; i2 < captureCount; i2++) { + const nameAddress = C._ts_query_capture_name_for_id( + address, + i2, + TRANSFER_BUFFER + ); + const nameLength = C.getValue(TRANSFER_BUFFER, "i32"); + captureNames[i2] = C.UTF8ToString(nameAddress, nameLength); + } + for (let i2 = 0; i2 < patternCount; i2++) { + const captureQuantifiersArray = new Array(captureCount); + for (let j = 0; j < captureCount; j++) { + const quantifier = C._ts_query_capture_quantifier_for_id(address, i2, j); + captureQuantifiersArray[j] = quantifier; + } + captureQuantifiers[i2] = captureQuantifiersArray; + } + for (let i2 = 0; i2 < stringCount; i2++) { + const valueAddress = C._ts_query_string_value_for_id( + address, + i2, + TRANSFER_BUFFER + ); + const nameLength = C.getValue(TRANSFER_BUFFER, "i32"); + stringValues[i2] = C.UTF8ToString(valueAddress, nameLength); + } + const setProperties = new Array(patternCount); + const assertedProperties = new Array(patternCount); + const refutedProperties = new Array(patternCount); + const predicates = new Array(patternCount); + const textPredicates = new Array(patternCount); + for (let i2 = 0; i2 < patternCount; i2++) { + const predicatesAddress = C._ts_query_predicates_for_pattern( + address, + i2, + TRANSFER_BUFFER + ); + const stepCount = C.getValue(TRANSFER_BUFFER, "i32"); + predicates[i2] = []; + textPredicates[i2] = []; + const steps = new Array(); + const isStringStep = /* @__PURE__ */ __name((step) => { + return step.type === "string"; + }, "isStringStep"); + let stepAddress = predicatesAddress; + for (let j = 0; j < stepCount; j++) { + const stepType = C.getValue(stepAddress, "i32"); + stepAddress += SIZE_OF_INT; + const stepValueId = C.getValue(stepAddress, "i32"); + stepAddress += SIZE_OF_INT; + if (stepType === PREDICATE_STEP_TYPE_CAPTURE) { + const name2 = captureNames[stepValueId]; + steps.push({ type: "capture", name: name2 }); + } else if (stepType === PREDICATE_STEP_TYPE_STRING) { + steps.push({ type: "string", value: stringValues[stepValueId] }); + } else if (steps.length > 0) { + if (steps[0].type !== "string") { + throw new Error("Predicates must begin with a literal value"); + } + const operator = steps[0].value; + let isPositive = true; + let matchAll = true; + let captureName; + switch (operator) { + case "any-not-eq?": + case "not-eq?": + isPositive = false; + case "any-eq?": + case "eq?": { + if (steps.length !== 3) { + throw new Error( + `Wrong number of arguments to \`#${operator}\` predicate. Expected 2, got ${steps.length - 1}` + ); + } + if (steps[1].type !== "capture") { + throw new Error( + `First argument of \`#${operator}\` predicate must be a capture. Got "${steps[1].value}"` + ); + } + matchAll = !operator.startsWith("any-"); + if (steps[2].type === "capture") { + const captureName1 = steps[1].name; + const captureName2 = steps[2].name; + textPredicates[i2].push((captures) => { + const nodes1 = []; + const nodes2 = []; + for (const c of captures) { + if (c.name === captureName1) nodes1.push(c.node); + if (c.name === captureName2) nodes2.push(c.node); + } + const compare = /* @__PURE__ */ __name((n1, n2, positive) => { + return positive ? n1.text === n2.text : n1.text !== n2.text; + }, "compare"); + return matchAll ? nodes1.every((n1) => nodes2.some((n2) => compare(n1, n2, isPositive))) : nodes1.some((n1) => nodes2.some((n2) => compare(n1, n2, isPositive))); + }); + } else { + captureName = steps[1].name; + const stringValue = steps[2].value; + const matches = /* @__PURE__ */ __name((n) => n.text === stringValue, "matches"); + const doesNotMatch = /* @__PURE__ */ __name((n) => n.text !== stringValue, "doesNotMatch"); + textPredicates[i2].push((captures) => { + const nodes = []; + for (const c of captures) { + if (c.name === captureName) nodes.push(c.node); + } + const test = isPositive ? matches : doesNotMatch; + return matchAll ? nodes.every(test) : nodes.some(test); + }); + } + break; + } + case "any-not-match?": + case "not-match?": + isPositive = false; + case "any-match?": + case "match?": { + if (steps.length !== 3) { + throw new Error( + `Wrong number of arguments to \`#${operator}\` predicate. Expected 2, got ${steps.length - 1}.` + ); + } + if (steps[1].type !== "capture") { + throw new Error( + `First argument of \`#${operator}\` predicate must be a capture. Got "${steps[1].value}".` + ); + } + if (steps[2].type !== "string") { + throw new Error( + `Second argument of \`#${operator}\` predicate must be a string. Got @${steps[2].name}.` + ); + } + captureName = steps[1].name; + const regex = new RegExp(steps[2].value); + matchAll = !operator.startsWith("any-"); + textPredicates[i2].push((captures) => { + const nodes = []; + for (const c of captures) { + if (c.name === captureName) nodes.push(c.node.text); + } + const test = /* @__PURE__ */ __name((text, positive) => { + return positive ? regex.test(text) : !regex.test(text); + }, "test"); + if (nodes.length === 0) return !isPositive; + return matchAll ? nodes.every((text) => test(text, isPositive)) : nodes.some((text) => test(text, isPositive)); + }); + break; + } + case "set!": { + if (steps.length < 2 || steps.length > 3) { + throw new Error( + `Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${steps.length - 1}.` + ); + } + if (!steps.every(isStringStep)) { + throw new Error( + `Arguments to \`#set!\` predicate must be strings.".` + ); + } + if (!setProperties[i2]) setProperties[i2] = {}; + setProperties[i2][steps[1].value] = steps[2]?.value ?? null; + break; + } + case "is?": + case "is-not?": { + if (steps.length < 2 || steps.length > 3) { + throw new Error( + `Wrong number of arguments to \`#${operator}\` predicate. Expected 1 or 2. Got ${steps.length - 1}.` + ); + } + if (!steps.every(isStringStep)) { + throw new Error( + `Arguments to \`#${operator}\` predicate must be strings.".` + ); + } + const properties = operator === "is?" ? assertedProperties : refutedProperties; + if (!properties[i2]) properties[i2] = {}; + properties[i2][steps[1].value] = steps[2]?.value ?? null; + break; + } + case "not-any-of?": + isPositive = false; + case "any-of?": { + if (steps.length < 2) { + throw new Error( + `Wrong number of arguments to \`#${operator}\` predicate. Expected at least 1. Got ${steps.length - 1}.` + ); + } + if (steps[1].type !== "capture") { + throw new Error( + `First argument of \`#${operator}\` predicate must be a capture. Got "${steps[1].value}".` + ); + } + captureName = steps[1].name; + const stringSteps = steps.slice(2); + if (!stringSteps.every(isStringStep)) { + throw new Error( + `Arguments to \`#${operator}\` predicate must be strings.".` + ); + } + const values = stringSteps.map((s) => s.value); + textPredicates[i2].push((captures) => { + const nodes = []; + for (const c of captures) { + if (c.name === captureName) nodes.push(c.node.text); + } + if (nodes.length === 0) return !isPositive; + return nodes.every((text) => values.includes(text)) === isPositive; + }); + break; + } + default: + predicates[i2].push({ operator, operands: steps.slice(1) }); + } + steps.length = 0; + } + } + Object.freeze(setProperties[i2]); + Object.freeze(assertedProperties[i2]); + Object.freeze(refutedProperties[i2]); + } + C._free(sourceAddress); + return new Query( + INTERNAL, + address, + captureNames, + captureQuantifiers, + textPredicates, + predicates, + setProperties, + assertedProperties, + refutedProperties + ); + } + /** + * Load a language from a WebAssembly module. + * The module can be provided as a path to a file or as a buffer. + */ + static async load(input) { + let bytes; + if (input instanceof Uint8Array) { + bytes = Promise.resolve(input); + } else { + if (globalThis.process?.versions.node) { + const fs2 = __require("fs/promises"); + bytes = fs2.readFile(input); + } else { + bytes = fetch(input).then((response) => response.arrayBuffer().then((buffer) => { + if (response.ok) { + return new Uint8Array(buffer); + } else { + const body2 = new TextDecoder("utf-8").decode(buffer); + throw new Error(`Language.load failed with status ${response.status}. + +${body2}`); + } + })); + } + } + const mod = await C.loadWebAssemblyModule(await bytes, { loadAsync: true }); + const symbolNames = Object.keys(mod); + const functionName = symbolNames.find((key) => LANGUAGE_FUNCTION_REGEX.test(key) && !key.includes("external_scanner_")); + if (!functionName) { + console.log(`Couldn't find language function in WASM file. Symbols: +${JSON.stringify(symbolNames, null, 2)}`); + throw new Error("Language.load failed: no language function found in WASM file"); + } + const languageAddress = mod[functionName](); + return new _Language(INTERNAL, languageAddress); + } +}; + +// lib/tree-sitter.mjs +var Module2 = (() => { + var _scriptName = import.meta.url; + return async function(moduleArg = {}) { + var moduleRtn; + var Module = moduleArg; + var readyPromiseResolve, readyPromiseReject; + var readyPromise = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var ENVIRONMENT_IS_WEB = typeof window == "object"; + var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined"; + var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer"; + var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + if (ENVIRONMENT_IS_NODE) { + const { createRequire } = await import("module"); + let dirname = import.meta.url; + if (dirname.startsWith("data:")) { + dirname = "/"; + } + var require = createRequire(dirname); + } + Module.currentQueryProgressCallback = null; + Module.currentProgressCallback = null; + Module.currentLogCallback = null; + Module.currentParseCallback = null; + var moduleOverrides = Object.assign({}, Module); + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = /* @__PURE__ */ __name((status, toThrow) => { + throw toThrow; + }, "quit_"); + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + __name(locateFile, "locateFile"); + var readAsync, readBinary; + if (ENVIRONMENT_IS_NODE) { + var fs = require("fs"); + var nodePath = require("path"); + if (!import.meta.url.startsWith("data:")) { + scriptDirectory = nodePath.dirname(require("url").fileURLToPath(import.meta.url)) + "/"; + } + readBinary = /* @__PURE__ */ __name((filename) => { + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + var ret = fs.readFileSync(filename); + return ret; + }, "readBinary"); + readAsync = /* @__PURE__ */ __name((filename, binary2 = true) => { + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + return new Promise((resolve, reject) => { + fs.readFile(filename, binary2 ? void 0 : "utf8", (err2, data) => { + if (err2) reject(err2); + else resolve(binary2 ? data.buffer : data); + }); + }); + }, "readAsync"); + if (!Module["thisProgram"] && process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, "/"); + } + arguments_ = process.argv.slice(2); + quit_ = /* @__PURE__ */ __name((status, toThrow) => { + process.exitCode = status; + throw toThrow; + }, "quit_"); + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + scriptDirectory = document.currentScript.src; + } + if (_scriptName) { + scriptDirectory = _scriptName; + } + if (scriptDirectory.startsWith("blob:")) { + scriptDirectory = ""; + } else { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } + { + if (ENVIRONMENT_IS_WORKER) { + readBinary = /* @__PURE__ */ __name((url) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array( + /** @type{!ArrayBuffer} */ + xhr.response + ); + }, "readBinary"); + } + readAsync = /* @__PURE__ */ __name((url) => { + if (isFileURI(url)) { + return new Promise((resolve, reject) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + resolve(xhr.response); + return; + } + reject(xhr.status); + }; + xhr.onerror = reject; + xhr.send(null); + }); + } + return fetch(url, { + credentials: "same-origin" + }).then((response) => { + if (response.ok) { + return response.arrayBuffer(); + } + return Promise.reject(new Error(response.status + " : " + response.url)); + }); + }, "readAsync"); + } + } else { + } + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.error.bind(console); + Object.assign(Module, moduleOverrides); + moduleOverrides = null; + if (Module["arguments"]) arguments_ = Module["arguments"]; + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + var dynamicLibraries = Module["dynamicLibraries"] || []; + var wasmBinary = Module["wasmBinary"]; + var wasmMemory; + var ABORT = false; + var EXITSTATUS; + function assert(condition, text) { + if (!condition) { + abort(text); + } + } + __name(assert, "assert"); + var HEAP, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + var HEAP_DATA_VIEW; + function updateMemoryViews() { + var b = wasmMemory.buffer; + Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(b); + Module["HEAP8"] = HEAP8 = new Int8Array(b); + Module["HEAP16"] = HEAP16 = new Int16Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); + Module["HEAP32"] = HEAP32 = new Int32Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); + } + __name(updateMemoryViews, "updateMemoryViews"); + if (Module["wasmMemory"]) { + wasmMemory = Module["wasmMemory"]; + } else { + var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 33554432; + wasmMemory = new WebAssembly.Memory({ + "initial": INITIAL_MEMORY / 65536, + // In theory we should not need to emit the maximum if we want "unlimited" + // or 4GB of memory, but VMs error on that atm, see + // https://github.com/emscripten-core/emscripten/issues/14130 + // And in the pthreads case we definitely need to emit a maximum. So + // always emit one. + "maximum": 32768 + }); + } + updateMemoryViews(); + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATMAIN__ = []; + var __ATEXIT__ = []; + var __ATPOSTRUN__ = []; + var __RELOC_FUNCS__ = []; + var runtimeInitialized = false; + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + __name(preRun, "preRun"); + function initRuntime() { + runtimeInitialized = true; + callRuntimeCallbacks(__RELOC_FUNCS__); + callRuntimeCallbacks(__ATINIT__); + } + __name(initRuntime, "initRuntime"); + function preMain() { + callRuntimeCallbacks(__ATMAIN__); + } + __name(preMain, "preMain"); + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + __name(postRun, "postRun"); + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + __name(addOnPreRun, "addOnPreRun"); + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + __name(addOnInit, "addOnInit"); + function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); + } + __name(addOnPreMain, "addOnPreMain"); + function addOnExit(cb) { + } + __name(addOnExit, "addOnExit"); + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + __name(addOnPostRun, "addOnPostRun"); + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + function getUniqueRunDependency(id) { + return id; + } + __name(getUniqueRunDependency, "getUniqueRunDependency"); + function addRunDependency(id) { + runDependencies++; + Module["monitorRunDependencies"]?.(runDependencies); + } + __name(addRunDependency, "addRunDependency"); + function removeRunDependency(id) { + runDependencies--; + Module["monitorRunDependencies"]?.(runDependencies); + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + __name(removeRunDependency, "removeRunDependency"); + function abort(what) { + Module["onAbort"]?.(what); + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + what += ". Build with -sASSERTIONS for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + __name(abort, "abort"); + var dataURIPrefix = "data:application/octet-stream;base64,"; + var isDataURI = /* @__PURE__ */ __name((filename) => filename.startsWith(dataURIPrefix), "isDataURI"); + var isFileURI = /* @__PURE__ */ __name((filename) => filename.startsWith("file://"), "isFileURI"); + function findWasmBinary() { + if (Module["locateFile"]) { + var f = "tree-sitter.wasm"; + if (!isDataURI(f)) { + return locateFile(f); + } + return f; + } + return new URL("tree-sitter.wasm", import.meta.url).href; + } + __name(findWasmBinary, "findWasmBinary"); + var wasmBinaryFile; + function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } + __name(getBinarySync, "getBinarySync"); + function getBinaryPromise(binaryFile) { + if (!wasmBinary) { + return readAsync(binaryFile).then( + (response) => new Uint8Array( + /** @type{!ArrayBuffer} */ + response + ), + // Fall back to getBinarySync if readAsync fails + () => getBinarySync(binaryFile) + ); + } + return Promise.resolve().then(() => getBinarySync(binaryFile)); + } + __name(getBinaryPromise, "getBinaryPromise"); + function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then((binary2) => WebAssembly.instantiate(binary2, imports)).then(receiver, (reason) => { + err(`failed to asynchronously prepare wasm: ${reason}`); + abort(reason); + }); + } + __name(instantiateArrayBuffer, "instantiateArrayBuffer"); + function instantiateAsync(binary2, binaryFile, imports, callback) { + if (!binary2 && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(binaryFile) && // Avoid instantiateStreaming() on Node.js environment for now, as while + // Node.js v18.1.0 implements it, it does not have a full fetch() + // implementation yet. + // Reference: + // https://github.com/emscripten-core/emscripten/pull/16917 + !ENVIRONMENT_IS_NODE && typeof fetch == "function") { + return fetch(binaryFile, { + credentials: "same-origin" + }).then((response) => { + var result = WebAssembly.instantiateStreaming(response, imports); + return result.then(callback, function(reason) { + err(`wasm streaming compile failed: ${reason}`); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } + return instantiateArrayBuffer(binaryFile, imports, callback); + } + __name(instantiateAsync, "instantiateAsync"); + function getWasmImports() { + return { + "env": wasmImports, + "wasi_snapshot_preview1": wasmImports, + "GOT.mem": new Proxy(wasmImports, GOTHandler), + "GOT.func": new Proxy(wasmImports, GOTHandler) + }; + } + __name(getWasmImports, "getWasmImports"); + function createWasm() { + function receiveInstance(instance2, module2) { + wasmExports = instance2.exports; + wasmExports = relocateExports(wasmExports, 1024); + var metadata2 = getDylinkMetadata(module2); + if (metadata2.neededDynlibs) { + dynamicLibraries = metadata2.neededDynlibs.concat(dynamicLibraries); + } + mergeLibSymbols(wasmExports, "main"); + LDSO.init(); + loadDylibs(); + addOnInit(wasmExports["__wasm_call_ctors"]); + __RELOC_FUNCS__.push(wasmExports["__wasm_apply_data_relocs"]); + removeRunDependency("wasm-instantiate"); + return wasmExports; + } + __name(receiveInstance, "receiveInstance"); + addRunDependency("wasm-instantiate"); + function receiveInstantiationResult(result) { + receiveInstance(result["instance"], result["module"]); + } + __name(receiveInstantiationResult, "receiveInstantiationResult"); + var info2 = getWasmImports(); + if (Module["instantiateWasm"]) { + try { + return Module["instantiateWasm"](info2, receiveInstance); + } catch (e) { + err(`Module.instantiateWasm callback failed with error: ${e}`); + readyPromiseReject(e); + } + } + wasmBinaryFile ??= findWasmBinary(); + instantiateAsync(wasmBinary, wasmBinaryFile, info2, receiveInstantiationResult).catch(readyPromiseReject); + return {}; + } + __name(createWasm, "createWasm"); + var tempDouble; + var tempI64; + var ASM_CONSTS = {}; + class ExitStatus { + static { + __name(this, "ExitStatus"); + } + name = "ExitStatus"; + constructor(status) { + this.message = `Program terminated with exit(${status})`; + this.status = status; + } + } + var GOT = {}; + var currentModuleWeakSymbols = /* @__PURE__ */ new Set([]); + var GOTHandler = { + get(obj, symName) { + var rtn = GOT[symName]; + if (!rtn) { + rtn = GOT[symName] = new WebAssembly.Global({ + "value": "i32", + "mutable": true + }); + } + if (!currentModuleWeakSymbols.has(symName)) { + rtn.required = true; + } + return rtn; + } + }; + var LE_HEAP_LOAD_F32 = /* @__PURE__ */ __name((byteOffset) => HEAP_DATA_VIEW.getFloat32(byteOffset, true), "LE_HEAP_LOAD_F32"); + var LE_HEAP_LOAD_F64 = /* @__PURE__ */ __name((byteOffset) => HEAP_DATA_VIEW.getFloat64(byteOffset, true), "LE_HEAP_LOAD_F64"); + var LE_HEAP_LOAD_I16 = /* @__PURE__ */ __name((byteOffset) => HEAP_DATA_VIEW.getInt16(byteOffset, true), "LE_HEAP_LOAD_I16"); + var LE_HEAP_LOAD_I32 = /* @__PURE__ */ __name((byteOffset) => HEAP_DATA_VIEW.getInt32(byteOffset, true), "LE_HEAP_LOAD_I32"); + var LE_HEAP_LOAD_U16 = /* @__PURE__ */ __name((byteOffset) => HEAP_DATA_VIEW.getUint16(byteOffset, true), "LE_HEAP_LOAD_U16"); + var LE_HEAP_LOAD_U32 = /* @__PURE__ */ __name((byteOffset) => HEAP_DATA_VIEW.getUint32(byteOffset, true), "LE_HEAP_LOAD_U32"); + var LE_HEAP_STORE_F32 = /* @__PURE__ */ __name((byteOffset, value) => HEAP_DATA_VIEW.setFloat32(byteOffset, value, true), "LE_HEAP_STORE_F32"); + var LE_HEAP_STORE_F64 = /* @__PURE__ */ __name((byteOffset, value) => HEAP_DATA_VIEW.setFloat64(byteOffset, value, true), "LE_HEAP_STORE_F64"); + var LE_HEAP_STORE_I16 = /* @__PURE__ */ __name((byteOffset, value) => HEAP_DATA_VIEW.setInt16(byteOffset, value, true), "LE_HEAP_STORE_I16"); + var LE_HEAP_STORE_I32 = /* @__PURE__ */ __name((byteOffset, value) => HEAP_DATA_VIEW.setInt32(byteOffset, value, true), "LE_HEAP_STORE_I32"); + var LE_HEAP_STORE_U16 = /* @__PURE__ */ __name((byteOffset, value) => HEAP_DATA_VIEW.setUint16(byteOffset, value, true), "LE_HEAP_STORE_U16"); + var LE_HEAP_STORE_U32 = /* @__PURE__ */ __name((byteOffset, value) => HEAP_DATA_VIEW.setUint32(byteOffset, value, true), "LE_HEAP_STORE_U32"); + var callRuntimeCallbacks = /* @__PURE__ */ __name((callbacks) => { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } + }, "callRuntimeCallbacks"); + var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : void 0; + var UTF8ArrayToString = /* @__PURE__ */ __name((heapOrArray, idx = 0, maxBytesToRead = NaN) => { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } + } + return str; + }, "UTF8ArrayToString"); + var getDylinkMetadata = /* @__PURE__ */ __name((binary2) => { + var offset = 0; + var end = 0; + function getU8() { + return binary2[offset++]; + } + __name(getU8, "getU8"); + function getLEB() { + var ret = 0; + var mul = 1; + while (1) { + var byte = binary2[offset++]; + ret += (byte & 127) * mul; + mul *= 128; + if (!(byte & 128)) break; + } + return ret; + } + __name(getLEB, "getLEB"); + function getString() { + var len = getLEB(); + offset += len; + return UTF8ArrayToString(binary2, offset - len, len); + } + __name(getString, "getString"); + function failIf(condition, message) { + if (condition) throw new Error(message); + } + __name(failIf, "failIf"); + var name2 = "dylink.0"; + if (binary2 instanceof WebAssembly.Module) { + var dylinkSection = WebAssembly.Module.customSections(binary2, name2); + if (dylinkSection.length === 0) { + name2 = "dylink"; + dylinkSection = WebAssembly.Module.customSections(binary2, name2); + } + failIf(dylinkSection.length === 0, "need dylink section"); + binary2 = new Uint8Array(dylinkSection[0]); + end = binary2.length; + } else { + var int32View = new Uint32Array(new Uint8Array(binary2.subarray(0, 24)).buffer); + var magicNumberFound = int32View[0] == 1836278016 || int32View[0] == 6386541; + failIf(!magicNumberFound, "need to see wasm magic number"); + failIf(binary2[8] !== 0, "need the dylink section to be first"); + offset = 9; + var section_size = getLEB(); + end = offset + section_size; + name2 = getString(); + } + var customSection = { + neededDynlibs: [], + tlsExports: /* @__PURE__ */ new Set(), + weakImports: /* @__PURE__ */ new Set() + }; + if (name2 == "dylink") { + customSection.memorySize = getLEB(); + customSection.memoryAlign = getLEB(); + customSection.tableSize = getLEB(); + customSection.tableAlign = getLEB(); + var neededDynlibsCount = getLEB(); + for (var i2 = 0; i2 < neededDynlibsCount; ++i2) { + var libname = getString(); + customSection.neededDynlibs.push(libname); + } + } else { + failIf(name2 !== "dylink.0"); + var WASM_DYLINK_MEM_INFO = 1; + var WASM_DYLINK_NEEDED = 2; + var WASM_DYLINK_EXPORT_INFO = 3; + var WASM_DYLINK_IMPORT_INFO = 4; + var WASM_SYMBOL_TLS = 256; + var WASM_SYMBOL_BINDING_MASK = 3; + var WASM_SYMBOL_BINDING_WEAK = 1; + while (offset < end) { + var subsectionType = getU8(); + var subsectionSize = getLEB(); + if (subsectionType === WASM_DYLINK_MEM_INFO) { + customSection.memorySize = getLEB(); + customSection.memoryAlign = getLEB(); + customSection.tableSize = getLEB(); + customSection.tableAlign = getLEB(); + } else if (subsectionType === WASM_DYLINK_NEEDED) { + var neededDynlibsCount = getLEB(); + for (var i2 = 0; i2 < neededDynlibsCount; ++i2) { + libname = getString(); + customSection.neededDynlibs.push(libname); + } + } else if (subsectionType === WASM_DYLINK_EXPORT_INFO) { + var count = getLEB(); + while (count--) { + var symname = getString(); + var flags2 = getLEB(); + if (flags2 & WASM_SYMBOL_TLS) { + customSection.tlsExports.add(symname); + } + } + } else if (subsectionType === WASM_DYLINK_IMPORT_INFO) { + var count = getLEB(); + while (count--) { + var modname = getString(); + var symname = getString(); + var flags2 = getLEB(); + if ((flags2 & WASM_SYMBOL_BINDING_MASK) == WASM_SYMBOL_BINDING_WEAK) { + customSection.weakImports.add(symname); + } + } + } else { + offset += subsectionSize; + } + } + } + return customSection; + }, "getDylinkMetadata"); + function getValue(ptr, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + return HEAP8[ptr]; + case "i8": + return HEAP8[ptr]; + case "i16": + return LE_HEAP_LOAD_I16((ptr >> 1) * 2); + case "i32": + return LE_HEAP_LOAD_I32((ptr >> 2) * 4); + case "i64": + abort("to do getValue(i64) use WASM_BIGINT"); + case "float": + return LE_HEAP_LOAD_F32((ptr >> 2) * 4); + case "double": + return LE_HEAP_LOAD_F64((ptr >> 3) * 8); + case "*": + return LE_HEAP_LOAD_U32((ptr >> 2) * 4); + default: + abort(`invalid type for getValue: ${type}`); + } + } + __name(getValue, "getValue"); + var newDSO = /* @__PURE__ */ __name((name2, handle2, syms) => { + var dso = { + refcount: Infinity, + name: name2, + exports: syms, + global: true + }; + LDSO.loadedLibsByName[name2] = dso; + if (handle2 != void 0) { + LDSO.loadedLibsByHandle[handle2] = dso; + } + return dso; + }, "newDSO"); + var LDSO = { + loadedLibsByName: {}, + loadedLibsByHandle: {}, + init() { + newDSO("__main__", 0, wasmImports); + } + }; + var ___heap_base = 78144; + var alignMemory = /* @__PURE__ */ __name((size, alignment) => Math.ceil(size / alignment) * alignment, "alignMemory"); + var getMemory = /* @__PURE__ */ __name((size) => { + if (runtimeInitialized) { + return _calloc(size, 1); + } + var ret = ___heap_base; + var end = ret + alignMemory(size, 16); + ___heap_base = end; + GOT["__heap_base"].value = end; + return ret; + }, "getMemory"); + var isInternalSym = /* @__PURE__ */ __name((symName) => ["__cpp_exception", "__c_longjmp", "__wasm_apply_data_relocs", "__dso_handle", "__tls_size", "__tls_align", "__set_stack_limits", "_emscripten_tls_init", "__wasm_init_tls", "__wasm_call_ctors", "__start_em_asm", "__stop_em_asm", "__start_em_js", "__stop_em_js"].includes(symName) || symName.startsWith("__em_js__"), "isInternalSym"); + var uleb128Encode = /* @__PURE__ */ __name((n, target) => { + if (n < 128) { + target.push(n); + } else { + target.push(n % 128 | 128, n >> 7); + } + }, "uleb128Encode"); + var sigToWasmTypes = /* @__PURE__ */ __name((sig) => { + var typeNames = { + "i": "i32", + "j": "i64", + "f": "f32", + "d": "f64", + "e": "externref", + "p": "i32" + }; + var type = { + parameters: [], + results: sig[0] == "v" ? [] : [typeNames[sig[0]]] + }; + for (var i2 = 1; i2 < sig.length; ++i2) { + type.parameters.push(typeNames[sig[i2]]); + } + return type; + }, "sigToWasmTypes"); + var generateFuncType = /* @__PURE__ */ __name((sig, target) => { + var sigRet = sig.slice(0, 1); + var sigParam = sig.slice(1); + var typeCodes = { + "i": 127, + // i32 + "p": 127, + // i32 + "j": 126, + // i64 + "f": 125, + // f32 + "d": 124, + // f64 + "e": 111 + }; + target.push(96); + uleb128Encode(sigParam.length, target); + for (var i2 = 0; i2 < sigParam.length; ++i2) { + target.push(typeCodes[sigParam[i2]]); + } + if (sigRet == "v") { + target.push(0); + } else { + target.push(1, typeCodes[sigRet]); + } + }, "generateFuncType"); + var convertJsFunctionToWasm = /* @__PURE__ */ __name((func2, sig) => { + if (typeof WebAssembly.Function == "function") { + return new WebAssembly.Function(sigToWasmTypes(sig), func2); + } + var typeSectionBody = [1]; + generateFuncType(sig, typeSectionBody); + var bytes = [ + 0, + 97, + 115, + 109, + // magic ("\0asm") + 1, + 0, + 0, + 0, + // version: 1 + 1 + ]; + uleb128Encode(typeSectionBody.length, bytes); + bytes.push(...typeSectionBody); + bytes.push( + 2, + 7, + // import section + // (import "e" "f" (func 0 (type 0))) + 1, + 1, + 101, + 1, + 102, + 0, + 0, + 7, + 5, + // export section + // (export "f" (func 0 (type 0))) + 1, + 1, + 102, + 0, + 0 + ); + var module2 = new WebAssembly.Module(new Uint8Array(bytes)); + var instance2 = new WebAssembly.Instance(module2, { + "e": { + "f": func2 + } + }); + var wrappedFunc = instance2.exports["f"]; + return wrappedFunc; + }, "convertJsFunctionToWasm"); + var wasmTableMirror = []; + var wasmTable = new WebAssembly.Table({ + "initial": 31, + "element": "anyfunc" + }); + var getWasmTableEntry = /* @__PURE__ */ __name((funcPtr) => { + var func2 = wasmTableMirror[funcPtr]; + if (!func2) { + if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func2 = wasmTable.get(funcPtr); + } + return func2; + }, "getWasmTableEntry"); + var updateTableMap = /* @__PURE__ */ __name((offset, count) => { + if (functionsInTableMap) { + for (var i2 = offset; i2 < offset + count; i2++) { + var item = getWasmTableEntry(i2); + if (item) { + functionsInTableMap.set(item, i2); + } + } + } + }, "updateTableMap"); + var functionsInTableMap; + var getFunctionAddress = /* @__PURE__ */ __name((func2) => { + if (!functionsInTableMap) { + functionsInTableMap = /* @__PURE__ */ new WeakMap(); + updateTableMap(0, wasmTable.length); + } + return functionsInTableMap.get(func2) || 0; + }, "getFunctionAddress"); + var freeTableIndexes = []; + var getEmptyTableSlot = /* @__PURE__ */ __name(() => { + if (freeTableIndexes.length) { + return freeTableIndexes.pop(); + } + try { + wasmTable.grow(1); + } catch (err2) { + if (!(err2 instanceof RangeError)) { + throw err2; + } + throw "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."; + } + return wasmTable.length - 1; + }, "getEmptyTableSlot"); + var setWasmTableEntry = /* @__PURE__ */ __name((idx, func2) => { + wasmTable.set(idx, func2); + wasmTableMirror[idx] = wasmTable.get(idx); + }, "setWasmTableEntry"); + var addFunction = /* @__PURE__ */ __name((func2, sig) => { + var rtn = getFunctionAddress(func2); + if (rtn) { + return rtn; + } + var ret = getEmptyTableSlot(); + try { + setWasmTableEntry(ret, func2); + } catch (err2) { + if (!(err2 instanceof TypeError)) { + throw err2; + } + var wrapped = convertJsFunctionToWasm(func2, sig); + setWasmTableEntry(ret, wrapped); + } + functionsInTableMap.set(func2, ret); + return ret; + }, "addFunction"); + var updateGOT = /* @__PURE__ */ __name((exports, replace) => { + for (var symName in exports) { + if (isInternalSym(symName)) { + continue; + } + var value = exports[symName]; + if (symName.startsWith("orig$")) { + symName = symName.split("$")[1]; + replace = true; + } + GOT[symName] ||= new WebAssembly.Global({ + "value": "i32", + "mutable": true + }); + if (replace || GOT[symName].value == 0) { + if (typeof value == "function") { + GOT[symName].value = addFunction(value); + } else if (typeof value == "number") { + GOT[symName].value = value; + } else { + err(`unhandled export type for '${symName}': ${typeof value}`); + } + } + } + }, "updateGOT"); + var relocateExports = /* @__PURE__ */ __name((exports, memoryBase2, replace) => { + var relocated = {}; + for (var e in exports) { + var value = exports[e]; + if (typeof value == "object") { + value = value.value; + } + if (typeof value == "number") { + value += memoryBase2; + } + relocated[e] = value; + } + updateGOT(relocated, replace); + return relocated; + }, "relocateExports"); + var isSymbolDefined = /* @__PURE__ */ __name((symName) => { + var existing = wasmImports[symName]; + if (!existing || existing.stub) { + return false; + } + return true; + }, "isSymbolDefined"); + var dynCallLegacy = /* @__PURE__ */ __name((sig, ptr, args2) => { + sig = sig.replace(/p/g, "i"); + var f = Module["dynCall_" + sig]; + return f(ptr, ...args2); + }, "dynCallLegacy"); + var dynCall = /* @__PURE__ */ __name((sig, ptr, args2 = []) => { + if (sig.includes("j")) { + return dynCallLegacy(sig, ptr, args2); + } + var rtn = getWasmTableEntry(ptr)(...args2); + return rtn; + }, "dynCall"); + var stackSave = /* @__PURE__ */ __name(() => _emscripten_stack_get_current(), "stackSave"); + var stackRestore = /* @__PURE__ */ __name((val) => __emscripten_stack_restore(val), "stackRestore"); + var createInvokeFunction = /* @__PURE__ */ __name((sig) => (ptr, ...args2) => { + var sp = stackSave(); + try { + return dynCall(sig, ptr, args2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } + }, "createInvokeFunction"); + var resolveGlobalSymbol = /* @__PURE__ */ __name((symName, direct = false) => { + var sym; + if (direct && "orig$" + symName in wasmImports) { + symName = "orig$" + symName; + } + if (isSymbolDefined(symName)) { + sym = wasmImports[symName]; + } else if (symName.startsWith("invoke_")) { + sym = wasmImports[symName] = createInvokeFunction(symName.split("_")[1]); + } + return { + sym, + name: symName + }; + }, "resolveGlobalSymbol"); + var UTF8ToString = /* @__PURE__ */ __name((ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "", "UTF8ToString"); + var loadWebAssemblyModule = /* @__PURE__ */ __name((binary, flags, libName, localScope, handle) => { + var metadata = getDylinkMetadata(binary); + currentModuleWeakSymbols = metadata.weakImports; + function loadModule() { + var firstLoad = !handle || !HEAP8[handle + 8]; + if (firstLoad) { + var memAlign = Math.pow(2, metadata.memoryAlign); + var memoryBase = metadata.memorySize ? alignMemory(getMemory(metadata.memorySize + memAlign), memAlign) : 0; + var tableBase = metadata.tableSize ? wasmTable.length : 0; + if (handle) { + HEAP8[handle + 8] = 1; + LE_HEAP_STORE_U32((handle + 12 >> 2) * 4, memoryBase); + LE_HEAP_STORE_I32((handle + 16 >> 2) * 4, metadata.memorySize); + LE_HEAP_STORE_U32((handle + 20 >> 2) * 4, tableBase); + LE_HEAP_STORE_I32((handle + 24 >> 2) * 4, metadata.tableSize); + } + } else { + memoryBase = LE_HEAP_LOAD_U32((handle + 12 >> 2) * 4); + tableBase = LE_HEAP_LOAD_U32((handle + 20 >> 2) * 4); + } + var tableGrowthNeeded = tableBase + metadata.tableSize - wasmTable.length; + if (tableGrowthNeeded > 0) { + wasmTable.grow(tableGrowthNeeded); + } + var moduleExports; + function resolveSymbol(sym) { + var resolved = resolveGlobalSymbol(sym).sym; + if (!resolved && localScope) { + resolved = localScope[sym]; + } + if (!resolved) { + resolved = moduleExports[sym]; + } + return resolved; + } + __name(resolveSymbol, "resolveSymbol"); + var proxyHandler = { + get(stubs, prop) { + switch (prop) { + case "__memory_base": + return memoryBase; + case "__table_base": + return tableBase; + } + if (prop in wasmImports && !wasmImports[prop].stub) { + return wasmImports[prop]; + } + if (!(prop in stubs)) { + var resolved; + stubs[prop] = (...args2) => { + resolved ||= resolveSymbol(prop); + return resolved(...args2); + }; + } + return stubs[prop]; + } + }; + var proxy = new Proxy({}, proxyHandler); + var info = { + "GOT.mem": new Proxy({}, GOTHandler), + "GOT.func": new Proxy({}, GOTHandler), + "env": proxy, + "wasi_snapshot_preview1": proxy + }; + function postInstantiation(module, instance) { + updateTableMap(tableBase, metadata.tableSize); + moduleExports = relocateExports(instance.exports, memoryBase); + if (!flags.allowUndefined) { + reportUndefinedSymbols(); + } + function addEmAsm(addr, body) { + var args = []; + var arity = 0; + for (; arity < 16; arity++) { + if (body.indexOf("$" + arity) != -1) { + args.push("$" + arity); + } else { + break; + } + } + args = args.join(","); + var func = `(${args}) => { ${body} };`; + ASM_CONSTS[start] = eval(func); + } + __name(addEmAsm, "addEmAsm"); + if ("__start_em_asm" in moduleExports) { + var start = moduleExports["__start_em_asm"]; + var stop = moduleExports["__stop_em_asm"]; + while (start < stop) { + var jsString = UTF8ToString(start); + addEmAsm(start, jsString); + start = HEAPU8.indexOf(0, start) + 1; + } + } + function addEmJs(name, cSig, body) { + var jsArgs = []; + cSig = cSig.slice(1, -1); + if (cSig != "void") { + cSig = cSig.split(","); + for (var i in cSig) { + var jsArg = cSig[i].split(" ").pop(); + jsArgs.push(jsArg.replace("*", "")); + } + } + var func = `(${jsArgs}) => ${body};`; + moduleExports[name] = eval(func); + } + __name(addEmJs, "addEmJs"); + for (var name in moduleExports) { + if (name.startsWith("__em_js__")) { + var start = moduleExports[name]; + var jsString = UTF8ToString(start); + var parts = jsString.split("<::>"); + addEmJs(name.replace("__em_js__", ""), parts[0], parts[1]); + delete moduleExports[name]; + } + } + var applyRelocs = moduleExports["__wasm_apply_data_relocs"]; + if (applyRelocs) { + if (runtimeInitialized) { + applyRelocs(); + } else { + __RELOC_FUNCS__.push(applyRelocs); + } + } + var init = moduleExports["__wasm_call_ctors"]; + if (init) { + if (runtimeInitialized) { + init(); + } else { + __ATINIT__.push(init); + } + } + return moduleExports; + } + __name(postInstantiation, "postInstantiation"); + if (flags.loadAsync) { + if (binary instanceof WebAssembly.Module) { + var instance = new WebAssembly.Instance(binary, info); + return Promise.resolve(postInstantiation(binary, instance)); + } + return WebAssembly.instantiate(binary, info).then((result) => postInstantiation(result.module, result.instance)); + } + var module = binary instanceof WebAssembly.Module ? binary : new WebAssembly.Module(binary); + var instance = new WebAssembly.Instance(module, info); + return postInstantiation(module, instance); + } + __name(loadModule, "loadModule"); + if (flags.loadAsync) { + return metadata.neededDynlibs.reduce((chain, dynNeeded) => chain.then(() => loadDynamicLibrary(dynNeeded, flags, localScope)), Promise.resolve()).then(loadModule); + } + metadata.neededDynlibs.forEach((needed) => loadDynamicLibrary(needed, flags, localScope)); + return loadModule(); + }, "loadWebAssemblyModule"); + var mergeLibSymbols = /* @__PURE__ */ __name((exports, libName2) => { + registerDynCallSymbols(exports); + for (var [sym, exp] of Object.entries(exports)) { + const setImport = /* @__PURE__ */ __name((target) => { + if (!isSymbolDefined(target)) { + wasmImports[target] = exp; + } + }, "setImport"); + setImport(sym); + const main_alias = "__main_argc_argv"; + if (sym == "main") { + setImport(main_alias); + } + if (sym == main_alias) { + setImport("main"); + } + } + }, "mergeLibSymbols"); + var asyncLoad = /* @__PURE__ */ __name((url, onload, onerror, noRunDep) => { + var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ""; + readAsync(url).then((arrayBuffer) => { + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, (err2) => { + if (onerror) { + onerror(); + } else { + throw `Loading data file "${url}" failed.`; + } + }); + if (dep) addRunDependency(dep); + }, "asyncLoad"); + var registerDynCallSymbols = /* @__PURE__ */ __name((exports) => { + for (var [sym, exp] of Object.entries(exports)) { + if (sym.startsWith("dynCall_") && !Module.hasOwnProperty(sym)) { + Module[sym] = exp; + } + } + }, "registerDynCallSymbols"); + function loadDynamicLibrary(libName2, flags2 = { + global: true, + nodelete: true + }, localScope2, handle2) { + var dso = LDSO.loadedLibsByName[libName2]; + if (dso) { + if (!flags2.global) { + if (localScope2) { + Object.assign(localScope2, dso.exports); + } + registerDynCallSymbols(dso.exports); + } else if (!dso.global) { + dso.global = true; + mergeLibSymbols(dso.exports, libName2); + } + if (flags2.nodelete && dso.refcount !== Infinity) { + dso.refcount = Infinity; + } + dso.refcount++; + if (handle2) { + LDSO.loadedLibsByHandle[handle2] = dso; + } + return flags2.loadAsync ? Promise.resolve(true) : true; + } + dso = newDSO(libName2, handle2, "loading"); + dso.refcount = flags2.nodelete ? Infinity : 1; + dso.global = flags2.global; + function loadLibData() { + if (handle2) { + var data = LE_HEAP_LOAD_U32((handle2 + 28 >> 2) * 4); + var dataSize = LE_HEAP_LOAD_U32((handle2 + 32 >> 2) * 4); + if (data && dataSize) { + var libData = HEAP8.slice(data, data + dataSize); + return flags2.loadAsync ? Promise.resolve(libData) : libData; + } + } + var libFile = locateFile(libName2); + if (flags2.loadAsync) { + return new Promise((resolve, reject) => asyncLoad(libFile, resolve, reject)); + } + if (!readBinary) { + throw new Error(`${libFile}: file not found, and synchronous loading of external files is not available`); + } + return readBinary(libFile); + } + __name(loadLibData, "loadLibData"); + function getExports() { + if (flags2.loadAsync) { + return loadLibData().then((libData) => loadWebAssemblyModule(libData, flags2, libName2, localScope2, handle2)); + } + return loadWebAssemblyModule(loadLibData(), flags2, libName2, localScope2, handle2); + } + __name(getExports, "getExports"); + function moduleLoaded(exports) { + if (dso.global) { + mergeLibSymbols(exports, libName2); + } else if (localScope2) { + Object.assign(localScope2, exports); + registerDynCallSymbols(exports); + } + dso.exports = exports; + } + __name(moduleLoaded, "moduleLoaded"); + if (flags2.loadAsync) { + return getExports().then((exports) => { + moduleLoaded(exports); + return true; + }); + } + moduleLoaded(getExports()); + return true; + } + __name(loadDynamicLibrary, "loadDynamicLibrary"); + var reportUndefinedSymbols = /* @__PURE__ */ __name(() => { + for (var [symName, entry] of Object.entries(GOT)) { + if (entry.value == 0) { + var value = resolveGlobalSymbol(symName, true).sym; + if (!value && !entry.required) { + continue; + } + if (typeof value == "function") { + entry.value = addFunction(value, value.sig); + } else if (typeof value == "number") { + entry.value = value; + } else { + throw new Error(`bad export type for '${symName}': ${typeof value}`); + } + } + } + }, "reportUndefinedSymbols"); + var loadDylibs = /* @__PURE__ */ __name(() => { + if (!dynamicLibraries.length) { + reportUndefinedSymbols(); + return; + } + addRunDependency("loadDylibs"); + dynamicLibraries.reduce((chain, lib) => chain.then(() => loadDynamicLibrary(lib, { + loadAsync: true, + global: true, + nodelete: true, + allowUndefined: true + })), Promise.resolve()).then(() => { + reportUndefinedSymbols(); + removeRunDependency("loadDylibs"); + }); + }, "loadDylibs"); + var noExitRuntime = Module["noExitRuntime"] || true; + function setValue(ptr, value, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + HEAP8[ptr] = value; + break; + case "i8": + HEAP8[ptr] = value; + break; + case "i16": + LE_HEAP_STORE_I16((ptr >> 1) * 2, value); + break; + case "i32": + LE_HEAP_STORE_I32((ptr >> 2) * 4, value); + break; + case "i64": + abort("to do setValue(i64) use WASM_BIGINT"); + case "float": + LE_HEAP_STORE_F32((ptr >> 2) * 4, value); + break; + case "double": + LE_HEAP_STORE_F64((ptr >> 3) * 8, value); + break; + case "*": + LE_HEAP_STORE_U32((ptr >> 2) * 4, value); + break; + default: + abort(`invalid type for setValue: ${type}`); + } + } + __name(setValue, "setValue"); + var ___memory_base = new WebAssembly.Global({ + "value": "i32", + "mutable": false + }, 1024); + var ___stack_pointer = new WebAssembly.Global({ + "value": "i32", + "mutable": true + }, 78144); + var ___table_base = new WebAssembly.Global({ + "value": "i32", + "mutable": false + }, 1); + var __abort_js = /* @__PURE__ */ __name(() => { + abort(""); + }, "__abort_js"); + __abort_js.sig = "v"; + var nowIsMonotonic = 1; + var __emscripten_get_now_is_monotonic = /* @__PURE__ */ __name(() => nowIsMonotonic, "__emscripten_get_now_is_monotonic"); + __emscripten_get_now_is_monotonic.sig = "i"; + var __emscripten_memcpy_js = /* @__PURE__ */ __name((dest, src, num) => HEAPU8.copyWithin(dest, src, src + num), "__emscripten_memcpy_js"); + __emscripten_memcpy_js.sig = "vppp"; + var _emscripten_date_now = /* @__PURE__ */ __name(() => Date.now(), "_emscripten_date_now"); + _emscripten_date_now.sig = "d"; + var _emscripten_get_now = /* @__PURE__ */ __name(() => performance.now(), "_emscripten_get_now"); + _emscripten_get_now.sig = "d"; + var getHeapMax = /* @__PURE__ */ __name(() => ( + // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate + // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side + // for any code that deals with heap sizes, which would require special + // casing all heap size related code to treat 0 specially. + 2147483648 + ), "getHeapMax"); + var growMemory = /* @__PURE__ */ __name((size) => { + var b = wasmMemory.buffer; + var pages = (size - b.byteLength + 65535) / 65536 | 0; + try { + wasmMemory.grow(pages); + updateMemoryViews(); + return 1; + } catch (e) { + } + }, "growMemory"); + var _emscripten_resize_heap = /* @__PURE__ */ __name((requestedSize) => { + var oldSize = HEAPU8.length; + requestedSize >>>= 0; + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + return false; + }, "_emscripten_resize_heap"); + _emscripten_resize_heap.sig = "ip"; + var _fd_close = /* @__PURE__ */ __name((fd) => 52, "_fd_close"); + _fd_close.sig = "ii"; + var convertI32PairToI53Checked = /* @__PURE__ */ __name((lo, hi) => hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN, "convertI32PairToI53Checked"); + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + return 70; + } + __name(_fd_seek, "_fd_seek"); + _fd_seek.sig = "iiiiip"; + var printCharBuffers = [null, [], []]; + var printChar = /* @__PURE__ */ __name((stream, curr) => { + var buffer = printCharBuffers[stream]; + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer)); + buffer.length = 0; + } else { + buffer.push(curr); + } + }, "printChar"); + var flush_NO_FILESYSTEM = /* @__PURE__ */ __name(() => { + if (printCharBuffers[1].length) printChar(1, 10); + if (printCharBuffers[2].length) printChar(2, 10); + }, "flush_NO_FILESYSTEM"); + var SYSCALLS = { + varargs: void 0, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + } + }; + var _fd_write = /* @__PURE__ */ __name((fd, iov, iovcnt, pnum) => { + var num = 0; + for (var i2 = 0; i2 < iovcnt; i2++) { + var ptr = LE_HEAP_LOAD_U32((iov >> 2) * 4); + var len = LE_HEAP_LOAD_U32((iov + 4 >> 2) * 4); + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr + j]); + } + num += len; + } + LE_HEAP_STORE_U32((pnum >> 2) * 4, num); + return 0; + }, "_fd_write"); + _fd_write.sig = "iippp"; + function _tree_sitter_log_callback(isLexMessage, messageAddress) { + if (Module.currentLogCallback) { + const message = UTF8ToString(messageAddress); + Module.currentLogCallback(message, isLexMessage !== 0); + } + } + __name(_tree_sitter_log_callback, "_tree_sitter_log_callback"); + function _tree_sitter_parse_callback(inputBufferAddress, index, row, column, lengthAddress) { + const INPUT_BUFFER_SIZE = 10 * 1024; + const string = Module.currentParseCallback(index, { + row, + column + }); + if (typeof string === "string") { + setValue(lengthAddress, string.length, "i32"); + stringToUTF16(string, inputBufferAddress, INPUT_BUFFER_SIZE); + } else { + setValue(lengthAddress, 0, "i32"); + } + } + __name(_tree_sitter_parse_callback, "_tree_sitter_parse_callback"); + function _tree_sitter_progress_callback(currentOffset) { + if (Module.currentProgressCallback) { + return Module.currentProgressCallback({ + currentOffset + }); + } + return false; + } + __name(_tree_sitter_progress_callback, "_tree_sitter_progress_callback"); + function _tree_sitter_query_progress_callback(currentOffset) { + if (Module.currentQueryProgressCallback) { + return Module.currentQueryProgressCallback({ + currentOffset + }); + } + return false; + } + __name(_tree_sitter_query_progress_callback, "_tree_sitter_query_progress_callback"); + var runtimeKeepaliveCounter = 0; + var keepRuntimeAlive = /* @__PURE__ */ __name(() => noExitRuntime || runtimeKeepaliveCounter > 0, "keepRuntimeAlive"); + var _proc_exit = /* @__PURE__ */ __name((code) => { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + Module["onExit"]?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + }, "_proc_exit"); + _proc_exit.sig = "vi"; + var exitJS = /* @__PURE__ */ __name((status, implicit) => { + EXITSTATUS = status; + _proc_exit(status); + }, "exitJS"); + var handleException = /* @__PURE__ */ __name((e) => { + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); + }, "handleException"); + var lengthBytesUTF8 = /* @__PURE__ */ __name((str) => { + var len = 0; + for (var i2 = 0; i2 < str.length; ++i2) { + var c = str.charCodeAt(i2); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i2; + } else { + len += 3; + } + } + return len; + }, "lengthBytesUTF8"); + var stringToUTF8Array = /* @__PURE__ */ __name((str, heap, outIdx, maxBytesToWrite) => { + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i2 = 0; i2 < str.length; ++i2) { + var u = str.charCodeAt(i2); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i2); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } + } + heap[outIdx] = 0; + return outIdx - startIdx; + }, "stringToUTF8Array"); + var stringToUTF8 = /* @__PURE__ */ __name((str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite), "stringToUTF8"); + var stackAlloc = /* @__PURE__ */ __name((sz) => __emscripten_stack_alloc(sz), "stackAlloc"); + var stringToUTF8OnStack = /* @__PURE__ */ __name((str) => { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; + }, "stringToUTF8OnStack"); + var AsciiToString = /* @__PURE__ */ __name((ptr) => { + var str = ""; + while (1) { + var ch = HEAPU8[ptr++]; + if (!ch) return str; + str += String.fromCharCode(ch); + } + }, "AsciiToString"); + var stringToUTF16 = /* @__PURE__ */ __name((str, outPtr, maxBytesToWrite) => { + maxBytesToWrite ??= 2147483647; + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; + var startPtr = outPtr; + var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; + for (var i2 = 0; i2 < numCharsToWrite; ++i2) { + var codeUnit = str.charCodeAt(i2); + LE_HEAP_STORE_I16((outPtr >> 1) * 2, codeUnit); + outPtr += 2; + } + LE_HEAP_STORE_I16((outPtr >> 1) * 2, 0); + return outPtr - startPtr; + }, "stringToUTF16"); + var wasmImports = { + /** @export */ + __heap_base: ___heap_base, + /** @export */ + __indirect_function_table: wasmTable, + /** @export */ + __memory_base: ___memory_base, + /** @export */ + __stack_pointer: ___stack_pointer, + /** @export */ + __table_base: ___table_base, + /** @export */ + _abort_js: __abort_js, + /** @export */ + _emscripten_get_now_is_monotonic: __emscripten_get_now_is_monotonic, + /** @export */ + _emscripten_memcpy_js: __emscripten_memcpy_js, + /** @export */ + emscripten_date_now: _emscripten_date_now, + /** @export */ + emscripten_get_now: _emscripten_get_now, + /** @export */ + emscripten_resize_heap: _emscripten_resize_heap, + /** @export */ + fd_close: _fd_close, + /** @export */ + fd_seek: _fd_seek, + /** @export */ + fd_write: _fd_write, + /** @export */ + memory: wasmMemory, + /** @export */ + tree_sitter_log_callback: _tree_sitter_log_callback, + /** @export */ + tree_sitter_parse_callback: _tree_sitter_parse_callback, + /** @export */ + tree_sitter_progress_callback: _tree_sitter_progress_callback, + /** @export */ + tree_sitter_query_progress_callback: _tree_sitter_query_progress_callback + }; + var wasmExports = createWasm(); + var ___wasm_call_ctors = /* @__PURE__ */ __name(() => (___wasm_call_ctors = wasmExports["__wasm_call_ctors"])(), "___wasm_call_ctors"); + var _malloc = Module["_malloc"] = (a0) => (_malloc = Module["_malloc"] = wasmExports["malloc"])(a0); + var _calloc = Module["_calloc"] = (a0, a1) => (_calloc = Module["_calloc"] = wasmExports["calloc"])(a0, a1); + var _realloc = Module["_realloc"] = (a0, a1) => (_realloc = Module["_realloc"] = wasmExports["realloc"])(a0, a1); + var _free = Module["_free"] = (a0) => (_free = Module["_free"] = wasmExports["free"])(a0); + var _ts_language_symbol_count = Module["_ts_language_symbol_count"] = (a0) => (_ts_language_symbol_count = Module["_ts_language_symbol_count"] = wasmExports["ts_language_symbol_count"])(a0); + var _ts_language_state_count = Module["_ts_language_state_count"] = (a0) => (_ts_language_state_count = Module["_ts_language_state_count"] = wasmExports["ts_language_state_count"])(a0); + var _ts_language_version = Module["_ts_language_version"] = (a0) => (_ts_language_version = Module["_ts_language_version"] = wasmExports["ts_language_version"])(a0); + var _ts_language_name = Module["_ts_language_name"] = (a0) => (_ts_language_name = Module["_ts_language_name"] = wasmExports["ts_language_name"])(a0); + var _ts_language_field_count = Module["_ts_language_field_count"] = (a0) => (_ts_language_field_count = Module["_ts_language_field_count"] = wasmExports["ts_language_field_count"])(a0); + var _ts_language_next_state = Module["_ts_language_next_state"] = (a0, a1, a2) => (_ts_language_next_state = Module["_ts_language_next_state"] = wasmExports["ts_language_next_state"])(a0, a1, a2); + var _ts_language_symbol_name = Module["_ts_language_symbol_name"] = (a0, a1) => (_ts_language_symbol_name = Module["_ts_language_symbol_name"] = wasmExports["ts_language_symbol_name"])(a0, a1); + var _ts_language_symbol_for_name = Module["_ts_language_symbol_for_name"] = (a0, a1, a2, a3) => (_ts_language_symbol_for_name = Module["_ts_language_symbol_for_name"] = wasmExports["ts_language_symbol_for_name"])(a0, a1, a2, a3); + var _strncmp = Module["_strncmp"] = (a0, a1, a2) => (_strncmp = Module["_strncmp"] = wasmExports["strncmp"])(a0, a1, a2); + var _ts_language_symbol_type = Module["_ts_language_symbol_type"] = (a0, a1) => (_ts_language_symbol_type = Module["_ts_language_symbol_type"] = wasmExports["ts_language_symbol_type"])(a0, a1); + var _ts_language_field_name_for_id = Module["_ts_language_field_name_for_id"] = (a0, a1) => (_ts_language_field_name_for_id = Module["_ts_language_field_name_for_id"] = wasmExports["ts_language_field_name_for_id"])(a0, a1); + var _ts_lookahead_iterator_new = Module["_ts_lookahead_iterator_new"] = (a0, a1) => (_ts_lookahead_iterator_new = Module["_ts_lookahead_iterator_new"] = wasmExports["ts_lookahead_iterator_new"])(a0, a1); + var _ts_lookahead_iterator_delete = Module["_ts_lookahead_iterator_delete"] = (a0) => (_ts_lookahead_iterator_delete = Module["_ts_lookahead_iterator_delete"] = wasmExports["ts_lookahead_iterator_delete"])(a0); + var _ts_lookahead_iterator_reset_state = Module["_ts_lookahead_iterator_reset_state"] = (a0, a1) => (_ts_lookahead_iterator_reset_state = Module["_ts_lookahead_iterator_reset_state"] = wasmExports["ts_lookahead_iterator_reset_state"])(a0, a1); + var _ts_lookahead_iterator_reset = Module["_ts_lookahead_iterator_reset"] = (a0, a1, a2) => (_ts_lookahead_iterator_reset = Module["_ts_lookahead_iterator_reset"] = wasmExports["ts_lookahead_iterator_reset"])(a0, a1, a2); + var _ts_lookahead_iterator_next = Module["_ts_lookahead_iterator_next"] = (a0) => (_ts_lookahead_iterator_next = Module["_ts_lookahead_iterator_next"] = wasmExports["ts_lookahead_iterator_next"])(a0); + var _ts_lookahead_iterator_current_symbol = Module["_ts_lookahead_iterator_current_symbol"] = (a0) => (_ts_lookahead_iterator_current_symbol = Module["_ts_lookahead_iterator_current_symbol"] = wasmExports["ts_lookahead_iterator_current_symbol"])(a0); + var _memset = Module["_memset"] = (a0, a1, a2) => (_memset = Module["_memset"] = wasmExports["memset"])(a0, a1, a2); + var _memcpy = Module["_memcpy"] = (a0, a1, a2) => (_memcpy = Module["_memcpy"] = wasmExports["memcpy"])(a0, a1, a2); + var _ts_parser_delete = Module["_ts_parser_delete"] = (a0) => (_ts_parser_delete = Module["_ts_parser_delete"] = wasmExports["ts_parser_delete"])(a0); + var _ts_parser_reset = Module["_ts_parser_reset"] = (a0) => (_ts_parser_reset = Module["_ts_parser_reset"] = wasmExports["ts_parser_reset"])(a0); + var _ts_parser_set_language = Module["_ts_parser_set_language"] = (a0, a1) => (_ts_parser_set_language = Module["_ts_parser_set_language"] = wasmExports["ts_parser_set_language"])(a0, a1); + var _ts_parser_timeout_micros = Module["_ts_parser_timeout_micros"] = (a0) => (_ts_parser_timeout_micros = Module["_ts_parser_timeout_micros"] = wasmExports["ts_parser_timeout_micros"])(a0); + var _ts_parser_set_timeout_micros = Module["_ts_parser_set_timeout_micros"] = (a0, a1, a2) => (_ts_parser_set_timeout_micros = Module["_ts_parser_set_timeout_micros"] = wasmExports["ts_parser_set_timeout_micros"])(a0, a1, a2); + var _ts_parser_set_included_ranges = Module["_ts_parser_set_included_ranges"] = (a0, a1, a2) => (_ts_parser_set_included_ranges = Module["_ts_parser_set_included_ranges"] = wasmExports["ts_parser_set_included_ranges"])(a0, a1, a2); + var _memmove = Module["_memmove"] = (a0, a1, a2) => (_memmove = Module["_memmove"] = wasmExports["memmove"])(a0, a1, a2); + var _memcmp = Module["_memcmp"] = (a0, a1, a2) => (_memcmp = Module["_memcmp"] = wasmExports["memcmp"])(a0, a1, a2); + var _ts_query_new = Module["_ts_query_new"] = (a0, a1, a2, a3, a4) => (_ts_query_new = Module["_ts_query_new"] = wasmExports["ts_query_new"])(a0, a1, a2, a3, a4); + var _ts_query_delete = Module["_ts_query_delete"] = (a0) => (_ts_query_delete = Module["_ts_query_delete"] = wasmExports["ts_query_delete"])(a0); + var _iswspace = Module["_iswspace"] = (a0) => (_iswspace = Module["_iswspace"] = wasmExports["iswspace"])(a0); + var _iswalnum = Module["_iswalnum"] = (a0) => (_iswalnum = Module["_iswalnum"] = wasmExports["iswalnum"])(a0); + var _ts_query_pattern_count = Module["_ts_query_pattern_count"] = (a0) => (_ts_query_pattern_count = Module["_ts_query_pattern_count"] = wasmExports["ts_query_pattern_count"])(a0); + var _ts_query_capture_count = Module["_ts_query_capture_count"] = (a0) => (_ts_query_capture_count = Module["_ts_query_capture_count"] = wasmExports["ts_query_capture_count"])(a0); + var _ts_query_string_count = Module["_ts_query_string_count"] = (a0) => (_ts_query_string_count = Module["_ts_query_string_count"] = wasmExports["ts_query_string_count"])(a0); + var _ts_query_capture_name_for_id = Module["_ts_query_capture_name_for_id"] = (a0, a1, a2) => (_ts_query_capture_name_for_id = Module["_ts_query_capture_name_for_id"] = wasmExports["ts_query_capture_name_for_id"])(a0, a1, a2); + var _ts_query_capture_quantifier_for_id = Module["_ts_query_capture_quantifier_for_id"] = (a0, a1, a2) => (_ts_query_capture_quantifier_for_id = Module["_ts_query_capture_quantifier_for_id"] = wasmExports["ts_query_capture_quantifier_for_id"])(a0, a1, a2); + var _ts_query_string_value_for_id = Module["_ts_query_string_value_for_id"] = (a0, a1, a2) => (_ts_query_string_value_for_id = Module["_ts_query_string_value_for_id"] = wasmExports["ts_query_string_value_for_id"])(a0, a1, a2); + var _ts_query_predicates_for_pattern = Module["_ts_query_predicates_for_pattern"] = (a0, a1, a2) => (_ts_query_predicates_for_pattern = Module["_ts_query_predicates_for_pattern"] = wasmExports["ts_query_predicates_for_pattern"])(a0, a1, a2); + var _ts_query_start_byte_for_pattern = Module["_ts_query_start_byte_for_pattern"] = (a0, a1) => (_ts_query_start_byte_for_pattern = Module["_ts_query_start_byte_for_pattern"] = wasmExports["ts_query_start_byte_for_pattern"])(a0, a1); + var _ts_query_end_byte_for_pattern = Module["_ts_query_end_byte_for_pattern"] = (a0, a1) => (_ts_query_end_byte_for_pattern = Module["_ts_query_end_byte_for_pattern"] = wasmExports["ts_query_end_byte_for_pattern"])(a0, a1); + var _ts_query_is_pattern_rooted = Module["_ts_query_is_pattern_rooted"] = (a0, a1) => (_ts_query_is_pattern_rooted = Module["_ts_query_is_pattern_rooted"] = wasmExports["ts_query_is_pattern_rooted"])(a0, a1); + var _ts_query_is_pattern_non_local = Module["_ts_query_is_pattern_non_local"] = (a0, a1) => (_ts_query_is_pattern_non_local = Module["_ts_query_is_pattern_non_local"] = wasmExports["ts_query_is_pattern_non_local"])(a0, a1); + var _ts_query_is_pattern_guaranteed_at_step = Module["_ts_query_is_pattern_guaranteed_at_step"] = (a0, a1) => (_ts_query_is_pattern_guaranteed_at_step = Module["_ts_query_is_pattern_guaranteed_at_step"] = wasmExports["ts_query_is_pattern_guaranteed_at_step"])(a0, a1); + var _ts_query_disable_capture = Module["_ts_query_disable_capture"] = (a0, a1, a2) => (_ts_query_disable_capture = Module["_ts_query_disable_capture"] = wasmExports["ts_query_disable_capture"])(a0, a1, a2); + var _ts_query_disable_pattern = Module["_ts_query_disable_pattern"] = (a0, a1) => (_ts_query_disable_pattern = Module["_ts_query_disable_pattern"] = wasmExports["ts_query_disable_pattern"])(a0, a1); + var _ts_tree_copy = Module["_ts_tree_copy"] = (a0) => (_ts_tree_copy = Module["_ts_tree_copy"] = wasmExports["ts_tree_copy"])(a0); + var _ts_tree_delete = Module["_ts_tree_delete"] = (a0) => (_ts_tree_delete = Module["_ts_tree_delete"] = wasmExports["ts_tree_delete"])(a0); + var _ts_init = Module["_ts_init"] = () => (_ts_init = Module["_ts_init"] = wasmExports["ts_init"])(); + var _ts_parser_new_wasm = Module["_ts_parser_new_wasm"] = () => (_ts_parser_new_wasm = Module["_ts_parser_new_wasm"] = wasmExports["ts_parser_new_wasm"])(); + var _ts_parser_enable_logger_wasm = Module["_ts_parser_enable_logger_wasm"] = (a0, a1) => (_ts_parser_enable_logger_wasm = Module["_ts_parser_enable_logger_wasm"] = wasmExports["ts_parser_enable_logger_wasm"])(a0, a1); + var _ts_parser_parse_wasm = Module["_ts_parser_parse_wasm"] = (a0, a1, a2, a3, a4) => (_ts_parser_parse_wasm = Module["_ts_parser_parse_wasm"] = wasmExports["ts_parser_parse_wasm"])(a0, a1, a2, a3, a4); + var _ts_parser_included_ranges_wasm = Module["_ts_parser_included_ranges_wasm"] = (a0) => (_ts_parser_included_ranges_wasm = Module["_ts_parser_included_ranges_wasm"] = wasmExports["ts_parser_included_ranges_wasm"])(a0); + var _ts_language_type_is_named_wasm = Module["_ts_language_type_is_named_wasm"] = (a0, a1) => (_ts_language_type_is_named_wasm = Module["_ts_language_type_is_named_wasm"] = wasmExports["ts_language_type_is_named_wasm"])(a0, a1); + var _ts_language_type_is_visible_wasm = Module["_ts_language_type_is_visible_wasm"] = (a0, a1) => (_ts_language_type_is_visible_wasm = Module["_ts_language_type_is_visible_wasm"] = wasmExports["ts_language_type_is_visible_wasm"])(a0, a1); + var _ts_language_supertypes_wasm = Module["_ts_language_supertypes_wasm"] = (a0) => (_ts_language_supertypes_wasm = Module["_ts_language_supertypes_wasm"] = wasmExports["ts_language_supertypes_wasm"])(a0); + var _ts_language_subtypes_wasm = Module["_ts_language_subtypes_wasm"] = (a0, a1) => (_ts_language_subtypes_wasm = Module["_ts_language_subtypes_wasm"] = wasmExports["ts_language_subtypes_wasm"])(a0, a1); + var _ts_tree_root_node_wasm = Module["_ts_tree_root_node_wasm"] = (a0) => (_ts_tree_root_node_wasm = Module["_ts_tree_root_node_wasm"] = wasmExports["ts_tree_root_node_wasm"])(a0); + var _ts_tree_root_node_with_offset_wasm = Module["_ts_tree_root_node_with_offset_wasm"] = (a0) => (_ts_tree_root_node_with_offset_wasm = Module["_ts_tree_root_node_with_offset_wasm"] = wasmExports["ts_tree_root_node_with_offset_wasm"])(a0); + var _ts_tree_edit_wasm = Module["_ts_tree_edit_wasm"] = (a0) => (_ts_tree_edit_wasm = Module["_ts_tree_edit_wasm"] = wasmExports["ts_tree_edit_wasm"])(a0); + var _ts_tree_included_ranges_wasm = Module["_ts_tree_included_ranges_wasm"] = (a0) => (_ts_tree_included_ranges_wasm = Module["_ts_tree_included_ranges_wasm"] = wasmExports["ts_tree_included_ranges_wasm"])(a0); + var _ts_tree_get_changed_ranges_wasm = Module["_ts_tree_get_changed_ranges_wasm"] = (a0, a1) => (_ts_tree_get_changed_ranges_wasm = Module["_ts_tree_get_changed_ranges_wasm"] = wasmExports["ts_tree_get_changed_ranges_wasm"])(a0, a1); + var _ts_tree_cursor_new_wasm = Module["_ts_tree_cursor_new_wasm"] = (a0) => (_ts_tree_cursor_new_wasm = Module["_ts_tree_cursor_new_wasm"] = wasmExports["ts_tree_cursor_new_wasm"])(a0); + var _ts_tree_cursor_copy_wasm = Module["_ts_tree_cursor_copy_wasm"] = (a0) => (_ts_tree_cursor_copy_wasm = Module["_ts_tree_cursor_copy_wasm"] = wasmExports["ts_tree_cursor_copy_wasm"])(a0); + var _ts_tree_cursor_delete_wasm = Module["_ts_tree_cursor_delete_wasm"] = (a0) => (_ts_tree_cursor_delete_wasm = Module["_ts_tree_cursor_delete_wasm"] = wasmExports["ts_tree_cursor_delete_wasm"])(a0); + var _ts_tree_cursor_reset_wasm = Module["_ts_tree_cursor_reset_wasm"] = (a0) => (_ts_tree_cursor_reset_wasm = Module["_ts_tree_cursor_reset_wasm"] = wasmExports["ts_tree_cursor_reset_wasm"])(a0); + var _ts_tree_cursor_reset_to_wasm = Module["_ts_tree_cursor_reset_to_wasm"] = (a0, a1) => (_ts_tree_cursor_reset_to_wasm = Module["_ts_tree_cursor_reset_to_wasm"] = wasmExports["ts_tree_cursor_reset_to_wasm"])(a0, a1); + var _ts_tree_cursor_goto_first_child_wasm = Module["_ts_tree_cursor_goto_first_child_wasm"] = (a0) => (_ts_tree_cursor_goto_first_child_wasm = Module["_ts_tree_cursor_goto_first_child_wasm"] = wasmExports["ts_tree_cursor_goto_first_child_wasm"])(a0); + var _ts_tree_cursor_goto_last_child_wasm = Module["_ts_tree_cursor_goto_last_child_wasm"] = (a0) => (_ts_tree_cursor_goto_last_child_wasm = Module["_ts_tree_cursor_goto_last_child_wasm"] = wasmExports["ts_tree_cursor_goto_last_child_wasm"])(a0); + var _ts_tree_cursor_goto_first_child_for_index_wasm = Module["_ts_tree_cursor_goto_first_child_for_index_wasm"] = (a0) => (_ts_tree_cursor_goto_first_child_for_index_wasm = Module["_ts_tree_cursor_goto_first_child_for_index_wasm"] = wasmExports["ts_tree_cursor_goto_first_child_for_index_wasm"])(a0); + var _ts_tree_cursor_goto_first_child_for_position_wasm = Module["_ts_tree_cursor_goto_first_child_for_position_wasm"] = (a0) => (_ts_tree_cursor_goto_first_child_for_position_wasm = Module["_ts_tree_cursor_goto_first_child_for_position_wasm"] = wasmExports["ts_tree_cursor_goto_first_child_for_position_wasm"])(a0); + var _ts_tree_cursor_goto_next_sibling_wasm = Module["_ts_tree_cursor_goto_next_sibling_wasm"] = (a0) => (_ts_tree_cursor_goto_next_sibling_wasm = Module["_ts_tree_cursor_goto_next_sibling_wasm"] = wasmExports["ts_tree_cursor_goto_next_sibling_wasm"])(a0); + var _ts_tree_cursor_goto_previous_sibling_wasm = Module["_ts_tree_cursor_goto_previous_sibling_wasm"] = (a0) => (_ts_tree_cursor_goto_previous_sibling_wasm = Module["_ts_tree_cursor_goto_previous_sibling_wasm"] = wasmExports["ts_tree_cursor_goto_previous_sibling_wasm"])(a0); + var _ts_tree_cursor_goto_descendant_wasm = Module["_ts_tree_cursor_goto_descendant_wasm"] = (a0, a1) => (_ts_tree_cursor_goto_descendant_wasm = Module["_ts_tree_cursor_goto_descendant_wasm"] = wasmExports["ts_tree_cursor_goto_descendant_wasm"])(a0, a1); + var _ts_tree_cursor_goto_parent_wasm = Module["_ts_tree_cursor_goto_parent_wasm"] = (a0) => (_ts_tree_cursor_goto_parent_wasm = Module["_ts_tree_cursor_goto_parent_wasm"] = wasmExports["ts_tree_cursor_goto_parent_wasm"])(a0); + var _ts_tree_cursor_current_node_type_id_wasm = Module["_ts_tree_cursor_current_node_type_id_wasm"] = (a0) => (_ts_tree_cursor_current_node_type_id_wasm = Module["_ts_tree_cursor_current_node_type_id_wasm"] = wasmExports["ts_tree_cursor_current_node_type_id_wasm"])(a0); + var _ts_tree_cursor_current_node_state_id_wasm = Module["_ts_tree_cursor_current_node_state_id_wasm"] = (a0) => (_ts_tree_cursor_current_node_state_id_wasm = Module["_ts_tree_cursor_current_node_state_id_wasm"] = wasmExports["ts_tree_cursor_current_node_state_id_wasm"])(a0); + var _ts_tree_cursor_current_node_is_named_wasm = Module["_ts_tree_cursor_current_node_is_named_wasm"] = (a0) => (_ts_tree_cursor_current_node_is_named_wasm = Module["_ts_tree_cursor_current_node_is_named_wasm"] = wasmExports["ts_tree_cursor_current_node_is_named_wasm"])(a0); + var _ts_tree_cursor_current_node_is_missing_wasm = Module["_ts_tree_cursor_current_node_is_missing_wasm"] = (a0) => (_ts_tree_cursor_current_node_is_missing_wasm = Module["_ts_tree_cursor_current_node_is_missing_wasm"] = wasmExports["ts_tree_cursor_current_node_is_missing_wasm"])(a0); + var _ts_tree_cursor_current_node_id_wasm = Module["_ts_tree_cursor_current_node_id_wasm"] = (a0) => (_ts_tree_cursor_current_node_id_wasm = Module["_ts_tree_cursor_current_node_id_wasm"] = wasmExports["ts_tree_cursor_current_node_id_wasm"])(a0); + var _ts_tree_cursor_start_position_wasm = Module["_ts_tree_cursor_start_position_wasm"] = (a0) => (_ts_tree_cursor_start_position_wasm = Module["_ts_tree_cursor_start_position_wasm"] = wasmExports["ts_tree_cursor_start_position_wasm"])(a0); + var _ts_tree_cursor_end_position_wasm = Module["_ts_tree_cursor_end_position_wasm"] = (a0) => (_ts_tree_cursor_end_position_wasm = Module["_ts_tree_cursor_end_position_wasm"] = wasmExports["ts_tree_cursor_end_position_wasm"])(a0); + var _ts_tree_cursor_start_index_wasm = Module["_ts_tree_cursor_start_index_wasm"] = (a0) => (_ts_tree_cursor_start_index_wasm = Module["_ts_tree_cursor_start_index_wasm"] = wasmExports["ts_tree_cursor_start_index_wasm"])(a0); + var _ts_tree_cursor_end_index_wasm = Module["_ts_tree_cursor_end_index_wasm"] = (a0) => (_ts_tree_cursor_end_index_wasm = Module["_ts_tree_cursor_end_index_wasm"] = wasmExports["ts_tree_cursor_end_index_wasm"])(a0); + var _ts_tree_cursor_current_field_id_wasm = Module["_ts_tree_cursor_current_field_id_wasm"] = (a0) => (_ts_tree_cursor_current_field_id_wasm = Module["_ts_tree_cursor_current_field_id_wasm"] = wasmExports["ts_tree_cursor_current_field_id_wasm"])(a0); + var _ts_tree_cursor_current_depth_wasm = Module["_ts_tree_cursor_current_depth_wasm"] = (a0) => (_ts_tree_cursor_current_depth_wasm = Module["_ts_tree_cursor_current_depth_wasm"] = wasmExports["ts_tree_cursor_current_depth_wasm"])(a0); + var _ts_tree_cursor_current_descendant_index_wasm = Module["_ts_tree_cursor_current_descendant_index_wasm"] = (a0) => (_ts_tree_cursor_current_descendant_index_wasm = Module["_ts_tree_cursor_current_descendant_index_wasm"] = wasmExports["ts_tree_cursor_current_descendant_index_wasm"])(a0); + var _ts_tree_cursor_current_node_wasm = Module["_ts_tree_cursor_current_node_wasm"] = (a0) => (_ts_tree_cursor_current_node_wasm = Module["_ts_tree_cursor_current_node_wasm"] = wasmExports["ts_tree_cursor_current_node_wasm"])(a0); + var _ts_node_symbol_wasm = Module["_ts_node_symbol_wasm"] = (a0) => (_ts_node_symbol_wasm = Module["_ts_node_symbol_wasm"] = wasmExports["ts_node_symbol_wasm"])(a0); + var _ts_node_field_name_for_child_wasm = Module["_ts_node_field_name_for_child_wasm"] = (a0, a1) => (_ts_node_field_name_for_child_wasm = Module["_ts_node_field_name_for_child_wasm"] = wasmExports["ts_node_field_name_for_child_wasm"])(a0, a1); + var _ts_node_field_name_for_named_child_wasm = Module["_ts_node_field_name_for_named_child_wasm"] = (a0, a1) => (_ts_node_field_name_for_named_child_wasm = Module["_ts_node_field_name_for_named_child_wasm"] = wasmExports["ts_node_field_name_for_named_child_wasm"])(a0, a1); + var _ts_node_children_by_field_id_wasm = Module["_ts_node_children_by_field_id_wasm"] = (a0, a1) => (_ts_node_children_by_field_id_wasm = Module["_ts_node_children_by_field_id_wasm"] = wasmExports["ts_node_children_by_field_id_wasm"])(a0, a1); + var _ts_node_first_child_for_byte_wasm = Module["_ts_node_first_child_for_byte_wasm"] = (a0) => (_ts_node_first_child_for_byte_wasm = Module["_ts_node_first_child_for_byte_wasm"] = wasmExports["ts_node_first_child_for_byte_wasm"])(a0); + var _ts_node_first_named_child_for_byte_wasm = Module["_ts_node_first_named_child_for_byte_wasm"] = (a0) => (_ts_node_first_named_child_for_byte_wasm = Module["_ts_node_first_named_child_for_byte_wasm"] = wasmExports["ts_node_first_named_child_for_byte_wasm"])(a0); + var _ts_node_grammar_symbol_wasm = Module["_ts_node_grammar_symbol_wasm"] = (a0) => (_ts_node_grammar_symbol_wasm = Module["_ts_node_grammar_symbol_wasm"] = wasmExports["ts_node_grammar_symbol_wasm"])(a0); + var _ts_node_child_count_wasm = Module["_ts_node_child_count_wasm"] = (a0) => (_ts_node_child_count_wasm = Module["_ts_node_child_count_wasm"] = wasmExports["ts_node_child_count_wasm"])(a0); + var _ts_node_named_child_count_wasm = Module["_ts_node_named_child_count_wasm"] = (a0) => (_ts_node_named_child_count_wasm = Module["_ts_node_named_child_count_wasm"] = wasmExports["ts_node_named_child_count_wasm"])(a0); + var _ts_node_child_wasm = Module["_ts_node_child_wasm"] = (a0, a1) => (_ts_node_child_wasm = Module["_ts_node_child_wasm"] = wasmExports["ts_node_child_wasm"])(a0, a1); + var _ts_node_named_child_wasm = Module["_ts_node_named_child_wasm"] = (a0, a1) => (_ts_node_named_child_wasm = Module["_ts_node_named_child_wasm"] = wasmExports["ts_node_named_child_wasm"])(a0, a1); + var _ts_node_child_by_field_id_wasm = Module["_ts_node_child_by_field_id_wasm"] = (a0, a1) => (_ts_node_child_by_field_id_wasm = Module["_ts_node_child_by_field_id_wasm"] = wasmExports["ts_node_child_by_field_id_wasm"])(a0, a1); + var _ts_node_next_sibling_wasm = Module["_ts_node_next_sibling_wasm"] = (a0) => (_ts_node_next_sibling_wasm = Module["_ts_node_next_sibling_wasm"] = wasmExports["ts_node_next_sibling_wasm"])(a0); + var _ts_node_prev_sibling_wasm = Module["_ts_node_prev_sibling_wasm"] = (a0) => (_ts_node_prev_sibling_wasm = Module["_ts_node_prev_sibling_wasm"] = wasmExports["ts_node_prev_sibling_wasm"])(a0); + var _ts_node_next_named_sibling_wasm = Module["_ts_node_next_named_sibling_wasm"] = (a0) => (_ts_node_next_named_sibling_wasm = Module["_ts_node_next_named_sibling_wasm"] = wasmExports["ts_node_next_named_sibling_wasm"])(a0); + var _ts_node_prev_named_sibling_wasm = Module["_ts_node_prev_named_sibling_wasm"] = (a0) => (_ts_node_prev_named_sibling_wasm = Module["_ts_node_prev_named_sibling_wasm"] = wasmExports["ts_node_prev_named_sibling_wasm"])(a0); + var _ts_node_descendant_count_wasm = Module["_ts_node_descendant_count_wasm"] = (a0) => (_ts_node_descendant_count_wasm = Module["_ts_node_descendant_count_wasm"] = wasmExports["ts_node_descendant_count_wasm"])(a0); + var _ts_node_parent_wasm = Module["_ts_node_parent_wasm"] = (a0) => (_ts_node_parent_wasm = Module["_ts_node_parent_wasm"] = wasmExports["ts_node_parent_wasm"])(a0); + var _ts_node_child_with_descendant_wasm = Module["_ts_node_child_with_descendant_wasm"] = (a0) => (_ts_node_child_with_descendant_wasm = Module["_ts_node_child_with_descendant_wasm"] = wasmExports["ts_node_child_with_descendant_wasm"])(a0); + var _ts_node_descendant_for_index_wasm = Module["_ts_node_descendant_for_index_wasm"] = (a0) => (_ts_node_descendant_for_index_wasm = Module["_ts_node_descendant_for_index_wasm"] = wasmExports["ts_node_descendant_for_index_wasm"])(a0); + var _ts_node_named_descendant_for_index_wasm = Module["_ts_node_named_descendant_for_index_wasm"] = (a0) => (_ts_node_named_descendant_for_index_wasm = Module["_ts_node_named_descendant_for_index_wasm"] = wasmExports["ts_node_named_descendant_for_index_wasm"])(a0); + var _ts_node_descendant_for_position_wasm = Module["_ts_node_descendant_for_position_wasm"] = (a0) => (_ts_node_descendant_for_position_wasm = Module["_ts_node_descendant_for_position_wasm"] = wasmExports["ts_node_descendant_for_position_wasm"])(a0); + var _ts_node_named_descendant_for_position_wasm = Module["_ts_node_named_descendant_for_position_wasm"] = (a0) => (_ts_node_named_descendant_for_position_wasm = Module["_ts_node_named_descendant_for_position_wasm"] = wasmExports["ts_node_named_descendant_for_position_wasm"])(a0); + var _ts_node_start_point_wasm = Module["_ts_node_start_point_wasm"] = (a0) => (_ts_node_start_point_wasm = Module["_ts_node_start_point_wasm"] = wasmExports["ts_node_start_point_wasm"])(a0); + var _ts_node_end_point_wasm = Module["_ts_node_end_point_wasm"] = (a0) => (_ts_node_end_point_wasm = Module["_ts_node_end_point_wasm"] = wasmExports["ts_node_end_point_wasm"])(a0); + var _ts_node_start_index_wasm = Module["_ts_node_start_index_wasm"] = (a0) => (_ts_node_start_index_wasm = Module["_ts_node_start_index_wasm"] = wasmExports["ts_node_start_index_wasm"])(a0); + var _ts_node_end_index_wasm = Module["_ts_node_end_index_wasm"] = (a0) => (_ts_node_end_index_wasm = Module["_ts_node_end_index_wasm"] = wasmExports["ts_node_end_index_wasm"])(a0); + var _ts_node_to_string_wasm = Module["_ts_node_to_string_wasm"] = (a0) => (_ts_node_to_string_wasm = Module["_ts_node_to_string_wasm"] = wasmExports["ts_node_to_string_wasm"])(a0); + var _ts_node_children_wasm = Module["_ts_node_children_wasm"] = (a0) => (_ts_node_children_wasm = Module["_ts_node_children_wasm"] = wasmExports["ts_node_children_wasm"])(a0); + var _ts_node_named_children_wasm = Module["_ts_node_named_children_wasm"] = (a0) => (_ts_node_named_children_wasm = Module["_ts_node_named_children_wasm"] = wasmExports["ts_node_named_children_wasm"])(a0); + var _ts_node_descendants_of_type_wasm = Module["_ts_node_descendants_of_type_wasm"] = (a0, a1, a2, a3, a4, a5, a6) => (_ts_node_descendants_of_type_wasm = Module["_ts_node_descendants_of_type_wasm"] = wasmExports["ts_node_descendants_of_type_wasm"])(a0, a1, a2, a3, a4, a5, a6); + var _ts_node_is_named_wasm = Module["_ts_node_is_named_wasm"] = (a0) => (_ts_node_is_named_wasm = Module["_ts_node_is_named_wasm"] = wasmExports["ts_node_is_named_wasm"])(a0); + var _ts_node_has_changes_wasm = Module["_ts_node_has_changes_wasm"] = (a0) => (_ts_node_has_changes_wasm = Module["_ts_node_has_changes_wasm"] = wasmExports["ts_node_has_changes_wasm"])(a0); + var _ts_node_has_error_wasm = Module["_ts_node_has_error_wasm"] = (a0) => (_ts_node_has_error_wasm = Module["_ts_node_has_error_wasm"] = wasmExports["ts_node_has_error_wasm"])(a0); + var _ts_node_is_error_wasm = Module["_ts_node_is_error_wasm"] = (a0) => (_ts_node_is_error_wasm = Module["_ts_node_is_error_wasm"] = wasmExports["ts_node_is_error_wasm"])(a0); + var _ts_node_is_missing_wasm = Module["_ts_node_is_missing_wasm"] = (a0) => (_ts_node_is_missing_wasm = Module["_ts_node_is_missing_wasm"] = wasmExports["ts_node_is_missing_wasm"])(a0); + var _ts_node_is_extra_wasm = Module["_ts_node_is_extra_wasm"] = (a0) => (_ts_node_is_extra_wasm = Module["_ts_node_is_extra_wasm"] = wasmExports["ts_node_is_extra_wasm"])(a0); + var _ts_node_parse_state_wasm = Module["_ts_node_parse_state_wasm"] = (a0) => (_ts_node_parse_state_wasm = Module["_ts_node_parse_state_wasm"] = wasmExports["ts_node_parse_state_wasm"])(a0); + var _ts_node_next_parse_state_wasm = Module["_ts_node_next_parse_state_wasm"] = (a0) => (_ts_node_next_parse_state_wasm = Module["_ts_node_next_parse_state_wasm"] = wasmExports["ts_node_next_parse_state_wasm"])(a0); + var _ts_query_matches_wasm = Module["_ts_query_matches_wasm"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) => (_ts_query_matches_wasm = Module["_ts_query_matches_wasm"] = wasmExports["ts_query_matches_wasm"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + var _ts_query_captures_wasm = Module["_ts_query_captures_wasm"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) => (_ts_query_captures_wasm = Module["_ts_query_captures_wasm"] = wasmExports["ts_query_captures_wasm"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + var _iswalpha = Module["_iswalpha"] = (a0) => (_iswalpha = Module["_iswalpha"] = wasmExports["iswalpha"])(a0); + var _iswblank = Module["_iswblank"] = (a0) => (_iswblank = Module["_iswblank"] = wasmExports["iswblank"])(a0); + var _iswdigit = Module["_iswdigit"] = (a0) => (_iswdigit = Module["_iswdigit"] = wasmExports["iswdigit"])(a0); + var _iswlower = Module["_iswlower"] = (a0) => (_iswlower = Module["_iswlower"] = wasmExports["iswlower"])(a0); + var _iswupper = Module["_iswupper"] = (a0) => (_iswupper = Module["_iswupper"] = wasmExports["iswupper"])(a0); + var _iswxdigit = Module["_iswxdigit"] = (a0) => (_iswxdigit = Module["_iswxdigit"] = wasmExports["iswxdigit"])(a0); + var _memchr = Module["_memchr"] = (a0, a1, a2) => (_memchr = Module["_memchr"] = wasmExports["memchr"])(a0, a1, a2); + var _strlen = Module["_strlen"] = (a0) => (_strlen = Module["_strlen"] = wasmExports["strlen"])(a0); + var _strcmp = Module["_strcmp"] = (a0, a1) => (_strcmp = Module["_strcmp"] = wasmExports["strcmp"])(a0, a1); + var _strncat = Module["_strncat"] = (a0, a1, a2) => (_strncat = Module["_strncat"] = wasmExports["strncat"])(a0, a1, a2); + var _strncpy = Module["_strncpy"] = (a0, a1, a2) => (_strncpy = Module["_strncpy"] = wasmExports["strncpy"])(a0, a1, a2); + var _towlower = Module["_towlower"] = (a0) => (_towlower = Module["_towlower"] = wasmExports["towlower"])(a0); + var _towupper = Module["_towupper"] = (a0) => (_towupper = Module["_towupper"] = wasmExports["towupper"])(a0); + var _setThrew = /* @__PURE__ */ __name((a0, a1) => (_setThrew = wasmExports["setThrew"])(a0, a1), "_setThrew"); + var __emscripten_stack_restore = /* @__PURE__ */ __name((a0) => (__emscripten_stack_restore = wasmExports["_emscripten_stack_restore"])(a0), "__emscripten_stack_restore"); + var __emscripten_stack_alloc = /* @__PURE__ */ __name((a0) => (__emscripten_stack_alloc = wasmExports["_emscripten_stack_alloc"])(a0), "__emscripten_stack_alloc"); + var _emscripten_stack_get_current = /* @__PURE__ */ __name(() => (_emscripten_stack_get_current = wasmExports["emscripten_stack_get_current"])(), "_emscripten_stack_get_current"); + var ___wasm_apply_data_relocs = /* @__PURE__ */ __name(() => (___wasm_apply_data_relocs = wasmExports["__wasm_apply_data_relocs"])(), "___wasm_apply_data_relocs"); + var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["dynCall_jiji"])(a0, a1, a2, a3, a4); + var _orig$ts_parser_timeout_micros = Module["_orig$ts_parser_timeout_micros"] = (a0) => (_orig$ts_parser_timeout_micros = Module["_orig$ts_parser_timeout_micros"] = wasmExports["orig$ts_parser_timeout_micros"])(a0); + var _orig$ts_parser_set_timeout_micros = Module["_orig$ts_parser_set_timeout_micros"] = (a0, a1) => (_orig$ts_parser_set_timeout_micros = Module["_orig$ts_parser_set_timeout_micros"] = wasmExports["orig$ts_parser_set_timeout_micros"])(a0, a1); + Module["setValue"] = setValue; + Module["getValue"] = getValue; + Module["UTF8ToString"] = UTF8ToString; + Module["stringToUTF8"] = stringToUTF8; + Module["lengthBytesUTF8"] = lengthBytesUTF8; + Module["AsciiToString"] = AsciiToString; + Module["stringToUTF16"] = stringToUTF16; + Module["loadWebAssemblyModule"] = loadWebAssemblyModule; + var calledRun; + dependenciesFulfilled = /* @__PURE__ */ __name(function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; + }, "runCaller"); + function callMain(args2 = []) { + var entryFunction = resolveGlobalSymbol("main").sym; + if (!entryFunction) return; + args2.unshift(thisProgram); + var argc = args2.length; + var argv = stackAlloc((argc + 1) * 4); + var argv_ptr = argv; + args2.forEach((arg) => { + LE_HEAP_STORE_U32((argv_ptr >> 2) * 4, stringToUTF8OnStack(arg)); + argv_ptr += 4; + }); + LE_HEAP_STORE_U32((argv_ptr >> 2) * 4, 0); + try { + var ret = entryFunction(argc, argv); + exitJS( + ret, + /* implicit = */ + true + ); + return ret; + } catch (e) { + return handleException(e); + } + } + __name(callMain, "callMain"); + function run(args2 = arguments_) { + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + preMain(); + readyPromiseResolve(Module); + Module["onRuntimeInitialized"]?.(); + if (shouldRunNow) callMain(args2); + postRun(); + } + __name(doRun, "doRun"); + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(() => { + setTimeout(() => Module["setStatus"](""), 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + __name(run, "run"); + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + var shouldRunNow = true; + if (Module["noInitialRun"]) shouldRunNow = false; + run(); + moduleRtn = readyPromise; + return moduleRtn; + }; +})(); +var tree_sitter_default = Module2; + +// src/bindings.ts +var Module3 = null; +async function initializeBinding(moduleOptions) { + if (!Module3) { + Module3 = await tree_sitter_default(moduleOptions); + } + return Module3; +} +__name(initializeBinding, "initializeBinding"); +function checkModule() { + return !!Module3; +} +__name(checkModule, "checkModule"); + +// src/parser.ts +var TRANSFER_BUFFER; +var LANGUAGE_VERSION; +var MIN_COMPATIBLE_VERSION; +var Parser = class { + static { + __name(this, "Parser"); + } + /** @internal */ + [0] = 0; + // Internal handle for WASM + /** @internal */ + [1] = 0; + // Internal handle for WASM + /** @internal */ + logCallback = null; + /** The parser's current language. */ + language = null; + /** + * This must always be called before creating a Parser. + * + * You can optionally pass in options to configure the WASM module, the most common + * one being `locateFile` to help the module find the `.wasm` file. + */ + static async init(moduleOptions) { + setModule(await initializeBinding(moduleOptions)); + TRANSFER_BUFFER = C._ts_init(); + LANGUAGE_VERSION = C.getValue(TRANSFER_BUFFER, "i32"); + MIN_COMPATIBLE_VERSION = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + } + /** + * Create a new parser. + */ + constructor() { + this.initialize(); + } + /** @internal */ + initialize() { + if (!checkModule()) { + throw new Error("cannot construct a Parser before calling `init()`"); + } + C._ts_parser_new_wasm(); + this[0] = C.getValue(TRANSFER_BUFFER, "i32"); + this[1] = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + } + /** Delete the parser, freeing its resources. */ + delete() { + C._ts_parser_delete(this[0]); + C._free(this[1]); + this[0] = 0; + this[1] = 0; + } + /** + * Set the language that the parser should use for parsing. + * + * If the language was not successfully assigned, an error will be thrown. + * This happens if the language was generated with an incompatible + * version of the Tree-sitter CLI. Check the language's version using + * {@link Language#version} and compare it to this library's + * {@link LANGUAGE_VERSION} and {@link MIN_COMPATIBLE_VERSION} constants. + */ + setLanguage(language) { + let address; + if (!language) { + address = 0; + this.language = null; + } else if (language.constructor === Language) { + address = language[0]; + const version = C._ts_language_version(address); + if (version < MIN_COMPATIBLE_VERSION || LANGUAGE_VERSION < version) { + throw new Error( + `Incompatible language version ${version}. Compatibility range ${MIN_COMPATIBLE_VERSION} through ${LANGUAGE_VERSION}.` + ); + } + this.language = language; + } else { + throw new Error("Argument must be a Language"); + } + C._ts_parser_set_language(this[0], address); + return this; + } + /** + * Parse a slice of UTF8 text. + * + * @param {string | ParseCallback} callback - The UTF8-encoded text to parse or a callback function. + * + * @param {Tree | null} [oldTree] - A previous syntax tree parsed from the same document. If the text of the + * document has changed since `oldTree` was created, then you must edit `oldTree` to match + * the new text using {@link Tree#edit}. + * + * @param {ParseOptions} [options] - Options for parsing the text. + * This can be used to set the included ranges, or a progress callback. + * + * @returns {Tree | null} A {@link Tree} if parsing succeeded, or `null` if: + * - The parser has not yet had a language assigned with {@link Parser#setLanguage}. + * - The progress callback returned true. + */ + parse(callback, oldTree, options) { + if (typeof callback === "string") { + C.currentParseCallback = (index) => callback.slice(index); + } else if (typeof callback === "function") { + C.currentParseCallback = callback; + } else { + throw new Error("Argument must be a string or a function"); + } + if (options?.progressCallback) { + C.currentProgressCallback = options.progressCallback; + } else { + C.currentProgressCallback = null; + } + if (this.logCallback) { + C.currentLogCallback = this.logCallback; + C._ts_parser_enable_logger_wasm(this[0], 1); + } else { + C.currentLogCallback = null; + C._ts_parser_enable_logger_wasm(this[0], 0); + } + let rangeCount = 0; + let rangeAddress = 0; + if (options?.includedRanges) { + rangeCount = options.includedRanges.length; + rangeAddress = C._calloc(rangeCount, SIZE_OF_RANGE); + let address = rangeAddress; + for (let i2 = 0; i2 < rangeCount; i2++) { + marshalRange(address, options.includedRanges[i2]); + address += SIZE_OF_RANGE; + } + } + const treeAddress = C._ts_parser_parse_wasm( + this[0], + this[1], + oldTree ? oldTree[0] : 0, + rangeAddress, + rangeCount + ); + if (!treeAddress) { + C.currentParseCallback = null; + C.currentLogCallback = null; + C.currentProgressCallback = null; + return null; + } + if (!this.language) { + throw new Error("Parser must have a language to parse"); + } + const result = new Tree(INTERNAL, treeAddress, this.language, C.currentParseCallback); + C.currentParseCallback = null; + C.currentLogCallback = null; + C.currentProgressCallback = null; + return result; + } + /** + * Instruct the parser to start the next parse from the beginning. + * + * If the parser previously failed because of a timeout, cancellation, + * or callback, then by default, it will resume where it left off on the + * next call to {@link Parser#parse} or other parsing functions. + * If you don't want to resume, and instead intend to use this parser to + * parse some other document, you must call `reset` first. + */ + reset() { + C._ts_parser_reset(this[0]); + } + /** Get the ranges of text that the parser will include when parsing. */ + getIncludedRanges() { + C._ts_parser_included_ranges_wasm(this[0]); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const result = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + result[i2] = unmarshalRange(address); + address += SIZE_OF_RANGE; + } + C._free(buffer); + } + return result; + } + /** + * @deprecated since version 0.25.0, prefer passing a progress callback to {@link Parser#parse} + * + * Get the duration in microseconds that parsing is allowed to take. + * + * This is set via {@link Parser#setTimeoutMicros}. + */ + getTimeoutMicros() { + return C._ts_parser_timeout_micros(this[0]); + } + /** + * @deprecated since version 0.25.0, prefer passing a progress callback to {@link Parser#parse} + * + * Set the maximum duration in microseconds that parsing should be allowed + * to take before halting. + * + * If parsing takes longer than this, it will halt early, returning `null`. + * See {@link Parser#parse} for more information. + */ + setTimeoutMicros(timeout) { + C._ts_parser_set_timeout_micros(this[0], 0, timeout); + } + /** Set the logging callback that a parser should use during parsing. */ + setLogger(callback) { + if (!callback) { + this.logCallback = null; + } else if (typeof callback !== "function") { + throw new Error("Logger callback must be a function"); + } else { + this.logCallback = callback; + } + return this; + } + /** Get the parser's current logger. */ + getLogger() { + return this.logCallback; + } +}; + +// src/tree.ts +function getText(tree, startIndex, endIndex, startPosition) { + const length = endIndex - startIndex; + let result = tree.textCallback(startIndex, startPosition); + if (result) { + startIndex += result.length; + while (startIndex < endIndex) { + const string = tree.textCallback(startIndex, startPosition); + if (string && string.length > 0) { + startIndex += string.length; + result += string; + } else { + break; + } + } + if (startIndex > endIndex) { + result = result.slice(0, length); + } + } + return result ?? ""; +} +__name(getText, "getText"); +var Tree = class _Tree { + static { + __name(this, "Tree"); + } + /** @internal */ + [0] = 0; + // Internal handle for WASM + /** @internal */ + textCallback; + /** The language that was used to parse the syntax tree. */ + language; + /** @internal */ + constructor(internal, address, language, textCallback) { + assertInternal(internal); + this[0] = address; + this.language = language; + this.textCallback = textCallback; + } + /** Create a shallow copy of the syntax tree. This is very fast. */ + copy() { + const address = C._ts_tree_copy(this[0]); + return new _Tree(INTERNAL, address, this.language, this.textCallback); + } + /** Delete the syntax tree, freeing its resources. */ + delete() { + C._ts_tree_delete(this[0]); + this[0] = 0; + } + /** Get the root node of the syntax tree. */ + get rootNode() { + C._ts_tree_root_node_wasm(this[0]); + return unmarshalNode(this); + } + /** + * Get the root node of the syntax tree, but with its position shifted + * forward by the given offset. + */ + rootNodeWithOffset(offsetBytes, offsetExtent) { + const address = TRANSFER_BUFFER + SIZE_OF_NODE; + C.setValue(address, offsetBytes, "i32"); + marshalPoint(address + SIZE_OF_INT, offsetExtent); + C._ts_tree_root_node_with_offset_wasm(this[0]); + return unmarshalNode(this); + } + /** + * Edit the syntax tree to keep it in sync with source code that has been + * edited. + * + * You must describe the edit both in terms of byte offsets and in terms of + * row/column coordinates. + */ + edit(edit) { + marshalEdit(edit); + C._ts_tree_edit_wasm(this[0]); + } + /** Create a new {@link TreeCursor} starting from the root of the tree. */ + walk() { + return this.rootNode.walk(); + } + /** + * Compare this old edited syntax tree to a new syntax tree representing + * the same document, returning a sequence of ranges whose syntactic + * structure has changed. + * + * For this to work correctly, this syntax tree must have been edited such + * that its ranges match up to the new tree. Generally, you'll want to + * call this method right after calling one of the [`Parser::parse`] + * functions. Call it on the old tree that was passed to parse, and + * pass the new tree that was returned from `parse`. + */ + getChangedRanges(other) { + if (!(other instanceof _Tree)) { + throw new TypeError("Argument must be a Tree"); + } + C._ts_tree_get_changed_ranges_wasm(this[0], other[0]); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const result = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + result[i2] = unmarshalRange(address); + address += SIZE_OF_RANGE; + } + C._free(buffer); + } + return result; + } + /** Get the included ranges that were used to parse the syntax tree. */ + getIncludedRanges() { + C._ts_tree_included_ranges_wasm(this[0]); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const result = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + result[i2] = unmarshalRange(address); + address += SIZE_OF_RANGE; + } + C._free(buffer); + } + return result; + } +}; + +// src/tree_cursor.ts +var TreeCursor = class _TreeCursor { + static { + __name(this, "TreeCursor"); + } + /** @internal */ + [0] = 0; + // Internal handle for WASM + /** @internal */ + [1] = 0; + // Internal handle for WASM + /** @internal */ + [2] = 0; + // Internal handle for WASM + /** @internal */ + [3] = 0; + // Internal handle for WASM + /** @internal */ + tree; + /** @internal */ + constructor(internal, tree) { + assertInternal(internal); + this.tree = tree; + unmarshalTreeCursor(this); + } + /** Creates a deep copy of the tree cursor. This allocates new memory. */ + copy() { + const copy = new _TreeCursor(INTERNAL, this.tree); + C._ts_tree_cursor_copy_wasm(this.tree[0]); + unmarshalTreeCursor(copy); + return copy; + } + /** Delete the tree cursor, freeing its resources. */ + delete() { + marshalTreeCursor(this); + C._ts_tree_cursor_delete_wasm(this.tree[0]); + this[0] = this[1] = this[2] = 0; + } + /** Get the tree cursor's current {@link Node}. */ + get currentNode() { + marshalTreeCursor(this); + C._ts_tree_cursor_current_node_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** + * Get the numerical field id of this tree cursor's current node. + * + * See also {@link TreeCursor#currentFieldName}. + */ + get currentFieldId() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_field_id_wasm(this.tree[0]); + } + /** Get the field name of this tree cursor's current node. */ + get currentFieldName() { + return this.tree.language.fields[this.currentFieldId]; + } + /** + * Get the depth of the cursor's current node relative to the original + * node that the cursor was constructed with. + */ + get currentDepth() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_depth_wasm(this.tree[0]); + } + /** + * Get the index of the cursor's current node out of all of the + * descendants of the original node that the cursor was constructed with. + */ + get currentDescendantIndex() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_descendant_index_wasm(this.tree[0]); + } + /** Get the type of the cursor's current node. */ + get nodeType() { + return this.tree.language.types[this.nodeTypeId] || "ERROR"; + } + /** Get the type id of the cursor's current node. */ + get nodeTypeId() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_node_type_id_wasm(this.tree[0]); + } + /** Get the state id of the cursor's current node. */ + get nodeStateId() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_node_state_id_wasm(this.tree[0]); + } + /** Get the id of the cursor's current node. */ + get nodeId() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_node_id_wasm(this.tree[0]); + } + /** + * Check if the cursor's current node is *named*. + * + * Named nodes correspond to named rules in the grammar, whereas + * *anonymous* nodes correspond to string literals in the grammar. + */ + get nodeIsNamed() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_node_is_named_wasm(this.tree[0]) === 1; + } + /** + * Check if the cursor's current node is *missing*. + * + * Missing nodes are inserted by the parser in order to recover from + * certain kinds of syntax errors. + */ + get nodeIsMissing() { + marshalTreeCursor(this); + return C._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0]) === 1; + } + /** Get the string content of the cursor's current node. */ + get nodeText() { + marshalTreeCursor(this); + const startIndex = C._ts_tree_cursor_start_index_wasm(this.tree[0]); + const endIndex = C._ts_tree_cursor_end_index_wasm(this.tree[0]); + C._ts_tree_cursor_start_position_wasm(this.tree[0]); + const startPosition = unmarshalPoint(TRANSFER_BUFFER); + return getText(this.tree, startIndex, endIndex, startPosition); + } + /** Get the start position of the cursor's current node. */ + get startPosition() { + marshalTreeCursor(this); + C._ts_tree_cursor_start_position_wasm(this.tree[0]); + return unmarshalPoint(TRANSFER_BUFFER); + } + /** Get the end position of the cursor's current node. */ + get endPosition() { + marshalTreeCursor(this); + C._ts_tree_cursor_end_position_wasm(this.tree[0]); + return unmarshalPoint(TRANSFER_BUFFER); + } + /** Get the start index of the cursor's current node. */ + get startIndex() { + marshalTreeCursor(this); + return C._ts_tree_cursor_start_index_wasm(this.tree[0]); + } + /** Get the end index of the cursor's current node. */ + get endIndex() { + marshalTreeCursor(this); + return C._ts_tree_cursor_end_index_wasm(this.tree[0]); + } + /** + * Move this cursor to the first child of its current node. + * + * This returns `true` if the cursor successfully moved, and returns + * `false` if there were no children. + */ + gotoFirstChild() { + marshalTreeCursor(this); + const result = C._ts_tree_cursor_goto_first_child_wasm(this.tree[0]); + unmarshalTreeCursor(this); + return result === 1; + } + /** + * Move this cursor to the last child of its current node. + * + * This returns `true` if the cursor successfully moved, and returns + * `false` if there were no children. + * + * Note that this function may be slower than + * {@link TreeCursor#gotoFirstChild} because it needs to + * iterate through all the children to compute the child's position. + */ + gotoLastChild() { + marshalTreeCursor(this); + const result = C._ts_tree_cursor_goto_last_child_wasm(this.tree[0]); + unmarshalTreeCursor(this); + return result === 1; + } + /** + * Move this cursor to the parent of its current node. + * + * This returns `true` if the cursor successfully moved, and returns + * `false` if there was no parent node (the cursor was already on the + * root node). + * + * Note that the node the cursor was constructed with is considered the root + * of the cursor, and the cursor cannot walk outside this node. + */ + gotoParent() { + marshalTreeCursor(this); + const result = C._ts_tree_cursor_goto_parent_wasm(this.tree[0]); + unmarshalTreeCursor(this); + return result === 1; + } + /** + * Move this cursor to the next sibling of its current node. + * + * This returns `true` if the cursor successfully moved, and returns + * `false` if there was no next sibling node. + * + * Note that the node the cursor was constructed with is considered the root + * of the cursor, and the cursor cannot walk outside this node. + */ + gotoNextSibling() { + marshalTreeCursor(this); + const result = C._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]); + unmarshalTreeCursor(this); + return result === 1; + } + /** + * Move this cursor to the previous sibling of its current node. + * + * This returns `true` if the cursor successfully moved, and returns + * `false` if there was no previous sibling node. + * + * Note that this function may be slower than + * {@link TreeCursor#gotoNextSibling} due to how node + * positions are stored. In the worst case, this will need to iterate + * through all the children up to the previous sibling node to recalculate + * its position. Also note that the node the cursor was constructed with is + * considered the root of the cursor, and the cursor cannot walk outside this node. + */ + gotoPreviousSibling() { + marshalTreeCursor(this); + const result = C._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]); + unmarshalTreeCursor(this); + return result === 1; + } + /** + * Move the cursor to the node that is the nth descendant of + * the original node that the cursor was constructed with, where + * zero represents the original node itself. + */ + gotoDescendant(goalDescendantIndex) { + marshalTreeCursor(this); + C._ts_tree_cursor_goto_descendant_wasm(this.tree[0], goalDescendantIndex); + unmarshalTreeCursor(this); + } + /** + * Move this cursor to the first child of its current node that contains or + * starts after the given byte offset. + * + * This returns `true` if the cursor successfully moved to a child node, and returns + * `false` if no such child was found. + */ + gotoFirstChildForIndex(goalIndex) { + marshalTreeCursor(this); + C.setValue(TRANSFER_BUFFER + SIZE_OF_CURSOR, goalIndex, "i32"); + const result = C._ts_tree_cursor_goto_first_child_for_index_wasm(this.tree[0]); + unmarshalTreeCursor(this); + return result === 1; + } + /** + * Move this cursor to the first child of its current node that contains or + * starts after the given byte offset. + * + * This returns the index of the child node if one was found, and returns + * `null` if no such child was found. + */ + gotoFirstChildForPosition(goalPosition) { + marshalTreeCursor(this); + marshalPoint(TRANSFER_BUFFER + SIZE_OF_CURSOR, goalPosition); + const result = C._ts_tree_cursor_goto_first_child_for_position_wasm(this.tree[0]); + unmarshalTreeCursor(this); + return result === 1; + } + /** + * Re-initialize this tree cursor to start at the original node that the + * cursor was constructed with. + */ + reset(node) { + marshalNode(node); + marshalTreeCursor(this, TRANSFER_BUFFER + SIZE_OF_NODE); + C._ts_tree_cursor_reset_wasm(this.tree[0]); + unmarshalTreeCursor(this); + } + /** + * Re-initialize a tree cursor to the same position as another cursor. + * + * Unlike {@link TreeCursor#reset}, this will not lose parent + * information and allows reusing already created cursors. + */ + resetTo(cursor) { + marshalTreeCursor(this, TRANSFER_BUFFER); + marshalTreeCursor(cursor, TRANSFER_BUFFER + SIZE_OF_CURSOR); + C._ts_tree_cursor_reset_to_wasm(this.tree[0], cursor.tree[0]); + unmarshalTreeCursor(this); + } +}; + +// src/node.ts +var Node = class { + static { + __name(this, "Node"); + } + /** @internal */ + [0] = 0; + // Internal handle for WASM + /** @internal */ + _children; + /** @internal */ + _namedChildren; + /** @internal */ + constructor(internal, { + id, + tree, + startIndex, + startPosition, + other + }) { + assertInternal(internal); + this[0] = other; + this.id = id; + this.tree = tree; + this.startIndex = startIndex; + this.startPosition = startPosition; + } + /** + * The numeric id for this node that is unique. + * + * Within a given syntax tree, no two nodes have the same id. However: + * + * * If a new tree is created based on an older tree, and a node from the old tree is reused in + * the process, then that node will have the same id in both trees. + * + * * A node not marked as having changes does not guarantee it was reused. + * + * * If a node is marked as having changed in the old tree, it will not be reused. + */ + id; + /** The byte index where this node starts. */ + startIndex; + /** The position where this node starts. */ + startPosition; + /** The tree that this node belongs to. */ + tree; + /** Get this node's type as a numerical id. */ + get typeId() { + marshalNode(this); + return C._ts_node_symbol_wasm(this.tree[0]); + } + /** + * Get the node's type as a numerical id as it appears in the grammar, + * ignoring aliases. + */ + get grammarId() { + marshalNode(this); + return C._ts_node_grammar_symbol_wasm(this.tree[0]); + } + /** Get this node's type as a string. */ + get type() { + return this.tree.language.types[this.typeId] || "ERROR"; + } + /** + * Get this node's symbol name as it appears in the grammar, ignoring + * aliases as a string. + */ + get grammarType() { + return this.tree.language.types[this.grammarId] || "ERROR"; + } + /** + * Check if this node is *named*. + * + * Named nodes correspond to named rules in the grammar, whereas + * *anonymous* nodes correspond to string literals in the grammar. + */ + get isNamed() { + marshalNode(this); + return C._ts_node_is_named_wasm(this.tree[0]) === 1; + } + /** + * Check if this node is *extra*. + * + * Extra nodes represent things like comments, which are not required + * by the grammar, but can appear anywhere. + */ + get isExtra() { + marshalNode(this); + return C._ts_node_is_extra_wasm(this.tree[0]) === 1; + } + /** + * Check if this node represents a syntax error. + * + * Syntax errors represent parts of the code that could not be incorporated + * into a valid syntax tree. + */ + get isError() { + marshalNode(this); + return C._ts_node_is_error_wasm(this.tree[0]) === 1; + } + /** + * Check if this node is *missing*. + * + * Missing nodes are inserted by the parser in order to recover from + * certain kinds of syntax errors. + */ + get isMissing() { + marshalNode(this); + return C._ts_node_is_missing_wasm(this.tree[0]) === 1; + } + /** Check if this node has been edited. */ + get hasChanges() { + marshalNode(this); + return C._ts_node_has_changes_wasm(this.tree[0]) === 1; + } + /** + * Check if this node represents a syntax error or contains any syntax + * errors anywhere within it. + */ + get hasError() { + marshalNode(this); + return C._ts_node_has_error_wasm(this.tree[0]) === 1; + } + /** Get the byte index where this node ends. */ + get endIndex() { + marshalNode(this); + return C._ts_node_end_index_wasm(this.tree[0]); + } + /** Get the position where this node ends. */ + get endPosition() { + marshalNode(this); + C._ts_node_end_point_wasm(this.tree[0]); + return unmarshalPoint(TRANSFER_BUFFER); + } + /** Get the string content of this node. */ + get text() { + return getText(this.tree, this.startIndex, this.endIndex, this.startPosition); + } + /** Get this node's parse state. */ + get parseState() { + marshalNode(this); + return C._ts_node_parse_state_wasm(this.tree[0]); + } + /** Get the parse state after this node. */ + get nextParseState() { + marshalNode(this); + return C._ts_node_next_parse_state_wasm(this.tree[0]); + } + /** Check if this node is equal to another node. */ + equals(other) { + return this.tree === other.tree && this.id === other.id; + } + /** + * Get the node's child at the given index, where zero represents the first child. + * + * This method is fairly fast, but its cost is technically log(n), so if + * you might be iterating over a long list of children, you should use + * {@link Node#children} instead. + */ + child(index) { + marshalNode(this); + C._ts_node_child_wasm(this.tree[0], index); + return unmarshalNode(this.tree); + } + /** + * Get this node's *named* child at the given index. + * + * See also {@link Node#isNamed}. + * This method is fairly fast, but its cost is technically log(n), so if + * you might be iterating over a long list of children, you should use + * {@link Node#namedChildren} instead. + */ + namedChild(index) { + marshalNode(this); + C._ts_node_named_child_wasm(this.tree[0], index); + return unmarshalNode(this.tree); + } + /** + * Get this node's child with the given numerical field id. + * + * See also {@link Node#childForFieldName}. You can + * convert a field name to an id using {@link Language#fieldIdForName}. + */ + childForFieldId(fieldId) { + marshalNode(this); + C._ts_node_child_by_field_id_wasm(this.tree[0], fieldId); + return unmarshalNode(this.tree); + } + /** + * Get the first child with the given field name. + * + * If multiple children may have the same field name, access them using + * {@link Node#childrenForFieldName}. + */ + childForFieldName(fieldName) { + const fieldId = this.tree.language.fields.indexOf(fieldName); + if (fieldId !== -1) return this.childForFieldId(fieldId); + return null; + } + /** Get the field name of this node's child at the given index. */ + fieldNameForChild(index) { + marshalNode(this); + const address = C._ts_node_field_name_for_child_wasm(this.tree[0], index); + if (!address) return null; + return C.AsciiToString(address); + } + /** Get the field name of this node's named child at the given index. */ + fieldNameForNamedChild(index) { + marshalNode(this); + const address = C._ts_node_field_name_for_named_child_wasm(this.tree[0], index); + if (!address) return null; + return C.AsciiToString(address); + } + /** + * Get an array of this node's children with a given field name. + * + * See also {@link Node#children}. + */ + childrenForFieldName(fieldName) { + const fieldId = this.tree.language.fields.indexOf(fieldName); + if (fieldId !== -1 && fieldId !== 0) return this.childrenForFieldId(fieldId); + return []; + } + /** + * Get an array of this node's children with a given field id. + * + * See also {@link Node#childrenForFieldName}. + */ + childrenForFieldId(fieldId) { + marshalNode(this); + C._ts_node_children_by_field_id_wasm(this.tree[0], fieldId); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const result = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + result[i2] = unmarshalNode(this.tree, address); + address += SIZE_OF_NODE; + } + C._free(buffer); + } + return result; + } + /** Get the node's first child that contains or starts after the given byte offset. */ + firstChildForIndex(index) { + marshalNode(this); + const address = TRANSFER_BUFFER + SIZE_OF_NODE; + C.setValue(address, index, "i32"); + C._ts_node_first_child_for_byte_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get the node's first named child that contains or starts after the given byte offset. */ + firstNamedChildForIndex(index) { + marshalNode(this); + const address = TRANSFER_BUFFER + SIZE_OF_NODE; + C.setValue(address, index, "i32"); + C._ts_node_first_named_child_for_byte_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get this node's number of children. */ + get childCount() { + marshalNode(this); + return C._ts_node_child_count_wasm(this.tree[0]); + } + /** + * Get this node's number of *named* children. + * + * See also {@link Node#isNamed}. + */ + get namedChildCount() { + marshalNode(this); + return C._ts_node_named_child_count_wasm(this.tree[0]); + } + /** Get this node's first child. */ + get firstChild() { + return this.child(0); + } + /** + * Get this node's first named child. + * + * See also {@link Node#isNamed}. + */ + get firstNamedChild() { + return this.namedChild(0); + } + /** Get this node's last child. */ + get lastChild() { + return this.child(this.childCount - 1); + } + /** + * Get this node's last named child. + * + * See also {@link Node#isNamed}. + */ + get lastNamedChild() { + return this.namedChild(this.namedChildCount - 1); + } + /** + * Iterate over this node's children. + * + * If you're walking the tree recursively, you may want to use the + * {@link TreeCursor} APIs directly instead. + */ + get children() { + if (!this._children) { + marshalNode(this); + C._ts_node_children_wasm(this.tree[0]); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + this._children = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + this._children[i2] = unmarshalNode(this.tree, address); + address += SIZE_OF_NODE; + } + C._free(buffer); + } + } + return this._children; + } + /** + * Iterate over this node's named children. + * + * See also {@link Node#children}. + */ + get namedChildren() { + if (!this._namedChildren) { + marshalNode(this); + C._ts_node_named_children_wasm(this.tree[0]); + const count = C.getValue(TRANSFER_BUFFER, "i32"); + const buffer = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + this._namedChildren = new Array(count); + if (count > 0) { + let address = buffer; + for (let i2 = 0; i2 < count; i2++) { + this._namedChildren[i2] = unmarshalNode(this.tree, address); + address += SIZE_OF_NODE; + } + C._free(buffer); + } + } + return this._namedChildren; + } + /** + * Get the descendants of this node that are the given type, or in the given types array. + * + * The types array should contain node type strings, which can be retrieved from {@link Language#types}. + * + * Additionally, a `startPosition` and `endPosition` can be passed in to restrict the search to a byte range. + */ + descendantsOfType(types, startPosition = ZERO_POINT, endPosition = ZERO_POINT) { + if (!Array.isArray(types)) types = [types]; + const symbols = []; + const typesBySymbol = this.tree.language.types; + for (let i2 = 0, n = typesBySymbol.length; i2 < n; i2++) { + if (types.includes(typesBySymbol[i2])) { + symbols.push(i2); + } + } + const symbolsAddress = C._malloc(SIZE_OF_INT * symbols.length); + for (let i2 = 0, n = symbols.length; i2 < n; i2++) { + C.setValue(symbolsAddress + i2 * SIZE_OF_INT, symbols[i2], "i32"); + } + marshalNode(this); + C._ts_node_descendants_of_type_wasm( + this.tree[0], + symbolsAddress, + symbols.length, + startPosition.row, + startPosition.column, + endPosition.row, + endPosition.column + ); + const descendantCount = C.getValue(TRANSFER_BUFFER, "i32"); + const descendantAddress = C.getValue(TRANSFER_BUFFER + SIZE_OF_INT, "i32"); + const result = new Array(descendantCount); + if (descendantCount > 0) { + let address = descendantAddress; + for (let i2 = 0; i2 < descendantCount; i2++) { + result[i2] = unmarshalNode(this.tree, address); + address += SIZE_OF_NODE; + } + } + C._free(descendantAddress); + C._free(symbolsAddress); + return result; + } + /** Get this node's next sibling. */ + get nextSibling() { + marshalNode(this); + C._ts_node_next_sibling_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get this node's previous sibling. */ + get previousSibling() { + marshalNode(this); + C._ts_node_prev_sibling_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** + * Get this node's next *named* sibling. + * + * See also {@link Node#isNamed}. + */ + get nextNamedSibling() { + marshalNode(this); + C._ts_node_next_named_sibling_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** + * Get this node's previous *named* sibling. + * + * See also {@link Node#isNamed}. + */ + get previousNamedSibling() { + marshalNode(this); + C._ts_node_prev_named_sibling_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get the node's number of descendants, including one for the node itself. */ + get descendantCount() { + marshalNode(this); + return C._ts_node_descendant_count_wasm(this.tree[0]); + } + /** + * Get this node's immediate parent. + * Prefer {@link Node#childWithDescendant} for iterating over this node's ancestors. + */ + get parent() { + marshalNode(this); + C._ts_node_parent_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** + * Get the node that contains `descendant`. + * + * Note that this can return `descendant` itself. + */ + childWithDescendant(descendant) { + marshalNode(this); + marshalNode(descendant); + C._ts_node_child_with_descendant_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get the smallest node within this node that spans the given byte range. */ + descendantForIndex(start2, end = start2) { + if (typeof start2 !== "number" || typeof end !== "number") { + throw new Error("Arguments must be numbers"); + } + marshalNode(this); + const address = TRANSFER_BUFFER + SIZE_OF_NODE; + C.setValue(address, start2, "i32"); + C.setValue(address + SIZE_OF_INT, end, "i32"); + C._ts_node_descendant_for_index_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get the smallest named node within this node that spans the given byte range. */ + namedDescendantForIndex(start2, end = start2) { + if (typeof start2 !== "number" || typeof end !== "number") { + throw new Error("Arguments must be numbers"); + } + marshalNode(this); + const address = TRANSFER_BUFFER + SIZE_OF_NODE; + C.setValue(address, start2, "i32"); + C.setValue(address + SIZE_OF_INT, end, "i32"); + C._ts_node_named_descendant_for_index_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get the smallest node within this node that spans the given point range. */ + descendantForPosition(start2, end = start2) { + if (!isPoint(start2) || !isPoint(end)) { + throw new Error("Arguments must be {row, column} objects"); + } + marshalNode(this); + const address = TRANSFER_BUFFER + SIZE_OF_NODE; + marshalPoint(address, start2); + marshalPoint(address + SIZE_OF_POINT, end); + C._ts_node_descendant_for_position_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** Get the smallest named node within this node that spans the given point range. */ + namedDescendantForPosition(start2, end = start2) { + if (!isPoint(start2) || !isPoint(end)) { + throw new Error("Arguments must be {row, column} objects"); + } + marshalNode(this); + const address = TRANSFER_BUFFER + SIZE_OF_NODE; + marshalPoint(address, start2); + marshalPoint(address + SIZE_OF_POINT, end); + C._ts_node_named_descendant_for_position_wasm(this.tree[0]); + return unmarshalNode(this.tree); + } + /** + * Create a new {@link TreeCursor} starting from this node. + * + * Note that the given node is considered the root of the cursor, + * and the cursor cannot walk outside this node. + */ + walk() { + marshalNode(this); + C._ts_tree_cursor_new_wasm(this.tree[0]); + return new TreeCursor(INTERNAL, this.tree); + } + /** + * Edit this node to keep it in-sync with source code that has been edited. + * + * This function is only rarely needed. When you edit a syntax tree with + * the {@link Tree#edit} method, all of the nodes that you retrieve from + * the tree afterward will already reflect the edit. You only need to + * use {@link Node#edit} when you have a specific {@link Node} instance that + * you want to keep and continue to use after an edit. + */ + edit(edit) { + if (this.startIndex >= edit.oldEndIndex) { + this.startIndex = edit.newEndIndex + (this.startIndex - edit.oldEndIndex); + let subbedPointRow; + let subbedPointColumn; + if (this.startPosition.row > edit.oldEndPosition.row) { + subbedPointRow = this.startPosition.row - edit.oldEndPosition.row; + subbedPointColumn = this.startPosition.column; + } else { + subbedPointRow = 0; + subbedPointColumn = this.startPosition.column; + if (this.startPosition.column >= edit.oldEndPosition.column) { + subbedPointColumn = this.startPosition.column - edit.oldEndPosition.column; + } + } + if (subbedPointRow > 0) { + this.startPosition.row += subbedPointRow; + this.startPosition.column = subbedPointColumn; + } else { + this.startPosition.column += subbedPointColumn; + } + } else if (this.startIndex > edit.startIndex) { + this.startIndex = edit.newEndIndex; + this.startPosition.row = edit.newEndPosition.row; + this.startPosition.column = edit.newEndPosition.column; + } + } + /** Get the S-expression representation of this node. */ + toString() { + marshalNode(this); + const address = C._ts_node_to_string_wasm(this.tree[0]); + const result = C.AsciiToString(address); + C._free(address); + return result; + } +}; + +// src/marshal.ts +function unmarshalCaptures(query, tree, address, result) { + for (let i2 = 0, n = result.length; i2 < n; i2++) { + const captureIndex = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const node = unmarshalNode(tree, address); + address += SIZE_OF_NODE; + result[i2] = { name: query.captureNames[captureIndex], node }; + } + return address; +} +__name(unmarshalCaptures, "unmarshalCaptures"); +function marshalNode(node) { + let address = TRANSFER_BUFFER; + C.setValue(address, node.id, "i32"); + address += SIZE_OF_INT; + C.setValue(address, node.startIndex, "i32"); + address += SIZE_OF_INT; + C.setValue(address, node.startPosition.row, "i32"); + address += SIZE_OF_INT; + C.setValue(address, node.startPosition.column, "i32"); + address += SIZE_OF_INT; + C.setValue(address, node[0], "i32"); +} +__name(marshalNode, "marshalNode"); +function unmarshalNode(tree, address = TRANSFER_BUFFER) { + const id = C.getValue(address, "i32"); + address += SIZE_OF_INT; + if (id === 0) return null; + const index = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const row = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const column = C.getValue(address, "i32"); + address += SIZE_OF_INT; + const other = C.getValue(address, "i32"); + const result = new Node(INTERNAL, { + id, + tree, + startIndex: index, + startPosition: { row, column }, + other + }); + return result; +} +__name(unmarshalNode, "unmarshalNode"); +function marshalTreeCursor(cursor, address = TRANSFER_BUFFER) { + C.setValue(address + 0 * SIZE_OF_INT, cursor[0], "i32"); + C.setValue(address + 1 * SIZE_OF_INT, cursor[1], "i32"); + C.setValue(address + 2 * SIZE_OF_INT, cursor[2], "i32"); + C.setValue(address + 3 * SIZE_OF_INT, cursor[3], "i32"); +} +__name(marshalTreeCursor, "marshalTreeCursor"); +function unmarshalTreeCursor(cursor) { + cursor[0] = C.getValue(TRANSFER_BUFFER + 0 * SIZE_OF_INT, "i32"); + cursor[1] = C.getValue(TRANSFER_BUFFER + 1 * SIZE_OF_INT, "i32"); + cursor[2] = C.getValue(TRANSFER_BUFFER + 2 * SIZE_OF_INT, "i32"); + cursor[3] = C.getValue(TRANSFER_BUFFER + 3 * SIZE_OF_INT, "i32"); +} +__name(unmarshalTreeCursor, "unmarshalTreeCursor"); +function marshalPoint(address, point) { + C.setValue(address, point.row, "i32"); + C.setValue(address + SIZE_OF_INT, point.column, "i32"); +} +__name(marshalPoint, "marshalPoint"); +function unmarshalPoint(address) { + const result = { + row: C.getValue(address, "i32") >>> 0, + column: C.getValue(address + SIZE_OF_INT, "i32") >>> 0 + }; + return result; +} +__name(unmarshalPoint, "unmarshalPoint"); +function marshalRange(address, range) { + marshalPoint(address, range.startPosition); + address += SIZE_OF_POINT; + marshalPoint(address, range.endPosition); + address += SIZE_OF_POINT; + C.setValue(address, range.startIndex, "i32"); + address += SIZE_OF_INT; + C.setValue(address, range.endIndex, "i32"); + address += SIZE_OF_INT; +} +__name(marshalRange, "marshalRange"); +function unmarshalRange(address) { + const result = {}; + result.startPosition = unmarshalPoint(address); + address += SIZE_OF_POINT; + result.endPosition = unmarshalPoint(address); + address += SIZE_OF_POINT; + result.startIndex = C.getValue(address, "i32") >>> 0; + address += SIZE_OF_INT; + result.endIndex = C.getValue(address, "i32") >>> 0; + return result; +} +__name(unmarshalRange, "unmarshalRange"); +function marshalEdit(edit, address = TRANSFER_BUFFER) { + marshalPoint(address, edit.startPosition); + address += SIZE_OF_POINT; + marshalPoint(address, edit.oldEndPosition); + address += SIZE_OF_POINT; + marshalPoint(address, edit.newEndPosition); + address += SIZE_OF_POINT; + C.setValue(address, edit.startIndex, "i32"); + address += SIZE_OF_INT; + C.setValue(address, edit.oldEndIndex, "i32"); + address += SIZE_OF_INT; + C.setValue(address, edit.newEndIndex, "i32"); + address += SIZE_OF_INT; +} +__name(marshalEdit, "marshalEdit"); +export { + C, + CaptureQuantifier, + INTERNAL, + LANGUAGE_VERSION, + Language, + LookaheadIterator, + MIN_COMPATIBLE_VERSION, + Node, + Parser, + Query, + SIZE_OF_CURSOR, + SIZE_OF_INT, + SIZE_OF_NODE, + SIZE_OF_POINT, + SIZE_OF_RANGE, + SIZE_OF_SHORT, + TRANSFER_BUFFER, + Tree, + TreeCursor, + ZERO_POINT, + assertInternal, + getText, + isPoint, + marshalEdit, + marshalNode, + marshalPoint, + marshalRange, + marshalTreeCursor, + setModule, + unmarshalCaptures, + unmarshalNode, + unmarshalPoint, + unmarshalRange, + unmarshalTreeCursor +}; +//# sourceMappingURL=tree-sitter.js.map