From d6c8ae26259114546e527eb54d5650b387e2b8c1 Mon Sep 17 00:00:00 2001 From: Titop54 <32750608+Titop54@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:09:52 +0200 Subject: [PATCH] Github API changes and keywords --- .../.vscodeignore | 2 + .../CHANGELOG.md | 12 + .../package-lock.json | 3486 ++++++++++++++--- .../package.json | 34 +- .../src/activitybar/SFMLTreeDataProvider.ts | 23 +- .../src/generated/SFML.interp | 19 +- .../src/generated/SFML.tokens | 112 +- .../src/generated/SFMLLexer.interp | 26 +- .../src/generated/SFMLLexer.tokens | 112 +- .../src/generated/SFMLLexer.ts | 695 ++-- .../src/generated/SFMLListener.ts | 12 + .../src/generated/SFMLParser.ts | 1412 ++++--- .../src/generated/SFMLVisitor.ts | 8 + .../src/syntaxes/map.ts | 10 + .../src/syntaxes/syntax.ts | 14 +- .../src/tooltip/tooltip.ts | 249 +- .../syntaxes/SFML.g4 | 4 +- .../tsconfig.json | 26 +- ...super-factory-manager-language-0.0.17.vsix | Bin 0 -> 229199 bytes 19 files changed, 4630 insertions(+), 1626 deletions(-) create mode 100644 platform/visual-studio-code/super-factory-manager-language/vsce-versions/super-factory-manager-language-0.0.17.vsix diff --git a/platform/visual-studio-code/super-factory-manager-language/.vscodeignore b/platform/visual-studio-code/super-factory-manager-language/.vscodeignore index aaf4a603a..e2db4c9ab 100644 --- a/platform/visual-studio-code/super-factory-manager-language/.vscodeignore +++ b/platform/visual-studio-code/super-factory-manager-language/.vscodeignore @@ -10,3 +10,5 @@ tsconfig.json vsce-versions/** out/**/*.map node_modules/** +esbuild.mjs +package-lock.json \ No newline at end of file diff --git a/platform/visual-studio-code/super-factory-manager-language/CHANGELOG.md b/platform/visual-studio-code/super-factory-manager-language/CHANGELOG.md index d5182aa62..938e29aab 100644 --- a/platform/visual-studio-code/super-factory-manager-language/CHANGELOG.md +++ b/platform/visual-studio-code/super-factory-manager-language/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [0.0.17] + +### Changes on code + +- **Activity bar** + - GitHub changes to their API +- **Syntax** + - Added all new keywords to different places +- **Dependecies** + - Update most of them, since, well, TypeScript 7 goes faster and some old stuff + - Added a command to install them + ## [0.0.15] ### Changes on code diff --git a/platform/visual-studio-code/super-factory-manager-language/package-lock.json b/platform/visual-studio-code/super-factory-manager-language/package-lock.json index 193189c46..6e683143a 100644 --- a/platform/visual-studio-code/super-factory-manager-language/package-lock.json +++ b/platform/visual-studio-code/super-factory-manager-language/package-lock.json @@ -8,24 +8,234 @@ "name": "super-factory-manager-language", "version": "0.0.16", "devDependencies": { - "@types/node": "^25.2.2", + "@types/node": "^26.1.1", "@types/vscode": "^1.0.0", + "@vscode/vsce": "^3.9.2", "antlr4ts": "^0.5.0-alpha.4", "antlr4ts-cli": "^0.5.0-alpha.4", - "axios": "^1.13.5", - "esbuild": "^0.25.10", - "typescript": "^5.9.3", - "vsce": "^2.15.0" + "axios": "^1.18.1", + "esbuild": "^0.28.1", + "typescript": "^7.0.2" }, "engines": { "node": ">=20.0.0", "vscode": "^1.0.0" } }, + "node_modules/@azu/format-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", + "integrity": "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@azu/style-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz", + "integrity": "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "@azu/format-text": "^1.0.1" + } + }, + "node_modules/@azure/abort-controller": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.11.0.tgz", + "integrity": "sha512-IUZydyTUkDnYdstOW9pFOOUQlBjAepK5teihDE3x6yxsPJs/hsAaaYpeGxdxrgtOiJbBKSjKW7MDk7AEhb4LRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.11.0.tgz", + "integrity": "sha512-JjQWO6akOck45PH/XBrxzsQGAiKrfFl4m5iggJ0ItMIz5omRufOXWpqCPpdjKN3vKDzlSUvFjaMb7Zwf0gvAdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.25.0.tgz", + "integrity": "sha512-bMs8ekJLjX8wPV+9IPBges1SLPyuDtE9g5gLDWOpxzKcoOFQnpLGkbcT1tdw3FaAmDS1gnPmMmJ6y/T5B96kIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.4.0.tgz", + "integrity": "sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.14.0.tgz", + "integrity": "sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.1.tgz", + "integrity": "sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-rest-pipeline": "^1.17.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^5.5.0", + "@azure/msal-node": "^5.1.0", + "open": "^10.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.4.0.tgz", + "integrity": "sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.17.1.tgz", + "integrity": "sha512-zBhRGzABKSI7hfWh5EaZmril5ybZ7imBN1qEZl5sDTaelr+l8SnPjZO50Q4dnKnm347YPIlBMSnXKZyh3Yu5DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.11.2" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "16.11.2", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.11.2.tgz", + "integrity": "sha512-yDhtBOGDCdK9ipQ9g3+wmlMEPnZx2pXaDicDd9jYyR1L+7lEbvEohTDmF5qejZDutZY3m9pWPxeYxzNC701A2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.4.2.tgz", + "integrity": "sha512-fnqOpGYAV+i0RH4W5HB6Oy1IhqGZoCdnp7Y2Sa9k18FlT8aBkCA7L8Hv19hUHLDUK6kVjUO29AfnGX6wgAHyNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.11.2", + "jsonwebtoken": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -40,9 +250,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -57,9 +267,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -74,9 +284,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -91,9 +301,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -108,9 +318,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -125,9 +335,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -142,9 +352,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -159,9 +369,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -176,9 +386,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -193,9 +403,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -210,9 +420,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -227,9 +437,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -244,9 +454,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -261,9 +471,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -278,9 +488,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -295,9 +505,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -312,9 +522,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -329,9 +539,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -346,9 +556,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -363,9 +573,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -380,9 +590,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -397,9 +607,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -414,9 +624,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -431,9 +641,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -448,9 +658,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -464,221 +674,1257 @@ "node": ">=18" } }, - "node_modules/@types/node": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz", - "integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@types/vscode": { - "version": "1.100.0", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 8" + } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/antlr4ts": { - "version": "0.5.0-alpha.4", + "node_modules/@secretlint/config-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz", + "integrity": "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==", "dev": true, - "license": "BSD-3-Clause" + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } }, - "node_modules/antlr4ts-cli": { - "version": "0.5.0-alpha.4", + "node_modules/@secretlint/config-loader": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz", + "integrity": "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==", "dev": true, - "license": "BSD-3-Clause", - "bin": { - "antlr4ts": "antlr4ts" + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "ajv": "^8.17.1", + "debug": "^4.4.1", + "rc-config-loader": "^4.1.3" + }, + "engines": { + "node": ">=20.0.0" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@secretlint/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz", + "integrity": "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==", "dev": true, - "license": "Python-2.0" + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "structured-source": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "node_modules/@secretlint/formatter": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz", + "integrity": "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "@textlint/linter-formatter": "^15.2.0", + "@textlint/module-interop": "^15.2.0", + "@textlint/types": "^15.2.0", + "chalk": "^5.4.1", + "debug": "^4.4.1", + "pluralize": "^8.0.0", + "strip-ansi": "^7.1.0", + "table": "^6.9.0", + "terminal-link": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } }, - "node_modules/axios": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", - "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "node_modules/@secretlint/formatter/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.11", - "form-data": "^4.0.5", - "proxy-from-env": "^1.1.0" + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/azure-devops-node-api": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", - "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", + "node_modules/@secretlint/node": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz", + "integrity": "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==", "dev": true, "license": "MIT", "dependencies": { - "tunnel": "0.0.6", - "typed-rest-client": "^1.8.4" + "@secretlint/config-loader": "^10.2.2", + "@secretlint/core": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "@secretlint/source-creator": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "p-map": "^7.0.3" + }, + "engines": { + "node": ">=20.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/@secretlint/profiler": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz", + "integrity": "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==", "dev": true, "license": "MIT" }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "node_modules/@secretlint/resolver": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz", + "integrity": "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT" }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/@secretlint/secretlint-formatter-sarif": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz", + "integrity": "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==", "dev": true, "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "node-sarif-builder": "^3.2.0" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "node_modules/@secretlint/secretlint-rule-no-dotenv": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz", + "integrity": "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/@secretlint/secretlint-rule-preset-recommend": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz", + "integrity": "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "engines": { + "node": ">=20.0.0" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "node_modules/@secretlint/source-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz", + "integrity": "sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==", "dev": true, "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2", + "istextorbinary": "^9.5.0" + }, "engines": { - "node": "*" + "node": ">=20.0.0" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/@secretlint/types": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz", + "integrity": "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==", "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=20.0.0" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@textlint/ast-node-types": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.7.1.tgz", + "integrity": "sha512-Wii5UgUKFEh9Uv6wbq1zr4/Kf+dtjiUuzPrrXzKp8H+ifkvKNzi23V4Nz+6wVyHQn5T28AFuc8VH8OtzvGYecA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.7.1.tgz", + "integrity": "sha512-TdwZ/debWYFD05K3CcoHtwvnCrza29wZxD+BjDTk/V5N7iRqkK1dTTHSD4A8AIgROLiDkHJmIKQbasbmsg8AvA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { + "@azu/format-text": "^1.0.2", + "@azu/style-format": "^1.0.1", + "@textlint/module-interop": "15.7.1", + "@textlint/resolver": "15.7.1", + "@textlint/types": "15.7.1", + "chalk": "^4.1.2", + "debug": "^4.4.3", + "js-yaml": "^4.1.1", + "lodash": "^4.18.1", + "pluralize": "^2.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "table": "^6.9.0", + "text-table": "^0.2.0" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/pluralize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", + "integrity": "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/module-interop": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.7.1.tgz", + "integrity": "sha512-Jg+sQW2L/cRJypk59wtcMUVVpt8vmit5ZMT3gUnFwevP3A6Qp1HfOtUy9ObT4hBX3lOSGT/ekcCDxR1pL7uH1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/resolver": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.7.1.tgz", + "integrity": "sha512-8XnO0pgF6mXnm41VvWmBbEIdGPhiCUt31uLZkOis1ECeg/1SoUcIT6Mx/F0e1rukq8l0UlOSeY9a31CsvRMK0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/types": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.7.1.tgz", + "integrity": "sha512-Vye/GmFNBTgVzZFtIFJTmLB+s2A7oIADxNG6r9UhfPuY+Czv0z5G3xeyFZZudPlfxURsKUyPIU5XsjOFqVp33A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "15.7.1" + } + }, + "node_modules/@types/node": { + "version": "26.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", + "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sarif": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz", + "integrity": "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/vscode": { + "version": "1.100.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.7.tgz", + "integrity": "sha512-JVUD8X2tfDMWjcjLs4yVxxVrS8yR5vnh386GAXT9Qj79nBxxXSaHFQZg5FweLmT8HlPQ3kii6noUB+Z9RN7DvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@typespec/ts-http-runtime/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@typespec/ts-http-runtime/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@vscode/vsce": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.9.2.tgz", + "integrity": "sha512-XSxMosEEDO6vLxELAHVkwmhC0qe0ijZni2jB9Rcs8kQsW4lhTDQ/wMzmwFs/buotAWSnpmUp/dRWD2ufG3UYKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/identity": "^4.1.0", + "@secretlint/node": "^10.1.2", + "@secretlint/secretlint-formatter-sarif": "^10.1.2", + "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", + "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", + "@vscode/vsce-sign": "^2.0.0", + "azure-devops-node-api": "^12.5.0", + "chalk": "^4.1.2", + "cheerio": "^1.0.0-rc.9", + "cockatiel": "^3.1.2", + "commander": "^12.1.0", + "form-data": "^4.0.0", + "glob": "^13.0.6", + "hosted-git-info": "^4.0.2", + "jsonc-parser": "^3.2.0", + "leven": "^3.1.0", + "markdown-it": "^14.1.0", + "mime": "^1.3.4", + "minimatch": "^10.2.2", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "secretlint": "^10.1.2", + "semver": "^7.5.2", + "tmp": "^0.2.3", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.5.0", + "yauzl": "^3.2.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "keytar": "^7.7.0" + } + }, + "node_modules/@vscode/vsce-sign": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.9.tgz", + "integrity": "sha512-8IvaRvtFyzUnGGl3f5+1Cnor3LqaUWvhaUjAYO8Y39OUYlOf3cRd+dowuQYLpZcP3uwSG+mURwjEBOSq4SOJ0g==", + "dev": true, + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optionalDependencies": { + "@vscode/vsce-sign-alpine-arm64": "2.0.6", + "@vscode/vsce-sign-alpine-x64": "2.0.6", + "@vscode/vsce-sign-darwin-arm64": "2.0.6", + "@vscode/vsce-sign-darwin-x64": "2.0.6", + "@vscode/vsce-sign-linux-arm": "2.0.6", + "@vscode/vsce-sign-linux-arm64": "2.0.6", + "@vscode/vsce-sign-linux-x64": "2.0.6", + "@vscode/vsce-sign-win32-arm64": "2.0.6", + "@vscode/vsce-sign-win32-x64": "2.0.6" + } + }, + "node_modules/@vscode/vsce-sign-alpine-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz", + "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-alpine-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz", + "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz", + "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz", + "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz", + "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz", + "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz", + "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-win32-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz", + "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce-sign-win32-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz", + "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/antlr4ts-cli": { + "version": "0.5.0-alpha.4", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "antlr4ts": "antlr4ts" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", + "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/azure-devops-node-api": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz", + "integrity": "sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/binaryextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-6.11.0.tgz", + "integrity": "sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boundary": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", + "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/brace-expansion": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", + "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/cheerio": { @@ -730,22 +1976,36 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true, - "license": "ISC" + "license": "ISC", + "optional": true + }, + "node_modules/cockatiel": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz", + "integrity": "sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, @@ -763,22 +2023,15 @@ } }, "node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=18" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, "node_modules/css-select": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", @@ -809,12 +2062,31 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "mimic-response": "^3.1.0" }, @@ -831,10 +2103,54 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "license": "MIT", + "optional": true, "engines": { "node": ">=4.0.0" } }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -851,6 +2167,7 @@ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", + "optional": true, "engines": { "node": ">=8" } @@ -929,6 +2246,40 @@ "node": ">= 0.4" } }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/editions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-6.22.0.tgz", + "integrity": "sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "version-range": "^4.15.0" + }, + "engines": { + "ecmascript": ">= es5", + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/encoding-sniffer": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", @@ -949,6 +2300,7 @@ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "once": "^1.4.0" } @@ -966,6 +2318,19 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -1016,9 +2381,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1029,42 +2394,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/expand-template": { @@ -1073,24 +2428,79 @@ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "dev": true, "license": "(MIT OR WTFPL)", + "optional": true, "engines": { "node": ">=6" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { - "pend": "~1.2.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", + "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "dev": true, "funding": [ { @@ -1109,17 +2519,17 @@ } }, "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, "engines": { "node": ">= 6" @@ -1130,14 +2540,23 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "node_modules/fs-extra": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } }, "node_modules/function-bind": { "version": "1.1.2", @@ -1193,30 +2612,61 @@ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -1230,14 +2680,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-symbols": { @@ -1270,9 +2727,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "dev": true, "license": "MIT", "dependencies": { @@ -1328,6 +2785,44 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -1360,18 +2855,30 @@ "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "optional": true }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inherits": { @@ -1379,14 +2886,244 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, - "license": "ISC" + "license": "ISC", + "optional": true + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istextorbinary": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-9.5.0.tgz", + "integrity": "sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "binaryextensions": "^6.11.0", + "editions": "^6.21.0", + "textextensions": "^6.11.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, "node_modules/keytar": { "version": "7.9.0", @@ -1395,6 +3132,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" @@ -1411,15 +3149,88 @@ } }, "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", + "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], "license": "MIT", "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1434,30 +3245,31 @@ } }, "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz", + "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.5.0", + "linkify-it": "^5.0.2", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/math-intrinsics": { @@ -1471,12 +3283,36 @@ } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz", + "integrity": "sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==", "dev": true, "license": "MIT" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -1519,6 +3355,7 @@ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, "license": "MIT", + "optional": true, "engines": { "node": ">=10" }, @@ -1527,16 +3364,19 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -1545,15 +3385,34 @@ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", + "optional": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/mute-stream": { @@ -1568,14 +3427,16 @@ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/node-abi": { - "version": "3.87.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.87.0.tgz", - "integrity": "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==", + "version": "3.94.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", + "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "semver": "^7.3.5" }, @@ -1583,25 +3444,62 @@ "node": ">=10" } }, - "node_modules/node-abi/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-sarif-builder": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.4.0.tgz", + "integrity": "sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sarif": "^2.1.7", + "fs-extra": "^11.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "MIT" + "license": "ISC" }, "node_modules/nth-check": { "version": "2.1.1", @@ -1635,10 +3533,61 @@ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "license": "ISC", + "optional": true, "dependencies": { "wrappy": "1" } }, + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.6.tgz", + "integrity": "sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-semver": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", @@ -1649,6 +3598,16 @@ "semver": "^5.1.0" } }, + "node_modules/parse-semver/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/parse5": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", @@ -1702,14 +3661,44 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pend": { @@ -1719,12 +3708,44 @@ "dev": true, "license": "MIT" }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/prebuild-install": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -1747,29 +3768,46 @@ } }, "node_modules/proxy-from-env": { - "version": "1.1.0", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=10" + } }, "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/qs": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", - "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.1.0" + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" }, "engines": { "node": ">=0.6" @@ -1778,12 +3816,34 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -1794,6 +3854,19 @@ "rc": "cli.js" } }, + "node_modules/rc-config-loader": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.4.tgz", + "integrity": "sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "js-yaml": "^4.1.1", + "json5": "^2.2.3", + "require-from-string": "^2.0.2" + } + }, "node_modules/read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -1807,19 +3880,111 @@ "node": ">=0.8" } }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "queue-microtask": "^1.2.2" } }, "node_modules/safe-buffer": { @@ -1851,35 +4016,60 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", - "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", "dev": true, "license": "BlueOak-1.0.0", "engines": { "node": ">=11.0.0" } }, + "node_modules/secretlint": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz", + "integrity": "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-creator": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/node": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "debug": "^4.4.1", + "globby": "^14.1.0", + "read-pkg": "^9.0.1" + }, + "bin": { + "secretlint": "bin/secretlint.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" }, @@ -1891,14 +4081,14 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -1965,7 +4155,8 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/simple-get": { "version": "4.0.1", @@ -1987,51 +4178,243 @@ } ], "license": "MIT", + "optional": true, "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "safe-buffer": "~5.2.0" } }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/structured-source": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", + "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boundary": "^2.0.0" + } + }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/tar-fs": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", - "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.5.tgz", + "integrity": "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -2045,6 +4428,7 @@ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -2056,16 +4440,76 @@ "node": ">=6" } }, + "node_modules/terminal-link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz", + "integrity": "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^3.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/textextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-6.11.0.tgz", + "integrity": "sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", "dev": true, "license": "MIT", "engines": { "node": ">=14.14" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -2082,6 +4526,7 @@ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "license": "Apache-2.0", + "optional": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -2089,6 +4534,19 @@ "node": "*" } }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typed-rest-client": { "version": "1.8.11", "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", @@ -2102,37 +4560,58 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true, "license": "MIT" }, "node_modules/underscore": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", - "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", + "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", "dev": true, "license": "MIT" }, "node_modules/undici": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.22.0.tgz", - "integrity": "sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", + "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", "dev": true, "license": "MIT", "engines": { @@ -2140,12 +4619,35 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "dev": true, "license": "MIT" }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -2158,42 +4660,31 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, - "node_modules/vsce": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.15.0.tgz", - "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", - "deprecated": "vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead.", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "azure-devops-node-api": "^11.0.1", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.9", - "commander": "^6.1.0", - "glob": "^7.0.6", - "hosted-git-info": "^4.0.2", - "keytar": "^7.7.0", - "leven": "^3.1.0", - "markdown-it": "^12.3.2", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "^0.2.1", - "typed-rest-client": "^1.8.4", - "url-join": "^4.0.1", - "xml2js": "^0.4.23", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - }, - "bin": { - "vsce": "vsce" - }, + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/version-range": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.15.0.tgz", + "integrity": "sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==", + "dev": true, + "license": "Artistic-2.0", "engines": { - "node": ">= 14" + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" } }, "node_modules/whatwg-encoding": { @@ -2225,12 +4716,29 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, - "license": "ISC" + "license": "ISC", + "optional": true + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2259,14 +4767,16 @@ "license": "ISC" }, "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.4.0.tgz", + "integrity": "sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==", "dev": true, "license": "MIT", "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/yazl": { diff --git a/platform/visual-studio-code/super-factory-manager-language/package.json b/platform/visual-studio-code/super-factory-manager-language/package.json index 4aa043ba9..793018432 100644 --- a/platform/visual-studio-code/super-factory-manager-language/package.json +++ b/platform/visual-studio-code/super-factory-manager-language/package.json @@ -15,7 +15,7 @@ "name": "Titop54" } ], - "version": "0.0.16", + "version": "0.0.17", "icon": "media/controller.png", "main": "./out/extension.js", "engines": { @@ -104,7 +104,7 @@ "sfml.enableWarningChecking": { "type": "boolean", "default": true, - "description": "Enable warning for code. Still on very early" + "description": "Enable warning for code." }, "sfml.enableErrorChecking": { "type": "boolean", @@ -157,12 +157,12 @@ }, "sfml.externalURLs": { "type": "string", - "description": "Useful repositories for SFM files (Only GitHub or local). Each repo / folder must be in between '' and separated via a comma", + "description": "Useful repositories for SFM files (Only GitHub repos, Github Gist and local folder). Each repo / folder must be in between \"\" and separated via a comma", "default": "" }, "sfml.SnippetActivation": { "type": "string", - "description": "Prefix for activating snippets completion. For example: @energy or /energy.", + "description": "Prefix for activating snippets completion.\n This key needs to go before to activate snippets. For example: @energy or /energy.", "default": "" }, "sfml.enableSnippets": { @@ -199,10 +199,13 @@ "output", "where", "slots", + "slot", "retain", "each", "except", "forget", + "empty", + "in", "without", "with", "tag", @@ -218,11 +221,17 @@ "south", "west", "side", + "left", + "right", + "front", + "back", + "null", "ticks", "tick", "seconds", "second", "global", + "g", "plus", "redstone", "pulse", @@ -235,6 +244,7 @@ "=", "<=", ">=", + "+", ",", ":", "/", @@ -252,16 +262,17 @@ ] }, "devDependencies": { - "antlr4ts-cli": "^0.5.0-alpha.4", - "@types/node": "^25.2.2", + "@types/node": "^26.1.1", "@types/vscode": "^1.0.0", - "axios": "^1.13.5", + "@vscode/vsce": "^3.9.2", "antlr4ts": "^0.5.0-alpha.4", - "esbuild": "^0.25.10", - "typescript": "^5.9.3", - "vsce": "^2.15.0" + "antlr4ts-cli": "^0.5.0-alpha.4", + "axios": "^1.18.1", + "esbuild": "^0.28.1", + "typescript": "^7.0.2" }, "scripts": { + "setup": "npm install && npm run antlr && npm run compile", "vscode:prepublish": "npm run package-extension", "package-extension": "npm run check-types && node esbuild.mjs --production", "compile": "npm run check-types && node esbuild.mjs", @@ -270,6 +281,5 @@ "antlr": "antlr4ts -o src/generated -listener -visitor ./syntaxes/SFML.g4", "package": "vsce package -o vsce-versions", "publish": "vsce publish" - }, - "dependencies": {} + } } diff --git a/platform/visual-studio-code/super-factory-manager-language/src/activitybar/SFMLTreeDataProvider.ts b/platform/visual-studio-code/super-factory-manager-language/src/activitybar/SFMLTreeDataProvider.ts index 592bef3a3..21f85e1bd 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/activitybar/SFMLTreeDataProvider.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/activitybar/SFMLTreeDataProvider.ts @@ -179,7 +179,12 @@ export class SFMLTreeDataProvider implements vscode.TreeDataProvider { @@ -216,7 +221,12 @@ export class SFMLTreeDataProvider implements vscode.TreeDataProvider { try { - const response = await axios.get(url); + const response = await axios.get(url, { + headers: { + 'User-Agent': 'VSCode-SuperFactoryManager-Language-Extension', + 'Accept': 'application/vnd.github.v3+json' + } + }); const files = response.data.files; const items: any[] = []; @@ -467,7 +477,14 @@ export function getOpenCommand(tempFiles: Map): vscode.Disposabl else //Get the file from github and its content { try { - const response = await axios.get(file.url, { responseType: 'arraybuffer' }); + const response = await axios.get(file.url, { + responseType: 'arraybuffer', + headers: { + 'User-Agent': 'VSCode-SuperFactoryManager-Language-Extension', + 'Accept': 'application/vnd.github.v3+json' + } + }); + fs.writeFileSync(tempFilePath, response.data); tempFiles.set(tempFilePath, tempFilePath); diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.interp b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.interp index 81565ba06..b458b322a 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.interp +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.interp @@ -36,6 +36,9 @@ null null null null +null +null +null '#' null null @@ -61,6 +64,11 @@ null null null null +null +null +null +null +null ',' ':' '/' @@ -106,10 +114,13 @@ INPUT OUTPUT WHERE SLOTS +SLOT RETAIN EACH EXCEPT FORGET +EMPTY +IN WITHOUT WITH TAG @@ -126,6 +137,11 @@ EAST SOUTH WEST SIDE +LEFT +RIGHT +FRONT +BACK +NULL TICKS TICK SECONDS @@ -188,10 +204,11 @@ setOp labelAccess roundrobin label +emptyslots identifier string number atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 76, 485, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 3, 2, 5, 2, 80, 10, 2, 3, 2, 7, 2, 83, 10, 2, 12, 2, 14, 2, 86, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 106, 10, 4, 3, 5, 5, 5, 109, 10, 5, 3, 5, 5, 5, 112, 10, 5, 3, 5, 3, 5, 5, 5, 116, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 122, 10, 5, 3, 5, 5, 5, 125, 10, 5, 3, 6, 7, 6, 128, 10, 6, 12, 6, 14, 6, 131, 11, 6, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 137, 10, 7, 3, 8, 3, 8, 5, 8, 141, 10, 8, 3, 8, 3, 8, 7, 8, 145, 10, 8, 12, 8, 14, 8, 148, 11, 8, 3, 8, 5, 8, 151, 10, 8, 3, 9, 3, 9, 5, 9, 155, 10, 9, 3, 9, 5, 9, 158, 10, 9, 3, 9, 3, 9, 5, 9, 162, 10, 9, 3, 9, 3, 9, 3, 9, 5, 9, 167, 10, 9, 3, 9, 3, 9, 3, 9, 5, 9, 172, 10, 9, 3, 9, 5, 9, 175, 10, 9, 5, 9, 177, 10, 9, 3, 10, 3, 10, 5, 10, 181, 10, 10, 3, 10, 5, 10, 184, 10, 10, 3, 10, 3, 10, 5, 10, 188, 10, 10, 3, 10, 3, 10, 3, 10, 5, 10, 193, 10, 10, 3, 10, 3, 10, 3, 10, 5, 10, 198, 10, 10, 3, 10, 5, 10, 201, 10, 10, 5, 10, 203, 10, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 7, 13, 212, 10, 13, 12, 13, 14, 13, 215, 11, 13, 3, 13, 5, 13, 218, 10, 13, 3, 14, 5, 14, 221, 10, 14, 3, 14, 3, 14, 5, 14, 225, 10, 14, 3, 14, 3, 14, 5, 14, 229, 10, 14, 3, 14, 5, 14, 232, 10, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 239, 10, 15, 3, 16, 3, 16, 5, 16, 243, 10, 16, 3, 17, 3, 17, 3, 17, 5, 17, 248, 10, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 5, 19, 256, 10, 19, 3, 19, 3, 19, 5, 19, 260, 10, 19, 3, 19, 3, 19, 5, 19, 264, 10, 19, 5, 19, 266, 10, 19, 5, 19, 268, 10, 19, 5, 19, 270, 10, 19, 3, 19, 5, 19, 273, 10, 19, 3, 20, 3, 20, 3, 20, 7, 20, 278, 10, 20, 12, 20, 14, 20, 281, 11, 20, 3, 20, 5, 20, 284, 10, 20, 3, 21, 3, 21, 3, 21, 7, 21, 289, 10, 21, 12, 21, 14, 21, 292, 11, 21, 3, 21, 5, 21, 295, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 301, 10, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 312, 10, 23, 3, 23, 5, 23, 315, 10, 23, 3, 23, 5, 23, 318, 10, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 7, 23, 326, 10, 23, 12, 23, 14, 23, 329, 11, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 336, 10, 24, 12, 24, 14, 24, 339, 11, 24, 3, 24, 3, 24, 3, 24, 7, 24, 344, 10, 24, 12, 24, 14, 24, 347, 11, 24, 5, 24, 349, 10, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 356, 10, 25, 12, 25, 14, 25, 359, 11, 25, 3, 25, 3, 25, 5, 25, 363, 10, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 7, 28, 373, 10, 28, 12, 28, 14, 28, 376, 11, 28, 3, 29, 3, 29, 3, 29, 5, 29, 381, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 393, 10, 30, 12, 30, 14, 30, 396, 11, 30, 3, 30, 3, 30, 5, 30, 400, 10, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 414, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 421, 10, 31, 3, 31, 5, 31, 424, 10, 31, 3, 31, 3, 31, 5, 31, 428, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 434, 10, 31, 5, 31, 436, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 444, 10, 31, 12, 31, 14, 31, 447, 11, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 7, 34, 456, 10, 34, 12, 34, 14, 34, 459, 11, 34, 3, 34, 5, 34, 462, 10, 34, 3, 34, 5, 34, 465, 10, 34, 3, 34, 5, 34, 468, 10, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 5, 36, 477, 10, 36, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 2, 2, 4, 44, 60, 40, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 2, 8, 3, 2, 52, 55, 3, 2, 45, 50, 3, 2, 16, 25, 5, 2, 7, 10, 33, 33, 63, 63, 3, 2, 43, 44, 5, 2, 54, 56, 58, 58, 72, 72, 2, 530, 2, 79, 3, 2, 2, 2, 4, 89, 3, 2, 2, 2, 6, 105, 3, 2, 2, 2, 8, 124, 3, 2, 2, 2, 10, 129, 3, 2, 2, 2, 12, 136, 3, 2, 2, 2, 14, 138, 3, 2, 2, 2, 16, 176, 3, 2, 2, 2, 18, 202, 3, 2, 2, 2, 20, 204, 3, 2, 2, 2, 22, 206, 3, 2, 2, 2, 24, 208, 3, 2, 2, 2, 26, 231, 3, 2, 2, 2, 28, 238, 3, 2, 2, 2, 30, 240, 3, 2, 2, 2, 32, 244, 3, 2, 2, 2, 34, 249, 3, 2, 2, 2, 36, 272, 3, 2, 2, 2, 38, 274, 3, 2, 2, 2, 40, 285, 3, 2, 2, 2, 42, 300, 3, 2, 2, 2, 44, 317, 3, 2, 2, 2, 46, 348, 3, 2, 2, 2, 48, 362, 3, 2, 2, 2, 50, 364, 3, 2, 2, 2, 52, 366, 3, 2, 2, 2, 54, 369, 3, 2, 2, 2, 56, 377, 3, 2, 2, 2, 58, 382, 3, 2, 2, 2, 60, 435, 3, 2, 2, 2, 62, 448, 3, 2, 2, 2, 64, 450, 3, 2, 2, 2, 66, 452, 3, 2, 2, 2, 68, 469, 3, 2, 2, 2, 70, 476, 3, 2, 2, 2, 72, 478, 3, 2, 2, 2, 74, 480, 3, 2, 2, 2, 76, 482, 3, 2, 2, 2, 78, 80, 5, 4, 3, 2, 79, 78, 3, 2, 2, 2, 79, 80, 3, 2, 2, 2, 80, 84, 3, 2, 2, 2, 81, 83, 5, 6, 4, 2, 82, 81, 3, 2, 2, 2, 83, 86, 3, 2, 2, 2, 84, 82, 3, 2, 2, 2, 84, 85, 3, 2, 2, 2, 85, 87, 3, 2, 2, 2, 86, 84, 3, 2, 2, 2, 87, 88, 7, 2, 2, 3, 88, 3, 3, 2, 2, 2, 89, 90, 7, 62, 2, 2, 90, 91, 5, 74, 38, 2, 91, 5, 3, 2, 2, 2, 92, 93, 7, 63, 2, 2, 93, 94, 5, 8, 5, 2, 94, 95, 7, 60, 2, 2, 95, 96, 5, 10, 6, 2, 96, 97, 7, 61, 2, 2, 97, 106, 3, 2, 2, 2, 98, 99, 7, 63, 2, 2, 99, 100, 7, 58, 2, 2, 100, 101, 7, 59, 2, 2, 101, 102, 7, 60, 2, 2, 102, 103, 5, 10, 6, 2, 103, 104, 7, 61, 2, 2, 104, 106, 3, 2, 2, 2, 105, 92, 3, 2, 2, 2, 105, 98, 3, 2, 2, 2, 106, 7, 3, 2, 2, 2, 107, 109, 7, 71, 2, 2, 108, 107, 3, 2, 2, 2, 108, 109, 3, 2, 2, 2, 109, 111, 3, 2, 2, 2, 110, 112, 7, 56, 2, 2, 111, 110, 3, 2, 2, 2, 111, 112, 3, 2, 2, 2, 112, 115, 3, 2, 2, 2, 113, 114, 7, 57, 2, 2, 114, 116, 7, 71, 2, 2, 115, 113, 3, 2, 2, 2, 115, 116, 3, 2, 2, 2, 116, 117, 3, 2, 2, 2, 117, 125, 9, 2, 2, 2, 118, 121, 7, 70, 2, 2, 119, 120, 7, 57, 2, 2, 120, 122, 7, 71, 2, 2, 121, 119, 3, 2, 2, 2, 121, 122, 3, 2, 2, 2, 122, 123, 3, 2, 2, 2, 123, 125, 9, 2, 2, 2, 124, 108, 3, 2, 2, 2, 124, 118, 3, 2, 2, 2, 125, 9, 3, 2, 2, 2, 126, 128, 5, 12, 7, 2, 127, 126, 3, 2, 2, 2, 128, 131, 3, 2, 2, 2, 129, 127, 3, 2, 2, 2, 129, 130, 3, 2, 2, 2, 130, 11, 3, 2, 2, 2, 131, 129, 3, 2, 2, 2, 132, 137, 5, 16, 9, 2, 133, 137, 5, 18, 10, 2, 134, 137, 5, 58, 30, 2, 135, 137, 5, 14, 8, 2, 136, 132, 3, 2, 2, 2, 136, 133, 3, 2, 2, 2, 136, 134, 3, 2, 2, 2, 136, 135, 3, 2, 2, 2, 137, 13, 3, 2, 2, 2, 138, 140, 7, 35, 2, 2, 139, 141, 5, 70, 36, 2, 140, 139, 3, 2, 2, 2, 140, 141, 3, 2, 2, 2, 141, 146, 3, 2, 2, 2, 142, 143, 7, 64, 2, 2, 143, 145, 5, 70, 36, 2, 144, 142, 3, 2, 2, 2, 145, 148, 3, 2, 2, 2, 146, 144, 3, 2, 2, 2, 146, 147, 3, 2, 2, 2, 147, 150, 3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 149, 151, 7, 64, 2, 2, 150, 149, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 15, 3, 2, 2, 2, 152, 154, 7, 28, 2, 2, 153, 155, 5, 20, 11, 2, 154, 153, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 157, 3, 2, 2, 2, 156, 158, 5, 34, 18, 2, 157, 156, 3, 2, 2, 2, 157, 158, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 161, 7, 26, 2, 2, 160, 162, 7, 33, 2, 2, 161, 160, 3, 2, 2, 2, 161, 162, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 177, 5, 66, 34, 2, 164, 166, 7, 26, 2, 2, 165, 167, 7, 33, 2, 2, 166, 165, 3, 2, 2, 2, 166, 167, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 169, 5, 66, 34, 2, 169, 171, 7, 28, 2, 2, 170, 172, 5, 20, 11, 2, 171, 170, 3, 2, 2, 2, 171, 172, 3, 2, 2, 2, 172, 174, 3, 2, 2, 2, 173, 175, 5, 34, 18, 2, 174, 173, 3, 2, 2, 2, 174, 175, 3, 2, 2, 2, 175, 177, 3, 2, 2, 2, 176, 152, 3, 2, 2, 2, 176, 164, 3, 2, 2, 2, 177, 17, 3, 2, 2, 2, 178, 180, 7, 29, 2, 2, 179, 181, 5, 22, 12, 2, 180, 179, 3, 2, 2, 2, 180, 181, 3, 2, 2, 2, 181, 183, 3, 2, 2, 2, 182, 184, 5, 34, 18, 2, 183, 182, 3, 2, 2, 2, 183, 184, 3, 2, 2, 2, 184, 185, 3, 2, 2, 2, 185, 187, 7, 27, 2, 2, 186, 188, 7, 33, 2, 2, 187, 186, 3, 2, 2, 2, 187, 188, 3, 2, 2, 2, 188, 189, 3, 2, 2, 2, 189, 203, 5, 66, 34, 2, 190, 192, 7, 27, 2, 2, 191, 193, 7, 33, 2, 2, 192, 191, 3, 2, 2, 2, 192, 193, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 195, 5, 66, 34, 2, 195, 197, 7, 29, 2, 2, 196, 198, 5, 22, 12, 2, 197, 196, 3, 2, 2, 2, 197, 198, 3, 2, 2, 2, 198, 200, 3, 2, 2, 2, 199, 201, 5, 34, 18, 2, 200, 199, 3, 2, 2, 2, 200, 201, 3, 2, 2, 2, 201, 203, 3, 2, 2, 2, 202, 178, 3, 2, 2, 2, 202, 190, 3, 2, 2, 2, 203, 19, 3, 2, 2, 2, 204, 205, 5, 24, 13, 2, 205, 21, 3, 2, 2, 2, 206, 207, 5, 24, 13, 2, 207, 23, 3, 2, 2, 2, 208, 213, 5, 26, 14, 2, 209, 210, 7, 64, 2, 2, 210, 212, 5, 26, 14, 2, 211, 209, 3, 2, 2, 2, 212, 215, 3, 2, 2, 2, 213, 211, 3, 2, 2, 2, 213, 214, 3, 2, 2, 2, 214, 217, 3, 2, 2, 2, 215, 213, 3, 2, 2, 2, 216, 218, 7, 64, 2, 2, 217, 216, 3, 2, 2, 2, 217, 218, 3, 2, 2, 2, 218, 25, 3, 2, 2, 2, 219, 221, 5, 28, 15, 2, 220, 219, 3, 2, 2, 2, 220, 221, 3, 2, 2, 2, 221, 222, 3, 2, 2, 2, 222, 224, 5, 40, 21, 2, 223, 225, 5, 42, 22, 2, 224, 223, 3, 2, 2, 2, 224, 225, 3, 2, 2, 2, 225, 232, 3, 2, 2, 2, 226, 228, 5, 28, 15, 2, 227, 229, 5, 42, 22, 2, 228, 227, 3, 2, 2, 2, 228, 229, 3, 2, 2, 2, 229, 232, 3, 2, 2, 2, 230, 232, 5, 42, 22, 2, 231, 220, 3, 2, 2, 2, 231, 226, 3, 2, 2, 2, 231, 230, 3, 2, 2, 2, 232, 27, 3, 2, 2, 2, 233, 234, 5, 30, 16, 2, 234, 235, 5, 32, 17, 2, 235, 239, 3, 2, 2, 2, 236, 239, 5, 32, 17, 2, 237, 239, 5, 30, 16, 2, 238, 233, 3, 2, 2, 2, 238, 236, 3, 2, 2, 2, 238, 237, 3, 2, 2, 2, 239, 29, 3, 2, 2, 2, 240, 242, 5, 76, 39, 2, 241, 243, 7, 33, 2, 2, 242, 241, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 31, 3, 2, 2, 2, 244, 245, 7, 32, 2, 2, 245, 247, 5, 76, 39, 2, 246, 248, 7, 33, 2, 2, 247, 246, 3, 2, 2, 2, 247, 248, 3, 2, 2, 2, 248, 33, 3, 2, 2, 2, 249, 250, 7, 34, 2, 2, 250, 251, 5, 38, 20, 2, 251, 35, 3, 2, 2, 2, 252, 269, 5, 72, 37, 2, 253, 255, 7, 65, 2, 2, 254, 256, 5, 72, 37, 2, 255, 254, 3, 2, 2, 2, 255, 256, 3, 2, 2, 2, 256, 267, 3, 2, 2, 2, 257, 259, 7, 65, 2, 2, 258, 260, 5, 72, 37, 2, 259, 258, 3, 2, 2, 2, 259, 260, 3, 2, 2, 2, 260, 265, 3, 2, 2, 2, 261, 263, 7, 65, 2, 2, 262, 264, 5, 72, 37, 2, 263, 262, 3, 2, 2, 2, 263, 264, 3, 2, 2, 2, 264, 266, 3, 2, 2, 2, 265, 261, 3, 2, 2, 2, 265, 266, 3, 2, 2, 2, 266, 268, 3, 2, 2, 2, 267, 257, 3, 2, 2, 2, 267, 268, 3, 2, 2, 2, 268, 270, 3, 2, 2, 2, 269, 253, 3, 2, 2, 2, 269, 270, 3, 2, 2, 2, 270, 273, 3, 2, 2, 2, 271, 273, 5, 74, 38, 2, 272, 252, 3, 2, 2, 2, 272, 271, 3, 2, 2, 2, 273, 37, 3, 2, 2, 2, 274, 279, 5, 36, 19, 2, 275, 276, 7, 64, 2, 2, 276, 278, 5, 36, 19, 2, 277, 275, 3, 2, 2, 2, 278, 281, 3, 2, 2, 2, 279, 277, 3, 2, 2, 2, 279, 280, 3, 2, 2, 2, 280, 283, 3, 2, 2, 2, 281, 279, 3, 2, 2, 2, 282, 284, 7, 64, 2, 2, 283, 282, 3, 2, 2, 2, 283, 284, 3, 2, 2, 2, 284, 39, 3, 2, 2, 2, 285, 290, 5, 36, 19, 2, 286, 287, 7, 15, 2, 2, 287, 289, 5, 36, 19, 2, 288, 286, 3, 2, 2, 2, 289, 292, 3, 2, 2, 2, 290, 288, 3, 2, 2, 2, 290, 291, 3, 2, 2, 2, 291, 294, 3, 2, 2, 2, 292, 290, 3, 2, 2, 2, 293, 295, 7, 15, 2, 2, 294, 293, 3, 2, 2, 2, 294, 295, 3, 2, 2, 2, 295, 41, 3, 2, 2, 2, 296, 297, 7, 37, 2, 2, 297, 301, 5, 44, 23, 2, 298, 299, 7, 36, 2, 2, 299, 301, 5, 44, 23, 2, 300, 296, 3, 2, 2, 2, 300, 298, 3, 2, 2, 2, 301, 43, 3, 2, 2, 2, 302, 303, 8, 23, 1, 2, 303, 304, 7, 68, 2, 2, 304, 305, 5, 44, 23, 2, 305, 306, 7, 69, 2, 2, 306, 318, 3, 2, 2, 2, 307, 308, 7, 13, 2, 2, 308, 318, 5, 44, 23, 6, 309, 311, 7, 38, 2, 2, 310, 312, 7, 39, 2, 2, 311, 310, 3, 2, 2, 2, 311, 312, 3, 2, 2, 2, 312, 315, 3, 2, 2, 2, 313, 315, 7, 39, 2, 2, 314, 309, 3, 2, 2, 2, 314, 313, 3, 2, 2, 2, 315, 316, 3, 2, 2, 2, 316, 318, 5, 46, 24, 2, 317, 302, 3, 2, 2, 2, 317, 307, 3, 2, 2, 2, 317, 314, 3, 2, 2, 2, 318, 327, 3, 2, 2, 2, 319, 320, 12, 5, 2, 2, 320, 321, 7, 14, 2, 2, 321, 326, 5, 44, 23, 6, 322, 323, 12, 4, 2, 2, 323, 324, 7, 15, 2, 2, 324, 326, 5, 44, 23, 5, 325, 319, 3, 2, 2, 2, 325, 322, 3, 2, 2, 2, 326, 329, 3, 2, 2, 2, 327, 325, 3, 2, 2, 2, 327, 328, 3, 2, 2, 2, 328, 45, 3, 2, 2, 2, 329, 327, 3, 2, 2, 2, 330, 331, 5, 72, 37, 2, 331, 332, 7, 65, 2, 2, 332, 337, 5, 72, 37, 2, 333, 334, 7, 66, 2, 2, 334, 336, 5, 72, 37, 2, 335, 333, 3, 2, 2, 2, 336, 339, 3, 2, 2, 2, 337, 335, 3, 2, 2, 2, 337, 338, 3, 2, 2, 2, 338, 349, 3, 2, 2, 2, 339, 337, 3, 2, 2, 2, 340, 345, 5, 72, 37, 2, 341, 342, 7, 66, 2, 2, 342, 344, 5, 72, 37, 2, 343, 341, 3, 2, 2, 2, 344, 347, 3, 2, 2, 2, 345, 343, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 349, 3, 2, 2, 2, 347, 345, 3, 2, 2, 2, 348, 330, 3, 2, 2, 2, 348, 340, 3, 2, 2, 2, 349, 47, 3, 2, 2, 2, 350, 351, 7, 33, 2, 2, 351, 363, 7, 51, 2, 2, 352, 357, 5, 50, 26, 2, 353, 354, 7, 64, 2, 2, 354, 356, 5, 50, 26, 2, 355, 353, 3, 2, 2, 2, 356, 359, 3, 2, 2, 2, 357, 355, 3, 2, 2, 2, 357, 358, 3, 2, 2, 2, 358, 360, 3, 2, 2, 2, 359, 357, 3, 2, 2, 2, 360, 361, 7, 51, 2, 2, 361, 363, 3, 2, 2, 2, 362, 350, 3, 2, 2, 2, 362, 352, 3, 2, 2, 2, 363, 49, 3, 2, 2, 2, 364, 365, 9, 3, 2, 2, 365, 51, 3, 2, 2, 2, 366, 367, 7, 31, 2, 2, 367, 368, 5, 54, 28, 2, 368, 53, 3, 2, 2, 2, 369, 374, 5, 56, 29, 2, 370, 371, 7, 64, 2, 2, 371, 373, 5, 56, 29, 2, 372, 370, 3, 2, 2, 2, 373, 376, 3, 2, 2, 2, 374, 372, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 55, 3, 2, 2, 2, 376, 374, 3, 2, 2, 2, 377, 380, 5, 76, 39, 2, 378, 379, 7, 67, 2, 2, 379, 381, 5, 76, 39, 2, 380, 378, 3, 2, 2, 2, 380, 381, 3, 2, 2, 2, 381, 57, 3, 2, 2, 2, 382, 383, 7, 3, 2, 2, 383, 384, 5, 60, 31, 2, 384, 385, 7, 4, 2, 2, 385, 394, 5, 10, 6, 2, 386, 387, 7, 5, 2, 2, 387, 388, 7, 3, 2, 2, 388, 389, 5, 60, 31, 2, 389, 390, 7, 4, 2, 2, 390, 391, 5, 10, 6, 2, 391, 393, 3, 2, 2, 2, 392, 386, 3, 2, 2, 2, 393, 396, 3, 2, 2, 2, 394, 392, 3, 2, 2, 2, 394, 395, 3, 2, 2, 2, 395, 399, 3, 2, 2, 2, 396, 394, 3, 2, 2, 2, 397, 398, 7, 5, 2, 2, 398, 400, 5, 10, 6, 2, 399, 397, 3, 2, 2, 2, 399, 400, 3, 2, 2, 2, 400, 401, 3, 2, 2, 2, 401, 402, 7, 61, 2, 2, 402, 59, 3, 2, 2, 2, 403, 404, 8, 31, 1, 2, 404, 436, 7, 11, 2, 2, 405, 436, 7, 12, 2, 2, 406, 407, 7, 68, 2, 2, 407, 408, 5, 60, 31, 2, 408, 409, 7, 69, 2, 2, 409, 436, 3, 2, 2, 2, 410, 411, 7, 13, 2, 2, 411, 436, 5, 60, 31, 7, 412, 414, 5, 64, 33, 2, 413, 412, 3, 2, 2, 2, 413, 414, 3, 2, 2, 2, 414, 415, 3, 2, 2, 2, 415, 416, 5, 66, 34, 2, 416, 417, 7, 6, 2, 2, 417, 418, 5, 62, 32, 2, 418, 420, 5, 76, 39, 2, 419, 421, 5, 40, 21, 2, 420, 419, 3, 2, 2, 2, 420, 421, 3, 2, 2, 2, 421, 423, 3, 2, 2, 2, 422, 424, 5, 42, 22, 2, 423, 422, 3, 2, 2, 2, 423, 424, 3, 2, 2, 2, 424, 427, 3, 2, 2, 2, 425, 426, 7, 34, 2, 2, 426, 428, 5, 38, 20, 2, 427, 425, 3, 2, 2, 2, 427, 428, 3, 2, 2, 2, 428, 436, 3, 2, 2, 2, 429, 433, 7, 58, 2, 2, 430, 431, 5, 62, 32, 2, 431, 432, 5, 76, 39, 2, 432, 434, 3, 2, 2, 2, 433, 430, 3, 2, 2, 2, 433, 434, 3, 2, 2, 2, 434, 436, 3, 2, 2, 2, 435, 403, 3, 2, 2, 2, 435, 405, 3, 2, 2, 2, 435, 406, 3, 2, 2, 2, 435, 410, 3, 2, 2, 2, 435, 413, 3, 2, 2, 2, 435, 429, 3, 2, 2, 2, 436, 445, 3, 2, 2, 2, 437, 438, 12, 6, 2, 2, 438, 439, 7, 14, 2, 2, 439, 444, 5, 60, 31, 7, 440, 441, 12, 5, 2, 2, 441, 442, 7, 15, 2, 2, 442, 444, 5, 60, 31, 6, 443, 437, 3, 2, 2, 2, 443, 440, 3, 2, 2, 2, 444, 447, 3, 2, 2, 2, 445, 443, 3, 2, 2, 2, 445, 446, 3, 2, 2, 2, 446, 61, 3, 2, 2, 2, 447, 445, 3, 2, 2, 2, 448, 449, 9, 4, 2, 2, 449, 63, 3, 2, 2, 2, 450, 451, 9, 5, 2, 2, 451, 65, 3, 2, 2, 2, 452, 457, 5, 70, 36, 2, 453, 454, 7, 64, 2, 2, 454, 456, 5, 70, 36, 2, 455, 453, 3, 2, 2, 2, 456, 459, 3, 2, 2, 2, 457, 455, 3, 2, 2, 2, 457, 458, 3, 2, 2, 2, 458, 461, 3, 2, 2, 2, 459, 457, 3, 2, 2, 2, 460, 462, 5, 68, 35, 2, 461, 460, 3, 2, 2, 2, 461, 462, 3, 2, 2, 2, 462, 464, 3, 2, 2, 2, 463, 465, 5, 48, 25, 2, 464, 463, 3, 2, 2, 2, 464, 465, 3, 2, 2, 2, 465, 467, 3, 2, 2, 2, 466, 468, 5, 52, 27, 2, 467, 466, 3, 2, 2, 2, 467, 468, 3, 2, 2, 2, 468, 67, 3, 2, 2, 2, 469, 470, 7, 40, 2, 2, 470, 471, 7, 41, 2, 2, 471, 472, 7, 42, 2, 2, 472, 473, 9, 6, 2, 2, 473, 69, 3, 2, 2, 2, 474, 477, 5, 72, 37, 2, 475, 477, 5, 74, 38, 2, 476, 474, 3, 2, 2, 2, 476, 475, 3, 2, 2, 2, 477, 71, 3, 2, 2, 2, 478, 479, 9, 7, 2, 2, 479, 73, 3, 2, 2, 2, 480, 481, 7, 73, 2, 2, 481, 75, 3, 2, 2, 2, 482, 483, 7, 71, 2, 2, 483, 77, 3, 2, 2, 2, 77, 79, 84, 105, 108, 111, 115, 121, 124, 129, 136, 140, 146, 150, 154, 157, 161, 166, 171, 174, 176, 180, 183, 187, 192, 197, 200, 202, 213, 217, 220, 224, 228, 231, 238, 242, 247, 255, 259, 263, 265, 267, 269, 272, 279, 283, 290, 294, 300, 311, 314, 317, 325, 327, 337, 345, 348, 357, 362, 374, 380, 394, 399, 413, 420, 423, 427, 433, 435, 443, 445, 457, 461, 464, 467, 476] \ No newline at end of file +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 84, 497, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 3, 2, 5, 2, 82, 10, 2, 3, 2, 7, 2, 85, 10, 2, 12, 2, 14, 2, 88, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 108, 10, 4, 3, 5, 5, 5, 111, 10, 5, 3, 5, 5, 5, 114, 10, 5, 3, 5, 3, 5, 5, 5, 118, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 124, 10, 5, 3, 5, 5, 5, 127, 10, 5, 3, 6, 7, 6, 130, 10, 6, 12, 6, 14, 6, 133, 11, 6, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 139, 10, 7, 3, 8, 3, 8, 5, 8, 143, 10, 8, 3, 8, 3, 8, 7, 8, 147, 10, 8, 12, 8, 14, 8, 150, 11, 8, 3, 8, 5, 8, 153, 10, 8, 3, 9, 3, 9, 5, 9, 157, 10, 9, 3, 9, 5, 9, 160, 10, 9, 3, 9, 3, 9, 5, 9, 164, 10, 9, 3, 9, 3, 9, 3, 9, 5, 9, 169, 10, 9, 3, 9, 3, 9, 3, 9, 5, 9, 174, 10, 9, 3, 9, 5, 9, 177, 10, 9, 5, 9, 179, 10, 9, 3, 10, 3, 10, 5, 10, 183, 10, 10, 3, 10, 5, 10, 186, 10, 10, 3, 10, 3, 10, 5, 10, 190, 10, 10, 3, 10, 5, 10, 193, 10, 10, 3, 10, 3, 10, 3, 10, 5, 10, 198, 10, 10, 3, 10, 5, 10, 201, 10, 10, 3, 10, 3, 10, 3, 10, 5, 10, 206, 10, 10, 3, 10, 5, 10, 209, 10, 10, 5, 10, 211, 10, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 7, 13, 220, 10, 13, 12, 13, 14, 13, 223, 11, 13, 3, 13, 5, 13, 226, 10, 13, 3, 14, 5, 14, 229, 10, 14, 3, 14, 3, 14, 5, 14, 233, 10, 14, 3, 14, 3, 14, 5, 14, 237, 10, 14, 3, 14, 5, 14, 240, 10, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 247, 10, 15, 3, 16, 3, 16, 5, 16, 251, 10, 16, 3, 17, 3, 17, 3, 17, 5, 17, 256, 10, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 5, 19, 264, 10, 19, 3, 19, 3, 19, 5, 19, 268, 10, 19, 3, 19, 3, 19, 5, 19, 272, 10, 19, 5, 19, 274, 10, 19, 5, 19, 276, 10, 19, 5, 19, 278, 10, 19, 3, 19, 5, 19, 281, 10, 19, 3, 20, 3, 20, 3, 20, 7, 20, 286, 10, 20, 12, 20, 14, 20, 289, 11, 20, 3, 20, 5, 20, 292, 10, 20, 3, 21, 3, 21, 3, 21, 7, 21, 297, 10, 21, 12, 21, 14, 21, 300, 11, 21, 3, 21, 5, 21, 303, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 309, 10, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 320, 10, 23, 3, 23, 5, 23, 323, 10, 23, 3, 23, 5, 23, 326, 10, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 7, 23, 334, 10, 23, 12, 23, 14, 23, 337, 11, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 344, 10, 24, 12, 24, 14, 24, 347, 11, 24, 3, 24, 3, 24, 3, 24, 7, 24, 352, 10, 24, 12, 24, 14, 24, 355, 11, 24, 5, 24, 357, 10, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 364, 10, 25, 12, 25, 14, 25, 367, 11, 25, 3, 25, 3, 25, 5, 25, 371, 10, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 7, 28, 381, 10, 28, 12, 28, 14, 28, 384, 11, 28, 3, 29, 3, 29, 3, 29, 5, 29, 389, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 401, 10, 30, 12, 30, 14, 30, 404, 11, 30, 3, 30, 3, 30, 5, 30, 408, 10, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 422, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 429, 10, 31, 3, 31, 5, 31, 432, 10, 31, 3, 31, 3, 31, 5, 31, 436, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 442, 10, 31, 5, 31, 444, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 452, 10, 31, 12, 31, 14, 31, 455, 11, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 7, 34, 464, 10, 34, 12, 34, 14, 34, 467, 11, 34, 3, 34, 5, 34, 470, 10, 34, 3, 34, 5, 34, 473, 10, 34, 3, 34, 5, 34, 476, 10, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 5, 36, 485, 10, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 2, 2, 4, 44, 60, 41, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 2, 9, 3, 2, 60, 63, 4, 2, 48, 53, 55, 59, 3, 2, 31, 32, 3, 2, 16, 25, 5, 2, 7, 10, 34, 34, 71, 71, 3, 2, 46, 47, 7, 2, 48, 49, 55, 58, 62, 64, 66, 66, 80, 80, 2, 543, 2, 81, 3, 2, 2, 2, 4, 91, 3, 2, 2, 2, 6, 107, 3, 2, 2, 2, 8, 126, 3, 2, 2, 2, 10, 131, 3, 2, 2, 2, 12, 138, 3, 2, 2, 2, 14, 140, 3, 2, 2, 2, 16, 178, 3, 2, 2, 2, 18, 210, 3, 2, 2, 2, 20, 212, 3, 2, 2, 2, 22, 214, 3, 2, 2, 2, 24, 216, 3, 2, 2, 2, 26, 239, 3, 2, 2, 2, 28, 246, 3, 2, 2, 2, 30, 248, 3, 2, 2, 2, 32, 252, 3, 2, 2, 2, 34, 257, 3, 2, 2, 2, 36, 280, 3, 2, 2, 2, 38, 282, 3, 2, 2, 2, 40, 293, 3, 2, 2, 2, 42, 308, 3, 2, 2, 2, 44, 325, 3, 2, 2, 2, 46, 356, 3, 2, 2, 2, 48, 370, 3, 2, 2, 2, 50, 372, 3, 2, 2, 2, 52, 374, 3, 2, 2, 2, 54, 377, 3, 2, 2, 2, 56, 385, 3, 2, 2, 2, 58, 390, 3, 2, 2, 2, 60, 443, 3, 2, 2, 2, 62, 456, 3, 2, 2, 2, 64, 458, 3, 2, 2, 2, 66, 460, 3, 2, 2, 2, 68, 477, 3, 2, 2, 2, 70, 484, 3, 2, 2, 2, 72, 486, 3, 2, 2, 2, 74, 490, 3, 2, 2, 2, 76, 492, 3, 2, 2, 2, 78, 494, 3, 2, 2, 2, 80, 82, 5, 4, 3, 2, 81, 80, 3, 2, 2, 2, 81, 82, 3, 2, 2, 2, 82, 86, 3, 2, 2, 2, 83, 85, 5, 6, 4, 2, 84, 83, 3, 2, 2, 2, 85, 88, 3, 2, 2, 2, 86, 84, 3, 2, 2, 2, 86, 87, 3, 2, 2, 2, 87, 89, 3, 2, 2, 2, 88, 86, 3, 2, 2, 2, 89, 90, 7, 2, 2, 3, 90, 3, 3, 2, 2, 2, 91, 92, 7, 70, 2, 2, 92, 93, 5, 76, 39, 2, 93, 5, 3, 2, 2, 2, 94, 95, 7, 71, 2, 2, 95, 96, 5, 8, 5, 2, 96, 97, 7, 68, 2, 2, 97, 98, 5, 10, 6, 2, 98, 99, 7, 69, 2, 2, 99, 108, 3, 2, 2, 2, 100, 101, 7, 71, 2, 2, 101, 102, 7, 66, 2, 2, 102, 103, 7, 67, 2, 2, 103, 104, 7, 68, 2, 2, 104, 105, 5, 10, 6, 2, 105, 106, 7, 69, 2, 2, 106, 108, 3, 2, 2, 2, 107, 94, 3, 2, 2, 2, 107, 100, 3, 2, 2, 2, 108, 7, 3, 2, 2, 2, 109, 111, 7, 79, 2, 2, 110, 109, 3, 2, 2, 2, 110, 111, 3, 2, 2, 2, 111, 113, 3, 2, 2, 2, 112, 114, 7, 64, 2, 2, 113, 112, 3, 2, 2, 2, 113, 114, 3, 2, 2, 2, 114, 117, 3, 2, 2, 2, 115, 116, 7, 65, 2, 2, 116, 118, 7, 79, 2, 2, 117, 115, 3, 2, 2, 2, 117, 118, 3, 2, 2, 2, 118, 119, 3, 2, 2, 2, 119, 127, 9, 2, 2, 2, 120, 123, 7, 78, 2, 2, 121, 122, 7, 65, 2, 2, 122, 124, 7, 79, 2, 2, 123, 121, 3, 2, 2, 2, 123, 124, 3, 2, 2, 2, 124, 125, 3, 2, 2, 2, 125, 127, 9, 2, 2, 2, 126, 110, 3, 2, 2, 2, 126, 120, 3, 2, 2, 2, 127, 9, 3, 2, 2, 2, 128, 130, 5, 12, 7, 2, 129, 128, 3, 2, 2, 2, 130, 133, 3, 2, 2, 2, 131, 129, 3, 2, 2, 2, 131, 132, 3, 2, 2, 2, 132, 11, 3, 2, 2, 2, 133, 131, 3, 2, 2, 2, 134, 139, 5, 16, 9, 2, 135, 139, 5, 18, 10, 2, 136, 139, 5, 58, 30, 2, 137, 139, 5, 14, 8, 2, 138, 134, 3, 2, 2, 2, 138, 135, 3, 2, 2, 2, 138, 136, 3, 2, 2, 2, 138, 137, 3, 2, 2, 2, 139, 13, 3, 2, 2, 2, 140, 142, 7, 36, 2, 2, 141, 143, 5, 70, 36, 2, 142, 141, 3, 2, 2, 2, 142, 143, 3, 2, 2, 2, 143, 148, 3, 2, 2, 2, 144, 145, 7, 72, 2, 2, 145, 147, 5, 70, 36, 2, 146, 144, 3, 2, 2, 2, 147, 150, 3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 152, 3, 2, 2, 2, 150, 148, 3, 2, 2, 2, 151, 153, 7, 72, 2, 2, 152, 151, 3, 2, 2, 2, 152, 153, 3, 2, 2, 2, 153, 15, 3, 2, 2, 2, 154, 156, 7, 28, 2, 2, 155, 157, 5, 20, 11, 2, 156, 155, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 159, 3, 2, 2, 2, 158, 160, 5, 34, 18, 2, 159, 158, 3, 2, 2, 2, 159, 160, 3, 2, 2, 2, 160, 161, 3, 2, 2, 2, 161, 163, 7, 26, 2, 2, 162, 164, 7, 34, 2, 2, 163, 162, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 179, 5, 66, 34, 2, 166, 168, 7, 26, 2, 2, 167, 169, 7, 34, 2, 2, 168, 167, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 170, 3, 2, 2, 2, 170, 171, 5, 66, 34, 2, 171, 173, 7, 28, 2, 2, 172, 174, 5, 20, 11, 2, 173, 172, 3, 2, 2, 2, 173, 174, 3, 2, 2, 2, 174, 176, 3, 2, 2, 2, 175, 177, 5, 34, 18, 2, 176, 175, 3, 2, 2, 2, 176, 177, 3, 2, 2, 2, 177, 179, 3, 2, 2, 2, 178, 154, 3, 2, 2, 2, 178, 166, 3, 2, 2, 2, 179, 17, 3, 2, 2, 2, 180, 182, 7, 29, 2, 2, 181, 183, 5, 22, 12, 2, 182, 181, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 185, 3, 2, 2, 2, 184, 186, 5, 34, 18, 2, 185, 184, 3, 2, 2, 2, 185, 186, 3, 2, 2, 2, 186, 187, 3, 2, 2, 2, 187, 189, 7, 27, 2, 2, 188, 190, 5, 72, 37, 2, 189, 188, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 192, 3, 2, 2, 2, 191, 193, 7, 34, 2, 2, 192, 191, 3, 2, 2, 2, 192, 193, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 211, 5, 66, 34, 2, 195, 197, 7, 27, 2, 2, 196, 198, 5, 72, 37, 2, 197, 196, 3, 2, 2, 2, 197, 198, 3, 2, 2, 2, 198, 200, 3, 2, 2, 2, 199, 201, 7, 34, 2, 2, 200, 199, 3, 2, 2, 2, 200, 201, 3, 2, 2, 2, 201, 202, 3, 2, 2, 2, 202, 203, 5, 66, 34, 2, 203, 205, 7, 29, 2, 2, 204, 206, 5, 22, 12, 2, 205, 204, 3, 2, 2, 2, 205, 206, 3, 2, 2, 2, 206, 208, 3, 2, 2, 2, 207, 209, 5, 34, 18, 2, 208, 207, 3, 2, 2, 2, 208, 209, 3, 2, 2, 2, 209, 211, 3, 2, 2, 2, 210, 180, 3, 2, 2, 2, 210, 195, 3, 2, 2, 2, 211, 19, 3, 2, 2, 2, 212, 213, 5, 24, 13, 2, 213, 21, 3, 2, 2, 2, 214, 215, 5, 24, 13, 2, 215, 23, 3, 2, 2, 2, 216, 221, 5, 26, 14, 2, 217, 218, 7, 72, 2, 2, 218, 220, 5, 26, 14, 2, 219, 217, 3, 2, 2, 2, 220, 223, 3, 2, 2, 2, 221, 219, 3, 2, 2, 2, 221, 222, 3, 2, 2, 2, 222, 225, 3, 2, 2, 2, 223, 221, 3, 2, 2, 2, 224, 226, 7, 72, 2, 2, 225, 224, 3, 2, 2, 2, 225, 226, 3, 2, 2, 2, 226, 25, 3, 2, 2, 2, 227, 229, 5, 28, 15, 2, 228, 227, 3, 2, 2, 2, 228, 229, 3, 2, 2, 2, 229, 230, 3, 2, 2, 2, 230, 232, 5, 40, 21, 2, 231, 233, 5, 42, 22, 2, 232, 231, 3, 2, 2, 2, 232, 233, 3, 2, 2, 2, 233, 240, 3, 2, 2, 2, 234, 236, 5, 28, 15, 2, 235, 237, 5, 42, 22, 2, 236, 235, 3, 2, 2, 2, 236, 237, 3, 2, 2, 2, 237, 240, 3, 2, 2, 2, 238, 240, 5, 42, 22, 2, 239, 228, 3, 2, 2, 2, 239, 234, 3, 2, 2, 2, 239, 238, 3, 2, 2, 2, 240, 27, 3, 2, 2, 2, 241, 242, 5, 30, 16, 2, 242, 243, 5, 32, 17, 2, 243, 247, 3, 2, 2, 2, 244, 247, 5, 32, 17, 2, 245, 247, 5, 30, 16, 2, 246, 241, 3, 2, 2, 2, 246, 244, 3, 2, 2, 2, 246, 245, 3, 2, 2, 2, 247, 29, 3, 2, 2, 2, 248, 250, 5, 78, 40, 2, 249, 251, 7, 34, 2, 2, 250, 249, 3, 2, 2, 2, 250, 251, 3, 2, 2, 2, 251, 31, 3, 2, 2, 2, 252, 253, 7, 33, 2, 2, 253, 255, 5, 78, 40, 2, 254, 256, 7, 34, 2, 2, 255, 254, 3, 2, 2, 2, 255, 256, 3, 2, 2, 2, 256, 33, 3, 2, 2, 2, 257, 258, 7, 35, 2, 2, 258, 259, 5, 38, 20, 2, 259, 35, 3, 2, 2, 2, 260, 277, 5, 74, 38, 2, 261, 263, 7, 73, 2, 2, 262, 264, 5, 74, 38, 2, 263, 262, 3, 2, 2, 2, 263, 264, 3, 2, 2, 2, 264, 275, 3, 2, 2, 2, 265, 267, 7, 73, 2, 2, 266, 268, 5, 74, 38, 2, 267, 266, 3, 2, 2, 2, 267, 268, 3, 2, 2, 2, 268, 273, 3, 2, 2, 2, 269, 271, 7, 73, 2, 2, 270, 272, 5, 74, 38, 2, 271, 270, 3, 2, 2, 2, 271, 272, 3, 2, 2, 2, 272, 274, 3, 2, 2, 2, 273, 269, 3, 2, 2, 2, 273, 274, 3, 2, 2, 2, 274, 276, 3, 2, 2, 2, 275, 265, 3, 2, 2, 2, 275, 276, 3, 2, 2, 2, 276, 278, 3, 2, 2, 2, 277, 261, 3, 2, 2, 2, 277, 278, 3, 2, 2, 2, 278, 281, 3, 2, 2, 2, 279, 281, 5, 76, 39, 2, 280, 260, 3, 2, 2, 2, 280, 279, 3, 2, 2, 2, 281, 37, 3, 2, 2, 2, 282, 287, 5, 36, 19, 2, 283, 284, 7, 72, 2, 2, 284, 286, 5, 36, 19, 2, 285, 283, 3, 2, 2, 2, 286, 289, 3, 2, 2, 2, 287, 285, 3, 2, 2, 2, 287, 288, 3, 2, 2, 2, 288, 291, 3, 2, 2, 2, 289, 287, 3, 2, 2, 2, 290, 292, 7, 72, 2, 2, 291, 290, 3, 2, 2, 2, 291, 292, 3, 2, 2, 2, 292, 39, 3, 2, 2, 2, 293, 298, 5, 36, 19, 2, 294, 295, 7, 15, 2, 2, 295, 297, 5, 36, 19, 2, 296, 294, 3, 2, 2, 2, 297, 300, 3, 2, 2, 2, 298, 296, 3, 2, 2, 2, 298, 299, 3, 2, 2, 2, 299, 302, 3, 2, 2, 2, 300, 298, 3, 2, 2, 2, 301, 303, 7, 15, 2, 2, 302, 301, 3, 2, 2, 2, 302, 303, 3, 2, 2, 2, 303, 41, 3, 2, 2, 2, 304, 305, 7, 40, 2, 2, 305, 309, 5, 44, 23, 2, 306, 307, 7, 39, 2, 2, 307, 309, 5, 44, 23, 2, 308, 304, 3, 2, 2, 2, 308, 306, 3, 2, 2, 2, 309, 43, 3, 2, 2, 2, 310, 311, 8, 23, 1, 2, 311, 312, 7, 76, 2, 2, 312, 313, 5, 44, 23, 2, 313, 314, 7, 77, 2, 2, 314, 326, 3, 2, 2, 2, 315, 316, 7, 13, 2, 2, 316, 326, 5, 44, 23, 6, 317, 319, 7, 41, 2, 2, 318, 320, 7, 42, 2, 2, 319, 318, 3, 2, 2, 2, 319, 320, 3, 2, 2, 2, 320, 323, 3, 2, 2, 2, 321, 323, 7, 42, 2, 2, 322, 317, 3, 2, 2, 2, 322, 321, 3, 2, 2, 2, 323, 324, 3, 2, 2, 2, 324, 326, 5, 46, 24, 2, 325, 310, 3, 2, 2, 2, 325, 315, 3, 2, 2, 2, 325, 322, 3, 2, 2, 2, 326, 335, 3, 2, 2, 2, 327, 328, 12, 5, 2, 2, 328, 329, 7, 14, 2, 2, 329, 334, 5, 44, 23, 6, 330, 331, 12, 4, 2, 2, 331, 332, 7, 15, 2, 2, 332, 334, 5, 44, 23, 5, 333, 327, 3, 2, 2, 2, 333, 330, 3, 2, 2, 2, 334, 337, 3, 2, 2, 2, 335, 333, 3, 2, 2, 2, 335, 336, 3, 2, 2, 2, 336, 45, 3, 2, 2, 2, 337, 335, 3, 2, 2, 2, 338, 339, 5, 74, 38, 2, 339, 340, 7, 73, 2, 2, 340, 345, 5, 74, 38, 2, 341, 342, 7, 74, 2, 2, 342, 344, 5, 74, 38, 2, 343, 341, 3, 2, 2, 2, 344, 347, 3, 2, 2, 2, 345, 343, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 357, 3, 2, 2, 2, 347, 345, 3, 2, 2, 2, 348, 353, 5, 74, 38, 2, 349, 350, 7, 74, 2, 2, 350, 352, 5, 74, 38, 2, 351, 349, 3, 2, 2, 2, 352, 355, 3, 2, 2, 2, 353, 351, 3, 2, 2, 2, 353, 354, 3, 2, 2, 2, 354, 357, 3, 2, 2, 2, 355, 353, 3, 2, 2, 2, 356, 338, 3, 2, 2, 2, 356, 348, 3, 2, 2, 2, 357, 47, 3, 2, 2, 2, 358, 359, 7, 34, 2, 2, 359, 371, 7, 54, 2, 2, 360, 365, 5, 50, 26, 2, 361, 362, 7, 72, 2, 2, 362, 364, 5, 50, 26, 2, 363, 361, 3, 2, 2, 2, 364, 367, 3, 2, 2, 2, 365, 363, 3, 2, 2, 2, 365, 366, 3, 2, 2, 2, 366, 368, 3, 2, 2, 2, 367, 365, 3, 2, 2, 2, 368, 369, 7, 54, 2, 2, 369, 371, 3, 2, 2, 2, 370, 358, 3, 2, 2, 2, 370, 360, 3, 2, 2, 2, 371, 49, 3, 2, 2, 2, 372, 373, 9, 3, 2, 2, 373, 51, 3, 2, 2, 2, 374, 375, 9, 4, 2, 2, 375, 376, 5, 54, 28, 2, 376, 53, 3, 2, 2, 2, 377, 382, 5, 56, 29, 2, 378, 379, 7, 72, 2, 2, 379, 381, 5, 56, 29, 2, 380, 378, 3, 2, 2, 2, 381, 384, 3, 2, 2, 2, 382, 380, 3, 2, 2, 2, 382, 383, 3, 2, 2, 2, 383, 55, 3, 2, 2, 2, 384, 382, 3, 2, 2, 2, 385, 388, 5, 78, 40, 2, 386, 387, 7, 75, 2, 2, 387, 389, 5, 78, 40, 2, 388, 386, 3, 2, 2, 2, 388, 389, 3, 2, 2, 2, 389, 57, 3, 2, 2, 2, 390, 391, 7, 3, 2, 2, 391, 392, 5, 60, 31, 2, 392, 393, 7, 4, 2, 2, 393, 402, 5, 10, 6, 2, 394, 395, 7, 5, 2, 2, 395, 396, 7, 3, 2, 2, 396, 397, 5, 60, 31, 2, 397, 398, 7, 4, 2, 2, 398, 399, 5, 10, 6, 2, 399, 401, 3, 2, 2, 2, 400, 394, 3, 2, 2, 2, 401, 404, 3, 2, 2, 2, 402, 400, 3, 2, 2, 2, 402, 403, 3, 2, 2, 2, 403, 407, 3, 2, 2, 2, 404, 402, 3, 2, 2, 2, 405, 406, 7, 5, 2, 2, 406, 408, 5, 10, 6, 2, 407, 405, 3, 2, 2, 2, 407, 408, 3, 2, 2, 2, 408, 409, 3, 2, 2, 2, 409, 410, 7, 69, 2, 2, 410, 59, 3, 2, 2, 2, 411, 412, 8, 31, 1, 2, 412, 444, 7, 11, 2, 2, 413, 444, 7, 12, 2, 2, 414, 415, 7, 76, 2, 2, 415, 416, 5, 60, 31, 2, 416, 417, 7, 77, 2, 2, 417, 444, 3, 2, 2, 2, 418, 419, 7, 13, 2, 2, 419, 444, 5, 60, 31, 7, 420, 422, 5, 64, 33, 2, 421, 420, 3, 2, 2, 2, 421, 422, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 424, 5, 66, 34, 2, 424, 425, 7, 6, 2, 2, 425, 426, 5, 62, 32, 2, 426, 428, 5, 78, 40, 2, 427, 429, 5, 40, 21, 2, 428, 427, 3, 2, 2, 2, 428, 429, 3, 2, 2, 2, 429, 431, 3, 2, 2, 2, 430, 432, 5, 42, 22, 2, 431, 430, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 435, 3, 2, 2, 2, 433, 434, 7, 35, 2, 2, 434, 436, 5, 38, 20, 2, 435, 433, 3, 2, 2, 2, 435, 436, 3, 2, 2, 2, 436, 444, 3, 2, 2, 2, 437, 441, 7, 66, 2, 2, 438, 439, 5, 62, 32, 2, 439, 440, 5, 78, 40, 2, 440, 442, 3, 2, 2, 2, 441, 438, 3, 2, 2, 2, 441, 442, 3, 2, 2, 2, 442, 444, 3, 2, 2, 2, 443, 411, 3, 2, 2, 2, 443, 413, 3, 2, 2, 2, 443, 414, 3, 2, 2, 2, 443, 418, 3, 2, 2, 2, 443, 421, 3, 2, 2, 2, 443, 437, 3, 2, 2, 2, 444, 453, 3, 2, 2, 2, 445, 446, 12, 6, 2, 2, 446, 447, 7, 14, 2, 2, 447, 452, 5, 60, 31, 7, 448, 449, 12, 5, 2, 2, 449, 450, 7, 15, 2, 2, 450, 452, 5, 60, 31, 6, 451, 445, 3, 2, 2, 2, 451, 448, 3, 2, 2, 2, 452, 455, 3, 2, 2, 2, 453, 451, 3, 2, 2, 2, 453, 454, 3, 2, 2, 2, 454, 61, 3, 2, 2, 2, 455, 453, 3, 2, 2, 2, 456, 457, 9, 5, 2, 2, 457, 63, 3, 2, 2, 2, 458, 459, 9, 6, 2, 2, 459, 65, 3, 2, 2, 2, 460, 465, 5, 70, 36, 2, 461, 462, 7, 72, 2, 2, 462, 464, 5, 70, 36, 2, 463, 461, 3, 2, 2, 2, 464, 467, 3, 2, 2, 2, 465, 463, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 469, 3, 2, 2, 2, 467, 465, 3, 2, 2, 2, 468, 470, 5, 68, 35, 2, 469, 468, 3, 2, 2, 2, 469, 470, 3, 2, 2, 2, 470, 472, 3, 2, 2, 2, 471, 473, 5, 48, 25, 2, 472, 471, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 475, 3, 2, 2, 2, 474, 476, 5, 52, 27, 2, 475, 474, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 67, 3, 2, 2, 2, 477, 478, 7, 43, 2, 2, 478, 479, 7, 44, 2, 2, 479, 480, 7, 45, 2, 2, 480, 481, 9, 7, 2, 2, 481, 69, 3, 2, 2, 2, 482, 485, 5, 74, 38, 2, 483, 485, 5, 76, 39, 2, 484, 482, 3, 2, 2, 2, 484, 483, 3, 2, 2, 2, 485, 71, 3, 2, 2, 2, 486, 487, 7, 37, 2, 2, 487, 488, 9, 4, 2, 2, 488, 489, 7, 38, 2, 2, 489, 73, 3, 2, 2, 2, 490, 491, 9, 8, 2, 2, 491, 75, 3, 2, 2, 2, 492, 493, 7, 81, 2, 2, 493, 77, 3, 2, 2, 2, 494, 495, 7, 79, 2, 2, 495, 79, 3, 2, 2, 2, 79, 81, 86, 107, 110, 113, 117, 123, 126, 131, 138, 142, 148, 152, 156, 159, 163, 168, 173, 176, 178, 182, 185, 189, 192, 197, 200, 205, 208, 210, 221, 225, 228, 232, 236, 239, 246, 250, 255, 263, 267, 271, 273, 275, 277, 280, 287, 291, 298, 302, 308, 319, 322, 325, 333, 335, 345, 353, 356, 365, 370, 382, 388, 402, 407, 421, 428, 431, 435, 441, 443, 451, 453, 465, 469, 472, 475, 484] \ No newline at end of file diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.tokens b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.tokens index 1b06af7e3..3d0aaba4c 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.tokens +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFML.tokens @@ -27,60 +27,68 @@ INPUT=26 OUTPUT=27 WHERE=28 SLOTS=29 -RETAIN=30 -EACH=31 -EXCEPT=32 -FORGET=33 -WITHOUT=34 -WITH=35 -TAG=36 -HASHTAG=37 -ROUND=38 -ROBIN=39 -BY=40 -LABEL=41 -BLOCK=42 -TOP=43 -BOTTOM=44 -NORTH=45 -EAST=46 -SOUTH=47 -WEST=48 -SIDE=49 -TICKS=50 -TICK=51 -SECONDS=52 -SECOND=53 -GLOBAL=54 -PLUS=55 -REDSTONE=56 -PULSE=57 -DO=58 -END=59 -NAME=60 -EVERY=61 -COMMA=62 -COLON=63 -SLASH=64 -DASH=65 -LPAREN=66 -RPAREN=67 -NUMBER_WITH_G_SUFFIX=68 -NUMBER=69 -IDENTIFIER=70 -STRING=71 -LINE_COMMENT=72 -WS=73 -UNUSED=74 +SLOT=30 +RETAIN=31 +EACH=32 +EXCEPT=33 +FORGET=34 +EMPTY=35 +IN=36 +WITHOUT=37 +WITH=38 +TAG=39 +HASHTAG=40 +ROUND=41 +ROBIN=42 +BY=43 +LABEL=44 +BLOCK=45 +TOP=46 +BOTTOM=47 +NORTH=48 +EAST=49 +SOUTH=50 +WEST=51 +SIDE=52 +LEFT=53 +RIGHT=54 +FRONT=55 +BACK=56 +NULL=57 +TICKS=58 +TICK=59 +SECONDS=60 +SECOND=61 +GLOBAL=62 +PLUS=63 +REDSTONE=64 +PULSE=65 +DO=66 +END=67 +NAME=68 +EVERY=69 +COMMA=70 +COLON=71 +SLASH=72 +DASH=73 +LPAREN=74 +RPAREN=75 +NUMBER_WITH_G_SUFFIX=76 +NUMBER=77 +IDENTIFIER=78 +STRING=79 +LINE_COMMENT=80 +WS=81 +UNUSED=82 '>'=15 '<'=17 '='=19 '<='=21 '>='=23 -'#'=37 -','=62 -':'=63 -'/'=64 -'-'=65 -'('=66 -')'=67 +'#'=40 +','=70 +':'=71 +'/'=72 +'-'=73 +'('=74 +')'=75 diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.interp b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.interp index 527f34662..4fafdca4d 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.interp +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.interp @@ -36,6 +36,9 @@ null null null null +null +null +null '#' null null @@ -61,6 +64,11 @@ null null null null +null +null +null +null +null ',' ':' '/' @@ -106,10 +114,13 @@ INPUT OUTPUT WHERE SLOTS +SLOT RETAIN EACH EXCEPT FORGET +EMPTY +IN WITHOUT WITH TAG @@ -126,6 +137,11 @@ EAST SOUTH WEST SIDE +LEFT +RIGHT +FRONT +BACK +NULL TICKS TICK SECONDS @@ -182,10 +198,13 @@ INPUT OUTPUT WHERE SLOTS +SLOT RETAIN EACH EXCEPT FORGET +EMPTY +IN WITHOUT WITH TAG @@ -202,6 +221,11 @@ EAST SOUTH WEST SIDE +LEFT +RIGHT +FRONT +BACK +NULL TICKS TICK SECONDS @@ -262,4 +286,4 @@ mode names: DEFAULT_MODE atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 76, 631, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 469, 10, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 5, 56, 477, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 65, 3, 65, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 69, 6, 69, 525, 10, 69, 13, 69, 14, 69, 526, 3, 69, 3, 69, 3, 70, 6, 70, 532, 10, 70, 13, 70, 14, 70, 533, 3, 71, 3, 71, 7, 71, 538, 10, 71, 12, 71, 14, 71, 541, 11, 71, 3, 71, 5, 71, 544, 10, 71, 3, 72, 3, 72, 3, 72, 3, 72, 7, 72, 550, 10, 72, 12, 72, 14, 72, 553, 11, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 561, 10, 73, 12, 73, 14, 73, 564, 11, 73, 3, 73, 3, 73, 3, 74, 6, 74, 569, 10, 74, 13, 74, 14, 74, 570, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 77, 3, 77, 3, 78, 3, 78, 3, 79, 3, 79, 3, 80, 3, 80, 3, 81, 3, 81, 3, 82, 3, 82, 3, 83, 3, 83, 3, 84, 3, 84, 3, 85, 3, 85, 3, 86, 3, 86, 3, 87, 3, 87, 3, 88, 3, 88, 3, 89, 3, 89, 3, 90, 3, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 93, 3, 93, 3, 94, 3, 94, 3, 95, 3, 95, 3, 96, 3, 96, 3, 97, 3, 97, 3, 98, 3, 98, 3, 99, 3, 99, 3, 100, 3, 100, 3, 101, 3, 101, 2, 2, 2, 102, 3, 2, 3, 5, 2, 4, 7, 2, 5, 9, 2, 6, 11, 2, 7, 13, 2, 8, 15, 2, 9, 17, 2, 10, 19, 2, 11, 21, 2, 12, 23, 2, 13, 25, 2, 14, 27, 2, 15, 29, 2, 16, 31, 2, 17, 33, 2, 18, 35, 2, 19, 37, 2, 20, 39, 2, 21, 41, 2, 22, 43, 2, 23, 45, 2, 24, 47, 2, 25, 49, 2, 26, 51, 2, 27, 53, 2, 28, 55, 2, 29, 57, 2, 30, 59, 2, 31, 61, 2, 32, 63, 2, 33, 65, 2, 34, 67, 2, 35, 69, 2, 36, 71, 2, 37, 73, 2, 38, 75, 2, 39, 77, 2, 40, 79, 2, 41, 81, 2, 42, 83, 2, 43, 85, 2, 44, 87, 2, 45, 89, 2, 46, 91, 2, 47, 93, 2, 48, 95, 2, 49, 97, 2, 50, 99, 2, 51, 101, 2, 52, 103, 2, 53, 105, 2, 54, 107, 2, 55, 109, 2, 56, 111, 2, 57, 113, 2, 58, 115, 2, 59, 117, 2, 60, 119, 2, 61, 121, 2, 62, 123, 2, 63, 125, 2, 64, 127, 2, 65, 129, 2, 66, 131, 2, 67, 133, 2, 68, 135, 2, 69, 137, 2, 70, 139, 2, 71, 141, 2, 72, 143, 2, 73, 145, 2, 74, 147, 2, 75, 149, 2, 76, 151, 2, 2, 153, 2, 2, 155, 2, 2, 157, 2, 2, 159, 2, 2, 161, 2, 2, 163, 2, 2, 165, 2, 2, 167, 2, 2, 169, 2, 2, 171, 2, 2, 173, 2, 2, 175, 2, 2, 177, 2, 2, 179, 2, 2, 181, 2, 2, 183, 2, 2, 185, 2, 2, 187, 2, 2, 189, 2, 2, 191, 2, 2, 193, 2, 2, 195, 2, 2, 197, 2, 2, 199, 2, 2, 201, 2, 2, 3, 2, 34, 3, 2, 50, 59, 4, 2, 73, 73, 105, 105, 6, 2, 44, 44, 67, 92, 97, 97, 99, 124, 7, 2, 44, 44, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 36, 36, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 71, 71, 103, 103, 4, 2, 72, 72, 104, 104, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 614, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 3, 203, 3, 2, 2, 2, 5, 206, 3, 2, 2, 2, 7, 211, 3, 2, 2, 2, 9, 216, 3, 2, 2, 2, 11, 220, 3, 2, 2, 2, 13, 228, 3, 2, 2, 2, 15, 233, 3, 2, 2, 2, 17, 237, 3, 2, 2, 2, 19, 242, 3, 2, 2, 2, 21, 247, 3, 2, 2, 2, 23, 253, 3, 2, 2, 2, 25, 257, 3, 2, 2, 2, 27, 261, 3, 2, 2, 2, 29, 264, 3, 2, 2, 2, 31, 267, 3, 2, 2, 2, 33, 269, 3, 2, 2, 2, 35, 272, 3, 2, 2, 2, 37, 274, 3, 2, 2, 2, 39, 277, 3, 2, 2, 2, 41, 279, 3, 2, 2, 2, 43, 282, 3, 2, 2, 2, 45, 285, 3, 2, 2, 2, 47, 288, 3, 2, 2, 2, 49, 291, 3, 2, 2, 2, 51, 296, 3, 2, 2, 2, 53, 299, 3, 2, 2, 2, 55, 305, 3, 2, 2, 2, 57, 312, 3, 2, 2, 2, 59, 318, 3, 2, 2, 2, 61, 324, 3, 2, 2, 2, 63, 331, 3, 2, 2, 2, 65, 336, 3, 2, 2, 2, 67, 343, 3, 2, 2, 2, 69, 350, 3, 2, 2, 2, 71, 358, 3, 2, 2, 2, 73, 363, 3, 2, 2, 2, 75, 367, 3, 2, 2, 2, 77, 369, 3, 2, 2, 2, 79, 375, 3, 2, 2, 2, 81, 381, 3, 2, 2, 2, 83, 384, 3, 2, 2, 2, 85, 390, 3, 2, 2, 2, 87, 396, 3, 2, 2, 2, 89, 400, 3, 2, 2, 2, 91, 407, 3, 2, 2, 2, 93, 413, 3, 2, 2, 2, 95, 418, 3, 2, 2, 2, 97, 424, 3, 2, 2, 2, 99, 429, 3, 2, 2, 2, 101, 434, 3, 2, 2, 2, 103, 440, 3, 2, 2, 2, 105, 445, 3, 2, 2, 2, 107, 453, 3, 2, 2, 2, 109, 468, 3, 2, 2, 2, 111, 476, 3, 2, 2, 2, 113, 478, 3, 2, 2, 2, 115, 487, 3, 2, 2, 2, 117, 493, 3, 2, 2, 2, 119, 496, 3, 2, 2, 2, 121, 500, 3, 2, 2, 2, 123, 505, 3, 2, 2, 2, 125, 511, 3, 2, 2, 2, 127, 513, 3, 2, 2, 2, 129, 515, 3, 2, 2, 2, 131, 517, 3, 2, 2, 2, 133, 519, 3, 2, 2, 2, 135, 521, 3, 2, 2, 2, 137, 524, 3, 2, 2, 2, 139, 531, 3, 2, 2, 2, 141, 543, 3, 2, 2, 2, 143, 545, 3, 2, 2, 2, 145, 556, 3, 2, 2, 2, 147, 568, 3, 2, 2, 2, 149, 574, 3, 2, 2, 2, 151, 579, 3, 2, 2, 2, 153, 581, 3, 2, 2, 2, 155, 583, 3, 2, 2, 2, 157, 585, 3, 2, 2, 2, 159, 587, 3, 2, 2, 2, 161, 589, 3, 2, 2, 2, 163, 591, 3, 2, 2, 2, 165, 593, 3, 2, 2, 2, 167, 595, 3, 2, 2, 2, 169, 597, 3, 2, 2, 2, 171, 599, 3, 2, 2, 2, 173, 601, 3, 2, 2, 2, 175, 603, 3, 2, 2, 2, 177, 605, 3, 2, 2, 2, 179, 607, 3, 2, 2, 2, 181, 609, 3, 2, 2, 2, 183, 611, 3, 2, 2, 2, 185, 613, 3, 2, 2, 2, 187, 615, 3, 2, 2, 2, 189, 617, 3, 2, 2, 2, 191, 619, 3, 2, 2, 2, 193, 621, 3, 2, 2, 2, 195, 623, 3, 2, 2, 2, 197, 625, 3, 2, 2, 2, 199, 627, 3, 2, 2, 2, 201, 629, 3, 2, 2, 2, 203, 204, 5, 167, 84, 2, 204, 205, 5, 161, 81, 2, 205, 4, 3, 2, 2, 2, 206, 207, 5, 189, 95, 2, 207, 208, 5, 165, 83, 2, 208, 209, 5, 159, 80, 2, 209, 210, 5, 177, 89, 2, 210, 6, 3, 2, 2, 2, 211, 212, 5, 159, 80, 2, 212, 213, 5, 173, 87, 2, 213, 214, 5, 187, 94, 2, 214, 215, 5, 159, 80, 2, 215, 8, 3, 2, 2, 2, 216, 217, 5, 165, 83, 2, 217, 218, 5, 151, 76, 2, 218, 219, 5, 187, 94, 2, 219, 10, 3, 2, 2, 2, 220, 221, 5, 179, 90, 2, 221, 222, 5, 193, 97, 2, 222, 223, 5, 159, 80, 2, 223, 224, 5, 185, 93, 2, 224, 225, 5, 151, 76, 2, 225, 226, 5, 173, 87, 2, 226, 227, 5, 173, 87, 2, 227, 12, 3, 2, 2, 2, 228, 229, 5, 187, 94, 2, 229, 230, 5, 179, 90, 2, 230, 231, 5, 175, 88, 2, 231, 232, 5, 159, 80, 2, 232, 14, 3, 2, 2, 2, 233, 234, 5, 179, 90, 2, 234, 235, 5, 177, 89, 2, 235, 236, 5, 159, 80, 2, 236, 16, 3, 2, 2, 2, 237, 238, 5, 173, 87, 2, 238, 239, 5, 179, 90, 2, 239, 240, 5, 177, 89, 2, 240, 241, 5, 159, 80, 2, 241, 18, 3, 2, 2, 2, 242, 243, 5, 189, 95, 2, 243, 244, 5, 185, 93, 2, 244, 245, 5, 191, 96, 2, 245, 246, 5, 159, 80, 2, 246, 20, 3, 2, 2, 2, 247, 248, 5, 161, 81, 2, 248, 249, 5, 151, 76, 2, 249, 250, 5, 173, 87, 2, 250, 251, 5, 187, 94, 2, 251, 252, 5, 159, 80, 2, 252, 22, 3, 2, 2, 2, 253, 254, 5, 177, 89, 2, 254, 255, 5, 179, 90, 2, 255, 256, 5, 189, 95, 2, 256, 24, 3, 2, 2, 2, 257, 258, 5, 151, 76, 2, 258, 259, 5, 177, 89, 2, 259, 260, 5, 157, 79, 2, 260, 26, 3, 2, 2, 2, 261, 262, 5, 179, 90, 2, 262, 263, 5, 185, 93, 2, 263, 28, 3, 2, 2, 2, 264, 265, 5, 163, 82, 2, 265, 266, 5, 189, 95, 2, 266, 30, 3, 2, 2, 2, 267, 268, 7, 64, 2, 2, 268, 32, 3, 2, 2, 2, 269, 270, 5, 173, 87, 2, 270, 271, 5, 189, 95, 2, 271, 34, 3, 2, 2, 2, 272, 273, 7, 62, 2, 2, 273, 36, 3, 2, 2, 2, 274, 275, 5, 159, 80, 2, 275, 276, 5, 183, 92, 2, 276, 38, 3, 2, 2, 2, 277, 278, 7, 63, 2, 2, 278, 40, 3, 2, 2, 2, 279, 280, 5, 173, 87, 2, 280, 281, 5, 159, 80, 2, 281, 42, 3, 2, 2, 2, 282, 283, 7, 62, 2, 2, 283, 284, 7, 63, 2, 2, 284, 44, 3, 2, 2, 2, 285, 286, 5, 163, 82, 2, 286, 287, 5, 159, 80, 2, 287, 46, 3, 2, 2, 2, 288, 289, 7, 64, 2, 2, 289, 290, 7, 63, 2, 2, 290, 48, 3, 2, 2, 2, 291, 292, 5, 161, 81, 2, 292, 293, 5, 185, 93, 2, 293, 294, 5, 179, 90, 2, 294, 295, 5, 175, 88, 2, 295, 50, 3, 2, 2, 2, 296, 297, 5, 189, 95, 2, 297, 298, 5, 179, 90, 2, 298, 52, 3, 2, 2, 2, 299, 300, 5, 167, 84, 2, 300, 301, 5, 177, 89, 2, 301, 302, 5, 181, 91, 2, 302, 303, 5, 191, 96, 2, 303, 304, 5, 189, 95, 2, 304, 54, 3, 2, 2, 2, 305, 306, 5, 179, 90, 2, 306, 307, 5, 191, 96, 2, 307, 308, 5, 189, 95, 2, 308, 309, 5, 181, 91, 2, 309, 310, 5, 191, 96, 2, 310, 311, 5, 189, 95, 2, 311, 56, 3, 2, 2, 2, 312, 313, 5, 195, 98, 2, 313, 314, 5, 165, 83, 2, 314, 315, 5, 159, 80, 2, 315, 316, 5, 185, 93, 2, 316, 317, 5, 159, 80, 2, 317, 58, 3, 2, 2, 2, 318, 319, 5, 187, 94, 2, 319, 320, 5, 173, 87, 2, 320, 321, 5, 179, 90, 2, 321, 322, 5, 189, 95, 2, 322, 323, 5, 187, 94, 2, 323, 60, 3, 2, 2, 2, 324, 325, 5, 185, 93, 2, 325, 326, 5, 159, 80, 2, 326, 327, 5, 189, 95, 2, 327, 328, 5, 151, 76, 2, 328, 329, 5, 167, 84, 2, 329, 330, 5, 177, 89, 2, 330, 62, 3, 2, 2, 2, 331, 332, 5, 159, 80, 2, 332, 333, 5, 151, 76, 2, 333, 334, 5, 155, 78, 2, 334, 335, 5, 165, 83, 2, 335, 64, 3, 2, 2, 2, 336, 337, 5, 159, 80, 2, 337, 338, 5, 197, 99, 2, 338, 339, 5, 155, 78, 2, 339, 340, 5, 159, 80, 2, 340, 341, 5, 181, 91, 2, 341, 342, 5, 189, 95, 2, 342, 66, 3, 2, 2, 2, 343, 344, 5, 161, 81, 2, 344, 345, 5, 179, 90, 2, 345, 346, 5, 185, 93, 2, 346, 347, 5, 163, 82, 2, 347, 348, 5, 159, 80, 2, 348, 349, 5, 189, 95, 2, 349, 68, 3, 2, 2, 2, 350, 351, 5, 195, 98, 2, 351, 352, 5, 167, 84, 2, 352, 353, 5, 189, 95, 2, 353, 354, 5, 165, 83, 2, 354, 355, 5, 179, 90, 2, 355, 356, 5, 191, 96, 2, 356, 357, 5, 189, 95, 2, 357, 70, 3, 2, 2, 2, 358, 359, 5, 195, 98, 2, 359, 360, 5, 167, 84, 2, 360, 361, 5, 189, 95, 2, 361, 362, 5, 165, 83, 2, 362, 72, 3, 2, 2, 2, 363, 364, 5, 189, 95, 2, 364, 365, 5, 151, 76, 2, 365, 366, 5, 163, 82, 2, 366, 74, 3, 2, 2, 2, 367, 368, 7, 37, 2, 2, 368, 76, 3, 2, 2, 2, 369, 370, 5, 185, 93, 2, 370, 371, 5, 179, 90, 2, 371, 372, 5, 191, 96, 2, 372, 373, 5, 177, 89, 2, 373, 374, 5, 157, 79, 2, 374, 78, 3, 2, 2, 2, 375, 376, 5, 185, 93, 2, 376, 377, 5, 179, 90, 2, 377, 378, 5, 153, 77, 2, 378, 379, 5, 167, 84, 2, 379, 380, 5, 177, 89, 2, 380, 80, 3, 2, 2, 2, 381, 382, 5, 153, 77, 2, 382, 383, 5, 199, 100, 2, 383, 82, 3, 2, 2, 2, 384, 385, 5, 173, 87, 2, 385, 386, 5, 151, 76, 2, 386, 387, 5, 153, 77, 2, 387, 388, 5, 159, 80, 2, 388, 389, 5, 173, 87, 2, 389, 84, 3, 2, 2, 2, 390, 391, 5, 153, 77, 2, 391, 392, 5, 173, 87, 2, 392, 393, 5, 179, 90, 2, 393, 394, 5, 155, 78, 2, 394, 395, 5, 171, 86, 2, 395, 86, 3, 2, 2, 2, 396, 397, 5, 189, 95, 2, 397, 398, 5, 179, 90, 2, 398, 399, 5, 181, 91, 2, 399, 88, 3, 2, 2, 2, 400, 401, 5, 153, 77, 2, 401, 402, 5, 179, 90, 2, 402, 403, 5, 189, 95, 2, 403, 404, 5, 189, 95, 2, 404, 405, 5, 179, 90, 2, 405, 406, 5, 175, 88, 2, 406, 90, 3, 2, 2, 2, 407, 408, 5, 177, 89, 2, 408, 409, 5, 179, 90, 2, 409, 410, 5, 185, 93, 2, 410, 411, 5, 189, 95, 2, 411, 412, 5, 165, 83, 2, 412, 92, 3, 2, 2, 2, 413, 414, 5, 159, 80, 2, 414, 415, 5, 151, 76, 2, 415, 416, 5, 187, 94, 2, 416, 417, 5, 189, 95, 2, 417, 94, 3, 2, 2, 2, 418, 419, 5, 187, 94, 2, 419, 420, 5, 179, 90, 2, 420, 421, 5, 191, 96, 2, 421, 422, 5, 189, 95, 2, 422, 423, 5, 165, 83, 2, 423, 96, 3, 2, 2, 2, 424, 425, 5, 195, 98, 2, 425, 426, 5, 159, 80, 2, 426, 427, 5, 187, 94, 2, 427, 428, 5, 189, 95, 2, 428, 98, 3, 2, 2, 2, 429, 430, 5, 187, 94, 2, 430, 431, 5, 167, 84, 2, 431, 432, 5, 157, 79, 2, 432, 433, 5, 159, 80, 2, 433, 100, 3, 2, 2, 2, 434, 435, 5, 189, 95, 2, 435, 436, 5, 167, 84, 2, 436, 437, 5, 155, 78, 2, 437, 438, 5, 171, 86, 2, 438, 439, 5, 187, 94, 2, 439, 102, 3, 2, 2, 2, 440, 441, 5, 189, 95, 2, 441, 442, 5, 167, 84, 2, 442, 443, 5, 155, 78, 2, 443, 444, 5, 171, 86, 2, 444, 104, 3, 2, 2, 2, 445, 446, 5, 187, 94, 2, 446, 447, 5, 159, 80, 2, 447, 448, 5, 155, 78, 2, 448, 449, 5, 179, 90, 2, 449, 450, 5, 177, 89, 2, 450, 451, 5, 157, 79, 2, 451, 452, 5, 187, 94, 2, 452, 106, 3, 2, 2, 2, 453, 454, 5, 187, 94, 2, 454, 455, 5, 159, 80, 2, 455, 456, 5, 155, 78, 2, 456, 457, 5, 179, 90, 2, 457, 458, 5, 177, 89, 2, 458, 459, 5, 157, 79, 2, 459, 108, 3, 2, 2, 2, 460, 461, 5, 163, 82, 2, 461, 462, 5, 173, 87, 2, 462, 463, 5, 179, 90, 2, 463, 464, 5, 153, 77, 2, 464, 465, 5, 151, 76, 2, 465, 466, 5, 173, 87, 2, 466, 469, 3, 2, 2, 2, 467, 469, 5, 163, 82, 2, 468, 460, 3, 2, 2, 2, 468, 467, 3, 2, 2, 2, 469, 110, 3, 2, 2, 2, 470, 477, 7, 45, 2, 2, 471, 472, 5, 181, 91, 2, 472, 473, 5, 173, 87, 2, 473, 474, 5, 191, 96, 2, 474, 475, 5, 187, 94, 2, 475, 477, 3, 2, 2, 2, 476, 470, 3, 2, 2, 2, 476, 471, 3, 2, 2, 2, 477, 112, 3, 2, 2, 2, 478, 479, 5, 185, 93, 2, 479, 480, 5, 159, 80, 2, 480, 481, 5, 157, 79, 2, 481, 482, 5, 187, 94, 2, 482, 483, 5, 189, 95, 2, 483, 484, 5, 179, 90, 2, 484, 485, 5, 177, 89, 2, 485, 486, 5, 159, 80, 2, 486, 114, 3, 2, 2, 2, 487, 488, 5, 181, 91, 2, 488, 489, 5, 191, 96, 2, 489, 490, 5, 173, 87, 2, 490, 491, 5, 187, 94, 2, 491, 492, 5, 159, 80, 2, 492, 116, 3, 2, 2, 2, 493, 494, 5, 157, 79, 2, 494, 495, 5, 179, 90, 2, 495, 118, 3, 2, 2, 2, 496, 497, 5, 159, 80, 2, 497, 498, 5, 177, 89, 2, 498, 499, 5, 157, 79, 2, 499, 120, 3, 2, 2, 2, 500, 501, 5, 177, 89, 2, 501, 502, 5, 151, 76, 2, 502, 503, 5, 175, 88, 2, 503, 504, 5, 159, 80, 2, 504, 122, 3, 2, 2, 2, 505, 506, 5, 159, 80, 2, 506, 507, 5, 193, 97, 2, 507, 508, 5, 159, 80, 2, 508, 509, 5, 185, 93, 2, 509, 510, 5, 199, 100, 2, 510, 124, 3, 2, 2, 2, 511, 512, 7, 46, 2, 2, 512, 126, 3, 2, 2, 2, 513, 514, 7, 60, 2, 2, 514, 128, 3, 2, 2, 2, 515, 516, 7, 49, 2, 2, 516, 130, 3, 2, 2, 2, 517, 518, 7, 47, 2, 2, 518, 132, 3, 2, 2, 2, 519, 520, 7, 42, 2, 2, 520, 134, 3, 2, 2, 2, 521, 522, 7, 43, 2, 2, 522, 136, 3, 2, 2, 2, 523, 525, 9, 2, 2, 2, 524, 523, 3, 2, 2, 2, 525, 526, 3, 2, 2, 2, 526, 524, 3, 2, 2, 2, 526, 527, 3, 2, 2, 2, 527, 528, 3, 2, 2, 2, 528, 529, 9, 3, 2, 2, 529, 138, 3, 2, 2, 2, 530, 532, 9, 2, 2, 2, 531, 530, 3, 2, 2, 2, 532, 533, 3, 2, 2, 2, 533, 531, 3, 2, 2, 2, 533, 534, 3, 2, 2, 2, 534, 140, 3, 2, 2, 2, 535, 539, 9, 4, 2, 2, 536, 538, 9, 5, 2, 2, 537, 536, 3, 2, 2, 2, 538, 541, 3, 2, 2, 2, 539, 537, 3, 2, 2, 2, 539, 540, 3, 2, 2, 2, 540, 544, 3, 2, 2, 2, 541, 539, 3, 2, 2, 2, 542, 544, 7, 44, 2, 2, 543, 535, 3, 2, 2, 2, 543, 542, 3, 2, 2, 2, 544, 142, 3, 2, 2, 2, 545, 551, 7, 36, 2, 2, 546, 550, 10, 6, 2, 2, 547, 548, 7, 94, 2, 2, 548, 550, 7, 36, 2, 2, 549, 546, 3, 2, 2, 2, 549, 547, 3, 2, 2, 2, 550, 553, 3, 2, 2, 2, 551, 549, 3, 2, 2, 2, 551, 552, 3, 2, 2, 2, 552, 554, 3, 2, 2, 2, 553, 551, 3, 2, 2, 2, 554, 555, 7, 36, 2, 2, 555, 144, 3, 2, 2, 2, 556, 557, 7, 47, 2, 2, 557, 558, 7, 47, 2, 2, 558, 562, 3, 2, 2, 2, 559, 561, 10, 7, 2, 2, 560, 559, 3, 2, 2, 2, 561, 564, 3, 2, 2, 2, 562, 560, 3, 2, 2, 2, 562, 563, 3, 2, 2, 2, 563, 565, 3, 2, 2, 2, 564, 562, 3, 2, 2, 2, 565, 566, 8, 73, 2, 2, 566, 146, 3, 2, 2, 2, 567, 569, 9, 8, 2, 2, 568, 567, 3, 2, 2, 2, 569, 570, 3, 2, 2, 2, 570, 568, 3, 2, 2, 2, 570, 571, 3, 2, 2, 2, 571, 572, 3, 2, 2, 2, 572, 573, 8, 74, 2, 2, 573, 148, 3, 2, 2, 2, 574, 575, 6, 75, 2, 2, 575, 576, 11, 2, 2, 2, 576, 577, 3, 2, 2, 2, 577, 578, 8, 75, 2, 2, 578, 150, 3, 2, 2, 2, 579, 580, 9, 9, 2, 2, 580, 152, 3, 2, 2, 2, 581, 582, 9, 10, 2, 2, 582, 154, 3, 2, 2, 2, 583, 584, 9, 11, 2, 2, 584, 156, 3, 2, 2, 2, 585, 586, 9, 12, 2, 2, 586, 158, 3, 2, 2, 2, 587, 588, 9, 13, 2, 2, 588, 160, 3, 2, 2, 2, 589, 590, 9, 14, 2, 2, 590, 162, 3, 2, 2, 2, 591, 592, 9, 3, 2, 2, 592, 164, 3, 2, 2, 2, 593, 594, 9, 15, 2, 2, 594, 166, 3, 2, 2, 2, 595, 596, 9, 16, 2, 2, 596, 168, 3, 2, 2, 2, 597, 598, 9, 17, 2, 2, 598, 170, 3, 2, 2, 2, 599, 600, 9, 18, 2, 2, 600, 172, 3, 2, 2, 2, 601, 602, 9, 19, 2, 2, 602, 174, 3, 2, 2, 2, 603, 604, 9, 20, 2, 2, 604, 176, 3, 2, 2, 2, 605, 606, 9, 21, 2, 2, 606, 178, 3, 2, 2, 2, 607, 608, 9, 22, 2, 2, 608, 180, 3, 2, 2, 2, 609, 610, 9, 23, 2, 2, 610, 182, 3, 2, 2, 2, 611, 612, 9, 24, 2, 2, 612, 184, 3, 2, 2, 2, 613, 614, 9, 25, 2, 2, 614, 186, 3, 2, 2, 2, 615, 616, 9, 26, 2, 2, 616, 188, 3, 2, 2, 2, 617, 618, 9, 27, 2, 2, 618, 190, 3, 2, 2, 2, 619, 620, 9, 28, 2, 2, 620, 192, 3, 2, 2, 2, 621, 622, 9, 29, 2, 2, 622, 194, 3, 2, 2, 2, 623, 624, 9, 30, 2, 2, 624, 196, 3, 2, 2, 2, 625, 626, 9, 31, 2, 2, 626, 198, 3, 2, 2, 2, 627, 628, 9, 32, 2, 2, 628, 200, 3, 2, 2, 2, 629, 630, 9, 33, 2, 2, 630, 202, 3, 2, 2, 2, 13, 2, 468, 476, 526, 533, 539, 543, 549, 551, 562, 570, 3, 2, 3, 2] \ No newline at end of file +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 84, 688, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 526, 10, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 5, 64, 534, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 77, 6, 77, 582, 10, 77, 13, 77, 14, 77, 583, 3, 77, 3, 77, 3, 78, 6, 78, 589, 10, 78, 13, 78, 14, 78, 590, 3, 79, 3, 79, 7, 79, 595, 10, 79, 12, 79, 14, 79, 598, 11, 79, 3, 79, 5, 79, 601, 10, 79, 3, 80, 3, 80, 3, 80, 3, 80, 7, 80, 607, 10, 80, 12, 80, 14, 80, 610, 11, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 7, 81, 618, 10, 81, 12, 81, 14, 81, 621, 11, 81, 3, 81, 3, 81, 3, 82, 6, 82, 626, 10, 82, 13, 82, 14, 82, 627, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 85, 3, 85, 3, 86, 3, 86, 3, 87, 3, 87, 3, 88, 3, 88, 3, 89, 3, 89, 3, 90, 3, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 93, 3, 93, 3, 94, 3, 94, 3, 95, 3, 95, 3, 96, 3, 96, 3, 97, 3, 97, 3, 98, 3, 98, 3, 99, 3, 99, 3, 100, 3, 100, 3, 101, 3, 101, 3, 102, 3, 102, 3, 103, 3, 103, 3, 104, 3, 104, 3, 105, 3, 105, 3, 106, 3, 106, 3, 107, 3, 107, 3, 108, 3, 108, 3, 109, 3, 109, 2, 2, 2, 110, 3, 2, 3, 5, 2, 4, 7, 2, 5, 9, 2, 6, 11, 2, 7, 13, 2, 8, 15, 2, 9, 17, 2, 10, 19, 2, 11, 21, 2, 12, 23, 2, 13, 25, 2, 14, 27, 2, 15, 29, 2, 16, 31, 2, 17, 33, 2, 18, 35, 2, 19, 37, 2, 20, 39, 2, 21, 41, 2, 22, 43, 2, 23, 45, 2, 24, 47, 2, 25, 49, 2, 26, 51, 2, 27, 53, 2, 28, 55, 2, 29, 57, 2, 30, 59, 2, 31, 61, 2, 32, 63, 2, 33, 65, 2, 34, 67, 2, 35, 69, 2, 36, 71, 2, 37, 73, 2, 38, 75, 2, 39, 77, 2, 40, 79, 2, 41, 81, 2, 42, 83, 2, 43, 85, 2, 44, 87, 2, 45, 89, 2, 46, 91, 2, 47, 93, 2, 48, 95, 2, 49, 97, 2, 50, 99, 2, 51, 101, 2, 52, 103, 2, 53, 105, 2, 54, 107, 2, 55, 109, 2, 56, 111, 2, 57, 113, 2, 58, 115, 2, 59, 117, 2, 60, 119, 2, 61, 121, 2, 62, 123, 2, 63, 125, 2, 64, 127, 2, 65, 129, 2, 66, 131, 2, 67, 133, 2, 68, 135, 2, 69, 137, 2, 70, 139, 2, 71, 141, 2, 72, 143, 2, 73, 145, 2, 74, 147, 2, 75, 149, 2, 76, 151, 2, 77, 153, 2, 78, 155, 2, 79, 157, 2, 80, 159, 2, 81, 161, 2, 82, 163, 2, 83, 165, 2, 84, 167, 2, 2, 169, 2, 2, 171, 2, 2, 173, 2, 2, 175, 2, 2, 177, 2, 2, 179, 2, 2, 181, 2, 2, 183, 2, 2, 185, 2, 2, 187, 2, 2, 189, 2, 2, 191, 2, 2, 193, 2, 2, 195, 2, 2, 197, 2, 2, 199, 2, 2, 201, 2, 2, 203, 2, 2, 205, 2, 2, 207, 2, 2, 209, 2, 2, 211, 2, 2, 213, 2, 2, 215, 2, 2, 217, 2, 2, 3, 2, 34, 3, 2, 50, 59, 4, 2, 73, 73, 105, 105, 6, 2, 44, 44, 67, 92, 97, 97, 99, 124, 7, 2, 44, 44, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 36, 36, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 71, 71, 103, 103, 4, 2, 72, 72, 104, 104, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 671, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 3, 219, 3, 2, 2, 2, 5, 222, 3, 2, 2, 2, 7, 227, 3, 2, 2, 2, 9, 232, 3, 2, 2, 2, 11, 236, 3, 2, 2, 2, 13, 244, 3, 2, 2, 2, 15, 249, 3, 2, 2, 2, 17, 253, 3, 2, 2, 2, 19, 258, 3, 2, 2, 2, 21, 263, 3, 2, 2, 2, 23, 269, 3, 2, 2, 2, 25, 273, 3, 2, 2, 2, 27, 277, 3, 2, 2, 2, 29, 280, 3, 2, 2, 2, 31, 283, 3, 2, 2, 2, 33, 285, 3, 2, 2, 2, 35, 288, 3, 2, 2, 2, 37, 290, 3, 2, 2, 2, 39, 293, 3, 2, 2, 2, 41, 295, 3, 2, 2, 2, 43, 298, 3, 2, 2, 2, 45, 301, 3, 2, 2, 2, 47, 304, 3, 2, 2, 2, 49, 307, 3, 2, 2, 2, 51, 312, 3, 2, 2, 2, 53, 315, 3, 2, 2, 2, 55, 321, 3, 2, 2, 2, 57, 328, 3, 2, 2, 2, 59, 334, 3, 2, 2, 2, 61, 340, 3, 2, 2, 2, 63, 345, 3, 2, 2, 2, 65, 352, 3, 2, 2, 2, 67, 357, 3, 2, 2, 2, 69, 364, 3, 2, 2, 2, 71, 371, 3, 2, 2, 2, 73, 377, 3, 2, 2, 2, 75, 380, 3, 2, 2, 2, 77, 388, 3, 2, 2, 2, 79, 393, 3, 2, 2, 2, 81, 397, 3, 2, 2, 2, 83, 399, 3, 2, 2, 2, 85, 405, 3, 2, 2, 2, 87, 411, 3, 2, 2, 2, 89, 414, 3, 2, 2, 2, 91, 420, 3, 2, 2, 2, 93, 426, 3, 2, 2, 2, 95, 430, 3, 2, 2, 2, 97, 437, 3, 2, 2, 2, 99, 443, 3, 2, 2, 2, 101, 448, 3, 2, 2, 2, 103, 454, 3, 2, 2, 2, 105, 459, 3, 2, 2, 2, 107, 464, 3, 2, 2, 2, 109, 469, 3, 2, 2, 2, 111, 475, 3, 2, 2, 2, 113, 481, 3, 2, 2, 2, 115, 486, 3, 2, 2, 2, 117, 491, 3, 2, 2, 2, 119, 497, 3, 2, 2, 2, 121, 502, 3, 2, 2, 2, 123, 510, 3, 2, 2, 2, 125, 525, 3, 2, 2, 2, 127, 533, 3, 2, 2, 2, 129, 535, 3, 2, 2, 2, 131, 544, 3, 2, 2, 2, 133, 550, 3, 2, 2, 2, 135, 553, 3, 2, 2, 2, 137, 557, 3, 2, 2, 2, 139, 562, 3, 2, 2, 2, 141, 568, 3, 2, 2, 2, 143, 570, 3, 2, 2, 2, 145, 572, 3, 2, 2, 2, 147, 574, 3, 2, 2, 2, 149, 576, 3, 2, 2, 2, 151, 578, 3, 2, 2, 2, 153, 581, 3, 2, 2, 2, 155, 588, 3, 2, 2, 2, 157, 600, 3, 2, 2, 2, 159, 602, 3, 2, 2, 2, 161, 613, 3, 2, 2, 2, 163, 625, 3, 2, 2, 2, 165, 631, 3, 2, 2, 2, 167, 636, 3, 2, 2, 2, 169, 638, 3, 2, 2, 2, 171, 640, 3, 2, 2, 2, 173, 642, 3, 2, 2, 2, 175, 644, 3, 2, 2, 2, 177, 646, 3, 2, 2, 2, 179, 648, 3, 2, 2, 2, 181, 650, 3, 2, 2, 2, 183, 652, 3, 2, 2, 2, 185, 654, 3, 2, 2, 2, 187, 656, 3, 2, 2, 2, 189, 658, 3, 2, 2, 2, 191, 660, 3, 2, 2, 2, 193, 662, 3, 2, 2, 2, 195, 664, 3, 2, 2, 2, 197, 666, 3, 2, 2, 2, 199, 668, 3, 2, 2, 2, 201, 670, 3, 2, 2, 2, 203, 672, 3, 2, 2, 2, 205, 674, 3, 2, 2, 2, 207, 676, 3, 2, 2, 2, 209, 678, 3, 2, 2, 2, 211, 680, 3, 2, 2, 2, 213, 682, 3, 2, 2, 2, 215, 684, 3, 2, 2, 2, 217, 686, 3, 2, 2, 2, 219, 220, 5, 183, 92, 2, 220, 221, 5, 177, 89, 2, 221, 4, 3, 2, 2, 2, 222, 223, 5, 205, 103, 2, 223, 224, 5, 181, 91, 2, 224, 225, 5, 175, 88, 2, 225, 226, 5, 193, 97, 2, 226, 6, 3, 2, 2, 2, 227, 228, 5, 175, 88, 2, 228, 229, 5, 189, 95, 2, 229, 230, 5, 203, 102, 2, 230, 231, 5, 175, 88, 2, 231, 8, 3, 2, 2, 2, 232, 233, 5, 181, 91, 2, 233, 234, 5, 167, 84, 2, 234, 235, 5, 203, 102, 2, 235, 10, 3, 2, 2, 2, 236, 237, 5, 195, 98, 2, 237, 238, 5, 209, 105, 2, 238, 239, 5, 175, 88, 2, 239, 240, 5, 201, 101, 2, 240, 241, 5, 167, 84, 2, 241, 242, 5, 189, 95, 2, 242, 243, 5, 189, 95, 2, 243, 12, 3, 2, 2, 2, 244, 245, 5, 203, 102, 2, 245, 246, 5, 195, 98, 2, 246, 247, 5, 191, 96, 2, 247, 248, 5, 175, 88, 2, 248, 14, 3, 2, 2, 2, 249, 250, 5, 195, 98, 2, 250, 251, 5, 193, 97, 2, 251, 252, 5, 175, 88, 2, 252, 16, 3, 2, 2, 2, 253, 254, 5, 189, 95, 2, 254, 255, 5, 195, 98, 2, 255, 256, 5, 193, 97, 2, 256, 257, 5, 175, 88, 2, 257, 18, 3, 2, 2, 2, 258, 259, 5, 205, 103, 2, 259, 260, 5, 201, 101, 2, 260, 261, 5, 207, 104, 2, 261, 262, 5, 175, 88, 2, 262, 20, 3, 2, 2, 2, 263, 264, 5, 177, 89, 2, 264, 265, 5, 167, 84, 2, 265, 266, 5, 189, 95, 2, 266, 267, 5, 203, 102, 2, 267, 268, 5, 175, 88, 2, 268, 22, 3, 2, 2, 2, 269, 270, 5, 193, 97, 2, 270, 271, 5, 195, 98, 2, 271, 272, 5, 205, 103, 2, 272, 24, 3, 2, 2, 2, 273, 274, 5, 167, 84, 2, 274, 275, 5, 193, 97, 2, 275, 276, 5, 173, 87, 2, 276, 26, 3, 2, 2, 2, 277, 278, 5, 195, 98, 2, 278, 279, 5, 201, 101, 2, 279, 28, 3, 2, 2, 2, 280, 281, 5, 179, 90, 2, 281, 282, 5, 205, 103, 2, 282, 30, 3, 2, 2, 2, 283, 284, 7, 64, 2, 2, 284, 32, 3, 2, 2, 2, 285, 286, 5, 189, 95, 2, 286, 287, 5, 205, 103, 2, 287, 34, 3, 2, 2, 2, 288, 289, 7, 62, 2, 2, 289, 36, 3, 2, 2, 2, 290, 291, 5, 175, 88, 2, 291, 292, 5, 199, 100, 2, 292, 38, 3, 2, 2, 2, 293, 294, 7, 63, 2, 2, 294, 40, 3, 2, 2, 2, 295, 296, 5, 189, 95, 2, 296, 297, 5, 175, 88, 2, 297, 42, 3, 2, 2, 2, 298, 299, 7, 62, 2, 2, 299, 300, 7, 63, 2, 2, 300, 44, 3, 2, 2, 2, 301, 302, 5, 179, 90, 2, 302, 303, 5, 175, 88, 2, 303, 46, 3, 2, 2, 2, 304, 305, 7, 64, 2, 2, 305, 306, 7, 63, 2, 2, 306, 48, 3, 2, 2, 2, 307, 308, 5, 177, 89, 2, 308, 309, 5, 201, 101, 2, 309, 310, 5, 195, 98, 2, 310, 311, 5, 191, 96, 2, 311, 50, 3, 2, 2, 2, 312, 313, 5, 205, 103, 2, 313, 314, 5, 195, 98, 2, 314, 52, 3, 2, 2, 2, 315, 316, 5, 183, 92, 2, 316, 317, 5, 193, 97, 2, 317, 318, 5, 197, 99, 2, 318, 319, 5, 207, 104, 2, 319, 320, 5, 205, 103, 2, 320, 54, 3, 2, 2, 2, 321, 322, 5, 195, 98, 2, 322, 323, 5, 207, 104, 2, 323, 324, 5, 205, 103, 2, 324, 325, 5, 197, 99, 2, 325, 326, 5, 207, 104, 2, 326, 327, 5, 205, 103, 2, 327, 56, 3, 2, 2, 2, 328, 329, 5, 211, 106, 2, 329, 330, 5, 181, 91, 2, 330, 331, 5, 175, 88, 2, 331, 332, 5, 201, 101, 2, 332, 333, 5, 175, 88, 2, 333, 58, 3, 2, 2, 2, 334, 335, 5, 203, 102, 2, 335, 336, 5, 189, 95, 2, 336, 337, 5, 195, 98, 2, 337, 338, 5, 205, 103, 2, 338, 339, 5, 203, 102, 2, 339, 60, 3, 2, 2, 2, 340, 341, 5, 203, 102, 2, 341, 342, 5, 189, 95, 2, 342, 343, 5, 195, 98, 2, 343, 344, 5, 205, 103, 2, 344, 62, 3, 2, 2, 2, 345, 346, 5, 201, 101, 2, 346, 347, 5, 175, 88, 2, 347, 348, 5, 205, 103, 2, 348, 349, 5, 167, 84, 2, 349, 350, 5, 183, 92, 2, 350, 351, 5, 193, 97, 2, 351, 64, 3, 2, 2, 2, 352, 353, 5, 175, 88, 2, 353, 354, 5, 167, 84, 2, 354, 355, 5, 171, 86, 2, 355, 356, 5, 181, 91, 2, 356, 66, 3, 2, 2, 2, 357, 358, 5, 175, 88, 2, 358, 359, 5, 213, 107, 2, 359, 360, 5, 171, 86, 2, 360, 361, 5, 175, 88, 2, 361, 362, 5, 197, 99, 2, 362, 363, 5, 205, 103, 2, 363, 68, 3, 2, 2, 2, 364, 365, 5, 177, 89, 2, 365, 366, 5, 195, 98, 2, 366, 367, 5, 201, 101, 2, 367, 368, 5, 179, 90, 2, 368, 369, 5, 175, 88, 2, 369, 370, 5, 205, 103, 2, 370, 70, 3, 2, 2, 2, 371, 372, 5, 175, 88, 2, 372, 373, 5, 191, 96, 2, 373, 374, 5, 197, 99, 2, 374, 375, 5, 205, 103, 2, 375, 376, 5, 215, 108, 2, 376, 72, 3, 2, 2, 2, 377, 378, 5, 183, 92, 2, 378, 379, 5, 193, 97, 2, 379, 74, 3, 2, 2, 2, 380, 381, 5, 211, 106, 2, 381, 382, 5, 183, 92, 2, 382, 383, 5, 205, 103, 2, 383, 384, 5, 181, 91, 2, 384, 385, 5, 195, 98, 2, 385, 386, 5, 207, 104, 2, 386, 387, 5, 205, 103, 2, 387, 76, 3, 2, 2, 2, 388, 389, 5, 211, 106, 2, 389, 390, 5, 183, 92, 2, 390, 391, 5, 205, 103, 2, 391, 392, 5, 181, 91, 2, 392, 78, 3, 2, 2, 2, 393, 394, 5, 205, 103, 2, 394, 395, 5, 167, 84, 2, 395, 396, 5, 179, 90, 2, 396, 80, 3, 2, 2, 2, 397, 398, 7, 37, 2, 2, 398, 82, 3, 2, 2, 2, 399, 400, 5, 201, 101, 2, 400, 401, 5, 195, 98, 2, 401, 402, 5, 207, 104, 2, 402, 403, 5, 193, 97, 2, 403, 404, 5, 173, 87, 2, 404, 84, 3, 2, 2, 2, 405, 406, 5, 201, 101, 2, 406, 407, 5, 195, 98, 2, 407, 408, 5, 169, 85, 2, 408, 409, 5, 183, 92, 2, 409, 410, 5, 193, 97, 2, 410, 86, 3, 2, 2, 2, 411, 412, 5, 169, 85, 2, 412, 413, 5, 215, 108, 2, 413, 88, 3, 2, 2, 2, 414, 415, 5, 189, 95, 2, 415, 416, 5, 167, 84, 2, 416, 417, 5, 169, 85, 2, 417, 418, 5, 175, 88, 2, 418, 419, 5, 189, 95, 2, 419, 90, 3, 2, 2, 2, 420, 421, 5, 169, 85, 2, 421, 422, 5, 189, 95, 2, 422, 423, 5, 195, 98, 2, 423, 424, 5, 171, 86, 2, 424, 425, 5, 187, 94, 2, 425, 92, 3, 2, 2, 2, 426, 427, 5, 205, 103, 2, 427, 428, 5, 195, 98, 2, 428, 429, 5, 197, 99, 2, 429, 94, 3, 2, 2, 2, 430, 431, 5, 169, 85, 2, 431, 432, 5, 195, 98, 2, 432, 433, 5, 205, 103, 2, 433, 434, 5, 205, 103, 2, 434, 435, 5, 195, 98, 2, 435, 436, 5, 191, 96, 2, 436, 96, 3, 2, 2, 2, 437, 438, 5, 193, 97, 2, 438, 439, 5, 195, 98, 2, 439, 440, 5, 201, 101, 2, 440, 441, 5, 205, 103, 2, 441, 442, 5, 181, 91, 2, 442, 98, 3, 2, 2, 2, 443, 444, 5, 175, 88, 2, 444, 445, 5, 167, 84, 2, 445, 446, 5, 203, 102, 2, 446, 447, 5, 205, 103, 2, 447, 100, 3, 2, 2, 2, 448, 449, 5, 203, 102, 2, 449, 450, 5, 195, 98, 2, 450, 451, 5, 207, 104, 2, 451, 452, 5, 205, 103, 2, 452, 453, 5, 181, 91, 2, 453, 102, 3, 2, 2, 2, 454, 455, 5, 211, 106, 2, 455, 456, 5, 175, 88, 2, 456, 457, 5, 203, 102, 2, 457, 458, 5, 205, 103, 2, 458, 104, 3, 2, 2, 2, 459, 460, 5, 203, 102, 2, 460, 461, 5, 183, 92, 2, 461, 462, 5, 173, 87, 2, 462, 463, 5, 175, 88, 2, 463, 106, 3, 2, 2, 2, 464, 465, 5, 189, 95, 2, 465, 466, 5, 175, 88, 2, 466, 467, 5, 177, 89, 2, 467, 468, 5, 205, 103, 2, 468, 108, 3, 2, 2, 2, 469, 470, 5, 201, 101, 2, 470, 471, 5, 183, 92, 2, 471, 472, 5, 179, 90, 2, 472, 473, 5, 181, 91, 2, 473, 474, 5, 205, 103, 2, 474, 110, 3, 2, 2, 2, 475, 476, 5, 177, 89, 2, 476, 477, 5, 201, 101, 2, 477, 478, 5, 195, 98, 2, 478, 479, 5, 193, 97, 2, 479, 480, 5, 205, 103, 2, 480, 112, 3, 2, 2, 2, 481, 482, 5, 169, 85, 2, 482, 483, 5, 167, 84, 2, 483, 484, 5, 171, 86, 2, 484, 485, 5, 187, 94, 2, 485, 114, 3, 2, 2, 2, 486, 487, 5, 193, 97, 2, 487, 488, 5, 207, 104, 2, 488, 489, 5, 189, 95, 2, 489, 490, 5, 189, 95, 2, 490, 116, 3, 2, 2, 2, 491, 492, 5, 205, 103, 2, 492, 493, 5, 183, 92, 2, 493, 494, 5, 171, 86, 2, 494, 495, 5, 187, 94, 2, 495, 496, 5, 203, 102, 2, 496, 118, 3, 2, 2, 2, 497, 498, 5, 205, 103, 2, 498, 499, 5, 183, 92, 2, 499, 500, 5, 171, 86, 2, 500, 501, 5, 187, 94, 2, 501, 120, 3, 2, 2, 2, 502, 503, 5, 203, 102, 2, 503, 504, 5, 175, 88, 2, 504, 505, 5, 171, 86, 2, 505, 506, 5, 195, 98, 2, 506, 507, 5, 193, 97, 2, 507, 508, 5, 173, 87, 2, 508, 509, 5, 203, 102, 2, 509, 122, 3, 2, 2, 2, 510, 511, 5, 203, 102, 2, 511, 512, 5, 175, 88, 2, 512, 513, 5, 171, 86, 2, 513, 514, 5, 195, 98, 2, 514, 515, 5, 193, 97, 2, 515, 516, 5, 173, 87, 2, 516, 124, 3, 2, 2, 2, 517, 518, 5, 179, 90, 2, 518, 519, 5, 189, 95, 2, 519, 520, 5, 195, 98, 2, 520, 521, 5, 169, 85, 2, 521, 522, 5, 167, 84, 2, 522, 523, 5, 189, 95, 2, 523, 526, 3, 2, 2, 2, 524, 526, 5, 179, 90, 2, 525, 517, 3, 2, 2, 2, 525, 524, 3, 2, 2, 2, 526, 126, 3, 2, 2, 2, 527, 534, 7, 45, 2, 2, 528, 529, 5, 197, 99, 2, 529, 530, 5, 189, 95, 2, 530, 531, 5, 207, 104, 2, 531, 532, 5, 203, 102, 2, 532, 534, 3, 2, 2, 2, 533, 527, 3, 2, 2, 2, 533, 528, 3, 2, 2, 2, 534, 128, 3, 2, 2, 2, 535, 536, 5, 201, 101, 2, 536, 537, 5, 175, 88, 2, 537, 538, 5, 173, 87, 2, 538, 539, 5, 203, 102, 2, 539, 540, 5, 205, 103, 2, 540, 541, 5, 195, 98, 2, 541, 542, 5, 193, 97, 2, 542, 543, 5, 175, 88, 2, 543, 130, 3, 2, 2, 2, 544, 545, 5, 197, 99, 2, 545, 546, 5, 207, 104, 2, 546, 547, 5, 189, 95, 2, 547, 548, 5, 203, 102, 2, 548, 549, 5, 175, 88, 2, 549, 132, 3, 2, 2, 2, 550, 551, 5, 173, 87, 2, 551, 552, 5, 195, 98, 2, 552, 134, 3, 2, 2, 2, 553, 554, 5, 175, 88, 2, 554, 555, 5, 193, 97, 2, 555, 556, 5, 173, 87, 2, 556, 136, 3, 2, 2, 2, 557, 558, 5, 193, 97, 2, 558, 559, 5, 167, 84, 2, 559, 560, 5, 191, 96, 2, 560, 561, 5, 175, 88, 2, 561, 138, 3, 2, 2, 2, 562, 563, 5, 175, 88, 2, 563, 564, 5, 209, 105, 2, 564, 565, 5, 175, 88, 2, 565, 566, 5, 201, 101, 2, 566, 567, 5, 215, 108, 2, 567, 140, 3, 2, 2, 2, 568, 569, 7, 46, 2, 2, 569, 142, 3, 2, 2, 2, 570, 571, 7, 60, 2, 2, 571, 144, 3, 2, 2, 2, 572, 573, 7, 49, 2, 2, 573, 146, 3, 2, 2, 2, 574, 575, 7, 47, 2, 2, 575, 148, 3, 2, 2, 2, 576, 577, 7, 42, 2, 2, 577, 150, 3, 2, 2, 2, 578, 579, 7, 43, 2, 2, 579, 152, 3, 2, 2, 2, 580, 582, 9, 2, 2, 2, 581, 580, 3, 2, 2, 2, 582, 583, 3, 2, 2, 2, 583, 581, 3, 2, 2, 2, 583, 584, 3, 2, 2, 2, 584, 585, 3, 2, 2, 2, 585, 586, 9, 3, 2, 2, 586, 154, 3, 2, 2, 2, 587, 589, 9, 2, 2, 2, 588, 587, 3, 2, 2, 2, 589, 590, 3, 2, 2, 2, 590, 588, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 156, 3, 2, 2, 2, 592, 596, 9, 4, 2, 2, 593, 595, 9, 5, 2, 2, 594, 593, 3, 2, 2, 2, 595, 598, 3, 2, 2, 2, 596, 594, 3, 2, 2, 2, 596, 597, 3, 2, 2, 2, 597, 601, 3, 2, 2, 2, 598, 596, 3, 2, 2, 2, 599, 601, 7, 44, 2, 2, 600, 592, 3, 2, 2, 2, 600, 599, 3, 2, 2, 2, 601, 158, 3, 2, 2, 2, 602, 608, 7, 36, 2, 2, 603, 607, 10, 6, 2, 2, 604, 605, 7, 94, 2, 2, 605, 607, 7, 36, 2, 2, 606, 603, 3, 2, 2, 2, 606, 604, 3, 2, 2, 2, 607, 610, 3, 2, 2, 2, 608, 606, 3, 2, 2, 2, 608, 609, 3, 2, 2, 2, 609, 611, 3, 2, 2, 2, 610, 608, 3, 2, 2, 2, 611, 612, 7, 36, 2, 2, 612, 160, 3, 2, 2, 2, 613, 614, 7, 47, 2, 2, 614, 615, 7, 47, 2, 2, 615, 619, 3, 2, 2, 2, 616, 618, 10, 7, 2, 2, 617, 616, 3, 2, 2, 2, 618, 621, 3, 2, 2, 2, 619, 617, 3, 2, 2, 2, 619, 620, 3, 2, 2, 2, 620, 622, 3, 2, 2, 2, 621, 619, 3, 2, 2, 2, 622, 623, 8, 81, 2, 2, 623, 162, 3, 2, 2, 2, 624, 626, 9, 8, 2, 2, 625, 624, 3, 2, 2, 2, 626, 627, 3, 2, 2, 2, 627, 625, 3, 2, 2, 2, 627, 628, 3, 2, 2, 2, 628, 629, 3, 2, 2, 2, 629, 630, 8, 82, 2, 2, 630, 164, 3, 2, 2, 2, 631, 632, 6, 83, 2, 2, 632, 633, 11, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 635, 8, 83, 2, 2, 635, 166, 3, 2, 2, 2, 636, 637, 9, 9, 2, 2, 637, 168, 3, 2, 2, 2, 638, 639, 9, 10, 2, 2, 639, 170, 3, 2, 2, 2, 640, 641, 9, 11, 2, 2, 641, 172, 3, 2, 2, 2, 642, 643, 9, 12, 2, 2, 643, 174, 3, 2, 2, 2, 644, 645, 9, 13, 2, 2, 645, 176, 3, 2, 2, 2, 646, 647, 9, 14, 2, 2, 647, 178, 3, 2, 2, 2, 648, 649, 9, 3, 2, 2, 649, 180, 3, 2, 2, 2, 650, 651, 9, 15, 2, 2, 651, 182, 3, 2, 2, 2, 652, 653, 9, 16, 2, 2, 653, 184, 3, 2, 2, 2, 654, 655, 9, 17, 2, 2, 655, 186, 3, 2, 2, 2, 656, 657, 9, 18, 2, 2, 657, 188, 3, 2, 2, 2, 658, 659, 9, 19, 2, 2, 659, 190, 3, 2, 2, 2, 660, 661, 9, 20, 2, 2, 661, 192, 3, 2, 2, 2, 662, 663, 9, 21, 2, 2, 663, 194, 3, 2, 2, 2, 664, 665, 9, 22, 2, 2, 665, 196, 3, 2, 2, 2, 666, 667, 9, 23, 2, 2, 667, 198, 3, 2, 2, 2, 668, 669, 9, 24, 2, 2, 669, 200, 3, 2, 2, 2, 670, 671, 9, 25, 2, 2, 671, 202, 3, 2, 2, 2, 672, 673, 9, 26, 2, 2, 673, 204, 3, 2, 2, 2, 674, 675, 9, 27, 2, 2, 675, 206, 3, 2, 2, 2, 676, 677, 9, 28, 2, 2, 677, 208, 3, 2, 2, 2, 678, 679, 9, 29, 2, 2, 679, 210, 3, 2, 2, 2, 680, 681, 9, 30, 2, 2, 681, 212, 3, 2, 2, 2, 682, 683, 9, 31, 2, 2, 683, 214, 3, 2, 2, 2, 684, 685, 9, 32, 2, 2, 685, 216, 3, 2, 2, 2, 686, 687, 9, 33, 2, 2, 687, 218, 3, 2, 2, 2, 13, 2, 525, 533, 583, 590, 596, 600, 606, 608, 619, 627, 3, 2, 3, 2] \ No newline at end of file diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.tokens b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.tokens index 1b06af7e3..3d0aaba4c 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.tokens +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.tokens @@ -27,60 +27,68 @@ INPUT=26 OUTPUT=27 WHERE=28 SLOTS=29 -RETAIN=30 -EACH=31 -EXCEPT=32 -FORGET=33 -WITHOUT=34 -WITH=35 -TAG=36 -HASHTAG=37 -ROUND=38 -ROBIN=39 -BY=40 -LABEL=41 -BLOCK=42 -TOP=43 -BOTTOM=44 -NORTH=45 -EAST=46 -SOUTH=47 -WEST=48 -SIDE=49 -TICKS=50 -TICK=51 -SECONDS=52 -SECOND=53 -GLOBAL=54 -PLUS=55 -REDSTONE=56 -PULSE=57 -DO=58 -END=59 -NAME=60 -EVERY=61 -COMMA=62 -COLON=63 -SLASH=64 -DASH=65 -LPAREN=66 -RPAREN=67 -NUMBER_WITH_G_SUFFIX=68 -NUMBER=69 -IDENTIFIER=70 -STRING=71 -LINE_COMMENT=72 -WS=73 -UNUSED=74 +SLOT=30 +RETAIN=31 +EACH=32 +EXCEPT=33 +FORGET=34 +EMPTY=35 +IN=36 +WITHOUT=37 +WITH=38 +TAG=39 +HASHTAG=40 +ROUND=41 +ROBIN=42 +BY=43 +LABEL=44 +BLOCK=45 +TOP=46 +BOTTOM=47 +NORTH=48 +EAST=49 +SOUTH=50 +WEST=51 +SIDE=52 +LEFT=53 +RIGHT=54 +FRONT=55 +BACK=56 +NULL=57 +TICKS=58 +TICK=59 +SECONDS=60 +SECOND=61 +GLOBAL=62 +PLUS=63 +REDSTONE=64 +PULSE=65 +DO=66 +END=67 +NAME=68 +EVERY=69 +COMMA=70 +COLON=71 +SLASH=72 +DASH=73 +LPAREN=74 +RPAREN=75 +NUMBER_WITH_G_SUFFIX=76 +NUMBER=77 +IDENTIFIER=78 +STRING=79 +LINE_COMMENT=80 +WS=81 +UNUSED=82 '>'=15 '<'=17 '='=19 '<='=21 '>='=23 -'#'=37 -','=62 -':'=63 -'/'=64 -'-'=65 -'('=66 -')'=67 +'#'=40 +','=70 +':'=71 +'/'=72 +'-'=73 +'('=74 +')'=75 diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.ts b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.ts index ff5bf59da..8db84db9c 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLLexer.ts @@ -45,51 +45,59 @@ export class SFMLLexer extends Lexer { public static readonly OUTPUT = 27; public static readonly WHERE = 28; public static readonly SLOTS = 29; - public static readonly RETAIN = 30; - public static readonly EACH = 31; - public static readonly EXCEPT = 32; - public static readonly FORGET = 33; - public static readonly WITHOUT = 34; - public static readonly WITH = 35; - public static readonly TAG = 36; - public static readonly HASHTAG = 37; - public static readonly ROUND = 38; - public static readonly ROBIN = 39; - public static readonly BY = 40; - public static readonly LABEL = 41; - public static readonly BLOCK = 42; - public static readonly TOP = 43; - public static readonly BOTTOM = 44; - public static readonly NORTH = 45; - public static readonly EAST = 46; - public static readonly SOUTH = 47; - public static readonly WEST = 48; - public static readonly SIDE = 49; - public static readonly TICKS = 50; - public static readonly TICK = 51; - public static readonly SECONDS = 52; - public static readonly SECOND = 53; - public static readonly GLOBAL = 54; - public static readonly PLUS = 55; - public static readonly REDSTONE = 56; - public static readonly PULSE = 57; - public static readonly DO = 58; - public static readonly END = 59; - public static readonly NAME = 60; - public static readonly EVERY = 61; - public static readonly COMMA = 62; - public static readonly COLON = 63; - public static readonly SLASH = 64; - public static readonly DASH = 65; - public static readonly LPAREN = 66; - public static readonly RPAREN = 67; - public static readonly NUMBER_WITH_G_SUFFIX = 68; - public static readonly NUMBER = 69; - public static readonly IDENTIFIER = 70; - public static readonly STRING = 71; - public static readonly LINE_COMMENT = 72; - public static readonly WS = 73; - public static readonly UNUSED = 74; + public static readonly SLOT = 30; + public static readonly RETAIN = 31; + public static readonly EACH = 32; + public static readonly EXCEPT = 33; + public static readonly FORGET = 34; + public static readonly EMPTY = 35; + public static readonly IN = 36; + public static readonly WITHOUT = 37; + public static readonly WITH = 38; + public static readonly TAG = 39; + public static readonly HASHTAG = 40; + public static readonly ROUND = 41; + public static readonly ROBIN = 42; + public static readonly BY = 43; + public static readonly LABEL = 44; + public static readonly BLOCK = 45; + public static readonly TOP = 46; + public static readonly BOTTOM = 47; + public static readonly NORTH = 48; + public static readonly EAST = 49; + public static readonly SOUTH = 50; + public static readonly WEST = 51; + public static readonly SIDE = 52; + public static readonly LEFT = 53; + public static readonly RIGHT = 54; + public static readonly FRONT = 55; + public static readonly BACK = 56; + public static readonly NULL = 57; + public static readonly TICKS = 58; + public static readonly TICK = 59; + public static readonly SECONDS = 60; + public static readonly SECOND = 61; + public static readonly GLOBAL = 62; + public static readonly PLUS = 63; + public static readonly REDSTONE = 64; + public static readonly PULSE = 65; + public static readonly DO = 66; + public static readonly END = 67; + public static readonly NAME = 68; + public static readonly EVERY = 69; + public static readonly COMMA = 70; + public static readonly COLON = 71; + public static readonly SLASH = 72; + public static readonly DASH = 73; + public static readonly LPAREN = 74; + public static readonly RPAREN = 75; + public static readonly NUMBER_WITH_G_SUFFIX = 76; + public static readonly NUMBER = 77; + public static readonly IDENTIFIER = 78; + public static readonly STRING = 79; + public static readonly LINE_COMMENT = 80; + public static readonly WS = 81; + public static readonly UNUSED = 82; // tslint:disable:no-trailing-whitespace public static readonly channelNames: string[] = [ @@ -105,9 +113,10 @@ export class SFMLLexer extends Lexer { "IF", "THEN", "ELSE", "HAS", "OVERALL", "SOME", "ONE", "LONE", "TRUE", "FALSE", "NOT", "AND", "OR", "GT", "GT_SYMBOL", "LT", "LT_SYMBOL", "EQ", "EQ_SYMBOL", "LE", "LE_SYMBOL", "GE", "GE_SYMBOL", "FROM", "TO", "INPUT", - "OUTPUT", "WHERE", "SLOTS", "RETAIN", "EACH", "EXCEPT", "FORGET", "WITHOUT", - "WITH", "TAG", "HASHTAG", "ROUND", "ROBIN", "BY", "LABEL", "BLOCK", "TOP", - "BOTTOM", "NORTH", "EAST", "SOUTH", "WEST", "SIDE", "TICKS", "TICK", "SECONDS", + "OUTPUT", "WHERE", "SLOTS", "SLOT", "RETAIN", "EACH", "EXCEPT", "FORGET", + "EMPTY", "IN", "WITHOUT", "WITH", "TAG", "HASHTAG", "ROUND", "ROBIN", + "BY", "LABEL", "BLOCK", "TOP", "BOTTOM", "NORTH", "EAST", "SOUTH", "WEST", + "SIDE", "LEFT", "RIGHT", "FRONT", "BACK", "NULL", "TICKS", "TICK", "SECONDS", "SECOND", "GLOBAL", "PLUS", "REDSTONE", "PULSE", "DO", "END", "NAME", "EVERY", "COMMA", "COLON", "SLASH", "DASH", "LPAREN", "RPAREN", "NUMBER_WITH_G_SUFFIX", "NUMBER", "IDENTIFIER", "STRING", "LINE_COMMENT", "WS", "UNUSED", "A", @@ -121,21 +130,23 @@ export class SFMLLexer extends Lexer { undefined, "'>'", undefined, "'<'", undefined, "'='", undefined, "'<='", undefined, "'>='", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, "'#'", undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, "'#'", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, "','", "':'", "'/'", - "'-'", "'('", "')'", + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, "','", + "':'", "'/'", "'-'", "'('", "')'", ]; - public static readonly _SYMBOLIC_NAMES: Array = [ + private static readonly _SYMBOLIC_NAMES: Array = [ undefined, "IF", "THEN", "ELSE", "HAS", "OVERALL", "SOME", "ONE", "LONE", "TRUE", "FALSE", "NOT", "AND", "OR", "GT", "GT_SYMBOL", "LT", "LT_SYMBOL", "EQ", "EQ_SYMBOL", "LE", "LE_SYMBOL", "GE", "GE_SYMBOL", "FROM", "TO", - "INPUT", "OUTPUT", "WHERE", "SLOTS", "RETAIN", "EACH", "EXCEPT", "FORGET", - "WITHOUT", "WITH", "TAG", "HASHTAG", "ROUND", "ROBIN", "BY", "LABEL", - "BLOCK", "TOP", "BOTTOM", "NORTH", "EAST", "SOUTH", "WEST", "SIDE", "TICKS", - "TICK", "SECONDS", "SECOND", "GLOBAL", "PLUS", "REDSTONE", "PULSE", "DO", - "END", "NAME", "EVERY", "COMMA", "COLON", "SLASH", "DASH", "LPAREN", "RPAREN", + "INPUT", "OUTPUT", "WHERE", "SLOTS", "SLOT", "RETAIN", "EACH", "EXCEPT", + "FORGET", "EMPTY", "IN", "WITHOUT", "WITH", "TAG", "HASHTAG", "ROUND", + "ROBIN", "BY", "LABEL", "BLOCK", "TOP", "BOTTOM", "NORTH", "EAST", "SOUTH", + "WEST", "SIDE", "LEFT", "RIGHT", "FRONT", "BACK", "NULL", "TICKS", "TICK", + "SECONDS", "SECOND", "GLOBAL", "PLUS", "REDSTONE", "PULSE", "DO", "END", + "NAME", "EVERY", "COMMA", "COLON", "SLASH", "DASH", "LPAREN", "RPAREN", "NUMBER_WITH_G_SUFFIX", "NUMBER", "IDENTIFIER", "STRING", "LINE_COMMENT", "WS", "UNUSED", ]; @@ -149,7 +160,7 @@ export class SFMLLexer extends Lexer { // tslint:enable:no-trailing-whitespace - public INCLUDE_UNUSED = false; // we want syntax highlighting to not break on unexpected tokens + public INCLUDE_UNUSED: boolean = false; // we want syntax highlighting to not break on unexpected tokens constructor(input: CharStream) { @@ -175,7 +186,7 @@ export class SFMLLexer extends Lexer { // @Override public sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { switch (ruleIndex) { - case 73: + case 81: return this.UNUSED_sempred(_localctx, predIndex); } return true; @@ -190,7 +201,7 @@ export class SFMLLexer extends Lexer { private static readonly _serializedATNSegments: number = 2; private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02L\u0277\b\x01" + + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02T\u02B0\b\x01" + "\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" + "\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" + "\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" + @@ -204,276 +215,302 @@ export class SFMLLexer extends Lexer { "F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04" + "O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04" + "X\tX\x04Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t" + - "`\x04a\ta\x04b\tb\x04c\tc\x04d\td\x04e\te\x03\x02\x03\x02\x03\x02\x03" + - "\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03\x04\x03\x04\x03\x04\x03" + - "\x04\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06\x03" + - "\x06\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03" + - "\b\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03" + - "\n\x03\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03" + - "\r\x03\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03" + - "\x10\x03\x10\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13\x03\x13\x03" + - "\x13\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03" + - "\x17\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19\x03" + - "\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03" + - "\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03" + - "\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1E\x03" + - "\x1E\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03" + - "\x1F\x03 \x03 \x03 \x03 \x03 \x03!\x03!\x03!\x03!\x03!\x03!\x03!\x03\"" + - "\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03#\x03#\x03#\x03#\x03#\x03#\x03" + - "#\x03#\x03$\x03$\x03$\x03$\x03$\x03%\x03%\x03%\x03%\x03&\x03&\x03\'\x03" + - "\'\x03\'\x03\'\x03\'\x03\'\x03(\x03(\x03(\x03(\x03(\x03(\x03)\x03)\x03" + - ")\x03*\x03*\x03*\x03*\x03*\x03*\x03+\x03+\x03+\x03+\x03+\x03+\x03,\x03" + - ",\x03,\x03,\x03-\x03-\x03-\x03-\x03-\x03-\x03-\x03.\x03.\x03.\x03.\x03" + - ".\x03.\x03/\x03/\x03/\x03/\x03/\x030\x030\x030\x030\x030\x030\x031\x03" + - "1\x031\x031\x031\x032\x032\x032\x032\x032\x033\x033\x033\x033\x033\x03" + - "3\x034\x034\x034\x034\x034\x035\x035\x035\x035\x035\x035\x035\x035\x03" + - "6\x036\x036\x036\x036\x036\x036\x037\x037\x037\x037\x037\x037\x037\x03" + - "7\x057\u01D5\n7\x038\x038\x038\x038\x038\x038\x058\u01DD\n8\x039\x039" + - "\x039\x039\x039\x039\x039\x039\x039\x03:\x03:\x03:\x03:\x03:\x03:\x03" + - ";\x03;\x03;\x03<\x03<\x03<\x03<\x03=\x03=\x03=\x03=\x03=\x03>\x03>\x03" + - ">\x03>\x03>\x03>\x03?\x03?\x03@\x03@\x03A\x03A\x03B\x03B\x03C\x03C\x03" + - "D\x03D\x03E\x06E\u020D\nE\rE\x0EE\u020E\x03E\x03E\x03F\x06F\u0214\nF\r" + - "F\x0EF\u0215\x03G\x03G\x07G\u021A\nG\fG\x0EG\u021D\vG\x03G\x05G\u0220" + - "\nG\x03H\x03H\x03H\x03H\x07H\u0226\nH\fH\x0EH\u0229\vH\x03H\x03H\x03I" + - "\x03I\x03I\x03I\x07I\u0231\nI\fI\x0EI\u0234\vI\x03I\x03I\x03J\x06J\u0239" + - "\nJ\rJ\x0EJ\u023A\x03J\x03J\x03K\x03K\x03K\x03K\x03K\x03L\x03L\x03M\x03" + - "M\x03N\x03N\x03O\x03O\x03P\x03P\x03Q\x03Q\x03R\x03R\x03S\x03S\x03T\x03" + - "T\x03U\x03U\x03V\x03V\x03W\x03W\x03X\x03X\x03Y\x03Y\x03Z\x03Z\x03[\x03" + - "[\x03\\\x03\\\x03]\x03]\x03^\x03^\x03_\x03_\x03`\x03`\x03a\x03a\x03b\x03" + - "b\x03c\x03c\x03d\x03d\x03e\x03e\x02\x02\x02f\x03\x02\x03\x05\x02\x04\x07" + - "\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15" + - "\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F\x02\x11!\x02" + - "\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02\x18/\x02\x191" + - "\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02\x1E;\x02\x1F=\x02 ?\x02!A\x02" + - "\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(O\x02)Q\x02*S\x02+U\x02,W\x02-" + - "Y\x02.[\x02/]\x020_\x021a\x022c\x023e\x024g\x025i\x026k\x027m\x028o\x02" + - "9q\x02:s\x02;u\x02{\x02?}\x02@\x7F\x02A\x81\x02B\x83\x02" + - "C\x85\x02D\x87\x02E\x89\x02F\x8B\x02G\x8D\x02H\x8F\x02I\x91\x02J\x93\x02" + - "K\x95\x02L\x97\x02\x02\x99\x02\x02\x9B\x02\x02\x9D\x02\x02\x9F\x02\x02" + - "\xA1\x02\x02\xA3\x02\x02\xA5\x02\x02\xA7\x02\x02\xA9\x02\x02\xAB\x02\x02" + - "\xAD\x02\x02\xAF\x02\x02\xB1\x02\x02\xB3\x02\x02\xB5\x02\x02\xB7\x02\x02" + - "\xB9\x02\x02\xBB\x02\x02\xBD\x02\x02\xBF\x02\x02\xC1\x02\x02\xC3\x02\x02" + - "\xC5\x02\x02\xC7\x02\x02\xC9\x02\x02\x03\x02\"\x03\x022;\x04\x02IIii\x06" + - "\x02,,C\\aac|\x07\x02,,2;C\\aac|\x03\x02$$\x04\x02\f\f\x0F\x0F\x05\x02" + - "\v\f\x0F\x0F\"\"\x04\x02CCcc\x04\x02DDdd\x04\x02EEee\x04\x02FFff\x04\x02" + - "GGgg\x04\x02HHhh\x04\x02JJjj\x04\x02KKkk\x04\x02LLll\x04\x02MMmm\x04\x02" + - "NNnn\x04\x02OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02RRrr\x04\x02SSss\x04\x02" + - "TTtt\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02XXxx\x04\x02YYyy\x04\x02" + - "ZZzz\x04\x02[[{{\x04\x02\\\\||\x02\u0266\x02\x03\x03\x02\x02\x02\x02\x05" + - "\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03" + - "\x02\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03" + - "\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03" + - "\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02\x02\x02\x1D\x03" + - "\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02\x02\x02#\x03\x02" + - "\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02" + - "\x02+\x03\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02\x02\x02\x021\x03" + - "\x02\x02\x02\x023\x03\x02\x02\x02\x025\x03\x02\x02\x02\x027\x03\x02\x02" + - "\x02\x029\x03\x02\x02\x02\x02;\x03\x02\x02\x02\x02=\x03\x02\x02\x02\x02" + - "?\x03\x02\x02\x02\x02A\x03\x02\x02\x02\x02C\x03\x02\x02\x02\x02E\x03\x02" + - "\x02\x02\x02G\x03\x02\x02\x02\x02I\x03\x02\x02\x02\x02K\x03\x02\x02\x02" + - "\x02M\x03\x02\x02\x02\x02O\x03\x02\x02\x02\x02Q\x03\x02\x02\x02\x02S\x03" + - "\x02\x02\x02\x02U\x03\x02\x02\x02\x02W\x03\x02\x02\x02\x02Y\x03\x02\x02" + - "\x02\x02[\x03\x02\x02\x02\x02]\x03\x02\x02\x02\x02_\x03\x02\x02\x02\x02" + - "a\x03\x02\x02\x02\x02c\x03\x02\x02\x02\x02e\x03\x02\x02\x02\x02g\x03\x02" + - "\x02\x02\x02i\x03\x02\x02\x02\x02k\x03\x02\x02\x02\x02m\x03\x02\x02\x02" + - "\x02o\x03\x02\x02\x02\x02q\x03\x02\x02\x02\x02s\x03\x02\x02\x02\x02u\x03" + - "\x02\x02\x02\x02w\x03\x02\x02\x02\x02y\x03\x02\x02\x02\x02{\x03\x02\x02" + - "\x02\x02}\x03\x02\x02\x02\x02\x7F\x03\x02\x02\x02\x02\x81\x03\x02\x02" + - "\x02\x02\x83\x03\x02\x02\x02\x02\x85\x03\x02\x02\x02\x02\x87\x03\x02\x02" + - "\x02\x02\x89\x03\x02\x02\x02\x02\x8B\x03\x02\x02\x02\x02\x8D\x03\x02\x02" + - "\x02\x02\x8F\x03\x02\x02\x02\x02\x91\x03\x02\x02\x02\x02\x93\x03\x02\x02" + - "\x02\x02\x95\x03\x02\x02\x02\x03\xCB\x03\x02\x02\x02\x05\xCE\x03\x02\x02" + - "\x02\x07\xD3\x03\x02\x02\x02\t\xD8\x03\x02\x02\x02\v\xDC\x03\x02\x02\x02" + - "\r\xE4\x03\x02\x02\x02\x0F\xE9\x03\x02\x02\x02\x11\xED\x03\x02\x02\x02" + - "\x13\xF2\x03\x02\x02\x02\x15\xF7\x03\x02\x02\x02\x17\xFD\x03\x02\x02\x02" + - "\x19\u0101\x03\x02\x02\x02\x1B\u0105\x03\x02\x02\x02\x1D\u0108\x03\x02" + - "\x02\x02\x1F\u010B\x03\x02\x02\x02!\u010D\x03\x02\x02\x02#\u0110\x03\x02" + - "\x02\x02%\u0112\x03\x02\x02\x02\'\u0115\x03\x02\x02\x02)\u0117\x03\x02" + - "\x02\x02+\u011A\x03\x02\x02\x02-\u011D\x03\x02\x02\x02/\u0120\x03\x02" + - "\x02\x021\u0123\x03\x02\x02\x023\u0128\x03\x02\x02\x025\u012B\x03\x02" + - "\x02\x027\u0131\x03\x02\x02\x029\u0138\x03\x02\x02\x02;\u013E\x03\x02" + - "\x02\x02=\u0144\x03\x02\x02\x02?\u014B\x03\x02\x02\x02A\u0150\x03\x02" + - "\x02\x02C\u0157\x03\x02\x02\x02E\u015E\x03\x02\x02\x02G\u0166\x03\x02" + - "\x02\x02I\u016B\x03\x02\x02\x02K\u016F\x03\x02\x02\x02M\u0171\x03\x02" + - "\x02\x02O\u0177\x03\x02\x02\x02Q\u017D\x03\x02\x02\x02S\u0180\x03\x02" + - "\x02\x02U\u0186\x03\x02\x02\x02W\u018C\x03\x02\x02\x02Y\u0190\x03\x02" + - "\x02\x02[\u0197\x03\x02\x02\x02]\u019D\x03\x02\x02\x02_\u01A2\x03\x02" + - "\x02\x02a\u01A8\x03\x02\x02\x02c\u01AD\x03\x02\x02\x02e\u01B2\x03\x02" + - "\x02\x02g\u01B8\x03\x02\x02\x02i\u01BD\x03\x02\x02\x02k\u01C5\x03\x02" + - "\x02\x02m\u01D4\x03\x02\x02\x02o\u01DC\x03\x02\x02\x02q\u01DE\x03\x02" + - "\x02\x02s\u01E7\x03\x02\x02\x02u\u01ED\x03\x02\x02\x02w\u01F0\x03\x02" + - "\x02\x02y\u01F4\x03\x02\x02\x02{\u01F9\x03\x02\x02\x02}\u01FF\x03\x02" + - "\x02\x02\x7F\u0201\x03\x02\x02\x02\x81\u0203\x03\x02\x02\x02\x83\u0205" + - "\x03\x02\x02\x02\x85\u0207\x03\x02\x02\x02\x87\u0209\x03\x02\x02\x02\x89" + - "\u020C\x03\x02\x02\x02\x8B\u0213\x03\x02\x02\x02\x8D\u021F\x03\x02\x02" + - "\x02\x8F\u0221\x03\x02\x02\x02\x91\u022C\x03\x02\x02\x02\x93\u0238\x03" + - "\x02\x02\x02\x95\u023E\x03\x02\x02\x02\x97\u0243\x03\x02\x02\x02\x99\u0245" + - "\x03\x02\x02\x02\x9B\u0247\x03\x02\x02\x02\x9D\u0249\x03\x02\x02\x02\x9F" + - "\u024B\x03\x02\x02\x02\xA1\u024D\x03\x02\x02\x02\xA3\u024F\x03\x02\x02" + - "\x02\xA5\u0251\x03\x02\x02\x02\xA7\u0253\x03\x02\x02\x02\xA9\u0255\x03" + - "\x02\x02\x02\xAB\u0257\x03\x02\x02\x02\xAD\u0259\x03\x02\x02\x02\xAF\u025B" + - "\x03\x02\x02\x02\xB1\u025D\x03\x02\x02\x02\xB3\u025F\x03\x02\x02\x02\xB5" + - "\u0261\x03\x02\x02\x02\xB7\u0263\x03\x02\x02\x02\xB9\u0265\x03\x02\x02" + - "\x02\xBB\u0267\x03\x02\x02\x02\xBD\u0269\x03\x02\x02\x02\xBF\u026B\x03" + - "\x02\x02\x02\xC1\u026D\x03\x02\x02\x02\xC3\u026F\x03\x02\x02\x02\xC5\u0271" + - "\x03\x02\x02\x02\xC7\u0273\x03\x02\x02\x02\xC9\u0275\x03\x02\x02\x02\xCB" + - "\xCC\x05\xA7T\x02\xCC\xCD\x05\xA1Q\x02\xCD\x04\x03\x02\x02\x02\xCE\xCF" + - "\x05\xBD_\x02\xCF\xD0\x05\xA5S\x02\xD0\xD1\x05\x9FP\x02\xD1\xD2\x05\xB1" + - "Y\x02\xD2\x06\x03\x02\x02\x02\xD3\xD4\x05\x9FP\x02\xD4\xD5\x05\xADW\x02" + - "\xD5\xD6\x05\xBB^\x02\xD6\xD7\x05\x9FP\x02\xD7\b\x03\x02\x02\x02\xD8\xD9" + - "\x05\xA5S\x02\xD9\xDA\x05\x97L\x02\xDA\xDB\x05\xBB^\x02\xDB\n\x03\x02" + - "\x02\x02\xDC\xDD\x05\xB3Z\x02\xDD\xDE\x05\xC1a\x02\xDE\xDF\x05\x9FP\x02" + - "\xDF\xE0\x05\xB9]\x02\xE0\xE1\x05\x97L\x02\xE1\xE2\x05\xADW\x02\xE2\xE3" + - "\x05\xADW\x02\xE3\f\x03\x02\x02\x02\xE4\xE5\x05\xBB^\x02\xE5\xE6\x05\xB3" + - "Z\x02\xE6\xE7\x05\xAFX\x02\xE7\xE8\x05\x9FP\x02\xE8\x0E\x03\x02\x02\x02" + - "\xE9\xEA\x05\xB3Z\x02\xEA\xEB\x05\xB1Y\x02\xEB\xEC\x05\x9FP\x02\xEC\x10" + - "\x03\x02\x02\x02\xED\xEE\x05\xADW\x02\xEE\xEF\x05\xB3Z\x02\xEF\xF0\x05" + - "\xB1Y\x02\xF0\xF1\x05\x9FP\x02\xF1\x12\x03\x02\x02\x02\xF2\xF3\x05\xBD" + - "_\x02\xF3\xF4\x05\xB9]\x02\xF4\xF5\x05\xBF`\x02\xF5\xF6\x05\x9FP\x02\xF6" + - "\x14\x03\x02\x02\x02\xF7\xF8\x05\xA1Q\x02\xF8\xF9\x05\x97L\x02\xF9\xFA" + - "\x05\xADW\x02\xFA\xFB\x05\xBB^\x02\xFB\xFC\x05\x9FP\x02\xFC\x16\x03\x02" + - "\x02\x02\xFD\xFE\x05\xB1Y\x02\xFE\xFF\x05\xB3Z\x02\xFF\u0100\x05\xBD_" + - "\x02\u0100\x18\x03\x02\x02\x02\u0101\u0102\x05\x97L\x02\u0102\u0103\x05" + - "\xB1Y\x02\u0103\u0104\x05\x9DO\x02\u0104\x1A\x03\x02\x02\x02\u0105\u0106" + - "\x05\xB3Z\x02\u0106\u0107\x05\xB9]\x02\u0107\x1C\x03\x02\x02\x02\u0108" + - "\u0109\x05\xA3R\x02\u0109\u010A\x05\xBD_\x02\u010A\x1E\x03\x02\x02\x02" + - "\u010B\u010C\x07@\x02\x02\u010C \x03\x02\x02\x02\u010D\u010E\x05\xADW" + - "\x02\u010E\u010F\x05\xBD_\x02\u010F\"\x03\x02\x02\x02\u0110\u0111\x07" + - ">\x02\x02\u0111$\x03\x02\x02\x02\u0112\u0113\x05\x9FP\x02\u0113\u0114" + - "\x05\xB7\\\x02\u0114&\x03\x02\x02\x02\u0115\u0116\x07?\x02\x02\u0116(" + - "\x03\x02\x02\x02\u0117\u0118\x05\xADW\x02\u0118\u0119\x05\x9FP\x02\u0119" + - "*\x03\x02\x02\x02\u011A\u011B\x07>\x02\x02\u011B\u011C\x07?\x02\x02\u011C" + - ",\x03\x02\x02\x02\u011D\u011E\x05\xA3R\x02\u011E\u011F\x05\x9FP\x02\u011F" + - ".\x03\x02\x02\x02\u0120\u0121\x07@\x02\x02\u0121\u0122\x07?\x02\x02\u0122" + - "0\x03\x02\x02\x02\u0123\u0124\x05\xA1Q\x02\u0124\u0125\x05\xB9]\x02\u0125" + - "\u0126\x05\xB3Z\x02\u0126\u0127\x05\xAFX\x02\u01272\x03\x02\x02\x02\u0128" + - "\u0129\x05\xBD_\x02\u0129\u012A\x05\xB3Z\x02\u012A4\x03\x02\x02\x02\u012B" + - "\u012C\x05\xA7T\x02\u012C\u012D\x05\xB1Y\x02\u012D\u012E\x05\xB5[\x02" + - "\u012E\u012F\x05\xBF`\x02\u012F\u0130\x05\xBD_\x02\u01306\x03\x02\x02" + - "\x02\u0131\u0132\x05\xB3Z\x02\u0132\u0133\x05\xBF`\x02\u0133\u0134\x05" + - "\xBD_\x02\u0134\u0135\x05\xB5[\x02\u0135\u0136\x05\xBF`\x02\u0136\u0137" + - "\x05\xBD_\x02\u01378\x03\x02\x02\x02\u0138\u0139\x05\xC3b\x02\u0139\u013A" + - "\x05\xA5S\x02\u013A\u013B\x05\x9FP\x02\u013B\u013C\x05\xB9]\x02\u013C" + - "\u013D\x05\x9FP\x02\u013D:\x03\x02\x02\x02\u013E\u013F\x05\xBB^\x02\u013F" + - "\u0140\x05\xADW\x02\u0140\u0141\x05\xB3Z\x02\u0141\u0142\x05\xBD_\x02" + - "\u0142\u0143\x05\xBB^\x02\u0143<\x03\x02\x02\x02\u0144\u0145\x05\xB9]" + - "\x02\u0145\u0146\x05\x9FP\x02\u0146\u0147\x05\xBD_\x02\u0147\u0148\x05" + - "\x97L\x02\u0148\u0149\x05\xA7T\x02\u0149\u014A\x05\xB1Y\x02\u014A>\x03" + - "\x02\x02\x02\u014B\u014C\x05\x9FP\x02\u014C\u014D\x05\x97L\x02\u014D\u014E" + - "\x05\x9BN\x02\u014E\u014F\x05\xA5S\x02\u014F@\x03\x02\x02\x02\u0150\u0151" + - "\x05\x9FP\x02\u0151\u0152\x05\xC5c\x02\u0152\u0153\x05\x9BN\x02\u0153" + - "\u0154\x05\x9FP\x02\u0154\u0155\x05\xB5[\x02\u0155\u0156\x05\xBD_\x02" + - "\u0156B\x03\x02\x02\x02\u0157\u0158\x05\xA1Q\x02\u0158\u0159\x05\xB3Z" + - "\x02\u0159\u015A\x05\xB9]\x02\u015A\u015B\x05\xA3R\x02\u015B\u015C\x05" + - "\x9FP\x02\u015C\u015D\x05\xBD_\x02\u015DD\x03\x02\x02\x02\u015E\u015F" + - "\x05\xC3b\x02\u015F\u0160\x05\xA7T\x02\u0160\u0161\x05\xBD_\x02\u0161" + - "\u0162\x05\xA5S\x02\u0162\u0163\x05\xB3Z\x02\u0163\u0164\x05\xBF`\x02" + - "\u0164\u0165\x05\xBD_\x02\u0165F\x03\x02\x02\x02\u0166\u0167\x05\xC3b" + - "\x02\u0167\u0168\x05\xA7T\x02\u0168\u0169\x05\xBD_\x02\u0169\u016A\x05" + - "\xA5S\x02\u016AH\x03\x02\x02\x02\u016B\u016C\x05\xBD_\x02\u016C\u016D" + - "\x05\x97L\x02\u016D\u016E\x05\xA3R\x02\u016EJ\x03\x02\x02\x02\u016F\u0170" + - "\x07%\x02\x02\u0170L\x03\x02\x02\x02\u0171\u0172\x05\xB9]\x02\u0172\u0173" + - "\x05\xB3Z\x02\u0173\u0174\x05\xBF`\x02\u0174\u0175\x05\xB1Y\x02\u0175" + - "\u0176\x05\x9DO\x02\u0176N\x03\x02\x02\x02\u0177\u0178\x05\xB9]\x02\u0178" + - "\u0179\x05\xB3Z\x02\u0179\u017A\x05\x99M\x02\u017A\u017B\x05\xA7T\x02" + - "\u017B\u017C\x05\xB1Y\x02\u017CP\x03\x02\x02\x02\u017D\u017E\x05\x99M" + - "\x02\u017E\u017F\x05\xC7d\x02\u017FR\x03\x02\x02\x02\u0180\u0181\x05\xAD" + - "W\x02\u0181\u0182\x05\x97L\x02\u0182\u0183\x05\x99M\x02\u0183\u0184\x05" + - "\x9FP\x02\u0184\u0185\x05\xADW\x02\u0185T\x03\x02\x02\x02\u0186\u0187" + - "\x05\x99M\x02\u0187\u0188\x05\xADW\x02\u0188\u0189\x05\xB3Z\x02\u0189" + - "\u018A\x05\x9BN\x02\u018A\u018B\x05\xABV\x02\u018BV\x03\x02\x02\x02\u018C" + - "\u018D\x05\xBD_\x02\u018D\u018E\x05\xB3Z\x02\u018E\u018F\x05\xB5[\x02" + - "\u018FX\x03\x02\x02\x02\u0190\u0191\x05\x99M\x02\u0191\u0192\x05\xB3Z" + - "\x02\u0192\u0193\x05\xBD_\x02\u0193\u0194\x05\xBD_\x02\u0194\u0195\x05" + - "\xB3Z\x02\u0195\u0196\x05\xAFX\x02\u0196Z\x03\x02\x02\x02\u0197\u0198" + - "\x05\xB1Y\x02\u0198\u0199\x05\xB3Z\x02\u0199\u019A\x05\xB9]\x02\u019A" + - "\u019B\x05\xBD_\x02\u019B\u019C\x05\xA5S\x02\u019C\\\x03\x02\x02\x02\u019D" + - "\u019E\x05\x9FP\x02\u019E\u019F\x05\x97L\x02\u019F\u01A0\x05\xBB^\x02" + - "\u01A0\u01A1\x05\xBD_\x02\u01A1^\x03\x02\x02\x02\u01A2\u01A3\x05\xBB^" + - "\x02\u01A3\u01A4\x05\xB3Z\x02\u01A4\u01A5\x05\xBF`\x02\u01A5\u01A6\x05" + - "\xBD_\x02\u01A6\u01A7\x05\xA5S\x02\u01A7`\x03\x02\x02\x02\u01A8\u01A9" + - "\x05\xC3b\x02\u01A9\u01AA\x05\x9FP\x02\u01AA\u01AB\x05\xBB^\x02\u01AB" + - "\u01AC\x05\xBD_\x02\u01ACb\x03\x02\x02\x02\u01AD\u01AE\x05\xBB^\x02\u01AE" + - "\u01AF\x05\xA7T\x02\u01AF\u01B0\x05\x9DO\x02\u01B0\u01B1\x05\x9FP\x02" + - "\u01B1d\x03\x02\x02\x02\u01B2\u01B3\x05\xBD_\x02\u01B3\u01B4\x05\xA7T" + - "\x02\u01B4\u01B5\x05\x9BN\x02\u01B5\u01B6\x05\xABV\x02\u01B6\u01B7\x05" + - "\xBB^\x02\u01B7f\x03\x02\x02\x02\u01B8\u01B9\x05\xBD_\x02\u01B9\u01BA" + - "\x05\xA7T\x02\u01BA\u01BB\x05\x9BN\x02\u01BB\u01BC\x05\xABV\x02\u01BC" + - "h\x03\x02\x02\x02\u01BD\u01BE\x05\xBB^\x02\u01BE\u01BF\x05\x9FP\x02\u01BF" + - "\u01C0\x05\x9BN\x02\u01C0\u01C1\x05\xB3Z\x02\u01C1\u01C2\x05\xB1Y\x02" + - "\u01C2\u01C3\x05\x9DO\x02\u01C3\u01C4\x05\xBB^\x02\u01C4j\x03\x02\x02" + - "\x02\u01C5\u01C6\x05\xBB^\x02\u01C6\u01C7\x05\x9FP\x02\u01C7\u01C8\x05" + - "\x9BN\x02\u01C8\u01C9\x05\xB3Z\x02\u01C9\u01CA\x05\xB1Y\x02\u01CA\u01CB" + - "\x05\x9DO\x02\u01CBl\x03\x02\x02\x02\u01CC\u01CD\x05\xA3R\x02\u01CD\u01CE" + - "\x05\xADW\x02\u01CE\u01CF\x05\xB3Z\x02\u01CF\u01D0\x05\x99M\x02\u01D0" + - "\u01D1\x05\x97L\x02\u01D1\u01D2\x05\xADW\x02\u01D2\u01D5\x03\x02\x02\x02" + - "\u01D3\u01D5\x05\xA3R\x02\u01D4\u01CC\x03\x02\x02\x02\u01D4\u01D3\x03" + - "\x02\x02\x02\u01D5n\x03\x02\x02\x02\u01D6\u01DD\x07-\x02\x02\u01D7\u01D8" + - "\x05\xB5[\x02\u01D8\u01D9\x05\xADW\x02\u01D9\u01DA\x05\xBF`\x02\u01DA" + - "\u01DB\x05\xBB^\x02\u01DB\u01DD\x03\x02\x02\x02\u01DC\u01D6\x03\x02\x02" + - "\x02\u01DC\u01D7\x03\x02\x02\x02\u01DDp\x03\x02\x02\x02\u01DE\u01DF\x05" + - "\xB9]\x02\u01DF\u01E0\x05\x9FP\x02\u01E0\u01E1\x05\x9DO\x02\u01E1\u01E2" + - "\x05\xBB^\x02\u01E2\u01E3\x05\xBD_\x02\u01E3\u01E4\x05\xB3Z\x02\u01E4" + - "\u01E5\x05\xB1Y\x02\u01E5\u01E6\x05\x9FP\x02\u01E6r\x03\x02\x02\x02\u01E7" + - "\u01E8\x05\xB5[\x02\u01E8\u01E9\x05\xBF`\x02\u01E9\u01EA\x05\xADW\x02" + - "\u01EA\u01EB\x05\xBB^\x02\u01EB\u01EC\x05\x9FP\x02\u01ECt\x03\x02\x02" + - "\x02\u01ED\u01EE\x05\x9DO\x02\u01EE\u01EF\x05\xB3Z\x02\u01EFv\x03\x02" + - "\x02\x02\u01F0\u01F1\x05\x9FP\x02\u01F1\u01F2\x05\xB1Y\x02\u01F2\u01F3" + - "\x05\x9DO\x02\u01F3x\x03\x02\x02\x02\u01F4\u01F5\x05\xB1Y\x02\u01F5\u01F6" + - "\x05\x97L\x02\u01F6\u01F7\x05\xAFX\x02\u01F7\u01F8\x05\x9FP\x02\u01F8" + - "z\x03\x02\x02\x02\u01F9\u01FA\x05\x9FP\x02\u01FA\u01FB\x05\xC1a\x02\u01FB" + - "\u01FC\x05\x9FP\x02\u01FC\u01FD\x05\xB9]\x02\u01FD\u01FE\x05\xC7d\x02" + - "\u01FE|\x03\x02\x02\x02\u01FF\u0200\x07.\x02\x02\u0200~\x03\x02\x02\x02" + - "\u0201\u0202\x07<\x02\x02\u0202\x80\x03\x02\x02\x02\u0203\u0204\x071\x02" + - "\x02\u0204\x82\x03\x02\x02\x02\u0205\u0206\x07/\x02\x02\u0206\x84\x03" + - "\x02\x02\x02\u0207\u0208\x07*\x02\x02\u0208\x86\x03\x02\x02\x02\u0209" + - "\u020A\x07+\x02\x02\u020A\x88\x03\x02\x02\x02\u020B\u020D\t\x02\x02\x02" + - "\u020C\u020B\x03\x02\x02\x02\u020D\u020E\x03\x02\x02\x02\u020E\u020C\x03" + - "\x02\x02\x02\u020E\u020F\x03\x02\x02\x02\u020F\u0210\x03\x02\x02\x02\u0210" + - "\u0211\t\x03\x02\x02\u0211\x8A\x03\x02\x02\x02\u0212\u0214\t\x02\x02\x02" + - "\u0213\u0212\x03\x02\x02\x02\u0214\u0215\x03\x02\x02\x02\u0215\u0213\x03" + - "\x02\x02\x02\u0215\u0216\x03\x02\x02\x02\u0216\x8C\x03\x02\x02\x02\u0217" + - "\u021B\t\x04\x02\x02\u0218\u021A\t\x05\x02\x02\u0219\u0218\x03\x02\x02" + - "\x02\u021A\u021D\x03\x02\x02\x02\u021B\u0219\x03\x02\x02\x02\u021B\u021C" + - "\x03\x02\x02\x02\u021C\u0220\x03\x02\x02\x02\u021D\u021B\x03\x02\x02\x02" + - "\u021E\u0220\x07,\x02\x02\u021F\u0217\x03\x02\x02\x02\u021F\u021E\x03" + - "\x02\x02\x02\u0220\x8E\x03\x02\x02\x02\u0221\u0227\x07$\x02\x02\u0222" + - "\u0226\n\x06\x02\x02\u0223\u0224\x07^\x02\x02\u0224\u0226\x07$\x02\x02" + - "\u0225\u0222\x03\x02\x02\x02\u0225\u0223\x03\x02\x02\x02\u0226\u0229\x03" + - "\x02\x02\x02\u0227\u0225\x03\x02\x02\x02\u0227\u0228\x03\x02\x02\x02\u0228" + - "\u022A\x03\x02\x02\x02\u0229\u0227\x03\x02\x02\x02\u022A\u022B\x07$\x02" + - "\x02\u022B\x90"; + "`\x04a\ta\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04" + + "i\ti\x04j\tj\x04k\tk\x04l\tl\x04m\tm\x03\x02\x03\x02\x03\x02\x03\x03\x03" + + "\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03" + + "\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03" + + "\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\b\x03" + + "\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\n\x03" + + "\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03\r\x03" + + "\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x10" + + "\x03\x10\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13" + + "\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03\x17" + + "\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19\x03\x19" + + "\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + + "\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D" + + "\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1E\x03\x1E" + + "\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03 \x03 \x03" + + " \x03 \x03 \x03 \x03 \x03!\x03!\x03!\x03!\x03!\x03\"\x03\"\x03\"\x03\"" + + "\x03\"\x03\"\x03\"\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03$\x03$\x03$\x03" + + "$\x03$\x03$\x03%\x03%\x03%\x03&\x03&\x03&\x03&\x03&\x03&\x03&\x03&\x03" + + "\'\x03\'\x03\'\x03\'\x03\'\x03(\x03(\x03(\x03(\x03)\x03)\x03*\x03*\x03" + + "*\x03*\x03*\x03*\x03+\x03+\x03+\x03+\x03+\x03+\x03,\x03,\x03,\x03-\x03" + + "-\x03-\x03-\x03-\x03-\x03.\x03.\x03.\x03.\x03.\x03.\x03/\x03/\x03/\x03" + + "/\x030\x030\x030\x030\x030\x030\x030\x031\x031\x031\x031\x031\x031\x03" + + "2\x032\x032\x032\x032\x033\x033\x033\x033\x033\x033\x034\x034\x034\x03" + + "4\x034\x035\x035\x035\x035\x035\x036\x036\x036\x036\x036\x037\x037\x03" + + "7\x037\x037\x037\x038\x038\x038\x038\x038\x038\x039\x039\x039\x039\x03" + + "9\x03:\x03:\x03:\x03:\x03:\x03;\x03;\x03;\x03;\x03;\x03;\x03<\x03<\x03" + + "<\x03<\x03<\x03=\x03=\x03=\x03=\x03=\x03=\x03=\x03=\x03>\x03>\x03>\x03" + + ">\x03>\x03>\x03>\x03?\x03?\x03?\x03?\x03?\x03?\x03?\x03?\x05?\u020E\n" + + "?\x03@\x03@\x03@\x03@\x03@\x03@\x05@\u0216\n@\x03A\x03A\x03A\x03A\x03" + + "A\x03A\x03A\x03A\x03A\x03B\x03B\x03B\x03B\x03B\x03B\x03C\x03C\x03C\x03" + + "D\x03D\x03D\x03D\x03E\x03E\x03E\x03E\x03E\x03F\x03F\x03F\x03F\x03F\x03" + + "F\x03G\x03G\x03H\x03H\x03I\x03I\x03J\x03J\x03K\x03K\x03L\x03L\x03M\x06" + + "M\u0246\nM\rM\x0EM\u0247\x03M\x03M\x03N\x06N\u024D\nN\rN\x0EN\u024E\x03" + + "O\x03O\x07O\u0253\nO\fO\x0EO\u0256\vO\x03O\x05O\u0259\nO\x03P\x03P\x03" + + "P\x03P\x07P\u025F\nP\fP\x0EP\u0262\vP\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x07" + + "Q\u026A\nQ\fQ\x0EQ\u026D\vQ\x03Q\x03Q\x03R\x06R\u0272\nR\rR\x0ER\u0273" + + "\x03R\x03R\x03S\x03S\x03S\x03S\x03S\x03T\x03T\x03U\x03U\x03V\x03V\x03" + + "W\x03W\x03X\x03X\x03Y\x03Y\x03Z\x03Z\x03[\x03[\x03\\\x03\\\x03]\x03]\x03" + + "^\x03^\x03_\x03_\x03`\x03`\x03a\x03a\x03b\x03b\x03c\x03c\x03d\x03d\x03" + + "e\x03e\x03f\x03f\x03g\x03g\x03h\x03h\x03i\x03i\x03j\x03j\x03k\x03k\x03" + + "l\x03l\x03m\x03m\x02\x02\x02n\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02" + + "\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02\f\x17\x02" + + "\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F\x02\x11!\x02\x12#\x02\x13%" + + "\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02\x18/\x02\x191\x02\x1A3\x02\x1B" + + "5\x02\x1C7\x02\x1D9\x02\x1E;\x02\x1F=\x02 ?\x02!A\x02\"C\x02#E\x02$G\x02" + + "%I\x02&K\x02\'M\x02(O\x02)Q\x02*S\x02+U\x02,W\x02-Y\x02.[\x02/]\x020_" + + "\x021a\x022c\x023e\x024g\x025i\x026k\x027m\x028o\x029q\x02:s\x02;u\x02" + + "{\x02?}\x02@\x7F\x02A\x81\x02B\x83\x02C\x85\x02D\x87\x02" + + "E\x89\x02F\x8B\x02G\x8D\x02H\x8F\x02I\x91\x02J\x93\x02K\x95\x02L\x97\x02" + + "M\x99\x02N\x9B\x02O\x9D\x02P\x9F\x02Q\xA1\x02R\xA3\x02S\xA5\x02T\xA7\x02" + + "\x02\xA9\x02\x02\xAB\x02\x02\xAD\x02\x02\xAF\x02\x02\xB1\x02\x02\xB3\x02" + + "\x02\xB5\x02\x02\xB7\x02\x02\xB9\x02\x02\xBB\x02\x02\xBD\x02\x02\xBF\x02" + + "\x02\xC1\x02\x02\xC3\x02\x02\xC5\x02\x02\xC7\x02\x02\xC9\x02\x02\xCB\x02" + + "\x02\xCD\x02\x02\xCF\x02\x02\xD1\x02\x02\xD3\x02\x02\xD5\x02\x02\xD7\x02" + + "\x02\xD9\x02\x02\x03\x02\"\x03\x022;\x04\x02IIii\x06\x02,,C\\aac|\x07" + + "\x02,,2;C\\aac|\x03\x02$$\x04\x02\f\f\x0F\x0F\x05\x02\v\f\x0F\x0F\"\"" + + "\x04\x02CCcc\x04\x02DDdd\x04\x02EEee\x04\x02FFff\x04\x02GGgg\x04\x02H" + + "Hhh\x04\x02JJjj\x04\x02KKkk\x04\x02LLll\x04\x02MMmm\x04\x02NNnn\x04\x02" + + "OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02RRrr\x04\x02SSss\x04\x02TTtt\x04\x02" + + "UUuu\x04\x02VVvv\x04\x02WWww\x04\x02XXxx\x04\x02YYyy\x04\x02ZZzz\x04\x02" + + "[[{{\x04\x02\\\\||\x02\u029F\x02\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02" + + "\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03\x02\x02\x02" + + "\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02" + + "\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02" + + "\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02" + + "\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02" + + "%\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03" + + "\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02" + + "\x02\x023\x03\x02\x02\x02\x025\x03\x02\x02\x02\x027\x03\x02\x02\x02\x02" + + "9\x03\x02\x02\x02\x02;\x03\x02\x02\x02\x02=\x03\x02\x02\x02\x02?\x03\x02" + + "\x02\x02\x02A\x03\x02\x02\x02\x02C\x03\x02\x02\x02\x02E\x03\x02\x02\x02" + + "\x02G\x03\x02\x02\x02\x02I\x03\x02\x02\x02\x02K\x03\x02\x02\x02\x02M\x03" + + "\x02\x02\x02\x02O\x03\x02\x02\x02\x02Q\x03\x02\x02\x02\x02S\x03\x02\x02" + + "\x02\x02U\x03\x02\x02\x02\x02W\x03\x02\x02\x02\x02Y\x03\x02\x02\x02\x02" + + "[\x03\x02\x02\x02\x02]\x03\x02\x02\x02\x02_\x03\x02\x02\x02\x02a\x03\x02" + + "\x02\x02\x02c\x03\x02\x02\x02\x02e\x03\x02\x02\x02\x02g\x03\x02\x02\x02" + + "\x02i\x03\x02\x02\x02\x02k\x03\x02\x02\x02\x02m\x03\x02\x02\x02\x02o\x03" + + "\x02\x02\x02\x02q\x03\x02\x02\x02\x02s\x03\x02\x02\x02\x02u\x03\x02\x02" + + "\x02\x02w\x03\x02\x02\x02\x02y\x03\x02\x02\x02\x02{\x03\x02\x02\x02\x02" + + "}\x03\x02\x02\x02\x02\x7F\x03\x02\x02\x02\x02\x81\x03\x02\x02\x02\x02" + + "\x83\x03\x02\x02\x02\x02\x85\x03\x02\x02\x02\x02\x87\x03\x02\x02\x02\x02" + + "\x89\x03\x02\x02\x02\x02\x8B\x03\x02\x02\x02\x02\x8D\x03\x02\x02\x02\x02" + + "\x8F\x03\x02\x02\x02\x02\x91\x03\x02\x02\x02\x02\x93\x03\x02\x02\x02\x02" + + "\x95\x03\x02\x02\x02\x02\x97\x03\x02\x02\x02\x02\x99\x03\x02\x02\x02\x02" + + "\x9B\x03\x02\x02\x02\x02\x9D\x03\x02\x02\x02\x02\x9F\x03\x02\x02\x02\x02" + + "\xA1\x03\x02\x02\x02\x02\xA3\x03\x02\x02\x02\x02\xA5\x03\x02\x02\x02\x03" + + "\xDB\x03\x02\x02\x02\x05\xDE\x03\x02\x02\x02\x07\xE3\x03\x02\x02\x02\t" + + "\xE8\x03\x02\x02\x02\v\xEC\x03\x02\x02\x02\r\xF4\x03\x02\x02\x02\x0F\xF9" + + "\x03\x02\x02\x02\x11\xFD\x03\x02\x02\x02\x13\u0102\x03\x02\x02\x02\x15" + + "\u0107\x03\x02\x02\x02\x17\u010D\x03\x02\x02\x02\x19\u0111\x03\x02\x02" + + "\x02\x1B\u0115\x03\x02\x02\x02\x1D\u0118\x03\x02\x02\x02\x1F\u011B\x03" + + "\x02\x02\x02!\u011D\x03\x02\x02\x02#\u0120\x03\x02\x02\x02%\u0122\x03" + + "\x02\x02\x02\'\u0125\x03\x02\x02\x02)\u0127\x03\x02\x02\x02+\u012A\x03" + + "\x02\x02\x02-\u012D\x03\x02\x02\x02/\u0130\x03\x02\x02\x021\u0133\x03" + + "\x02\x02\x023\u0138\x03\x02\x02\x025\u013B\x03\x02\x02\x027\u0141\x03" + + "\x02\x02\x029\u0148\x03\x02\x02\x02;\u014E\x03\x02\x02\x02=\u0154\x03" + + "\x02\x02\x02?\u0159\x03\x02\x02\x02A\u0160\x03\x02\x02\x02C\u0165\x03" + + "\x02\x02\x02E\u016C\x03\x02\x02\x02G\u0173\x03\x02\x02\x02I\u0179\x03" + + "\x02\x02\x02K\u017C\x03\x02\x02\x02M\u0184\x03\x02\x02\x02O\u0189\x03" + + "\x02\x02\x02Q\u018D\x03\x02\x02\x02S\u018F\x03\x02\x02\x02U\u0195\x03" + + "\x02\x02\x02W\u019B\x03\x02\x02\x02Y\u019E\x03\x02\x02\x02[\u01A4\x03" + + "\x02\x02\x02]\u01AA\x03\x02\x02\x02_\u01AE\x03\x02\x02\x02a\u01B5\x03" + + "\x02\x02\x02c\u01BB\x03\x02\x02\x02e\u01C0\x03\x02\x02\x02g\u01C6\x03" + + "\x02\x02\x02i\u01CB\x03\x02\x02\x02k\u01D0\x03\x02\x02\x02m\u01D5\x03" + + "\x02\x02\x02o\u01DB\x03\x02\x02\x02q\u01E1\x03\x02\x02\x02s\u01E6\x03" + + "\x02\x02\x02u\u01EB\x03\x02\x02\x02w\u01F1\x03\x02\x02\x02y\u01F6\x03" + + "\x02\x02\x02{\u01FE\x03\x02\x02\x02}\u020D\x03\x02\x02\x02\x7F\u0215\x03" + + "\x02\x02\x02\x81\u0217\x03\x02\x02\x02\x83\u0220\x03\x02\x02\x02\x85\u0226" + + "\x03\x02\x02\x02\x87\u0229\x03\x02\x02\x02\x89\u022D\x03\x02\x02\x02\x8B" + + "\u0232\x03\x02\x02\x02\x8D\u0238\x03\x02\x02\x02\x8F\u023A\x03\x02\x02" + + "\x02\x91\u023C\x03\x02\x02\x02\x93\u023E\x03\x02\x02\x02\x95\u0240\x03" + + "\x02\x02\x02\x97\u0242\x03\x02\x02\x02\x99\u0245\x03\x02\x02\x02\x9B\u024C" + + "\x03\x02\x02\x02\x9D\u0258\x03\x02\x02\x02\x9F\u025A\x03\x02\x02\x02\xA1" + + "\u0265\x03\x02\x02\x02\xA3\u0271\x03\x02\x02\x02\xA5\u0277\x03\x02\x02" + + "\x02\xA7\u027C\x03\x02\x02\x02\xA9\u027E\x03\x02\x02\x02\xAB\u0280\x03" + + "\x02\x02\x02\xAD\u0282\x03\x02\x02\x02\xAF\u0284\x03\x02\x02\x02\xB1\u0286" + + "\x03\x02\x02\x02\xB3\u0288\x03\x02\x02\x02\xB5\u028A\x03\x02\x02\x02\xB7" + + "\u028C\x03\x02\x02\x02\xB9\u028E\x03\x02\x02\x02\xBB\u0290\x03\x02\x02" + + "\x02\xBD\u0292\x03\x02\x02\x02\xBF\u0294\x03\x02\x02\x02\xC1\u0296\x03" + + "\x02\x02\x02\xC3\u0298\x03\x02\x02\x02\xC5\u029A\x03\x02\x02\x02\xC7\u029C" + + "\x03\x02\x02\x02\xC9\u029E\x03\x02\x02\x02\xCB\u02A0\x03\x02\x02\x02\xCD" + + "\u02A2\x03\x02\x02\x02\xCF\u02A4\x03\x02\x02\x02\xD1\u02A6\x03\x02\x02" + + "\x02\xD3\u02A8\x03\x02\x02\x02\xD5\u02AA\x03\x02\x02\x02\xD7\u02AC\x03" + + "\x02\x02\x02\xD9\u02AE\x03\x02\x02\x02\xDB\xDC\x05\xB7\\\x02\xDC\xDD\x05" + + "\xB1Y\x02\xDD\x04\x03\x02\x02\x02\xDE\xDF\x05\xCDg\x02\xDF\xE0\x05\xB5" + + "[\x02\xE0\xE1\x05\xAFX\x02\xE1\xE2\x05\xC1a\x02\xE2\x06\x03\x02\x02\x02" + + "\xE3\xE4\x05\xAFX\x02\xE4\xE5\x05\xBD_\x02\xE5\xE6\x05\xCBf\x02\xE6\xE7" + + "\x05\xAFX\x02\xE7\b\x03\x02\x02\x02\xE8\xE9\x05\xB5[\x02\xE9\xEA\x05\xA7" + + "T\x02\xEA\xEB\x05\xCBf\x02\xEB\n\x03\x02\x02\x02\xEC\xED\x05\xC3b\x02" + + "\xED\xEE\x05\xD1i\x02\xEE\xEF\x05\xAFX\x02\xEF\xF0\x05\xC9e\x02\xF0\xF1" + + "\x05\xA7T\x02\xF1\xF2\x05\xBD_\x02\xF2\xF3\x05\xBD_\x02\xF3\f\x03\x02" + + "\x02\x02\xF4\xF5\x05\xCBf\x02\xF5\xF6\x05\xC3b\x02\xF6\xF7\x05\xBF`\x02" + + "\xF7\xF8\x05\xAFX\x02\xF8\x0E\x03\x02\x02\x02\xF9\xFA\x05\xC3b\x02\xFA" + + "\xFB\x05\xC1a\x02\xFB\xFC\x05\xAFX\x02\xFC\x10\x03\x02\x02\x02\xFD\xFE" + + "\x05\xBD_\x02\xFE\xFF\x05\xC3b\x02\xFF\u0100\x05\xC1a\x02\u0100\u0101" + + "\x05\xAFX\x02\u0101\x12\x03\x02\x02\x02\u0102\u0103\x05\xCDg\x02\u0103" + + "\u0104\x05\xC9e\x02\u0104\u0105\x05\xCFh\x02\u0105\u0106\x05\xAFX\x02" + + "\u0106\x14\x03\x02\x02\x02\u0107\u0108\x05\xB1Y\x02\u0108\u0109\x05\xA7" + + "T\x02\u0109\u010A\x05\xBD_\x02\u010A\u010B\x05\xCBf\x02\u010B\u010C\x05" + + "\xAFX\x02\u010C\x16\x03\x02\x02\x02\u010D\u010E\x05\xC1a\x02\u010E\u010F" + + "\x05\xC3b\x02\u010F\u0110\x05\xCDg\x02\u0110\x18\x03\x02\x02\x02\u0111" + + "\u0112\x05\xA7T\x02\u0112\u0113\x05\xC1a\x02\u0113\u0114\x05\xADW\x02" + + "\u0114\x1A\x03\x02\x02\x02\u0115\u0116\x05\xC3b\x02\u0116\u0117\x05\xC9" + + "e\x02\u0117\x1C\x03\x02\x02\x02\u0118\u0119\x05\xB3Z\x02\u0119\u011A\x05" + + "\xCDg\x02\u011A\x1E\x03\x02\x02\x02\u011B\u011C\x07@\x02\x02\u011C \x03" + + "\x02\x02\x02\u011D\u011E\x05\xBD_\x02\u011E\u011F\x05\xCDg\x02\u011F\"" + + "\x03\x02\x02\x02\u0120\u0121\x07>\x02\x02\u0121$\x03\x02\x02\x02\u0122" + + "\u0123\x05\xAFX\x02\u0123\u0124\x05\xC7d\x02\u0124&\x03\x02\x02\x02\u0125" + + "\u0126\x07?\x02\x02\u0126(\x03\x02\x02\x02\u0127\u0128\x05\xBD_\x02\u0128" + + "\u0129\x05\xAFX\x02\u0129*\x03\x02\x02\x02\u012A\u012B\x07>\x02\x02\u012B" + + "\u012C\x07?\x02\x02\u012C,\x03\x02\x02\x02\u012D\u012E\x05\xB3Z\x02\u012E" + + "\u012F\x05\xAFX\x02\u012F.\x03\x02\x02\x02\u0130\u0131\x07@\x02\x02\u0131" + + "\u0132\x07?\x02\x02\u01320\x03\x02\x02\x02\u0133\u0134\x05\xB1Y\x02\u0134" + + "\u0135\x05\xC9e\x02\u0135\u0136\x05\xC3b\x02\u0136\u0137\x05\xBF`\x02" + + "\u01372\x03\x02\x02\x02\u0138\u0139\x05\xCDg\x02\u0139\u013A\x05\xC3b" + + "\x02\u013A4\x03\x02\x02\x02\u013B\u013C\x05\xB7\\\x02\u013C\u013D\x05" + + "\xC1a\x02\u013D\u013E\x05\xC5c\x02\u013E\u013F\x05\xCFh\x02\u013F\u0140" + + "\x05\xCDg\x02\u01406\x03\x02\x02\x02\u0141\u0142\x05\xC3b\x02\u0142\u0143" + + "\x05\xCFh\x02\u0143\u0144\x05\xCDg\x02\u0144\u0145\x05\xC5c\x02\u0145" + + "\u0146\x05\xCFh\x02\u0146\u0147\x05\xCDg\x02\u01478\x03\x02\x02\x02\u0148" + + "\u0149\x05\xD3j\x02\u0149\u014A\x05\xB5[\x02\u014A\u014B\x05\xAFX\x02" + + "\u014B\u014C\x05\xC9e\x02\u014C\u014D\x05\xAFX\x02\u014D:\x03\x02\x02" + + "\x02\u014E\u014F\x05\xCBf\x02\u014F\u0150\x05\xBD_\x02\u0150\u0151\x05" + + "\xC3b\x02\u0151\u0152\x05\xCDg\x02\u0152\u0153\x05\xCBf\x02\u0153<\x03" + + "\x02\x02\x02\u0154\u0155\x05\xCBf\x02\u0155\u0156\x05\xBD_\x02\u0156\u0157" + + "\x05\xC3b\x02\u0157\u0158\x05\xCDg\x02\u0158>\x03\x02\x02\x02\u0159\u015A" + + "\x05\xC9e\x02\u015A\u015B\x05\xAFX\x02\u015B\u015C\x05\xCDg\x02\u015C" + + "\u015D\x05\xA7T\x02\u015D\u015E\x05\xB7\\\x02\u015E\u015F\x05\xC1a\x02" + + "\u015F@\x03\x02\x02\x02\u0160\u0161\x05\xAFX\x02\u0161\u0162\x05\xA7T" + + "\x02\u0162\u0163\x05\xABV\x02\u0163\u0164\x05\xB5[\x02\u0164B\x03\x02" + + "\x02\x02\u0165\u0166\x05\xAFX\x02\u0166\u0167\x05\xD5k\x02\u0167\u0168" + + "\x05\xABV\x02\u0168\u0169\x05\xAFX\x02\u0169\u016A\x05\xC5c\x02\u016A" + + "\u016B\x05\xCDg\x02\u016BD\x03\x02\x02\x02\u016C\u016D\x05\xB1Y\x02\u016D" + + "\u016E\x05\xC3b\x02\u016E\u016F\x05\xC9e\x02\u016F\u0170\x05\xB3Z\x02" + + "\u0170\u0171\x05\xAFX\x02\u0171\u0172\x05\xCDg\x02\u0172F\x03\x02\x02" + + "\x02\u0173\u0174\x05\xAFX\x02\u0174\u0175\x05\xBF`\x02\u0175\u0176\x05" + + "\xC5c\x02\u0176\u0177\x05\xCDg\x02\u0177\u0178\x05\xD7l\x02\u0178H\x03" + + "\x02\x02\x02\u0179\u017A\x05\xB7\\\x02\u017A\u017B\x05\xC1a\x02\u017B" + + "J\x03\x02\x02\x02\u017C\u017D\x05\xD3j\x02\u017D\u017E\x05\xB7\\\x02\u017E" + + "\u017F\x05\xCDg\x02\u017F\u0180\x05\xB5[\x02\u0180\u0181\x05\xC3b\x02" + + "\u0181\u0182\x05\xCFh\x02\u0182\u0183\x05\xCDg\x02\u0183L\x03\x02\x02" + + "\x02\u0184\u0185\x05\xD3j\x02\u0185\u0186\x05\xB7\\\x02\u0186\u0187\x05" + + "\xCDg\x02\u0187\u0188\x05\xB5[\x02\u0188N\x03\x02\x02\x02\u0189\u018A" + + "\x05\xCDg\x02\u018A\u018B\x05\xA7T\x02\u018B\u018C\x05\xB3Z\x02\u018C" + + "P\x03\x02\x02\x02\u018D\u018E\x07%\x02\x02\u018ER\x03\x02\x02\x02\u018F" + + "\u0190\x05\xC9e\x02\u0190\u0191\x05\xC3b\x02\u0191\u0192\x05\xCFh\x02" + + "\u0192\u0193\x05\xC1a\x02\u0193\u0194\x05\xADW\x02\u0194T\x03\x02\x02" + + "\x02\u0195\u0196\x05\xC9e\x02\u0196\u0197\x05\xC3b\x02\u0197\u0198\x05" + + "\xA9U\x02\u0198\u0199\x05\xB7\\\x02\u0199\u019A\x05\xC1a\x02\u019AV\x03" + + "\x02\x02\x02\u019B\u019C\x05\xA9U\x02\u019C\u019D\x05\xD7l\x02\u019DX" + + "\x03\x02\x02\x02\u019E\u019F\x05\xBD_\x02\u019F\u01A0\x05\xA7T\x02\u01A0" + + "\u01A1\x05\xA9U\x02\u01A1\u01A2\x05\xAFX\x02\u01A2\u01A3\x05\xBD_\x02" + + "\u01A3Z\x03\x02\x02\x02\u01A4\u01A5\x05\xA9U\x02\u01A5\u01A6\x05\xBD_" + + "\x02\u01A6\u01A7\x05\xC3b\x02\u01A7\u01A8\x05\xABV\x02\u01A8\u01A9\x05" + + "\xBB^\x02\u01A9\\\x03\x02\x02\x02\u01AA\u01AB\x05\xCDg\x02\u01AB\u01AC" + + "\x05\xC3b\x02\u01AC\u01AD\x05\xC5c\x02\u01AD^\x03\x02\x02\x02\u01AE\u01AF" + + "\x05\xA9U\x02\u01AF\u01B0\x05\xC3b\x02\u01B0\u01B1\x05\xCDg\x02\u01B1" + + "\u01B2\x05\xCDg\x02\u01B2\u01B3\x05\xC3b\x02\u01B3\u01B4\x05\xBF`\x02" + + "\u01B4`\x03\x02\x02\x02\u01B5\u01B6\x05\xC1a\x02\u01B6\u01B7\x05\xC3b" + + "\x02\u01B7\u01B8\x05\xC9e\x02\u01B8\u01B9\x05\xCDg\x02\u01B9\u01BA\x05" + + "\xB5[\x02\u01BAb\x03\x02\x02\x02\u01BB\u01BC\x05\xAFX\x02\u01BC\u01BD" + + "\x05\xA7T\x02\u01BD\u01BE\x05\xCBf\x02\u01BE\u01BF\x05\xCDg\x02\u01BF" + + "d\x03\x02\x02\x02\u01C0\u01C1\x05\xCBf\x02\u01C1\u01C2\x05\xC3b\x02\u01C2" + + "\u01C3\x05\xCFh\x02\u01C3\u01C4\x05\xCDg\x02\u01C4\u01C5\x05\xB5[\x02" + + "\u01C5f\x03\x02\x02\x02\u01C6\u01C7\x05\xD3j\x02\u01C7\u01C8\x05\xAFX" + + "\x02\u01C8\u01C9\x05\xCBf\x02\u01C9\u01CA\x05\xCDg\x02\u01CAh\x03\x02" + + "\x02\x02\u01CB\u01CC\x05\xCBf\x02\u01CC\u01CD\x05\xB7\\\x02\u01CD\u01CE" + + "\x05\xADW\x02\u01CE\u01CF\x05\xAFX\x02\u01CFj\x03\x02\x02\x02\u01D0\u01D1" + + "\x05\xBD_\x02\u01D1\u01D2\x05\xAFX\x02\u01D2\u01D3\x05\xB1Y\x02\u01D3" + + "\u01D4\x05\xCDg\x02\u01D4l\x03\x02\x02\x02\u01D5\u01D6\x05\xC9e\x02\u01D6" + + "\u01D7\x05\xB7\\\x02\u01D7\u01D8\x05\xB3Z\x02\u01D8\u01D9\x05\xB5[\x02" + + "\u01D9\u01DA\x05\xCDg\x02\u01DAn\x03\x02\x02\x02\u01DB\u01DC\x05\xB1Y" + + "\x02\u01DC\u01DD\x05\xC9e\x02\u01DD\u01DE\x05\xC3b\x02\u01DE\u01DF\x05" + + "\xC1a\x02\u01DF\u01E0\x05\xCDg\x02\u01E0p\x03\x02\x02\x02\u01E1\u01E2" + + "\x05\xA9U\x02\u01E2\u01E3\x05\xA7T\x02\u01E3\u01E4\x05\xABV\x02\u01E4" + + "\u01E5\x05\xBB^\x02\u01E5r\x03\x02\x02\x02\u01E6\u01E7\x05\xC1a\x02\u01E7" + + "\u01E8\x05\xCFh\x02\u01E8\u01E9\x05\xBD_\x02\u01E9\u01EA\x05\xBD_\x02" + + "\u01EAt\x03\x02\x02\x02\u01EB\u01EC\x05\xCDg\x02\u01EC\u01ED\x05\xB7\\" + + "\x02\u01ED\u01EE\x05\xABV\x02\u01EE\u01EF\x05\xBB^\x02\u01EF\u01F0\x05" + + "\xCBf\x02\u01F0v\x03\x02\x02\x02\u01F1\u01F2\x05\xCDg\x02\u01F2\u01F3" + + "\x05\xB7\\\x02\u01F3\u01F4\x05\xABV\x02\u01F4\u01F5\x05\xBB^\x02\u01F5" + + "x\x03\x02\x02\x02\u01F6\u01F7\x05\xCBf\x02\u01F7\u01F8\x05\xAFX\x02\u01F8" + + "\u01F9\x05\xABV\x02\u01F9\u01FA\x05\xC3b\x02\u01FA\u01FB\x05\xC1a\x02" + + "\u01FB\u01FC\x05\xADW\x02\u01FC\u01FD\x05\xCBf\x02\u01FDz\x03\x02\x02" + + "\x02\u01FE\u01FF\x05\xCBf\x02\u01FF\u0200\x05\xAFX\x02\u0200\u0201\x05" + + "\xABV\x02\u0201\u0202\x05\xC3b\x02\u0202\u0203\x05\xC1a\x02\u0203\u0204" + + "\x05\xADW\x02\u0204|\x03\x02\x02\x02\u0205\u0206\x05\xB3Z\x02\u0206\u0207" + + "\x05\xBD_\x02\u0207\u0208\x05\xC3b\x02\u0208\u0209\x05\xA9U\x02\u0209" + + "\u020A\x05\xA7T\x02\u020A\u020B\x05\xBD_\x02\u020B\u020E\x03\x02\x02\x02" + + "\u020C\u020E\x05\xB3Z\x02\u020D\u0205\x03\x02\x02\x02\u020D\u020C\x03" + + "\x02\x02\x02\u020E~\x03\x02\x02\x02\u020F\u0216\x07-\x02\x02\u0210\u0211" + + "\x05\xC5c\x02\u0211\u0212\x05\xBD_\x02\u0212\u0213\x05\xCFh\x02\u0213" + + "\u0214\x05\xCBf\x02\u0214\u0216\x03\x02\x02\x02\u0215\u020F\x03\x02\x02" + + "\x02\u0215\u0210\x03\x02\x02\x02\u0216\x80\x03\x02\x02\x02\u0217\u0218" + + "\x05\xC9e\x02\u0218\u0219\x05\xAFX\x02\u0219\u021A\x05\xADW\x02\u021A" + + "\u021B"; private static readonly _serializedATNSegment1: string = - "\x03\x02\x02\x02\u022C\u022D\x07/\x02\x02\u022D\u022E\x07/\x02\x02\u022E" + - "\u0232\x03\x02\x02\x02\u022F\u0231\n\x07\x02\x02\u0230\u022F\x03\x02\x02" + - "\x02\u0231\u0234\x03\x02\x02\x02\u0232\u0230\x03\x02\x02\x02\u0232\u0233" + - "\x03\x02\x02\x02\u0233\u0235\x03\x02\x02\x02\u0234\u0232\x03\x02\x02\x02" + - "\u0235\u0236\bI\x02\x02\u0236\x92\x03\x02\x02\x02\u0237\u0239\t\b\x02" + - "\x02\u0238\u0237\x03\x02\x02\x02\u0239\u023A\x03\x02\x02\x02\u023A\u0238" + - "\x03\x02\x02\x02\u023A\u023B\x03\x02\x02\x02\u023B\u023C\x03\x02\x02\x02" + - "\u023C\u023D\bJ\x02\x02\u023D\x94\x03\x02\x02\x02\u023E\u023F\x06K\x02" + - "\x02\u023F\u0240\v\x02\x02\x02\u0240\u0241\x03\x02\x02\x02\u0241\u0242" + - "\bK\x02\x02\u0242\x96\x03\x02\x02\x02\u0243\u0244\t\t\x02\x02\u0244\x98" + - "\x03\x02\x02\x02\u0245\u0246\t\n\x02\x02\u0246\x9A\x03\x02\x02\x02\u0247" + - "\u0248\t\v\x02\x02\u0248\x9C\x03\x02\x02\x02\u0249\u024A\t\f\x02\x02\u024A" + - "\x9E\x03\x02\x02\x02\u024B\u024C\t\r\x02\x02\u024C\xA0\x03\x02\x02\x02" + - "\u024D\u024E\t\x0E\x02\x02\u024E\xA2\x03\x02\x02\x02\u024F\u0250\t\x03" + - "\x02\x02\u0250\xA4\x03\x02\x02\x02\u0251\u0252\t\x0F\x02\x02\u0252\xA6" + - "\x03\x02\x02\x02\u0253\u0254\t\x10\x02\x02\u0254\xA8\x03\x02\x02\x02\u0255" + - "\u0256\t\x11\x02\x02\u0256\xAA\x03\x02\x02\x02\u0257\u0258\t\x12\x02\x02" + - "\u0258\xAC\x03\x02\x02\x02\u0259\u025A\t\x13\x02\x02\u025A\xAE\x03\x02" + - "\x02\x02\u025B\u025C\t\x14\x02\x02\u025C\xB0\x03\x02\x02\x02\u025D\u025E" + - "\t\x15\x02\x02\u025E\xB2\x03\x02\x02\x02\u025F\u0260\t\x16\x02\x02\u0260" + - "\xB4\x03\x02\x02\x02\u0261\u0262\t\x17\x02\x02\u0262\xB6\x03\x02\x02\x02" + - "\u0263\u0264\t\x18\x02\x02\u0264\xB8\x03\x02\x02\x02\u0265\u0266\t\x19" + - "\x02\x02\u0266\xBA\x03\x02\x02\x02\u0267\u0268\t\x1A\x02\x02\u0268\xBC" + - "\x03\x02\x02\x02\u0269\u026A\t\x1B\x02\x02\u026A\xBE\x03\x02\x02\x02\u026B" + - "\u026C\t\x1C\x02\x02\u026C\xC0\x03\x02\x02\x02\u026D\u026E\t\x1D\x02\x02" + - "\u026E\xC2\x03\x02\x02\x02\u026F\u0270\t\x1E\x02\x02\u0270\xC4\x03\x02" + - "\x02\x02\u0271\u0272\t\x1F\x02\x02\u0272\xC6\x03\x02\x02\x02\u0273\u0274" + - "\t \x02\x02\u0274\xC8\x03\x02\x02\x02\u0275\u0276\t!\x02\x02\u0276\xCA" + - "\x03\x02\x02\x02\r\x02\u01D4\u01DC\u020E\u0215\u021B\u021F\u0225\u0227" + - "\u0232\u023A\x03\x02\x03\x02"; + "\x05\xCBf\x02\u021B\u021C\x05\xCDg\x02\u021C\u021D\x05\xC3b\x02\u021D" + + "\u021E\x05\xC1a\x02\u021E\u021F\x05\xAFX\x02\u021F\x82\x03\x02\x02\x02" + + "\u0220\u0221\x05\xC5c\x02\u0221\u0222\x05\xCFh\x02\u0222\u0223\x05\xBD" + + "_\x02\u0223\u0224\x05\xCBf\x02\u0224\u0225\x05\xAFX\x02\u0225\x84\x03" + + "\x02\x02\x02\u0226\u0227\x05\xADW\x02\u0227\u0228\x05\xC3b\x02\u0228\x86" + + "\x03\x02\x02\x02\u0229\u022A\x05\xAFX\x02\u022A\u022B\x05\xC1a\x02\u022B" + + "\u022C\x05\xADW\x02\u022C\x88\x03\x02\x02\x02\u022D\u022E\x05\xC1a\x02" + + "\u022E\u022F\x05\xA7T\x02\u022F\u0230\x05\xBF`\x02\u0230\u0231\x05\xAF" + + "X\x02\u0231\x8A\x03\x02\x02\x02\u0232\u0233\x05\xAFX\x02\u0233\u0234\x05" + + "\xD1i\x02\u0234\u0235\x05\xAFX\x02\u0235\u0236\x05\xC9e\x02\u0236\u0237" + + "\x05\xD7l\x02\u0237\x8C\x03\x02\x02\x02\u0238\u0239\x07.\x02\x02\u0239" + + "\x8E\x03\x02\x02\x02\u023A\u023B\x07<\x02\x02\u023B\x90\x03\x02\x02\x02" + + "\u023C\u023D\x071\x02\x02\u023D\x92\x03\x02\x02\x02\u023E\u023F\x07/\x02" + + "\x02\u023F\x94\x03\x02\x02\x02\u0240\u0241\x07*\x02\x02\u0241\x96\x03" + + "\x02\x02\x02\u0242\u0243\x07+\x02\x02\u0243\x98\x03\x02\x02\x02\u0244" + + "\u0246\t\x02\x02\x02\u0245\u0244\x03\x02\x02\x02\u0246\u0247\x03\x02\x02" + + "\x02\u0247\u0245\x03\x02\x02\x02\u0247\u0248\x03\x02\x02\x02\u0248\u0249" + + "\x03\x02\x02\x02\u0249\u024A\t\x03\x02\x02\u024A\x9A\x03\x02\x02\x02\u024B" + + "\u024D\t\x02\x02\x02\u024C\u024B\x03\x02\x02\x02\u024D\u024E\x03\x02\x02" + + "\x02\u024E\u024C\x03\x02\x02\x02\u024E\u024F\x03\x02\x02\x02\u024F\x9C" + + "\x03\x02\x02\x02\u0250\u0254\t\x04\x02\x02\u0251\u0253\t\x05\x02\x02\u0252" + + "\u0251\x03\x02\x02\x02\u0253\u0256\x03\x02\x02\x02\u0254\u0252\x03\x02" + + "\x02\x02\u0254\u0255\x03\x02\x02\x02\u0255\u0259\x03\x02\x02\x02\u0256" + + "\u0254\x03\x02\x02\x02\u0257\u0259\x07,\x02\x02\u0258\u0250\x03\x02\x02" + + "\x02\u0258\u0257\x03\x02\x02\x02\u0259\x9E\x03\x02\x02\x02\u025A\u0260" + + "\x07$\x02\x02\u025B\u025F\n\x06\x02\x02\u025C\u025D\x07^\x02\x02\u025D" + + "\u025F\x07$\x02\x02\u025E\u025B\x03\x02\x02\x02\u025E\u025C\x03\x02\x02" + + "\x02\u025F\u0262\x03\x02\x02\x02\u0260\u025E\x03\x02\x02\x02\u0260\u0261" + + "\x03\x02\x02\x02\u0261\u0263\x03\x02\x02\x02\u0262\u0260\x03\x02\x02\x02" + + "\u0263\u0264\x07$\x02\x02\u0264\xA0\x03\x02\x02\x02\u0265\u0266\x07/\x02" + + "\x02\u0266\u0267\x07/\x02\x02\u0267\u026B\x03\x02\x02\x02\u0268\u026A" + + "\n\x07\x02\x02\u0269\u0268\x03\x02\x02\x02\u026A\u026D\x03\x02\x02\x02" + + "\u026B\u0269\x03\x02\x02\x02\u026B\u026C\x03\x02\x02\x02\u026C\u026E\x03" + + "\x02\x02\x02\u026D\u026B\x03\x02\x02\x02\u026E\u026F\bQ\x02\x02\u026F" + + "\xA2\x03\x02\x02\x02\u0270\u0272\t\b\x02\x02\u0271\u0270\x03\x02\x02\x02" + + "\u0272\u0273\x03\x02\x02\x02\u0273\u0271\x03\x02\x02\x02\u0273\u0274\x03" + + "\x02\x02\x02\u0274\u0275\x03\x02\x02\x02\u0275\u0276\bR\x02\x02\u0276" + + "\xA4\x03\x02\x02\x02\u0277\u0278\x06S\x02\x02\u0278\u0279\v\x02\x02\x02" + + "\u0279\u027A\x03\x02\x02\x02\u027A\u027B\bS\x02\x02\u027B\xA6\x03\x02" + + "\x02\x02\u027C\u027D\t\t\x02\x02\u027D\xA8\x03\x02\x02\x02\u027E\u027F" + + "\t\n\x02\x02\u027F\xAA\x03\x02\x02\x02\u0280\u0281\t\v\x02\x02\u0281\xAC" + + "\x03\x02\x02\x02\u0282\u0283\t\f\x02\x02\u0283\xAE\x03\x02\x02\x02\u0284" + + "\u0285\t\r\x02\x02\u0285\xB0\x03\x02\x02\x02\u0286\u0287\t\x0E\x02\x02" + + "\u0287\xB2\x03\x02\x02\x02\u0288\u0289\t\x03\x02\x02\u0289\xB4\x03\x02" + + "\x02\x02\u028A\u028B\t\x0F\x02\x02\u028B\xB6\x03\x02\x02\x02\u028C\u028D" + + "\t\x10\x02\x02\u028D\xB8\x03\x02\x02\x02\u028E\u028F\t\x11\x02\x02\u028F" + + "\xBA\x03\x02\x02\x02\u0290\u0291\t\x12\x02\x02\u0291\xBC\x03\x02\x02\x02" + + "\u0292\u0293\t\x13\x02\x02\u0293\xBE\x03\x02\x02\x02\u0294\u0295\t\x14" + + "\x02\x02\u0295\xC0\x03\x02\x02\x02\u0296\u0297\t\x15\x02\x02\u0297\xC2" + + "\x03\x02\x02\x02\u0298\u0299\t\x16\x02\x02\u0299\xC4\x03\x02\x02\x02\u029A" + + "\u029B\t\x17\x02\x02\u029B\xC6\x03\x02\x02\x02\u029C\u029D\t\x18\x02\x02" + + "\u029D\xC8\x03\x02\x02\x02\u029E\u029F\t\x19\x02\x02\u029F\xCA\x03\x02" + + "\x02\x02\u02A0\u02A1\t\x1A\x02\x02\u02A1\xCC\x03\x02\x02\x02\u02A2\u02A3" + + "\t\x1B\x02\x02\u02A3\xCE\x03\x02\x02\x02\u02A4\u02A5\t\x1C\x02\x02\u02A5" + + "\xD0\x03\x02\x02\x02\u02A6\u02A7\t\x1D\x02\x02\u02A7\xD2\x03\x02\x02\x02" + + "\u02A8\u02A9\t\x1E\x02\x02\u02A9\xD4\x03\x02\x02\x02\u02AA\u02AB\t\x1F" + + "\x02\x02\u02AB\xD6\x03\x02\x02\x02\u02AC\u02AD\t \x02\x02\u02AD\xD8\x03" + + "\x02\x02\x02\u02AE\u02AF\t!\x02\x02\u02AF\xDA\x03\x02\x02\x02\r\x02\u020D" + + "\u0215\u0247\u024E\u0254\u0258\u025E\u0260\u026B\u0273\x03\x02\x03\x02"; public static readonly _serializedATN: string = Utils.join( [ SFMLLexer._serializedATNSegment0, diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLListener.ts b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLListener.ts index ec7ef9df2..3cf9507eb 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLListener.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLListener.ts @@ -64,6 +64,7 @@ import { SetOpContext } from "./SFMLParser"; import { LabelAccessContext } from "./SFMLParser"; import { RoundrobinContext } from "./SFMLParser"; import { LabelContext } from "./SFMLParser"; +import { EmptyslotsContext } from "./SFMLParser"; import { IdentifierContext } from "./SFMLParser"; import { StringContext } from "./SFMLParser"; import { NumberContext } from "./SFMLParser"; @@ -797,6 +798,17 @@ export interface SFMLListener extends ParseTreeListener { */ exitLabel?: (ctx: LabelContext) => void; + /** + * Enter a parse tree produced by `SFMLParser.emptyslots`. + * @param ctx the parse tree + */ + enterEmptyslots?: (ctx: EmptyslotsContext) => void; + /** + * Exit a parse tree produced by `SFMLParser.emptyslots`. + * @param ctx the parse tree + */ + exitEmptyslots?: (ctx: EmptyslotsContext) => void; + /** * Enter a parse tree produced by `SFMLParser.identifier`. * @param ctx the parse tree diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLParser.ts b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLParser.ts index a3015720c..70174779e 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLParser.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLParser.ts @@ -57,51 +57,59 @@ export class SFMLParser extends Parser { public static readonly OUTPUT = 27; public static readonly WHERE = 28; public static readonly SLOTS = 29; - public static readonly RETAIN = 30; - public static readonly EACH = 31; - public static readonly EXCEPT = 32; - public static readonly FORGET = 33; - public static readonly WITHOUT = 34; - public static readonly WITH = 35; - public static readonly TAG = 36; - public static readonly HASHTAG = 37; - public static readonly ROUND = 38; - public static readonly ROBIN = 39; - public static readonly BY = 40; - public static readonly LABEL = 41; - public static readonly BLOCK = 42; - public static readonly TOP = 43; - public static readonly BOTTOM = 44; - public static readonly NORTH = 45; - public static readonly EAST = 46; - public static readonly SOUTH = 47; - public static readonly WEST = 48; - public static readonly SIDE = 49; - public static readonly TICKS = 50; - public static readonly TICK = 51; - public static readonly SECONDS = 52; - public static readonly SECOND = 53; - public static readonly GLOBAL = 54; - public static readonly PLUS = 55; - public static readonly REDSTONE = 56; - public static readonly PULSE = 57; - public static readonly DO = 58; - public static readonly END = 59; - public static readonly NAME = 60; - public static readonly EVERY = 61; - public static readonly COMMA = 62; - public static readonly COLON = 63; - public static readonly SLASH = 64; - public static readonly DASH = 65; - public static readonly LPAREN = 66; - public static readonly RPAREN = 67; - public static readonly NUMBER_WITH_G_SUFFIX = 68; - public static readonly NUMBER = 69; - public static readonly IDENTIFIER = 70; - public static readonly STRING = 71; - public static readonly LINE_COMMENT = 72; - public static readonly WS = 73; - public static readonly UNUSED = 74; + public static readonly SLOT = 30; + public static readonly RETAIN = 31; + public static readonly EACH = 32; + public static readonly EXCEPT = 33; + public static readonly FORGET = 34; + public static readonly EMPTY = 35; + public static readonly IN = 36; + public static readonly WITHOUT = 37; + public static readonly WITH = 38; + public static readonly TAG = 39; + public static readonly HASHTAG = 40; + public static readonly ROUND = 41; + public static readonly ROBIN = 42; + public static readonly BY = 43; + public static readonly LABEL = 44; + public static readonly BLOCK = 45; + public static readonly TOP = 46; + public static readonly BOTTOM = 47; + public static readonly NORTH = 48; + public static readonly EAST = 49; + public static readonly SOUTH = 50; + public static readonly WEST = 51; + public static readonly SIDE = 52; + public static readonly LEFT = 53; + public static readonly RIGHT = 54; + public static readonly FRONT = 55; + public static readonly BACK = 56; + public static readonly NULL = 57; + public static readonly TICKS = 58; + public static readonly TICK = 59; + public static readonly SECONDS = 60; + public static readonly SECOND = 61; + public static readonly GLOBAL = 62; + public static readonly PLUS = 63; + public static readonly REDSTONE = 64; + public static readonly PULSE = 65; + public static readonly DO = 66; + public static readonly END = 67; + public static readonly NAME = 68; + public static readonly EVERY = 69; + public static readonly COMMA = 70; + public static readonly COLON = 71; + public static readonly SLASH = 72; + public static readonly DASH = 73; + public static readonly LPAREN = 74; + public static readonly RPAREN = 75; + public static readonly NUMBER_WITH_G_SUFFIX = 76; + public static readonly NUMBER = 77; + public static readonly IDENTIFIER = 78; + public static readonly STRING = 79; + public static readonly LINE_COMMENT = 80; + public static readonly WS = 81; + public static readonly UNUSED = 82; public static readonly RULE_program = 0; public static readonly RULE_name = 1; public static readonly RULE_trigger = 2; @@ -137,9 +145,10 @@ export class SFMLParser extends Parser { public static readonly RULE_labelAccess = 32; public static readonly RULE_roundrobin = 33; public static readonly RULE_label = 34; - public static readonly RULE_identifier = 35; - public static readonly RULE_string = 36; - public static readonly RULE_number = 37; + public static readonly RULE_emptyslots = 35; + public static readonly RULE_identifier = 36; + public static readonly RULE_string = 37; + public static readonly RULE_number = 38; // tslint:disable:no-trailing-whitespace public static readonly ruleNames: string[] = [ "program", "name", "trigger", "interval", "block", "statement", "forgetStatement", @@ -148,7 +157,8 @@ export class SFMLParser extends Parser { "resourceExclusion", "resourceId", "resourceIdList", "resourceIdDisjunction", "with", "withClause", "tagMatcher", "sidequalifier", "side", "slotqualifier", "rangeset", "range", "ifStatement", "boolexpr", "comparisonOp", "setOp", - "labelAccess", "roundrobin", "label", "identifier", "string", "number", + "labelAccess", "roundrobin", "label", "emptyslots", "identifier", "string", + "number", ]; private static readonly _LITERAL_NAMES: Array = [ @@ -157,21 +167,23 @@ export class SFMLParser extends Parser { undefined, "'>'", undefined, "'<'", undefined, "'='", undefined, "'<='", undefined, "'>='", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, "'#'", undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, "'#'", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, - undefined, undefined, undefined, undefined, undefined, "','", "':'", "'/'", - "'-'", "'('", "')'", + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, "','", + "':'", "'/'", "'-'", "'('", "')'", ]; private static readonly _SYMBOLIC_NAMES: Array = [ undefined, "IF", "THEN", "ELSE", "HAS", "OVERALL", "SOME", "ONE", "LONE", "TRUE", "FALSE", "NOT", "AND", "OR", "GT", "GT_SYMBOL", "LT", "LT_SYMBOL", "EQ", "EQ_SYMBOL", "LE", "LE_SYMBOL", "GE", "GE_SYMBOL", "FROM", "TO", - "INPUT", "OUTPUT", "WHERE", "SLOTS", "RETAIN", "EACH", "EXCEPT", "FORGET", - "WITHOUT", "WITH", "TAG", "HASHTAG", "ROUND", "ROBIN", "BY", "LABEL", - "BLOCK", "TOP", "BOTTOM", "NORTH", "EAST", "SOUTH", "WEST", "SIDE", "TICKS", - "TICK", "SECONDS", "SECOND", "GLOBAL", "PLUS", "REDSTONE", "PULSE", "DO", - "END", "NAME", "EVERY", "COMMA", "COLON", "SLASH", "DASH", "LPAREN", "RPAREN", + "INPUT", "OUTPUT", "WHERE", "SLOTS", "SLOT", "RETAIN", "EACH", "EXCEPT", + "FORGET", "EMPTY", "IN", "WITHOUT", "WITH", "TAG", "HASHTAG", "ROUND", + "ROBIN", "BY", "LABEL", "BLOCK", "TOP", "BOTTOM", "NORTH", "EAST", "SOUTH", + "WEST", "SIDE", "LEFT", "RIGHT", "FRONT", "BACK", "NULL", "TICKS", "TICK", + "SECONDS", "SECOND", "GLOBAL", "PLUS", "REDSTONE", "PULSE", "DO", "END", + "NAME", "EVERY", "COMMA", "COLON", "SLASH", "DASH", "LPAREN", "RPAREN", "NUMBER_WITH_G_SUFFIX", "NUMBER", "IDENTIFIER", "STRING", "LINE_COMMENT", "WS", "UNUSED", ]; @@ -209,31 +221,31 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 77; + this.state = 79; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.NAME) { { - this.state = 76; + this.state = 78; this.name(); } } - this.state = 82; + this.state = 84; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === SFMLParser.EVERY) { { { - this.state = 79; + this.state = 81; this.trigger(); } } - this.state = 84; + this.state = 86; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 85; + this.state = 87; this.match(SFMLParser.EOF); } } @@ -258,9 +270,9 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 87; + this.state = 89; this.match(SFMLParser.NAME); - this.state = 88; + this.state = 90; this.string(); } } @@ -283,22 +295,22 @@ export class SFMLParser extends Parser { let _localctx: TriggerContext = new TriggerContext(this._ctx, this.state); this.enterRule(_localctx, 4, SFMLParser.RULE_trigger); try { - this.state = 103; + this.state = 105; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 2, this._ctx) ) { case 1: _localctx = new TimerTriggerContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 90; + this.state = 92; this.match(SFMLParser.EVERY); - this.state = 91; + this.state = 93; this.interval(); - this.state = 92; + this.state = 94; this.match(SFMLParser.DO); - this.state = 93; + this.state = 95; this.block(); - this.state = 94; + this.state = 96; this.match(SFMLParser.END); } break; @@ -307,17 +319,17 @@ export class SFMLParser extends Parser { _localctx = new PulseTriggerContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 96; + this.state = 98; this.match(SFMLParser.EVERY); - this.state = 97; + this.state = 99; this.match(SFMLParser.REDSTONE); - this.state = 98; + this.state = 100; this.match(SFMLParser.PULSE); - this.state = 99; + this.state = 101; this.match(SFMLParser.DO); - this.state = 100; + this.state = 102; this.block(); - this.state = 101; + this.state = 103; this.match(SFMLParser.END); } break; @@ -343,7 +355,7 @@ export class SFMLParser extends Parser { this.enterRule(_localctx, 6, SFMLParser.RULE_interval); let _la: number; try { - this.state = 122; + this.state = 124; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.TICKS: @@ -356,41 +368,41 @@ export class SFMLParser extends Parser { _localctx = new IntervalSpaceContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 106; + this.state = 108; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.NUMBER) { { - this.state = 105; + this.state = 107; this.match(SFMLParser.NUMBER); } } - this.state = 109; + this.state = 111; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.GLOBAL) { { - this.state = 108; + this.state = 110; this.match(SFMLParser.GLOBAL); } } - this.state = 113; + this.state = 115; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.PLUS) { { - this.state = 111; + this.state = 113; this.match(SFMLParser.PLUS); - this.state = 112; + this.state = 114; this.match(SFMLParser.NUMBER); } } - this.state = 115; + this.state = 117; _la = this._input.LA(1); - if (!(((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & ((1 << (SFMLParser.TICKS - 50)) | (1 << (SFMLParser.TICK - 50)) | (1 << (SFMLParser.SECONDS - 50)) | (1 << (SFMLParser.SECOND - 50)))) !== 0))) { + if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & ((1 << (SFMLParser.TICKS - 58)) | (1 << (SFMLParser.TICK - 58)) | (1 << (SFMLParser.SECONDS - 58)) | (1 << (SFMLParser.SECOND - 58)))) !== 0))) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token.EOF) { @@ -406,23 +418,23 @@ export class SFMLParser extends Parser { _localctx = new IntervalNoSpaceContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 116; + this.state = 118; this.match(SFMLParser.NUMBER_WITH_G_SUFFIX); - this.state = 119; + this.state = 121; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.PLUS) { { - this.state = 117; + this.state = 119; this.match(SFMLParser.PLUS); - this.state = 118; + this.state = 120; this.match(SFMLParser.NUMBER); } } - this.state = 121; + this.state = 123; _la = this._input.LA(1); - if (!(((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & ((1 << (SFMLParser.TICKS - 50)) | (1 << (SFMLParser.TICK - 50)) | (1 << (SFMLParser.SECONDS - 50)) | (1 << (SFMLParser.SECOND - 50)))) !== 0))) { + if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & ((1 << (SFMLParser.TICKS - 58)) | (1 << (SFMLParser.TICK - 58)) | (1 << (SFMLParser.SECONDS - 58)) | (1 << (SFMLParser.SECOND - 58)))) !== 0))) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token.EOF) { @@ -460,17 +472,17 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 127; + this.state = 129; this._errHandler.sync(this); _la = this._input.LA(1); while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SFMLParser.IF) | (1 << SFMLParser.FROM) | (1 << SFMLParser.TO) | (1 << SFMLParser.INPUT) | (1 << SFMLParser.OUTPUT))) !== 0) || _la === SFMLParser.FORGET) { { { - this.state = 124; + this.state = 126; this.statement(); } } - this.state = 129; + this.state = 131; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -495,14 +507,14 @@ export class SFMLParser extends Parser { let _localctx: StatementContext = new StatementContext(this._ctx, this.state); this.enterRule(_localctx, 10, SFMLParser.RULE_statement); try { - this.state = 134; + this.state = 136; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.FROM: case SFMLParser.INPUT: this.enterOuterAlt(_localctx, 1); { - this.state = 130; + this.state = 132; this.inputStatement(); } break; @@ -510,21 +522,21 @@ export class SFMLParser extends Parser { case SFMLParser.OUTPUT: this.enterOuterAlt(_localctx, 2); { - this.state = 131; + this.state = 133; this.outputStatement(); } break; case SFMLParser.IF: this.enterOuterAlt(_localctx, 3); { - this.state = 132; + this.state = 134; this.ifStatement(); } break; case SFMLParser.FORGET: this.enterOuterAlt(_localctx, 4); { - this.state = 133; + this.state = 135; this.forgetStatement(); } break; @@ -555,42 +567,42 @@ export class SFMLParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 136; - this.match(SFMLParser.FORGET); this.state = 138; + this.match(SFMLParser.FORGET); + this.state = 140; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 52)) & ~0x1F) === 0 && ((1 << (_la - 52)) & ((1 << (SFMLParser.SECONDS - 52)) | (1 << (SFMLParser.SECOND - 52)) | (1 << (SFMLParser.GLOBAL - 52)) | (1 << (SFMLParser.REDSTONE - 52)) | (1 << (SFMLParser.IDENTIFIER - 52)) | (1 << (SFMLParser.STRING - 52)))) !== 0)) { + if (((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & ((1 << (SFMLParser.TOP - 46)) | (1 << (SFMLParser.BOTTOM - 46)) | (1 << (SFMLParser.LEFT - 46)) | (1 << (SFMLParser.RIGHT - 46)) | (1 << (SFMLParser.FRONT - 46)) | (1 << (SFMLParser.BACK - 46)) | (1 << (SFMLParser.SECONDS - 46)) | (1 << (SFMLParser.SECOND - 46)) | (1 << (SFMLParser.GLOBAL - 46)) | (1 << (SFMLParser.REDSTONE - 46)))) !== 0) || _la === SFMLParser.IDENTIFIER || _la === SFMLParser.STRING) { { - this.state = 137; + this.state = 139; this.label(); } } - this.state = 144; + this.state = 146; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 11, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 140; + this.state = 142; this.match(SFMLParser.COMMA); - this.state = 141; + this.state = 143; this.label(); } } } - this.state = 146; + this.state = 148; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 11, this._ctx); } - this.state = 148; + this.state = 150; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.COMMA) { { - this.state = 147; + this.state = 149; this.match(SFMLParser.COMMA); } } @@ -617,85 +629,85 @@ export class SFMLParser extends Parser { this.enterRule(_localctx, 14, SFMLParser.RULE_inputStatement); let _la: number; try { - this.state = 174; + this.state = 176; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.INPUT: this.enterOuterAlt(_localctx, 1); { - this.state = 150; - this.match(SFMLParser.INPUT); this.state = 152; + this.match(SFMLParser.INPUT); + this.state = 154; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 30)) & ~0x1F) === 0 && ((1 << (_la - 30)) & ((1 << (SFMLParser.RETAIN - 30)) | (1 << (SFMLParser.WITHOUT - 30)) | (1 << (SFMLParser.WITH - 30)) | (1 << (SFMLParser.SECONDS - 30)) | (1 << (SFMLParser.SECOND - 30)) | (1 << (SFMLParser.GLOBAL - 30)) | (1 << (SFMLParser.REDSTONE - 30)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SFMLParser.NUMBER - 69)) | (1 << (SFMLParser.IDENTIFIER - 69)) | (1 << (SFMLParser.STRING - 69)))) !== 0)) { + if (((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & ((1 << (SFMLParser.RETAIN - 31)) | (1 << (SFMLParser.WITHOUT - 31)) | (1 << (SFMLParser.WITH - 31)) | (1 << (SFMLParser.TOP - 31)) | (1 << (SFMLParser.BOTTOM - 31)) | (1 << (SFMLParser.LEFT - 31)) | (1 << (SFMLParser.RIGHT - 31)) | (1 << (SFMLParser.FRONT - 31)) | (1 << (SFMLParser.BACK - 31)) | (1 << (SFMLParser.SECONDS - 31)) | (1 << (SFMLParser.SECOND - 31)) | (1 << (SFMLParser.GLOBAL - 31)))) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & ((1 << (SFMLParser.REDSTONE - 64)) | (1 << (SFMLParser.NUMBER - 64)) | (1 << (SFMLParser.IDENTIFIER - 64)) | (1 << (SFMLParser.STRING - 64)))) !== 0)) { { - this.state = 151; + this.state = 153; this.inputResourceLimits(); } } - this.state = 155; + this.state = 157; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EXCEPT) { { - this.state = 154; + this.state = 156; this.resourceExclusion(); } } - this.state = 157; - this.match(SFMLParser.FROM); this.state = 159; + this.match(SFMLParser.FROM); + this.state = 161; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EACH) { { - this.state = 158; + this.state = 160; this.match(SFMLParser.EACH); } } - this.state = 161; + this.state = 163; this.labelAccess(); } break; case SFMLParser.FROM: this.enterOuterAlt(_localctx, 2); { - this.state = 162; - this.match(SFMLParser.FROM); this.state = 164; + this.match(SFMLParser.FROM); + this.state = 166; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EACH) { { - this.state = 163; + this.state = 165; this.match(SFMLParser.EACH); } } - this.state = 166; + this.state = 168; this.labelAccess(); - this.state = 167; - this.match(SFMLParser.INPUT); this.state = 169; + this.match(SFMLParser.INPUT); + this.state = 171; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 30)) & ~0x1F) === 0 && ((1 << (_la - 30)) & ((1 << (SFMLParser.RETAIN - 30)) | (1 << (SFMLParser.WITHOUT - 30)) | (1 << (SFMLParser.WITH - 30)) | (1 << (SFMLParser.SECONDS - 30)) | (1 << (SFMLParser.SECOND - 30)) | (1 << (SFMLParser.GLOBAL - 30)) | (1 << (SFMLParser.REDSTONE - 30)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SFMLParser.NUMBER - 69)) | (1 << (SFMLParser.IDENTIFIER - 69)) | (1 << (SFMLParser.STRING - 69)))) !== 0)) { + if (((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & ((1 << (SFMLParser.RETAIN - 31)) | (1 << (SFMLParser.WITHOUT - 31)) | (1 << (SFMLParser.WITH - 31)) | (1 << (SFMLParser.TOP - 31)) | (1 << (SFMLParser.BOTTOM - 31)) | (1 << (SFMLParser.LEFT - 31)) | (1 << (SFMLParser.RIGHT - 31)) | (1 << (SFMLParser.FRONT - 31)) | (1 << (SFMLParser.BACK - 31)) | (1 << (SFMLParser.SECONDS - 31)) | (1 << (SFMLParser.SECOND - 31)) | (1 << (SFMLParser.GLOBAL - 31)))) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & ((1 << (SFMLParser.REDSTONE - 64)) | (1 << (SFMLParser.NUMBER - 64)) | (1 << (SFMLParser.IDENTIFIER - 64)) | (1 << (SFMLParser.STRING - 64)))) !== 0)) { { - this.state = 168; + this.state = 170; this.inputResourceLimits(); } } - this.state = 172; + this.state = 174; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EXCEPT) { { - this.state = 171; + this.state = 173; this.resourceExclusion(); } } @@ -726,85 +738,105 @@ export class SFMLParser extends Parser { this.enterRule(_localctx, 16, SFMLParser.RULE_outputStatement); let _la: number; try { - this.state = 200; + this.state = 208; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.OUTPUT: this.enterOuterAlt(_localctx, 1); { - this.state = 176; - this.match(SFMLParser.OUTPUT); this.state = 178; + this.match(SFMLParser.OUTPUT); + this.state = 180; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 30)) & ~0x1F) === 0 && ((1 << (_la - 30)) & ((1 << (SFMLParser.RETAIN - 30)) | (1 << (SFMLParser.WITHOUT - 30)) | (1 << (SFMLParser.WITH - 30)) | (1 << (SFMLParser.SECONDS - 30)) | (1 << (SFMLParser.SECOND - 30)) | (1 << (SFMLParser.GLOBAL - 30)) | (1 << (SFMLParser.REDSTONE - 30)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SFMLParser.NUMBER - 69)) | (1 << (SFMLParser.IDENTIFIER - 69)) | (1 << (SFMLParser.STRING - 69)))) !== 0)) { + if (((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & ((1 << (SFMLParser.RETAIN - 31)) | (1 << (SFMLParser.WITHOUT - 31)) | (1 << (SFMLParser.WITH - 31)) | (1 << (SFMLParser.TOP - 31)) | (1 << (SFMLParser.BOTTOM - 31)) | (1 << (SFMLParser.LEFT - 31)) | (1 << (SFMLParser.RIGHT - 31)) | (1 << (SFMLParser.FRONT - 31)) | (1 << (SFMLParser.BACK - 31)) | (1 << (SFMLParser.SECONDS - 31)) | (1 << (SFMLParser.SECOND - 31)) | (1 << (SFMLParser.GLOBAL - 31)))) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & ((1 << (SFMLParser.REDSTONE - 64)) | (1 << (SFMLParser.NUMBER - 64)) | (1 << (SFMLParser.IDENTIFIER - 64)) | (1 << (SFMLParser.STRING - 64)))) !== 0)) { { - this.state = 177; + this.state = 179; this.outputResourceLimits(); } } - this.state = 181; + this.state = 183; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EXCEPT) { { - this.state = 180; + this.state = 182; this.resourceExclusion(); } } - this.state = 183; - this.match(SFMLParser.TO); this.state = 185; + this.match(SFMLParser.TO); + this.state = 187; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === SFMLParser.EMPTY) { + { + this.state = 186; + this.emptyslots(); + } + } + + this.state = 190; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EACH) { { - this.state = 184; + this.state = 189; this.match(SFMLParser.EACH); } } - this.state = 187; + this.state = 192; this.labelAccess(); } break; case SFMLParser.TO: this.enterOuterAlt(_localctx, 2); { - this.state = 188; + this.state = 193; this.match(SFMLParser.TO); - this.state = 190; + this.state = 195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === SFMLParser.EMPTY) { + { + this.state = 194; + this.emptyslots(); + } + } + + this.state = 198; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EACH) { { - this.state = 189; + this.state = 197; this.match(SFMLParser.EACH); } } - this.state = 192; + this.state = 200; this.labelAccess(); - this.state = 193; + this.state = 201; this.match(SFMLParser.OUTPUT); - this.state = 195; + this.state = 203; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 30)) & ~0x1F) === 0 && ((1 << (_la - 30)) & ((1 << (SFMLParser.RETAIN - 30)) | (1 << (SFMLParser.WITHOUT - 30)) | (1 << (SFMLParser.WITH - 30)) | (1 << (SFMLParser.SECONDS - 30)) | (1 << (SFMLParser.SECOND - 30)) | (1 << (SFMLParser.GLOBAL - 30)) | (1 << (SFMLParser.REDSTONE - 30)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SFMLParser.NUMBER - 69)) | (1 << (SFMLParser.IDENTIFIER - 69)) | (1 << (SFMLParser.STRING - 69)))) !== 0)) { + if (((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & ((1 << (SFMLParser.RETAIN - 31)) | (1 << (SFMLParser.WITHOUT - 31)) | (1 << (SFMLParser.WITH - 31)) | (1 << (SFMLParser.TOP - 31)) | (1 << (SFMLParser.BOTTOM - 31)) | (1 << (SFMLParser.LEFT - 31)) | (1 << (SFMLParser.RIGHT - 31)) | (1 << (SFMLParser.FRONT - 31)) | (1 << (SFMLParser.BACK - 31)) | (1 << (SFMLParser.SECONDS - 31)) | (1 << (SFMLParser.SECOND - 31)) | (1 << (SFMLParser.GLOBAL - 31)))) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & ((1 << (SFMLParser.REDSTONE - 64)) | (1 << (SFMLParser.NUMBER - 64)) | (1 << (SFMLParser.IDENTIFIER - 64)) | (1 << (SFMLParser.STRING - 64)))) !== 0)) { { - this.state = 194; + this.state = 202; this.outputResourceLimits(); } } - this.state = 198; + this.state = 206; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EXCEPT) { { - this.state = 197; + this.state = 205; this.resourceExclusion(); } } @@ -836,7 +868,7 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 202; + this.state = 210; this.resourceLimitList(); } } @@ -861,7 +893,7 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 204; + this.state = 212; this.resourceLimitList(); } } @@ -888,32 +920,32 @@ export class SFMLParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 206; + this.state = 214; this.resourceLimit(); - this.state = 211; + this.state = 219; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 207; + this.state = 215; this.match(SFMLParser.COMMA); - this.state = 208; + this.state = 216; this.resourceLimit(); } } } - this.state = 213; + this.state = 221; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); } - this.state = 215; + this.state = 223; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.COMMA) { { - this.state = 214; + this.state = 222; this.match(SFMLParser.COMMA); } } @@ -940,30 +972,30 @@ export class SFMLParser extends Parser { this.enterRule(_localctx, 24, SFMLParser.RULE_resourceLimit); let _la: number; try { - this.state = 229; + this.state = 237; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 32, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 34, this._ctx) ) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 218; + this.state = 226; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.RETAIN || _la === SFMLParser.NUMBER) { { - this.state = 217; + this.state = 225; this.limit(); } } - this.state = 220; + this.state = 228; this.resourceIdDisjunction(); - this.state = 222; + this.state = 230; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.WITHOUT || _la === SFMLParser.WITH) { { - this.state = 221; + this.state = 229; this.with(); } } @@ -974,14 +1006,14 @@ export class SFMLParser extends Parser { case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 224; + this.state = 232; this.limit(); - this.state = 226; + this.state = 234; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.WITHOUT || _la === SFMLParser.WITH) { { - this.state = 225; + this.state = 233; this.with(); } } @@ -992,7 +1024,7 @@ export class SFMLParser extends Parser { case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 228; + this.state = 236; this.with(); } break; @@ -1017,16 +1049,16 @@ export class SFMLParser extends Parser { let _localctx: LimitContext = new LimitContext(this._ctx, this.state); this.enterRule(_localctx, 26, SFMLParser.RULE_limit); try { - this.state = 236; + this.state = 244; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 33, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 35, this._ctx) ) { case 1: _localctx = new QuantityRetentionLimitContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 231; + this.state = 239; this.quantity(); - this.state = 232; + this.state = 240; this.retention(); } break; @@ -1035,7 +1067,7 @@ export class SFMLParser extends Parser { _localctx = new RetentionLimitContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 234; + this.state = 242; this.retention(); } break; @@ -1044,7 +1076,7 @@ export class SFMLParser extends Parser { _localctx = new QuantityLimitContext(_localctx); this.enterOuterAlt(_localctx, 3); { - this.state = 235; + this.state = 243; this.quantity(); } break; @@ -1072,14 +1104,14 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 238; + this.state = 246; this.number(); - this.state = 240; + this.state = 248; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EACH) { { - this.state = 239; + this.state = 247; this.match(SFMLParser.EACH); } } @@ -1108,16 +1140,16 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 242; + this.state = 250; this.match(SFMLParser.RETAIN); - this.state = 243; + this.state = 251; this.number(); - this.state = 245; + this.state = 253; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.EACH) { { - this.state = 244; + this.state = 252; this.match(SFMLParser.EACH); } } @@ -1145,9 +1177,9 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 247; + this.state = 255; this.match(SFMLParser.EXCEPT); - this.state = 248; + this.state = 256; this.resourceIdList(); } } @@ -1170,9 +1202,15 @@ export class SFMLParser extends Parser { let _localctx: ResourceIdContext = new ResourceIdContext(this._ctx, this.state); this.enterRule(_localctx, 34, SFMLParser.RULE_resourceId); try { - this.state = 270; + this.state = 278; this._errHandler.sync(this); switch (this._input.LA(1)) { + case SFMLParser.TOP: + case SFMLParser.BOTTOM: + case SFMLParser.LEFT: + case SFMLParser.RIGHT: + case SFMLParser.FRONT: + case SFMLParser.BACK: case SFMLParser.SECONDS: case SFMLParser.SECOND: case SFMLParser.GLOBAL: @@ -1182,56 +1220,56 @@ export class SFMLParser extends Parser { this.enterOuterAlt(_localctx, 1); { { - this.state = 250; + this.state = 258; this.identifier(); } - this.state = 267; + this.state = 275; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 41, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 43, this._ctx) ) { case 1: { - this.state = 251; + this.state = 259; this.match(SFMLParser.COLON); - this.state = 253; + this.state = 261; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 36, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 38, this._ctx) ) { case 1: { - this.state = 252; + this.state = 260; this.identifier(); } break; } - this.state = 265; + this.state = 273; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 40, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 42, this._ctx) ) { case 1: { - this.state = 255; + this.state = 263; this.match(SFMLParser.COLON); - this.state = 257; + this.state = 265; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 37, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 39, this._ctx) ) { case 1: { - this.state = 256; + this.state = 264; this.identifier(); } break; } - this.state = 263; + this.state = 271; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 39, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 41, this._ctx) ) { case 1: { - this.state = 259; + this.state = 267; this.match(SFMLParser.COLON); - this.state = 261; + this.state = 269; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 38, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 40, this._ctx) ) { case 1: { - this.state = 260; + this.state = 268; this.identifier(); } break; @@ -1251,7 +1289,7 @@ export class SFMLParser extends Parser { _localctx = new StringResourceContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 269; + this.state = 277; this.string(); } break; @@ -1281,32 +1319,32 @@ export class SFMLParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 272; + this.state = 280; this.resourceId(); - this.state = 277; + this.state = 285; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 43, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 45, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 273; + this.state = 281; this.match(SFMLParser.COMMA); - this.state = 274; + this.state = 282; this.resourceId(); } } } - this.state = 279; + this.state = 287; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 43, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 45, this._ctx); } - this.state = 281; + this.state = 289; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 44, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 46, this._ctx) ) { case 1: { - this.state = 280; + this.state = 288; this.match(SFMLParser.COMMA); } break; @@ -1335,32 +1373,32 @@ export class SFMLParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 283; + this.state = 291; this.resourceId(); - this.state = 288; + this.state = 296; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 45, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 47, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 284; + this.state = 292; this.match(SFMLParser.OR); - this.state = 285; + this.state = 293; this.resourceId(); } } } - this.state = 290; + this.state = 298; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 45, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 47, this._ctx); } - this.state = 292; + this.state = 300; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 46, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 48, this._ctx) ) { case 1: { - this.state = 291; + this.state = 299; this.match(SFMLParser.OR); } break; @@ -1386,24 +1424,24 @@ export class SFMLParser extends Parser { let _localctx: WithContext = new WithContext(this._ctx, this.state); this.enterRule(_localctx, 40, SFMLParser.RULE_with); try { - this.state = 298; + this.state = 306; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.WITH: this.enterOuterAlt(_localctx, 1); { - this.state = 294; + this.state = 302; this.match(SFMLParser.WITH); - this.state = 295; + this.state = 303; this.withClause(0); } break; case SFMLParser.WITHOUT: this.enterOuterAlt(_localctx, 2); { - this.state = 296; + this.state = 304; this.match(SFMLParser.WITHOUT); - this.state = 297; + this.state = 305; this.withClause(0); } break; @@ -1445,7 +1483,7 @@ export class SFMLParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 315; + this.state = 323; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.LPAREN: @@ -1454,11 +1492,11 @@ export class SFMLParser extends Parser { this._ctx = _localctx; _prevctx = _localctx; - this.state = 301; + this.state = 309; this.match(SFMLParser.LPAREN); - this.state = 302; + this.state = 310; this.withClause(0); - this.state = 303; + this.state = 311; this.match(SFMLParser.RPAREN); } break; @@ -1467,9 +1505,9 @@ export class SFMLParser extends Parser { _localctx = new WithNegationContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 305; + this.state = 313; this.match(SFMLParser.NOT); - this.state = 306; + this.state = 314; this.withClause(4); } break; @@ -1479,19 +1517,19 @@ export class SFMLParser extends Parser { _localctx = new WithTagContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 312; + this.state = 320; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.TAG: { - this.state = 307; + this.state = 315; this.match(SFMLParser.TAG); - this.state = 309; + this.state = 317; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.HASHTAG) { { - this.state = 308; + this.state = 316; this.match(SFMLParser.HASHTAG); } } @@ -1500,14 +1538,14 @@ export class SFMLParser extends Parser { break; case SFMLParser.HASHTAG: { - this.state = 311; + this.state = 319; this.match(SFMLParser.HASHTAG); } break; default: throw new NoViableAltException(this); } - this.state = 314; + this.state = 322; this.tagMatcher(); } break; @@ -1515,9 +1553,9 @@ export class SFMLParser extends Parser { throw new NoViableAltException(this); } this._ctx._stop = this._input.tryLT(-1); - this.state = 325; + this.state = 333; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 52, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 54, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { @@ -1525,20 +1563,20 @@ export class SFMLParser extends Parser { } _prevctx = _localctx; { - this.state = 323; + this.state = 331; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 51, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 53, this._ctx) ) { case 1: { _localctx = new WithConjunctionContext(new WithClauseContext(_parentctx, _parentState)); this.pushNewRecursionContext(_localctx, _startState, SFMLParser.RULE_withClause); - this.state = 317; + this.state = 325; if (!(this.precpred(this._ctx, 3))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); } - this.state = 318; + this.state = 326; this.match(SFMLParser.AND); - this.state = 319; + this.state = 327; this.withClause(4); } break; @@ -1547,22 +1585,22 @@ export class SFMLParser extends Parser { { _localctx = new WithDisjunctionContext(new WithClauseContext(_parentctx, _parentState)); this.pushNewRecursionContext(_localctx, _startState, SFMLParser.RULE_withClause); - this.state = 320; + this.state = 328; if (!(this.precpred(this._ctx, 2))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); } - this.state = 321; + this.state = 329; this.match(SFMLParser.OR); - this.state = 322; + this.state = 330; this.withClause(3); } break; } } } - this.state = 327; + this.state = 335; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 52, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 54, this._ctx); } } } @@ -1586,35 +1624,35 @@ export class SFMLParser extends Parser { this.enterRule(_localctx, 44, SFMLParser.RULE_tagMatcher); try { let _alt: number; - this.state = 346; + this.state = 354; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 55, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 57, this._ctx) ) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 328; + this.state = 336; this.identifier(); - this.state = 329; + this.state = 337; this.match(SFMLParser.COLON); - this.state = 330; + this.state = 338; this.identifier(); - this.state = 335; + this.state = 343; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 53, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 55, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 331; + this.state = 339; this.match(SFMLParser.SLASH); - this.state = 332; + this.state = 340; this.identifier(); } } } - this.state = 337; + this.state = 345; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 53, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 55, this._ctx); } } break; @@ -1622,25 +1660,25 @@ export class SFMLParser extends Parser { case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 338; + this.state = 346; this.identifier(); - this.state = 343; + this.state = 351; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 54, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 56, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 339; + this.state = 347; this.match(SFMLParser.SLASH); - this.state = 340; + this.state = 348; this.identifier(); } } } - this.state = 345; + this.state = 353; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 54, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 56, this._ctx); } } break; @@ -1666,16 +1704,16 @@ export class SFMLParser extends Parser { this.enterRule(_localctx, 46, SFMLParser.RULE_sidequalifier); let _la: number; try { - this.state = 360; + this.state = 368; this._errHandler.sync(this); switch (this._input.LA(1)) { case SFMLParser.EACH: _localctx = new EachSideContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 348; + this.state = 356; this.match(SFMLParser.EACH); - this.state = 349; + this.state = 357; this.match(SFMLParser.SIDE); } break; @@ -1685,28 +1723,33 @@ export class SFMLParser extends Parser { case SFMLParser.EAST: case SFMLParser.SOUTH: case SFMLParser.WEST: + case SFMLParser.LEFT: + case SFMLParser.RIGHT: + case SFMLParser.FRONT: + case SFMLParser.BACK: + case SFMLParser.NULL: _localctx = new ListedSidesContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 350; + this.state = 358; this.side(); - this.state = 355; + this.state = 363; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === SFMLParser.COMMA) { { { - this.state = 351; + this.state = 359; this.match(SFMLParser.COMMA); - this.state = 352; + this.state = 360; this.side(); } } - this.state = 357; + this.state = 365; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 358; + this.state = 366; this.match(SFMLParser.SIDE); } break; @@ -1736,9 +1779,9 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 362; + this.state = 370; _la = this._input.LA(1); - if (!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & ((1 << (SFMLParser.TOP - 43)) | (1 << (SFMLParser.BOTTOM - 43)) | (1 << (SFMLParser.NORTH - 43)) | (1 << (SFMLParser.EAST - 43)) | (1 << (SFMLParser.SOUTH - 43)) | (1 << (SFMLParser.WEST - 43)))) !== 0))) { + if (!(((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & ((1 << (SFMLParser.TOP - 46)) | (1 << (SFMLParser.BOTTOM - 46)) | (1 << (SFMLParser.NORTH - 46)) | (1 << (SFMLParser.EAST - 46)) | (1 << (SFMLParser.SOUTH - 46)) | (1 << (SFMLParser.WEST - 46)) | (1 << (SFMLParser.LEFT - 46)) | (1 << (SFMLParser.RIGHT - 46)) | (1 << (SFMLParser.FRONT - 46)) | (1 << (SFMLParser.BACK - 46)) | (1 << (SFMLParser.NULL - 46)))) !== 0))) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token.EOF) { @@ -1768,12 +1811,23 @@ export class SFMLParser extends Parser { public slotqualifier(): SlotqualifierContext { let _localctx: SlotqualifierContext = new SlotqualifierContext(this._ctx, this.state); this.enterRule(_localctx, 50, SFMLParser.RULE_slotqualifier); + let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 364; - this.match(SFMLParser.SLOTS); - this.state = 365; + this.state = 372; + _la = this._input.LA(1); + if (!(_la === SFMLParser.SLOTS || _la === SFMLParser.SLOT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 373; this.rangeset(); } } @@ -1799,21 +1853,21 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 367; + this.state = 375; this.range(); - this.state = 372; + this.state = 380; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === SFMLParser.COMMA) { { { - this.state = 368; + this.state = 376; this.match(SFMLParser.COMMA); - this.state = 369; + this.state = 377; this.range(); } } - this.state = 374; + this.state = 382; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -1841,16 +1895,16 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 375; + this.state = 383; this.number(); - this.state = 378; + this.state = 386; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.DASH) { { - this.state = 376; + this.state = 384; this.match(SFMLParser.DASH); - this.state = 377; + this.state = 385; this.number(); } } @@ -1880,51 +1934,51 @@ export class SFMLParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 380; + this.state = 388; this.match(SFMLParser.IF); - this.state = 381; + this.state = 389; this.boolexpr(0); - this.state = 382; + this.state = 390; this.match(SFMLParser.THEN); - this.state = 383; + this.state = 391; this.block(); - this.state = 392; + this.state = 400; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 60, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 62, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 384; + this.state = 392; this.match(SFMLParser.ELSE); - this.state = 385; + this.state = 393; this.match(SFMLParser.IF); - this.state = 386; + this.state = 394; this.boolexpr(0); - this.state = 387; + this.state = 395; this.match(SFMLParser.THEN); - this.state = 388; + this.state = 396; this.block(); } } } - this.state = 394; + this.state = 402; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 60, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 62, this._ctx); } - this.state = 397; + this.state = 405; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.ELSE) { { - this.state = 395; + this.state = 403; this.match(SFMLParser.ELSE); - this.state = 396; + this.state = 404; this.block(); } } - this.state = 399; + this.state = 407; this.match(SFMLParser.END); } } @@ -1962,16 +2016,16 @@ export class SFMLParser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 433; + this.state = 441; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 67, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 69, this._ctx) ) { case 1: { _localctx = new BooleanTrueContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 402; + this.state = 410; this.match(SFMLParser.TRUE); } break; @@ -1981,7 +2035,7 @@ export class SFMLParser extends Parser { _localctx = new BooleanFalseContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 403; + this.state = 411; this.match(SFMLParser.FALSE); } break; @@ -1991,11 +2045,11 @@ export class SFMLParser extends Parser { _localctx = new BooleanParenContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 404; + this.state = 412; this.match(SFMLParser.LPAREN); - this.state = 405; + this.state = 413; this.boolexpr(0); - this.state = 406; + this.state = 414; this.match(SFMLParser.RPAREN); } break; @@ -2005,9 +2059,9 @@ export class SFMLParser extends Parser { _localctx = new BooleanNegationContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 408; + this.state = 416; this.match(SFMLParser.NOT); - this.state = 409; + this.state = 417; this.boolexpr(5); } break; @@ -2017,52 +2071,52 @@ export class SFMLParser extends Parser { _localctx = new BooleanHasContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 411; + this.state = 419; this._errHandler.sync(this); _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SFMLParser.OVERALL) | (1 << SFMLParser.SOME) | (1 << SFMLParser.ONE) | (1 << SFMLParser.LONE) | (1 << SFMLParser.EACH))) !== 0) || _la === SFMLParser.EVERY) { + if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (SFMLParser.OVERALL - 5)) | (1 << (SFMLParser.SOME - 5)) | (1 << (SFMLParser.ONE - 5)) | (1 << (SFMLParser.LONE - 5)) | (1 << (SFMLParser.EACH - 5)))) !== 0) || _la === SFMLParser.EVERY) { { - this.state = 410; + this.state = 418; this.setOp(); } } - this.state = 413; + this.state = 421; this.labelAccess(); - this.state = 414; + this.state = 422; this.match(SFMLParser.HAS); - this.state = 415; + this.state = 423; this.comparisonOp(); - this.state = 416; + this.state = 424; this.number(); - this.state = 418; + this.state = 426; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 63, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 65, this._ctx) ) { case 1: { - this.state = 417; + this.state = 425; this.resourceIdDisjunction(); } break; } - this.state = 421; + this.state = 429; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 64, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 66, this._ctx) ) { case 1: { - this.state = 420; + this.state = 428; this.with(); } break; } - this.state = 425; + this.state = 433; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 65, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 67, this._ctx) ) { case 1: { - this.state = 423; + this.state = 431; this.match(SFMLParser.EXCEPT); - this.state = 424; + this.state = 432; this.resourceIdList(); } break; @@ -2075,16 +2129,16 @@ export class SFMLParser extends Parser { _localctx = new BooleanRedstoneContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 427; + this.state = 435; this.match(SFMLParser.REDSTONE); - this.state = 431; + this.state = 439; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 66, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 68, this._ctx) ) { case 1: { - this.state = 428; + this.state = 436; this.comparisonOp(); - this.state = 429; + this.state = 437; this.number(); } break; @@ -2093,9 +2147,9 @@ export class SFMLParser extends Parser { break; } this._ctx._stop = this._input.tryLT(-1); - this.state = 443; + this.state = 451; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 69, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 71, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { @@ -2103,20 +2157,20 @@ export class SFMLParser extends Parser { } _prevctx = _localctx; { - this.state = 441; + this.state = 449; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 68, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 70, this._ctx) ) { case 1: { _localctx = new BooleanConjunctionContext(new BoolexprContext(_parentctx, _parentState)); this.pushNewRecursionContext(_localctx, _startState, SFMLParser.RULE_boolexpr); - this.state = 435; + this.state = 443; if (!(this.precpred(this._ctx, 4))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 4)"); } - this.state = 436; + this.state = 444; this.match(SFMLParser.AND); - this.state = 437; + this.state = 445; this.boolexpr(5); } break; @@ -2125,22 +2179,22 @@ export class SFMLParser extends Parser { { _localctx = new BooleanDisjunctionContext(new BoolexprContext(_parentctx, _parentState)); this.pushNewRecursionContext(_localctx, _startState, SFMLParser.RULE_boolexpr); - this.state = 438; + this.state = 446; if (!(this.precpred(this._ctx, 3))) { throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); } - this.state = 439; + this.state = 447; this.match(SFMLParser.OR); - this.state = 440; + this.state = 448; this.boolexpr(4); } break; } } } - this.state = 445; + this.state = 453; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 69, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 71, this._ctx); } } } @@ -2166,7 +2220,7 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 446; + this.state = 454; _la = this._input.LA(1); if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SFMLParser.GT) | (1 << SFMLParser.GT_SYMBOL) | (1 << SFMLParser.LT) | (1 << SFMLParser.LT_SYMBOL) | (1 << SFMLParser.EQ) | (1 << SFMLParser.EQ_SYMBOL) | (1 << SFMLParser.LE) | (1 << SFMLParser.LE_SYMBOL) | (1 << SFMLParser.GE) | (1 << SFMLParser.GE_SYMBOL))) !== 0))) { this._errHandler.recoverInline(this); @@ -2202,9 +2256,9 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 448; + this.state = 456; _la = this._input.LA(1); - if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SFMLParser.OVERALL) | (1 << SFMLParser.SOME) | (1 << SFMLParser.ONE) | (1 << SFMLParser.LONE) | (1 << SFMLParser.EACH))) !== 0) || _la === SFMLParser.EVERY)) { + if (!(((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & ((1 << (SFMLParser.OVERALL - 5)) | (1 << (SFMLParser.SOME - 5)) | (1 << (SFMLParser.ONE - 5)) | (1 << (SFMLParser.LONE - 5)) | (1 << (SFMLParser.EACH - 5)))) !== 0) || _la === SFMLParser.EVERY)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token.EOF) { @@ -2238,50 +2292,50 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 450; + this.state = 458; this.label(); - this.state = 455; + this.state = 463; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === SFMLParser.COMMA) { { { - this.state = 451; + this.state = 459; this.match(SFMLParser.COMMA); - this.state = 452; + this.state = 460; this.label(); } } - this.state = 457; + this.state = 465; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 459; + this.state = 467; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === SFMLParser.ROUND) { { - this.state = 458; + this.state = 466; this.roundrobin(); } } - this.state = 462; + this.state = 470; this._errHandler.sync(this); _la = this._input.LA(1); - if (((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & ((1 << (SFMLParser.EACH - 31)) | (1 << (SFMLParser.TOP - 31)) | (1 << (SFMLParser.BOTTOM - 31)) | (1 << (SFMLParser.NORTH - 31)) | (1 << (SFMLParser.EAST - 31)) | (1 << (SFMLParser.SOUTH - 31)) | (1 << (SFMLParser.WEST - 31)))) !== 0)) { + if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SFMLParser.EACH - 32)) | (1 << (SFMLParser.TOP - 32)) | (1 << (SFMLParser.BOTTOM - 32)) | (1 << (SFMLParser.NORTH - 32)) | (1 << (SFMLParser.EAST - 32)) | (1 << (SFMLParser.SOUTH - 32)) | (1 << (SFMLParser.WEST - 32)) | (1 << (SFMLParser.LEFT - 32)) | (1 << (SFMLParser.RIGHT - 32)) | (1 << (SFMLParser.FRONT - 32)) | (1 << (SFMLParser.BACK - 32)) | (1 << (SFMLParser.NULL - 32)))) !== 0)) { { - this.state = 461; + this.state = 469; this.sidequalifier(); } } - this.state = 465; + this.state = 473; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === SFMLParser.SLOTS) { + if (_la === SFMLParser.SLOTS || _la === SFMLParser.SLOT) { { - this.state = 464; + this.state = 472; this.slotqualifier(); } } @@ -2310,13 +2364,13 @@ export class SFMLParser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 467; + this.state = 475; this.match(SFMLParser.ROUND); - this.state = 468; + this.state = 476; this.match(SFMLParser.ROBIN); - this.state = 469; + this.state = 477; this.match(SFMLParser.BY); - this.state = 470; + this.state = 478; _la = this._input.LA(1); if (!(_la === SFMLParser.LABEL || _la === SFMLParser.BLOCK)) { this._errHandler.recoverInline(this); @@ -2349,9 +2403,15 @@ export class SFMLParser extends Parser { let _localctx: LabelContext = new LabelContext(this._ctx, this.state); this.enterRule(_localctx, 68, SFMLParser.RULE_label); try { - this.state = 474; + this.state = 482; this._errHandler.sync(this); switch (this._input.LA(1)) { + case SFMLParser.TOP: + case SFMLParser.BOTTOM: + case SFMLParser.LEFT: + case SFMLParser.RIGHT: + case SFMLParser.FRONT: + case SFMLParser.BACK: case SFMLParser.SECONDS: case SFMLParser.SECOND: case SFMLParser.GLOBAL: @@ -2361,7 +2421,7 @@ export class SFMLParser extends Parser { this.enterOuterAlt(_localctx, 1); { { - this.state = 472; + this.state = 480; this.identifier(); } } @@ -2370,7 +2430,7 @@ export class SFMLParser extends Parser { _localctx = new StringLabelContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 473; + this.state = 481; this.string(); } break; @@ -2393,16 +2453,56 @@ export class SFMLParser extends Parser { return _localctx; } // @RuleVersion(0) + public emptyslots(): EmptyslotsContext { + let _localctx: EmptyslotsContext = new EmptyslotsContext(this._ctx, this.state); + this.enterRule(_localctx, 70, SFMLParser.RULE_emptyslots); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 484; + this.match(SFMLParser.EMPTY); + this.state = 485; + _la = this._input.LA(1); + if (!(_la === SFMLParser.SLOTS || _la === SFMLParser.SLOT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 486; + this.match(SFMLParser.IN); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) public identifier(): IdentifierContext { let _localctx: IdentifierContext = new IdentifierContext(this._ctx, this.state); - this.enterRule(_localctx, 70, SFMLParser.RULE_identifier); + this.enterRule(_localctx, 72, SFMLParser.RULE_identifier); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 476; + this.state = 488; _la = this._input.LA(1); - if (!(((((_la - 52)) & ~0x1F) === 0 && ((1 << (_la - 52)) & ((1 << (SFMLParser.SECONDS - 52)) | (1 << (SFMLParser.SECOND - 52)) | (1 << (SFMLParser.GLOBAL - 52)) | (1 << (SFMLParser.REDSTONE - 52)) | (1 << (SFMLParser.IDENTIFIER - 52)))) !== 0))) { + if (!(((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & ((1 << (SFMLParser.TOP - 46)) | (1 << (SFMLParser.BOTTOM - 46)) | (1 << (SFMLParser.LEFT - 46)) | (1 << (SFMLParser.RIGHT - 46)) | (1 << (SFMLParser.FRONT - 46)) | (1 << (SFMLParser.BACK - 46)) | (1 << (SFMLParser.SECONDS - 46)) | (1 << (SFMLParser.SECOND - 46)) | (1 << (SFMLParser.GLOBAL - 46)) | (1 << (SFMLParser.REDSTONE - 46)))) !== 0) || _la === SFMLParser.IDENTIFIER)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token.EOF) { @@ -2431,11 +2531,11 @@ export class SFMLParser extends Parser { // @RuleVersion(0) public string(): StringContext { let _localctx: StringContext = new StringContext(this._ctx, this.state); - this.enterRule(_localctx, 72, SFMLParser.RULE_string); + this.enterRule(_localctx, 74, SFMLParser.RULE_string); try { this.enterOuterAlt(_localctx, 1); { - this.state = 478; + this.state = 490; this.match(SFMLParser.STRING); } } @@ -2456,11 +2556,11 @@ export class SFMLParser extends Parser { // @RuleVersion(0) public number(): NumberContext { let _localctx: NumberContext = new NumberContext(this._ctx, this.state); - this.enterRule(_localctx, 74, SFMLParser.RULE_number); + this.enterRule(_localctx, 76, SFMLParser.RULE_number); try { this.enterOuterAlt(_localctx, 1); { - this.state = 480; + this.state = 492; this.match(SFMLParser.NUMBER); } } @@ -2511,249 +2611,255 @@ export class SFMLParser extends Parser { } public static readonly _serializedATN: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03L\u01E5\x04\x02" + + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03T\u01F1\x04\x02" + "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" + "\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04" + "\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04" + "\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04" + "\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04" + "\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#" + - "\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x03\x02\x05\x02P\n\x02\x03\x02\x07" + - "\x02S\n\x02\f\x02\x0E\x02V\v\x02\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03" + - "\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04" + - "\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04j\n\x04\x03\x05\x05\x05m\n\x05" + - "\x03\x05\x05\x05p\n\x05\x03\x05\x03\x05\x05\x05t\n\x05\x03\x05\x03\x05" + - "\x03\x05\x03\x05\x05\x05z\n\x05\x03\x05\x05\x05}\n\x05\x03\x06\x07\x06" + - "\x80\n\x06\f\x06\x0E\x06\x83\v\x06\x03\x07\x03\x07\x03\x07\x03\x07\x05" + - "\x07\x89\n\x07\x03\b\x03\b\x05\b\x8D\n\b\x03\b\x03\b\x07\b\x91\n\b\f\b" + - "\x0E\b\x94\v\b\x03\b\x05\b\x97\n\b\x03\t\x03\t\x05\t\x9B\n\t\x03\t\x05" + - "\t\x9E\n\t\x03\t\x03\t\x05\t\xA2\n\t\x03\t\x03\t\x03\t\x05\t\xA7\n\t\x03" + - "\t\x03\t\x03\t\x05\t\xAC\n\t\x03\t\x05\t\xAF\n\t\x05\t\xB1\n\t\x03\n\x03" + - "\n\x05\n\xB5\n\n\x03\n\x05\n\xB8\n\n\x03\n\x03\n\x05\n\xBC\n\n\x03\n\x03" + - "\n\x03\n\x05\n\xC1\n\n\x03\n\x03\n\x03\n\x05\n\xC6\n\n\x03\n\x05\n\xC9" + - "\n\n\x05\n\xCB\n\n\x03\v\x03\v\x03\f\x03\f\x03\r\x03\r\x03\r\x07\r\xD4" + - "\n\r\f\r\x0E\r\xD7\v\r\x03\r\x05\r\xDA\n\r\x03\x0E\x05\x0E\xDD\n\x0E\x03" + - "\x0E\x03\x0E\x05\x0E\xE1\n\x0E\x03\x0E\x03\x0E\x05\x0E\xE5\n\x0E\x03\x0E" + - "\x05\x0E\xE8\n\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x05\x0F\xEF" + - "\n\x0F\x03\x10\x03\x10\x05\x10\xF3\n\x10\x03\x11\x03\x11\x03\x11\x05\x11" + - "\xF8\n\x11\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13\x05\x13\u0100" + - "\n\x13\x03\x13\x03\x13\x05\x13\u0104\n\x13\x03\x13\x03\x13\x05\x13\u0108" + - "\n\x13\x05\x13\u010A\n\x13\x05\x13\u010C\n\x13\x05\x13\u010E\n\x13\x03" + - "\x13\x05\x13\u0111\n\x13\x03\x14\x03\x14\x03\x14\x07\x14\u0116\n\x14\f" + - "\x14\x0E\x14\u0119\v\x14\x03\x14\x05\x14\u011C\n\x14\x03\x15\x03\x15\x03" + - "\x15\x07\x15\u0121\n\x15\f\x15\x0E\x15\u0124\v\x15\x03\x15\x05\x15\u0127" + - "\n\x15\x03\x16\x03\x16\x03\x16\x03\x16\x05\x16\u012D\n\x16\x03\x17\x03" + - "\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x05\x17\u0138" + - "\n\x17\x03\x17\x05\x17\u013B\n\x17\x03\x17\x05\x17\u013E\n\x17\x03\x17" + - "\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x07\x17\u0146\n\x17\f\x17\x0E" + - "\x17\u0149\v\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x07\x18\u0150" + - "\n\x18\f\x18\x0E\x18\u0153\v\x18\x03\x18\x03\x18\x03\x18\x07\x18\u0158" + - "\n\x18\f\x18\x0E\x18\u015B\v\x18\x05\x18\u015D\n\x18\x03\x19\x03\x19\x03" + - "\x19\x03\x19\x03\x19\x07\x19\u0164\n\x19\f\x19\x0E\x19\u0167\v\x19\x03" + - "\x19\x03\x19\x05\x19\u016B\n\x19\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B" + - "\x03\x1C\x03\x1C\x03\x1C\x07\x1C\u0175\n\x1C\f\x1C\x0E\x1C\u0178\v\x1C" + - "\x03\x1D\x03\x1D\x03\x1D\x05\x1D\u017D\n\x1D\x03\x1E\x03\x1E\x03\x1E\x03" + - "\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x07\x1E\u0189\n\x1E" + - "\f\x1E\x0E\x1E\u018C\v\x1E\x03\x1E\x03\x1E\x05\x1E\u0190\n\x1E\x03\x1E" + - "\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F" + - "\x03\x1F\x03\x1F\x05\x1F\u019E\n\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03" + - "\x1F\x05\x1F\u01A5\n\x1F\x03\x1F\x05\x1F\u01A8\n\x1F\x03\x1F\x03\x1F\x05" + - "\x1F\u01AC\n\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x05\x1F\u01B2\n\x1F\x05" + - "\x1F\u01B4\n\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F" + - "\u01BC\n\x1F\f\x1F\x0E\x1F\u01BF\v\x1F\x03 \x03 \x03!\x03!\x03\"\x03\"" + - "\x03\"\x07\"\u01C8\n\"\f\"\x0E\"\u01CB\v\"\x03\"\x05\"\u01CE\n\"\x03\"" + - "\x05\"\u01D1\n\"\x03\"\x05\"\u01D4\n\"\x03#\x03#\x03#\x03#\x03#\x03$\x03" + - "$\x05$\u01DD\n$\x03%\x03%\x03&\x03&\x03\'\x03\'\x03\'\x02\x02\x04,<(\x02" + - "\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02\x14\x02" + - "\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&\x02(\x02*\x02" + - ",\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02B\x02D\x02F\x02" + - "H\x02J\x02L\x02\x02\b\x03\x0247\x03\x02-2\x03\x02\x10\x19\x05\x02\x07" + - "\n!!??\x03\x02+,\x05\x0268::HH\x02\u0212\x02O\x03\x02\x02\x02\x04Y\x03" + - "\x02\x02\x02\x06i\x03\x02\x02\x02\b|\x03\x02\x02\x02\n\x81\x03\x02\x02" + - "\x02\f\x88\x03\x02\x02\x02\x0E\x8A\x03\x02\x02\x02\x10\xB0\x03\x02\x02" + - "\x02\x12\xCA\x03\x02\x02\x02\x14\xCC\x03\x02\x02\x02\x16\xCE\x03\x02\x02" + - "\x02\x18\xD0\x03\x02\x02\x02\x1A\xE7\x03\x02\x02\x02\x1C\xEE\x03\x02\x02" + - "\x02\x1E\xF0\x03\x02\x02\x02 \xF4\x03\x02\x02\x02\"\xF9\x03\x02\x02\x02" + - "$\u0110\x03\x02\x02\x02&\u0112\x03\x02\x02\x02(\u011D\x03\x02\x02\x02" + - "*\u012C\x03\x02\x02\x02,\u013D\x03\x02\x02\x02.\u015C\x03\x02\x02\x02" + - "0\u016A\x03\x02\x02\x022\u016C\x03\x02\x02\x024\u016E\x03\x02\x02\x02" + - "6\u0171\x03\x02\x02\x028\u0179\x03\x02\x02\x02:\u017E\x03\x02\x02\x02" + - "<\u01B3\x03\x02\x02\x02>\u01C0\x03\x02\x02\x02@\u01C2\x03\x02\x02\x02" + - "B\u01C4\x03\x02\x02\x02D\u01D5\x03\x02\x02\x02F\u01DC\x03\x02\x02\x02" + - "H\u01DE\x03\x02\x02\x02J\u01E0\x03\x02\x02\x02L\u01E2\x03\x02\x02\x02" + - "NP\x05\x04\x03\x02ON\x03\x02\x02\x02OP\x03\x02\x02\x02PT\x03\x02\x02\x02" + - "QS\x05\x06\x04\x02RQ\x03\x02\x02\x02SV\x03\x02\x02\x02TR\x03\x02\x02\x02" + - "TU\x03\x02\x02\x02UW\x03\x02\x02\x02VT\x03\x02\x02\x02WX\x07\x02\x02\x03" + - "X\x03\x03\x02\x02\x02YZ\x07>\x02\x02Z[\x05J&\x02[\x05\x03\x02\x02\x02" + - "\\]\x07?\x02\x02]^\x05\b\x05\x02^_\x07<\x02\x02_`\x05\n\x06\x02`a\x07" + - "=\x02\x02aj\x03\x02\x02\x02bc\x07?\x02\x02cd\x07:\x02\x02de\x07;\x02\x02" + - "ef\x07<\x02\x02fg\x05\n\x06\x02gh\x07=\x02\x02hj\x03\x02\x02\x02i\\\x03" + - "\x02\x02\x02ib\x03\x02\x02\x02j\x07\x03\x02\x02\x02km\x07G\x02\x02lk\x03" + - "\x02\x02\x02lm\x03\x02\x02\x02mo\x03\x02\x02\x02np\x078\x02\x02on\x03" + - "\x02\x02\x02op\x03\x02\x02\x02ps\x03\x02\x02\x02qr\x079\x02\x02rt\x07" + - "G\x02\x02sq\x03\x02\x02\x02st\x03\x02\x02\x02tu\x03\x02\x02\x02u}\t\x02" + - "\x02\x02vy\x07F\x02\x02wx\x079\x02\x02xz\x07G\x02\x02yw\x03\x02\x02\x02" + - "yz\x03\x02\x02\x02z{\x03\x02\x02\x02{}\t\x02\x02\x02|l\x03\x02\x02\x02" + - "|v\x03\x02\x02\x02}\t\x03\x02\x02\x02~\x80\x05\f\x07\x02\x7F~\x03\x02" + - "\x02\x02\x80\x83\x03\x02\x02\x02\x81\x7F\x03\x02\x02\x02\x81\x82\x03\x02" + - "\x02\x02\x82\v\x03\x02\x02\x02\x83\x81\x03\x02\x02\x02\x84\x89\x05\x10" + - "\t\x02\x85\x89\x05\x12\n\x02\x86\x89\x05:\x1E\x02\x87\x89\x05\x0E\b\x02" + - "\x88\x84\x03\x02\x02\x02\x88\x85\x03\x02\x02\x02\x88\x86\x03\x02\x02\x02" + - "\x88\x87\x03\x02\x02\x02\x89\r\x03\x02\x02\x02\x8A\x8C\x07#\x02\x02\x8B" + - "\x8D\x05F$\x02\x8C\x8B\x03\x02\x02\x02\x8C\x8D\x03\x02\x02\x02\x8D\x92" + - "\x03\x02\x02\x02\x8E\x8F\x07@\x02\x02\x8F\x91\x05F$\x02\x90\x8E\x03\x02" + - "\x02\x02\x91\x94\x03\x02\x02\x02\x92\x90\x03\x02\x02\x02\x92\x93\x03\x02" + - "\x02\x02\x93\x96\x03\x02\x02\x02\x94\x92\x03\x02\x02\x02\x95\x97\x07@" + - "\x02\x02\x96\x95\x03\x02\x02\x02\x96\x97\x03\x02\x02\x02\x97\x0F\x03\x02" + - "\x02\x02\x98\x9A\x07\x1C\x02\x02\x99\x9B\x05\x14\v\x02\x9A\x99\x03\x02" + - "\x02\x02\x9A\x9B\x03\x02\x02\x02\x9B\x9D\x03\x02\x02\x02\x9C\x9E\x05\"" + - "\x12\x02\x9D\x9C\x03\x02\x02\x02\x9D\x9E\x03\x02\x02\x02\x9E\x9F\x03\x02" + - "\x02\x02\x9F\xA1\x07\x1A\x02\x02\xA0\xA2\x07!\x02\x02\xA1\xA0\x03\x02" + - "\x02\x02\xA1\xA2\x03\x02\x02\x02\xA2\xA3\x03\x02\x02\x02\xA3\xB1\x05B" + - "\"\x02\xA4\xA6\x07\x1A\x02\x02\xA5\xA7\x07!\x02\x02\xA6\xA5\x03\x02\x02" + - "\x02\xA6\xA7\x03\x02\x02\x02\xA7\xA8\x03\x02\x02\x02\xA8\xA9\x05B\"\x02" + - "\xA9\xAB\x07\x1C\x02\x02\xAA\xAC\x05\x14\v\x02\xAB\xAA\x03\x02\x02\x02" + - "\xAB\xAC\x03\x02\x02\x02\xAC\xAE\x03\x02\x02\x02\xAD\xAF\x05\"\x12\x02" + - "\xAE\xAD\x03\x02\x02\x02\xAE\xAF\x03\x02\x02\x02\xAF\xB1\x03\x02\x02\x02" + - "\xB0\x98\x03\x02\x02\x02\xB0\xA4\x03\x02\x02\x02\xB1\x11\x03\x02\x02\x02" + - "\xB2\xB4\x07\x1D\x02\x02\xB3\xB5\x05\x16\f\x02\xB4\xB3\x03\x02\x02\x02" + - "\xB4\xB5\x03\x02\x02\x02\xB5\xB7\x03\x02\x02\x02\xB6\xB8\x05\"\x12\x02" + - "\xB7\xB6\x03\x02\x02\x02\xB7\xB8\x03\x02\x02\x02\xB8\xB9\x03\x02\x02\x02" + - "\xB9\xBB\x07\x1B\x02\x02\xBA\xBC\x07!\x02\x02\xBB\xBA\x03\x02\x02\x02" + - "\xBB\xBC\x03\x02\x02\x02\xBC\xBD\x03\x02\x02\x02\xBD\xCB\x05B\"\x02\xBE" + - "\xC0\x07\x1B\x02\x02\xBF\xC1\x07!\x02\x02\xC0\xBF\x03\x02\x02\x02\xC0" + - "\xC1\x03\x02\x02\x02\xC1\xC2\x03\x02\x02\x02\xC2\xC3\x05B\"\x02\xC3\xC5" + - "\x07\x1D\x02\x02\xC4\xC6\x05\x16\f\x02\xC5\xC4\x03\x02\x02\x02\xC5\xC6" + - "\x03\x02\x02\x02\xC6\xC8\x03\x02\x02\x02\xC7\xC9\x05\"\x12\x02\xC8\xC7" + - "\x03\x02\x02\x02\xC8\xC9\x03\x02\x02\x02\xC9\xCB\x03\x02\x02\x02\xCA\xB2" + - "\x03\x02\x02\x02\xCA\xBE\x03\x02\x02\x02\xCB\x13\x03\x02\x02\x02\xCC\xCD" + - "\x05\x18\r\x02\xCD\x15\x03\x02\x02\x02\xCE\xCF\x05\x18\r\x02\xCF\x17\x03" + - "\x02\x02\x02\xD0\xD5\x05\x1A\x0E\x02\xD1\xD2\x07@\x02\x02\xD2\xD4\x05" + - "\x1A\x0E\x02\xD3\xD1\x03\x02\x02\x02\xD4\xD7\x03\x02\x02\x02\xD5\xD3\x03" + - "\x02\x02\x02\xD5\xD6\x03\x02\x02\x02\xD6\xD9\x03\x02\x02\x02\xD7\xD5\x03" + - "\x02\x02\x02\xD8\xDA\x07@\x02\x02\xD9\xD8\x03\x02\x02\x02\xD9\xDA\x03" + - "\x02\x02\x02\xDA\x19\x03\x02\x02\x02\xDB\xDD\x05\x1C\x0F\x02\xDC\xDB\x03" + - "\x02\x02\x02\xDC\xDD\x03\x02\x02\x02\xDD\xDE\x03\x02\x02\x02\xDE\xE0\x05" + - "(\x15\x02\xDF\xE1\x05*\x16\x02\xE0\xDF\x03\x02\x02\x02\xE0\xE1\x03\x02" + - "\x02\x02\xE1\xE8\x03\x02\x02\x02\xE2\xE4\x05\x1C\x0F\x02\xE3\xE5\x05*" + - "\x16\x02\xE4\xE3\x03\x02\x02\x02\xE4\xE5\x03\x02\x02\x02\xE5\xE8\x03\x02" + - "\x02\x02\xE6\xE8\x05*\x16\x02\xE7\xDC\x03\x02\x02\x02\xE7\xE2\x03\x02" + - "\x02\x02\xE7\xE6\x03\x02\x02\x02\xE8\x1B\x03\x02\x02\x02\xE9\xEA\x05\x1E" + - "\x10\x02\xEA\xEB\x05 \x11\x02\xEB\xEF\x03\x02\x02\x02\xEC\xEF\x05 \x11" + - "\x02\xED\xEF\x05\x1E\x10\x02\xEE\xE9\x03\x02\x02\x02\xEE\xEC\x03\x02\x02" + - "\x02\xEE\xED\x03\x02\x02\x02\xEF\x1D\x03\x02\x02\x02\xF0\xF2\x05L\'\x02" + - "\xF1\xF3\x07!\x02\x02\xF2\xF1\x03\x02\x02\x02\xF2\xF3\x03\x02\x02\x02" + - "\xF3\x1F\x03\x02\x02\x02\xF4\xF5\x07 \x02\x02\xF5\xF7\x05L\'\x02\xF6\xF8" + - "\x07!\x02\x02\xF7\xF6\x03\x02\x02\x02\xF7\xF8\x03\x02\x02\x02\xF8!\x03" + - "\x02\x02\x02\xF9\xFA\x07\"\x02\x02\xFA\xFB\x05&\x14\x02\xFB#\x03\x02\x02" + - "\x02\xFC\u010D\x05H%\x02\xFD\xFF\x07A\x02\x02\xFE\u0100\x05H%\x02\xFF" + - "\xFE\x03\x02\x02\x02\xFF\u0100\x03\x02\x02\x02\u0100\u010B\x03\x02\x02" + - "\x02\u0101\u0103\x07A\x02\x02\u0102\u0104\x05H%\x02\u0103\u0102\x03\x02" + - "\x02\x02\u0103\u0104\x03\x02\x02\x02\u0104\u0109\x03\x02\x02\x02\u0105" + - "\u0107\x07A\x02\x02\u0106\u0108\x05H%\x02\u0107\u0106\x03\x02\x02\x02" + - "\u0107\u0108\x03\x02\x02\x02\u0108\u010A\x03\x02\x02\x02\u0109\u0105\x03" + - "\x02\x02\x02\u0109\u010A\x03\x02\x02\x02\u010A\u010C\x03\x02\x02\x02\u010B" + - "\u0101\x03\x02\x02\x02\u010B\u010C\x03\x02\x02\x02\u010C\u010E\x03\x02" + - "\x02\x02\u010D\xFD\x03\x02\x02\x02\u010D\u010E\x03\x02\x02\x02\u010E\u0111" + - "\x03\x02\x02\x02\u010F\u0111\x05J&\x02\u0110\xFC\x03\x02\x02\x02\u0110" + - "\u010F\x03\x02\x02\x02\u0111%\x03\x02\x02\x02\u0112\u0117\x05$\x13\x02" + - "\u0113\u0114\x07@\x02\x02\u0114\u0116\x05$\x13\x02\u0115\u0113\x03\x02" + - "\x02\x02\u0116\u0119\x03\x02\x02\x02\u0117\u0115\x03\x02\x02\x02\u0117" + - "\u0118\x03\x02\x02\x02\u0118\u011B\x03\x02\x02\x02\u0119\u0117\x03\x02" + - "\x02\x02\u011A\u011C\x07@\x02\x02\u011B\u011A\x03\x02\x02\x02\u011B\u011C" + - "\x03\x02\x02\x02\u011C\'\x03\x02\x02\x02\u011D\u0122\x05$\x13\x02\u011E" + - "\u011F\x07\x0F\x02\x02\u011F\u0121\x05$\x13\x02\u0120\u011E\x03\x02\x02" + - "\x02\u0121\u0124\x03\x02\x02\x02\u0122\u0120\x03\x02\x02\x02\u0122\u0123" + - "\x03\x02\x02\x02\u0123\u0126\x03\x02\x02\x02\u0124\u0122\x03\x02\x02\x02" + - "\u0125\u0127\x07\x0F\x02\x02\u0126\u0125\x03\x02\x02\x02\u0126\u0127\x03" + - "\x02\x02\x02\u0127)\x03\x02\x02\x02\u0128\u0129\x07%\x02\x02\u0129\u012D" + - "\x05,\x17\x02\u012A\u012B\x07$\x02\x02\u012B\u012D\x05,\x17\x02\u012C" + - "\u0128\x03\x02\x02\x02\u012C\u012A\x03\x02\x02\x02\u012D+\x03\x02\x02" + - "\x02\u012E\u012F\b\x17\x01\x02\u012F\u0130\x07D\x02\x02\u0130\u0131\x05" + - ",\x17\x02\u0131\u0132\x07E\x02\x02\u0132\u013E\x03\x02\x02\x02\u0133\u0134" + - "\x07\r\x02\x02\u0134\u013E\x05,\x17\x06\u0135\u0137\x07&\x02\x02\u0136" + - "\u0138\x07\'\x02\x02\u0137\u0136\x03\x02\x02\x02\u0137\u0138\x03\x02\x02" + - "\x02\u0138\u013B\x03\x02\x02\x02\u0139\u013B\x07\'\x02\x02\u013A\u0135" + - "\x03\x02\x02\x02\u013A\u0139\x03\x02\x02\x02\u013B\u013C\x03\x02\x02\x02" + - "\u013C\u013E\x05.\x18\x02\u013D\u012E\x03\x02\x02\x02\u013D\u0133\x03" + - "\x02\x02\x02\u013D\u013A\x03\x02\x02\x02\u013E\u0147\x03\x02\x02\x02\u013F" + - "\u0140\f\x05\x02\x02\u0140\u0141\x07\x0E\x02\x02\u0141\u0146\x05,\x17" + - "\x06\u0142\u0143\f\x04\x02\x02\u0143\u0144\x07\x0F\x02\x02\u0144\u0146" + - "\x05,\x17\x05\u0145\u013F\x03\x02\x02\x02\u0145\u0142\x03\x02\x02\x02" + - "\u0146\u0149\x03\x02\x02\x02\u0147\u0145\x03\x02\x02\x02\u0147\u0148\x03" + - "\x02\x02\x02\u0148-\x03\x02\x02\x02\u0149\u0147\x03\x02\x02\x02\u014A" + - "\u014B\x05H%\x02\u014B\u014C\x07A\x02\x02\u014C\u0151\x05H%\x02\u014D" + - "\u014E\x07B\x02\x02\u014E\u0150\x05H%\x02\u014F\u014D\x03\x02\x02\x02" + - "\u0150\u0153\x03\x02\x02\x02\u0151\u014F\x03\x02\x02\x02\u0151\u0152\x03" + - "\x02\x02\x02\u0152\u015D\x03\x02\x02\x02\u0153\u0151\x03\x02\x02\x02\u0154" + - "\u0159\x05H%\x02\u0155\u0156\x07B\x02\x02\u0156\u0158\x05H%\x02\u0157" + - "\u0155\x03\x02\x02\x02\u0158\u015B\x03\x02\x02\x02\u0159\u0157\x03\x02" + - "\x02\x02\u0159\u015A\x03\x02\x02\x02\u015A\u015D\x03\x02\x02\x02\u015B" + - "\u0159\x03\x02\x02\x02\u015C\u014A\x03\x02\x02\x02\u015C\u0154\x03\x02" + - "\x02\x02\u015D/\x03\x02\x02\x02\u015E\u015F\x07!\x02\x02\u015F\u016B\x07" + - "3\x02\x02\u0160\u0165\x052\x1A\x02\u0161\u0162\x07@\x02\x02\u0162\u0164" + - "\x052\x1A\x02\u0163\u0161\x03\x02\x02\x02\u0164\u0167\x03\x02\x02\x02" + - "\u0165\u0163\x03\x02\x02\x02\u0165\u0166\x03\x02\x02\x02\u0166\u0168\x03" + - "\x02\x02\x02\u0167\u0165\x03\x02\x02\x02\u0168\u0169\x073\x02\x02\u0169" + - "\u016B\x03\x02\x02\x02\u016A\u015E\x03\x02\x02\x02\u016A\u0160\x03\x02" + - "\x02\x02\u016B1\x03\x02\x02\x02\u016C\u016D\t\x03\x02\x02\u016D3\x03\x02" + - "\x02\x02\u016E\u016F\x07\x1F\x02\x02\u016F\u0170\x056\x1C\x02\u01705\x03" + - "\x02\x02\x02\u0171\u0176\x058\x1D\x02\u0172\u0173\x07@\x02\x02\u0173\u0175" + - "\x058\x1D\x02\u0174\u0172\x03\x02\x02\x02\u0175\u0178\x03\x02\x02\x02" + - "\u0176\u0174\x03\x02\x02\x02\u0176\u0177\x03\x02\x02\x02\u01777\x03\x02" + - "\x02\x02\u0178\u0176\x03\x02\x02\x02\u0179\u017C\x05L\'\x02\u017A\u017B" + - "\x07C\x02\x02\u017B\u017D\x05L\'\x02\u017C\u017A\x03\x02\x02\x02\u017C" + - "\u017D\x03\x02\x02\x02\u017D9\x03\x02\x02\x02\u017E\u017F\x07\x03\x02" + - "\x02\u017F\u0180\x05<\x1F\x02\u0180\u0181\x07\x04\x02\x02\u0181\u018A" + - "\x05\n\x06\x02\u0182\u0183\x07\x05\x02\x02\u0183\u0184\x07\x03\x02\x02" + - "\u0184\u0185\x05<\x1F\x02\u0185\u0186\x07\x04\x02\x02\u0186\u0187\x05" + - "\n\x06\x02\u0187\u0189\x03\x02\x02\x02\u0188\u0182\x03\x02\x02\x02\u0189" + - "\u018C\x03\x02\x02\x02\u018A\u0188\x03\x02\x02\x02\u018A\u018B\x03\x02" + - "\x02\x02\u018B\u018F\x03\x02\x02\x02\u018C\u018A\x03\x02\x02\x02\u018D" + - "\u018E\x07\x05\x02\x02\u018E\u0190\x05\n\x06\x02\u018F\u018D\x03\x02\x02" + - "\x02\u018F\u0190\x03\x02\x02\x02\u0190\u0191\x03\x02\x02\x02\u0191\u0192" + - "\x07=\x02\x02\u0192;\x03\x02\x02\x02\u0193\u0194\b\x1F\x01\x02\u0194\u01B4" + - "\x07\v\x02\x02\u0195\u01B4\x07\f\x02\x02\u0196\u0197\x07D\x02\x02\u0197" + - "\u0198\x05<\x1F\x02\u0198\u0199\x07E\x02\x02\u0199\u01B4\x03\x02\x02\x02" + - "\u019A\u019B\x07\r\x02\x02\u019B\u01B4\x05<\x1F\x07\u019C\u019E\x05@!" + - "\x02\u019D\u019C\x03\x02\x02\x02\u019D\u019E\x03\x02\x02\x02\u019E\u019F" + - "\x03\x02\x02\x02\u019F\u01A0\x05B\"\x02\u01A0\u01A1\x07\x06\x02\x02\u01A1" + - "\u01A2\x05> \x02\u01A2\u01A4\x05L\'\x02\u01A3\u01A5\x05(\x15\x02\u01A4" + - "\u01A3\x03\x02\x02\x02\u01A4\u01A5\x03\x02\x02\x02\u01A5\u01A7\x03\x02" + - "\x02\x02\u01A6\u01A8\x05*\x16\x02\u01A7\u01A6\x03\x02\x02\x02\u01A7\u01A8" + - "\x03\x02\x02\x02\u01A8\u01AB\x03\x02\x02\x02\u01A9\u01AA\x07\"\x02\x02" + - "\u01AA\u01AC\x05&\x14\x02\u01AB\u01A9\x03\x02\x02\x02\u01AB\u01AC\x03" + - "\x02\x02\x02\u01AC\u01B4\x03\x02\x02\x02\u01AD\u01B1\x07:\x02\x02\u01AE" + - "\u01AF\x05> \x02\u01AF\u01B0\x05L\'\x02\u01B0\u01B2\x03\x02\x02\x02\u01B1" + - "\u01AE\x03\x02\x02\x02\u01B1\u01B2\x03\x02\x02\x02\u01B2\u01B4\x03\x02" + - "\x02\x02\u01B3\u0193\x03\x02\x02\x02\u01B3\u0195\x03\x02\x02\x02\u01B3" + - "\u0196\x03\x02\x02\x02\u01B3\u019A\x03\x02\x02\x02\u01B3\u019D\x03\x02" + - "\x02\x02\u01B3\u01AD\x03\x02\x02\x02\u01B4\u01BD\x03\x02\x02\x02\u01B5" + - "\u01B6\f\x06\x02\x02\u01B6\u01B7\x07\x0E\x02\x02\u01B7\u01BC\x05<\x1F" + - "\x07\u01B8\u01B9\f\x05\x02\x02\u01B9\u01BA\x07\x0F\x02\x02\u01BA\u01BC" + - "\x05<\x1F\x06\u01BB\u01B5\x03\x02\x02\x02\u01BB\u01B8\x03\x02\x02\x02" + - "\u01BC\u01BF\x03\x02\x02\x02\u01BD\u01BB\x03\x02\x02\x02\u01BD\u01BE\x03" + - "\x02\x02\x02\u01BE=\x03\x02\x02\x02\u01BF\u01BD\x03\x02\x02\x02\u01C0" + - "\u01C1\t\x04\x02\x02\u01C1?\x03\x02\x02\x02\u01C2\u01C3\t\x05\x02\x02" + - "\u01C3A\x03\x02\x02\x02\u01C4\u01C9\x05F$\x02\u01C5\u01C6\x07@\x02\x02" + - "\u01C6\u01C8\x05F$\x02\u01C7\u01C5\x03\x02\x02\x02\u01C8\u01CB\x03\x02" + - "\x02\x02\u01C9\u01C7\x03\x02\x02\x02\u01C9\u01CA\x03\x02\x02\x02\u01CA" + - "\u01CD\x03\x02\x02\x02\u01CB\u01C9\x03\x02\x02\x02\u01CC\u01CE\x05D#\x02" + - "\u01CD\u01CC\x03\x02\x02\x02\u01CD\u01CE\x03\x02\x02\x02\u01CE\u01D0\x03" + - "\x02\x02\x02\u01CF\u01D1\x050\x19\x02\u01D0\u01CF\x03\x02\x02\x02\u01D0" + - "\u01D1\x03\x02\x02\x02\u01D1\u01D3\x03\x02\x02\x02\u01D2\u01D4\x054\x1B" + - "\x02\u01D3\u01D2\x03\x02\x02\x02\u01D3\u01D4\x03\x02\x02\x02\u01D4C\x03" + - "\x02\x02\x02\u01D5\u01D6\x07(\x02\x02\u01D6\u01D7\x07)\x02\x02\u01D7\u01D8" + - "\x07*\x02\x02\u01D8\u01D9\t\x06\x02\x02\u01D9E\x03\x02\x02\x02\u01DA\u01DD" + - "\x05H%\x02\u01DB\u01DD\x05J&\x02\u01DC\u01DA\x03\x02\x02\x02\u01DC\u01DB" + - "\x03\x02\x02\x02\u01DDG\x03\x02\x02\x02\u01DE\u01DF\t\x07\x02\x02\u01DF" + - "I\x03\x02\x02\x02\u01E0\u01E1\x07I\x02\x02\u01E1K\x03\x02\x02\x02\u01E2" + - "\u01E3\x07G\x02\x02\u01E3M\x03\x02\x02\x02MOTilosy|\x81\x88\x8C\x92\x96" + - "\x9A\x9D\xA1\xA6\xAB\xAE\xB0\xB4\xB7\xBB\xC0\xC5\xC8\xCA\xD5\xD9\xDC\xE0" + - "\xE4\xE7\xEE\xF2\xF7\xFF\u0103\u0107\u0109\u010B\u010D\u0110\u0117\u011B" + - "\u0122\u0126\u012C\u0137\u013A\u013D\u0145\u0147\u0151\u0159\u015C\u0165" + - "\u016A\u0176\u017C\u018A\u018F\u019D\u01A4\u01A7\u01AB\u01B1\u01B3\u01BB" + - "\u01BD\u01C9\u01CD\u01D0\u01D3\u01DC"; + "\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x03\x02\x05\x02R\n\x02\x03" + + "\x02\x07\x02U\n\x02\f\x02\x0E\x02X\v\x02\x03\x02\x03\x02\x03\x03\x03\x03" + + "\x03\x03\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04" + + "\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04l\n\x04\x03\x05\x05\x05" + + "o\n\x05\x03\x05\x05\x05r\n\x05\x03\x05\x03\x05\x05\x05v\n\x05\x03\x05" + + "\x03\x05\x03\x05\x03\x05\x05\x05|\n\x05\x03\x05\x05\x05\x7F\n\x05\x03" + + "\x06\x07\x06\x82\n\x06\f\x06\x0E\x06\x85\v\x06\x03\x07\x03\x07\x03\x07" + + "\x03\x07\x05\x07\x8B\n\x07\x03\b\x03\b\x05\b\x8F\n\b\x03\b\x03\b\x07\b" + + "\x93\n\b\f\b\x0E\b\x96\v\b\x03\b\x05\b\x99\n\b\x03\t\x03\t\x05\t\x9D\n" + + "\t\x03\t\x05\t\xA0\n\t\x03\t\x03\t\x05\t\xA4\n\t\x03\t\x03\t\x03\t\x05" + + "\t\xA9\n\t\x03\t\x03\t\x03\t\x05\t\xAE\n\t\x03\t\x05\t\xB1\n\t\x05\t\xB3" + + "\n\t\x03\n\x03\n\x05\n\xB7\n\n\x03\n\x05\n\xBA\n\n\x03\n\x03\n\x05\n\xBE" + + "\n\n\x03\n\x05\n\xC1\n\n\x03\n\x03\n\x03\n\x05\n\xC6\n\n\x03\n\x05\n\xC9" + + "\n\n\x03\n\x03\n\x03\n\x05\n\xCE\n\n\x03\n\x05\n\xD1\n\n\x05\n\xD3\n\n" + + "\x03\v\x03\v\x03\f\x03\f\x03\r\x03\r\x03\r\x07\r\xDC\n\r\f\r\x0E\r\xDF" + + "\v\r\x03\r\x05\r\xE2\n\r\x03\x0E\x05\x0E\xE5\n\x0E\x03\x0E\x03\x0E\x05" + + "\x0E\xE9\n\x0E\x03\x0E\x03\x0E\x05\x0E\xED\n\x0E\x03\x0E\x05\x0E\xF0\n" + + "\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x05\x0F\xF7\n\x0F\x03\x10" + + "\x03\x10\x05\x10\xFB\n\x10\x03\x11\x03\x11\x03\x11\x05\x11\u0100\n\x11" + + "\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13\x05\x13\u0108\n\x13\x03" + + "\x13\x03\x13\x05\x13\u010C\n\x13\x03\x13\x03\x13\x05\x13\u0110\n\x13\x05" + + "\x13\u0112\n\x13\x05\x13\u0114\n\x13\x05\x13\u0116\n\x13\x03\x13\x05\x13" + + "\u0119\n\x13\x03\x14\x03\x14\x03\x14\x07\x14\u011E\n\x14\f\x14\x0E\x14" + + "\u0121\v\x14\x03\x14\x05\x14\u0124\n\x14\x03\x15\x03\x15\x03\x15\x07\x15" + + "\u0129\n\x15\f\x15\x0E\x15\u012C\v\x15\x03\x15\x05\x15\u012F\n\x15\x03" + + "\x16\x03\x16\x03\x16\x03\x16\x05\x16\u0135\n\x16\x03\x17\x03\x17\x03\x17" + + "\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x05\x17\u0140\n\x17\x03" + + "\x17\x05\x17\u0143\n\x17\x03\x17\x05\x17\u0146\n\x17\x03\x17\x03\x17\x03" + + "\x17\x03\x17\x03\x17\x03\x17\x07\x17\u014E\n\x17\f\x17\x0E\x17\u0151\v" + + "\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x07\x18\u0158\n\x18\f\x18" + + "\x0E\x18\u015B\v\x18\x03\x18\x03\x18\x03\x18\x07\x18\u0160\n\x18\f\x18" + + "\x0E\x18\u0163\v\x18\x05\x18\u0165\n\x18\x03\x19\x03\x19\x03\x19\x03\x19" + + "\x03\x19\x07\x19\u016C\n\x19\f\x19\x0E\x19\u016F\v\x19\x03\x19\x03\x19" + + "\x05\x19\u0173\n\x19\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03" + + "\x1C\x03\x1C\x07\x1C\u017D\n\x1C\f\x1C\x0E\x1C\u0180\v\x1C\x03\x1D\x03" + + "\x1D\x03\x1D\x05\x1D\u0185\n\x1D\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E" + + "\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x07\x1E\u0191\n\x1E\f\x1E\x0E" + + "\x1E\u0194\v\x1E\x03\x1E\x03\x1E\x05\x1E\u0198\n\x1E\x03\x1E\x03\x1E\x03" + + "\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03" + + "\x1F\x05\x1F\u01A6\n\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x05\x1F" + + "\u01AD\n\x1F\x03\x1F\x05\x1F\u01B0\n\x1F\x03\x1F\x03\x1F\x05\x1F\u01B4" + + "\n\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x05\x1F\u01BA\n\x1F\x05\x1F\u01BC" + + "\n\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\u01C4\n" + + "\x1F\f\x1F\x0E\x1F\u01C7\v\x1F\x03 \x03 \x03!\x03!\x03\"\x03\"\x03\"\x07" + + "\"\u01D0\n\"\f\"\x0E\"\u01D3\v\"\x03\"\x05\"\u01D6\n\"\x03\"\x05\"\u01D9" + + "\n\"\x03\"\x05\"\u01DC\n\"\x03#\x03#\x03#\x03#\x03#\x03$\x03$\x05$\u01E5" + + "\n$\x03%\x03%\x03%\x03%\x03&\x03&\x03\'\x03\'\x03(\x03(\x03(\x02\x02\x04" + + ",<)\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02" + + "\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&\x02" + + "(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02B\x02" + + "D\x02F\x02H\x02J\x02L\x02N\x02\x02\t\x03\x02@BBPP\x02" + + "\u021F\x02Q\x03\x02\x02\x02\x04[\x03\x02\x02\x02\x06k\x03\x02\x02\x02" + + "\b~\x03\x02\x02\x02\n\x83\x03\x02\x02\x02\f\x8A\x03\x02\x02\x02\x0E\x8C" + + "\x03\x02\x02\x02\x10\xB2\x03\x02\x02\x02\x12\xD2\x03\x02\x02\x02\x14\xD4" + + "\x03\x02\x02\x02\x16\xD6\x03\x02\x02\x02\x18\xD8\x03\x02\x02\x02\x1A\xEF" + + "\x03\x02\x02\x02\x1C\xF6\x03\x02\x02\x02\x1E\xF8\x03\x02\x02\x02 \xFC" + + "\x03\x02\x02\x02\"\u0101\x03\x02\x02\x02$\u0118\x03\x02\x02\x02&\u011A" + + "\x03\x02\x02\x02(\u0125\x03\x02\x02\x02*\u0134\x03\x02\x02\x02,\u0145" + + "\x03\x02\x02\x02.\u0164\x03\x02\x02\x020\u0172\x03\x02\x02\x022\u0174" + + "\x03\x02\x02\x024\u0176\x03\x02\x02\x026\u0179\x03\x02\x02\x028\u0181" + + "\x03\x02\x02\x02:\u0186\x03\x02\x02\x02<\u01BB\x03\x02\x02\x02>\u01C8" + + "\x03\x02\x02\x02@\u01CA\x03\x02\x02\x02B\u01CC\x03\x02\x02\x02D\u01DD" + + "\x03\x02\x02\x02F\u01E4\x03\x02\x02\x02H\u01E6\x03\x02\x02\x02J\u01EA" + + "\x03\x02\x02\x02L\u01EC\x03\x02\x02\x02N\u01EE\x03\x02\x02\x02PR\x05\x04" + + "\x03\x02QP\x03\x02\x02\x02QR\x03\x02\x02\x02RV\x03\x02\x02\x02SU\x05\x06" + + "\x04\x02TS\x03\x02\x02\x02UX\x03\x02\x02\x02VT\x03\x02\x02\x02VW\x03\x02" + + "\x02\x02WY\x03\x02\x02\x02XV\x03\x02\x02\x02YZ\x07\x02\x02\x03Z\x03\x03" + + "\x02\x02\x02[\\\x07F\x02\x02\\]\x05L\'\x02]\x05\x03\x02\x02\x02^_\x07" + + "G\x02\x02_`\x05\b\x05\x02`a\x07D\x02\x02ab\x05\n\x06\x02bc\x07E\x02\x02" + + "cl\x03\x02\x02\x02de\x07G\x02\x02ef\x07B\x02\x02fg\x07C\x02\x02gh\x07" + + "D\x02\x02hi\x05\n\x06\x02ij\x07E\x02\x02jl\x03\x02\x02\x02k^\x03\x02\x02" + + "\x02kd\x03\x02\x02\x02l\x07\x03\x02\x02\x02mo\x07O\x02\x02nm\x03\x02\x02" + + "\x02no\x03\x02\x02\x02oq\x03\x02\x02\x02pr\x07@\x02\x02qp\x03\x02\x02" + + "\x02qr\x03\x02\x02\x02ru\x03\x02\x02\x02st\x07A\x02\x02tv\x07O\x02\x02" + + "us\x03\x02\x02\x02uv\x03\x02\x02\x02vw\x03\x02\x02\x02w\x7F\t\x02\x02" + + "\x02x{\x07N\x02\x02yz\x07A\x02\x02z|\x07O\x02\x02{y\x03\x02\x02\x02{|" + + "\x03\x02\x02\x02|}\x03\x02\x02\x02}\x7F\t\x02\x02\x02~n\x03\x02\x02\x02" + + "~x\x03\x02\x02\x02\x7F\t\x03\x02\x02\x02\x80\x82\x05\f\x07\x02\x81\x80" + + "\x03\x02\x02\x02\x82\x85\x03\x02\x02\x02\x83\x81\x03\x02\x02\x02\x83\x84" + + "\x03\x02\x02\x02\x84\v\x03\x02\x02\x02\x85\x83\x03\x02\x02\x02\x86\x8B" + + "\x05\x10\t\x02\x87\x8B\x05\x12\n\x02\x88\x8B\x05:\x1E\x02\x89\x8B\x05" + + "\x0E\b\x02\x8A\x86\x03\x02\x02\x02\x8A\x87\x03\x02\x02\x02\x8A\x88\x03" + + "\x02\x02\x02\x8A\x89\x03\x02\x02\x02\x8B\r\x03\x02\x02\x02\x8C\x8E\x07" + + "$\x02\x02\x8D\x8F\x05F$\x02\x8E\x8D\x03\x02\x02\x02\x8E\x8F\x03\x02\x02" + + "\x02\x8F\x94\x03\x02\x02\x02\x90\x91\x07H\x02\x02\x91\x93\x05F$\x02\x92" + + "\x90\x03\x02\x02\x02\x93\x96\x03\x02\x02\x02\x94\x92\x03\x02\x02\x02\x94" + + "\x95\x03\x02\x02\x02\x95\x98\x03\x02\x02\x02\x96\x94\x03\x02\x02\x02\x97" + + "\x99\x07H\x02\x02\x98\x97\x03\x02\x02\x02\x98\x99\x03\x02\x02\x02\x99" + + "\x0F\x03\x02\x02\x02\x9A\x9C\x07\x1C\x02\x02\x9B\x9D\x05\x14\v\x02\x9C" + + "\x9B\x03\x02\x02\x02\x9C\x9D\x03\x02\x02\x02\x9D\x9F\x03\x02\x02\x02\x9E" + + "\xA0\x05\"\x12\x02\x9F\x9E\x03\x02\x02\x02\x9F\xA0\x03\x02\x02\x02\xA0" + + "\xA1\x03\x02\x02\x02\xA1\xA3\x07\x1A\x02\x02\xA2\xA4\x07\"\x02\x02\xA3" + + "\xA2\x03\x02\x02\x02\xA3\xA4\x03\x02\x02\x02\xA4\xA5\x03\x02\x02\x02\xA5" + + "\xB3\x05B\"\x02\xA6\xA8\x07\x1A\x02\x02\xA7\xA9\x07\"\x02\x02\xA8\xA7" + + "\x03\x02\x02\x02\xA8\xA9\x03\x02\x02\x02\xA9\xAA\x03\x02\x02\x02\xAA\xAB" + + "\x05B\"\x02\xAB\xAD\x07\x1C\x02\x02\xAC\xAE\x05\x14\v\x02\xAD\xAC\x03" + + "\x02\x02\x02\xAD\xAE\x03\x02\x02\x02\xAE\xB0\x03\x02\x02\x02\xAF\xB1\x05" + + "\"\x12\x02\xB0\xAF\x03\x02\x02\x02\xB0\xB1\x03\x02\x02\x02\xB1\xB3\x03" + + "\x02\x02\x02\xB2\x9A\x03\x02\x02\x02\xB2\xA6\x03\x02\x02\x02\xB3\x11\x03" + + "\x02\x02\x02\xB4\xB6\x07\x1D\x02\x02\xB5\xB7\x05\x16\f\x02\xB6\xB5\x03" + + "\x02\x02\x02\xB6\xB7\x03\x02\x02\x02\xB7\xB9\x03\x02\x02\x02\xB8\xBA\x05" + + "\"\x12\x02\xB9\xB8\x03\x02\x02\x02\xB9\xBA\x03\x02\x02\x02\xBA\xBB\x03" + + "\x02\x02\x02\xBB\xBD\x07\x1B\x02\x02\xBC\xBE\x05H%\x02\xBD\xBC\x03\x02" + + "\x02\x02\xBD\xBE\x03\x02\x02\x02\xBE\xC0\x03\x02\x02\x02\xBF\xC1\x07\"" + + "\x02\x02\xC0\xBF\x03\x02\x02\x02\xC0\xC1\x03\x02\x02\x02\xC1\xC2\x03\x02" + + "\x02\x02\xC2\xD3\x05B\"\x02\xC3\xC5\x07\x1B\x02\x02\xC4\xC6\x05H%\x02" + + "\xC5\xC4\x03\x02\x02\x02\xC5\xC6\x03\x02\x02\x02\xC6\xC8\x03\x02\x02\x02" + + "\xC7\xC9\x07\"\x02\x02\xC8\xC7\x03\x02\x02\x02\xC8\xC9\x03\x02\x02\x02" + + "\xC9\xCA\x03\x02\x02\x02\xCA\xCB\x05B\"\x02\xCB\xCD\x07\x1D\x02\x02\xCC" + + "\xCE\x05\x16\f\x02\xCD\xCC\x03\x02\x02\x02\xCD\xCE\x03\x02\x02\x02\xCE" + + "\xD0\x03\x02\x02\x02\xCF\xD1\x05\"\x12\x02\xD0\xCF\x03\x02\x02\x02\xD0" + + "\xD1\x03\x02\x02\x02\xD1\xD3\x03\x02\x02\x02\xD2\xB4\x03\x02\x02\x02\xD2" + + "\xC3\x03\x02\x02\x02\xD3\x13\x03\x02\x02\x02\xD4\xD5\x05\x18\r\x02\xD5" + + "\x15\x03\x02\x02\x02\xD6\xD7\x05\x18\r\x02\xD7\x17\x03\x02\x02\x02\xD8" + + "\xDD\x05\x1A\x0E\x02\xD9\xDA\x07H\x02\x02\xDA\xDC\x05\x1A\x0E\x02\xDB" + + "\xD9\x03\x02\x02\x02\xDC\xDF\x03\x02\x02\x02\xDD\xDB\x03\x02\x02\x02\xDD" + + "\xDE\x03\x02\x02\x02\xDE\xE1\x03\x02\x02\x02\xDF\xDD\x03\x02\x02\x02\xE0" + + "\xE2\x07H\x02\x02\xE1\xE0\x03\x02\x02\x02\xE1\xE2\x03\x02\x02\x02\xE2" + + "\x19\x03\x02\x02\x02\xE3\xE5\x05\x1C\x0F\x02\xE4\xE3\x03\x02\x02\x02\xE4" + + "\xE5\x03\x02\x02\x02\xE5\xE6\x03\x02\x02\x02\xE6\xE8\x05(\x15\x02\xE7" + + "\xE9\x05*\x16\x02\xE8\xE7\x03\x02\x02\x02\xE8\xE9\x03\x02\x02\x02\xE9" + + "\xF0\x03\x02\x02\x02\xEA\xEC\x05\x1C\x0F\x02\xEB\xED\x05*\x16\x02\xEC" + + "\xEB\x03\x02\x02\x02\xEC\xED\x03\x02\x02\x02\xED\xF0\x03\x02\x02\x02\xEE" + + "\xF0\x05*\x16\x02\xEF\xE4\x03\x02\x02\x02\xEF\xEA\x03\x02\x02\x02\xEF" + + "\xEE\x03\x02\x02\x02\xF0\x1B\x03\x02\x02\x02\xF1\xF2\x05\x1E\x10\x02\xF2" + + "\xF3\x05 \x11\x02\xF3\xF7\x03\x02\x02\x02\xF4\xF7\x05 \x11\x02\xF5\xF7" + + "\x05\x1E\x10\x02\xF6\xF1\x03\x02\x02\x02\xF6\xF4\x03\x02\x02\x02\xF6\xF5" + + "\x03\x02\x02\x02\xF7\x1D\x03\x02\x02\x02\xF8\xFA\x05N(\x02\xF9\xFB\x07" + + "\"\x02\x02\xFA\xF9\x03\x02\x02\x02\xFA\xFB\x03\x02\x02\x02\xFB\x1F\x03" + + "\x02\x02\x02\xFC\xFD\x07!\x02\x02\xFD\xFF\x05N(\x02\xFE\u0100\x07\"\x02" + + "\x02\xFF\xFE\x03\x02\x02\x02\xFF\u0100\x03\x02\x02\x02\u0100!\x03\x02" + + "\x02\x02\u0101\u0102\x07#\x02\x02\u0102\u0103\x05&\x14\x02\u0103#\x03" + + "\x02\x02\x02\u0104\u0115\x05J&\x02\u0105\u0107\x07I\x02\x02\u0106\u0108" + + "\x05J&\x02\u0107\u0106\x03\x02\x02\x02\u0107\u0108\x03\x02\x02\x02\u0108" + + "\u0113\x03\x02\x02\x02\u0109\u010B\x07I\x02\x02\u010A\u010C\x05J&\x02" + + "\u010B\u010A\x03\x02\x02\x02\u010B\u010C\x03\x02\x02\x02\u010C\u0111\x03" + + "\x02\x02\x02\u010D\u010F\x07I\x02\x02\u010E\u0110\x05J&\x02\u010F\u010E" + + "\x03\x02\x02\x02\u010F\u0110\x03\x02\x02\x02\u0110\u0112\x03\x02\x02\x02" + + "\u0111\u010D\x03\x02\x02\x02\u0111\u0112\x03\x02\x02\x02\u0112\u0114\x03" + + "\x02\x02\x02\u0113\u0109\x03\x02\x02\x02\u0113\u0114\x03\x02\x02\x02\u0114" + + "\u0116\x03\x02\x02\x02\u0115\u0105\x03\x02\x02\x02\u0115\u0116\x03\x02" + + "\x02\x02\u0116\u0119\x03\x02\x02\x02\u0117\u0119\x05L\'\x02\u0118\u0104" + + "\x03\x02\x02\x02\u0118\u0117\x03\x02\x02\x02\u0119%\x03\x02\x02\x02\u011A" + + "\u011F\x05$\x13\x02\u011B\u011C\x07H\x02\x02\u011C\u011E\x05$\x13\x02" + + "\u011D\u011B\x03\x02\x02\x02\u011E\u0121\x03\x02\x02\x02\u011F\u011D\x03" + + "\x02\x02\x02\u011F\u0120\x03\x02\x02\x02\u0120\u0123\x03\x02\x02\x02\u0121" + + "\u011F\x03\x02\x02\x02\u0122\u0124\x07H\x02\x02\u0123\u0122\x03\x02\x02" + + "\x02\u0123\u0124\x03\x02\x02\x02\u0124\'\x03\x02\x02\x02\u0125\u012A\x05" + + "$\x13\x02\u0126\u0127\x07\x0F\x02\x02\u0127\u0129\x05$\x13\x02\u0128\u0126" + + "\x03\x02\x02\x02\u0129\u012C\x03\x02\x02\x02\u012A\u0128\x03\x02\x02\x02" + + "\u012A\u012B\x03\x02\x02\x02\u012B\u012E\x03\x02\x02\x02\u012C\u012A\x03" + + "\x02\x02\x02\u012D\u012F\x07\x0F\x02\x02\u012E\u012D\x03\x02\x02\x02\u012E" + + "\u012F\x03\x02\x02\x02\u012F)\x03\x02\x02\x02\u0130\u0131\x07(\x02\x02" + + "\u0131\u0135\x05,\x17\x02\u0132\u0133\x07\'\x02\x02\u0133\u0135\x05,\x17" + + "\x02\u0134\u0130\x03\x02\x02\x02\u0134\u0132\x03\x02\x02\x02\u0135+\x03" + + "\x02\x02\x02\u0136\u0137\b\x17\x01\x02\u0137\u0138\x07L\x02\x02\u0138" + + "\u0139\x05,\x17\x02\u0139\u013A\x07M\x02\x02\u013A\u0146\x03\x02\x02\x02" + + "\u013B\u013C\x07\r\x02\x02\u013C\u0146\x05,\x17\x06\u013D\u013F\x07)\x02" + + "\x02\u013E\u0140\x07*\x02\x02\u013F\u013E\x03\x02\x02\x02\u013F\u0140" + + "\x03\x02\x02\x02\u0140\u0143\x03\x02\x02\x02\u0141\u0143\x07*\x02\x02" + + "\u0142\u013D\x03\x02\x02\x02\u0142\u0141\x03\x02\x02\x02\u0143\u0144\x03" + + "\x02\x02\x02\u0144\u0146\x05.\x18\x02\u0145\u0136\x03\x02\x02\x02\u0145" + + "\u013B\x03\x02\x02\x02\u0145\u0142\x03\x02\x02\x02\u0146\u014F\x03\x02" + + "\x02\x02\u0147\u0148\f\x05\x02\x02\u0148\u0149\x07\x0E\x02\x02\u0149\u014E" + + "\x05,\x17\x06\u014A\u014B\f\x04\x02\x02\u014B\u014C\x07\x0F\x02\x02\u014C" + + "\u014E\x05,\x17\x05\u014D\u0147\x03\x02\x02\x02\u014D\u014A\x03\x02\x02" + + "\x02\u014E\u0151\x03\x02\x02\x02\u014F\u014D\x03\x02\x02\x02\u014F\u0150" + + "\x03\x02\x02\x02\u0150-\x03\x02\x02\x02\u0151\u014F\x03\x02\x02\x02\u0152" + + "\u0153\x05J&\x02\u0153\u0154\x07I\x02\x02\u0154\u0159\x05J&\x02\u0155" + + "\u0156\x07J\x02\x02\u0156\u0158\x05J&\x02\u0157\u0155\x03\x02\x02\x02" + + "\u0158\u015B\x03\x02\x02\x02\u0159\u0157\x03\x02\x02\x02\u0159\u015A\x03" + + "\x02\x02\x02\u015A\u0165\x03\x02\x02\x02\u015B\u0159\x03\x02\x02\x02\u015C" + + "\u0161\x05J&\x02\u015D\u015E\x07J\x02\x02\u015E\u0160\x05J&\x02\u015F" + + "\u015D\x03\x02\x02\x02\u0160\u0163\x03\x02\x02\x02\u0161\u015F\x03\x02" + + "\x02\x02\u0161\u0162\x03\x02\x02\x02\u0162\u0165\x03\x02\x02\x02\u0163" + + "\u0161\x03\x02\x02\x02\u0164\u0152\x03\x02\x02\x02\u0164\u015C\x03\x02" + + "\x02\x02\u0165/\x03\x02\x02\x02\u0166\u0167\x07\"\x02\x02\u0167\u0173" + + "\x076\x02\x02\u0168\u016D\x052\x1A\x02\u0169\u016A\x07H\x02\x02\u016A" + + "\u016C\x052\x1A\x02\u016B\u0169\x03\x02\x02\x02\u016C\u016F\x03\x02\x02" + + "\x02\u016D\u016B\x03\x02\x02\x02\u016D\u016E\x03\x02\x02\x02\u016E\u0170" + + "\x03\x02\x02\x02\u016F\u016D\x03\x02\x02\x02\u0170\u0171\x076\x02\x02" + + "\u0171\u0173\x03\x02\x02\x02\u0172\u0166\x03\x02\x02\x02\u0172\u0168\x03" + + "\x02\x02\x02\u01731\x03\x02\x02\x02\u0174\u0175\t\x03\x02\x02\u01753\x03" + + "\x02\x02\x02\u0176\u0177\t\x04\x02\x02\u0177\u0178\x056\x1C\x02\u0178" + + "5\x03\x02\x02\x02\u0179\u017E\x058\x1D\x02\u017A\u017B\x07H\x02\x02\u017B" + + "\u017D\x058\x1D\x02\u017C\u017A\x03\x02\x02\x02\u017D\u0180\x03\x02\x02" + + "\x02\u017E\u017C\x03\x02\x02\x02\u017E\u017F\x03\x02\x02\x02\u017F7\x03" + + "\x02\x02\x02\u0180\u017E\x03\x02\x02\x02\u0181\u0184\x05N(\x02\u0182\u0183" + + "\x07K\x02\x02\u0183\u0185\x05N(\x02\u0184\u0182\x03\x02\x02\x02\u0184" + + "\u0185\x03\x02\x02\x02\u01859\x03\x02\x02\x02\u0186\u0187\x07\x03\x02" + + "\x02\u0187\u0188\x05<\x1F\x02\u0188\u0189\x07\x04\x02\x02\u0189\u0192" + + "\x05\n\x06\x02\u018A\u018B\x07\x05\x02\x02\u018B\u018C\x07\x03\x02\x02" + + "\u018C\u018D\x05<\x1F\x02\u018D\u018E\x07\x04\x02\x02\u018E\u018F\x05" + + "\n\x06\x02\u018F\u0191\x03\x02\x02\x02\u0190\u018A\x03\x02\x02\x02\u0191" + + "\u0194\x03\x02\x02\x02\u0192\u0190\x03\x02\x02\x02\u0192\u0193\x03\x02" + + "\x02\x02\u0193\u0197\x03\x02\x02\x02\u0194\u0192\x03\x02\x02\x02\u0195" + + "\u0196\x07\x05\x02\x02\u0196\u0198\x05\n\x06\x02\u0197\u0195\x03\x02\x02" + + "\x02\u0197\u0198\x03\x02\x02\x02\u0198\u0199\x03\x02\x02\x02\u0199\u019A" + + "\x07E\x02\x02\u019A;\x03\x02\x02\x02\u019B\u019C\b\x1F\x01\x02\u019C\u01BC" + + "\x07\v\x02\x02\u019D\u01BC\x07\f\x02\x02\u019E\u019F\x07L\x02\x02\u019F" + + "\u01A0\x05<\x1F\x02\u01A0\u01A1\x07M\x02\x02\u01A1\u01BC\x03\x02\x02\x02" + + "\u01A2\u01A3\x07\r\x02\x02\u01A3\u01BC\x05<\x1F\x07\u01A4\u01A6\x05@!" + + "\x02\u01A5\u01A4\x03\x02\x02\x02\u01A5\u01A6\x03\x02\x02\x02\u01A6\u01A7" + + "\x03\x02\x02\x02\u01A7\u01A8\x05B\"\x02\u01A8\u01A9\x07\x06\x02\x02\u01A9" + + "\u01AA\x05> \x02\u01AA\u01AC\x05N(\x02\u01AB\u01AD\x05(\x15\x02\u01AC" + + "\u01AB\x03\x02\x02\x02\u01AC\u01AD\x03\x02\x02\x02\u01AD\u01AF\x03\x02" + + "\x02\x02\u01AE\u01B0\x05*\x16\x02\u01AF\u01AE\x03\x02\x02\x02\u01AF\u01B0" + + "\x03\x02\x02\x02\u01B0\u01B3\x03\x02\x02\x02\u01B1\u01B2\x07#\x02\x02" + + "\u01B2\u01B4\x05&\x14\x02\u01B3\u01B1\x03\x02\x02\x02\u01B3\u01B4\x03" + + "\x02\x02\x02\u01B4\u01BC\x03\x02\x02\x02\u01B5\u01B9\x07B\x02\x02\u01B6" + + "\u01B7\x05> \x02\u01B7\u01B8\x05N(\x02\u01B8\u01BA\x03\x02\x02\x02\u01B9" + + "\u01B6\x03\x02\x02\x02\u01B9\u01BA\x03\x02\x02\x02\u01BA\u01BC\x03\x02" + + "\x02\x02\u01BB\u019B\x03\x02\x02\x02\u01BB\u019D\x03\x02\x02\x02\u01BB" + + "\u019E\x03\x02\x02\x02\u01BB\u01A2\x03\x02\x02\x02\u01BB\u01A5\x03\x02" + + "\x02\x02\u01BB\u01B5\x03\x02\x02\x02\u01BC\u01C5\x03\x02\x02\x02\u01BD" + + "\u01BE\f\x06\x02\x02\u01BE\u01BF\x07\x0E\x02\x02\u01BF\u01C4\x05<\x1F" + + "\x07\u01C0\u01C1\f\x05\x02\x02\u01C1\u01C2\x07\x0F\x02\x02\u01C2\u01C4" + + "\x05<\x1F\x06\u01C3\u01BD\x03\x02\x02\x02\u01C3\u01C0\x03\x02\x02\x02" + + "\u01C4\u01C7\x03\x02\x02\x02\u01C5\u01C3\x03\x02\x02\x02\u01C5\u01C6\x03" + + "\x02\x02\x02\u01C6=\x03\x02\x02\x02\u01C7\u01C5\x03\x02\x02\x02\u01C8" + + "\u01C9\t\x05\x02\x02\u01C9?\x03\x02\x02\x02\u01CA\u01CB\t\x06\x02\x02" + + "\u01CBA\x03\x02\x02\x02\u01CC\u01D1\x05F$\x02\u01CD\u01CE\x07H\x02\x02" + + "\u01CE\u01D0\x05F$\x02\u01CF\u01CD\x03\x02\x02\x02\u01D0\u01D3\x03\x02" + + "\x02\x02\u01D1\u01CF\x03\x02\x02\x02\u01D1\u01D2\x03\x02\x02\x02\u01D2" + + "\u01D5\x03\x02\x02\x02\u01D3\u01D1\x03\x02\x02\x02\u01D4\u01D6\x05D#\x02" + + "\u01D5\u01D4\x03\x02\x02\x02\u01D5\u01D6\x03\x02\x02\x02\u01D6\u01D8\x03" + + "\x02\x02\x02\u01D7\u01D9\x050\x19\x02\u01D8\u01D7\x03\x02\x02\x02\u01D8" + + "\u01D9\x03\x02\x02\x02\u01D9\u01DB\x03\x02\x02\x02\u01DA\u01DC\x054\x1B" + + "\x02\u01DB\u01DA\x03\x02\x02\x02\u01DB\u01DC\x03\x02\x02\x02\u01DCC\x03" + + "\x02\x02\x02\u01DD\u01DE\x07+\x02\x02\u01DE\u01DF\x07,\x02\x02\u01DF\u01E0" + + "\x07-\x02\x02\u01E0\u01E1\t\x07\x02\x02\u01E1E\x03\x02\x02\x02\u01E2\u01E5" + + "\x05J&\x02\u01E3\u01E5\x05L\'\x02\u01E4\u01E2\x03\x02\x02\x02\u01E4\u01E3" + + "\x03\x02\x02\x02\u01E5G\x03\x02\x02\x02\u01E6\u01E7\x07%\x02\x02\u01E7" + + "\u01E8\t\x04\x02\x02\u01E8\u01E9\x07&\x02\x02\u01E9I\x03\x02\x02\x02\u01EA" + + "\u01EB\t\b\x02\x02\u01EBK\x03\x02\x02\x02\u01EC\u01ED\x07Q\x02\x02\u01ED" + + "M\x03\x02\x02\x02\u01EE\u01EF\x07O\x02\x02\u01EFO\x03\x02\x02\x02OQVk" + + "nqu{~\x83\x8A\x8E\x94\x98\x9C\x9F\xA3\xA8\xAD\xB0\xB2\xB6\xB9\xBD\xC0" + + "\xC5\xC8\xCD\xD0\xD2\xDD\xE1\xE4\xE8\xEC\xEF\xF6\xFA\xFF\u0107\u010B\u010F" + + "\u0111\u0113\u0115\u0118\u011F\u0123\u012A\u012E\u0134\u013F\u0142\u0145" + + "\u014D\u014F\u0159\u0161\u0164\u016D\u0172\u017E\u0184\u0192\u0197\u01A5" + + "\u01AC\u01AF\u01B3\u01B9\u01BB\u01C3\u01C5\u01D1\u01D5\u01D8\u01DB\u01E4"; public static __ATN: ATN; public static get _ATN(): ATN { if (!SFMLParser.__ATN) { @@ -3187,6 +3293,9 @@ export class OutputStatementContext extends ParserRuleContext { public resourceExclusion(): ResourceExclusionContext | undefined { return this.tryGetRuleContext(0, ResourceExclusionContext); } + public emptyslots(): EmptyslotsContext | undefined { + return this.tryGetRuleContext(0, EmptyslotsContext); + } public EACH(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.EACH, 0); } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); @@ -4096,6 +4205,11 @@ export class SideContext extends ParserRuleContext { public EAST(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.EAST, 0); } public SOUTH(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.SOUTH, 0); } public WEST(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.WEST, 0); } + public LEFT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.LEFT, 0); } + public RIGHT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.RIGHT, 0); } + public FRONT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.FRONT, 0); } + public BACK(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.BACK, 0); } + public NULL(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.NULL, 0); } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); } @@ -4125,10 +4239,11 @@ export class SideContext extends ParserRuleContext { export class SlotqualifierContext extends ParserRuleContext { - public SLOTS(): TerminalNode { return this.getToken(SFMLParser.SLOTS, 0); } public rangeset(): RangesetContext { return this.getRuleContext(0, RangesetContext); } + public SLOTS(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.SLOTS, 0); } + public SLOT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.SLOT, 0); } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); } @@ -4833,12 +4948,51 @@ export class StringLabelContext extends LabelContext { } +export class EmptyslotsContext extends ParserRuleContext { + public EMPTY(): TerminalNode { return this.getToken(SFMLParser.EMPTY, 0); } + public IN(): TerminalNode { return this.getToken(SFMLParser.IN, 0); } + public SLOTS(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.SLOTS, 0); } + public SLOT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.SLOT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return SFMLParser.RULE_emptyslots; } + // @Override + public enterRule(listener: SFMLListener): void { + if (listener.enterEmptyslots) { + listener.enterEmptyslots(this); + } + } + // @Override + public exitRule(listener: SFMLListener): void { + if (listener.exitEmptyslots) { + listener.exitEmptyslots(this); + } + } + // @Override + public accept(visitor: SFMLVisitor): Result { + if (visitor.visitEmptyslots) { + return visitor.visitEmptyslots(this); + } else { + return visitor.visitChildren(this); + } + } +} + + export class IdentifierContext extends ParserRuleContext { public IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.IDENTIFIER, 0); } public REDSTONE(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.REDSTONE, 0); } public GLOBAL(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.GLOBAL, 0); } public SECOND(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.SECOND, 0); } public SECONDS(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.SECONDS, 0); } + public TOP(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.TOP, 0); } + public BOTTOM(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.BOTTOM, 0); } + public LEFT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.LEFT, 0); } + public RIGHT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.RIGHT, 0); } + public FRONT(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.FRONT, 0); } + public BACK(): TerminalNode | undefined { return this.tryGetToken(SFMLParser.BACK, 0); } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); } diff --git a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLVisitor.ts b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLVisitor.ts index 909fbe073..49ff215b5 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLVisitor.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/generated/SFMLVisitor.ts @@ -64,6 +64,7 @@ import { SetOpContext } from "./SFMLParser"; import { LabelAccessContext } from "./SFMLParser"; import { RoundrobinContext } from "./SFMLParser"; import { LabelContext } from "./SFMLParser"; +import { EmptyslotsContext } from "./SFMLParser"; import { IdentifierContext } from "./SFMLParser"; import { StringContext } from "./SFMLParser"; import { NumberContext } from "./SFMLParser"; @@ -530,6 +531,13 @@ export interface SFMLVisitor extends ParseTreeVisitor { */ visitLabel?: (ctx: LabelContext) => Result; + /** + * Visit a parse tree produced by `SFMLParser.emptyslots`. + * @param ctx the parse tree + * @return the visitor result + */ + visitEmptyslots?: (ctx: EmptyslotsContext) => Result; + /** * Visit a parse tree produced by `SFMLParser.identifier`. * @param ctx the parse tree diff --git a/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/map.ts b/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/map.ts index 3a732d6a5..9d465acfb 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/map.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/map.ts @@ -26,10 +26,13 @@ export const keywordToTokenType: { [key: string]: number } = { 'output': SFMLLexer.OUTPUT, 'where': SFMLLexer.WHERE, 'slots': SFMLLexer.SLOTS, + 'slot': SFMLLexer.SLOT, 'retain': SFMLLexer.RETAIN, 'each': SFMLLexer.EACH, 'except': SFMLLexer.EXCEPT, 'forget': SFMLLexer.FORGET, + 'empty': SFMLLexer.EMPTY, + 'in': SFMLLexer.IN, 'without': SFMLLexer.WITHOUT, 'with': SFMLLexer.WITH, 'tag': SFMLLexer.TAG, @@ -45,11 +48,17 @@ export const keywordToTokenType: { [key: string]: number } = { 'south': SFMLLexer.SOUTH, 'west': SFMLLexer.WEST, 'side': SFMLLexer.SIDE, + 'left': SFMLLexer.LEFT, + 'right': SFMLLexer.RIGHT, + 'front': SFMLLexer.FRONT, + 'back': SFMLLexer.BACK, + 'null': SFMLLexer.NULL, 'ticks': SFMLLexer.TICKS, 'tick': SFMLLexer.TICK, 'seconds': SFMLLexer.SECONDS, 'second': SFMLLexer.SECOND, 'global': SFMLLexer.GLOBAL, + 'g': SFMLLexer.GLOBAL, 'plus': SFMLLexer.PLUS, 'redstone': SFMLLexer.REDSTONE, 'pulse': SFMLLexer.PULSE, @@ -62,6 +71,7 @@ export const keywordToTokenType: { [key: string]: number } = { '=': SFMLLexer.EQ_SYMBOL, '<=': SFMLLexer.LE_SYMBOL, '>=': SFMLLexer.GE_SYMBOL, + '+': SFMLLexer.PLUS, ',': SFMLLexer.COMMA, ':': SFMLLexer.COLON, '/': SFMLLexer.SLASH, diff --git a/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/syntax.ts b/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/syntax.ts index 6a05f1b0b..22e520922 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/syntax.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/syntaxes/syntax.ts @@ -86,12 +86,17 @@ export class SemanticTokensProvider implements vscode.DocumentSemanticTokensProv [SFMLLexer.OUTPUT, 'keyword'], [SFMLLexer.WHERE, 'keyword'], [SFMLLexer.SLOTS, 'keyword'], + [SFMLLexer.SLOT, 'keyword'], [SFMLLexer.RETAIN, 'keyword'], [SFMLLexer.EACH, 'keyword'], [SFMLLexer.EXCEPT, 'keyword'], - [SFMLLexer.WITH, 'keyword'], + [SFMLLexer.EMPTY, 'keyword'], + [SFMLLexer.IN, 'keyword'], [SFMLLexer.WITHOUT, 'keyword'], + [SFMLLexer.WITH, 'keyword'], + [SFMLLexer.TAG, 'keyword'], [SFMLLexer.SIDE, 'keyword'], + [SFMLLexer.REDSTONE, 'keyword'], [SFMLLexer.PULSE, 'keyword'], [SFMLLexer.DO, 'keyword'], [SFMLLexer.END, 'keyword'], @@ -100,12 +105,14 @@ export class SemanticTokensProvider implements vscode.DocumentSemanticTokensProv //number zone [SFMLLexer.NUMBER, 'number'], + [SFMLLexer.NUMBER_WITH_G_SUFFIX, 'number'], [SFMLLexer.OVERALL, 'number'], [SFMLLexer.SOME, 'number'], [SFMLLexer.ONE, 'number'], [SFMLLexer.LONE, 'number'], [SFMLLexer.TRUE, 'number'], [SFMLLexer.FALSE, 'number'], + [SFMLLexer.NULL, 'number'], [SFMLLexer.NOT, 'number'], [SFMLLexer.AND, 'number'], [SFMLLexer.OR, 'number'], @@ -128,6 +135,10 @@ export class SemanticTokensProvider implements vscode.DocumentSemanticTokensProv [SFMLLexer.EAST, 'number'], [SFMLLexer.SOUTH, 'number'], [SFMLLexer.WEST, 'number'], + [SFMLLexer.LEFT, 'number'], + [SFMLLexer.RIGHT, 'number'], + [SFMLLexer.FRONT, 'number'], + [SFMLLexer.BACK, 'number'], //string zone [SFMLLexer.STRING, 'string'], @@ -140,6 +151,7 @@ export class SemanticTokensProvider implements vscode.DocumentSemanticTokensProv [SFMLLexer.SECOND, 'string'], [SFMLLexer.GLOBAL, 'string'], [SFMLLexer.PLUS, 'string'], + //comments zone [SFMLLexer.LINE_COMMENT, 'comment'], diff --git a/platform/visual-studio-code/super-factory-manager-language/src/tooltip/tooltip.ts b/platform/visual-studio-code/super-factory-manager-language/src/tooltip/tooltip.ts index 2f3758fc0..b93f4af05 100644 --- a/platform/visual-studio-code/super-factory-manager-language/src/tooltip/tooltip.ts +++ b/platform/visual-studio-code/super-factory-manager-language/src/tooltip/tooltip.ts @@ -16,12 +16,25 @@ const TOOLTIP_DEFINITIONS: Record 5 then ... end" + ] + }, [SFMLLexer.ELSE]: { description: "**ELSE**\n\nOptional branch for IF statements when the condition is false", examples: [ "if redstone > 5 then ... else ... end" ] }, + [SFMLLexer.HAS]: { + description: "**HAS**\n\nChecks if an inventory or target contains specific items, fluids, or quantities", + examples: [ + "if chest has > 10 coal then ... end", + "if chest has fluid::lava then ... end" + ] + }, [SFMLLexer.OVERALL]: { description: "**OVERALL**\n\nChecks if the condition applies to the entire inventory collectively (same as leaving empty)", examples: [ @@ -40,6 +53,24 @@ const TOOLTIP_DEFINITIONS: Record 64 coal then ... end" + ] + }, + [SFMLLexer.TRUE]: { + description: "**TRUE**\n\nBoolean constant representing a true value", + examples: [ + "if true then ... end" + ] + }, + [SFMLLexer.FALSE]: { + description: "**FALSE**\n\nBoolean constant representing a false value", + examples: [ + "if false then ... end" + ] + }, [SFMLLexer.NOT]: { description: "**NOT**\n\nNegate the expression (true -> false and false -> true)", examples: [ @@ -82,75 +113,100 @@ const TOOLTIP_DEFINITIONS: Record= (GE)**\n\nGreater than or equal comparison", examples: [ - "if redstone ge 12 then", - "if chest has ge 64 coal then" + "if redstone ge 12 then ... end", + "if chest has ge 64 coal then ... end" ] }, [SFMLLexer.GE_SYMBOL]: { description: "**>= (GE)**\n\nGreater than or equal comparison", examples: [ - "if redstone >= 12 then", - "if chest has >= 64 coal then" + "if redstone >= 12 then ... end", + "if chest has >= 64 coal then ... end" + ] + }, + [SFMLLexer.FROM]: { + description: "**FROM**\n\nSpecifies the source inventory or container for an extraction operation", + examples: [ + "input from chest", + "from chest input coal" + ] + }, + [SFMLLexer.TO]: { + description: "**TO**\n\nSpecifies the destination inventory or container for an insertion operation", + examples: [ + "output to chest", + "to furnace output coal" ] }, [SFMLLexer.INPUT]: { description: "**INPUT**\n\nExtracts contents from an inventory", examples: [ "input from chest", - "input fluid::, item::, gas:: from interface", - "input fe:: from \"mek_cube™️\" top side" + "input 64 coal from chest" ] }, [SFMLLexer.OUTPUT]: { description: "**OUTPUT**\n\nSends contents to an inventory", examples: [ "output to chest", - "output fluid::, item::, gas:: to interface", - "output fe:: to \"mek_cube™️\" top side" + "output retain 4 coal to furnace" + ] + }, + [SFMLLexer.WHERE]: { + description: "**WHERE**\n\nReserved filter keyword", + examples: [ + "input where item = minecraft:dirt" ] }, [SFMLLexer.SLOTS]: { - description: "**SLOTS**\n\nSpecifies a particular inventory slots (not all slots are available)", + description: "**SLOTS**\n\nSpecifies a range or list of inventory slots", examples: [ - "output fluid:: to furnace slots 1-3", + "output to furnace slots 1-3", "input from chest slots 5,9,13" ] }, + [SFMLLexer.SLOT]: { + description: "**SLOT**\n\nSpecifies a single inventory slot", + examples: [ + "output to furnace slot 1", + "input from chest slot 0" + ] + }, [SFMLLexer.RETAIN]: { description: "**RETAIN**\n\nKeeps a minimum quantity of items in the source inventory if used on input\n Send as maximum as the limit if used on output", examples: [ @@ -159,24 +215,39 @@ const TOOLTIP_DEFINITIONS: Record 0 then ... end" + "input from machine each side" ] }, [SFMLLexer.EXCEPT]: { - description: "**EXCEPT**\n\nExcludes specific items, fluids, gas, energy from the operation", + description: "**EXCEPT**\n\nExcludes specific items, fluids, gas, or energy from the operation", examples: [ "input * except cobblestone, dirt from chest", "output fluid:: except fluid::lava to interface" ] }, [SFMLLexer.FORGET]: { - description: "**FORGET**\n\nClears the previous inputs, can be used to forget labels too", + description: "**FORGET**\n\nClears previous inputs or specific labels", examples: [ "forget", - "forget chest" + "forget chest", + "forget chest, furnace" + ] + }, + [SFMLLexer.EMPTY]: { + description: "**EMPTY**\n\nUsed with `IN` to target empty inventory slots", + examples: [ + "output to empty slots in chest", + "output to empty slot in furnace" + ] + }, + [SFMLLexer.IN]: { + description: "**IN**\n\nSpecifies the container for empty slots target", + examples: [ + "output to empty slots in chest", + "output to empty slot in furnace" ] }, [SFMLLexer.WITHOUT]: { @@ -187,33 +258,59 @@ const TOOLTIP_DEFINITIONS: Record 0 then", - "every redstone pulse do" + "if redstone > 0 then ... end", + "every redstone pulse do ... end" ] }, [SFMLLexer.PULSE]: { description: "**PULSE**\n\nTriggers on redstone signal changes on the manager block", examples: [ - "every redstone pulse do" + "every redstone pulse do ... end" + ] + }, + [SFMLLexer.DO]: { + description: "**DO**\n\nMarks the beginning of an executable trigger block", + examples: [ + "every 5 ticks do ... end", + "every redstone pulse do ... end" + ] + }, + [SFMLLexer.END]: { + description: "**END**\n\nCloses an open block (IF, EVERY, etc.)", + examples: [ + "if redstone > 0 then ... end", + "every 5 ticks do ... end" ] }, [SFMLLexer.NAME]: { - description: "**NAME**\n\nNames the current program (optional)", + description: "**NAME**\n\nNames the current program (optional header)", examples: [ "name \"My super dupper laggy program\"", "name \"Redstone factory v3\"" ] }, [SFMLLexer.EVERY]: { - description: "**EVERY**\n\nCreates a timed trigger", + description: "**EVERY**\n\nCreates a timed or event trigger block", examples: [ "every 5 ticks do ... end", - "every 10 ticks do ... end", - "every redstone pulse do ... end", - "every second do ... end" + "every redstone pulse do ... end" ] } }; diff --git a/platform/visual-studio-code/super-factory-manager-language/syntaxes/SFML.g4 b/platform/visual-studio-code/super-factory-manager-language/syntaxes/SFML.g4 index c50c7099d..b9a0e1f92 100644 --- a/platform/visual-studio-code/super-factory-manager-language/syntaxes/SFML.g4 +++ b/platform/visual-studio-code/super-factory-manager-language/syntaxes/SFML.g4 @@ -2,7 +2,7 @@ grammar SFML; //Need to get rip of the @header when copying -//go to SFMLLexer.ts after going antlr command on the package.json and solve the 2 issues +//go to SFMLLexer.ts after going antlr command on the package.json and solve the 1 issues @lexer::members { public INCLUDE_UNUSED: boolean = false; // we want syntax highlighting to not break on unexpected tokens } @@ -279,7 +279,7 @@ WS ; UNUSED - : {this.INCLUDE_UNUSED}? . -> channel(HIDDEN) + : {INCLUDE_UNUSED}? . -> channel(HIDDEN) ; fragment A :('a' | 'A') ; diff --git a/platform/visual-studio-code/super-factory-manager-language/tsconfig.json b/platform/visual-studio-code/super-factory-manager-language/tsconfig.json index 83104c4f9..0c700348a 100644 --- a/platform/visual-studio-code/super-factory-manager-language/tsconfig.json +++ b/platform/visual-studio-code/super-factory-manager-language/tsconfig.json @@ -1,19 +1,23 @@ { "compilerOptions": { - "module": "commonjs", - "target": "es6", - "outDir": "out", - "rootDir": "src", - "sourceMap": true, - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true + "module": "commonjs", + "target": "es6", + "outDir": "out", + "rootDir": "src", + "sourceMap": true, + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "types": [ + "node", + "vscode" + ] }, "include": [ - "src" + "src" ], "exclude": [ "node_modules", ".vscode-test" - ] - } \ No newline at end of file + ] +} \ No newline at end of file diff --git a/platform/visual-studio-code/super-factory-manager-language/vsce-versions/super-factory-manager-language-0.0.17.vsix b/platform/visual-studio-code/super-factory-manager-language/vsce-versions/super-factory-manager-language-0.0.17.vsix new file mode 100644 index 0000000000000000000000000000000000000000..6120b0003475b2a958278761f834ded2c00bbc68 GIT binary patch literal 229199 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%0Dn(rD@Yx3nS2Q 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%0ALoL=z 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%0DkxSGcb1D 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 ^iMW(_zF+EeGLApwXRqwoAh1 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 literal 0 HcmV?d00001