@pipeline-builder/pipeline-manager 4.5.3 → 4.5.4

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 (57) hide show
  1. package/README.md +61 -37
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +13 -7
  4. package/dist/commands/audit-stacks.d.ts +42 -1
  5. package/dist/commands/audit-stacks.d.ts.map +1 -1
  6. package/dist/commands/audit-stacks.js +104 -23
  7. package/dist/commands/audit-tokens.d.ts.map +1 -1
  8. package/dist/commands/audit-tokens.js +3 -4
  9. package/dist/commands/create-pat.d.ts.map +1 -1
  10. package/dist/commands/create-pat.js +9 -6
  11. package/dist/commands/login.d.ts +3 -2
  12. package/dist/commands/login.d.ts.map +1 -1
  13. package/dist/commands/login.js +19 -10
  14. package/dist/commands/logout.d.ts +24 -0
  15. package/dist/commands/logout.d.ts.map +1 -0
  16. package/dist/commands/logout.js +105 -0
  17. package/dist/commands/org-export.js +2 -2
  18. package/dist/commands/pipeline-remove.d.ts +26 -0
  19. package/dist/commands/pipeline-remove.d.ts.map +1 -0
  20. package/dist/commands/pipeline-remove.js +84 -0
  21. package/dist/commands/register.d.ts.map +1 -1
  22. package/dist/commands/register.js +3 -4
  23. package/dist/commands/status.d.ts +5 -2
  24. package/dist/commands/status.d.ts.map +1 -1
  25. package/dist/commands/status.js +65 -25
  26. package/dist/commands/toolchain.d.ts.map +1 -1
  27. package/dist/commands/toolchain.js +4 -3
  28. package/dist/commands/validate-templates.d.ts.map +1 -1
  29. package/dist/commands/validate-templates.js +4 -5
  30. package/dist/config/cli.constants.d.ts +8 -0
  31. package/dist/config/cli.constants.d.ts.map +1 -1
  32. package/dist/config/cli.constants.js +21 -2
  33. package/dist/types/plugin.d.ts +0 -6
  34. package/dist/types/plugin.d.ts.map +1 -1
  35. package/dist/types/plugin.js +1 -1
  36. package/dist/utils/command-utils.d.ts +13 -0
  37. package/dist/utils/command-utils.d.ts.map +1 -1
  38. package/dist/utils/command-utils.js +31 -17
  39. package/dist/utils/config-loader.d.ts +2 -1
  40. package/dist/utils/config-loader.d.ts.map +1 -1
  41. package/dist/utils/config-loader.js +14 -4
  42. package/dist/utils/credential-store.d.ts +9 -1
  43. package/dist/utils/credential-store.d.ts.map +1 -1
  44. package/dist/utils/credential-store.js +21 -2
  45. package/dist/utils/error-handler.d.ts +10 -1
  46. package/dist/utils/error-handler.d.ts.map +1 -1
  47. package/dist/utils/error-handler.js +20 -8
  48. package/dist/utils/plugin-resolver.d.ts +0 -2
  49. package/dist/utils/plugin-resolver.d.ts.map +1 -1
  50. package/dist/utils/plugin-resolver.js +3 -11
  51. package/dist/utils/response-utils.d.ts +11 -0
  52. package/dist/utils/response-utils.d.ts.map +1 -1
  53. package/dist/utils/response-utils.js +23 -1
  54. package/dist/utils/toolchain.d.ts +0 -2
  55. package/dist/utils/toolchain.d.ts.map +1 -1
  56. package/dist/utils/toolchain.js +4 -5
  57. package/package.json +4 -4
@@ -67,4 +67,26 @@ export function extractListResponse(response, itemsKey) {
67
67
  printError('Invalid response format from API');
68
68
  throw new Error('Unexpected API response format');
69
69
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtdXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZXNwb25zZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLDJFQUEyRTtBQUMzRSwrRUFBK0U7QUFDL0UsNERBQTREO0FBRTVELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFN0Q7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxRQUFpQjtJQUM5QyxJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxNQUFNLEdBQUcsR0FBRyxRQUFtQyxDQUFDO1FBQ2hELElBQUksU0FBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xGLE9BQU8sR0FBRyxDQUFDLElBQStCLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxRQUFpQixFQUFFLFNBQWlCLEVBQUUsYUFBcUI7SUFDbEcsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLDJGQUEyRjtJQUMzRixJQUFJLGFBQWEsSUFBSSxPQUFPO1FBQUUsT0FBTyxPQUF1QixDQUFDO0lBQzdELDREQUE0RDtJQUM1RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUF3QyxDQUFDO0lBQ3pFLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxhQUFhLElBQUksTUFBTTtRQUFFLE9BQU8sTUFBc0IsQ0FBQztJQUNuRyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBUUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFJLFFBQWlCLEVBQUUsUUFBZ0I7SUFDeEUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyQyx1RkFBdUY7UUFDdkYsb0ZBQW9GO1FBQ3BGLHFFQUFxRTtRQUNyRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNqRSxDQUFDO1FBRUQseUNBQXlDO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFpRCxDQUFDO1FBQ3pFLE1BQU0sS0FBSyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUF1QixDQUFDO1FBQ3JFLE1BQU0sT0FBTyxHQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFhLElBQUksS0FBSyxDQUFDO1FBRTNFLGdEQUFnRDtRQUNoRCxJQUFJLFFBQVEsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN6RCxDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDckQsQ0FBQztRQUVELFlBQVksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxVQUFVLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vLyBBUEkgcmVzcG9uc2UtZW52ZWxvcGUgcGFyc2luZy4gU3BsaXQgb3V0IG9mIG91dHB1dC11dGlscyAod2hpY2ggaXMgYWJvdXRcbi8vIHJlbmRlcmluZykg4oCUIHRoaXMgaXMgcHVyZWx5IGFib3V0IHJlYWRpbmcgdGhlIGB7IHN1Y2Nlc3MsIGRhdGEgfWAgc2hhcGVzIHRoZVxuLy8gcGxhdGZvcm0gcmV0dXJucyBhbmQgcHVsbGluZyBvdXQgc2luZ2xlIGVudGl0aWVzIC8gbGlzdHMuXG5cbmltcG9ydCB7IHByaW50RXJyb3IsIHByaW50V2FybmluZyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcblxuLyoqXG4gKiBVbndyYXAgYSBzZW5kU3VjY2VzcyBBUEkgZW52ZWxvcGU6IHsgc3VjY2Vzcywgc3RhdHVzQ29kZSwgZGF0YTogeyAuLi4gfSB9XG4gKiBSZXR1cm5zIHRoZSBpbm5lciBgZGF0YWAgb2JqZWN0LCBvciB0aGUgb3JpZ2luYWwgcmVzcG9uc2UgaWYgbm90IHdyYXBwZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBFbnZlbG9wZShyZXNwb25zZTogdW5rbm93bik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSByZXNwb25zZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoJ3N1Y2Nlc3MnIGluIG9iaiAmJiAnZGF0YScgaW4gb2JqICYmIG9iai5kYXRhICYmIHR5cGVvZiBvYmouZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBvYmouZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICByZXR1cm4ge307XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIHNpbmdsZSBlbnRpdHkgZnJvbSBhbiBBUEkgcmVzcG9uc2UsIGhhbmRsaW5nIGVudmVsb3BlIGZvcm1hdHMuXG4gKiBUcmllczogcGF5bG9hZFtlbnRpdHlLZXldLCBwYXlsb2FkIGRpcmVjdGx5IChpZiBpZGVudGlmaWVyS2V5IGV4aXN0cyksIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTaW5nbGVSZXNwb25zZTxUPihyZXNwb25zZTogdW5rbm93biwgZW50aXR5S2V5OiBzdHJpbmcsIGlkZW50aWZpZXJLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXlsb2FkID0gdW53cmFwRW52ZWxvcGUocmVzcG9uc2UpO1xuICAvLyBEaXJlY3QgZW50aXR5OiBwYXlsb2FkIGhhcyB0aGUgaWRlbnRpZmllciAoZS5nLiBwYXlsb2FkLmlkLCBwYXlsb2FkLnByb3BzLCBwYXlsb2FkLm5hbWUpXG4gIGlmIChpZGVudGlmaWVyS2V5IGluIHBheWxvYWQpIHJldHVybiBwYXlsb2FkIGFzIHVua25vd24gYXMgVDtcbiAgLy8gTmVzdGVkIHVuZGVyIGVudGl0eSBrZXk6IHBheWxvYWQucGlwZWxpbmUsIHBheWxvYWQucGx1Z2luXG4gIGNvbnN0IG5lc3RlZCA9IHBheWxvYWRbZW50aXR5S2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgaWYgKG5lc3RlZCAmJiB0eXBlb2YgbmVzdGVkID09PSAnb2JqZWN0JyAmJiBpZGVudGlmaWVyS2V5IGluIG5lc3RlZCkgcmV0dXJuIG5lc3RlZCBhcyB1bmtub3duIGFzIFQ7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaXRlbXM6IFRbXTtcbiAgdG90YWw/OiBudW1iZXI7XG4gIGhhc01vcmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXh0cmFjdCBpdGVtcyBmcm9tIGFuIEFQSSBsaXN0IHJlc3BvbnNlLCBoYW5kbGluZyBtdWx0aXBsZSByZXNwb25zZSBmb3JtYXRzLlxuICogU3VwcG9ydHM6IGB7IDxrZXk+OiBUW10gfWAsIGB7IGl0ZW1zOiBUW10gfWAsIGBUW11gLCBvciBpbnZhbGlkIGZvcm1hdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TGlzdFJlc3BvbnNlPFQ+KHJlc3BvbnNlOiB1bmtub3duLCBpdGVtc0tleTogc3RyaW5nKTogTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgcmV0dXJuIHsgaXRlbXM6IHJlc3BvbnNlLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICB9XG5cbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSB1bndyYXBFbnZlbG9wZShyZXNwb25zZSk7XG5cbiAgICAvLyBBIGB7IHN1Y2Nlc3MsIGRhdGE6IFsuLi5dIH1gIGVudmVsb3BlIHVud3JhcHMgdG8gdGhlIGJhcmUgYXJyYXkg4oCUIHJldHVybiBpdCBkaXJlY3RseVxuICAgIC8vICh0aGUgYGl0ZW1zS2V5IGluIG9iamAgLyBgJ2l0ZW1zJyBpbiBvYmpgIGNoZWNrcyBiZWxvdyBhcmUgZmFsc2UgZm9yIGFuIGFycmF5LCBzb1xuICAgIC8vIHdpdGhvdXQgdGhpcyBzdWNoIGxpc3QgZW52ZWxvcGVzIHdvdWxkIHNpbGVudGx5IHlpZWxkIHplcm8gaXRlbXMpLlxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiB7IGl0ZW1zOiBvYmogYXMgVFtdLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgcGFnaW5hdGlvbiBtZXRhZGF0YSBpZiBwcmVzZW50XG4gICAgY29uc3QgcGFnaW5hdGlvbiA9IG9iai5wYWdpbmF0aW9uIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHRvdGFsID0gKHBhZ2luYXRpb24/LnRvdGFsID8/IG9iai50b3RhbCkgYXMgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGhhc01vcmUgPSAoKHBhZ2luYXRpb24/Lmhhc01vcmUgPz8gb2JqLmhhc01vcmUpIGFzIGJvb2xlYW4pIHx8IGZhbHNlO1xuXG4gICAgLy8gVHJ5IHByaW1hcnkga2V5IChlLmcuICdwaXBlbGluZXMnLCAncGx1Z2lucycpXG4gICAgaWYgKGl0ZW1zS2V5IGluIG9iaiAmJiBBcnJheS5pc0FycmF5KG9ialtpdGVtc0tleV0pKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqW2l0ZW1zS2V5XSBhcyBUW10sIHRvdGFsLCBoYXNNb3JlIH07XG4gICAgfVxuXG4gICAgLy8gVHJ5IGdlbmVyaWMgJ2l0ZW1zJyBrZXlcbiAgICBpZiAoJ2l0ZW1zJyBpbiBvYmogJiYgQXJyYXkuaXNBcnJheShvYmouaXRlbXMpKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqLml0ZW1zIGFzIFRbXSwgdG90YWwsIGhhc01vcmUgfTtcbiAgICB9XG5cbiAgICBwcmludFdhcm5pbmcoJ1VuZXhwZWN0ZWQgcmVzcG9uc2UgZm9ybWF0LCBhdHRlbXB0aW5nIHRvIGhhbmRsZScpO1xuICAgIHJldHVybiB7IGl0ZW1zOiBbXSwgdG90YWw6IHVuZGVmaW5lZCwgaGFzTW9yZTogZmFsc2UgfTtcbiAgfVxuXG4gIHByaW50RXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gQVBJJyk7XG4gIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBBUEkgcmVzcG9uc2UgZm9ybWF0Jyk7XG59XG4iXX0=
70
+ /**
71
+ * Read one page of a `sendPaginatedNested` list (`{ data: { <key>: T[],
72
+ * pagination } }`) STRICTLY: a response without `<key>` as an array throws
73
+ * instead of reading as an empty list. For callers that diff the list against
74
+ * something else (`audit stacks`), an empty list read off the wrong key is not
75
+ * "nothing there" — it turns into a false finding for every row on the other
76
+ * side, which is exactly how reading the wrong key once went unnoticed.
77
+ */
78
+ export function extractListPage(response, itemsKey) {
79
+ const obj = unwrapEnvelope(response);
80
+ const items = obj[itemsKey];
81
+ if (!Array.isArray(items)) {
82
+ throw new Error(`Unexpected API response format: no "${itemsKey}" list in the response`);
83
+ }
84
+ const pagination = (obj.pagination ?? {});
85
+ return {
86
+ items: items,
87
+ total: typeof pagination.total === 'number' ? pagination.total : undefined,
88
+ hasMore: pagination.hasMore === true,
89
+ ...(typeof pagination.nextCursor === 'string' && pagination.nextCursor ? { nextCursor: pagination.nextCursor } : {}),
90
+ };
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtdXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZXNwb25zZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLDJFQUEyRTtBQUMzRSwrRUFBK0U7QUFDL0UsNERBQTREO0FBRTVELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFN0Q7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxRQUFpQjtJQUM5QyxJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxNQUFNLEdBQUcsR0FBRyxRQUFtQyxDQUFDO1FBQ2hELElBQUksU0FBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xGLE9BQU8sR0FBRyxDQUFDLElBQStCLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxRQUFpQixFQUFFLFNBQWlCLEVBQUUsYUFBcUI7SUFDbEcsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLDJGQUEyRjtJQUMzRixJQUFJLGFBQWEsSUFBSSxPQUFPO1FBQUUsT0FBTyxPQUF1QixDQUFDO0lBQzdELDREQUE0RDtJQUM1RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUF3QyxDQUFDO0lBQ3pFLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxhQUFhLElBQUksTUFBTTtRQUFFLE9BQU8sTUFBc0IsQ0FBQztJQUNuRyxPQUFPLFNBQVMs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QUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNySCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vLyBBUEkgcmVzcG9uc2UtZW52ZWxvcGUgcGFyc2luZy4gU3BsaXQgb3V0IG9mIG91dHB1dC11dGlscyAod2hpY2ggaXMgYWJvdXRcbi8vIHJlbmRlcmluZykg4oCUIHRoaXMgaXMgcHVyZWx5IGFib3V0IHJlYWRpbmcgdGhlIGB7IHN1Y2Nlc3MsIGRhdGEgfWAgc2hhcGVzIHRoZVxuLy8gcGxhdGZvcm0gcmV0dXJucyBhbmQgcHVsbGluZyBvdXQgc2luZ2xlIGVudGl0aWVzIC8gbGlzdHMuXG5cbmltcG9ydCB7IHByaW50RXJyb3IsIHByaW50V2FybmluZyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcblxuLyoqXG4gKiBVbndyYXAgYSBzZW5kU3VjY2VzcyBBUEkgZW52ZWxvcGU6IHsgc3VjY2Vzcywgc3RhdHVzQ29kZSwgZGF0YTogeyAuLi4gfSB9XG4gKiBSZXR1cm5zIHRoZSBpbm5lciBgZGF0YWAgb2JqZWN0LCBvciB0aGUgb3JpZ2luYWwgcmVzcG9uc2UgaWYgbm90IHdyYXBwZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBFbnZlbG9wZShyZXNwb25zZTogdW5rbm93bik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSByZXNwb25zZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBpZiAoJ3N1Y2Nlc3MnIGluIG9iaiAmJiAnZGF0YScgaW4gb2JqICYmIG9iai5kYXRhICYmIHR5cGVvZiBvYmouZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBvYmouZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICByZXR1cm4ge307XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIHNpbmdsZSBlbnRpdHkgZnJvbSBhbiBBUEkgcmVzcG9uc2UsIGhhbmRsaW5nIGVudmVsb3BlIGZvcm1hdHMuXG4gKiBUcmllczogcGF5bG9hZFtlbnRpdHlLZXldLCBwYXlsb2FkIGRpcmVjdGx5IChpZiBpZGVudGlmaWVyS2V5IGV4aXN0cyksIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RTaW5nbGVSZXNwb25zZTxUPihyZXNwb25zZTogdW5rbm93biwgZW50aXR5S2V5OiBzdHJpbmcsIGlkZW50aWZpZXJLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXlsb2FkID0gdW53cmFwRW52ZWxvcGUocmVzcG9uc2UpO1xuICAvLyBEaXJlY3QgZW50aXR5OiBwYXlsb2FkIGhhcyB0aGUgaWRlbnRpZmllciAoZS5nLiBwYXlsb2FkLmlkLCBwYXlsb2FkLnByb3BzLCBwYXlsb2FkLm5hbWUpXG4gIGlmIChpZGVudGlmaWVyS2V5IGluIHBheWxvYWQpIHJldHVybiBwYXlsb2FkIGFzIHVua25vd24gYXMgVDtcbiAgLy8gTmVzdGVkIHVuZGVyIGVudGl0eSBrZXk6IHBheWxvYWQucGlwZWxpbmUsIHBheWxvYWQucGx1Z2luXG4gIGNvbnN0IG5lc3RlZCA9IHBheWxvYWRbZW50aXR5S2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgaWYgKG5lc3RlZCAmJiB0eXBlb2YgbmVzdGVkID09PSAnb2JqZWN0JyAmJiBpZGVudGlmaWVyS2V5IGluIG5lc3RlZCkgcmV0dXJuIG5lc3RlZCBhcyB1bmtub3duIGFzIFQ7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaXRlbXM6IFRbXTtcbiAgdG90YWw/OiBudW1iZXI7XG4gIGhhc01vcmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXh0cmFjdCBpdGVtcyBmcm9tIGFuIEFQSSBsaXN0IHJlc3BvbnNlLCBoYW5kbGluZyBtdWx0aXBsZSByZXNwb25zZSBmb3JtYXRzLlxuICogU3VwcG9ydHM6IGB7IDxrZXk+OiBUW10gfWAsIGB7IGl0ZW1zOiBUW10gfWAsIGBUW11gLCBvciBpbnZhbGlkIGZvcm1hdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TGlzdFJlc3BvbnNlPFQ+KHJlc3BvbnNlOiB1bmtub3duLCBpdGVtc0tleTogc3RyaW5nKTogTGlzdFJlc3BvbnNlUmVzdWx0PFQ+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgcmV0dXJuIHsgaXRlbXM6IHJlc3BvbnNlLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICB9XG5cbiAgaWYgKHJlc3BvbnNlICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBvYmogPSB1bndyYXBFbnZlbG9wZShyZXNwb25zZSk7XG5cbiAgICAvLyBBIGB7IHN1Y2Nlc3MsIGRhdGE6IFsuLi5dIH1gIGVudmVsb3BlIHVud3JhcHMgdG8gdGhlIGJhcmUgYXJyYXkg4oCUIHJldHVybiBpdCBkaXJlY3RseVxuICAgIC8vICh0aGUgYGl0ZW1zS2V5IGluIG9iamAgLyBgJ2l0ZW1zJyBpbiBvYmpgIGNoZWNrcyBiZWxvdyBhcmUgZmFsc2UgZm9yIGFuIGFycmF5LCBzb1xuICAgIC8vIHdpdGhvdXQgdGhpcyBzdWNoIGxpc3QgZW52ZWxvcGVzIHdvdWxkIHNpbGVudGx5IHlpZWxkIHplcm8gaXRlbXMpLlxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiB7IGl0ZW1zOiBvYmogYXMgVFtdLCB0b3RhbDogdW5kZWZpbmVkLCBoYXNNb3JlOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgcGFnaW5hdGlvbiBtZXRhZGF0YSBpZiBwcmVzZW50XG4gICAgY29uc3QgcGFnaW5hdGlvbiA9IG9iai5wYWdpbmF0aW9uIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHRvdGFsID0gKHBhZ2luYXRpb24/LnRvdGFsID8/IG9iai50b3RhbCkgYXMgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGhhc01vcmUgPSAoKHBhZ2luYXRpb24/Lmhhc01vcmUgPz8gb2JqLmhhc01vcmUpIGFzIGJvb2xlYW4pIHx8IGZhbHNlO1xuXG4gICAgLy8gVHJ5IHByaW1hcnkga2V5IChlLmcuICdwaXBlbGluZXMnLCAncGx1Z2lucycpXG4gICAgaWYgKGl0ZW1zS2V5IGluIG9iaiAmJiBBcnJheS5pc0FycmF5KG9ialtpdGVtc0tleV0pKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqW2l0ZW1zS2V5XSBhcyBUW10sIHRvdGFsLCBoYXNNb3JlIH07XG4gICAgfVxuXG4gICAgLy8gVHJ5IGdlbmVyaWMgJ2l0ZW1zJyBrZXlcbiAgICBpZiAoJ2l0ZW1zJyBpbiBvYmogJiYgQXJyYXkuaXNBcnJheShvYmouaXRlbXMpKSB7XG4gICAgICByZXR1cm4geyBpdGVtczogb2JqLml0ZW1zIGFzIFRbXSwgdG90YWwsIGhhc01vcmUgfTtcbiAgICB9XG5cbiAgICBwcmludFdhcm5pbmcoJ1VuZXhwZWN0ZWQgcmVzcG9uc2UgZm9ybWF0LCBhdHRlbXB0aW5nIHRvIGhhbmRsZScpO1xuICAgIHJldHVybiB7IGl0ZW1zOiBbXSwgdG90YWw6IHVuZGVmaW5lZCwgaGFzTW9yZTogZmFsc2UgfTtcbiAgfVxuXG4gIHByaW50RXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gQVBJJyk7XG4gIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBBUEkgcmVzcG9uc2UgZm9ybWF0Jyk7XG59XG5cbi8qKlxuICogUmVhZCBvbmUgcGFnZSBvZiBhIGBzZW5kUGFnaW5hdGVkTmVzdGVkYCBsaXN0IChgeyBkYXRhOiB7IDxrZXk+OiBUW10sXG4gKiBwYWdpbmF0aW9uIH0gfWApIFNUUklDVExZOiBhIHJlc3BvbnNlIHdpdGhvdXQgYDxrZXk+YCBhcyBhbiBhcnJheSB0aHJvd3NcbiAqIGluc3RlYWQgb2YgcmVhZGluZyBhcyBhbiBlbXB0eSBsaXN0LiBGb3IgY2FsbGVycyB0aGF0IGRpZmYgdGhlIGxpc3QgYWdhaW5zdFxuICogc29tZXRoaW5nIGVsc2UgKGBhdWRpdCBzdGFja3NgKSwgYW4gZW1wdHkgbGlzdCByZWFkIG9mZiB0aGUgd3Jvbmcga2V5IGlzIG5vdFxuICogXCJub3RoaW5nIHRoZXJlXCIg4oCUIGl0IHR1cm5zIGludG8gYSBmYWxzZSBmaW5kaW5nIGZvciBldmVyeSByb3cgb24gdGhlIG90aGVyXG4gKiBzaWRlLCB3aGljaCBpcyBleGFjdGx5IGhvdyByZWFkaW5nIHRoZSB3cm9uZyBrZXkgb25jZSB3ZW50IHVubm90aWNlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMaXN0UGFnZTxUPihyZXNwb25zZTogdW5rbm93biwgaXRlbXNLZXk6IHN0cmluZyk6IExpc3RSZXNwb25zZVJlc3VsdDxUPiAmIHsgbmV4dEN1cnNvcj86IHN0cmluZyB9IHtcbiAgY29uc3Qgb2JqID0gdW53cmFwRW52ZWxvcGUocmVzcG9uc2UpO1xuICBjb25zdCBpdGVtcyA9IG9ialtpdGVtc0tleV07XG4gIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgQVBJIHJlc3BvbnNlIGZvcm1hdDogbm8gXCIke2l0ZW1zS2V5fVwiIGxpc3QgaW4gdGhlIHJlc3BvbnNlYCk7XG4gIH1cbiAgY29uc3QgcGFnaW5hdGlvbiA9IChvYmoucGFnaW5hdGlvbiA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHJldHVybiB7XG4gICAgaXRlbXM6IGl0ZW1zIGFzIFRbXSxcbiAgICB0b3RhbDogdHlwZW9mIHBhZ2luYXRpb24udG90YWwgPT09ICdudW1iZXInID8gcGFnaW5hdGlvbi50b3RhbCA6IHVuZGVmaW5lZCxcbiAgICBoYXNNb3JlOiBwYWdpbmF0aW9uLmhhc01vcmUgPT09IHRydWUsXG4gICAgLi4uKHR5cGVvZiBwYWdpbmF0aW9uLm5leHRDdXJzb3IgPT09ICdzdHJpbmcnICYmIHBhZ2luYXRpb24ubmV4dEN1cnNvciA/IHsgbmV4dEN1cnNvcjogcGFnaW5hdGlvbi5uZXh0Q3Vyc29yIH0gOiB7fSksXG4gIH07XG59XG4iXX0=
@@ -1,8 +1,6 @@
1
1
  import { type LookupToolchain, type LookupWarning, type ResolvedBootstrap } from '@pipeline-builder/pipeline-core';
2
2
  import type { ApiClient } from './api-client.js';
3
3
  import { PluginResolutionError } from './plugin-resolver.js';
4
- export declare const BOOTSTRAP_PLUGIN = "pipeline-bootstrap";
5
- export declare const SYNTH_PLUGIN = "cdk-synth";
6
4
  /** `toolchain export` file format version. */
7
5
  export declare const TOOLCHAIN_FILE_FORMAT = 1;
8
6
  /** A plugin record as the lookup returned it (opaque here; pipeline-core reads it). */
@@ -1 +1 @@
1
- {"version":3,"file":"toolchain.d.ts","sources":["../../src/utils/toolchain.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EACjE,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAoF,MAAM,sBAAsB,CAAC;AAG/I,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AACrD,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,uFAAuF;AACvF,KAAK,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAEhD,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAA6C,GAAG,qBAAqB,CAE/H;AAoCD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,CAAC,EAAE,aAAa,EAAE,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAY5B;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAI7E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CASrH;AAaD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAcjG;AAKD,mEAAmE;AACnE,wBAAgB,qBAAqB,IAAI,qBAAqB,CAE7D;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CA0B/H;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAiBhH"}
1
+ {"version":3,"file":"toolchain.d.ts","sources":["../../src/utils/toolchain.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EACjE,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAA+D,MAAM,sBAAsB,CAAC;AAK1H,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,uFAAuF;AACvF,KAAK,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAEhD,uCAAuC;AACvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAA6C,GAAG,qBAAqB,CAE/H;AAoCD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,CAAC,EAAE,aAAa,EAAE,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAY5B;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAI7E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CASrH;AAaD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAcjG;AAKD,mEAAmE;AACnE,wBAAgB,qBAAqB,IAAI,qBAAqB,CAE7D;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CA0B/H;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAiBhH"}
@@ -14,12 +14,11 @@
14
14
  */
15
15
  import * as fs from 'node:fs';
16
16
  import * as path from 'node:path';
17
- import { BUILD_IMAGE_STEP_KEY, ErrorCode, errorMessage } from '@pipeline-builder/api-core';
17
+ import { BUILD_IMAGE_STEP_KEY, ErrorCode, errorMessage, MANAGED_TOOLCHAIN, toolchainReleasePin } from '@pipeline-builder/api-core';
18
18
  import { parseLookupToolchain, pluginArtifactAlias, unwrapLookup, } from '@pipeline-builder/pipeline-core';
19
- import { PluginResolutionError, isManagedToolchainRef, printLookupWarning, serviceErrorCode, toolchainReleasePin } from './plugin-resolver.js';
19
+ import { PluginResolutionError, isManagedToolchainRef, printLookupWarning, serviceErrorCode } from './plugin-resolver.js';
20
20
  import { bakePlatformRegistry } from './registry.js';
21
- export const BOOTSTRAP_PLUGIN = 'pipeline-bootstrap';
22
- export const SYNTH_PLUGIN = 'cdk-synth';
21
+ const { bootstrap: BOOTSTRAP_PLUGIN, synth: SYNTH_PLUGIN } = MANAGED_TOOLCHAIN;
23
22
  /** `toolchain export` file format version. */
24
23
  export const TOOLCHAIN_FILE_FORMAT = 1;
25
24
  /** The refusal every failure here raises — one code, so `PB_SYNTH_FAILURE` reports it uniformly. */
@@ -193,4 +192,4 @@ export function applyToolchainFile(props, file) {
193
192
  }
194
193
  return bootstrap.toolchain.releaseVersion;
195
194
  }
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGNoYWluLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdG9vbGNoYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNGLE9BQU8sRUFDNkQsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxHQUMxSCxNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9JLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDO0FBRXhDLDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7QUFnQ3ZDLG9HQUFvRztBQUNwRyxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBZSxFQUFFLElBQUksR0FBVyxTQUFTLENBQUMsMEJBQTBCO0lBQ3RHLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVELG1GQUFtRjtBQUNuRixLQUFLLFVBQVUsYUFBYSxDQUMxQixNQUFpQixFQUNqQixJQUFZLEVBQ1osVUFBOEIsRUFDOUIsT0FBb0Q7SUFFcEQs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QztJQUNwQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDN0MsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDYixLQUFLLENBQUMsZUFBZSxHQUFHLEVBQUUsR0FBSSxLQUFLLENBQUMsZUFBdUQsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ25ILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgcGlwZWxpbmUncyB0b29sY2hhaW4gcmVsZWFzZSAoZG9jcy9wbGFucy9ib290c3RyYXAtaW1hZ2UtdmVyc2lvbmluZy5tZCDCpzIsIEQyKS5cbiAqXG4gKiBgcGlwZWxpbmUtYm9vdHN0cmFwYCAodGhlIGRlZmF1bHQgQ29kZUJ1aWxkIGltYWdlKSBhbmQgYGNkay1zeW50aGAgKHRoZSBzeW50aFxuICogc3RlcCkgYXJlIG9uZSByZWxlYXNlLiBUaGUgYm9vdHN0cmFwIGlzIG5vdCBhIHN0ZXAsIHNvIG5vdGhpbmcgZWxzZSByZXNvbHZlc1xuICogaXQ6IHtAbGluayByZXNvbHZlQm9vdHN0cmFwSW1hZ2V9IGxvb2tzIGl0IHVwIHdpdGggdGhlIHBpcGVsaW5lJ3NcbiAqIGB0b29sY2hhaW4ucmVsZWFzZWAgcGluLCBhbmQgQU5ZIGZhaWx1cmUgc3RvcHMgdGhlIHN5bnRoIOKAlCB0aGUgdGVtcGxhdGUgaGFzXG4gKiBubyBvdGhlciBpbWFnZSB0byBmYWxsIGJhY2sgdG8uXG4gKlxuICogYHBpcGVsaW5lIGRlcGxveSAtLWxvY2FsLXNwZWNgIG5ldmVyIGNvbnRhY3RzIHRoZSBwbGF0Zm9ybSwgc28gaXQgcmVhZHMgdGhlXG4gKiByZWxlYXNlIGZyb20gYSBmaWxlIGBwaXBlbGluZS1tYW5hZ2VyIHRvb2xjaGFpbiBleHBvcnRgIHdyb3RlIGluc3RlYWQuXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBCVUlMRF9JTUFHRV9TVEVQX0tFWSwgRXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQge1xuICB0eXBlIExvb2t1cFRvb2xjaGFpbiwgdHlwZSBMb29rdXBXYXJuaW5nLCB0eXBlIFJlc29sdmVkQm9vdHN0cmFwLCBwYXJzZUxvb2t1cFRvb2xjaGFpbiwgcGx1Z2luQXJ0aWZhY3RBbGlhcywgdW53cmFwTG9va3VwLFxufSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJztcbmltcG9ydCB0eXBlIHsgQXBpQ2xpZW50IH0gZnJvbSAnLi9hcGktY2xpZW50LmpzJztcbmltcG9ydCB7IFBsdWdpblJlc29sdXRpb25FcnJvciwgaXNNYW5hZ2VkVG9vbGNoYWluUmVmLCBwcmludExvb2t1cFdhcm5pbmcsIHNlcnZpY2VFcnJvckNvZGUsIHRvb2xjaGFpblJlbGVhc2VQaW4gfSBmcm9tICcuL3BsdWdpbi1yZXNvbHZlci5qcyc7XG5pbXBvcnQgeyBiYWtlUGxhdGZvcm1SZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnkuanMnO1xuXG5leHBvcnQgY29uc3QgQk9PVFNUUkFQX1BMVUdJTiA9ICdwaXBlbGluZS1ib290c3RyYXAnO1xuZXhwb3J0IGNvbnN0IFNZTlRIX1BMVUdJTiA9ICdjZGstc3ludGgnO1xuXG4vKiogYHRvb2xjaGFpbiBleHBvcnRgIGZpbGUgZm9ybWF0IHZlcnNpb24uICovXG5leHBvcnQgY29uc3QgVE9PTENIQUlOX0ZJTEVfRk9STUFUID0gMTtcblxuLyoqIEEgcGx1Z2luIHJlY29yZCBhcyB0aGUgbG9va3VwIHJldHVybmVkIGl0IChvcGFxdWUgaGVyZTsgcGlwZWxpbmUtY29yZSByZWFkcyBpdCkuICovXG50eXBlIFBsdWdpblJlY29yZCA9IFJlc29sdmVkQm9vdHN0cmFwWydwbHVnaW4nXTtcblxuLyoqIE9uZSBoYWxmIG9mIGFuIGV4cG9ydGVkIHJlbGVhc2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xjaGFpbkZpbGVIYWxmIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGltYWdlUmVwb3NpdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBpbWFnZURpZ2VzdDogc3RyaW5nO1xuICAvKiogVGhlIGZ1bGwgbG9va3VwIHJlY29yZCDigJQgd2hhdCB0aGUgc3ludGggY29uc3VtZXMuICovXG4gIHJlYWRvbmx5IHBsdWdpbjogUGx1Z2luUmVjb3JkO1xufVxuXG4vKiogV2hhdCBgcGlwZWxpbmUtbWFuYWdlciB0b29sY2hhaW4gZXhwb3J0YCB3cml0ZXMgYW5kIGAtLXRvb2xjaGFpbi1maWxlYCByZWFkcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbGNoYWluRmlsZSB7XG4gIHJlYWRvbmx5IGZvcm1hdDogdHlwZW9mIFRPT0xDSEFJTl9GSUxFX0ZPUk1BVDtcbiAgcmVhZG9ubHkgcmVsZWFzZVZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcmVzb2x2ZWRWaWE6IExvb2t1cFRvb2xjaGFpblsncmVzb2x2ZWRWaWEnXTtcbiAgcmVhZG9ubHkgdG9vbGNoYWluOiBMb29rdXBUb29sY2hhaW5bJ3ZlcnNpb25zJ107XG4gIHJlYWRvbmx5IGV4cG9ydGVkQXQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwbGF0Zm9ybSB0aGUgcmVsZWFzZSB3YXMgZXhwb3J0ZWQgZnJvbS4gSXRzIGhvc3QgaXMgdGhlIHJlZ2lzdHJ5XG4gICAqIENvZGVCdWlsZCBwdWxscyBib3RoIGltYWdlcyBmcm9tLCBzbyBhIGxvY2FsLXNwZWMgZGVwbG95IGJha2VzIGl0IGFzIHRoZVxuICAgKiBwdWxsIGhvc3QgKHVubGVzcyBJTUFHRV9SRUdJU1RSWV9QVUxMX0hPU1QgaXMgc2V0KSwgbGlrZSBhIHBsYXRmb3JtIGRlcGxveS5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtQmFzZVVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgYm9vdHN0cmFwOiBUb29sY2hhaW5GaWxlSGFsZjtcbiAgcmVhZG9ubHkgc3ludGg6IFRvb2xjaGFpbkZpbGVIYWxmO1xufVxuXG4vKiogVGhlIHJlZnVzYWwgZXZlcnkgZmFpbHVyZSBoZXJlIHJhaXNlcyDigJQgb25lIGNvZGUsIHNvIGBQQl9TWU5USF9GQUlMVVJFYCByZXBvcnRzIGl0IHVuaWZvcm1seS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBib290c3RyYXBVbnJlc29sdmVkKG1lc3NhZ2U6IHN0cmluZywgY29kZTogc3RyaW5nID0gRXJyb3JDb2RlLkJPT1RTVFJBUF9JTUFHRV9VTlJFU09MVkVEKTogUGx1Z2luUmVzb2x1dGlvbkVycm9yIHtcbiAgcmV0dXJuIG5ldyBQbHVnaW5SZXNvbHV0aW9uRXJyb3IoW3sgcGx1Z2luOiBCT09UU1RSQVBfUExVR0lOLCBjb2RlLCBtZXNzYWdlIH1dKTtcbn1cblxuLyoqIExvb2sgdXAgb25lIG1hbmFnZWQgaGFsZi4gVGhyb3dzIHtAbGluayBib290c3RyYXBVbnJlc29sdmVkfSBvbiBhbnkgZmFpbHVyZS4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvb2t1cE1hbmFnZWQoXG4gIGNsaWVudDogQXBpQ2xpZW50LFxuICBuYW1lOiBzdHJpbmcsXG4gIHJlbGVhc2VQaW46IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgY29udGV4dD86IHsgcGlwZWxpbmVJZDogc3RyaW5nOyBzdGVwS2V5czogc3RyaW5nW10gfSxcbik6IFByb21pc2U8eyBwbHVnaW46IFBsdWdpblJlY29yZDsgdG9vbGNoYWluOiBMb29rdXBUb29sY2hhaW47IHdhcm5pbmdzOiBMb29rdXBXYXJuaW5nW10gfT4ge1xuICBjb25zdCB3aGF0ID0gYCR7bmFtZX0ke3JlbGVhc2VQaW4gPyBgIChyZWxlYXNlICR7cmVsZWFzZVBpbn0pYCA6ICcnfWA7XG4gIGxldCByZXM6IHVua25vd247XG4gIHRyeSB7XG4gICAgcmVzID0gYXdhaXQgY2xpZW50LnBvc3Q8dW5rbm93bj4oJy9hcGkvcGx1Z2lucy9sb29rdXAnLCB7XG4gICAgICBmaWx0ZXI6IHsgbmFtZSB9LFxuICAgICAgLi4uKHJlbGVhc2VQaW4gPyB7IHJlbGVhc2VQaW4gfSA6IHt9KSxcbiAgICAgIC4uLihjb250ZXh0ID8geyBjb250ZXh0IH0gOiB7fSksXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnN0IGNvZGUgPSBzZXJ2aWNlRXJyb3JDb2RlKGVycik7XG4gICAgY29uc3Qgc3RhdHVzID0gKGVyciBhcyB7IHJlc3BvbnNlPzogeyBzdGF0dXM/OiB1bmtub3duIH0gfSB8IHVuZGVmaW5lZCk/LnJlc3BvbnNlPy5zdGF0dXM7XG4gICAgY29uc3Qgd2h5ID0gY29kZSA9PT0gRXJyb3JDb2RlLlRPT0xDSEFJTl9OT19ERUZBVUxUXG4gICAgICA/ICd0aGUgcGxhdGZvcm0gaGFzIG5vIGRlZmF1bHQgdG9vbGNoYWluIHJlbGVhc2UgKGFuIG9wZXJhdG9yIHNldHMgb25lIHdpdGggYGRlcGxveS9iaW4vaW5pdC1wbGF0Zm9ybS5zaGAgb3IgdGhlIFRvb2xjaGFpbiBjb25zb2xlKSdcbiAgICAgIDogc3RhdHVzID09PSA0MDQgJiYgcmVsZWFzZVBpblxuICAgICAgICA/IGByZWxlYXNlICR7cmVsZWFzZVBpbn0gZG9lcyBub3QgZXhpc3QgKGRlbGV0ZWQpIOKAlCBwaW4gYW5vdGhlciByZWxlYXNlIG9yIGNsZWFyIHRoZSBwaXBlbGluZSdzIHRvb2xjaGFpbi5yZWxlYXNlYFxuICAgICAgICA6IGVycm9yTWVzc2FnZShlcnIpO1xuICAgIHRocm93IGJvb3RzdHJhcFVucmVzb2x2ZWQoYFRvb2xjaGFpbiAke3doYXR9IGNvdWxkIG5vdCBiZSByZXNvbHZlZDogJHt3aHl9YCk7XG4gIH1cbiAgY29uc3QgeyBwbHVnaW4sIHdhcm5pbmdzLCB0b29sY2hhaW4gfSA9IHVud3JhcExvb2t1cChyZXMpO1xuICBpZiAoIXBsdWdpbiB8fCBwbHVnaW4ubmFtZSAhPT0gbmFtZSkgdGhyb3cgYm9vdHN0cmFwVW5yZXNvbHZlZChgVG9vbGNoYWluICR7d2hhdH0gY291bGQgbm90IGJlIHJlc29sdmVkOiB0aGUgbG9va3VwIHJldHVybmVkIG5vICR7bmFtZX0gcmVjb3JkYCk7XG4gIGlmICghdG9vbGNoYWluKSB0aHJvdyBib290c3RyYXBVbnJlc29sdmVkKGBUb29sY2hhaW4gJHt3aGF0fSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6IHRoZSBhbnN3ZXIgY2FycmllZCBubyB0b29sY2hhaW4gcmVsZWFzZWApO1xuICBpZiAocmVsZWFzZVBpbiAmJiB0b29sY2hhaW4ucmVsZWFzZVZlcnNpb24gIT09IHJlbGVhc2VQaW4pIHtcbiAgICB0aHJvdyBib290c3RyYXBVbnJlc29sdmVkKGBUb29sY2hhaW4gJHt3aGF0fSByZXNvbHZlZCB0byByZWxlYXNlICR7dG9vbGNoYWluLnJlbGVhc2VWZXJzaW9ufSwgbm90IHRoZSBwaW5uZWQgJHtyZWxlYXNlUGlufWAsIEVycm9yQ29kZS5UT09MQ0hBSU5fUEFJUl9NSVNNQVRDSCk7XG4gIH1cbiAgcmV0dXJuIHsgcGx1Z2luLCB0b29sY2hhaW4sIHdhcm5pbmdzIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgcGlwZWxpbmUncyBgcGlwZWxpbmUtYm9vdHN0cmFwYCB0aHJvdWdoIGAvcGx1Z2lucy9sb29rdXBgIHdpdGhcbiAqIGByZWxlYXNlUGluID0gcHJvcHMudG9vbGNoYWluPy5yZWxlYXNlYC4gRkFUQUwgb24gYW55IGZhaWx1cmVcbiAqIChgQk9PVFNUUkFQX0lNQUdFX1VOUkVTT0xWRURgKTogdW5yZWFjaGFibGUgcGxhdGZvcm0sIG5vIGRlZmF1bHQgKDQwOVxuICogYFRPT0xDSEFJTl9OT19ERUZBVUxUYCksIGEgZGVsZXRlZCBwaW4gKDQwNCksIGEgcmVmdXNlZCBzaWduYXR1cmUsIG9yIGFuXG4gKiBhbnN3ZXIgd2l0aG91dCBhIHJlbGVhc2UuIFdhcm5pbmdzIGFyZSBwcmludGVkLCBhcHBlbmRlZCB0byBgd2FybmluZ1NpbmtgLFxuICogYW5kIOKAlCB3aXRoIGEgYHBpcGVsaW5lSWRgIOKAlCByZWNvcmRlZCBieSB0aGUgcGxhdGZvcm0gb24gdGhlIHBpcGVsaW5lJ3NcbiAqIFwiQnVpbGQgaW1hZ2VcIiByb3cgKGBjb250ZXh0LnN0ZXBLZXlzOiBbJ2J1aWxkLWltYWdlJ11gKS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVCb290c3RyYXBJbWFnZShcbiAgY2xpZW50OiBBcGlDbGllbnQsXG4gIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgd2FybmluZ1Npbms/OiBMb29rdXBXYXJuaW5nW10sXG4pOiBQcm9taXNlPFJlc29sdmVkQm9vdHN0cmFwPiB7XG4gIGNvbnN0IHBpcGVsaW5lSWQgPSB0eXBlb2YgcHJvcHMucGlwZWxpbmVJZCA9PT0gJ3N0cmluZycgJiYgcHJvcHMucGlwZWxpbmVJZC5sZW5ndGggPiAwID8gcHJvcHMucGlwZWxpbmVJZCA6IHVuZGVmaW5lZDtcbiAgY29uc3QgeyBwbHVnaW4sIHRvb2xjaGFpbiwgd2FybmluZ3MgfSA9IGF3YWl0IGxvb2t1cE1hbmFnZWQoXG4gICAgY2xpZW50LCBCT09UU1RSQVBfUExVR0lOLCB0b29sY2hhaW5SZWxlYXNlUGluKHByb3BzKSxcbiAgICAvLyBSZWNvcmRlZCBhZ2FpbnN0IHRoZSBwaXBlbGluZSdzIFwiQnVpbGQgaW1hZ2VcIiByb3cgKGFwaS1jb3JlIEJVSUxEX0lNQUdFX1NURVBfS0VZKS5cbiAgICBwaXBlbGluZUlkID8geyBwaXBlbGluZUlkLCBzdGVwS2V5czogW0JVSUxEX0lNQUdFX1NURVBfS0VZXSB9IDogdW5kZWZpbmVkLFxuICApO1xuICBmb3IgKGNvbnN0IHdhcm5pbmcgb2Ygd2FybmluZ3MpIHtcbiAgICBwcmludExvb2t1cFdhcm5pbmcoQk9PVFNUUkFQX1BMVUdJTiwgd2FybmluZyk7XG4gICAgd2FybmluZ1Npbms/LnB1c2god2FybmluZyk7XG4gIH1cbiAgcmV0dXJuIHsgcGx1Z2luLCB0b29sY2hhaW4gfTtcbn1cblxuLyoqIFRoZSBtYW5hZ2VkIHN5bnRoIHJlZmVyZW5jZSBvZiBhIHBpcGVsaW5lJ3MgcHJvcHMsIHdoZW4gaXRzIHN5bnRoIHBsdWdpbiBpcyBgY2RrLXN5bnRoYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYW5hZ2VkU3ludGhLZXkocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IHJlZiA9IChwcm9wcy5zeW50aCBhcyB7IHBsdWdpbj86IHsgbmFtZT86IHN0cmluZzsgcHVibGlzaGVyPzogc3RyaW5nOyBhbGlhcz86IHN0cmluZzsgZmlsdGVyPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfSB9IHwgdW5kZWZpbmVkKT8ucGx1Z2luO1xuICBpZiAoIXJlZj8ubmFtZSB8fCAhaXNNYW5hZ2VkVG9vbGNoYWluUmVmKHJlZikpIHJldHVybiBudWxsO1xuICByZXR1cm4gcGx1Z2luQXJ0aWZhY3RBbGlhcyhyZWYgYXMgeyBuYW1lOiBzdHJpbmcgfSk7XG59XG5cbi8qKlxuICogQm90aCBoYWx2ZXMgb2Ygb25lIHJlbGVhc2UgbXVzdCBhZ3JlZS4gQSBtYW5hZ2VkIGBjZGstc3ludGhgIHRoYXQgcmVzb2x2ZWRcbiAqIHRvIGEgZGlmZmVyZW50IHJlbGVhc2UgdGhhbiB0aGUgYm9vdHN0cmFwIGlzIHJlZnVzZWQgKG5ldmVyIHNlcnZlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRPbmVSZWxlYXNlKGJvb3RzdHJhcDogUmVzb2x2ZWRCb290c3RyYXAsIHN5bnRoVG9vbGNoYWluczogUmVjb3JkPHN0cmluZywgTG9va3VwVG9vbGNoYWluPik6IHZvaWQge1xuICBmb3IgKGNvbnN0IFtrZXksIHN5bnRoXSBvZiBPYmplY3QuZW50cmllcyhzeW50aFRvb2xjaGFpbnMpKSB7XG4gICAgaWYgKHN5bnRoLnJlbGVhc2VWZXJzaW9uICE9PSBib290c3RyYXAudG9vbGNoYWluLnJlbGVhc2VWZXJzaW9uKSB7XG4gICAgICB0aHJvdyBib290c3RyYXBVbnJlc29sdmVkKFxuICAgICAgICBgVG9vbGNoYWluIGhhbHZlcyBkaXNhZ3JlZTogcGlwZWxpbmUtYm9vdHN0cmFwIGlzIHJlbGVhc2UgJHtib290c3RyYXAudG9vbGNoYWluLnJlbGVhc2VWZXJzaW9ufSBidXQgXCIke2tleX1cIiBpcyAke3N5bnRoLnJlbGVhc2VWZXJzaW9ufWAsXG4gICAgICAgIEVycm9yQ29kZS5UT09MQ0hBSU5fUEFJUl9NSVNNQVRDSCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhbGYocGx1Z2luOiBQbHVnaW5SZWNvcmQpOiBUb29sY2hhaW5GaWxlSGFsZiB7XG4gIGNvbnN0IHJlYyA9IHBsdWdpbiBhcyBQbHVnaW5SZWNvcmQgJiB7IGltYWdlUmVwb3NpdG9yeT86IHN0cmluZyB8IG51bGw7IGltYWdlRGlnZXN0Pzogc3RyaW5nIHwgbnVsbCB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6IHJlYy5uYW1lLFxuICAgIHZlcnNpb246IHJlYy52ZXJzaW9uLFxuICAgIGltYWdlUmVwb3NpdG9yeTogcmVjLmltYWdlUmVwb3NpdG9yeSA/PyAnJyxcbiAgICBpbWFnZURpZ2VzdDogcmVjLmltYWdlRGlnZXN0ID8/ICcnLFxuICAgIHBsdWdpbixcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGJvdGggaGFsdmVzIG9mIGEgcmVsZWFzZSBmb3IgZXhwb3J0OiBgcmVsZWFzZWAgd2hlbiBnaXZlbiwgZWxzZVxuICogd2hhdGV2ZXIgdGhlIGNhbGxlcidzIG9yZyByZXNvbHZlcyB0byBub3cgKGl0cyBkZWZhdWx0LCBjYW5hcnkgb3IgdGhlXG4gKiBwbGF0Zm9ybSBkZWZhdWx0KS4gQm90aCBsb29rdXBzIHNlbmQgdGhlIHNhbWUgcGluOyB3aGVuIG5vIHBpbiBpcyBnaXZlbiB0aGVcbiAqIGJvb3RzdHJhcCdzIHJlbGVhc2UgYmVjb21lcyB0aGUgc3ludGgncyBwaW4sIHNvIHRoZSBoYWx2ZXMgYWx3YXlzIG1hdGNoLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhwb3J0VG9vbGNoYWluKGNsaWVudDogQXBpQ2xpZW50LCByZWxlYXNlPzogc3RyaW5nKTogUHJvbWlzZTxUb29sY2hhaW5GaWxlPiB7XG4gIGNvbnN0IGJvb3RzdHJhcCA9IGF3YWl0IGxvb2t1cE1hbmFnZWQoY2xpZW50LCBCT09UU1RSQVBfUExVR0lOLCByZWxlYXNlKTtcbiAgY29uc3Qgc3ludGggPSBhd2FpdCBsb29rdXBNYW5hZ2VkKGNsaWVudCwgU1lOVEhfUExVR0lOLCByZWxlYXNlID8/IGJvb3RzdHJhcC50b29sY2hhaW4ucmVsZWFzZVZlcnNpb24pO1xuICBhc3NlcnRPbmVSZWxlYXNlKHsgcGx1Z2luOiBib290c3RyYXAucGx1Z2luLCB0b29sY2hhaW46IGJvb3RzdHJhcC50b29sY2hhaW4gfSwgeyBbU1lOVEhfUExVR0lOXTogc3ludGgudG9vbGNoYWluIH0pO1xuICByZXR1cm4ge1xuICAgIGZvcm1hdDogVE9PTENIQUlOX0ZJTEVfRk9STUFULFxuICAgIHJlbGVhc2VWZXJzaW9uOiBib290c3RyYXAudG9vbGNoYWluLnJlbGVhc2VWZXJzaW9uLFxuICAgIHJlc29sdmVkVmlhOiBib290c3RyYXAudG9vbGNoYWluLnJlc29sdmVkVmlhLFxuICAgIHRvb2xjaGFpbjogeyAuLi5zeW50aC50b29sY2hhaW4udmVyc2lvbnMsIC4uLmJvb3RzdHJhcC50b29sY2hhaW4udmVyc2lvbnMgfSxcbiAgICBleHBvcnRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgLi4uKGNsaWVudC5nZXRDb25maWcoKS5hcGkuYmFzZVVybCA/IHsgcGxhdGZvcm1CYXNlVXJsOiBjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLmJhc2VVcmwgfSA6IHt9KSxcbiAgICBib290c3RyYXA6IGhhbGYoYm9vdHN0cmFwLnBsdWdpbiksXG4gICAgc3ludGg6IGhhbGYoc3ludGgucGx1Z2luKSxcbiAgfTtcbn1cblxuY29uc3QgSE9XX1RPX0VYUE9SVCA9ICdQcm9kdWNlIG9uZSB3aXRoIGBwaXBlbGluZS1tYW5hZ2VyIHRvb2xjaGFpbiBleHBvcnQgLS1vdXRwdXQgdG9vbGNoYWluLmpzb25gIChhZGQgYC0tcmVsZWFzZSA8Vj5gIHRvIHBpbiBhIHJlbGVhc2UpICdcbiAgKyAnYWdhaW5zdCB0aGUgcGxhdGZvcm0sIHRoZW4gcGFzcyBgLS10b29sY2hhaW4tZmlsZSB0b29sY2hhaW4uanNvbmAuJztcblxuLyoqIFRoZSBsb2NhbC1zcGVjIHJlZnVzYWwgd2hlbiBubyBgLS10b29sY2hhaW4tZmlsZWAgd2FzIGdpdmVuLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvb2xjaGFpbkZpbGVSZXF1aXJlZCgpOiBQbHVnaW5SZXNvbHV0aW9uRXJyb3Ige1xuICByZXR1cm4gYm9vdHN0cmFwVW5yZXNvbHZlZChgLS1sb2NhbC1zcGVjIGRlcGxveXMgd2l0aG91dCB0aGUgcGxhdGZvcm0sIHNvIHRoZSB0b29sY2hhaW4gcmVsZWFzZSBtdXN0IGNvbWUgZnJvbSAtLXRvb2xjaGFpbi1maWxlLiAke0hPV19UT19FWFBPUlR9YCk7XG59XG5cbmNvbnN0IERJR0VTVF9SRSA9IC9ec2hhMjU2OlswLTlhLWZdezY0fSQvO1xuXG4vKipcbiAqIFJlYWQgYW5kIGNoZWNrIGEgYHRvb2xjaGFpbiBleHBvcnRgIGZpbGU6IGJvdGggaGFsdmVzIHByZXNlbnQsIG5hbWVkIHJpZ2h0LFxuICogZGlnZXN0LXBpbm5lZCwgYW5kIG9mIG9uZSByZWxlYXNlLiBBbnkgcHJvYmxlbSBpcyBgQk9PVFNUUkFQX0lNQUdFX1VOUkVTT0xWRURgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFRvb2xjaGFpbkZpbGUoZmlsZTogc3RyaW5nKTogeyBib290c3RyYXA6IFJlc29sdmVkQm9vdHN0cmFwOyBzeW50aDogUGx1Z2luUmVjb3JkOyBwbGF0Zm9ybUJhc2VVcmw/OiBzdHJpbmcgfSB7XG4gIGNvbnN0IGFicyA9IHBhdGgucmVzb2x2ZShmaWxlKTtcbiAgbGV0IHJhdzogdW5rbm93bjtcbiAgdHJ5IHtcbiAgICByYXcgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhhYnMsICd1dGYtOCcpKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgYm9vdHN0cmFwVW5yZXNvbHZlZChgQ2FuJ3QgcmVhZCAtLXRvb2xjaGFpbi1maWxlICR7YWJzfTogJHtlcnJvck1lc3NhZ2UoZXJyKX0uICR7SE9XX1RPX0VYUE9SVH1gKTtcbiAgfVxuICBjb25zdCBiYWQgPSAod2h5OiBzdHJpbmcpOiBuZXZlciA9PiB7IHRocm93IGJvb3RzdHJhcFVucmVzb2x2ZWQoYC0tdG9vbGNoYWluLWZpbGUgJHthYnN9IGlzIG5vdCBhIHRvb2xjaGFpbiBleHBvcnQ6ICR7d2h5fS4gJHtIT1dfVE9fRVhQT1JUfWApOyB9O1xuICBjb25zdCBmID0gcmF3IGFzIFBhcnRpYWw8VG9vbGNoYWluRmlsZT4gfCBudWxsO1xuICBpZiAoIWYgfHwgdHlwZW9mIGYgIT09ICdvYmplY3QnKSBiYWQoJ25vdCBhIEpTT04gb2JqZWN0Jyk7XG4gIGlmIChmIS5mb3JtYXQgIT09IFRPT0xDSEFJTl9GSUxFX0ZPUk1BVCkgYmFkKGB1bnN1cHBvcnRlZCBmb3JtYXQgJHtTdHJpbmcoZiEuZm9ybWF0KX1gKTtcbiAgY29uc3QgdG9vbGNoYWluID0gcGFyc2VMb29rdXBUb29sY2hhaW4oeyByZWxlYXNlVmVyc2lvbjogZiEucmVsZWFzZVZlcnNpb24sIHJlc29sdmVkVmlhOiBmIS5yZXNvbHZlZFZpYSwgdmVyc2lvbnM6IGYhLnRvb2xjaGFpbiB9KTtcbiAgaWYgKCF0b29sY2hhaW4pIGJhZCgnbWlzc2luZyByZWxlYXNlVmVyc2lvbiAvIHJlc29sdmVkVmlhJyk7XG4gIGNvbnN0IGNoZWNrID0gKGg6IFRvb2xjaGFpbkZpbGVIYWxmIHwgdW5kZWZpbmVkLCBuYW1lOiBzdHJpbmcpOiBQbHVnaW5SZWNvcmQgPT4ge1xuICAgIGlmICghaD8ucGx1Z2luIHx8IGgucGx1Z2luLm5hbWUgIT09IG5hbWUgfHwgaC5uYW1lICE9PSBuYW1lKSBiYWQoYG1pc3NpbmcgdGhlICR7bmFtZX0gaGFsZmApO1xuICAgIGlmIChoIS52ZXJzaW9uICE9PSB0b29sY2hhaW4hLnJlbGVhc2VWZXJzaW9uIHx8IGghLnBsdWdpbi52ZXJzaW9uICE9PSB0b29sY2hhaW4hLnJlbGVhc2VWZXJzaW9uKSBiYWQoYCR7bmFtZX0gaXMgbm90IHJlbGVhc2UgJHt0b29sY2hhaW4hLnJlbGVhc2VWZXJzaW9ufWApO1xuICAgIGNvbnN0IHJlYyA9IGghLnBsdWdpbiBhcyBQbHVnaW5SZWNvcmQgJiB7IGltYWdlRGlnZXN0Pzogc3RyaW5nIHwgbnVsbDsgaW1hZ2VSZXBvc2l0b3J5Pzogc3RyaW5nIHwgbnVsbCB9O1xuICAgIGlmICghcmVjLmltYWdlRGlnZXN0IHx8ICFESUdFU1RfUkUudGVzdChyZWMuaW1hZ2VEaWdlc3QpIHx8IHJlYy5pbWFnZURpZ2VzdCAhPT0gaCEuaW1hZ2VEaWdlc3QpIGJhZChgJHtuYW1lfSBoYXMgbm8gc2lnbmVkIGltYWdlIGRpZ2VzdGApO1xuICAgIGlmIChyZWMuaW1hZ2VSZXBvc2l0b3J5ICE9PSBgc3lzdGVtLyR7bmFtZX1gIHx8IGghLmltYWdlUmVwb3NpdG9yeSAhPT0gcmVjLmltYWdlUmVwb3NpdG9yeSkgYmFkKGAke25hbWV9IGlzIG5vdCBzeXN0ZW0vJHtuYW1lfWApO1xuICAgIHJldHVybiBoIS5wbHVnaW47XG4gIH07XG4gIGNvbnN0IGJvb3RzdHJhcCA9IGNoZWNrKGYhLmJvb3RzdHJhcCwgQk9PVFNUUkFQX1BMVUdJTik7XG4gIGNvbnN0IHN5bnRoID0gY2hlY2soZiEuc3ludGgsIFNZTlRIX1BMVUdJTik7XG4gIGNvbnN0IHBsYXRmb3JtQmFzZVVybCA9IHR5cGVvZiBmIS5wbGF0Zm9ybUJhc2VVcmwgPT09ICdzdHJpbmcnICYmIGYhLnBsYXRmb3JtQmFzZVVybC5sZW5ndGggPiAwID8gZiEucGxhdGZvcm1CYXNlVXJsIDogdW5kZWZpbmVkO1xuICByZXR1cm4geyBib290c3RyYXA6IHsgcGx1Z2luOiBib290c3RyYXAsIHRvb2xjaGFpbjogdG9vbGNoYWluISB9LCBzeW50aCwgLi4uKHBsYXRmb3JtQmFzZVVybCAmJiB7IHBsYXRmb3JtQmFzZVVybCB9KSB9O1xufVxuXG4vKipcbiAqIEFwcGx5IGEgdG9vbGNoYWluIGZpbGUgdG8gbG9jYWwtc3BlYyBwcm9wczogdGhlIGJvb3RzdHJhcCBhc1xuICogYHJlc29sdmVkQm9vdHN0cmFwYCwgdGhlIGV4cG9ydGluZyBwbGF0Zm9ybSBhcyB0aGUgcmVnaXN0cnkgcHVsbCBob3N0LCBhbmQg4oCUXG4gKiB3aGVuIHRoZSBzeW50aCBwbHVnaW4gaXMgdGhlIG1hbmFnZWQgYGNkay1zeW50aGAg4oCUIHRoZSBleHBvcnRlZCBzeW50aCBoYWxmXG4gKiBhcyBpdHMgcHJlLXJlc29sdmVkIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5VG9vbGNoYWluRmlsZShwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGZpbGU6IHN0cmluZyk6IFRvb2xjaGFpbkZpbGVbJ3JlbGVhc2VWZXJzaW9uJ10ge1xuICBjb25zdCB7IGJvb3RzdHJhcCwgc3ludGgsIHBsYXRmb3JtQmFzZVVybCB9ID0gcmVhZFRvb2xjaGFpbkZpbGUoZmlsZSk7XG4gIGNvbnN0IHBpbiA9IHRvb2xjaGFpblJlbGVhc2VQaW4ocHJvcHMpO1xuICBpZiAocGluICYmIHBpbiAhPT0gYm9vdHN0cmFwLnRvb2xjaGFpbi5yZWxlYXNlVmVyc2lvbikge1xuICAgIHRocm93IGJvb3RzdHJhcFVucmVzb2x2ZWQoXG4gICAgICBgVGhlIHBpcGVsaW5lIHBpbnMgdG9vbGNoYWluIHJlbGVhc2UgJHtwaW59IGJ1dCAtLXRvb2xjaGFpbi1maWxlIGhvbGRzICR7Ym9vdHN0cmFwLnRvb2xjaGFpbi5yZWxlYXNlVmVyc2lvbn0uIGBcbiAgICAgICsgYEV4cG9ydCB0aGUgcGlubmVkIG9uZTogXFxgcGlwZWxpbmUtbWFuYWdlciB0b29sY2hhaW4gZXhwb3J0IC0tcmVsZWFzZSAke3Bpbn1cXGAuYCxcbiAgICAgIEVycm9yQ29kZS5UT09MQ0hBSU5fUEFJUl9NSVNNQVRDSCxcbiAgICApO1xuICB9XG4gIHByb3BzLnJlc29sdmVkQm9vdHN0cmFwID0gYm9vdHN0cmFwO1xuICBiYWtlUGxhdGZvcm1SZWdpc3RyeShwcm9wcywgcGxhdGZvcm1CYXNlVXJsKTtcbiAgY29uc3Qgc3ludGhLZXkgPSBtYW5hZ2VkU3ludGhLZXkocHJvcHMpO1xuICBpZiAoc3ludGhLZXkpIHtcbiAgICBwcm9wcy5yZXNvbHZlZFBsdWdpbnMgPSB7IC4uLihwcm9wcy5yZXNvbHZlZFBsdWdpbnMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQpLCBbc3ludGhLZXldOiBzeW50aCB9O1xuICB9XG4gIHJldHVybiBib290c3RyYXAudG9vbGNoYWluLnJlbGVhc2VWZXJzaW9uO1xufVxuIl19
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGNoYWluLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdG9vbGNoYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25JLE9BQU8sRUFDNkQsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxHQUMxSCxNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztBQUUvRSw4Q0FBOEM7QUFDOUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBZ0N2QyxvR0FBb0c7QUFDcEcsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxJQUFJLEdBQVcsU0FBUyxDQUFDLDBCQUEwQjtJQUN0RyxPQUFPLElBQUkscUJBQXFCLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxtRkFBbUY7QUFDbkYsS0FBSyxVQUFVLGFBQWEsQ0FDMUIsTUFBaUIsRUFDakIsSUFBWSxFQUNaLFVBQThCLEVBQzlCLE9BQW9EO0lBRXBELE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDdEUsSUFBSSxHQUFZLENBQUM7SUFDakIsSUFBSSxDQUFDO1FBQ0gsR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBVSxxQkFBcUIsRUFBRTtZQUN0RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDaEIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFJLEdBQXVELEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztRQUMxRixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssU0FBUyxDQUFDLG9CQUFvQjtZQUNqRCxDQUFDLENBQUMsa0lBQWtJO1lBQ3BJLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVU7Z0JBQzVCLENBQUMsQ0FBQyxXQUFXLFVBQVUsMkZBQTJGO2dCQUNsSCxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxJQUFJLDJCQUEyQixHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUk7UUFBRSxNQUFNLG1CQUFtQixDQUFDLGFBQWEsSUFBSSxrREFBa0QsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUNqSixJQUFJLENBQUMsU0FBUztRQUFFLE1BQU0sbUJBQW1CLENBQUMsYUFBYSxJQUFJLGlFQUFpRSxDQUFDLENBQUM7SUFDOUgsSUFBSSxVQUFVLElBQUksU0FBUyxDQUFDLGNBQWMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMxRCxNQUFNLG1CQUFtQixDQUFDLGFBQWEsSUFBSSx3QkFBd0IsU0FBUyxDQUFDLGNBQWMsb0JBQW9CLFVBQVUsRUFBRSxFQUFFLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2xLLENBQUM7SUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxNQUFpQixFQUNqQixLQUE4QixFQUM5QixXQUE2QjtJQUU3QixNQUFNLFVBQVUsR0FBRyxPQUFPLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3RILE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sYUFBYSxDQUN6RCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQ3BELHFGQUFxRjtJQUNyRixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUMxRSxDQUFDO0lBQ0YsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMvQixrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRCwrRkFBK0Y7QUFDL0YsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUE4QjtJQUM1RCxNQUFNLEdBQUcsR0FBSSxLQUFLLENBQUMsS0FBMEgsRUFBRSxNQUFNLENBQUM7SUFDdEosSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUMzRCxPQUFPLG1CQUFtQixDQUFDLEdBQXVCLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFNBQTRCLEVBQUUsZUFBZ0Q7SUFDN0csS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLEtBQUssQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRSxNQUFNLG1CQUFtQixDQUN2Qiw0REFBNEQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxjQUFjLFNBQVMsR0FBRyxRQUFRLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFDeEksU0FBUyxDQUFDLHVCQUF1QixDQUNsQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsTUFBb0I7SUFDaEMsTUFBTSxHQUFHLEdBQUcsTUFBeUYsQ0FBQztJQUN0RyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1FBQ3BCLGVBQWUsRUFBRSxHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUU7UUFDMUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRTtRQUNsQyxNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLE1BQWlCLEVBQUUsT0FBZ0I7SUFDdkUsTUFBTSxTQUFTLEdBQUcsTUFBTSxhQUFhLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkcsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNwSCxPQUFPO1FBQ0wsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixjQUFjLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxjQUFjO1FBQ2xELFdBQVcsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVc7UUFDNUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQzNFLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNwQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDakMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0tBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQUcsc0hBQXNIO01BQ3hJLG9FQUFvRSxDQUFDO0FBRXpFLG1FQUFtRTtBQUNuRSxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sbUJBQW1CLENBQUMsd0dBQXdHLGFBQWEsRUFBRSxDQUFDLENBQUM7QUFDdEosQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLHVCQUF1QixDQUFDO0FBRTFDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsSUFBSSxHQUFZLENBQUM7SUFDakIsSUFBSSxDQUFDO1FBQ0gsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sbUJBQW1CLENBQUMsK0JBQStCLEdBQUcsS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFXLEVBQVMsRUFBRSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsb0JBQW9CLEdBQUcsK0JBQStCLEdBQUcsS0FBSyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xKLE1BQU0sQ0FBQyxHQUFHLEdBQW9DLENBQUM7SUFDL0MsSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUQsSUFBSSxDQUFFLENBQUMsTUFBTSxLQUFLLHFCQUFxQjtRQUFFLEdBQUcsQ0FBQyxzQkFBc0IsTUFBTSxDQUFDLENBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEYsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBRSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsQ0FBRSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkksSUFBSSxDQUFDLFNBQVM7UUFBRSxHQUFHLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUM1RCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQWdDLEVBQUUsSUFBWSxFQUFnQixFQUFFO1FBQzdFLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUk7WUFBRSxHQUFHLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBRSxDQUFDLE9BQU8sS0FBSyxTQUFVLENBQUMsY0FBYyxJQUFJLENBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVUsQ0FBQyxjQUFjO1lBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxtQkFBbUIsU0FBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDNUosTUFBTSxHQUFHLEdBQUcsQ0FBRSxDQUFDLE1BQXlGLENBQUM7UUFDekcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsV0FBVyxLQUFLLENBQUUsQ0FBQyxXQUFXO1lBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO1FBQzFJLElBQUksR0FBRyxDQUFDLGVBQWUsS0FBSyxVQUFVLElBQUksRUFBRSxJQUFJLENBQUUsQ0FBQyxlQUFlLEtBQUssR0FBRyxDQUFDLGVBQWU7WUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pJLE9BQU8sQ0FBRSxDQUFDLE1BQU0sQ0FBQztJQUNuQixDQUFDLENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBRSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBRSxDQUFDLGVBQWUsS0FBSyxRQUFRLElBQUksQ0FBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDakksT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3pILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUE4QixFQUFFLElBQVk7SUFDN0UsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEUsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEQsTUFBTSxtQkFBbUIsQ0FDdkIsdUNBQXVDLEdBQUcsK0JBQStCLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJO2NBQzdHLHdFQUF3RSxHQUFHLEtBQUssRUFDbEYsU0FBUyxDQUFDLHVCQUF1QixDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUNELEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDcEMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsS0FBSyxDQUFDLGVBQWUsR0FBRyxFQUFFLEdBQUksS0FBSyxDQUFDLGVBQXVELEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNuSCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIHBpcGVsaW5lJ3MgdG9vbGNoYWluIHJlbGVhc2UgKGRvY3MvcGxhbnMvYm9vdHN0cmFwLWltYWdlLXZlcnNpb25pbmcubWQgwqcyLCBEMikuXG4gKlxuICogYHBpcGVsaW5lLWJvb3RzdHJhcGAgKHRoZSBkZWZhdWx0IENvZGVCdWlsZCBpbWFnZSkgYW5kIGBjZGstc3ludGhgICh0aGUgc3ludGhcbiAqIHN0ZXApIGFyZSBvbmUgcmVsZWFzZS4gVGhlIGJvb3RzdHJhcCBpcyBub3QgYSBzdGVwLCBzbyBub3RoaW5nIGVsc2UgcmVzb2x2ZXNcbiAqIGl0OiB7QGxpbmsgcmVzb2x2ZUJvb3RzdHJhcEltYWdlfSBsb29rcyBpdCB1cCB3aXRoIHRoZSBwaXBlbGluZSdzXG4gKiBgdG9vbGNoYWluLnJlbGVhc2VgIHBpbiwgYW5kIEFOWSBmYWlsdXJlIHN0b3BzIHRoZSBzeW50aCDigJQgdGhlIHRlbXBsYXRlIGhhc1xuICogbm8gb3RoZXIgaW1hZ2UgdG8gZmFsbCBiYWNrIHRvLlxuICpcbiAqIGBwaXBlbGluZSBkZXBsb3kgLS1sb2NhbC1zcGVjYCBuZXZlciBjb250YWN0cyB0aGUgcGxhdGZvcm0sIHNvIGl0IHJlYWRzIHRoZVxuICogcmVsZWFzZSBmcm9tIGEgZmlsZSBgcGlwZWxpbmUtbWFuYWdlciB0b29sY2hhaW4gZXhwb3J0YCB3cm90ZSBpbnN0ZWFkLlxuICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgQlVJTERfSU1BR0VfU1RFUF9LRVksIEVycm9yQ29kZSwgZXJyb3JNZXNzYWdlLCBNQU5BR0VEX1RPT0xDSEFJTiwgdG9vbGNoYWluUmVsZWFzZVBpbiB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7XG4gIHR5cGUgTG9va3VwVG9vbGNoYWluLCB0eXBlIExvb2t1cFdhcm5pbmcsIHR5cGUgUmVzb2x2ZWRCb290c3RyYXAsIHBhcnNlTG9va3VwVG9vbGNoYWluLCBwbHVnaW5BcnRpZmFjdEFsaWFzLCB1bndyYXBMb29rdXAsXG59IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBBcGlDbGllbnQgfSBmcm9tICcuL2FwaS1jbGllbnQuanMnO1xuaW1wb3J0IHsgUGx1Z2luUmVzb2x1dGlvbkVycm9yLCBpc01hbmFnZWRUb29sY2hhaW5SZWYsIHByaW50TG9va3VwV2FybmluZywgc2VydmljZUVycm9yQ29kZSB9IGZyb20gJy4vcGx1Z2luLXJlc29sdmVyLmpzJztcbmltcG9ydCB7IGJha2VQbGF0Zm9ybVJlZ2lzdHJ5IH0gZnJvbSAnLi9yZWdpc3RyeS5qcyc7XG5cbmNvbnN0IHsgYm9vdHN0cmFwOiBCT09UU1RSQVBfUExVR0lOLCBzeW50aDogU1lOVEhfUExVR0lOIH0gPSBNQU5BR0VEX1RPT0xDSEFJTjtcblxuLyoqIGB0b29sY2hhaW4gZXhwb3J0YCBmaWxlIGZvcm1hdCB2ZXJzaW9uLiAqL1xuZXhwb3J0IGNvbnN0IFRPT0xDSEFJTl9GSUxFX0ZPUk1BVCA9IDE7XG5cbi8qKiBBIHBsdWdpbiByZWNvcmQgYXMgdGhlIGxvb2t1cCByZXR1cm5lZCBpdCAob3BhcXVlIGhlcmU7IHBpcGVsaW5lLWNvcmUgcmVhZHMgaXQpLiAqL1xudHlwZSBQbHVnaW5SZWNvcmQgPSBSZXNvbHZlZEJvb3RzdHJhcFsncGx1Z2luJ107XG5cbi8qKiBPbmUgaGFsZiBvZiBhbiBleHBvcnRlZCByZWxlYXNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb29sY2hhaW5GaWxlSGFsZiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBpbWFnZVJlcG9zaXRvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgaW1hZ2VEaWdlc3Q6IHN0cmluZztcbiAgLyoqIFRoZSBmdWxsIGxvb2t1cCByZWNvcmQg4oCUIHdoYXQgdGhlIHN5bnRoIGNvbnN1bWVzLiAqL1xuICByZWFkb25seSBwbHVnaW46IFBsdWdpblJlY29yZDtcbn1cblxuLyoqIFdoYXQgYHBpcGVsaW5lLW1hbmFnZXIgdG9vbGNoYWluIGV4cG9ydGAgd3JpdGVzIGFuZCBgLS10b29sY2hhaW4tZmlsZWAgcmVhZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xjaGFpbkZpbGUge1xuICByZWFkb25seSBmb3JtYXQ6IHR5cGVvZiBUT09MQ0hBSU5fRklMRV9GT1JNQVQ7XG4gIHJlYWRvbmx5IHJlbGVhc2VWZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc29sdmVkVmlhOiBMb29rdXBUb29sY2hhaW5bJ3Jlc29sdmVkVmlhJ107XG4gIHJlYWRvbmx5IHRvb2xjaGFpbjogTG9va3VwVG9vbGNoYWluWyd2ZXJzaW9ucyddO1xuICByZWFkb25seSBleHBvcnRlZEF0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm0gdGhlIHJlbGVhc2Ugd2FzIGV4cG9ydGVkIGZyb20uIEl0cyBob3N0IGlzIHRoZSByZWdpc3RyeVxuICAgKiBDb2RlQnVpbGQgcHVsbHMgYm90aCBpbWFnZXMgZnJvbSwgc28gYSBsb2NhbC1zcGVjIGRlcGxveSBiYWtlcyBpdCBhcyB0aGVcbiAgICogcHVsbCBob3N0ICh1bmxlc3MgSU1BR0VfUkVHSVNUUllfUFVMTF9IT1NUIGlzIHNldCksIGxpa2UgYSBwbGF0Zm9ybSBkZXBsb3kuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybUJhc2VVcmw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJvb3RzdHJhcDogVG9vbGNoYWluRmlsZUhhbGY7XG4gIHJlYWRvbmx5IHN5bnRoOiBUb29sY2hhaW5GaWxlSGFsZjtcbn1cblxuLyoqIFRoZSByZWZ1c2FsIGV2ZXJ5IGZhaWx1cmUgaGVyZSByYWlzZXMg4oCUIG9uZSBjb2RlLCBzbyBgUEJfU1lOVEhfRkFJTFVSRWAgcmVwb3J0cyBpdCB1bmlmb3JtbHkuICovXG5leHBvcnQgZnVuY3Rpb24gYm9vdHN0cmFwVW5yZXNvbHZlZChtZXNzYWdlOiBzdHJpbmcsIGNvZGU6IHN0cmluZyA9IEVycm9yQ29kZS5CT09UU1RSQVBfSU1BR0VfVU5SRVNPTFZFRCk6IFBsdWdpblJlc29sdXRpb25FcnJvciB7XG4gIHJldHVybiBuZXcgUGx1Z2luUmVzb2x1dGlvbkVycm9yKFt7IHBsdWdpbjogQk9PVFNUUkFQX1BMVUdJTiwgY29kZSwgbWVzc2FnZSB9XSk7XG59XG5cbi8qKiBMb29rIHVwIG9uZSBtYW5hZ2VkIGhhbGYuIFRocm93cyB7QGxpbmsgYm9vdHN0cmFwVW5yZXNvbHZlZH0gb24gYW55IGZhaWx1cmUuICovXG5hc3luYyBmdW5jdGlvbiBsb29rdXBNYW5hZ2VkKFxuICBjbGllbnQ6IEFwaUNsaWVudCxcbiAgbmFtZTogc3RyaW5nLFxuICByZWxlYXNlUGluOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGNvbnRleHQ/OiB7IHBpcGVsaW5lSWQ6IHN0cmluZzsgc3RlcEtleXM6IHN0cmluZ1tdIH0sXG4pOiBQcm9taXNlPHsgcGx1Z2luOiBQbHVnaW5SZWNvcmQ7IHRvb2xjaGFpbjogTG9va3VwVG9vbGNoYWluOyB3YXJuaW5nczogTG9va3VwV2FybmluZ1tdIH0+IHtcbiAgY29uc3Qgd2hhdCA9IGAke25hbWV9JHtyZWxlYXNlUGluID8gYCAocmVsZWFzZSAke3JlbGVhc2VQaW59KWAgOiAnJ31gO1xuICBsZXQgcmVzOiB1bmtub3duO1xuICB0cnkge1xuICAgIHJlcyA9IGF3YWl0IGNsaWVudC5wb3N0PHVua25vd24+KCcvYXBpL3BsdWdpbnMvbG9va3VwJywge1xuICAgICAgZmlsdGVyOiB7IG5hbWUgfSxcbiAgICAgIC4uLihyZWxlYXNlUGluID8geyByZWxlYXNlUGluIH0gOiB7fSksXG4gICAgICAuLi4oY29udGV4dCA/IHsgY29udGV4dCB9IDoge30pLFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zdCBjb2RlID0gc2VydmljZUVycm9yQ29kZShlcnIpO1xuICAgIGNvbnN0IHN0YXR1cyA9IChlcnIgYXMgeyByZXNwb25zZT86IHsgc3RhdHVzPzogdW5rbm93biB9IH0gfCB1bmRlZmluZWQpPy5yZXNwb25zZT8uc3RhdHVzO1xuICAgIGNvbnN0IHdoeSA9IGNvZGUgPT09IEVycm9yQ29kZS5UT09MQ0hBSU5fTk9fREVGQVVMVFxuICAgICAgPyAndGhlIHBsYXRmb3JtIGhhcyBubyBkZWZhdWx0IHRvb2xjaGFpbiByZWxlYXNlIChhbiBvcGVyYXRvciBzZXRzIG9uZSB3aXRoIGBkZXBsb3kvYmluL2luaXQtcGxhdGZvcm0uc2hgIG9yIHRoZSBUb29sY2hhaW4gY29uc29sZSknXG4gICAgICA6IHN0YXR1cyA9PT0gNDA0ICYmIHJlbGVhc2VQaW5cbiAgICAgICAgPyBgcmVsZWFzZSAke3JlbGVhc2VQaW59IGRvZXMgbm90IGV4aXN0IChkZWxldGVkKSDigJQgcGluIGFub3RoZXIgcmVsZWFzZSBvciBjbGVhciB0aGUgcGlwZWxpbmUncyB0b29sY2hhaW4ucmVsZWFzZWBcbiAgICAgICAgOiBlcnJvck1lc3NhZ2UoZXJyKTtcbiAgICB0aHJvdyBib290c3RyYXBVbnJlc29sdmVkKGBUb29sY2hhaW4gJHt3aGF0fSBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6ICR7d2h5fWApO1xuICB9XG4gIGNvbnN0IHsgcGx1Z2luLCB3YXJuaW5ncywgdG9vbGNoYWluIH0gPSB1bndyYXBMb29rdXAocmVzKTtcbiAgaWYgKCFwbHVnaW4gfHwgcGx1Z2luLm5hbWUgIT09IG5hbWUpIHRocm93IGJvb3RzdHJhcFVucmVzb2x2ZWQoYFRvb2xjaGFpbiAke3doYXR9IGNvdWxkIG5vdCBiZSByZXNvbHZlZDogdGhlIGxvb2t1cCByZXR1cm5lZCBubyAke25hbWV9IHJlY29yZGApO1xuICBpZiAoIXRvb2xjaGFpbikgdGhyb3cgYm9vdHN0cmFwVW5yZXNvbHZlZChgVG9vbGNoYWluICR7d2hhdH0gY291bGQgbm90IGJlIHJlc29sdmVkOiB0aGUgYW5zd2VyIGNhcnJpZWQgbm8gdG9vbGNoYWluIHJlbGVhc2VgKTtcbiAgaWYgKHJlbGVhc2VQaW4gJiYgdG9vbGNoYWluLnJlbGVhc2VWZXJzaW9uICE9PSByZWxlYXNlUGluKSB7XG4gICAgdGhyb3cgYm9vdHN0cmFwVW5yZXNvbHZlZChgVG9vbGNoYWluICR7d2hhdH0gcmVzb2x2ZWQgdG8gcmVsZWFzZSAke3Rvb2xjaGFpbi5yZWxlYXNlVmVyc2lvbn0sIG5vdCB0aGUgcGlubmVkICR7cmVsZWFzZVBpbn1gLCBFcnJvckNvZGUuVE9PTENIQUlOX1BBSVJfTUlTTUFUQ0gpO1xuICB9XG4gIHJldHVybiB7IHBsdWdpbiwgdG9vbGNoYWluLCB3YXJuaW5ncyB9O1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIHBpcGVsaW5lJ3MgYHBpcGVsaW5lLWJvb3RzdHJhcGAgdGhyb3VnaCBgL3BsdWdpbnMvbG9va3VwYCB3aXRoXG4gKiBgcmVsZWFzZVBpbiA9IHByb3BzLnRvb2xjaGFpbj8ucmVsZWFzZWAuIEZBVEFMIG9uIGFueSBmYWlsdXJlXG4gKiAoYEJPT1RTVFJBUF9JTUFHRV9VTlJFU09MVkVEYCk6IHVucmVhY2hhYmxlIHBsYXRmb3JtLCBubyBkZWZhdWx0ICg0MDlcbiAqIGBUT09MQ0hBSU5fTk9fREVGQVVMVGApLCBhIGRlbGV0ZWQgcGluICg0MDQpLCBhIHJlZnVzZWQgc2lnbmF0dXJlLCBvciBhblxuICogYW5zd2VyIHdpdGhvdXQgYSByZWxlYXNlLiBXYXJuaW5ncyBhcmUgcHJpbnRlZCwgYXBwZW5kZWQgdG8gYHdhcm5pbmdTaW5rYCxcbiAqIGFuZCDigJQgd2l0aCBhIGBwaXBlbGluZUlkYCDigJQgcmVjb3JkZWQgYnkgdGhlIHBsYXRmb3JtIG9uIHRoZSBwaXBlbGluZSdzXG4gKiBcIkJ1aWxkIGltYWdlXCIgcm93IChgY29udGV4dC5zdGVwS2V5czogWydidWlsZC1pbWFnZSddYCkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlQm9vdHN0cmFwSW1hZ2UoXG4gIGNsaWVudDogQXBpQ2xpZW50LFxuICBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHdhcm5pbmdTaW5rPzogTG9va3VwV2FybmluZ1tdLFxuKTogUHJvbWlzZTxSZXNvbHZlZEJvb3RzdHJhcD4ge1xuICBjb25zdCBwaXBlbGluZUlkID0gdHlwZW9mIHByb3BzLnBpcGVsaW5lSWQgPT09ICdzdHJpbmcnICYmIHByb3BzLnBpcGVsaW5lSWQubGVuZ3RoID4gMCA/IHByb3BzLnBpcGVsaW5lSWQgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHsgcGx1Z2luLCB0b29sY2hhaW4sIHdhcm5pbmdzIH0gPSBhd2FpdCBsb29rdXBNYW5hZ2VkKFxuICAgIGNsaWVudCwgQk9PVFNUUkFQX1BMVUdJTiwgdG9vbGNoYWluUmVsZWFzZVBpbihwcm9wcyksXG4gICAgLy8gUmVjb3JkZWQgYWdhaW5zdCB0aGUgcGlwZWxpbmUncyBcIkJ1aWxkIGltYWdlXCIgcm93IChhcGktY29yZSBCVUlMRF9JTUFHRV9TVEVQX0tFWSkuXG4gICAgcGlwZWxpbmVJZCA/IHsgcGlwZWxpbmVJZCwgc3RlcEtleXM6IFtCVUlMRF9JTUFHRV9TVEVQX0tFWV0gfSA6IHVuZGVmaW5lZCxcbiAgKTtcbiAgZm9yIChjb25zdCB3YXJuaW5nIG9mIHdhcm5pbmdzKSB7XG4gICAgcHJpbnRMb29rdXBXYXJuaW5nKEJPT1RTVFJBUF9QTFVHSU4sIHdhcm5pbmcpO1xuICAgIHdhcm5pbmdTaW5rPy5wdXNoKHdhcm5pbmcpO1xuICB9XG4gIHJldHVybiB7IHBsdWdpbiwgdG9vbGNoYWluIH07XG59XG5cbi8qKiBUaGUgbWFuYWdlZCBzeW50aCByZWZlcmVuY2Ugb2YgYSBwaXBlbGluZSdzIHByb3BzLCB3aGVuIGl0cyBzeW50aCBwbHVnaW4gaXMgYGNkay1zeW50aGAuICovXG5leHBvcnQgZnVuY3Rpb24gbWFuYWdlZFN5bnRoS2V5KHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCByZWYgPSAocHJvcHMuc3ludGggYXMgeyBwbHVnaW4/OiB7IG5hbWU/OiBzdHJpbmc7IHB1Ymxpc2hlcj86IHN0cmluZzsgYWxpYXM/OiBzdHJpbmc7IGZpbHRlcj86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0gfSB8IHVuZGVmaW5lZCk/LnBsdWdpbjtcbiAgaWYgKCFyZWY/Lm5hbWUgfHwgIWlzTWFuYWdlZFRvb2xjaGFpblJlZihyZWYpKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHBsdWdpbkFydGlmYWN0QWxpYXMocmVmIGFzIHsgbmFtZTogc3RyaW5nIH0pO1xufVxuXG4vKipcbiAqIEJvdGggaGFsdmVzIG9mIG9uZSByZWxlYXNlIG11c3QgYWdyZWUuIEEgbWFuYWdlZCBgY2RrLXN5bnRoYCB0aGF0IHJlc29sdmVkXG4gKiB0byBhIGRpZmZlcmVudCByZWxlYXNlIHRoYW4gdGhlIGJvb3RzdHJhcCBpcyByZWZ1c2VkIChuZXZlciBzZXJ2ZWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0T25lUmVsZWFzZShib290c3RyYXA6IFJlc29sdmVkQm9vdHN0cmFwLCBzeW50aFRvb2xjaGFpbnM6IFJlY29yZDxzdHJpbmcsIExvb2t1cFRvb2xjaGFpbj4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBba2V5LCBzeW50aF0gb2YgT2JqZWN0LmVudHJpZXMoc3ludGhUb29sY2hhaW5zKSkge1xuICAgIGlmIChzeW50aC5yZWxlYXNlVmVyc2lvbiAhPT0gYm9vdHN0cmFwLnRvb2xjaGFpbi5yZWxlYXNlVmVyc2lvbikge1xuICAgICAgdGhyb3cgYm9vdHN0cmFwVW5yZXNvbHZlZChcbiAgICAgICAgYFRvb2xjaGFpbiBoYWx2ZXMgZGlzYWdyZWU6IHBpcGVsaW5lLWJvb3RzdHJhcCBpcyByZWxlYXNlICR7Ym9vdHN0cmFwLnRvb2xjaGFpbi5yZWxlYXNlVmVyc2lvbn0gYnV0IFwiJHtrZXl9XCIgaXMgJHtzeW50aC5yZWxlYXNlVmVyc2lvbn1gLFxuICAgICAgICBFcnJvckNvZGUuVE9PTENIQUlOX1BBSVJfTUlTTUFUQ0gsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBoYWxmKHBsdWdpbjogUGx1Z2luUmVjb3JkKTogVG9vbGNoYWluRmlsZUhhbGYge1xuICBjb25zdCByZWMgPSBwbHVnaW4gYXMgUGx1Z2luUmVjb3JkICYgeyBpbWFnZVJlcG9zaXRvcnk/OiBzdHJpbmcgfCBudWxsOyBpbWFnZURpZ2VzdD86IHN0cmluZyB8IG51bGwgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiByZWMubmFtZSxcbiAgICB2ZXJzaW9uOiByZWMudmVyc2lvbixcbiAgICBpbWFnZVJlcG9zaXRvcnk6IHJlYy5pbWFnZVJlcG9zaXRvcnkgPz8gJycsXG4gICAgaW1hZ2VEaWdlc3Q6IHJlYy5pbWFnZURpZ2VzdCA/PyAnJyxcbiAgICBwbHVnaW4sXG4gIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZSBib3RoIGhhbHZlcyBvZiBhIHJlbGVhc2UgZm9yIGV4cG9ydDogYHJlbGVhc2VgIHdoZW4gZ2l2ZW4sIGVsc2VcbiAqIHdoYXRldmVyIHRoZSBjYWxsZXIncyBvcmcgcmVzb2x2ZXMgdG8gbm93IChpdHMgZGVmYXVsdCwgY2FuYXJ5IG9yIHRoZVxuICogcGxhdGZvcm0gZGVmYXVsdCkuIEJvdGggbG9va3VwcyBzZW5kIHRoZSBzYW1lIHBpbjsgd2hlbiBubyBwaW4gaXMgZ2l2ZW4gdGhlXG4gKiBib290c3RyYXAncyByZWxlYXNlIGJlY29tZXMgdGhlIHN5bnRoJ3MgcGluLCBzbyB0aGUgaGFsdmVzIGFsd2F5cyBtYXRjaC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4cG9ydFRvb2xjaGFpbihjbGllbnQ6IEFwaUNsaWVudCwgcmVsZWFzZT86IHN0cmluZyk6IFByb21pc2U8VG9vbGNoYWluRmlsZT4ge1xuICBjb25zdCBib290c3RyYXAgPSBhd2FpdCBsb29rdXBNYW5hZ2VkKGNsaWVudCwgQk9PVFNUUkFQX1BMVUdJTiwgcmVsZWFzZSk7XG4gIGNvbnN0IHN5bnRoID0gYXdhaXQgbG9va3VwTWFuYWdlZChjbGllbnQsIFNZTlRIX1BMVUdJTiwgcmVsZWFzZSA/PyBib290c3RyYXAudG9vbGNoYWluLnJlbGVhc2VWZXJzaW9uKTtcbiAgYXNzZXJ0T25lUmVsZWFzZSh7IHBsdWdpbjogYm9vdHN0cmFwLnBsdWdpbiwgdG9vbGNoYWluOiBib290c3RyYXAudG9vbGNoYWluIH0sIHsgW1NZTlRIX1BMVUdJTl06IHN5bnRoLnRvb2xjaGFpbiB9KTtcbiAgcmV0dXJuIHtcbiAgICBmb3JtYXQ6IFRPT0xDSEFJTl9GSUxFX0ZPUk1BVCxcbiAgICByZWxlYXNlVmVyc2lvbjogYm9vdHN0cmFwLnRvb2xjaGFpbi5yZWxlYXNlVmVyc2lvbixcbiAgICByZXNvbHZlZFZpYTogYm9vdHN0cmFwLnRvb2xjaGFpbi5yZXNvbHZlZFZpYSxcbiAgICB0b29sY2hhaW46IHsgLi4uc3ludGgudG9vbGNoYWluLnZlcnNpb25zLCAuLi5ib290c3RyYXAudG9vbGNoYWluLnZlcnNpb25zIH0sXG4gICAgZXhwb3J0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIC4uLihjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLmJhc2VVcmwgPyB7IHBsYXRmb3JtQmFzZVVybDogY2xpZW50LmdldENvbmZpZygpLmFwaS5iYXNlVXJsIH0gOiB7fSksXG4gICAgYm9vdHN0cmFwOiBoYWxmKGJvb3RzdHJhcC5wbHVnaW4pLFxuICAgIHN5bnRoOiBoYWxmKHN5bnRoLnBsdWdpbiksXG4gIH07XG59XG5cbmNvbnN0IEhPV19UT19FWFBPUlQgPSAnUHJvZHVjZSBvbmUgd2l0aCBgcGlwZWxpbmUtbWFuYWdlciB0b29sY2hhaW4gZXhwb3J0IC0tb3V0cHV0IHRvb2xjaGFpbi5qc29uYCAoYWRkIGAtLXJlbGVhc2UgPFY+YCB0byBwaW4gYSByZWxlYXNlKSAnXG4gICsgJ2FnYWluc3QgdGhlIHBsYXRmb3JtLCB0aGVuIHBhc3MgYC0tdG9vbGNoYWluLWZpbGUgdG9vbGNoYWluLmpzb25gLic7XG5cbi8qKiBUaGUgbG9jYWwtc3BlYyByZWZ1c2FsIHdoZW4gbm8gYC0tdG9vbGNoYWluLWZpbGVgIHdhcyBnaXZlbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b29sY2hhaW5GaWxlUmVxdWlyZWQoKTogUGx1Z2luUmVzb2x1dGlvbkVycm9yIHtcbiAgcmV0dXJuIGJvb3RzdHJhcFVucmVzb2x2ZWQoYC0tbG9jYWwtc3BlYyBkZXBsb3lzIHdpdGhvdXQgdGhlIHBsYXRmb3JtLCBzbyB0aGUgdG9vbGNoYWluIHJlbGVhc2UgbXVzdCBjb21lIGZyb20gLS10b29sY2hhaW4tZmlsZS4gJHtIT1dfVE9fRVhQT1JUfWApO1xufVxuXG5jb25zdCBESUdFU1RfUkUgPSAvXnNoYTI1NjpbMC05YS1mXXs2NH0kLztcblxuLyoqXG4gKiBSZWFkIGFuZCBjaGVjayBhIGB0b29sY2hhaW4gZXhwb3J0YCBmaWxlOiBib3RoIGhhbHZlcyBwcmVzZW50LCBuYW1lZCByaWdodCxcbiAqIGRpZ2VzdC1waW5uZWQsIGFuZCBvZiBvbmUgcmVsZWFzZS4gQW55IHByb2JsZW0gaXMgYEJPT1RTVFJBUF9JTUFHRV9VTlJFU09MVkVEYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRUb29sY2hhaW5GaWxlKGZpbGU6IHN0cmluZyk6IHsgYm9vdHN0cmFwOiBSZXNvbHZlZEJvb3RzdHJhcDsgc3ludGg6IFBsdWdpblJlY29yZDsgcGxhdGZvcm1CYXNlVXJsPzogc3RyaW5nIH0ge1xuICBjb25zdCBhYnMgPSBwYXRoLnJlc29sdmUoZmlsZSk7XG4gIGxldCByYXc6IHVua25vd247XG4gIHRyeSB7XG4gICAgcmF3ID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoYWJzLCAndXRmLTgnKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IGJvb3RzdHJhcFVucmVzb2x2ZWQoYENhbid0IHJlYWQgLS10b29sY2hhaW4tZmlsZSAke2Fic306ICR7ZXJyb3JNZXNzYWdlKGVycil9LiAke0hPV19UT19FWFBPUlR9YCk7XG4gIH1cbiAgY29uc3QgYmFkID0gKHdoeTogc3RyaW5nKTogbmV2ZXIgPT4geyB0aHJvdyBib290c3RyYXBVbnJlc29sdmVkKGAtLXRvb2xjaGFpbi1maWxlICR7YWJzfSBpcyBub3QgYSB0b29sY2hhaW4gZXhwb3J0OiAke3doeX0uICR7SE9XX1RPX0VYUE9SVH1gKTsgfTtcbiAgY29uc3QgZiA9IHJhdyBhcyBQYXJ0aWFsPFRvb2xjaGFpbkZpbGU+IHwgbnVsbDtcbiAgaWYgKCFmIHx8IHR5cGVvZiBmICE9PSAnb2JqZWN0JykgYmFkKCdub3QgYSBKU09OIG9iamVjdCcpO1xuICBpZiAoZiEuZm9ybWF0ICE9PSBUT09MQ0hBSU5fRklMRV9GT1JNQVQpIGJhZChgdW5zdXBwb3J0ZWQgZm9ybWF0ICR7U3RyaW5nKGYhLmZvcm1hdCl9YCk7XG4gIGNvbnN0IHRvb2xjaGFpbiA9IHBhcnNlTG9va3VwVG9vbGNoYWluKHsgcmVsZWFzZVZlcnNpb246IGYhLnJlbGVhc2VWZXJzaW9uLCByZXNvbHZlZFZpYTogZiEucmVzb2x2ZWRWaWEsIHZlcnNpb25zOiBmIS50b29sY2hhaW4gfSk7XG4gIGlmICghdG9vbGNoYWluKSBiYWQoJ21pc3NpbmcgcmVsZWFzZVZlcnNpb24gLyByZXNvbHZlZFZpYScpO1xuICBjb25zdCBjaGVjayA9IChoOiBUb29sY2hhaW5GaWxlSGFsZiB8IHVuZGVmaW5lZCwgbmFtZTogc3RyaW5nKTogUGx1Z2luUmVjb3JkID0+IHtcbiAgICBpZiAoIWg/LnBsdWdpbiB8fCBoLnBsdWdpbi5uYW1lICE9PSBuYW1lIHx8IGgubmFtZSAhPT0gbmFtZSkgYmFkKGBtaXNzaW5nIHRoZSAke25hbWV9IGhhbGZgKTtcbiAgICBpZiAoaCEudmVyc2lvbiAhPT0gdG9vbGNoYWluIS5yZWxlYXNlVmVyc2lvbiB8fCBoIS5wbHVnaW4udmVyc2lvbiAhPT0gdG9vbGNoYWluIS5yZWxlYXNlVmVyc2lvbikgYmFkKGAke25hbWV9IGlzIG5vdCByZWxlYXNlICR7dG9vbGNoYWluIS5yZWxlYXNlVmVyc2lvbn1gKTtcbiAgICBjb25zdCByZWMgPSBoIS5wbHVnaW4gYXMgUGx1Z2luUmVjb3JkICYgeyBpbWFnZURpZ2VzdD86IHN0cmluZyB8IG51bGw7IGltYWdlUmVwb3NpdG9yeT86IHN0cmluZyB8IG51bGwgfTtcbiAgICBpZiAoIXJlYy5pbWFnZURpZ2VzdCB8fCAhRElHRVNUX1JFLnRlc3QocmVjLmltYWdlRGlnZXN0KSB8fCByZWMuaW1hZ2VEaWdlc3QgIT09IGghLmltYWdlRGlnZXN0KSBiYWQoYCR7bmFtZX0gaGFzIG5vIHNpZ25lZCBpbWFnZSBkaWdlc3RgKTtcbiAgICBpZiAocmVjLmltYWdlUmVwb3NpdG9yeSAhPT0gYHN5c3RlbS8ke25hbWV9YCB8fCBoIS5pbWFnZVJlcG9zaXRvcnkgIT09IHJlYy5pbWFnZVJlcG9zaXRvcnkpIGJhZChgJHtuYW1lfSBpcyBub3Qgc3lzdGVtLyR7bmFtZX1gKTtcbiAgICByZXR1cm4gaCEucGx1Z2luO1xuICB9O1xuICBjb25zdCBib290c3RyYXAgPSBjaGVjayhmIS5ib290c3RyYXAsIEJPT1RTVFJBUF9QTFVHSU4pO1xuICBjb25zdCBzeW50aCA9IGNoZWNrKGYhLnN5bnRoLCBTWU5USF9QTFVHSU4pO1xuICBjb25zdCBwbGF0Zm9ybUJhc2VVcmwgPSB0eXBlb2YgZiEucGxhdGZvcm1CYXNlVXJsID09PSAnc3RyaW5nJyAmJiBmIS5wbGF0Zm9ybUJhc2VVcmwubGVuZ3RoID4gMCA/IGYhLnBsYXRmb3JtQmFzZVVybCA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHsgYm9vdHN0cmFwOiB7IHBsdWdpbjogYm9vdHN0cmFwLCB0b29sY2hhaW46IHRvb2xjaGFpbiEgfSwgc3ludGgsIC4uLihwbGF0Zm9ybUJhc2VVcmwgJiYgeyBwbGF0Zm9ybUJhc2VVcmwgfSkgfTtcbn1cblxuLyoqXG4gKiBBcHBseSBhIHRvb2xjaGFpbiBmaWxlIHRvIGxvY2FsLXNwZWMgcHJvcHM6IHRoZSBib290c3RyYXAgYXNcbiAqIGByZXNvbHZlZEJvb3RzdHJhcGAsIHRoZSBleHBvcnRpbmcgcGxhdGZvcm0gYXMgdGhlIHJlZ2lzdHJ5IHB1bGwgaG9zdCwgYW5kIOKAlFxuICogd2hlbiB0aGUgc3ludGggcGx1Z2luIGlzIHRoZSBtYW5hZ2VkIGBjZGstc3ludGhgIOKAlCB0aGUgZXhwb3J0ZWQgc3ludGggaGFsZlxuICogYXMgaXRzIHByZS1yZXNvbHZlZCBwbHVnaW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVRvb2xjaGFpbkZpbGUocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBmaWxlOiBzdHJpbmcpOiBUb29sY2hhaW5GaWxlWydyZWxlYXNlVmVyc2lvbiddIHtcbiAgY29uc3QgeyBib290c3RyYXAsIHN5bnRoLCBwbGF0Zm9ybUJhc2VVcmwgfSA9IHJlYWRUb29sY2hhaW5GaWxlKGZpbGUpO1xuICBjb25zdCBwaW4gPSB0b29sY2hhaW5SZWxlYXNlUGluKHByb3BzKTtcbiAgaWYgKHBpbiAmJiBwaW4gIT09IGJvb3RzdHJhcC50b29sY2hhaW4ucmVsZWFzZVZlcnNpb24pIHtcbiAgICB0aHJvdyBib290c3RyYXBVbnJlc29sdmVkKFxuICAgICAgYFRoZSBwaXBlbGluZSBwaW5zIHRvb2xjaGFpbiByZWxlYXNlICR7cGlufSBidXQgLS10b29sY2hhaW4tZmlsZSBob2xkcyAke2Jvb3RzdHJhcC50b29sY2hhaW4ucmVsZWFzZVZlcnNpb259LiBgXG4gICAgICArIGBFeHBvcnQgdGhlIHBpbm5lZCBvbmU6IFxcYHBpcGVsaW5lLW1hbmFnZXIgdG9vbGNoYWluIGV4cG9ydCAtLXJlbGVhc2UgJHtwaW59XFxgLmAsXG4gICAgICBFcnJvckNvZGUuVE9PTENIQUlOX1BBSVJfTUlTTUFUQ0gsXG4gICAgKTtcbiAgfVxuICBwcm9wcy5yZXNvbHZlZEJvb3RzdHJhcCA9IGJvb3RzdHJhcDtcbiAgYmFrZVBsYXRmb3JtUmVnaXN0cnkocHJvcHMsIHBsYXRmb3JtQmFzZVVybCk7XG4gIGNvbnN0IHN5bnRoS2V5ID0gbWFuYWdlZFN5bnRoS2V5KHByb3BzKTtcbiAgaWYgKHN5bnRoS2V5KSB7XG4gICAgcHJvcHMucmVzb2x2ZWRQbHVnaW5zID0geyAuLi4ocHJvcHMucmVzb2x2ZWRQbHVnaW5zIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkKSwgW3N5bnRoS2V5XTogc3ludGggfTtcbiAgfVxuICByZXR1cm4gYm9vdHN0cmFwLnRvb2xjaGFpbi5yZWxlYXNlVmVyc2lvbjtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -33,9 +33,9 @@
33
33
  "@aws-sdk/client-secrets-manager": "3.1160.0",
34
34
  "@aws-sdk/client-sqs": "3.1160.0",
35
35
  "@aws-sdk/client-sts": "3.1160.0",
36
- "@pipeline-builder/ai-core": "4.3.11",
37
- "@pipeline-builder/api-core": "5.2.11",
38
- "@pipeline-builder/pipeline-core": "4.4.12",
36
+ "@pipeline-builder/ai-core": "4.3.12",
37
+ "@pipeline-builder/api-core": "5.2.12",
38
+ "@pipeline-builder/pipeline-core": "4.4.13",
39
39
  "aws-cdk-lib": "2.275.0",
40
40
  "axios": "1.21.1",
41
41
  "commander": "15.1.0",
@@ -106,7 +106,7 @@
106
106
  "registry": "https://registry.npmjs.org/",
107
107
  "provenance": true
108
108
  },
109
- "version": "4.5.3",
109
+ "version": "4.5.4",
110
110
  "bugs": {
111
111
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
112
112
  },