halfcode-compiler.xnl 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import { a as assertObjectOperationCatalog, c as resolveApplicationAssembly, i as assertObjectOperationCall, l as resourceRefToFqn, n as applicationAssemblyPackage, o as assertObjectOperationDefinition, r as assertExecuteObjectOperationRequest, s as loadApplicationAssembly, t as ObjectOperationContractError } from "./src-t2lJrIJe.js";
1
+ import { a as assertObjectOperationCatalog, c as resolveApplicationAssembly, i as assertObjectOperationCall, l as resourceRefToFqn, n as applicationAssemblyPackage, o as assertObjectOperationDefinition, r as assertExecuteObjectOperationRequest, s as loadApplicationAssembly, t as ObjectOperationContractError } from "./src-D2au7Wcj.js";
2
2
  export { ObjectOperationContractError, applicationAssemblyPackage, assertExecuteObjectOperationRequest, assertObjectOperationCall, assertObjectOperationCatalog, assertObjectOperationDefinition, loadApplicationAssembly, resolveApplicationAssembly, resourceRefToFqn };
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { _ as ResourceCompositionError, a as CODE_PACKAGE_ENTRY_CONTRIBUTION_KEY, c as admitCodePackages, d as buildResourceDependencySnapshot, f as createResourceContentIdentity, l as loadCodePackageModule, n as loadResourceTree, o as CodePackageLoadError, p as sha256Digest, r as validateResourceTree, s as admitCodePackageExports, t as ResourceValidationError } from "./src-DvYk6l4v.js";
2
- import { a as assertObjectOperationCatalog, c as resolveApplicationAssembly, i as assertObjectOperationCall, l as resourceRefToFqn, n as applicationAssemblyPackage, o as assertObjectOperationDefinition, r as assertExecuteObjectOperationRequest, s as loadApplicationAssembly, t as ObjectOperationContractError } from "./src-t2lJrIJe.js";
1
+ import { _ as ResourceCompositionError, a as CODE_PACKAGE_ENTRY_CONTRIBUTION_KEY, c as admitCodePackages, d as buildResourceDependencySnapshot, f as createResourceContentIdentity, l as loadCodePackageModule, n as loadResourceTree, o as CodePackageLoadError, p as sha256Digest, r as validateResourceTree, s as admitCodePackageExports, t as ResourceValidationError } from "./src-88_zDKZE.js";
2
+ import { a as assertObjectOperationCatalog, c as resolveApplicationAssembly, i as assertObjectOperationCall, l as resourceRefToFqn, n as applicationAssemblyPackage, o as assertObjectOperationDefinition, r as assertExecuteObjectOperationRequest, s as loadApplicationAssembly, t as ObjectOperationContractError } from "./src-D2au7Wcj.js";
3
3
  import "./application-assembly.js";
4
4
  import { composeLayeredResourceRegistry, resolveEffectiveResourceContentIdentities } from "./resource-core.js";
5
- import { a as compilerSkillPackage, i as compileSkillCapsule, n as applySkillCapsuleDistributionPlan, o as planSkillCapsuleDistribution, r as compileResourceSkillCapsule, s as skillCapsuleDistributionProjection, t as SkillCapsuleDistributionError } from "./src-m2ZrS5dQ.js";
5
+ import { a as compilerSkillPackage, i as compileSkillCapsule, n as applySkillCapsuleDistributionPlan, o as planSkillCapsuleDistribution, r as compileResourceSkillCapsule, s as skillCapsuleDistributionProjection, t as SkillCapsuleDistributionError } from "./src-BxyKIkBg.js";
6
6
  import { fileURLToPath } from "node:url";
7
7
  //#region src/bundled-system-skills.ts
8
8
  function loadHalfcodeResourceDslSystemSkillModule() {
@@ -1,4 +1,4 @@
1
- import { _ as ResourceCompositionError, a as CODE_PACKAGE_ENTRY_CONTRIBUTION_KEY, c as admitCodePackages, d as buildResourceDependencySnapshot, f as createResourceContentIdentity, g as markEffectiveRegistryAuthentic, h as isEffectiveRegistryAuthentic, i as readonlyMap, l as loadCodePackageModule, m as effectiveRegistryLayerBindings, n as loadResourceTree, o as CodePackageLoadError, p as sha256Digest, r as validateResourceTree, s as admitCodePackageExports, t as ResourceValidationError, u as isLoadedResourceTreeAuthentic, v as compareCodeUnits, y as digestCanonical } from "./src-DvYk6l4v.js";
1
+ import { _ as ResourceCompositionError, a as CODE_PACKAGE_ENTRY_CONTRIBUTION_KEY, c as admitCodePackages, d as buildResourceDependencySnapshot, f as createResourceContentIdentity, g as markEffectiveRegistryAuthentic, h as isEffectiveRegistryAuthentic, i as readonlyMap, l as loadCodePackageModule, m as effectiveRegistryLayerBindings, n as loadResourceTree, o as CodePackageLoadError, p as sha256Digest, r as validateResourceTree, s as admitCodePackageExports, t as ResourceValidationError, u as isLoadedResourceTreeAuthentic, v as compareCodeUnits, y as digestCanonical } from "./src-88_zDKZE.js";
2
2
  //#region ../resource-core/src/layered-registry.ts
3
3
  function composeLayeredResourceRegistry(input) {
4
4
  const diagnostics = [];
@@ -1,2 +1,2 @@
1
- import { a as compilerSkillPackage, i as compileSkillCapsule, n as applySkillCapsuleDistributionPlan, o as planSkillCapsuleDistribution, r as compileResourceSkillCapsule, s as skillCapsuleDistributionProjection, t as SkillCapsuleDistributionError } from "./src-m2ZrS5dQ.js";
1
+ import { a as compilerSkillPackage, i as compileSkillCapsule, n as applySkillCapsuleDistributionPlan, o as planSkillCapsuleDistribution, r as compileResourceSkillCapsule, s as skillCapsuleDistributionProjection, t as SkillCapsuleDistributionError } from "./src-BxyKIkBg.js";
2
2
  export { SkillCapsuleDistributionError, applySkillCapsuleDistributionPlan, compileResourceSkillCapsule, compileSkillCapsule, compilerSkillPackage, planSkillCapsuleDistribution, skillCapsuleDistributionProjection };
@@ -1,5 +1,5 @@
1
1
  import { n as wordToString, t as parseXnl } from "./dist-Bkv7YeVi.js";
2
- import { mkdtemp, readFile, readdir, realpath, rm, stat, writeFile } from "node:fs/promises";
2
+ import { lstat, mkdtemp, readFile, readdir, realpath, rm, stat, writeFile } from "node:fs/promises";
3
3
  import { dirname, extname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
4
4
  import { parse } from "yaml";
5
5
  import { createHash } from "node:crypto";
@@ -789,6 +789,24 @@ async function catalogFiles(catalog, manifestDir, context) {
789
789
  });
790
790
  return [];
791
791
  }
792
+ if (catalog.shape === "code-package") {
793
+ const directEntry = join(root, catalog.entry);
794
+ const directStat = await lstat(directEntry).catch((error) => {
795
+ if (error.code === "ENOENT") return void 0;
796
+ throw error;
797
+ });
798
+ if (directStat) {
799
+ if (directStat.isSymbolicLink() || !directStat.isFile()) {
800
+ context.diagnostics.push({
801
+ code: "RESOURCE_CODE_PACKAGE_CATALOG_ENTRY_INVALID",
802
+ location: documentUriFor(context.rootDir, directEntry),
803
+ message: "A direct CodePackage catalog entry must be a regular non-symbolic-link XNL file."
804
+ });
805
+ return [];
806
+ }
807
+ return [directEntry];
808
+ }
809
+ }
792
810
  return entries.filter((entry) => entry.isDirectory()).sort((left, right) => compareCodeUnits(left.name, right.name)).map((entry) => join(root, entry.name, catalog.entry));
793
811
  }
794
812
  async function loadXnlRecord(filePath, sourceShape, context) {
@@ -1,4 +1,4 @@
1
- import { l as resourceRefToFqn, u as resolveObjectOperationCompilation } from "./src-t2lJrIJe.js";
1
+ import { l as resourceRefToFqn, u as resolveObjectOperationCompilation } from "./src-D2au7Wcj.js";
2
2
  import { c as unsafeUnicodeCodeUnitIssue, i as planResourceMappings, o as safePathLexicalIssue, r as parseResourceMappings, t as ResourceMappingPathError } from "./src-25wZPUyX.js";
3
3
  import { lstat, mkdir, mkdtemp, readFile, readdir, rename, rm, writeFile } from "node:fs/promises";
4
4
  import { basename, dirname, join, posix, resolve } from "node:path";
@@ -1,4 +1,4 @@
1
- import { n as loadResourceTree } from "./src-DvYk6l4v.js";
1
+ import { n as loadResourceTree } from "./src-88_zDKZE.js";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { dirname, join } from "node:path";
4
4
  import { parse } from "yaml";
@@ -106,6 +106,8 @@ frontmatter 只规范化 identity、metadata 与 JSON-compatible `spec`;正文
106
106
 
107
107
  `entry` 必须是 package-local `.js|.mjs` 相对路径,并与 `CodeBinding.module` 精确一致;`runtime` 是非空 target-neutral runtime identifier。
108
108
 
109
+ `code-package` catalog 支持两种互不混淆的布局。若 catalog root 自身包含配置的 entry,则该 root 是一个直接 CodePackage;例如 catalog 可直接指向 `vfs://./LocalFunction/`。若 root 自身没有 entry,则 loader 保持既有行为,按稳定顺序扫描各子目录的 entry。root entry 一旦存在但不是普通非符号链接文件,加载会 fail closed,不会退回 collection 扫描。
110
+
109
111
  允许 forest 的 Kind 仍逐根执行同样的 kind、identity 与 `apiVersion` 校验。例如 Decision Kind 可以显式声明:
110
112
 
111
113
  ```xnl
@@ -40,6 +40,7 @@ loader 为每个 normalized descriptor 附加只读 provenance:
40
40
  ## 扫描边界
41
41
 
42
42
  - 默认目录入口仅为 `manifest.xnl`。
43
+ - `code-package` root 自身存在入口时加载一个直接 package;入口缺失时才扫描子目录 collection。存在但不安全的直接入口不得触发 fallback。
43
44
  - `single-file` catalog 缺省扫描 root 下全部 `.xnl` 与 `.md`;声明 `entry = "name.xnl|name.md"` 时只加载该文件,便于多个不同 Kind 共用一个物理目录。
44
45
  - 非入口 `.xnl` 文件只能作为显式域/物料被入口引用,不能被重复注册为第二资源。
45
46
  - 多根文档必须由 KindDefinition 显式授权;loader 不根据文件名或根数量猜测 forest 语义。
@@ -72,8 +72,8 @@ const projection = {
72
72
  "skillVersion": "1.0.0",
73
73
  "capsuleRelativePath": "references/.halfcode/provenance.json",
74
74
  "targetRelativePath": "sys-halfcode-resource-dsl/references/.halfcode/provenance.json",
75
- "contentDigest": "sha256:8c988d0476e08fad62cffb55eca87b563698586bd040a5e64903d1d281460581",
76
- "contentBase64": "ewogICJmb3JtYXQiOiAiaGFsZmNvZGUuc2tpbGwtcHJvdmVuYW5jZS92MSIsCiAgImdlbmVyYXRlZEJ5IjogImhhbGZjb2RlLnNraWxsLWRpc3RyaWJ1dGlvbi92MSIsCiAgInNvdXJjZSI6IHsKICAgICJmcW4iOiAiSGFsZmNvZGUuUmVzb3VyY2VEc2wuU2tpbGwuU3lzdGVtIiwKICAgICJhcGlWZXJzaW9uIjogImhhbGZjb2RlLnJlc291cmNlcy92MSIsCiAgICAidmVyc2lvbiI6ICIxLjAuMCIKICB9LAogICJwYXlsb2FkRmlsZXMiOiBbCiAgICB7CiAgICAgICJwYXRoIjogIlNLSUxMLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2Ojg4Yjc2YzA4YmE2MzAzYmFiNmFhNmMyYTZmNzcxNjU4ZWRkYjA3ZDk3MmNlM2Y5NzQzMDViNTI3MDhhODlmMjIiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvYnVuZGxlLmpzIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjZkMDU3MWJiM2ExZWQ1Njk0YzMxMmNlNmUxNmY3NDQ0YTI3YTc1ZDQ3YmE3ODAzMTU3NTY4YTMxNDhkNmEzZmQiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NzE1NGEwNGEwMmZhNzExYzU1NTUzM2YzYWY5NjdjM2JjNWRiZTE1ZjRhZmQwMDEzZTdmY2YxNzcxMTJhNWU0IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAib2JqZWN0cy9idW5kbGUuanMiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6NTQ1MDU5ODQ0OGQ2NzAzODdmYjkwNjJlMDI0MzlmNmFlMjIzYTYxNWU4MDVmNzgwNzk0N2FhN2E1ZmI1Njc4OSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogIm9iamVjdHMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjOTUzYWEyOWFjOTY0Y2E1N2RkODZlZWZkMmZmMDkzOGZkMTQ2N2M3ZDNjMGE0NmRmYWJmMTYxMjhmNjhkODA5IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZG9jdW1lbnRzLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OmE2NDI3YjMyMGU2Zjk4NmM0MzRhODZmMzFjZDI2NWI2NmUyNWIzMDk3NTNkMmRhMTk0YmQ0OTM1YWFiM2NlMzkiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9mdW5jdGlvbi54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2FjOTZjNDdiMThmMGMyZWFiNTFiODU2MTdhZTFiMTM1OGU1ZWRiNTdjYWNkOTQzYmRiOTE0OTVmZmZjZDk5YyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjFhYWRiOTAxODllZGY2MTEyNjZlYTI3MTNlYWU2MGNiOGYxOTMyYjE4YmVlMGU2MThjYWZhZmY5OWViMjUyOGYiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjRhYjA3NTM5OGE1NDAyZGUzNDQ3OWY2MmY2ODhjNmJhMzU0NmU0MWQ2MjJhYjQzYjMzNWFjZTNiNGFjOThmNTgiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9yZXNvdXJjZS1tYXBwaW5ncy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6MTg2MGVmOTY5YWExY2VkZjg2YzlmZTVkMGVmNDkzY2QwZGExZjI4NTk5MTUyOGVmYmNiYzUxZWUxMTc5ZTk0NCIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3Jlc291cmNlLXBhY2thZ2UueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjYxYmZlYzRjZmQ4OTcwNjQ5Mzg5NzVlMzFlNmZhYThjOGI5MWRkYzEyNzVhZDFhODFkZDg3M2Q5YjU2MTI1YjUiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6OTZlMWQxYzRlMjRkNzQyODUzYTYwMTU5NDQ3NDhlMzc2NTNmMDE3NTEyNTViOWNmZjliMmJhNTQzYzQ3YjlhYyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5YTdmMmY4MzAxYTBjOGNhYWI4NmQzNjRkNWY4NGI5NzgwN2NhYTMxYzQzZWUxOTcxNjk2MmM4NzcwY2MzNjVjIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjI2ZTUzNTgxNjcwOWY4ZThjMmJkZTczOTJkMTRhYTY5NWU0ODM5ZTNhMmZlZjBmZWEwNDQ1MTA3ZThmNWEwZWEiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLXJlc291cmNlLWRzbC54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6YzM2Y2IyZTlhY2Y5N2MyOGI1NWYxZWZkM2JiY2E4NDZiNmZiMmQ3M2ZlNGUxNTM2NzhkZmJmZDcwNTM4MmYxNSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtcnVuLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjphM2RkMTU2MzA3NTNjOTg0Y2QzMjM1YzZmMzQyODY3NjFhOGI3OGE4YzRiNzgxYzQwNzE5ZjNkYjY5ZTgyYjQxIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZmlsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6NjQyYWY1ZGNiZmZhMDYxMTI4NzZmNjU0YjRjZDVlN2U4NjQ5ODE2NzQ4NGZkNDJjOTRjZjI1ZDE3MzllMmU5NSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjE3YTg3YWFmNzczM2M2NDU3OWQ4MDEzNGE2NzAyOTlmNTRiYTQ0NjZlZGY5NDYwZWE3ZTJiNGZhMDkxNDIzYjMiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9sYW5ndWFnZS5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NWNlOTQ4NjAxZTM3ZWZmMGI4MDBhNmE2MDUxZTMyOTYxMmQxZjliY2U3NjczMGU1NzUxM2IwYzQ1NDc1MWMwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvbWlncmF0aW9uLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OmVhOTc4ZmEyZmU1ZjU3ZDM5ZTBkYmRiOWUwNWIzNTc5OTM0NTFmM2YyYWI4NDQ3Y2I1YjZmYzE3Mzg5Mzg3Y2EiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9wcm9qZWN0aW9ucy5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjYjA5YzQ0YTMxNWZkZDc3ZjdlZWI0ZDFlZWU5NjU1OTRmNWYwMmZkYTVhNmRlYTk3ZWE4MGZkOTViNjIzOWQwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvc2tpbGwtY2Fwc3VsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2VhYTA3NzYxZWM1NDA1NzE2ZGMxYjJmZWExZTVmOTU1M2M1OWM5NDA0ZGEwODYwYjIzNjk4NjEwYzFjNDE0NCIKICAgIH0KICBdCn0K"
75
+ "contentDigest": "sha256:9a4614b3a3a0958fef8337b393aa3733ccabf3b09b7ca6b236dd6fd80166a4e9",
76
+ "contentBase64": "ewogICJmb3JtYXQiOiAiaGFsZmNvZGUuc2tpbGwtcHJvdmVuYW5jZS92MSIsCiAgImdlbmVyYXRlZEJ5IjogImhhbGZjb2RlLnNraWxsLWRpc3RyaWJ1dGlvbi92MSIsCiAgInNvdXJjZSI6IHsKICAgICJmcW4iOiAiSGFsZmNvZGUuUmVzb3VyY2VEc2wuU2tpbGwuU3lzdGVtIiwKICAgICJhcGlWZXJzaW9uIjogImhhbGZjb2RlLnJlc291cmNlcy92MSIsCiAgICAidmVyc2lvbiI6ICIxLjAuMCIKICB9LAogICJwYXlsb2FkRmlsZXMiOiBbCiAgICB7CiAgICAgICJwYXRoIjogIlNLSUxMLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2Ojg4Yjc2YzA4YmE2MzAzYmFiNmFhNmMyYTZmNzcxNjU4ZWRkYjA3ZDk3MmNlM2Y5NzQzMDViNTI3MDhhODlmMjIiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvYnVuZGxlLmpzIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjZkMDU3MWJiM2ExZWQ1Njk0YzMxMmNlNmUxNmY3NDQ0YTI3YTc1ZDQ3YmE3ODAzMTU3NTY4YTMxNDhkNmEzZmQiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NzE1NGEwNGEwMmZhNzExYzU1NTUzM2YzYWY5NjdjM2JjNWRiZTE1ZjRhZmQwMDEzZTdmY2YxNzcxMTJhNWU0IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAib2JqZWN0cy9idW5kbGUuanMiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6NTQ1MDU5ODQ0OGQ2NzAzODdmYjkwNjJlMDI0MzlmNmFlMjIzYTYxNWU4MDVmNzgwNzk0N2FhN2E1ZmI1Njc4OSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogIm9iamVjdHMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjOTUzYWEyOWFjOTY0Y2E1N2RkODZlZWZkMmZmMDkzOGZkMTQ2N2M3ZDNjMGE0NmRmYWJmMTYxMjhmNjhkODA5IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZG9jdW1lbnRzLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjcwNWMyYjEwZWY2OTdhY2YzYzBlMTgzZWMxNjY3MjI3NWI3ZWM5OGM0MmMxNGI5ODcwOTJlOGZhOTgyZmMyMWIiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9mdW5jdGlvbi54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2FjOTZjNDdiMThmMGMyZWFiNTFiODU2MTdhZTFiMTM1OGU1ZWRiNTdjYWNkOTQzYmRiOTE0OTVmZmZjZDk5YyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjFhYWRiOTAxODllZGY2MTEyNjZlYTI3MTNlYWU2MGNiOGYxOTMyYjE4YmVlMGU2MThjYWZhZmY5OWViMjUyOGYiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjRhYjA3NTM5OGE1NDAyZGUzNDQ3OWY2MmY2ODhjNmJhMzU0NmU0MWQ2MjJhYjQzYjMzNWFjZTNiNGFjOThmNTgiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9yZXNvdXJjZS1tYXBwaW5ncy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6MTg2MGVmOTY5YWExY2VkZjg2YzlmZTVkMGVmNDkzY2QwZGExZjI4NTk5MTUyOGVmYmNiYzUxZWUxMTc5ZTk0NCIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3Jlc291cmNlLXBhY2thZ2UueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjYxYmZlYzRjZmQ4OTcwNjQ5Mzg5NzVlMzFlNmZhYThjOGI5MWRkYzEyNzVhZDFhODFkZDg3M2Q5YjU2MTI1YjUiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6OTZlMWQxYzRlMjRkNzQyODUzYTYwMTU5NDQ3NDhlMzc2NTNmMDE3NTEyNTViOWNmZjliMmJhNTQzYzQ3YjlhYyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5YTdmMmY4MzAxYTBjOGNhYWI4NmQzNjRkNWY4NGI5NzgwN2NhYTMxYzQzZWUxOTcxNjk2MmM4NzcwY2MzNjVjIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjI2ZTUzNTgxNjcwOWY4ZThjMmJkZTczOTJkMTRhYTY5NWU0ODM5ZTNhMmZlZjBmZWEwNDQ1MTA3ZThmNWEwZWEiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLXJlc291cmNlLWRzbC54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6YzM2Y2IyZTlhY2Y5N2MyOGI1NWYxZWZkM2JiY2E4NDZiNmZiMmQ3M2ZlNGUxNTM2NzhkZmJmZDcwNTM4MmYxNSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtcnVuLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjphM2RkMTU2MzA3NTNjOTg0Y2QzMjM1YzZmMzQyODY3NjFhOGI3OGE4YzRiNzgxYzQwNzE5ZjNkYjY5ZTgyYjQxIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZmlsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6ZjFlN2U2MzIxODFlYjNjNzJjYzMzOTBlOWQ5MjE2ZGU3ODMxNTJkYmI3Y2JmYzIyYzM1NjdlMTdkZmExOWE1NiIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjE3YTg3YWFmNzczM2M2NDU3OWQ4MDEzNGE2NzAyOTlmNTRiYTQ0NjZlZGY5NDYwZWE3ZTJiNGZhMDkxNDIzYjMiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9sYW5ndWFnZS5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NWNlOTQ4NjAxZTM3ZWZmMGI4MDBhNmE2MDUxZTMyOTYxMmQxZjliY2U3NjczMGU1NzUxM2IwYzQ1NDc1MWMwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvbWlncmF0aW9uLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OmVhOTc4ZmEyZmU1ZjU3ZDM5ZTBkYmRiOWUwNWIzNTc5OTM0NTFmM2YyYWI4NDQ3Y2I1YjZmYzE3Mzg5Mzg3Y2EiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9wcm9qZWN0aW9ucy5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjYjA5YzQ0YTMxNWZkZDc3ZjdlZWI0ZDFlZWU5NjU1OTRmNWYwMmZkYTVhNmRlYTk3ZWE4MGZkOTViNjIzOWQwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvc2tpbGwtY2Fwc3VsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2VhYTA3NzYxZWM1NDA1NzE2ZGMxYjJmZWExZTVmOTU1M2M1OWM5NDA0ZGEwODYwYjIzNjk4NjEwYzFjNDE0NCIKICAgIH0KICBdCn0K"
77
77
  },
78
78
  {
79
79
  "skillFqn": "Halfcode.ResourceDsl.Skill.System",
@@ -81,8 +81,8 @@ const projection = {
81
81
  "skillVersion": "1.0.0",
82
82
  "capsuleRelativePath": "references/resource-dsl/documents.md",
83
83
  "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/documents.md",
84
- "contentDigest": "sha256:a6427b320e6f986c434a86f31cd265b66e25b309753d2da194bd4935aab3ce39",
85
- "contentBase64": "IyBkb2N1bWVudHMKCjxmcW4+SGFsZmNvZGUuUmVzb3VyY2VEc2wuV2lraS5kb2N1bWVudHM8L2Zxbj4KPGtpbmQ+V2lraVBhZ2U8L2tpbmQ+CjxkZXNjcmlwdGlvbj5SZXNvdXJjZSBkb2N1bWVudHMsIHBhY2thZ2UgY2F0YWxvZ3MgYW5kIEtpbmREZWZpbml0aW9uIGNvbnRyYWN0cy48L2Rlc2NyaXB0aW9uPgoKIyBSZXNvdXJjZSBEb2N1bWVudCBGYW1pbGllcwoKIyMgUmVzb3VyY2VQYWNrYWdlIOS4jiBDYXRhbG9ncwoK5LiA5LiqIHBhY2thZ2Ug5pyJ5LiU5Y+q5pyJ5LiA5LiqIGBSZXNvdXJjZVBhY2thZ2VgIGF1dGhvcml0eSByb29044CC5a6D5oul5pyJ5ZSv5LiAIGBDYXRhbG9nc2Ag5a2Q5Z+f77yb5q+P5LiqIGBDYXRhbG9nYCDlo7DmmI7kuIDnp43otYTmupDnmoTpgLvovpHmoLnkuI7nm67lvZXlhaXlj6PvvJoKCmBgYHhubAo8UmVzb3VyY2VQYWNrYWdlICNkZW1vLnJlc291cmNlX3dvcmtmbG93LmF1dGhvcmluZyBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICBkZXNjcmlwdGlvbiA9ICJEZW1vIGF1dGhvcmluZyByZXNvdXJjZSBwYWNrYWdlIgp9ICgKICA8Q2F0YWxvZ3MgWwogICAgPENhdGFsb2cgI2tpbmRfZGVmaW5pdGlvbnMgewogICAgICBraW5kID0gIktpbmREZWZpbml0aW9uIgogICAgICBzaGFwZSA9ICJkaXJlY3RvcnkiCiAgICAgIHJvb3QgPSAidmZzOi8vLi9LaW5kRGVmaW5pdGlvbnMvIgogICAgICBlbnRyeSA9ICJtYW5pZmVzdC54bmwiCiAgICB9PgogICAgPENhdGFsb2cgI2Z1bmN0aW9ucyB7CiAgICAgIGtpbmQgPSAiRnVuY3Rpb24iCiAgICAgIHNoYXBlID0gImRpcmVjdG9yeSIKICAgICAgcm9vdCA9ICJ2ZnM6Ly8uL0Z1bmN0aW9ucy8iCiAgICAgIGVudHJ5ID0gIm1hbmlmZXN0LnhubCIKICAgIH0+CiAgXT4KKT4KYGBgCgpjYXRhbG9nIOWPquaPj+i/sOe7hOe7h++8jOS4jeWkjeWItuavj+S4qiBkZXNjcmlwdG9yIOeahOWGheWuueOAgmBzaGFwZWAg5Y+WIGBzaW5nbGUtZmlsZXxkaXJlY3Rvcnl8bWFuaWZlc3R8Y29kZS1wYWNrYWdlYO+8m+WQjuS4ieiAheW/hemhu+WjsOaYjuebruW9leWFpeWPoyBgZW50cnlg44CCYHNpbmdsZS1maWxlYCDnvLrnnIHmiavmj48gYHJvb3RgIOS4i+WFqOmDqCBgLnhubGAg5LiOIGAubWRgIOaWh+S7tu+8jOS5n+WPr+S7peeUqOWPr+mAiSBgZW50cnkgPSAiPG5hbWU+LnhubHw8bmFtZT4ubWQiYCDnsr7noa7pgInmi6nlkIznm67lvZXkuK3nmoTkuIDkuKogYXV0aG9yaXR5IOaWh+S7tuOAglhOTCDnlKjmoLkgdGFnL2AjaWRgIOehruiupCBraW5kL2lkZW50aXR577ybTWFya2Rvd24g55So5paH5Lu25byA5aS055qEIFlBTUwgZnJvbnRtYXR0ZXIgYGtpbmRgIOS4jiBgbWV0YWRhdGEuZnFuYCDnoa7orqTvvIzlrozmlbTmlofku7YgYnl0ZXMg5piv5YaF5a656Lqr5Lu9IGF1dGhvcml0eeOAggoKIyMgS2luZERlZmluaXRpb24KCmBLaW5kRGVmaW5pdGlvbmAg5aOw5piOIHNvdXJjZSBzaGFwZSDkuI4gZGVzY3JpcHRvciBjb250cmFjdO+8mgoKYGBgeG5sCjxLaW5kRGVmaW5pdGlvbiAjaGFsZmNvZGUucmVzb3VyY2Vfa2luZC5GdW5jdGlvbiBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIlN0YWJsZSIKICBzb3VyY2VTaGFwZXMgPSBbInNpbmdsZS1maWxlIiAiZGlyZWN0b3J5Il0KICBjdXJyZW50QXBpVmVyc2lvbiA9ICJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgc3VwcG9ydGVkQXBpVmVyc2lvbnMgPSBbImhhbGZjb2RlLnJlc291cmNlcy92MSJdCn0gKAogIDxEZXNjcmlwdG9yQ29udHJhY3QgKAogICAgPElkZW50aXR5IHsgcmVxdWlyZWQgPSB0cnVlIGZvcm0gPSAiZnFuIiB9PgogICAgPENvZGVCaW5kaW5nIHsgcHJvcGVydHkgPSAic3JjIiBzY2hlbWUgPSAidmZzIiBleHBvcnRGcmFnbWVudFJlcXVpcmVkID0gdHJ1ZSB9PgogICAgPEluc3RydWN0aW9uIHsgcmVxdWlyZWQgPSBmYWxzZSBzb3VyY2UgPSAiaW5saW5lLW9yLXZmcyIgfT4KICApPgopPgpgYGAKCmBjdXJyZW50QXBpVmVyc2lvbmAg5piv5paw6LWE5rqQ5ZKM6L+B56e755uu5qCH54mI5pys77yMYHN1cHBvcnRlZEFwaVZlcnNpb25zYCDmmK8gbG9hZGVyIOWPr+ebtOaOpeivu+WPlueahOWFvOWuuembhuWQiO+8jOS4lOW/hemhu+WMheWQqyBjdXJyZW5044CC5pyq55+l54mI5pys5b+F6aG75YWI57uP6L+H6LCD55So5pa55Zyo5Luj56CB5L6n5rOo5YaM55qE56Gu5a6a5oCnIG1pZ3JhdGlvbu+8jOWGjeS6pOe7mSBsb2FkZXLvvJvlj6/miafooYzovazmjaLkuI3lhpnlhaUgWE5M44CCCgpgZG9jdW1lbnRDYXJkaW5hbGl0eWAg57y655yB5Li6IGAib25lImDjgILlj6rmnIkgYHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiXWAg55qEIEtpbmQg5Y+v5Lul5aOw5piOIGBkb2N1bWVudENhcmRpbmFsaXR5ID0gIm1hbnkiYO+8jOihqOekuuS4gOS4qiBhdXRob3JpdHkg5paH5qGj5YWB6K645YyF5ZCr5aSa5Liq5bm25YiX55qE5ZCMIEtpbmQg5qC577yb5a6D5LiN5piv5a+55omA5pyJIFhOTCDmlofku7bmlL7lrr3moLnnuqbmnZ/jgIIKCktpbmQgY29udHJhY3Qg5Y+v5Lul5oyJ6Ieq6Lqr6K+t5LmJ57qm5p2fIGxpZmVjeWNsZeOAgWRlc2NyaXB0aW9u44CBaW5zdHJ1Y3Rpb27jgIFjb2RlIGJpbmRpbmcg5LiOIGluY2x1ZGVz77yb6ZmkIGAjaWRgIOWSjCBgYXBpVmVyc2lvbmAg5aSW77yM6L+Z5Lqb5a2X5q616YO95LiN5piv6YCa55SoIGxvYWRlciDlvLrliqDnu5nmiYDmnIkgS2luZCDnmoTlhbHlkIzopoHmsYLjgIIKCuWKoOi9veaIkOWKn+WQju+8jGNvbnN1bWVyIOS7jiBgUmVzb3VyY2VUcmVlLnJlZ2lzdHJ5LmtpbmREZWZpbml0aW9uc2Ag5oyJIGByZXNvdXJjZUtpbmRgIOWPluW+l+inhOiMg+WMliBjb250cmFjdOOAguivpSBwcm9qZWN0aW9uIOWMheWQqyB2ZXJzaW9u44CBc291cmNlIHNoYXBl44CBY2FyZGluYWxpdHnjgIFyZXF1aXJlZCBmaWxlcyDku6Xlj4ogS2luZERlZmluaXRpb24g6Ieq6Lqr55qEIGByZXNvdXJjZUlkYC9gZG9jdW1lbnRVcmlgIHByb3ZlbmFuY2XvvJtLaW5kRGVmaW5pdGlvbiDkuI3mt7flhaXkuJrliqHotYTmupDnmoQgYHJlZ2lzdHJ5LmJ5S2luZGDjgIIKCiMjIFJlc291cmNlIGRlc2NyaXB0b3IKCmRlc2NyaXB0b3Ig5qC5IHRhZyDnm7TmjqXkvb/nlKgga2luZO+8jGAjaWRgIOaYr+i1hOa6kCBGUU7jgILllK/kuIDmpoLlv7Xov5vlhaUgYCgpYO+8m+mHjeWkjeaIkOWRmOi/m+WFpSBgW11g77yaCgpgYGB4bmwKPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICB0aXRsZSA9ICJQcmVwYXJlIHdvcmtmbG93IGRhdGEiCn0gKAogIDxJbnN0cnVjdGlvbiA/aW5zdHJ1Y3Rpb24+CiAg5o6l5pS26L6T5YWl5bm25Lqn55Sf5LiL5ri4IHByb2NlZHVyZSDmiYDpnIDnmoTop4TojIPmlbDmja7jgIIKICA8Lz9pbnN0cnVjdGlvbj4KICA8Q29kZUJpbmRpbmcgewogICAgc3JjID0gInZmczovL0AvYXBwcy9kZW1vLXJlc291cmNlLXdvcmtmbG93LWF1dGhvcmluZy9zcmMvcHJvY2VkdXJlcy50cyNwcmVwYXJlUHJvY2VkdXJlIgogIH0+Cik+CmBgYAoK6YCa55So6LWE5rqQ5aSW5aOz5Y+q6KeE5a6aIGlkZW50aXR544CBbWV0YWRhdGEgY2hhbm5lbOOAgW1lbWJlcnMvc3ViZG9tYWlucyDlkowgcHJvdmVuYW5jZeOAguWQhCBLaW5kIOeahOeos+WumumihuWfn+Wtl+auteWPiuWFtiByZXF1aXJlZG5lc3Mg55Sx5a+55bqUIGBLaW5kRGVmaW5pdGlvbmAg5oiWIGNvbnN1bWVyIGNvbnRyYWN0IOaUtueqhO+8m+e8uuWkseeahOWPr+mAieWtl+auteS4jeS8muiiq+Whq+aIkOepuuWtl+espuS4suOAggoK5paH5pys6LWE5rqQ5Y+v5Lul55u05o6l5L2/55SoIE1hcmtkb3duIOWNleaWh+S7tiBhdXRob3JpdHnvvIzml6DpnIDphY3lr7kgWE5MIGRlc2NyaXB0b3LvvJoKCmBgYG1hcmtkb3duCi0tLQphcGlWZXJzaW9uOiBkZW1vLnJlc291cmNlcy92MQpraW5kOiBBcHBsaWNhdGlvblNPUAptZXRhZGF0YToKICBmcW46IERlbW8uQXBwbGljYXRpb25TT1AuU2VhcmNoCiAgdmVyc2lvbjogMS4wLjAKc3BlYzoKICBkZXNjcmlwdGlvbjog5omn6KGM5pCc57Si5bm26L+U5Zue57uT5p6E5YyW57uT5p6cCi0tLQoK6L+Z6YeM5pivIFNPUCDmraPmlofjgIIKYGBgCgpmcm9udG1hdHRlciDlj6rop4TojIPljJYgaWRlbnRpdHnjgIFtZXRhZGF0YSDkuI4gSlNPTi1jb21wYXRpYmxlIGBzcGVjYO+8m+ato+aWh+S4jeS8muiiq+ino+mHiuS4uiBkZXBlbmRlbmN5IOaIlumineWkliBtZXRhZGF0YeOAggoKYGNvZGUtcGFja2FnZWAgZGVzY3JpcHRvciDov5jlv4Xpobvlo7DmmI4gYGVudHJ5YCDkuI4gYHJ1bnRpbWVg77yM5bm25L+d55WZ5pi+5byPIENvZGVCaW5kaW5n77yaCgpgYGB4bmwKPENvZGVQYWNrYWdlICNkZW1vLmNvZGVfcGFja2FnZS5mdW5jdGlvbnMgYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgewogIGVudHJ5ID0gImJ1bmRsZS9pbmRleC5qcyIKICBydW50aW1lID0gImJ1biIKfSAoCiAgPENvZGVCaW5kaW5nIHsgbW9kdWxlID0gInZmczovLy4vYnVuZGxlL2luZGV4LmpzIiB9PgopPgpgYGAKCmBlbnRyeWAg5b+F6aG75pivIHBhY2thZ2UtbG9jYWwgYC5qc3wubWpzYCDnm7jlr7not6/lvoTvvIzlubbkuI4gYENvZGVCaW5kaW5nLm1vZHVsZWAg57K+56Gu5LiA6Ie077ybYHJ1bnRpbWVgIOaYr+mdnuepuiB0YXJnZXQtbmV1dHJhbCBydW50aW1lIGlkZW50aWZpZXLjgIIKCuWFgeiuuCBmb3Jlc3Qg55qEIEtpbmQg5LuN6YCQ5qC55omn6KGM5ZCM5qC355qEIGtpbmTjgIFpZGVudGl0eSDkuI4gYGFwaVZlcnNpb25gIOagoemqjOOAguS+i+WmgiBEZWNpc2lvbiBLaW5kIOWPr+S7peaYvuW8j+WjsOaYju+8mgoKYGBgeG5sCjxLaW5kRGVmaW5pdGlvbiAjY29kdW1lbnQucmVzb3VyY2Vfa2luZC5EZWNpc2lvbiBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIlN0YWJsZSIKICBzb3VyY2VTaGFwZXMgPSBbInNpbmdsZS1maWxlIl0KICBjdXJyZW50QXBpVmVyc2lvbiA9ICJjb2R1bWVudC50ZWNoL3YxYWxwaGExIgogIHN1cHBvcnRlZEFwaVZlcnNpb25zID0gWyJjb2R1bWVudC50ZWNoL3YxYWxwaGExIl0KICBkb2N1bWVudENhcmRpbmFsaXR5ID0gIm1hbnkiCn0+CmBgYAoK5a+55bqUIGF1dGhvcml0eSDmlofku7blj6/ku6XmnInlpJrkuKrlubbliJcgYDxEZWNpc2lvbiAuLi4+YCDmoLnjgILmr4/kuKrmoLnlvZLkuIDljJbkuLrni6znq4sgcmVzb3VyY2UgcmVjb3Jk77yM5bm25YWx5Lqr6K+l5paH5Lu255qEIGBkb2N1bWVudFVyaWAgcHJvdmVuYW5jZe+8m+mHjeWkjSBgI2lkYOOAgea3t+WQiOaguSBraW5kIOaIluS4jeWPl+aUr+aMgeeahOeJiOacrOS7jeaYr+mUmeivr+OAggoKIyMgUmVzb3VyY2VNYXBwaW5ncwoKbWFwcGluZyDmoLnmi6XmnInlpJrkuKrllK/kuIAgY29sbGVjdGlvbiBzdWJkb21haW7vvJtjb2xsZWN0aW9uIOeahCBgW11gIOaJv+i9vemHjeWkjeadoeebru+8mgoKYGBgeG5sCjxSZXNvdXJjZU1hcHBpbmdzICNkZW1vLnJlc291cmNlX3dvcmtmbG93Lm1hcHBpbmdzIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiICgKICA8UmVmZXJlbmNlVGFyZ2V0cyBbCiAgICA8UmVmZXJlbmNlVGFyZ2V0ICNmdW5jdGlvbl9kZXBlbmRlbmN5IHsKICAgICAgZnJvbUtpbmQgPSAiRnVuY3Rpb24iCiAgICAgIGZpZWxkID0gImRlcGVuZHNPbiIKICAgICAgdGFyZ2V0S2luZCA9ICJGdW5jdGlvbiIKICAgIH0+CiAgXT4KICA8Q2FsbGFibGVBcnRpZmFjdHMgWwogICAgPENhbGxhYmxlQXJ0aWZhY3QgI2Z1bmN0aW9uX2NhbGxhYmxlIHsKICAgICAga2luZCA9ICJGdW5jdGlvbiIKICAgICAgYmluZGluZyA9ICJDb2RlQmluZGluZy5zcmMiCiAgICB9PgogIF0+CiAgPFNvdXJjZVJvb3RzIFsKICAgIDxTb3VyY2VSb290ICNhdXRob3JpbmcgewogICAgICB1cmkgPSAidmZzOi8vQC9hcHBzL2RlbW8tcmVzb3VyY2Utd29ya2Zsb3ctYXV0aG9yaW5nL3Jlc291cmNlcy8iCiAgICB9PgogIF0+Cik+CmBgYAoKbWFwcGluZyBrZXkg5piv5pi+5byP5bGe5oCn5oiWIGAjaWRg77yM5LiN5b6X5oqK55So5oi35pWw5o2u5Yqo5oCB5ou86L+bIHRhZyDlkI3jgIIK"
84
+ "contentDigest": "sha256:705c2b10ef697acf3c0e183ec16672275b7ec98c42c14b987092e8fa982fc21b",
85
+ "contentBase64": "IyBkb2N1bWVudHMKCjxmcW4+SGFsZmNvZGUuUmVzb3VyY2VEc2wuV2lraS5kb2N1bWVudHM8L2Zxbj4KPGtpbmQ+V2lraVBhZ2U8L2tpbmQ+CjxkZXNjcmlwdGlvbj5SZXNvdXJjZSBkb2N1bWVudHMsIHBhY2thZ2UgY2F0YWxvZ3MgYW5kIEtpbmREZWZpbml0aW9uIGNvbnRyYWN0cy48L2Rlc2NyaXB0aW9uPgoKIyBSZXNvdXJjZSBEb2N1bWVudCBGYW1pbGllcwoKIyMgUmVzb3VyY2VQYWNrYWdlIOS4jiBDYXRhbG9ncwoK5LiA5LiqIHBhY2thZ2Ug5pyJ5LiU5Y+q5pyJ5LiA5LiqIGBSZXNvdXJjZVBhY2thZ2VgIGF1dGhvcml0eSByb29044CC5a6D5oul5pyJ5ZSv5LiAIGBDYXRhbG9nc2Ag5a2Q5Z+f77yb5q+P5LiqIGBDYXRhbG9nYCDlo7DmmI7kuIDnp43otYTmupDnmoTpgLvovpHmoLnkuI7nm67lvZXlhaXlj6PvvJoKCmBgYHhubAo8UmVzb3VyY2VQYWNrYWdlICNkZW1vLnJlc291cmNlX3dvcmtmbG93LmF1dGhvcmluZyBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICBkZXNjcmlwdGlvbiA9ICJEZW1vIGF1dGhvcmluZyByZXNvdXJjZSBwYWNrYWdlIgp9ICgKICA8Q2F0YWxvZ3MgWwogICAgPENhdGFsb2cgI2tpbmRfZGVmaW5pdGlvbnMgewogICAgICBraW5kID0gIktpbmREZWZpbml0aW9uIgogICAgICBzaGFwZSA9ICJkaXJlY3RvcnkiCiAgICAgIHJvb3QgPSAidmZzOi8vLi9LaW5kRGVmaW5pdGlvbnMvIgogICAgICBlbnRyeSA9ICJtYW5pZmVzdC54bmwiCiAgICB9PgogICAgPENhdGFsb2cgI2Z1bmN0aW9ucyB7CiAgICAgIGtpbmQgPSAiRnVuY3Rpb24iCiAgICAgIHNoYXBlID0gImRpcmVjdG9yeSIKICAgICAgcm9vdCA9ICJ2ZnM6Ly8uL0Z1bmN0aW9ucy8iCiAgICAgIGVudHJ5ID0gIm1hbmlmZXN0LnhubCIKICAgIH0+CiAgXT4KKT4KYGBgCgpjYXRhbG9nIOWPquaPj+i/sOe7hOe7h++8jOS4jeWkjeWItuavj+S4qiBkZXNjcmlwdG9yIOeahOWGheWuueOAgmBzaGFwZWAg5Y+WIGBzaW5nbGUtZmlsZXxkaXJlY3Rvcnl8bWFuaWZlc3R8Y29kZS1wYWNrYWdlYO+8m+WQjuS4ieiAheW/hemhu+WjsOaYjuebruW9leWFpeWPoyBgZW50cnlg44CCYHNpbmdsZS1maWxlYCDnvLrnnIHmiavmj48gYHJvb3RgIOS4i+WFqOmDqCBgLnhubGAg5LiOIGAubWRgIOaWh+S7tu+8jOS5n+WPr+S7peeUqOWPr+mAiSBgZW50cnkgPSAiPG5hbWU+LnhubHw8bmFtZT4ubWQiYCDnsr7noa7pgInmi6nlkIznm67lvZXkuK3nmoTkuIDkuKogYXV0aG9yaXR5IOaWh+S7tuOAglhOTCDnlKjmoLkgdGFnL2AjaWRgIOehruiupCBraW5kL2lkZW50aXR577ybTWFya2Rvd24g55So5paH5Lu25byA5aS055qEIFlBTUwgZnJvbnRtYXR0ZXIgYGtpbmRgIOS4jiBgbWV0YWRhdGEuZnFuYCDnoa7orqTvvIzlrozmlbTmlofku7YgYnl0ZXMg5piv5YaF5a656Lqr5Lu9IGF1dGhvcml0eeOAggoKIyMgS2luZERlZmluaXRpb24KCmBLaW5kRGVmaW5pdGlvbmAg5aOw5piOIHNvdXJjZSBzaGFwZSDkuI4gZGVzY3JpcHRvciBjb250cmFjdO+8mgoKYGBgeG5sCjxLaW5kRGVmaW5pdGlvbiAjaGFsZmNvZGUucmVzb3VyY2Vfa2luZC5GdW5jdGlvbiBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIlN0YWJsZSIKICBzb3VyY2VTaGFwZXMgPSBbInNpbmdsZS1maWxlIiAiZGlyZWN0b3J5Il0KICBjdXJyZW50QXBpVmVyc2lvbiA9ICJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgc3VwcG9ydGVkQXBpVmVyc2lvbnMgPSBbImhhbGZjb2RlLnJlc291cmNlcy92MSJdCn0gKAogIDxEZXNjcmlwdG9yQ29udHJhY3QgKAogICAgPElkZW50aXR5IHsgcmVxdWlyZWQgPSB0cnVlIGZvcm0gPSAiZnFuIiB9PgogICAgPENvZGVCaW5kaW5nIHsgcHJvcGVydHkgPSAic3JjIiBzY2hlbWUgPSAidmZzIiBleHBvcnRGcmFnbWVudFJlcXVpcmVkID0gdHJ1ZSB9PgogICAgPEluc3RydWN0aW9uIHsgcmVxdWlyZWQgPSBmYWxzZSBzb3VyY2UgPSAiaW5saW5lLW9yLXZmcyIgfT4KICApPgopPgpgYGAKCmBjdXJyZW50QXBpVmVyc2lvbmAg5piv5paw6LWE5rqQ5ZKM6L+B56e755uu5qCH54mI5pys77yMYHN1cHBvcnRlZEFwaVZlcnNpb25zYCDmmK8gbG9hZGVyIOWPr+ebtOaOpeivu+WPlueahOWFvOWuuembhuWQiO+8jOS4lOW/hemhu+WMheWQqyBjdXJyZW5044CC5pyq55+l54mI5pys5b+F6aG75YWI57uP6L+H6LCD55So5pa55Zyo5Luj56CB5L6n5rOo5YaM55qE56Gu5a6a5oCnIG1pZ3JhdGlvbu+8jOWGjeS6pOe7mSBsb2FkZXLvvJvlj6/miafooYzovazmjaLkuI3lhpnlhaUgWE5M44CCCgpgZG9jdW1lbnRDYXJkaW5hbGl0eWAg57y655yB5Li6IGAib25lImDjgILlj6rmnIkgYHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiXWAg55qEIEtpbmQg5Y+v5Lul5aOw5piOIGBkb2N1bWVudENhcmRpbmFsaXR5ID0gIm1hbnkiYO+8jOihqOekuuS4gOS4qiBhdXRob3JpdHkg5paH5qGj5YWB6K645YyF5ZCr5aSa5Liq5bm25YiX55qE5ZCMIEtpbmQg5qC577yb5a6D5LiN5piv5a+55omA5pyJIFhOTCDmlofku7bmlL7lrr3moLnnuqbmnZ/jgIIKCktpbmQgY29udHJhY3Qg5Y+v5Lul5oyJ6Ieq6Lqr6K+t5LmJ57qm5p2fIGxpZmVjeWNsZeOAgWRlc2NyaXB0aW9u44CBaW5zdHJ1Y3Rpb27jgIFjb2RlIGJpbmRpbmcg5LiOIGluY2x1ZGVz77yb6ZmkIGAjaWRgIOWSjCBgYXBpVmVyc2lvbmAg5aSW77yM6L+Z5Lqb5a2X5q616YO95LiN5piv6YCa55SoIGxvYWRlciDlvLrliqDnu5nmiYDmnIkgS2luZCDnmoTlhbHlkIzopoHmsYLjgIIKCuWKoOi9veaIkOWKn+WQju+8jGNvbnN1bWVyIOS7jiBgUmVzb3VyY2VUcmVlLnJlZ2lzdHJ5LmtpbmREZWZpbml0aW9uc2Ag5oyJIGByZXNvdXJjZUtpbmRgIOWPluW+l+inhOiMg+WMliBjb250cmFjdOOAguivpSBwcm9qZWN0aW9uIOWMheWQqyB2ZXJzaW9u44CBc291cmNlIHNoYXBl44CBY2FyZGluYWxpdHnjgIFyZXF1aXJlZCBmaWxlcyDku6Xlj4ogS2luZERlZmluaXRpb24g6Ieq6Lqr55qEIGByZXNvdXJjZUlkYC9gZG9jdW1lbnRVcmlgIHByb3ZlbmFuY2XvvJtLaW5kRGVmaW5pdGlvbiDkuI3mt7flhaXkuJrliqHotYTmupDnmoQgYHJlZ2lzdHJ5LmJ5S2luZGDjgIIKCiMjIFJlc291cmNlIGRlc2NyaXB0b3IKCmRlc2NyaXB0b3Ig5qC5IHRhZyDnm7TmjqXkvb/nlKgga2luZO+8jGAjaWRgIOaYr+i1hOa6kCBGUU7jgILllK/kuIDmpoLlv7Xov5vlhaUgYCgpYO+8m+mHjeWkjeaIkOWRmOi/m+WFpSBgW11g77yaCgpgYGB4bmwKPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICB0aXRsZSA9ICJQcmVwYXJlIHdvcmtmbG93IGRhdGEiCn0gKAogIDxJbnN0cnVjdGlvbiA/aW5zdHJ1Y3Rpb24+CiAg5o6l5pS26L6T5YWl5bm25Lqn55Sf5LiL5ri4IHByb2NlZHVyZSDmiYDpnIDnmoTop4TojIPmlbDmja7jgIIKICA8Lz9pbnN0cnVjdGlvbj4KICA8Q29kZUJpbmRpbmcgewogICAgc3JjID0gInZmczovL0AvYXBwcy9kZW1vLXJlc291cmNlLXdvcmtmbG93LWF1dGhvcmluZy9zcmMvcHJvY2VkdXJlcy50cyNwcmVwYXJlUHJvY2VkdXJlIgogIH0+Cik+CmBgYAoK6YCa55So6LWE5rqQ5aSW5aOz5Y+q6KeE5a6aIGlkZW50aXR544CBbWV0YWRhdGEgY2hhbm5lbOOAgW1lbWJlcnMvc3ViZG9tYWlucyDlkowgcHJvdmVuYW5jZeOAguWQhCBLaW5kIOeahOeos+WumumihuWfn+Wtl+auteWPiuWFtiByZXF1aXJlZG5lc3Mg55Sx5a+55bqUIGBLaW5kRGVmaW5pdGlvbmAg5oiWIGNvbnN1bWVyIGNvbnRyYWN0IOaUtueqhO+8m+e8uuWkseeahOWPr+mAieWtl+auteS4jeS8muiiq+Whq+aIkOepuuWtl+espuS4suOAggoK5paH5pys6LWE5rqQ5Y+v5Lul55u05o6l5L2/55SoIE1hcmtkb3duIOWNleaWh+S7tiBhdXRob3JpdHnvvIzml6DpnIDphY3lr7kgWE5MIGRlc2NyaXB0b3LvvJoKCmBgYG1hcmtkb3duCi0tLQphcGlWZXJzaW9uOiBkZW1vLnJlc291cmNlcy92MQpraW5kOiBBcHBsaWNhdGlvblNPUAptZXRhZGF0YToKICBmcW46IERlbW8uQXBwbGljYXRpb25TT1AuU2VhcmNoCiAgdmVyc2lvbjogMS4wLjAKc3BlYzoKICBkZXNjcmlwdGlvbjog5omn6KGM5pCc57Si5bm26L+U5Zue57uT5p6E5YyW57uT5p6cCi0tLQoK6L+Z6YeM5pivIFNPUCDmraPmlofjgIIKYGBgCgpmcm9udG1hdHRlciDlj6rop4TojIPljJYgaWRlbnRpdHnjgIFtZXRhZGF0YSDkuI4gSlNPTi1jb21wYXRpYmxlIGBzcGVjYO+8m+ato+aWh+S4jeS8muiiq+ino+mHiuS4uiBkZXBlbmRlbmN5IOaIlumineWkliBtZXRhZGF0YeOAggoKYGNvZGUtcGFja2FnZWAgZGVzY3JpcHRvciDov5jlv4Xpobvlo7DmmI4gYGVudHJ5YCDkuI4gYHJ1bnRpbWVg77yM5bm25L+d55WZ5pi+5byPIENvZGVCaW5kaW5n77yaCgpgYGB4bmwKPENvZGVQYWNrYWdlICNkZW1vLmNvZGVfcGFja2FnZS5mdW5jdGlvbnMgYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgewogIGVudHJ5ID0gImJ1bmRsZS9pbmRleC5qcyIKICBydW50aW1lID0gImJ1biIKfSAoCiAgPENvZGVCaW5kaW5nIHsgbW9kdWxlID0gInZmczovLy4vYnVuZGxlL2luZGV4LmpzIiB9PgopPgpgYGAKCmBlbnRyeWAg5b+F6aG75pivIHBhY2thZ2UtbG9jYWwgYC5qc3wubWpzYCDnm7jlr7not6/lvoTvvIzlubbkuI4gYENvZGVCaW5kaW5nLm1vZHVsZWAg57K+56Gu5LiA6Ie077ybYHJ1bnRpbWVgIOaYr+mdnuepuiB0YXJnZXQtbmV1dHJhbCBydW50aW1lIGlkZW50aWZpZXLjgIIKCmBjb2RlLXBhY2thZ2VgIGNhdGFsb2cg5pSv5oyB5Lik56eN5LqS5LiN5re35reG55qE5biD5bGA44CC6IulIGNhdGFsb2cgcm9vdCDoh6rouqvljIXlkKvphY3nva7nmoQgZW50cnnvvIzliJnor6Ugcm9vdCDmmK/kuIDkuKrnm7TmjqUgQ29kZVBhY2thZ2XvvJvkvovlpoIgY2F0YWxvZyDlj6/nm7TmjqXmjIflkJEgYHZmczovLy4vTG9jYWxGdW5jdGlvbi9g44CC6IulIHJvb3Qg6Ieq6Lqr5rKh5pyJIGVudHJ577yM5YiZIGxvYWRlciDkv53mjIHml6LmnInooYzkuLrvvIzmjInnqLPlrprpobrluo/miavmj4/lkITlrZDnm67lvZXnmoQgZW50cnnjgIJyb290IGVudHJ5IOS4gOaXpuWtmOWcqOS9huS4jeaYr+aZrumAmumdnuespuWPt+mTvuaOpeaWh+S7tu+8jOWKoOi9veS8miBmYWlsIGNsb3NlZO+8jOS4jeS8mumAgOWbniBjb2xsZWN0aW9uIOaJq+aPj+OAggoK5YWB6K64IGZvcmVzdCDnmoQgS2luZCDku43pgJDmoLnmiafooYzlkIzmoLfnmoQga2luZOOAgWlkZW50aXR5IOS4jiBgYXBpVmVyc2lvbmAg5qCh6aqM44CC5L6L5aaCIERlY2lzaW9uIEtpbmQg5Y+v5Lul5pi+5byP5aOw5piO77yaCgpgYGB4bmwKPEtpbmREZWZpbml0aW9uICNjb2R1bWVudC5yZXNvdXJjZV9raW5kLkRlY2lzaW9uIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBsaWZlY3ljbGUgPSAiU3RhYmxlIgogIHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiXQogIGN1cnJlbnRBcGlWZXJzaW9uID0gImNvZHVtZW50LnRlY2gvdjFhbHBoYTEiCiAgc3VwcG9ydGVkQXBpVmVyc2lvbnMgPSBbImNvZHVtZW50LnRlY2gvdjFhbHBoYTEiXQogIGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSIKfT4KYGBgCgrlr7nlupQgYXV0aG9yaXR5IOaWh+S7tuWPr+S7peacieWkmuS4quW5tuWIlyBgPERlY2lzaW9uIC4uLj5gIOagueOAguavj+S4quagueW9kuS4gOWMluS4uueLrOeriyByZXNvdXJjZSByZWNvcmTvvIzlubblhbHkuqvor6Xmlofku7bnmoQgYGRvY3VtZW50VXJpYCBwcm92ZW5hbmNl77yb6YeN5aSNIGAjaWRg44CB5re35ZCI5qC5IGtpbmQg5oiW5LiN5Y+X5pSv5oyB55qE54mI5pys5LuN5piv6ZSZ6K+v44CCCgojIyBSZXNvdXJjZU1hcHBpbmdzCgptYXBwaW5nIOagueaLpeacieWkmuS4quWUr+S4gCBjb2xsZWN0aW9uIHN1YmRvbWFpbu+8m2NvbGxlY3Rpb24g55qEIGBbXWAg5om/6L296YeN5aSN5p2h55uu77yaCgpgYGB4bmwKPFJlc291cmNlTWFwcGluZ3MgI2RlbW8ucmVzb3VyY2Vfd29ya2Zsb3cubWFwcGluZ3MgYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgKAogIDxSZWZlcmVuY2VUYXJnZXRzIFsKICAgIDxSZWZlcmVuY2VUYXJnZXQgI2Z1bmN0aW9uX2RlcGVuZGVuY3kgewogICAgICBmcm9tS2luZCA9ICJGdW5jdGlvbiIKICAgICAgZmllbGQgPSAiZGVwZW5kc09uIgogICAgICB0YXJnZXRLaW5kID0gIkZ1bmN0aW9uIgogICAgfT4KICBdPgogIDxDYWxsYWJsZUFydGlmYWN0cyBbCiAgICA8Q2FsbGFibGVBcnRpZmFjdCAjZnVuY3Rpb25fY2FsbGFibGUgewogICAgICBraW5kID0gIkZ1bmN0aW9uIgogICAgICBiaW5kaW5nID0gIkNvZGVCaW5kaW5nLnNyYyIKICAgIH0+CiAgXT4KICA8U291cmNlUm9vdHMgWwogICAgPFNvdXJjZVJvb3QgI2F1dGhvcmluZyB7CiAgICAgIHVyaSA9ICJ2ZnM6Ly9AL2FwcHMvZGVtby1yZXNvdXJjZS13b3JrZmxvdy1hdXRob3JpbmcvcmVzb3VyY2VzLyIKICAgIH0+CiAgXT4KKT4KYGBgCgptYXBwaW5nIGtleSDmmK/mmL7lvI/lsZ7mgKfmiJYgYCNpZGDvvIzkuI3lvpfmiornlKjmiLfmlbDmja7liqjmgIHmi7zov5sgdGFnIOWQjeOAggo="
86
86
  },
87
87
  {
88
88
  "skillFqn": "Halfcode.ResourceDsl.Skill.System",
@@ -180,8 +180,8 @@ const projection = {
180
180
  "skillVersion": "1.0.0",
181
181
  "capsuleRelativePath": "references/resource-dsl/files.md",
182
182
  "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/files.md",
183
- "contentDigest": "sha256:642af5dcbffa06112876f654b4cd5e7e86498167484fd42c94cf25d1739e2e95",
184
- "contentBase64": "IyBmaWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLmZpbGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+UmVzb3VyY2Ugc291cmNlIHNoYXBlcywgVkZTIGNvbnRhaW5tZW50IGFuZCBmaWxlIHByb3ZlbmFuY2UuPC9kZXNjcmlwdGlvbj4KCiMgRmlsZXMgQW5kIEJ1bmRsZXMKCiMjIOWGheWuueS4uuecn+a6kAoKa2luZCDkuI4gaWRlbnRpdHkg5p2l6Ieq5paH5Lu25qC5IHRhZyDlkowgYCNpZGDjgILnm67lvZXlkI3jgIHmlofku7blkI3lkowgY2F0YWxvZyDot6/lvoTlj6rmmK/luIPlsYDvvJvmiavmj4/lmajkuI3lvpfpgJrov4flkI7nvIDmiJbnm67lvZXlkI3ooaXlhpnotYTmupDor63kuYnjgIIKCiMjIOS4pOenjeWumuS5ieW9ouaAgQoKLSDljZXmlofku7YgZGVmaW5pdGlvbu+8muS7u+aEj+aPj+i/sOaApyBgLnhubGAg5oiWIGAubWRgIOaWh+S7tuWQje+8m1hOTCDmlofku7blhoXmnInkuIDkuKror63kuYnmoLnvvIxNYXJrZG93biDnlLEgZnJvbnRtYXR0ZXIg5aOw5piOIEtpbmQvRlFOIOW5tueUseato+aWh+aJv+i9veaWh+acrOWGheWuueOAggotIOebruW9lSBidW5kbGXvvJrlhaXlj6Plm7rlrprkuLogYG1hbmlmZXN0LnhubGDvvIzln5/mlofku7bkvb/nlKjmj4/ov7DmgKcgYC54bmxgIOaWh+S7tuWQjeOAggoK55uu5b2VIGJ1bmRsZSDnpLrkvovvvJoKCmBgYHRleHQKRnVuY3Rpb25zLwogIFByZXBhcmVEYXRhLwogICAgbWFuaWZlc3QueG5sICAgICAgICMgPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSAuLi4+CiAgICBpbnN0cnVjdGlvbi5tZCAgICAgIyBDb2RlQmluZGluZy9JbnN0cnVjdGlvbiDlvJXnlKjnmoQgbWF0ZXJpYWwKYGBgCgpgbWFuaWZlc3QueG5sYCDnmoTmoLnlhrPlrpogYnVuZGxlIGtpbmQg5LiOIGlkZW50aXR544CC54us56uL5a2Q5Z+f5Y+v5Lul5LuOIG1hbmlmZXN0IOeahCBgKClgIOWOn+agt+WkluaPkOS4uuWQjOWei+Wfn+aWh+S7tu+8m+WkluaPkOS4jeaUueWPmCBsb2dpY2FsIHJlZnPjgIIKCiMjIOWNleaWh+S7tiBmb3Jlc3QKCuWNleaWh+S7tum7mOiupOWPquacieS4gOS4quivreS5ieagueOAguS7heW9k+WvueW6lCBgS2luZERlZmluaXRpb25gIOWQjOaXtuWjsOaYjiBgc291cmNlU2hhcGVzID0gWyJzaW5nbGUtZmlsZSJdYCDkuI4gYGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSJgIOaXtu+8jOWQjOS4gOS4qiBgLnhubGAgYXV0aG9yaXR5IOaWh+S7tuaJjeWPr+S7peWMheWQq+WkmuS4quW5tuWIl+agueOAggoKZm9yZXN0IOeahOavj+S4quagueaYr+eLrOeri+i1hOa6kO+8jOW/hemhu+S9v+eUqOWQjOS4gCBLaW5k77yM5YW35pyJ54us56uLIGAjaWRg77yM5bm26YCa6L+H6K+lIEtpbmQg55qE54mI5pys5aWR57qm44CCYFJlc291cmNlUGFja2FnZWDjgIFjYXRhbG9n44CBS2luZERlZmluaXRpb24g5LiO55uu5b2VIGJ1bmRsZSDlhaXlj6Plp4vnu4jkv53mjIHljZXmoLnjgIIKCiMjIFByb3ZlbmFuY2Ug5LiOIGxvZ2ljYWwgcGF0aAoKbG9hZGVyIOS4uuavj+S4qiBub3JtYWxpemVkIGRlc2NyaXB0b3Ig6ZmE5Yqg5Y+q6K+7IHByb3ZlbmFuY2XvvJoKCi0gYGRvY3VtZW50VXJpYO+8muWKoOi9vSBhdXRob3JpdHkg5paH5qGj55qEIGNhbm9uaWNhbCBWRlMgVVJJ77ybCi0gYGxvZ2ljYWxQYXRoYO+8muebuOWvuSBwYWNrYWdlIGNhdGFsb2cgcm9vdCDnmoTpgLvovpHot6/lvoTvvJsKLSBgcGFja2FnZUlkYO+8muS7jiBgUmVzb3VyY2VQYWNrYWdlICNpZGAg5rS+55Sf77ybCi0gYHJlc291cmNlSWRg77ya5p2l6IeqIGRlc2NyaXB0b3Ig5qC5IGAjaWRg44CCCgrov5nkupvlrZfmrrXnlLEgbG9hZGVyIOaLpeacie+8jGF1dGhvciDkuI3lnKggZGVzY3JpcHRvciDkuK3ph43lpI3phY3nva7jgIJjb25zdW1lciDlj6/ku6XorrDlvZUgcHJvdmVuYW5jZSDnlKjkuo7or4rmlq3vvIzkvYbkuI3lvpfkv67mlLnlkI7lj43lhpkgWE5M44CCCgojIyDmiavmj4/ovrnnlYwKCi0g6buY6K6k55uu5b2V5YWl5Y+j5LuF5Li6IGBtYW5pZmVzdC54bmxg44CCCi0gYHNpbmdsZS1maWxlYCBjYXRhbG9nIOe8uuecgeaJq+aPjyByb290IOS4i+WFqOmDqCBgLnhubGAg5LiOIGAubWRg77yb5aOw5piOIGBlbnRyeSA9ICJuYW1lLnhubHxuYW1lLm1kImAg5pe25Y+q5Yqg6L296K+l5paH5Lu277yM5L6/5LqO5aSa5Liq5LiN5ZCMIEtpbmQg5YWx55So5LiA5Liq54mp55CG55uu5b2V44CCCi0g6Z2e5YWl5Y+jIGAueG5sYCDmlofku7blj6rog73kvZzkuLrmmL7lvI/ln58v54mp5paZ6KKr5YWl5Y+j5byV55So77yM5LiN6IO96KKr6YeN5aSN5rOo5YaM5Li656ys5LqM6LWE5rqQ44CCCi0g5aSa5qC55paH5qGj5b+F6aG755SxIEtpbmREZWZpbml0aW9uIOaYvuW8j+aOiOadg++8m2xvYWRlciDkuI3moLnmja7mlofku7blkI3miJbmoLnmlbDph4/njJzmtYsgZm9yZXN0IOivreS5ieOAggotIGNhdGFsb2cgcm9vdCDlv4XpobvmmK8gYHZmczovL2AgVVJJ44CCCi0gcmVzb3VyY2UtY29yZSDotJ/otKMgVVJJIOino+aekOOAgei+ueeVjOajgOafpeWSjOmHjeWkjSBpZGVudGl0eSDor4rmlq3vvJtjb25zdW1lciDkuI3oh6rooYzmiavmj4/no4Hnm5jjgIIK"
183
+ "contentDigest": "sha256:f1e7e632181eb3c72cc3390e9d9216de783152dbb7cbfc22c3567e17dfa19a56",
184
+ "contentBase64": "IyBmaWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLmZpbGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+UmVzb3VyY2Ugc291cmNlIHNoYXBlcywgVkZTIGNvbnRhaW5tZW50IGFuZCBmaWxlIHByb3ZlbmFuY2UuPC9kZXNjcmlwdGlvbj4KCiMgRmlsZXMgQW5kIEJ1bmRsZXMKCiMjIOWGheWuueS4uuecn+a6kAoKa2luZCDkuI4gaWRlbnRpdHkg5p2l6Ieq5paH5Lu25qC5IHRhZyDlkowgYCNpZGDjgILnm67lvZXlkI3jgIHmlofku7blkI3lkowgY2F0YWxvZyDot6/lvoTlj6rmmK/luIPlsYDvvJvmiavmj4/lmajkuI3lvpfpgJrov4flkI7nvIDmiJbnm67lvZXlkI3ooaXlhpnotYTmupDor63kuYnjgIIKCiMjIOS4pOenjeWumuS5ieW9ouaAgQoKLSDljZXmlofku7YgZGVmaW5pdGlvbu+8muS7u+aEj+aPj+i/sOaApyBgLnhubGAg5oiWIGAubWRgIOaWh+S7tuWQje+8m1hOTCDmlofku7blhoXmnInkuIDkuKror63kuYnmoLnvvIxNYXJrZG93biDnlLEgZnJvbnRtYXR0ZXIg5aOw5piOIEtpbmQvRlFOIOW5tueUseato+aWh+aJv+i9veaWh+acrOWGheWuueOAggotIOebruW9lSBidW5kbGXvvJrlhaXlj6Plm7rlrprkuLogYG1hbmlmZXN0LnhubGDvvIzln5/mlofku7bkvb/nlKjmj4/ov7DmgKcgYC54bmxgIOaWh+S7tuWQjeOAggoK55uu5b2VIGJ1bmRsZSDnpLrkvovvvJoKCmBgYHRleHQKRnVuY3Rpb25zLwogIFByZXBhcmVEYXRhLwogICAgbWFuaWZlc3QueG5sICAgICAgICMgPEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSAuLi4+CiAgICBpbnN0cnVjdGlvbi5tZCAgICAgIyBDb2RlQmluZGluZy9JbnN0cnVjdGlvbiDlvJXnlKjnmoQgbWF0ZXJpYWwKYGBgCgpgbWFuaWZlc3QueG5sYCDnmoTmoLnlhrPlrpogYnVuZGxlIGtpbmQg5LiOIGlkZW50aXR544CC54us56uL5a2Q5Z+f5Y+v5Lul5LuOIG1hbmlmZXN0IOeahCBgKClgIOWOn+agt+WkluaPkOS4uuWQjOWei+Wfn+aWh+S7tu+8m+WkluaPkOS4jeaUueWPmCBsb2dpY2FsIHJlZnPjgIIKCiMjIOWNleaWh+S7tiBmb3Jlc3QKCuWNleaWh+S7tum7mOiupOWPquacieS4gOS4quivreS5ieagueOAguS7heW9k+WvueW6lCBgS2luZERlZmluaXRpb25gIOWQjOaXtuWjsOaYjiBgc291cmNlU2hhcGVzID0gWyJzaW5nbGUtZmlsZSJdYCDkuI4gYGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSJgIOaXtu+8jOWQjOS4gOS4qiBgLnhubGAgYXV0aG9yaXR5IOaWh+S7tuaJjeWPr+S7peWMheWQq+WkmuS4quW5tuWIl+agueOAggoKZm9yZXN0IOeahOavj+S4quagueaYr+eLrOeri+i1hOa6kO+8jOW/hemhu+S9v+eUqOWQjOS4gCBLaW5k77yM5YW35pyJ54us56uLIGAjaWRg77yM5bm26YCa6L+H6K+lIEtpbmQg55qE54mI5pys5aWR57qm44CCYFJlc291cmNlUGFja2FnZWDjgIFjYXRhbG9n44CBS2luZERlZmluaXRpb24g5LiO55uu5b2VIGJ1bmRsZSDlhaXlj6Plp4vnu4jkv53mjIHljZXmoLnjgIIKCiMjIFByb3ZlbmFuY2Ug5LiOIGxvZ2ljYWwgcGF0aAoKbG9hZGVyIOS4uuavj+S4qiBub3JtYWxpemVkIGRlc2NyaXB0b3Ig6ZmE5Yqg5Y+q6K+7IHByb3ZlbmFuY2XvvJoKCi0gYGRvY3VtZW50VXJpYO+8muWKoOi9vSBhdXRob3JpdHkg5paH5qGj55qEIGNhbm9uaWNhbCBWRlMgVVJJ77ybCi0gYGxvZ2ljYWxQYXRoYO+8muebuOWvuSBwYWNrYWdlIGNhdGFsb2cgcm9vdCDnmoTpgLvovpHot6/lvoTvvJsKLSBgcGFja2FnZUlkYO+8muS7jiBgUmVzb3VyY2VQYWNrYWdlICNpZGAg5rS+55Sf77ybCi0gYHJlc291cmNlSWRg77ya5p2l6IeqIGRlc2NyaXB0b3Ig5qC5IGAjaWRg44CCCgrov5nkupvlrZfmrrXnlLEgbG9hZGVyIOaLpeacie+8jGF1dGhvciDkuI3lnKggZGVzY3JpcHRvciDkuK3ph43lpI3phY3nva7jgIJjb25zdW1lciDlj6/ku6XorrDlvZUgcHJvdmVuYW5jZSDnlKjkuo7or4rmlq3vvIzkvYbkuI3lvpfkv67mlLnlkI7lj43lhpkgWE5M44CCCgojIyDmiavmj4/ovrnnlYwKCi0g6buY6K6k55uu5b2V5YWl5Y+j5LuF5Li6IGBtYW5pZmVzdC54bmxg44CCCi0gYGNvZGUtcGFja2FnZWAgcm9vdCDoh6rouqvlrZjlnKjlhaXlj6Pml7bliqDovb3kuIDkuKrnm7TmjqUgcGFja2FnZe+8m+WFpeWPo+e8uuWkseaXtuaJjeaJq+aPj+WtkOebruW9lSBjb2xsZWN0aW9u44CC5a2Y5Zyo5L2G5LiN5a6J5YWo55qE55u05o6l5YWl5Y+j5LiN5b6X6Kem5Y+RIGZhbGxiYWNr44CCCi0gYHNpbmdsZS1maWxlYCBjYXRhbG9nIOe8uuecgeaJq+aPjyByb290IOS4i+WFqOmDqCBgLnhubGAg5LiOIGAubWRg77yb5aOw5piOIGBlbnRyeSA9ICJuYW1lLnhubHxuYW1lLm1kImAg5pe25Y+q5Yqg6L296K+l5paH5Lu277yM5L6/5LqO5aSa5Liq5LiN5ZCMIEtpbmQg5YWx55So5LiA5Liq54mp55CG55uu5b2V44CCCi0g6Z2e5YWl5Y+jIGAueG5sYCDmlofku7blj6rog73kvZzkuLrmmL7lvI/ln58v54mp5paZ6KKr5YWl5Y+j5byV55So77yM5LiN6IO96KKr6YeN5aSN5rOo5YaM5Li656ys5LqM6LWE5rqQ44CCCi0g5aSa5qC55paH5qGj5b+F6aG755SxIEtpbmREZWZpbml0aW9uIOaYvuW8j+aOiOadg++8m2xvYWRlciDkuI3moLnmja7mlofku7blkI3miJbmoLnmlbDph4/njJzmtYsgZm9yZXN0IOivreS5ieOAggotIGNhdGFsb2cgcm9vdCDlv4XpobvmmK8gYHZmczovL2AgVVJJ44CCCi0gcmVzb3VyY2UtY29yZSDotJ/otKMgVVJJIOino+aekOOAgei+ueeVjOajgOafpeWSjOmHjeWkjSBpZGVudGl0eSDor4rmlq3vvJtjb25zdW1lciDkuI3oh6rooYzmiavmj4/no4Hnm5jjgIIK"
185
185
  },
186
186
  {
187
187
  "skillFqn": "Halfcode.ResourceDsl.Skill.System",
@@ -229,10 +229,10 @@ const projection = {
229
229
  "contentBase64": "IyBza2lsbC1jYXBzdWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLnNraWxsLWNhcHN1bGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+U2tpbGxDYXBzdWxlIGRlcGVuZGVuY2llcywgZGV0ZXJtaW5pc3RpYyBwbGFucyBhbmQgYXRvbWljIGRpc3RyaWJ1dGlvbi48L2Rlc2NyaXB0aW9uPgoKIyBTa2lsbENhcHN1bGUgRGVwZW5kZW5jaWVzIEFuZCBEaXN0cmlidXRpb24KCiMjIElkZW50aXR5IGF1dGhvcml0eQoK5paw55qEIGBTa2lsbENhcHN1bGVgIGRlc2NyaXB0b3Ig55SxIFhOTCDmoLnoioLngrnni6zljaAgRlFO44CBY29uc3VtZXItZmFjaW5nIGBuYW1lYOOAgWBhcGlWZXJzaW9uYCDkuI4gYHZlcnNpb25g44CCYFNLSUxMLm1ldGFkYXRhLnlhbWxgIOWPquS/neWtmCB0aXRsZS9kZXNjcmlwdGlvbiDnrYnlkYjnjrDlrZfmrrXvvIzkuI3ph43lpI0gbmFtZS92ZXJzaW9u77ybYXNzZW1ibHkg5Lya5oqKIGNhbm9uaWNhbCBYTkwgbmFtZS92ZXJzaW9uIOaKleW9see7meaooeadv+OAguiLpSBkZXNjcmlwdG9yIOW3suWjsOaYjiBgbmFtZWAg6ICMIFlBTUwg5LuN6YeN5aSN6K+l5a2X5q6177yMYXNzZW1ibHkg5ZyoIGNvbXBpbGVyIOWGmeWFpeWJjeS7pSBgU0tJTExfQ0FQU1VMRV9OQU1FX0RVUExJQ0FURWAg5aSx6LSl44CC5Y6G5Y+yIGRlc2NyaXB0b3Ig5pyq5aOw5piOIFhOTCBuYW1lIOaXtu+8jOaXouaciSBZQU1MIG5hbWUg5LiOIEZRTiDlsL7mrrUgZmFsbGJhY2sg57un57ut5YW85a6577yb5paw6LWE5rqQ5LiN5b6X6YeH55So6K+l5YW85a656Lev5b6E44CCCgpYTkwgYHZlcnNpb25gIOS5n+aYryBjYXBzdWxlIGlkZW50aXR5IOS4jiBkZXBlbmRlbmN5IGJpbmRpbmcg55qE5ZSv5LiAIHZlcnNpb24gYXV0aG9yaXR544CC5Y6G5Y+yIFlBTUwg6Iul5LuN5bimIGB2ZXJzaW9uYO+8jOW/hemhu+S4jiBYTkwg5Lil5qC855u4562J77yM5ZCm5YiZIGFzc2VtYmx5IOS7pSBgU0tJTExfQ0FQU1VMRV9WRVJTSU9OX0NPTkZMSUNUYCDlpLHotKXjgIIKCmBgYHhubAo8U2tpbGxDYXBzdWxlICNleGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5za2lsbC5hdXRob3JpbmcKICBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgdmVyc2lvbj0iMS4wLjAiIHsKICBuYW1lID0gImV4YW1wbGUtcmVzb3VyY2UtYXV0aG9yaW5nIgogIGRlc2NyaXB0aW9uID0gIkdlbmVyaWMgcmVzb3VyY2UgYXV0aG9yaW5nIG9wZXJhdGlvbnMuIgp9ICgKICA8U2tpbGxNZXRhZGF0YSB7IGhyZWYgPSAidmZzOi8vLi9TS0lMTC5tZXRhZGF0YS55YW1sIiBmb3JtYXQgPSAieWFtbCIgfT4KICA8VGVtcGxhdGUgeyBocmVmID0gInZmczovLy4vU0tJTEwudGVtcGxhdGUuZWpzIiBmb3JtYXQgPSAiZWpzIiB9PgopPgpgYGAKCuWvueW6lCBZQU1MIOWPquS/neWtmOWRiOeOsOWtl+aute+8mgoKYGBgeWFtbAp0aXRsZTogRXhhbXBsZSBSZXNvdXJjZSBBdXRob3JpbmcKZGVzY3JpcHRpb246IEdlbmVyaWMgcmVzb3VyY2UgYXV0aG9yaW5nIG9wZXJhdGlvbnMuCmBgYAoKIyMgYFNraWxsRGVwZW5kZW5jaWVzYCDkuI4gYEluY2x1ZGVzYAoK5Lik56eN5YWz57O75LiN5Y+v5LqS5o2i77yM5Lmf5LiN5YGa5ZCN56ew5oiW5paH5pys5o6o5pat77yaCgotIGBTa2lsbERlcGVuZGVuY2llcy9Ta2lsbERlcGVuZGVuY3lgIOWjsOaYjuWQjOS4gOS4qiBgQXBwbGljYXRpb25Bc3NlbWJseS5ieUZxbmAgcmVzb3VyY2UgdW5pdmVyc2Ug5Lit55qEIHNpYmxpbmcgYFNraWxsQ2Fwc3VsZWDjgIJgcmVmYCDlv4XpobvmmK8gYHJlc291cmNlOi8vPEZRTj5g77yM55uu5qCHIGtpbmQg5b+F6aG75pivIGBTa2lsbENhcHN1bGVg77yMYHZlcnNpb25gIOaYr+W/heWhq+eahOeyvuehriBiaW5kaW5n77yb5b2T5YmN54mI5pys5LiN6Kej6YeKIHNlbXZlciByYW5nZeOAggotIGBJbmNsdWRlcy9JbmNsdWRlYCDpgInmi6nopoHnvJblhaXlvZPliY0gY2Fwc3VsZSDnmoQgRnVuY3Rpb27jgIFQcm9tcHRGcmFnbWVudCDnrYnmma7pgJrotYTmupDjgILljbPkvr/kuIDkuKogSW5jbHVkZSDlhpnkuoYgYGtpbmQgPSAiU2tpbGxDYXBzdWxlImDvvIxwbGFubmVyIOS5n+S4jeS8muaKiuWug+aPkOWNh+S4uiBzaWJsaW5nIGRlcGVuZGVuY3njgIIKCmBgYHhubAo8U2tpbGxEZXBlbmRlbmNpZXMgWwogIDxTa2lsbERlcGVuZGVuY3kgewogICAgcmVmID0gInJlc291cmNlOi8vZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwucmVzb3VyY2VfZHNsIgogICAgdmVyc2lvbiA9ICIxLjAuMCIKICB9PgpdPgo8SW5jbHVkZXMgWwogIDxJbmNsdWRlIHsKICAgIGtpbmQgPSAiUHJvbXB0RnJhZ21lbnQiCiAgICByZWYgPSAicmVzb3VyY2U6Ly9leGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5wcm9tcHQuYXV0aG9yaW5nX3ByZWx1ZGUiCiAgfT4KXT4KYGBgCgrnvLrlpLHnm67moIfjgIHplJnor68ga2luZOOAgemHjeWkjSBkZXBlbmRlbmN544CB57K+56Gu54mI5pys5LiN5Yy56YWN5ZKMIGN5Y2xlIOmDveS8miBmYWlsIGNsb3NlZOOAguS+nei1luino+aekOWPquivu+WPluaXouaciSBhcHBsaWNhdGlvbiBhc3NlbWJsee+8jOS4jeWIm+W7uuesrOS6jOS7vSBjYXRhbG9nIOaIliBzY2FubmVy44CCCgojIyDlm5sgU2tpbGwgY2Fub25pY2FsIHRvcG9sb2d5Cgrop4TojIPnpLrkvovkvb/nlKjkuI7lhbfkvZPkuqflk4Hml6DlhbPnmoTlm5vkuKogU2tpbGzvvJoKCmBgYHRleHQKcmVzb3VyY2UgRFNMIC0+IGF1dGhvcmluZyAtPiBkZXZvcHMvcm9vdAogICAgICAgICAgICAgICAgICAgICAgICAgcnVuIC0+IGRldm9wcy9yb290CmBgYAoKLSBgZGV2b3BzL3Jvb3RgIOaYvuW8j+S+nei1liBgYXV0aG9yaW5nYCDkuI4gYHJ1bmDvvJsKLSBgYXV0aG9yaW5nYCDmmL7lvI/kvp3otZblhbHkuqsgYHJlc291cmNlIERTTGDvvJsKLSBgcnVuYCDkuI4gYHJlc291cmNlIERTTGAg5rKh5pyJIHNpYmxpbmcgZGVwZW5kZW5jeeOAggoK5a6M5pW0IGRlc2NyaXB0b3Ig5YiG5Yir5L2N5LqOIFtza2lsbC1jYXBzdWxlLWRldm9wcy54bmxdKGV4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCnjgIFbc2tpbGwtY2Fwc3VsZS1hdXRob3JpbmcueG5sXShleGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwp44CBW3NraWxsLWNhcHN1bGUtcnVuLnhubF0oZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1ydW4ueG5sKSDlkowgW3NraWxsLWNhcHN1bGUtcmVzb3VyY2UtZHNsLnhubF0oZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1yZXNvdXJjZS1kc2wueG5sKeOAguWPr+WKoOi9veOAgeWPr+inhOWIkueahCBidW5kbGUgZml4dHVyZSDkvY3kuo4gYGFwcHMvZGVtby1yZXNvdXJjZS13b3JrZmxvdy1hdXRob3JpbmcvcmVzb3VyY2VzLXhubC9Ta2lsbENhcHN1bGVzL1RvcG9sb2d5KmDjgILmiYDmnIkgY29uc3VtZXIgbmFtZSDkuI4gdmVyc2lvbiDpg73nlLEgWE5MIOWjsOaYju+8jGRlcGVuZGVuY3kg57uR5a6aIGAxLjAuMGDvvIxZQU1MIOS4jemHjeWkjSBpZGVudGl0eSDlrZfmrrXjgIIKCiMjIERldGVybWluaXN0aWMgcGxhbiDkuI4gYXRvbWljIGFwcGx5CgpgcGxhblNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvbmAg5LiOIGBhcHBseVNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvblBsYW5gIOaYr+S4pOS4queLrOeri+mYtuaute+8mgoKMS4gcGxhbm5lciDku47mmL7lvI8gcm9vdHMg6Kej5p6Q5Lyg6YCS6Zet5YyF77yM5oyJ5Zu65a6aIGNvZGUtdW5pdCDpobrluo/nlJ/miJAgZGVwZW5kZW5jeS1maXJzdCB0b3BvbG9nee+8mwoyLiBwbGFubmVyIOivu+WPluaJgOaciSBnZW5lcmF0ZWQvbWFwcGVkIGJ5dGVz77yM5bm25bCGIGNhbm9uaWNhbCBieXRlcyDkv53lrZjkuLrkuI3lj6/lj5jjgIHlj6/luo/liJfljJbnmoQgYGNvbnRlbnRCYXNlNjRgIGF1dGhvcml0ee+8m+WFvOWuueWtl+autSBgY29udGVudGAg5q+P5qyh6K+75Y+W5Y+q6L+U5Zue5paw55qEIGRlZmVuc2l2ZSBjb3B577ybCjMuIHBsYW5uZXIg5a+55omA5pyJ5Lya6L+b5YWlIFNLSUxML3JlZmVyZW5jZS9jYWxsYWJsZSBieXRlcyDnmoTotYTmupDpm4blkIjmjIkgRlFOIOS9v+eUqOWbuuWumiBVVEYtMTYgY29kZS11bml0IGNvbXBhcmF0b3Ig5o6S5bqP77yM5bm25a+55a6M5pW0IGNsb3N1cmUg5YGa6YeN5aSNIG91dHB1dCBuYW1l44CB55u45ZCMIHRhcmdldCDkuI7mlofku7Yv55uu5b2VIHByZWZpeCBjb2xsaXNpb24gcHJlZmxpZ2h077ybCjQuIHBsYW4g5L+d5a2YIHZlcnNpb25lZCBjb250ZW50L2NhcHN1bGUvY2xvc3VyZSBkaWdlc3TvvIzkuJTkuI3lkKvnu53lr7not6/lvoTjgIHml7bpl7TmiLPmiJblh73mlbDlr7nosaHvvJtwbGFuIOaIkOWKn+aIluWksei0pemDveS4jeWGmeebruaghyByb29077ybCjUuIGFwcGxpZXIg5YWIIGZhaWwtY2xvc2VkIOagoemqjOmdnuepuiByb290c+OAgXJvb3Qg5Y+v6L6+55qE5a6M5pW06Zet5YyF44CBY2Fub25pY2FsIGJhc2U2NCDkuI7lhajpg6ggZGlnZXN077yM5YaN5ZyoIGNhbGxlciDmj5DkvpvnmoQgYG91dHB1dFJvb3RgIOWQjOeItuebruW9lSBzdGFnZeOAgXJlYWRiYWNr77yM5LulIGJhY2t1cC9yZW5hbWUvcm9sbGJhY2sg5oiQ57uE5YiH5o2i44CCCgrmr4/kuKogcGxhbm5lZCBjYXBzdWxlIOi/mOW/hemhu+WMheWQq+WbuuWumui3r+W+hCBgcmVmZXJlbmNlcy8uaGFsZmNvZGUvcHJvdmVuYW5jZS5qc29uYOOAguivpeaWh+S7tueUsSBjb21waWxlciDnlJ/miJDvvIzkuI3nlLHmqKHmnb/nu7TmiqTvvJvlroPorrDlvZUgYGhhbGZjb2RlLnNraWxsLXByb3ZlbmFuY2UvdjFgIGZvcm1hdOOAgWBoYWxmY29kZS5za2lsbC1kaXN0cmlidXRpb24vdjFgIGdlbmVyYXRvcuOAgVNraWxsQ2Fwc3VsZSBYTkwg55qEIEZRTi9hcGlWZXJzaW9uL3ZlcnNpb27vvIzku6Xlj4rpmaToh6rouqvku6XlpJblhajpg6ggcGF5bG9hZCBmaWxlcyDnmoQgY2Fub25pY2FsIHBhdGgvY29udGVudCBkaWdlc3TjgIJtYW5pZmVzdCDoh6rouqvkvZzkuLrmma7pgJogcGxhbm5lZCBmaWxlIOi/m+WFpSBjYXBzdWxlL2Nsb3N1cmUgZGlnZXN077yM5Zug5q2k5LiN6ZyA6KaB6Ieq5byV55So5pGY6KaB44CCYXBwbGllciDkvJrlnKjku7vkvZXnm67moIflhpnlhaXliY3ku44gcGxhbiDph43lu7rlubYgZXhhY3Qg5qCh6aqM6L+Z5LqbIGZhY3Rz44CCCgpgYGB0cwpjb25zdCBwbGFuID0gYXdhaXQgcGxhblNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvbih7CiAgYXNzZW1ibHksCiAgcm9vdFNraWxsRnFuczogWyJleGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5za2lsbC5kZXZvcHMiXSwKfSkKCmF3YWl0IGFwcGx5U2tpbGxDYXBzdWxlRGlzdHJpYnV0aW9uUGxhbihwbGFuLCB7IG91dHB1dFJvb3QgfSkKYGBgCgpIYWxmY29kZSDlj6rmi6XmnInpgJrnlKggcmVzb3VyY2UgZGVwZW5kZW5jeeOAgXBsYW4g5LiOIGF0b21pYyBhcHBseSBjb250cmFjdO+8m+ebruaghyByb29044CB5a6J6KOF5L2N572u44CB55Sf5ZG95ZGo5pyf6Zi25q615ZKM5Y2H57qn562W55Wl6YO955SxIGNhbGxlci9ob3N0IOWGs+WumuOAgmNvbXBpbGVyIOS4jeaOqOWvvOi/meS6myBwb2xpY3nvvIzkuZ/kuI3miorlroPku6zlhpnov5votYTmupAgYXV0aG9yaXR544CCCgojIyBDb25zdW1lciBSZXNvdXJjZSBEU0wgU2tpbGwKCmBkb2NzL3Jlc291cmNlLWRzbC9tYW5pZmVzdC54bmxgIOWwhuacrOebruW9leeahCBjYW5vbmljYWwg5paH5qGj55m76K6w5Li6IFJlc291cmNlUGFja2FnZS9XaWtpUGFnZSByZXNvdXJjZXPvvIzlubblo7DmmI4gYEhhbGZjb2RlLlJlc291cmNlRHNsLlNraWxsLlN5c3RlbWDjgIJjb21waWxlciDku47ov5nkupvljp/lp4vmlofmoaPnlJ/miJAgYHN5cy1oYWxmY29kZS1yZXNvdXJjZS1kc2xAMS4wLjBgIOeahCByZWZlcmVuY2Vz77ybYFNLSUxMLm1kYCDlj6rmj5DkvpvmuJDov5vliqDovb3pobrluo/vvIzkuI3lpI3liLbop4TojIPmraPmlofvvIzkuZ/kuI3ljIXlkKvku5PlupPnu7TmiqTlkb3ku6TmiJYgaG9zdCDlronoo4Xmk43kvZzjgILku5PlupPnu7TmiqTogIXnu6fnu63kvb/nlKggYHNraWxscy9mcmFtZXdvcmstcmVzb3VyY2UtZHNsYO+8jOS4pOiAheiBjOi0o+S4jeWPr+S6kuaNouOAggoK5pei5pyJIGBjb21waWxlU2tpbGxDYXBzdWxlYOOAgWBjb21waWxlUmVzb3VyY2VTa2lsbENhcHN1bGVgIOS4jiBgU2tpbGxDYXBzdWxlUGxhbmAg5L+d5oyB5YW85a6544CC5pawIHBsYW5uZXIvYXBwbGllciDlkoznsbvlnovku44gcGFja2FnZSByb290IOWPiiBgaGFsZmNvZGUtY29tcGlsZXIueG5sL3NraWxsLWNhcHN1bGVgIGFkZGl0aXZlIOWvvOWHuuOAggo="
230
230
  }
231
231
  ],
232
- "capsuleDigest": "sha256:de0d03ff0d60f824eb4b34cb3417e660135d231ffe84d530cb61bd5e5d6eaed3"
232
+ "capsuleDigest": "sha256:002ef075e64680b78cfc8a247bc50bb073848400c306060139e585b1efb69ff7"
233
233
  }
234
234
  ],
235
- "closureDigest": "sha256:4d0b9cd96b326b85b9681e9ec4f0ce3fda11b92cd0c68c46ac474e5b7f460fd7"
235
+ "closureDigest": "sha256:1a309739bd803d3d5c27f49cd4d098bed24ce066ba8e398097d5c77524fc7788"
236
236
  }
237
237
 
238
238
  function hydrateFile(file) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "halfcode-compiler.xnl",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "Compile XNL-described applications into runtime-ready skill capsules.",
5
5
  "type": "module",
6
6
  "private": false,