@agentxm/extension-content 0.49.2 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/src/content/frontmatter.d.ts +16 -0
  2. package/dist/src/content/frontmatter.js +6 -4
  3. package/dist/src/content/skill-content.d.ts +13 -14
  4. package/dist/src/content/skill-content.js +8 -46
  5. package/dist/src/content/subagent-content.js +14 -10
  6. package/dist/src/index.d.ts +2 -2
  7. package/dist/src/index.js +3 -3
  8. package/dist/src/knowledge/index.d.ts +1 -1
  9. package/dist/src/knowledge/index.js +2 -2
  10. package/dist/src/knowledge/okf.d.ts +52 -1
  11. package/dist/src/knowledge/okf.js +86 -59
  12. package/dist/src/knowledge/package-inspection.d.ts +4 -7
  13. package/dist/src/knowledge/package-inspection.js +7 -19
  14. package/dist/src/lint/accessor/platform.d.ts +54 -0
  15. package/dist/src/lint/accessor/platform.js +89 -0
  16. package/dist/src/lint/{catalog/pack-accessor → accessor}/vft.d.ts +12 -14
  17. package/dist/src/lint/accessor/vft.js +83 -0
  18. package/dist/src/lint/catalog/hook/entrypoint-exists.d.ts +2 -2
  19. package/dist/src/lint/catalog/hook/entrypoint-exists.js +4 -3
  20. package/dist/src/lint/catalog/hook/envelope.d.ts +6 -6
  21. package/dist/src/lint/catalog/hook/envelope.js +5 -4
  22. package/dist/src/lint/catalog/hook/native-bindings-supported.d.ts +2 -2
  23. package/dist/src/lint/catalog/hook/native-bindings-supported.js +4 -3
  24. package/dist/src/lint/catalog/hook.d.ts +2 -2
  25. package/dist/src/lint/catalog/hook.js +1 -1
  26. package/dist/src/lint/catalog/knowledge/diagnostics.js +4 -3
  27. package/dist/src/lint/catalog/knowledge/envelope.d.ts +1 -1
  28. package/dist/src/lint/catalog/knowledge/envelope.js +4 -3
  29. package/dist/src/lint/catalog/mcp-server/envelope.d.ts +2 -2
  30. package/dist/src/lint/catalog/mcp-server/envelope.js +4 -3
  31. package/dist/src/lint/catalog/mcp-server.d.ts +2 -2
  32. package/dist/src/lint/catalog/{pack-accessor → pack}/contexts.d.ts +6 -6
  33. package/dist/src/lint/catalog/{pack-accessor → pack}/contexts.js +4 -4
  34. package/dist/src/lint/catalog/pack/envelope.d.ts +10 -0
  35. package/dist/src/lint/catalog/pack/envelope.js +20 -0
  36. package/dist/src/lint/catalog/pack.d.ts +9 -10
  37. package/dist/src/lint/catalog/pack.js +12 -15
  38. package/dist/src/lint/catalog/rule/envelope.d.ts +2 -2
  39. package/dist/src/lint/catalog/rule/envelope.js +4 -3
  40. package/dist/src/lint/catalog/rule.d.ts +2 -2
  41. package/dist/src/lint/catalog/shared/envelope-rules.d.ts +23 -12
  42. package/dist/src/lint/catalog/shared/envelope-rules.js +22 -13
  43. package/dist/src/lint/catalog/shared/manifest-present.d.ts +3 -4
  44. package/dist/src/lint/catalog/shared/recommended-packs-rules.js +5 -3
  45. package/dist/src/lint/catalog/shared/schema-rule.js +3 -3
  46. package/dist/src/lint/catalog/{skill-accessor → skill}/contexts.d.ts +5 -5
  47. package/dist/src/lint/catalog/{skill-accessor → skill}/contexts.js +3 -3
  48. package/dist/src/lint/catalog/skill/envelope.d.ts +11 -0
  49. package/dist/src/lint/catalog/skill/envelope.js +23 -0
  50. package/dist/src/lint/catalog/skill/frontmatter-parseable.d.ts +6 -4
  51. package/dist/src/lint/catalog/skill/frontmatter-parseable.js +17 -21
  52. package/dist/src/lint/catalog/skill/frontmatter-standard-valid.js +7 -12
  53. package/dist/src/lint/catalog/skill.d.ts +4 -5
  54. package/dist/src/lint/catalog/skill.js +11 -16
  55. package/dist/src/lint/catalog/subagent/envelope.d.ts +2 -2
  56. package/dist/src/lint/catalog/subagent/envelope.js +4 -3
  57. package/dist/src/lint/catalog/subagent.d.ts +2 -2
  58. package/dist/src/lint/catalog-metadata.js +13 -1
  59. package/dist/src/lint/context.d.ts +39 -115
  60. package/dist/src/lint/describe-document.d.ts +1 -1
  61. package/dist/src/lint/describe-document.js +4 -5
  62. package/dist/src/lint/index.d.ts +5 -7
  63. package/dist/src/lint/index.js +5 -7
  64. package/dist/src/packaging/archive-guardrails.d.ts +11 -0
  65. package/dist/src/packaging/archive-guardrails.js +111 -74
  66. package/dist/src/packaging/filtered-package-validation.js +3 -4
  67. package/dist/src/packaging/manifest-file.d.ts +7 -3
  68. package/dist/src/packaging/manifest-file.js +10 -11
  69. package/dist/src/packaging/manifest-policy.d.ts +0 -12
  70. package/dist/src/packaging/manifest-policy.js +12 -26
  71. package/dist/src/packaging/test-zip-helpers.js +4 -3
  72. package/package.json +8 -4
  73. package/dist/src/lint/catalog/pack/manifest-keys-recognized.d.ts +0 -28
  74. package/dist/src/lint/catalog/pack/manifest-keys-recognized.js +0 -38
  75. package/dist/src/lint/catalog/pack/manifest-present.d.ts +0 -17
  76. package/dist/src/lint/catalog/pack/manifest-present.js +0 -24
  77. package/dist/src/lint/catalog/pack/manifest-schema-valid.d.ts +0 -25
  78. package/dist/src/lint/catalog/pack/manifest-schema-valid.js +0 -33
  79. package/dist/src/lint/catalog/pack-accessor/platform.d.ts +0 -56
  80. package/dist/src/lint/catalog/pack-accessor/platform.js +0 -93
  81. package/dist/src/lint/catalog/pack-accessor/vft.js +0 -85
  82. package/dist/src/lint/catalog/skill/manifest-keys-recognized.d.ts +0 -26
  83. package/dist/src/lint/catalog/skill/manifest-keys-recognized.js +0 -41
  84. package/dist/src/lint/catalog/skill/manifest-present.d.ts +0 -23
  85. package/dist/src/lint/catalog/skill/manifest-present.js +0 -32
  86. package/dist/src/lint/catalog/skill/manifest-schema-valid.d.ts +0 -21
  87. package/dist/src/lint/catalog/skill/manifest-schema-valid.js +0 -36
  88. package/dist/src/lint/catalog/skill/recommended-packs-valid.d.ts +0 -8
  89. package/dist/src/lint/catalog/skill/recommended-packs-valid.js +0 -12
  90. package/dist/src/lint/catalog/skill/standalone-declaration-valid.d.ts +0 -8
  91. package/dist/src/lint/catalog/skill/standalone-declaration-valid.js +0 -12
  92. package/dist/src/lint/catalog/skill-accessor/platform.d.ts +0 -53
  93. package/dist/src/lint/catalog/skill-accessor/platform.js +0 -90
  94. package/dist/src/lint/catalog/skill-accessor/vft.d.ts +0 -77
  95. package/dist/src/lint/catalog/skill-accessor/vft.js +0 -135
@@ -6,6 +6,14 @@ export class ArchiveGuardrailError extends Data.TaggedError("ArchiveGuardrailErr
6
6
  const ZIP_EOCD_SIGNATURE = 0x06054b50;
7
7
  const ZIP_CDIR_SIGNATURE = 0x02014b50;
8
8
  export const ZIP_LOCAL_SIGNATURE = 0x04034b50;
9
+ const EOCD_SIZE = 22;
10
+ const CENTRAL_HEADER_SIZE = 46;
11
+ const LOCAL_FILE_HEADER_SIZE = 30;
12
+ const MAX_ARCHIVE_COMMENT_BYTES = 0xffff;
13
+ // ZIP v1 fields saturated to these values defer to a ZIP64 record.
14
+ const ZIP64_COUNT_SENTINEL = 0xffff;
15
+ const ZIP64_SIZE_SENTINEL = 0xffffffff;
16
+ const FLAG_ENCRYPTED = 0x0001;
9
17
  const COMPRESSION_STORE = 0;
10
18
  const COMPRESSION_DEFLATE = 8;
11
19
  const SUPPORTED_COMPRESSION = new Set([COMPRESSION_STORE, COMPRESSION_DEFLATE]);
@@ -19,60 +27,80 @@ const DEFAULT_LIMITS = {
19
27
  maxDecompressedBytes: 256 * 1024 * 1024,
20
28
  maxCompressionRatio: 100,
21
29
  };
22
- const findEocdOffset = (buf) => Effect.gen(function* () {
23
- const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
24
- const minOffset = Math.max(0, buf.length - 22 - 65535);
25
- for (let i = buf.length - 22; i >= minOffset; i--) {
26
- if (view.getUint32(i, true) === ZIP_EOCD_SIGNATURE) {
27
- return i;
30
+ const malformed = (message, entry) => new ArchiveGuardrailError({
31
+ code: "malformed_archive",
32
+ message,
33
+ ...(entry === undefined ? {} : { entry }),
34
+ });
35
+ const bytesEqual = (left, right) => left.length === right.length && left.every((byte, index) => byte === right[index]);
36
+ /**
37
+ * Locate the one end-of-central-directory record whose comment ends exactly at
38
+ * the end of the archive. A second self-consistent record, such as one hidden
39
+ * in the archive comment, makes the archive ambiguous between ZIP readers.
40
+ */
41
+ const findEocdOffset = (buf, view) => {
42
+ const minOffset = Math.max(0, buf.length - EOCD_SIZE - MAX_ARCHIVE_COMMENT_BYTES);
43
+ let found;
44
+ for (let i = buf.length - EOCD_SIZE; i >= minOffset; i--) {
45
+ if (view.getUint32(i, true) !== ZIP_EOCD_SIGNATURE ||
46
+ i + EOCD_SIZE + view.getUint16(i + 20, true) !== buf.length) {
47
+ continue;
28
48
  }
49
+ if (found !== undefined) {
50
+ return Effect.fail(malformed("Archive contains more than one end-of-central-directory record."));
51
+ }
52
+ found = i;
29
53
  }
30
- return yield* new ArchiveGuardrailError({
31
- code: "malformed_archive",
32
- message: "ZIP end-of-central-directory record not found.",
33
- });
34
- });
54
+ return found === undefined
55
+ ? Effect.fail(malformed("ZIP end-of-central-directory record not found at the archive end."))
56
+ : Effect.succeed(found);
57
+ };
58
+ /**
59
+ * Read a single-disk ZIP v1 central directory and verify each entry's local
60
+ * header against it, so every reader of the returned entries sees the same
61
+ * names, methods and data ranges. Multi-disk, ZIP64 and encrypted archives are
62
+ * rejected.
63
+ */
35
64
  export const parseZipCentralDirectory = (buf) => Effect.gen(function* () {
36
- if (buf.length < 22) {
37
- return yield* new ArchiveGuardrailError({
38
- code: "malformed_archive",
39
- message: "Archive too small to be a valid ZIP file.",
40
- });
65
+ if (buf.length < EOCD_SIZE) {
66
+ return yield* malformed("Archive too small to be a valid ZIP file.");
41
67
  }
42
68
  const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
43
69
  if (view.getUint32(0, true) !== ZIP_LOCAL_SIGNATURE) {
44
- return yield* new ArchiveGuardrailError({
45
- code: "malformed_archive",
46
- message: "Archive does not start with a valid ZIP local file header signature.",
47
- });
70
+ return yield* malformed("Archive does not start with a valid ZIP local file header signature.");
48
71
  }
49
- const eocdOffset = yield* findEocdOffset(buf);
72
+ const eocdOffset = yield* findEocdOffset(buf, view);
73
+ const diskNumber = view.getUint16(eocdOffset + 4, true);
74
+ const cdirDisk = view.getUint16(eocdOffset + 6, true);
75
+ const entriesOnDisk = view.getUint16(eocdOffset + 8, true);
50
76
  const totalEntries = view.getUint16(eocdOffset + 10, true);
51
77
  const cdirSize = view.getUint32(eocdOffset + 12, true);
52
78
  const cdirOffset = view.getUint32(eocdOffset + 16, true);
53
- if (cdirOffset + cdirSize > buf.length) {
54
- return yield* new ArchiveGuardrailError({
55
- code: "malformed_archive",
56
- message: "Central directory offset and size exceed archive bounds.",
57
- });
79
+ if (diskNumber !== 0 || cdirDisk !== 0 || entriesOnDisk !== totalEntries) {
80
+ return yield* malformed("Multi-disk ZIP archives are not supported.");
81
+ }
82
+ if (totalEntries === ZIP64_COUNT_SENTINEL ||
83
+ cdirSize === ZIP64_SIZE_SENTINEL ||
84
+ cdirOffset === ZIP64_SIZE_SENTINEL) {
85
+ return yield* malformed("ZIP64 archives are not supported.");
86
+ }
87
+ if (cdirOffset + cdirSize !== eocdOffset) {
88
+ return yield* malformed("Central directory does not end at the end-of-central-directory record.");
58
89
  }
59
90
  const entries = [];
60
91
  let offset = cdirOffset;
61
- for (let i = 0; i < totalEntries; i++) {
62
- if (offset + 46 > buf.length) {
63
- return yield* new ArchiveGuardrailError({
64
- code: "malformed_archive",
65
- message: `Central directory entry ${i} exceeds archive bounds.`,
66
- });
92
+ while (offset < eocdOffset) {
93
+ const index = entries.length;
94
+ if (offset + CENTRAL_HEADER_SIZE > eocdOffset) {
95
+ return yield* malformed(`Central directory entry ${index} exceeds its declared bounds.`);
67
96
  }
68
- const signature = view.getUint32(offset, true);
69
- if (signature !== ZIP_CDIR_SIGNATURE) {
70
- return yield* new ArchiveGuardrailError({
71
- code: "malformed_archive",
72
- message: `Invalid central directory entry signature at offset ${offset}.`,
73
- });
97
+ if (view.getUint32(offset, true) !== ZIP_CDIR_SIGNATURE) {
98
+ return yield* malformed(`Invalid central directory entry signature at offset ${offset}.`);
74
99
  }
100
+ const versionMadeBy = view.getUint16(offset + 4, true);
101
+ const flags = view.getUint16(offset + 8, true);
75
102
  const compressionMethod = view.getUint16(offset + 10, true);
103
+ const crc32 = view.getUint32(offset + 16, true);
76
104
  const compressedSize = view.getUint32(offset + 20, true);
77
105
  const uncompressedSize = view.getUint32(offset + 24, true);
78
106
  const fileNameLength = view.getUint16(offset + 28, true);
@@ -80,58 +108,67 @@ export const parseZipCentralDirectory = (buf) => Effect.gen(function* () {
80
108
  const fileCommentLength = view.getUint16(offset + 32, true);
81
109
  const externalAttributes = view.getUint32(offset + 38, true);
82
110
  const localHeaderOffset = view.getUint32(offset + 42, true);
83
- const fileNameStart = offset + 46;
111
+ const fileNameStart = offset + CENTRAL_HEADER_SIZE;
84
112
  const fileNameEnd = fileNameStart + fileNameLength;
85
- if (fileNameEnd > buf.length) {
86
- return yield* new ArchiveGuardrailError({
87
- code: "malformed_archive",
88
- message: `File name for entry ${i} exceeds archive bounds.`,
89
- });
113
+ if (fileNameEnd > eocdOffset) {
114
+ return yield* malformed(`File name for entry ${index} exceeds its declared bounds.`);
115
+ }
116
+ const fileNameBytes = buf.subarray(fileNameStart, fileNameEnd);
117
+ const fileName = textDecoder.decode(fileNameBytes);
118
+ if ((flags & FLAG_ENCRYPTED) !== 0) {
119
+ return yield* malformed(`Encrypted ZIP entries are not supported: "${fileName}".`, fileName);
120
+ }
121
+ if (compressedSize === ZIP64_SIZE_SENTINEL ||
122
+ uncompressedSize === ZIP64_SIZE_SENTINEL ||
123
+ localHeaderOffset === ZIP64_SIZE_SENTINEL) {
124
+ return yield* malformed(`ZIP64 entries are not supported: "${fileName}".`, fileName);
125
+ }
126
+ // Entry data precedes the central directory in a single-disk archive.
127
+ if (localHeaderOffset + LOCAL_FILE_HEADER_SIZE > cdirOffset ||
128
+ view.getUint32(localHeaderOffset, true) !== ZIP_LOCAL_SIGNATURE) {
129
+ return yield* malformed(`Invalid local file header for entry "${fileName}".`, fileName);
130
+ }
131
+ if ((view.getUint16(localHeaderOffset + 6, true) & FLAG_ENCRYPTED) !== 0) {
132
+ return yield* malformed(`Encrypted ZIP entries are not supported: "${fileName}".`, fileName);
133
+ }
134
+ if (view.getUint16(localHeaderOffset + 8, true) !== compressionMethod) {
135
+ return yield* malformed(`Local and central compression methods disagree for entry "${fileName}".`, fileName);
136
+ }
137
+ const localNameStart = localHeaderOffset + LOCAL_FILE_HEADER_SIZE;
138
+ const localNameEnd = localNameStart + view.getUint16(localHeaderOffset + 26, true);
139
+ const localDataOffset = localNameEnd + view.getUint16(localHeaderOffset + 28, true);
140
+ if (localNameEnd > cdirOffset ||
141
+ !bytesEqual(buf.subarray(localNameStart, localNameEnd), fileNameBytes)) {
142
+ return yield* malformed(`Local and central file names disagree for entry "${fileName}".`, fileName);
143
+ }
144
+ if (localDataOffset + compressedSize > cdirOffset) {
145
+ return yield* malformed(`Compressed data for entry "${fileName}" exceeds archive bounds.`, fileName);
90
146
  }
91
- const fileName = textDecoder.decode(buf.slice(fileNameStart, fileNameEnd));
92
147
  entries.push({
93
148
  fileName,
149
+ versionMadeBy,
150
+ crc32,
94
151
  compressedSize,
95
152
  uncompressedSize,
96
153
  compressionMethod,
97
154
  externalAttributes,
98
155
  localHeaderOffset,
156
+ localDataOffset,
99
157
  });
100
158
  offset = fileNameEnd + extraFieldLength + fileCommentLength;
101
159
  }
160
+ if (offset !== eocdOffset || entries.length !== totalEntries) {
161
+ return yield* malformed(`Central directory holds ${entries.length} entries, but the archive declares ${totalEntries}.`);
162
+ }
102
163
  return entries;
103
164
  });
104
- const LOCAL_FILE_HEADER_SIZE = 30;
105
165
  const INFLATE_CHUNK_SIZE = 16 * 1024;
106
166
  export const defaultReadEntry = (archiveBytes, entry) => Effect.gen(function* () {
107
- const { localHeaderOffset, compressedSize, compressionMethod, fileName } = entry;
108
- if (localHeaderOffset + LOCAL_FILE_HEADER_SIZE > archiveBytes.length) {
109
- return yield* new ArchiveGuardrailError({
110
- code: "malformed_archive",
111
- message: `Local file header for entry "${fileName}" exceeds archive bounds.`,
112
- entry: fileName,
113
- });
114
- }
115
- const view = new DataView(archiveBytes.buffer, archiveBytes.byteOffset, archiveBytes.byteLength);
116
- const signature = view.getUint32(localHeaderOffset, true);
117
- if (signature !== ZIP_LOCAL_SIGNATURE) {
118
- return yield* new ArchiveGuardrailError({
119
- code: "malformed_archive",
120
- message: `Invalid local file header signature for entry "${fileName}".`,
121
- entry: fileName,
122
- });
123
- }
124
- const fileNameLength = view.getUint16(localHeaderOffset + 26, true);
125
- const extraFieldLength = view.getUint16(localHeaderOffset + 28, true);
126
- const dataStart = localHeaderOffset + LOCAL_FILE_HEADER_SIZE + fileNameLength + extraFieldLength;
127
- if (dataStart + compressedSize > archiveBytes.length) {
128
- return yield* new ArchiveGuardrailError({
129
- code: "malformed_archive",
130
- message: `Compressed data for entry "${fileName}" exceeds archive bounds.`,
131
- entry: fileName,
132
- });
167
+ const { localDataOffset, compressedSize, compressionMethod, fileName } = entry;
168
+ if (localDataOffset + compressedSize > archiveBytes.length) {
169
+ return yield* malformed(`Compressed data for entry "${fileName}" exceeds archive bounds.`, fileName);
133
170
  }
134
- const compressedData = archiveBytes.slice(dataStart, dataStart + compressedSize);
171
+ const compressedData = archiveBytes.slice(localDataOffset, localDataOffset + compressedSize);
135
172
  if (compressionMethod === 0) {
136
173
  if (compressedData.byteLength !== entry.uncompressedSize) {
137
174
  return yield* new ArchiveGuardrailError({
@@ -441,4 +478,4 @@ export const validateArchive = (archiveBytes, limits) => Effect.gen(function* ()
441
478
  yield* checkSymlinks(archiveBytes, entries);
442
479
  return entries;
443
480
  });
444
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS1ndWFyZHJhaWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhY2thZ2luZy9hcmNoaXZlLWd1YXJkcmFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FjakY7Q0FBRztBQUVMLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztBQUU5QyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUM5QixNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0FBRWhGLHVGQUF1RjtBQUN2RixNQUFNLHFCQUFxQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUV0QixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBaUJ0QyxNQUFNLGNBQWMsR0FBcUM7SUFDdkQsVUFBVSxFQUFFLE1BQU07SUFDbEIsb0JBQW9CLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ3ZDLG1CQUFtQixFQUFFLEdBQUc7Q0FDekIsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBZSxFQUFnRCxFQUFFLENBQ3ZGLE1B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
481
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS1ndWFyZHJhaWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhY2thZ2luZy9hcmNoaXZlLWd1YXJkcmFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FjakY7Q0FBRztBQUVMLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztBQUU5QyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDckIsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFDL0IsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDbEMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUM7QUFDekMsbUVBQW1FO0FBQ25FLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0FBQ3BDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0FBQ3ZDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQztBQUU5QixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUM1QixNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUM5QixNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0FBRWhGLHVGQUF1RjtBQUN2RixNQUFNLHFCQUFxQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUV0QixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBc0J0QyxNQUFNLGNBQWMsR0FBcUM7SUFDdkQsVUFBVSxFQUFFLE1BQU07SUFDbEIsb0JBQW9CLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ3ZDLG1CQUFtQixFQUFFLEdBQUc7Q0FDekIsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxFQUFFLENBQ3BELElBQUkscUJBQXFCLENBQUM7SUFDeEIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixPQUFPO0lBQ1AsR0FBRyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztDQUMxQyxDQUFDLENBQUM7QUFFTCxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQWdCLEVBQUUsS0FBaUIsRUFBRSxFQUFFLENBQ3pELElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRXJGOzs7O0dBSUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUNyQixHQUFlLEVBQ2YsSUFBYyxFQUNnQyxFQUFFO0lBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLHlCQUF5QixDQUFDLENBQUM7SUFDbEYsSUFBSSxLQUF5QixDQUFDO0lBQzlCLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pELElBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssa0JBQWtCO1lBQzlDLENBQUMsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQzNELENBQUM7WUFDRCxTQUFTO1FBQ1gsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsU0FBUyxDQUFDLGlFQUFpRSxDQUFDLENBQzdFLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLEtBQUssS0FBSyxTQUFTO1FBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1FBQzdGLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDdEMsR0FBZSxFQUM0QyxFQUFFLENBQzdELE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2xCLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztRQUNwRCxPQUFPLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDckIsc0VBQXNFLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV6RCxJQUFJLFVBQVUsS0FBSyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxhQUFhLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDekUsT0FBTyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsSUFDRSxZQUFZLEtBQUssb0JBQW9CO1FBQ3JDLFFBQVEsS0FBSyxtQkFBbUI7UUFDaEMsVUFBVSxLQUFLLG1CQUFtQixFQUNsQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBSSxVQUFVLEdBQUcsUUFBUSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLENBQUMsU0FBUyxDQUNyQix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBZSxFQUFFLENBQUM7SUFDL0IsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBRXhCLE9BQU8sTUFBTSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxNQUFNLEdBQUcsbUJBQW1CLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDOUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLEtBQUssK0JBQStCLENBQUMsQ0FBQztRQUMzRixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hELE9BQU8sS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLHVEQUF1RCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVELE1BQU0sYUFBYSxHQUFHLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBRyxhQUFhLEdBQUcsY0FBYyxDQUFDO1FBQ25ELElBQUksV0FBVyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQzdCLE9BQU8sS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLHVCQUF1QixLQUFLLCtCQUErQixDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDckIsNkNBQTZDLFFBQVEsSUFBSSxFQUN6RCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUNFLGNBQWMsS0FBSyxtQkFBbUI7WUFDdEMsZ0JBQWdCLEtBQUssbUJBQW1CO1lBQ3hDLGlCQUFpQixLQUFLLG1CQUFtQixFQUN6QyxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMscUNBQXFDLFFBQVEsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7UUFFRCxzRUFBc0U7UUFDdEUsSUFDRSxpQkFBaUIsR0FBRyxzQkFBc0IsR0FBRyxVQUFVO1lBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQy9ELENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyx3Q0FBd0MsUUFBUSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6RSxPQUFPLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDckIsNkNBQTZDLFFBQVEsSUFBSSxFQUN6RCxRQUFRLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDdEUsT0FBTyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQ3JCLDZEQUE2RCxRQUFRLElBQUksRUFDekUsUUFBUSxDQUNULENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7UUFDbEUsTUFBTSxZQUFZLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25GLE1BQU0sZUFBZSxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRixJQUNFLFlBQVksR0FBRyxVQUFVO1lBQ3pCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxFQUN0RSxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQ3JCLG9EQUFvRCxRQUFRLElBQUksRUFDaEUsUUFBUSxDQUNULENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxlQUFlLEdBQUcsY0FBYyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ2xELE9BQU8sS0FBSyxDQUFDLENBQUMsU0FBUyxDQUNyQiw4QkFBOEIsUUFBUSwyQkFBMkIsRUFDakUsUUFBUSxDQUNULENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNYLFFBQVE7WUFDUixhQUFhO1lBQ2IsS0FBSztZQUNMLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsZUFBZTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsV0FBVyxHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLE1BQU0sS0FBSyxVQUFVLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUM3RCxPQUFPLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDckIsMkJBQTJCLE9BQU8sQ0FBQyxNQUFNLHNDQUFzQyxZQUFZLEdBQUcsQ0FDL0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMsQ0FBQztBQUVMLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUM5QixZQUF3QixFQUN4QixLQUFlLEVBQ21DLEVBQUUsQ0FDcEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDbEIsTUFBTSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRS9FLElBQUksZUFBZSxHQUFHLGNBQWMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQ3JCLDhCQUE4QixRQUFRLDJCQUEyQixFQUNqRSxRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxlQUFlLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFFN0YsSUFBSSxpQkFBaUIsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixJQUFJLGNBQWMsQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekQsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixDQUFDO2dCQUN0QyxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixPQUFPLEVBQUUsc0RBQXNELFFBQVEsSUFBSTtnQkFDM0UsS0FBSyxFQUFFLFFBQVE7YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGlCQUFpQixLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFLENBQzVCLElBQUkscUJBQXFCLENBQUM7WUFDeEIsSUFBSSxFQUFFLDhCQUE4QjtZQUNwQyxPQUFPLEVBQUUsVUFBVSxRQUFRLDhDQUE4QyxLQUFLLENBQUMsZ0JBQWdCLFNBQVM7WUFDeEcsS0FBSyxFQUFFLFFBQVE7U0FDaEIsQ0FBQyxDQUFDO1FBQ0wsdUVBQXVFO1FBQ3ZFLHlFQUF5RTtRQUN6RSwwRUFBMEU7UUFDMUUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUMvQixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQ1IsY0FBYyxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsU0FBUyxFQUFFLGtCQUFrQjtnQkFDN0IsZUFBZSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxrQkFBa0I7YUFDN0QsQ0FBQztZQUNKLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE1BQU0sU0FBUyxHQUNiLE9BQU8sS0FBSyxLQUFLLFFBQVE7b0JBQ3pCLEtBQUssS0FBSyxJQUFJO29CQUNkLE1BQU0sSUFBSSxLQUFLO29CQUNmLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRO29CQUM1QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUk7b0JBQ1osQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxPQUFPLFNBQVMsS0FBSyxzQkFBc0I7b0JBQ3pDLENBQUMsS0FBSyxZQUFZLFVBQVUsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLHVCQUF1QixDQUFDO29CQUMxRSxDQUFDLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3BCLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixDQUFDO3dCQUN4QixJQUFJLEVBQUUsbUJBQW1CO3dCQUN6QixPQUFPLEVBQUUsK0JBQStCLFFBQVEsSUFBSTt3QkFDcEQsS0FBSyxFQUFFLFFBQVE7cUJBQ2hCLENBQUMsQ0FBQztZQUNULENBQUM7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqRixPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztRQUN0QyxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLE9BQU8sRUFBRSxrQ0FBa0MsaUJBQWlCLGVBQWUsUUFBUSxJQUFJO1FBQ3ZGLEtBQUssRUFBRSxRQUFRO0tBQ2hCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUwsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixPQUE0QixFQUNnQixFQUFFO0lBQzlDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLElBQUkscUJBQXFCLENBQUM7Z0JBQ3hCLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLE9BQU8sRUFBRSwyQ0FBMkMsS0FBSyxDQUFDLFFBQVEsSUFBSTtnQkFDdEUsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRO2FBQ3RCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixPQUE0QixFQUNnQixFQUFFO0lBQzlDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbEUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixJQUFJLHFCQUFxQixDQUFDO2dCQUN4QixJQUFJLEVBQUUsZUFBZTtnQkFDckIsT0FBTyxFQUFFLDZDQUE2QyxLQUFLLENBQUMsUUFBUSxJQUFJO2dCQUN4RSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLENBQzVCLE9BQTRCLEVBQ2dCLEVBQUU7SUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUMvQixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEYsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixJQUFJLHFCQUFxQixDQUFDO2dCQUN4QixJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixPQUFPLEVBQUUsc0NBQXNDLEtBQUssQ0FBQyxRQUFRLElBQUk7Z0JBQ2pFLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTthQUN0QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYscUZBQXFGO0FBQ3JGLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRXhFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxPQUE0QixFQUFFLEVBQUUsQ0FDM0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7SUFDNUMsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEtBQUssRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3hELElBQ0UsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQztZQUM1RSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUM1QyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQztZQUMvRCxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNsRCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixDQUFDO2dCQUN0QyxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixPQUFPLEVBQUUsa0VBQWtFLEtBQUssQ0FBQyxRQUFRLElBQUk7Z0JBQzdGLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFDRSxRQUFRLEtBQUssU0FBUztnQkFDdEIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEtBQUssRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUMxRCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztvQkFDdEMsSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsT0FBTyxFQUFFLG9EQUFvRCxLQUFLLENBQUMsUUFBUSxJQUFJO29CQUMvRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7aUJBQ3RCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUwsTUFBTSxhQUFhLEdBQUcsQ0FBQyxZQUF3QixFQUFFLE9BQTRCLEVBQUUsRUFBRSxDQUMvRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUMxQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxPQUFPO1lBQUUsU0FBUztRQUN2RSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25ELE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDckIsT0FBTyxFQUFFLG1DQUFtQyxxQkFBcUIsNEJBQTRCLEtBQUssQ0FBQyxRQUFRLElBQUk7YUFDaEgsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQy9CLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2xFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FDVixJQUFJLHFCQUFxQixDQUFDO2dCQUN4QixJQUFJLEVBQUUsZUFBZTtnQkFDckIsT0FBTyxFQUFFLHNDQUFzQyxLQUFLLENBQUMsUUFBUSxJQUFJO2dCQUNqRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEIsQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixDQUFDO2dCQUN0QyxJQUFJLEVBQUUsZUFBZTtnQkFDckIsT0FBTyxFQUFFLDJEQUEyRCxLQUFLLENBQUMsUUFBUSxJQUFJO2dCQUN0RixLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsMkVBQTJFO0lBQzNFLDJFQUEyRTtJQUMzRSw2RUFBNkU7SUFDN0UsSUFBSSxjQUFjLEdBQUcsU0FBUyxDQUFDO0lBQy9CLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBK0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4RixNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0IsT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksRUFBRSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztvQkFDdEMsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLE9BQU8sRUFBRSxnRUFBZ0U7b0JBQ3pFLEtBQUssRUFBRSxJQUFJO2lCQUNaLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLEtBQUssU0FBUztnQkFBRSxNQUFNO1lBQzlCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEtBQUssR0FBRztnQkFBRSxTQUFTO1lBQzFDLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzFCLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBQzt3QkFDdEMsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLE9BQU8sRUFBRSxzQ0FBc0MsSUFBSSxJQUFJO3dCQUN2RCxLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2YsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQixTQUFTO1lBQ1gsQ0FBQztZQUNELHlFQUF5RTtZQUN6RSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUFFLE1BQU07WUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxNQUFNLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFTCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLE9BQTRCLEVBQ2dCLEVBQUU7SUFDOUMsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixJQUFJLHFCQUFxQixDQUFDO2dCQUN4QixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixPQUFPLEVBQUUscURBQXFELEtBQUssQ0FBQyxpQkFBaUIsTUFBTSxLQUFLLENBQUMsUUFBUSxJQUFJO2dCQUM3RyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUN0QixPQUE0QixFQUM1QixNQUF3QyxFQUNJLEVBQUUsQ0FDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVTtJQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLHFCQUFxQixDQUFDO1FBQ3hCLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsT0FBTyxFQUFFLG9CQUFvQixPQUFPLENBQUMsTUFBTSwyQ0FBMkMsTUFBTSxDQUFDLFVBQVUsR0FBRztLQUMzRyxDQUFDLENBQ0g7SUFDSCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztBQUVsQixNQUFNLHFCQUFxQixHQUFHLENBQzVCLE9BQTRCLEVBQzVCLE1BQXdDLEVBQ0ksRUFBRTtJQUM5QyxJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUUxQixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUM1QyxJQUFJLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3BELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsSUFBSSxxQkFBcUIsQ0FBQztnQkFDeEIsSUFBSSxFQUFFLDhCQUE4QjtnQkFDcEMsT0FBTyxFQUFFLHFEQUFxRCxNQUFNLENBQUMsb0JBQW9CLFNBQVM7Z0JBQ2xHLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTthQUN0QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsT0FBNEIsRUFDNUIsTUFBd0MsRUFDSSxFQUFFO0lBQzlDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksS0FBSyxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLElBQUkscUJBQXFCLENBQUM7b0JBQ3hCLElBQUksRUFBRSw0QkFBNEI7b0JBQ2xDLE9BQU8sRUFBRSxrQkFBa0IsS0FBSyxDQUFDLFFBQVEsc0NBQXNDO29CQUMvRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7aUJBQ3RCLENBQUMsQ0FDSCxDQUFDO1lBQ0osQ0FBQztZQUNELFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDNUQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixJQUFJLHFCQUFxQixDQUFDO2dCQUN4QixJQUFJLEVBQUUsNEJBQTRCO2dCQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEtBQUssQ0FBQyxRQUFRLHVDQUF1QyxNQUFNLENBQUMsbUJBQW1CLEdBQUc7Z0JBQzdHLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTthQUN0QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUU3RDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUN6QyxPQUE0QixFQUNnQixFQUFFO0lBQzlDLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckQsSUFDRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0QsUUFBUSxLQUFLLE1BQU07WUFDbkIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFDNUIsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDaEIsSUFBSSxxQkFBcUIsQ0FBQztnQkFDeEIsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsT0FBTyxFQUFFLHdDQUF3QyxLQUFLLENBQUMsUUFBUSxJQUFJO2dCQUNuRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsWUFBd0IsRUFDeEIsTUFBK0IsRUFDNEIsRUFBRSxDQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNsQixNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDdkQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFOUQsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsS0FBSyxDQUFDLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvQyxLQUFLLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDckQsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3JELEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFNUMsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDLENBQUMifQ==
@@ -1,6 +1,7 @@
1
1
  import * as Data from "effect/Data";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Schema from "effect/Schema";
4
+ import * as Predicate from "effect/Predicate";
4
5
  import { HookManifestSchema, requiredHookRuntimeFiles, } from "@agentxm/extension-model/unstable/hooks/manifest-schema";
5
6
  import { parseFrontmatterEffect } from "../content/frontmatter.js";
6
7
  import { inspectKnowledgeEntries } from "../knowledge/okf.js";
@@ -8,9 +9,7 @@ import { readSubagentPackage } from "../content/subagent-content.js";
8
9
  /** A type-specific package invariant failed against the filtered archive. */
9
10
  export class FilteredPackageError extends Data.TaggedError("FilteredPackageError") {
10
11
  }
11
- const rawField = (raw, field) => typeof raw === "object" && raw !== null && !Array.isArray(raw)
12
- ? Reflect.get(raw, field)
13
- : undefined;
12
+ const rawField = (raw, field) => Predicate.isObject(raw) ? Reflect.get(raw, field) : undefined;
14
13
  const requireEntry = (entries, path) => {
15
14
  const found = entries.find((entry) => entry.fileName === path);
16
15
  return found === undefined
@@ -107,4 +106,4 @@ export const validateFilteredPackage = (args) => Effect.gen(function* () {
107
106
  return;
108
107
  }
109
108
  });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyZWQtcGFja2FnZS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhY2thZ2luZy9maWx0ZXJlZC1wYWNrYWdlLXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix3QkFBd0IsR0FDekIsTUFBTSx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQTZCLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJckUsNkVBQTZFO0FBQzdFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUkvRTtDQUFHO0FBV0wsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFZLEVBQUUsS0FBYSxFQUFXLEVBQUUsQ0FDeEQsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUM1RCxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFFaEIsTUFBTSxZQUFZLEdBQUcsQ0FDbkIsT0FBZ0MsRUFDaEMsSUFBWSxFQUNtQyxFQUFFO0lBQ2pELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUss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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyZWQtcGFja2FnZS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhY2thZ2luZy9maWx0ZXJlZC1wYWNrYWdlLXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHdCQUF3QixHQUN6QixNQUFNLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRW5FLE9BQU8sRUFBRSx1QkFBdUIsRUFBNkIsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlyRSw2RUFBNkU7QUFDN0UsTUFBTSxPQUFPLG9CQUFxQixTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBSS9FO0NBQUc7QUFXTCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVksRUFBRSxLQUFhLEVBQVcsRUFBRSxDQUN4RCxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBRWhFLE1BQU0sWUFBWSxHQUFHLENBQ25CLE9BQWdDLEVBQ2hDLElBQVksRUFDbUMsRUFBRTtJQUNqRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFD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
@@ -8,13 +8,17 @@ import { ManifestError, type ExtensionManifest, type ManifestIdentity } from "./
8
8
  interface ReadManifestOptions {
9
9
  readonly defaultOwner?: Handle;
10
10
  }
11
- interface ReadManifestResult {
11
+ /** The manifest a package of `T` declares. */
12
+ type ManifestOfType<T extends ExtensionType> = Extract<ExtensionManifest, {
13
+ readonly type: T;
14
+ }>;
15
+ interface ReadManifestResult<T extends ExtensionType> {
12
16
  readonly path: string;
13
17
  readonly fileName: string;
14
18
  readonly raw: unknown;
15
- readonly manifest: ExtensionManifest;
19
+ readonly manifest: ManifestOfType<T>;
16
20
  readonly identity: ManifestIdentity;
17
21
  }
18
- export declare const readExtensionManifest: (directory: string, type: ExtensionType, options?: ReadManifestOptions) => Effect.Effect<ReadManifestResult, ManifestError, FileSystem.FileSystem | Path.Path>;
22
+ export declare const readExtensionManifest: <T extends ExtensionType>(directory: string, type: T, options?: ReadManifestOptions) => Effect.Effect<ReadManifestResult<T>, ManifestError, FileSystem.FileSystem | Path.Path>;
19
23
  export {};
20
24
  //# sourceMappingURL=manifest-file.d.ts.map
@@ -4,12 +4,11 @@ import * as FileSystem from "effect/FileSystem";
4
4
  import * as Path from "effect/Path";
5
5
  import * as Schema from "effect/Schema";
6
6
  import * as SchemaIssue from "effect/SchemaIssue";
7
- import { ManifestError, ManifestIdentitySchema, manifestFilenameForType, manifestSchemaForType, } from "./manifest-policy.js";
8
- const withDefaultOwner = (raw, defaultOwner) => defaultOwner !== undefined &&
9
- typeof raw === "object" &&
10
- raw !== null &&
11
- !Array.isArray(raw) &&
12
- !Object.hasOwn(raw, "owner")
7
+ import * as Predicate from "effect/Predicate";
8
+ import { ManifestError, ManifestIdentitySchema, manifestSchemaForType, } from "./manifest-policy.js";
9
+ import { manifestFilenameForType } from "@agentxm/extension-model/unstable/extensions/common";
10
+ const isManifestOfType = (manifest, type) => manifest.type === type;
11
+ const withDefaultOwner = (raw, defaultOwner) => defaultOwner !== undefined && Predicate.isObject(raw) && !Object.hasOwn(raw, "owner")
13
12
  ? { ...raw, owner: defaultOwner }
14
13
  : raw;
15
14
  export const readExtensionManifest = (directory, type, options) => Effect.gen(function* () {
@@ -39,22 +38,22 @@ export const readExtensionManifest = (directory, type, options) => Effect.gen(fu
39
38
  cause,
40
39
  })));
41
40
  const raw = withDefaultOwner(parsed, options?.defaultOwner);
42
- const manifest = yield* Schema.decodeUnknownEffect(manifestSchemaForType(type))(raw, type === "hook" ? { onExcessProperty: "error" } : undefined).pipe(Effect.mapError((cause) => new ManifestError({
41
+ const decoded = yield* Schema.decodeUnknownEffect(manifestSchemaForType(type))(raw, type === "hook" ? { onExcessProperty: "error" } : undefined).pipe(Effect.mapError((cause) => new ManifestError({
43
42
  code: "manifest_schema_invalid",
44
43
  detail: `Manifest file "${fileName}" does not conform to the ${type} manifest schema.`,
45
44
  details: SchemaIssue.makeFormatterDefault()(cause.issue),
46
45
  })));
47
- const identity = yield* Schema.decodeUnknownEffect(ManifestIdentitySchema)(manifest).pipe(Effect.mapError((cause) => new ManifestError({
46
+ const identity = yield* Schema.decodeUnknownEffect(ManifestIdentitySchema)(decoded).pipe(Effect.mapError((cause) => new ManifestError({
48
47
  code: "manifest_schema_invalid",
49
48
  detail: `Manifest file "${fileName}" is missing required identity fields.`,
50
49
  details: SchemaIssue.makeFormatterDefault()(cause.issue),
51
50
  })));
52
- if (identity.type !== type) {
51
+ if (!isManifestOfType(decoded, type)) {
53
52
  return yield* new ManifestError({
54
53
  code: "manifest_schema_invalid",
55
54
  detail: `Manifest declared type "${identity.type}" disagrees with ${fileName}.`,
56
55
  });
57
56
  }
58
- return { path: manifestPath, fileName, raw, manifest, identity };
57
+ return { path: manifestPath, fileName, raw, manifest: decoded, identity };
59
58
  });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWNrYWdpbmcvbWFuaWZlc3QtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzRUFBc0U7QUFFdEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssV0FBVyxNQUFNLG9CQUFvQixDQUFDO0FBSWxELE9BQU8sRUFDTCxhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixxQkFBcUIsR0FHdEIsTUFBTSxzQkFBc0IsQ0FBQztBQWM5QixNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBWSxFQUFFLFlBQWdDLEVBQVcsRUFBRSxDQUNuRixZQUFZLEtBQUssU0FBUztJQUMxQixPQUFPLEdBQUcsS0FBSyxRQUFRO0lBQ3ZCLEdBQUcsS0FBSyxJQUFJO0lBQ1osQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNuQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztJQUMxQixDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ2pDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFFVixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxTQUFpQixFQUNqQixJQUFtQixFQUNuQixPQUE2QixFQUN3RCxFQUFFLENBQ3ZGLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDeEMsTUFBTSxJQUFJLEdBQUcsS0FB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
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWNrYWdpbmcvbWFuaWZlc3QtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzRUFBc0U7QUFFdEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssV0FBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFJOUMsT0FBTyxFQUNMLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIscUJBQXFCLEdBR3RCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFpQjlGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDdkIsUUFBMkIsRUFDM0IsSUFBTyxFQUN3QixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7QUFFM0QsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEdBQVksRUFBRSxZQUFnQyxFQUFXLEVBQUUsQ0FDbkYsWUFBWSxLQUFLLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO0lBQ25GLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7SUFDakMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUVWLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQ25DLFNBQWlCLEVBQ2pCLElBQU8sRUFDUCxPQUE2QixFQUMyRCxFQUFFLENBQzFGLE1B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
@@ -15,18 +15,6 @@ export declare class ManifestError extends ManifestError_base<{
15
15
  readonly cause?: unknown;
16
16
  }> {
17
17
  }
18
- export declare const MANIFEST_FILENAME_BY_TYPE: {
19
- readonly skill: "skill.json";
20
- readonly "mcp-server": "mcp.json";
21
- readonly subagent: "subagent.json";
22
- readonly pack: "pack.json";
23
- readonly rule: "rule.json";
24
- readonly hook: "hook.json";
25
- readonly knowledge: "knowledge.json";
26
- };
27
- export declare const MANIFEST_FILENAMES: ReadonlySet<string>;
28
- export declare const extensionTypeForManifestFilename: (fileName: string) => ExtensionType | undefined;
29
- export declare const manifestFilenameForType: (type: ExtensionType) => string;
30
18
  export declare const ManifestIdentitySchema: Schema.Struct<{
31
19
  readonly owner: Schema.brand<Schema.String, "Handle">;
32
20
  readonly type: Schema.Literals<readonly ("subagent" | "skill" | "mcp-server" | "rule" | "hook" | "knowledge" | "pack")[]>;