@blamejs/exceptd-skills 0.14.10 → 0.14.12

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.
@@ -86,7 +86,7 @@ async function main() {
86
86
  await runDispatch();
87
87
  break;
88
88
  case 'skill':
89
- runSkillContext(args[0]);
89
+ runSkillContext(args);
90
90
  break;
91
91
  case 'pipeline':
92
92
  runPipeline(args[0] || 'manual', args[1] ? JSON.parse(args[1]) : {});
@@ -141,11 +141,23 @@ function runFrameworkGap(rawArgs) {
141
141
  const jsonOut = flags.has('--json');
142
142
 
143
143
  if (args.length < 2) {
144
- console.error(`Usage: exceptd framework-gap <FRAMEWORK_ID|all> <SCENARIO|CVE-ID> [--json]
144
+ const usage = `Usage: exceptd framework-gap <FRAMEWORK_ID|all> <SCENARIO|CVE-ID> [--json]
145
145
  Examples:
146
146
  exceptd framework-gap NIST-800-53 CVE-2026-31431
147
147
  exceptd framework-gap PCI-DSS-4.0 "prompt injection"
148
- exceptd framework-gap all CVE-2025-53773 --json`);
148
+ exceptd framework-gap all CVE-2025-53773 --json`;
149
+ // Honor --json on the missing-arg path: a JSON consumer must get a
150
+ // structured ok:false envelope, not plain usage text on stderr.
151
+ if (jsonOut) {
152
+ process.stdout.write(JSON.stringify({
153
+ ok: false,
154
+ verb: 'framework-gap',
155
+ error: 'framework-gap requires <FRAMEWORK_ID|all> and <SCENARIO|CVE-ID>',
156
+ usage,
157
+ }) + '\n');
158
+ } else {
159
+ console.error(usage);
160
+ }
149
161
  // v0.13 exit-code class fix: usage error is GENERIC_FAILURE (1),
150
162
  // not DETECTED_ESCALATE (2). Pre-v0.13 the orchestrator emitted
151
163
  // exit 2 for usage errors, colliding with CI gates that branch on
@@ -207,7 +219,8 @@ Examples:
207
219
  }
208
220
  const scenario = args[1];
209
221
 
210
- const report = gapReport(requested, scenario, controlGaps, cveCatalog);
222
+ const allFrameworks = args[0].toLowerCase() === 'all';
223
+ const report = gapReport(requested, scenario, controlGaps, cveCatalog, { allFrameworks });
211
224
  const theater = theaterCheck(controlGaps, cveCatalog);
212
225
 
213
226
  if (jsonOut) {
@@ -233,7 +246,8 @@ Examples:
233
246
  if (report.universal_gaps.length > 0) {
234
247
  console.log(`### Universal gaps (no jurisdiction covers these) — ${report.universal_gaps.length}`);
235
248
  for (const g of report.universal_gaps) {
236
- console.log(` - ${g.id || g.name}: ${(g.real_requirement || '').slice(0, 140)}`);
249
+ const req = g.real_requirement || '';
250
+ console.log(` - ${g.id || g.name}: ${req.length > 140 ? req.slice(0, 140) + '…' : req}`);
237
251
  }
238
252
  console.log();
239
253
  }
@@ -256,12 +270,15 @@ async function runScan() {
256
270
  // other verbs (validate-cves, watchlist, etc.). Previously this was a
257
271
  // bare `process.argv.includes('--json')`, which differed in style from
258
272
  // the verbs below and could miss `--json=true` or similar future forms.
273
+ if (rejectUnknownFlags('scan', args, ['--json'])) return;
259
274
  const { flags } = parseFlags(process.argv.slice(2), []);
260
275
  const jsonOut = flags.has('--json');
261
276
  if (!jsonOut) console.log('[orchestrator] Scanning environment...\n');
262
277
  const result = await scan();
263
278
  if (jsonOut) {
264
- process.stdout.write(JSON.stringify(result) + '\n');
279
+ // Top-level ok:true so a single JSON consumer can branch on the same
280
+ // envelope the ok:false error paths emit.
281
+ process.stdout.write(JSON.stringify({ ok: true, ...result }) + '\n');
265
282
  return result;
266
283
  }
267
284
 
@@ -291,13 +308,14 @@ async function runScan() {
291
308
  }
292
309
 
293
310
  async function runDispatch() {
311
+ if (rejectUnknownFlags('dispatch', args, ['--json'])) return;
294
312
  const jsonOut = process.argv.includes('--json');
295
313
  if (!jsonOut) console.log('[orchestrator] Scanning then dispatching...\n');
296
314
  const scanResult = await scan();
297
315
  const plan = dispatch(scanResult.findings);
298
316
 
299
317
  if (jsonOut) {
300
- process.stdout.write(JSON.stringify({ scan: scanResult, dispatch: plan }) + '\n');
318
+ process.stdout.write(JSON.stringify({ ok: true, scan: scanResult, dispatch: plan }) + '\n');
301
319
  return plan;
302
320
  }
303
321
 
@@ -332,10 +350,28 @@ async function runDispatch() {
332
350
  return plan;
333
351
  }
334
352
 
335
- function runSkillContext(skillName) {
353
+ function runSkillContext(rawArgs) {
354
+ // `rawArgs` is the full arg list. Filter --flags out of the positional set
355
+ // before treating the first positional as the skill name — pre-fix
356
+ // `skill --json` passed "--json" through as args[0] and reported
357
+ // "Skill not found: --json".
358
+ const argList = Array.isArray(rawArgs) ? rawArgs : (rawArgs == null ? [] : [rawArgs]);
359
+ const jsonOut = argList.includes('--json');
360
+ const positionals = argList.filter(a => typeof a === 'string' && !a.startsWith('--'));
361
+ const skillName = positionals[0];
362
+
336
363
  if (!skillName) {
337
- console.error('Usage: exceptd skill <skill-name>');
338
- console.error(' (Lists available skills: exceptd brief --all)');
364
+ if (jsonOut) {
365
+ process.stdout.write(JSON.stringify({
366
+ ok: false,
367
+ verb: 'skill',
368
+ error: 'usage: exceptd skill <skill-name>',
369
+ hint: 'List available skills: exceptd brief --all',
370
+ }) + '\n');
371
+ } else {
372
+ console.error('Usage: exceptd skill <skill-name>');
373
+ console.error(' (Lists available skills: exceptd brief --all)');
374
+ }
339
375
  safeExit(EXIT_CODES.GENERIC_FAILURE);
340
376
  return;
341
377
  }
@@ -379,12 +415,13 @@ function runPipeline(triggerType, payload) {
379
415
  }
380
416
 
381
417
  function runCurrency() {
418
+ if (rejectUnknownFlags('currency', args, ['--json'])) return;
382
419
  const jsonOut = process.argv.includes('--json');
383
420
  const result = runCurrencyNow();
384
421
  const { currency_report, action_required, critical_count } = currencyCheck();
385
422
 
386
423
  if (jsonOut) {
387
- process.stdout.write(JSON.stringify({ currency_report, action_required, critical_count, generated_at: new Date().toISOString() }) + '\n');
424
+ process.stdout.write(JSON.stringify({ ok: true, currency_report, action_required, critical_count, generated_at: new Date().toISOString() }) + '\n');
388
425
  return;
389
426
  }
390
427
 
@@ -472,7 +509,10 @@ async function runReport(format) {
472
509
  return;
473
510
  }
474
511
 
475
- console.log(`[orchestrator] Generating ${format} report...\n`);
512
+ // Progress line goes to stderr so `report executive > out.md` produces
513
+ // clean markdown on stdout — the first stdout line must be the report
514
+ // header, not this progress notice.
515
+ console.error(`[orchestrator] Generating ${format} report...\n`);
476
516
  const scanResult = await scan();
477
517
  const plan = dispatch(scanResult.findings);
478
518
  const { currency_report } = currencyCheck();
@@ -707,12 +747,52 @@ async function runWatch() {
707
747
  console.log('Press Ctrl+C to stop. (SIGTERM / SIGHUP / SIGBREAK also honored.)\n');
708
748
  }
709
749
 
750
+ // Known flags accepted by validate-cves. An unknown flag (typo) must be
751
+ // rejected before any network work — a swallowed `--ofline` previously fell
752
+ // through to the default live-network path and the verb hung fetching the
753
+ // whole catalog from NVD until killed.
754
+ const VALIDATE_CVES_KNOWN_FLAGS = Object.freeze([
755
+ '--offline', '--no-fail', '--from-cache', '--concurrency', '--since', '--air-gap',
756
+ ]);
757
+ // Known flags accepted by validate-rfcs (same hang-on-typo class as
758
+ // validate-cves). `--live` is the explicit opt-in to the default network
759
+ // path; `--air-gap` forces the offline view with no egress.
760
+ const VALIDATE_RFCS_KNOWN_FLAGS = Object.freeze([
761
+ '--offline', '--no-fail', '--from-cache', '--since', '--live', '--air-gap',
762
+ ]);
763
+
764
+ // Reject unknown --flags against a per-verb allowlist BEFORE any network work.
765
+ // Returns true when a rejection was emitted (caller should return); false when
766
+ // every flag is recognized. The base flag (text before any `=`) is what gets
767
+ // matched so `--from-cache=path` and `--since=2026-01-01` are accepted.
768
+ function rejectUnknownFlags(verb, rawArgs, knownFlags) {
769
+ const known = new Set(knownFlags);
770
+ const unknown = rawArgs
771
+ .filter(a => typeof a === 'string' && a.startsWith('--'))
772
+ .map(a => { const eq = a.indexOf('='); return eq === -1 ? a : a.slice(0, eq); })
773
+ .filter(base => !known.has(base));
774
+ if (unknown.length === 0) return false;
775
+ // Dedupe while preserving order.
776
+ const uniq = [...new Set(unknown)];
777
+ process.stdout.write(JSON.stringify({
778
+ ok: false,
779
+ verb,
780
+ error: `${verb}: unknown flag(s): ${uniq.join(', ')}`,
781
+ unknown_flags: uniq,
782
+ known_flags: knownFlags,
783
+ }) + '\n');
784
+ safeExit(EXIT_CODES.GENERIC_FAILURE);
785
+ return true;
786
+ }
787
+
710
788
  async function runValidateCves(rawArgs = []) {
711
789
  const fs = require('fs');
712
790
  const path = require('path');
713
791
 
792
+ if (rejectUnknownFlags('validate-cves', rawArgs, VALIDATE_CVES_KNOWN_FLAGS)) return;
793
+
714
794
  const flags = new Set(rawArgs.filter(a => a.startsWith('--')));
715
- const offline = flags.has('--offline');
795
+ const offline = flags.has('--offline') || flags.has('--air-gap');
716
796
  const noFail = flags.has('--no-fail');
717
797
  // --from-cache: prefer cached upstream snapshots before falling back to live
718
798
  // network. Accepts an optional path; defaults to .cache/upstream when bare.
@@ -958,8 +1038,10 @@ async function runValidateRfcs(rawArgs = []) {
958
1038
  const fs = require('fs');
959
1039
  const path = require('path');
960
1040
 
1041
+ if (rejectUnknownFlags('validate-rfcs', rawArgs, VALIDATE_RFCS_KNOWN_FLAGS)) return;
1042
+
961
1043
  const flags = new Set(rawArgs.filter(a => a.startsWith('--')));
962
- const offline = flags.has('--offline');
1044
+ const offline = flags.has('--offline') || flags.has('--air-gap');
963
1045
  const noFail = flags.has('--no-fail');
964
1046
  let cacheDir = null;
965
1047
  for (let i = 0; i < rawArgs.length; i++) {
@@ -1131,11 +1213,21 @@ async function runValidateRfcs(rawArgs = []) {
1131
1213
  * that should trigger a skill update. This command surfaces the union so
1132
1214
  * maintainers can see the full horizon at a glance.
1133
1215
  */
1216
+ // Every flag any watchlist mode (default aggregator, --alerts, --org-scan)
1217
+ // accepts. The unknown-flag guard runs once at the top of runWatchlist so a
1218
+ // typo is rejected regardless of which sub-mode it would have reached.
1219
+ const WATCHLIST_KNOWN_FLAGS = Object.freeze([
1220
+ '--json', '--by-skill', '--alerts', '--org-scan',
1221
+ '--org', '--pattern', '--output-format', '--air-gap',
1222
+ ]);
1223
+
1134
1224
  function runWatchlist(rawArgs = []) {
1135
1225
  const fs = require('fs');
1136
1226
  const path = require('path');
1137
1227
  const { parseFrontmatter, extractFrontmatterBlock } = require('../lib/lint-skills.js');
1138
1228
 
1229
+ if (rejectUnknownFlags('watchlist', rawArgs, WATCHLIST_KNOWN_FLAGS)) return;
1230
+
1139
1231
  const byskill = rawArgs.includes('--by-skill');
1140
1232
  const alertsMode = rawArgs.includes('--alerts');
1141
1233
  const orgScanMode = rawArgs.includes('--org-scan');
@@ -1705,6 +1797,21 @@ async function runWatchlistOrgScan(rawArgs = []) {
1705
1797
  safeExit(EXIT_CODES.GENERIC_FAILURE);
1706
1798
  return;
1707
1799
  }
1800
+ // Air-gap guard. The org-scan reaches api.github.com on every pattern
1801
+ // query; under air-gap there is no offline substitute, so refuse before
1802
+ // any fetch rather than silently attempting egress. Mirrors the
1803
+ // source-ghsa air-gap refusal shape (ok:false + source + explicit error).
1804
+ if (process.env.EXCEPTD_AIR_GAP === '1' || rawArgs.includes('--air-gap')) {
1805
+ process.stdout.write(JSON.stringify({
1806
+ ok: false,
1807
+ source: 'air-gap',
1808
+ verb: 'watchlist',
1809
+ mode: 'org-scan',
1810
+ error: 'air-gap: watchlist --org-scan requires network egress to api.github.com; refused.',
1811
+ }) + '\n');
1812
+ safeExit(EXIT_CODES.BLOCKED);
1813
+ return;
1814
+ }
1708
1815
  // Custom patterns via --pattern <s> (repeatable). Default set from
1709
1816
  // the MAL-2026-SHAI-HULUD-OSS catalog entry + NEW-CTRL-052 evidence.
1710
1817
  const customPatterns = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blamejs/exceptd-skills",
3
- "version": "0.14.10",
3
+ "version": "0.14.12",
4
4
  "description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 11 catalogs (406 CVEs / 171 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 8888 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
5
5
  "keywords": [
6
6
  "ai-security",
package/sbom.cdx.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "bomFormat": "CycloneDX",
3
3
  "specVersion": "1.6",
4
- "serialNumber": "urn:uuid:8fb68e61-0c23-484d-ae4f-4602b074d0f5",
4
+ "serialNumber": "urn:uuid:3c3dcfa9-3a0d-41e3-ba8b-fc9074eb6c91",
5
5
  "version": 1,
6
6
  "metadata": {
7
- "timestamp": "2102-05-29T07:38:09.000Z",
7
+ "timestamp": "2058-01-10T17:30:17.000Z",
8
8
  "tools": [
9
9
  {
10
10
  "vendor": "blamejs",
11
11
  "name": "scripts/refresh-sbom.js",
12
- "version": "0.14.10"
12
+ "version": "0.14.12"
13
13
  }
14
14
  ],
15
15
  "component": {
16
- "bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.14.10",
16
+ "bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.14.12",
17
17
  "type": "application",
18
18
  "name": "@blamejs/exceptd-skills",
19
- "version": "0.14.10",
19
+ "version": "0.14.12",
20
20
  "description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 11 catalogs (406 CVEs / 171 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 8888 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
21
21
  "licenses": [
22
22
  {
@@ -25,17 +25,17 @@
25
25
  }
26
26
  }
27
27
  ],
28
- "purl": "pkg:npm/%40blamejs/exceptd-skills@0.14.10",
28
+ "purl": "pkg:npm/%40blamejs/exceptd-skills@0.14.12",
29
29
  "hashes": [
30
30
  {
31
31
  "alg": "SHA-256",
32
- "content": "dd31abe0df4f5c62f434ae6f9f797cd0175bce8e4efc586ce32e7f5358417308"
32
+ "content": "0c93edb6886bb6d399d389a24226d4baa22f7779ae3996d4d7fbcf0a6e5114d6"
33
33
  }
34
34
  ],
35
35
  "externalReferences": [
36
36
  {
37
37
  "type": "distribution",
38
- "url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.14.10"
38
+ "url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.14.12"
39
39
  },
40
40
  {
41
41
  "type": "vcs",
@@ -116,11 +116,11 @@
116
116
  "hashes": [
117
117
  {
118
118
  "alg": "SHA-256",
119
- "content": "4ef9374f1d742ecdb9f226345ec01a50303e2e57a595481283a79026f99fecfb"
119
+ "content": "ddd5c86511d4ea2e2fa500a67bd5cb5e1111e1fb678d6715500f3ab8729ca2e1"
120
120
  },
121
121
  {
122
122
  "alg": "SHA3-512",
123
- "content": "5f1e8ffbfa99c068814fff268481e8b3b46947d1acc6857895d257ea1cea53e901146cd2d188d92dfe53e012e8f4651d73d72b9521c4d73ec003262ff73f908e"
123
+ "content": "7a0dfecb42ade2ab79c7e5286c2612b644a5d044b22a9f662aaef40e9793c68d9d019ae93ba8a0f52ac9134e694b00216890bc430362561fbe5757ca31d19e0c"
124
124
  }
125
125
  ]
126
126
  },
@@ -281,11 +281,11 @@
281
281
  "hashes": [
282
282
  {
283
283
  "alg": "SHA-256",
284
- "content": "c0503adedd57bbd05c86937d0f24e9ad5294883dd259d9a04f4575f74031ca98"
284
+ "content": "3d755197adfee59c67dafc46dc19636a491e59986fa088d8b51daee75dfab19b"
285
285
  },
286
286
  {
287
287
  "alg": "SHA3-512",
288
- "content": "0e10b7c282377f39927bd314c51bc88e509fb738d4f4e08256f13c7e7be4fde69a773e138c74b121d39b12b4555aaa2ca82b7ad4c0952c77d0f88ea43d045249"
288
+ "content": "cc3309521915ada4277a09dbe9c33c13510f0508e0e710b8b9a877ebcd5a2a79c3448a08aa8d96286ade6c2dc3ef357794afdbbfb62f8d2531d4bf46e2ee7d58"
289
289
  }
290
290
  ]
291
291
  },
@@ -881,11 +881,11 @@
881
881
  "hashes": [
882
882
  {
883
883
  "alg": "SHA-256",
884
- "content": "7fc089baec25ccb5a228db85572ccd3dc5029832792edfc624c6ed2c24d8289b"
884
+ "content": "da169b55e9a96d766f63f6b1b63785f98611a56a1cc78d619ec757ce4d5204f8"
885
885
  },
886
886
  {
887
887
  "alg": "SHA3-512",
888
- "content": "2c1f27474cded1a4b063c9e261fc0c0e633d4f4478da43d5ad74f1308c1a28366cd87a0b05e096cd485f00037cc5abcb1250160622363d28c74aea3e3777b449"
888
+ "content": "74c4f21e05eb245de61c810f7094fb877601b6137ab8dc984f2e64feac4c8fb4d05cd871988b105f8894f356e87f6fc3e09ebf0733d8000f6e7c52f6b84ad1dd"
889
889
  }
890
890
  ]
891
891
  },
@@ -926,11 +926,11 @@
926
926
  "hashes": [
927
927
  {
928
928
  "alg": "SHA-256",
929
- "content": "d406014a161ca337c2914be650190d8539a5c9e159c6ed8b79cd276c64cafd14"
929
+ "content": "dc02ee2b01a753f70b8812f38d7999c3ca666d0a3e4a1255f6d0d21f7faa629c"
930
930
  },
931
931
  {
932
932
  "alg": "SHA3-512",
933
- "content": "24c1d46c3426d695f15320bb75a2a0da84f571bd898a767f3effc1819b06ad9d06a2f638e2bd838f9aabcb1aa676e1809462272736515e4c817e2793c293a546"
933
+ "content": "918ae3acdbbebc2764e6eac82229b20448300bf8d26b2d79850b9137f48e41cf98ed11b129b328cf2c433553edc31997fa2af3297848f8867217326e0a3f1dcd"
934
934
  }
935
935
  ]
936
936
  },
@@ -941,11 +941,11 @@
941
941
  "hashes": [
942
942
  {
943
943
  "alg": "SHA-256",
944
- "content": "302103324d99f623036027fc589da04c2c9f23c1c45d3e00c6f47df38a1ae236"
944
+ "content": "a06fe534a30436f45d9dfd6c48c31a0a23e69bb1af485e099780421d74fe5070"
945
945
  },
946
946
  {
947
947
  "alg": "SHA3-512",
948
- "content": "e6ebd328eb2bb79263e8ccdcefb4ed3345c269f41296d1ec0844c649e2fe8817054c72bdf3647e4a212c5321bf1248f3feac5ee9741edefa5dfdf1f532b6e365"
948
+ "content": "7013e0fb0a969d472e88d589b354c08b2455a6b20e104a13d3251fa1d75b2d79bf61eb0d625fcf4a11f6d5d5322ada3a969a8c45341a7f684a8062306f881683"
949
949
  }
950
950
  ]
951
951
  },
@@ -986,11 +986,11 @@
986
986
  "hashes": [
987
987
  {
988
988
  "alg": "SHA-256",
989
- "content": "536c55f5043145bac0221ee954052d5afd9e89cdb7984fa2357a6bdb46a2dd59"
989
+ "content": "745a5d013aa95ae317cf522c14a7121167903a2f2c402f9893d4b11bfce32aa0"
990
990
  },
991
991
  {
992
992
  "alg": "SHA3-512",
993
- "content": "ae704ef06e34bcc36c0c72a7fe54ac6ae53b2d2964ea27edac285bbf5eae07a90b795acb5a600d2b829cf7f384532b8addcad1a127741d63ab0557fdff72aa07"
993
+ "content": "a74c353e98c4e52c87c7040adfcb940462d848cc3980c72201c9f4d5cd03fb7ad0a6aa6c594985bcc689eed1e68602ee91dbcabc5e9d97a3819f9e409f7e4690"
994
994
  }
995
995
  ]
996
996
  },
@@ -1091,11 +1091,11 @@
1091
1091
  "hashes": [
1092
1092
  {
1093
1093
  "alg": "SHA-256",
1094
- "content": "465fdfd904c1fd5c63b2178d79f7fd47988d023f10178065e2726b742aa657df"
1094
+ "content": "d4827e59ab53b0c578890a9b49477efdd74dbf9bec24748346bbffc3c1d6424c"
1095
1095
  },
1096
1096
  {
1097
1097
  "alg": "SHA3-512",
1098
- "content": "f4fc95ed4cf22f078e21ca1bf767c8f53ebb096702046902edf4d4c5ea484bb7d4184cb7ab3fee1ecc5c4bfaec3564c87d3ffd8b9d798a12bf72616c32e3a942"
1098
+ "content": "7dd94b35e3b368dde731dcc749b7eb51be38847b0a18b80c59b12142726253acd8841c0a6cb077d0a8531d2082c5918b772a4b860643e208f6c1ba008324f933"
1099
1099
  }
1100
1100
  ]
1101
1101
  },
@@ -1106,11 +1106,11 @@
1106
1106
  "hashes": [
1107
1107
  {
1108
1108
  "alg": "SHA-256",
1109
- "content": "66b9b2769bcbe2a5ce10c45d3ab1d673ef6aeec2b69d708bd82001bc3833a44a"
1109
+ "content": "ee834a396114c8fb409442dc704be8abe3b39f3174dd5c54367790dd4380d8c6"
1110
1110
  },
1111
1111
  {
1112
1112
  "alg": "SHA3-512",
1113
- "content": "1682ce067416147cfc772ca1217e440e02bf90440273f0aba2c2d069913af9bb282a570f9530f3163af3e85d3a2c37f502c98ca6564b28c6fa719d7612d483c8"
1113
+ "content": "4634de496b75b163d26f652bd86b3cfd7434179b99f8b07db6029bd0eb7214ca482474c99647ae776ee8edfb1802b78a4e6cf734beef74f8c5a0d038049937ad"
1114
1114
  }
1115
1115
  ]
1116
1116
  },
@@ -1121,11 +1121,11 @@
1121
1121
  "hashes": [
1122
1122
  {
1123
1123
  "alg": "SHA-256",
1124
- "content": "b507b1a6bcb1a0d4511c72921bdb0406f37a9a602d1d0614d270aad8cbe41691"
1124
+ "content": "8154e051408a6b58f328865973c6e57666d89b8a507ebee919bb78ed68310885"
1125
1125
  },
1126
1126
  {
1127
1127
  "alg": "SHA3-512",
1128
- "content": "bd26426ef94c0eecd346ebea1e2bb78aae0ffa01a54831b61034656b68f3896c2ae89406deee0faf16bc86088ba284e1b6944c1aab5906050dc0657c8d684728"
1128
+ "content": "0cd887333d4f82b2a7cb6bd71753b9db64b1776b84a2b490bf0b66e262d52f667e29ae603afb14a291f0bd39905469775a6143b495493cd01518caf59196bef2"
1129
1129
  }
1130
1130
  ]
1131
1131
  },
@@ -1151,11 +1151,11 @@
1151
1151
  "hashes": [
1152
1152
  {
1153
1153
  "alg": "SHA-256",
1154
- "content": "bacd5bb4d26af7a025bc0e9cc8139551618bd352927acbaeaa5855ae1ea86849"
1154
+ "content": "1a3246aab91e2c51e24007f3ffa6cafba5edf366444b190a4d3160656555713e"
1155
1155
  },
1156
1156
  {
1157
1157
  "alg": "SHA3-512",
1158
- "content": "a5c7a22d905441b487b8cdaaff5744a7f008c00b8629b513ebd059eee3e07c6fccb7ac7c62bad3055a1204a92b493db38ef5fbc033da0fe2eca52a6d4b5d6585"
1158
+ "content": "e1cf6956135578f1391ddd1e4776008af4dc11cfc431a7224599e058363ac0d7b4cc7d0ede816d144e38fedc5ebdd3bc39e46ff2e9e164b1a06f86cc496cbc83"
1159
1159
  }
1160
1160
  ]
1161
1161
  },
@@ -1241,11 +1241,11 @@
1241
1241
  "hashes": [
1242
1242
  {
1243
1243
  "alg": "SHA-256",
1244
- "content": "15e1c8b3cd698622418ae6a502f9d93fa60dbc3eb1c3ec36163283502a303058"
1244
+ "content": "2079feda6c0c5e0f44384c3944c42e182793497bb868775f1bfa0a229d2a7fe3"
1245
1245
  },
1246
1246
  {
1247
1247
  "alg": "SHA3-512",
1248
- "content": "aee44e404fc0b0d8ee061d1afda30156180c8fe8a674d7541900b3a35ab3ec1c87b1d339fac6bd43ed91a172520860501a0abe4be1a22cb5be455a2bba32e4e4"
1248
+ "content": "70ab92de7ac208d8673c833bed0b8bb0ad53bd66b7b7ae5c2beac5e5c32d0ddee3991e4b3698667b007a2122f7cdbfffcdd209310b5d082a6aeeeea19364e79c"
1249
1249
  }
1250
1250
  ]
1251
1251
  },
@@ -1316,11 +1316,11 @@
1316
1316
  "hashes": [
1317
1317
  {
1318
1318
  "alg": "SHA-256",
1319
- "content": "6a7cda7be47f08d77f5049fbf49adfe977dd5321d27fd28b2e02133cc7da76e5"
1319
+ "content": "ce4e0915fd4a758891e1799055d7f21bfeb1c283950668fe125533008c551547"
1320
1320
  },
1321
1321
  {
1322
1322
  "alg": "SHA3-512",
1323
- "content": "74cbfe39fa4d8a298d2d580cf66f7ec0b79d571eb99d8620ea9f186b2219e12cf729308812be539191d0c5213981f5a32a5cd75d844eabec9175b599e6ed4e1e"
1323
+ "content": "e81350df04396a41caaa15f810011fecb50c7efc25dbd3b48133337295948d9c8e5839e9d744891e330b607e9c776710daea7ed1a7b04ff66b9b7b4330f5a15e"
1324
1324
  }
1325
1325
  ]
1326
1326
  },
@@ -1331,11 +1331,11 @@
1331
1331
  "hashes": [
1332
1332
  {
1333
1333
  "alg": "SHA-256",
1334
- "content": "b86a3b1e3bade9042bb5e7543eaa46adae4f62a65b81bbd5566f2d117938c522"
1334
+ "content": "fc9d13e98934b99981965e61affae0b03bffd8d8a0ee8f6fbb6cb8f33f2cadb5"
1335
1335
  },
1336
1336
  {
1337
1337
  "alg": "SHA3-512",
1338
- "content": "c8a1157d7697073d481d21fab84be92516dca924f16f01b11010597c42cefc76e4e518bd6777d0541cd5ba6a3980527bc01a14f00109feb4c79640ff99ec8d10"
1338
+ "content": "4053e54232a55090a53ff765f43bd7c389bdd8ff7d9458c123e1e297ee613f8ed007805588c3e1b6e3857db088d344077ba4d8889efb2129797708ef5f5b58f2"
1339
1339
  }
1340
1340
  ]
1341
1341
  },
@@ -1346,11 +1346,11 @@
1346
1346
  "hashes": [
1347
1347
  {
1348
1348
  "alg": "SHA-256",
1349
- "content": "19d6d3ebed46e74a44d8dd51f3b872af2a6ccc822956f7e36c68aeb8dea6a251"
1349
+ "content": "afb6aabb94f1044694ffacf224daadfd644141d40f03ba20aa8112e3649734b9"
1350
1350
  },
1351
1351
  {
1352
1352
  "alg": "SHA3-512",
1353
- "content": "4c8f2b37db734bf999d145fd29a48ae1847652a9eed14f3db14d90527eafbff27146e80fc34f40439b988ea76783572053e59c1b9b113308d84327913af2ef6c"
1353
+ "content": "d613ac08b4761b55dc1660bd99de46ca9dc3f0d8d3ec0e67b6fd5987098a9b580f42d3e88134c57773c4c969bacd64ee5f48b2bb43cb1445b94e6a5afa0f3bd9"
1354
1354
  }
1355
1355
  ]
1356
1356
  },
@@ -1361,11 +1361,11 @@
1361
1361
  "hashes": [
1362
1362
  {
1363
1363
  "alg": "SHA-256",
1364
- "content": "9383e999bcb35d9cf4ab9bd3a4f43831e8f5f95bf5ed3f368797b7a78da636de"
1364
+ "content": "87de9a8963f9dfb14228d2f67b65750d9bcd054e985bba21bacb6dd14dec0602"
1365
1365
  },
1366
1366
  {
1367
1367
  "alg": "SHA3-512",
1368
- "content": "2553921ef2076ced5a2d0a292d7c2929fdbcefd20f2e445096b7b7fbbef74e054380ed065f938ddc197e76b73310e00a344f432746b03eae8e2ddb6065388fa6"
1368
+ "content": "06a7fd1e8cb464ab88ac62e9813b8fe96a0a2e5ad4388f52ef13856a0d4a5a6fac59d9aa8967396cbf9434b96df412f0f2845340b3db88eccc0984b69a1531aa"
1369
1369
  }
1370
1370
  ]
1371
1371
  },
@@ -1376,11 +1376,11 @@
1376
1376
  "hashes": [
1377
1377
  {
1378
1378
  "alg": "SHA-256",
1379
- "content": "96ffa31aaa2239a597eaea9f789777cb33241d13cbd87a295573740912cb1e1a"
1379
+ "content": "e3a047373857e9da01b0f6558e57ae23a51fe28b6eabff4e8b7e1deb308a55d9"
1380
1380
  },
1381
1381
  {
1382
1382
  "alg": "SHA3-512",
1383
- "content": "dea608cddf51207d631dd3be0700ad313860750ce7f94ae3cd177b578999e499196f7a26ebc11be2524505901ab94efbda6a49ea78f8830fec9404e1bf75c67a"
1383
+ "content": "d5d3270cfc1f46b6b01e052c051faa83b573958f3a79338bce87938e47c14c953c3b8da5549f2b92a6cf8acca43414800581da17dde0dedbbd82c6e2479a1f4a"
1384
1384
  }
1385
1385
  ]
1386
1386
  },
@@ -1421,11 +1421,11 @@
1421
1421
  "hashes": [
1422
1422
  {
1423
1423
  "alg": "SHA-256",
1424
- "content": "5f313cc51bfd4f8a161c21e4bf238e7fb5d69f7525c8758dd468bc1bc953aa3f"
1424
+ "content": "be6b9c21024d9a52dd5c9f57c47780257784bb61568e5f7f083217e2fe982eb4"
1425
1425
  },
1426
1426
  {
1427
1427
  "alg": "SHA3-512",
1428
- "content": "605e96e806e7720b49d9090d72a800b97ebcd31cdca80adc09220b13635e9a5459f41436b3acbd81d8b4edac9661aeacf0f45a2601efd6f71a0037de0f527bd7"
1428
+ "content": "d503b8c2750f980eaf7a0305319dcec9baaead80f304fa231ee6308940feef2c64005cbcebde22996ce6423c06feb9f757e9e76cbc32a3d93905030428d16781"
1429
1429
  }
1430
1430
  ]
1431
1431
  },
@@ -1451,11 +1451,11 @@
1451
1451
  "hashes": [
1452
1452
  {
1453
1453
  "alg": "SHA-256",
1454
- "content": "73134c89b2d3e1f9df13570e9112cfb4014edf970eea5f8c7886871b8fd883ba"
1454
+ "content": "a491b2b6ca35d75f7d3d27696d6ae20d1ee22ade22c507de7bfcfd4bbc4d8a8d"
1455
1455
  },
1456
1456
  {
1457
1457
  "alg": "SHA3-512",
1458
- "content": "4d1002d4c5ea3e5e8f6252aeea7d6fb415028237612750532b642f0c8871d9f2c01ebcf093508e0926db7d274ab329f3c13a53913bcc418134e0847b3a5f7fc8"
1458
+ "content": "a47ecd510b73942d64d5e81ad455a38bb174609c02df5f531cbc4ace198721bbf4006c126dc1d2d640e9a202ca0b302e59f58c24dc97a9d30efb6099d1ef7da4"
1459
1459
  }
1460
1460
  ]
1461
1461
  },
@@ -1631,11 +1631,11 @@
1631
1631
  "hashes": [
1632
1632
  {
1633
1633
  "alg": "SHA-256",
1634
- "content": "38b2e79b228ff696298fb0df4f081ed99c3683d1dd5b52bbc43249d51bfa813c"
1634
+ "content": "32ac5e60da442fd25a7283711c0caf23a0363c1b8e8dee5ce79c80a5f26d45c8"
1635
1635
  },
1636
1636
  {
1637
1637
  "alg": "SHA3-512",
1638
- "content": "df56cd399c4e44dbc641e195f668e89c868c911c9f1e9eb2f85e8ea47e82427fb1267cee3f10701a767590e97fc7e17ac953d53f99312a6d6f08608810d44164"
1638
+ "content": "ed6d8990737340ab604f7354b54b2662979b5b59f853ea53e216e9b17ab6bf73fc807f1dda5bf904ccaa4081d6ae7698f0f2f326292c7bc01d56adc694d7cace"
1639
1639
  }
1640
1640
  ]
1641
1641
  },
@@ -1751,11 +1751,11 @@
1751
1751
  "hashes": [
1752
1752
  {
1753
1753
  "alg": "SHA-256",
1754
- "content": "4d13f4f27b890997b5da18055a4bb0eac69a60b24b33dad97616c9fea8ba50d0"
1754
+ "content": "9dfc540e93aa24c5c61de5a568ac4ed94a21c04cddea458bb647c17ee3a4ec48"
1755
1755
  },
1756
1756
  {
1757
1757
  "alg": "SHA3-512",
1758
- "content": "069ad77e2888bd780a9f1c3d3b38aaf32cf34b11727efc4d00156b6b0b90223beefdde0113848a2e30a9251dc143535d50a20d9850d37ee103c9e52c9b287c76"
1758
+ "content": "30f7961d052a1c680d5eb52afa18a85a669e69591f6dabd19da3c795a4dab4f87c786d852ec08020262c742001abec1c03a45194c9c81077f263749927e6ece6"
1759
1759
  }
1760
1760
  ]
1761
1761
  },
@@ -1811,11 +1811,11 @@
1811
1811
  "hashes": [
1812
1812
  {
1813
1813
  "alg": "SHA-256",
1814
- "content": "eab11c18ec8c198dcc77642271b1b51f1f942333eedade34ea3d0ce4e8cf65ed"
1814
+ "content": "4c9ec7d070014f0e1fac5958c1c995ca708df52b7f19c2a36c60573e7629d5b4"
1815
1815
  },
1816
1816
  {
1817
1817
  "alg": "SHA3-512",
1818
- "content": "7c9ffa98ba3bd538686d714e561f012598e792ec9a2c00503d0795c64e76e16d19f66c96c557998f66f9984999973e83b539c130a3b9f0908e07632c0dd660aa"
1818
+ "content": "f61247ab992bfa2c7ea073a1cf550b94b0a381363b88a23d3c716b154d840d3e28f1e58358ab87b7f264c81e6cd6357fe7d5d02e9f913f9748d62d5fa3b64116"
1819
1819
  }
1820
1820
  ]
1821
1821
  },