cdk-nextjs 0.7.9 → 0.7.11

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 (54) hide show
  1. package/.jsii +3 -3
  2. package/README.md +1 -1
  3. package/docs/harness-coverage.md +1 -1
  4. package/docs/nextjs-private-apis.md +128 -0
  5. package/lib/adapter/adapter.mjs +276 -24
  6. package/lib/adapter/build-outputs.d.ts +1 -1
  7. package/lib/adapter/build-outputs.js +29 -13
  8. package/lib/adapter/build-outputs.test.js +35 -7
  9. package/lib/adapter/cache-handler.d.ts +1 -1
  10. package/lib/adapter/cache-handler.js +1 -1
  11. package/lib/adapter/cache-kinds.d.ts +12 -1
  12. package/lib/adapter/cache-kinds.js +16 -4
  13. package/lib/adapter/init-cache.js +7 -7
  14. package/lib/adapter/local-file-cache-handler.d.ts +1 -1
  15. package/lib/adapter/local-file-cache-handler.js +1 -1
  16. package/lib/adapter/memory-cache-handler.d.ts +2 -2
  17. package/lib/adapter/memory-cache-handler.js +1 -1
  18. package/lib/adapter/s3-cache-handler.d.ts +2 -2
  19. package/lib/adapter/s3-cache-handler.js +1 -1
  20. package/lib/adapter/use-cache-common.d.ts +1 -1
  21. package/lib/adapter/use-cache-common.js +1 -1
  22. package/lib/adapter/use-cache-common.test.js +1 -1
  23. package/lib/adapter/use-cache-default-handler.d.ts +1 -1
  24. package/lib/adapter/use-cache-default-handler.js +1 -1
  25. package/lib/adapter/use-cache-handlers.test.js +1 -1
  26. package/lib/adapter/use-cache-remote-handler.d.ts +1 -1
  27. package/lib/adapter/use-cache-remote-handler.js +1 -1
  28. package/lib/cdk-nextjs-version.d.ts +10 -0
  29. package/lib/cdk-nextjs-version.js +15 -0
  30. package/lib/nextjs-api.js +1 -1
  31. package/lib/nextjs-build/nextjs-build.js +7 -6
  32. package/lib/nextjs-build/nextjs-build.test.js +16 -3
  33. package/lib/nextjs-cache.js +1 -1
  34. package/lib/nextjs-compute/nextjs-containers.js +1 -1
  35. package/lib/nextjs-compute/nextjs-functions.js +1 -1
  36. package/lib/nextjs-distribution.js +5 -5
  37. package/lib/nextjs-post-deploy.js +1 -1
  38. package/lib/nextjs-static-assets.js +1 -1
  39. package/lib/root-constructs/nextjs-base-construct.js +1 -1
  40. package/lib/root-constructs/nextjs-global-containers.js +1 -1
  41. package/lib/root-constructs/nextjs-global-functions.js +1 -1
  42. package/lib/root-constructs/nextjs-regional-containers.js +1 -1
  43. package/lib/root-constructs/nextjs-regional-functions.js +1 -1
  44. package/lib/runtime/core.test.js +17 -8
  45. package/lib/runtime/dispatch.js +4 -5
  46. package/lib/runtime/image.js +43 -32
  47. package/lib/runtime/image.test.js +27 -26
  48. package/lib/runtime/lambda.mjs +276 -36
  49. package/lib/runtime/manifest.d.ts +34 -8
  50. package/lib/runtime/manifest.js +7 -5
  51. package/lib/runtime/server.mjs +276 -36
  52. package/package.json +1 -1
  53. package/scripts/capture-adapter-fixture.mjs +13 -1
  54. package/scripts/zero-config-build.mjs +5 -1
@@ -1,4 +1,4 @@
1
- import { CacheHandler, CacheHandlerValue, CacheHandlerContext } from "next/dist/server/lib/incremental-cache";
1
+ import type { CacheHandler, CacheHandlerValue, CacheHandlerContext } from "next/dist/server/lib/incremental-cache";
2
2
  import type { IncrementalCacheValue } from "next/dist/server/response-cache";
3
3
  import { GetCacheHandlerContext, SetCacheHandlerContext } from "./cache-utils";
4
4
  /**
@@ -158,4 +158,4 @@ class CdkNextjsCacheHandler {
158
158
  async resetRequestCache() { }
159
159
  }
160
160
  exports.default = CdkNextjsCacheHandler;
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyL2NhY2hlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0VBTUU7QUFDRixzREFBc0Q7QUFDdEQsa0RBQTZCO0FBTzdCLCtDQUt1QjtBQUN2Qix5RUFBbUU7QUFDbkUsaUVBQTREO0FBQzVELHlEQUFvRDtBQUNwRCx5REFBaUU7QUFFakU7O0dBRUc7QUFDSCxNQUFxQixxQkFBcUI7SUFDeEM7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLG1CQUFtQixHQUE4QixJQUFJLENBQUM7SUFDN0QsTUFBTSxDQUFDLHFCQUFxQixHQUEwQixJQUFJLENBQUM7SUFFbEQsV0FBVyxHQUFHLElBQUEsK0JBQVksR0FBRSxDQUFDO0lBQzdCLEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRTNFLDBCQUEwQjtJQUNsQixnQkFBZ0IsQ0FBeUI7SUFFakQsb0RBQW9EO0lBQzVDLGFBQWEsQ0FBc0I7SUFDbkMsZUFBZSxDQUFrQjtJQUV6QyxZQUFZLE9BQTRCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdEQUFxQixFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FDUiwrQkFBK0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3JFLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMscUJBQXFCO2dCQUNoRSxJQUFBLGdDQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxpQ0FBYyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFx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c3RvbSBDYWNoZSBIYW5kbGVyLiBTZWU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL25leHQtY29uZmlnLWpzL2luY3JlbWVudGFsQ2FjaGVIYW5kbGVyUGF0aFxuICBcbiAgT3JjaGVzdHJhdG9yIGNhY2hlIGhhbmRsZXIgdGhhdCBjb25kaXRpb25hbGx5IHVzZXMgZGlmZmVyZW50IGNhY2hpbmcgc3RyYXRlZ2llczpcbiAgLSBCdWlsZCB0aW1lOiBMb2NhbEZpbGVDYWNoZUhhbmRsZXIgZm9yIHByZS1jYWNoaW5nXG4gIC0gUnVudGltZTogTWVtb3J5Q2FjaGVIYW5kbGVyIChmYXN0KSArIFMzRHluYW1vQ2FjaGVIYW5kbGVyIChwZXJzaXN0ZW50KVxuKi9cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHtcbiAgQ2FjaGVIYW5kbGVyLFxuICBDYWNoZUhhbmRsZXJWYWx1ZSxcbiAgQ2FjaGVIYW5kbGVyQ29udGV4dCxcbn0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2luY3JlbWVudGFsLWNhY2hlXCI7XG5pbXBvcnQgdHlwZSB7IEluY3JlbWVudGFsQ2FjaGVWYWx1ZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlXCI7XG5pbXBvcnQge1xuICBHZXRDYWNoZUhhbmRsZXJDb250ZXh0LFxuICBnZXRDYWNoZUNvbnRyb2wsXG4gIGdldFRhZ3MsXG4gIFNldENhY2hlSGFuZGxlckNvbnRleHQsXG59IGZyb20gXCIuL2NhY2hlLXV0aWxzXCI7XG5pbXBvcnQgeyBMb2NhbEZpbGVDYWNoZUhhbmRsZXIgfSBmcm9tIFwiLi9sb2NhbC1maWxlLWNhY2hlLWhhbmRsZXJcIjtcbmltcG9ydCB7IE1lbW9yeUNhY2hlSGFuZGxlciB9IGZyb20gXCIuL21lbW9yeS1jYWNoZS1oYW5kbGVyXCI7XG5pbXBvcnQgeyBTM0NhY2hlSGFuZGxlciB9IGZyb20gXCIuL3MzLWNhY2hlLWhhbmRsZXJcIjtcbmltcG9ydCB7IGlzQnVpbGRQaGFzZSwgb3V0c2lkZVJlbmRlciB9IGZyb20gXCIuL3VzZS1jYWNoZS1jb21tb25cIjtcblxuLyoqXG4gKiBPcmNoZXN0cmF0b3IgY2FjaGUgaGFuZGxlciB0aGF0IGNvbmRpdGlvbmFsbHkgaW5zdGFudGlhdGVzIGhhbmRsZXJzIGJhc2VkIG9uIGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENka05leHRqc0NhY2hlSGFuZGxlciBpbXBsZW1lbnRzIENhY2hlSGFuZGxlciB7XG4gIC8qKlxuICAgKiBTaGFyZWQgc2luZ2xldG9uIGhhbmRsZXJzIGZvciBydW50aW1lLlxuICAgKlxuICAgKiBOZXh0LmpzIGNyZWF0ZXMgbXVsdGlwbGUgY2FjaGUgaGFuZGxlciBpbnN0YW5jZXMgKG9uZSBlYWNoIGZvciBBUFBfUEFHRSwgQVBQX1JPVVRFLCBGRVRDSCwgZXRjKS5cbiAgICogVXNpbmcgc2luZ2xldG9uIHBhdHRlcm4gcHJvdmlkZXM6XG4gICAqIC0gU2luZ2xlIFMzIGNsaWVudCBjb25uZWN0aW9uIHBvb2wgc2hhcmVkIGFjcm9zcyBhbGwgY2FjaGUgdHlwZXNcbiAgICogLSBVbmlmaWVkIG1lbW9yeSBjYWNoZSBhY2Nlc3NpYmxlIGJ5IGFsbCBpbnN0YW5jZXMgKGNhY2hlIGhpdHMgYmVuZWZpdCBhbGwpXG4gICAqIC0gTG93ZXIgbWVtb3J5IGZvb3RwcmludCBhbmQgZmFzdGVyIGluaXRpYWxpemF0aW9uXG4gICAqIC0gU2FtZSBDYWNoZUhhbmRsZXJDb250ZXh0IGZvciBhbGwgaW5zdGFuY2VzLCBzbyBubyBjb25maWd1cmF0aW9uIGxvc3NcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHNoYXJlZE1lbW9yeUhhbmRsZXI6IE1lbW9yeUNhY2hlSGFuZGxlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0YXRpYyBzaGFyZWRTM0R5bmFtb0hhbmRsZXI6IFMzQ2FjaGVIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0J1aWxkVGltZSA9IGlzQnVpbGRQaGFzZSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOmNhY2hlLWhhbmRsZXI6b3JjaGVzdHJhdG9yXCIpO1xuXG4gIC8vIFNldCBvbmx5IGF0IGJ1aWxkIHRpbWUuXG4gIHByaXZhdGUgbG9jYWxGaWxlSGFuZGxlciE6IExvY2FsRmlsZUNhY2hlSGFuZGxlcjtcblxuICAvLyBTZXQgb25seSBhdCBydW50aW1lLCBzaGFyZWQgYWNyb3NzIGFsbCBpbnN0YW5jZXMuXG4gIHByaXZhdGUgbWVtb3J5SGFuZGxlciE6IE1lbW9yeUNhY2hlSGFuZGxlcjtcbiAgcHJpdmF0ZSBzM0R5bmFtb0hhbmRsZXIhOiBTM0NhY2hlSGFuZGxlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYWNoZUhhbmRsZXJDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMuaXNCdWlsZFRpbWUpIHtcbiAgICAgIHRoaXMubG9jYWxGaWxlSGFuZGxlciA9IG5ldyBMb2NhbEZpbGVDYWNoZUhhbmRsZXIoKTtcbiAgICAgIHRoaXMuZGVidWcoXG4gICAgICAgIGBCdWlsZC10aW1lIGNhY2hlIGRpcmVjdG9yeTogJHt0aGlzLmxvY2FsRmlsZUhhbmRsZXIuZ2V0Q2FjaGVEaXIoKX1gLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zM0R5bmFtb0hhbmRsZXIgPSBDZGtOZXh0anNDYWNoZUhhbmRsZXIuc2hhcmVkUzNEeW5hbW9IYW5kbGVyID8/PVxuICAgICAgICBvdXRzaWRlUmVuZGVyKCgpID0+IG5ldyBTM0NhY2hlSGFuZGxlcih7IGNvbnRleHQ6IG9wdGlvbnMgfSkpO1xuICAgICAgdGhpcy5tZW1vcnlIYW5kbGVyID0gQ2RrTmV4dGpzQ2FjaGVIYW5kbGVyLnNoYXJlZE1lbW9yeUhhbmRsZXIgPz89XG4gICAgICAgIG5ldyBNZW1vcnlDYWNoZUhhbmRsZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhY2hlIGVudHJ5XG4gICAqIC0gQnVpbGQgdGltZTogTm90IGltcGxlbWVudGVkIChidWlsZCBkb2Vzbid0IHJlYWQgY2FjaGUpXG4gICAqIC0gUnVudGltZTogVHJ5IG1lbW9yeSBmaXJzdCwgdGhlbiBTMy9EeW5hbW9EQiwge0BsaW5rIG91dHNpZGVSZW5kZXJ9XG4gICAqL1xuICBhc3luYyBnZXQoXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBjdHg6IEdldENhY2hlSGFuZGxlckNvbnRleHQsXG4gICk6IFByb21pc2U8Q2FjaGVIYW5kbGVyVmFsdWUgfCBudWxsPiB7XG4gICAgaWYgKHRoaXMuaXNCdWlsZFRpbWUpIHtcbiAgICAgIC8vIFJlYWRzIGJhY2sgd2hhdCB0aGlzIGJ1aWxkIHdyb3RlLCB3aGljaCBgY2FjaGVDb21wb25lbnRzYCBwcmVyZW5kZXJpbmdcbiAgICAgIC8vIHJlcXVpcmVzOyBzZWUge0BsaW5rIExvY2FsRmlsZUNhY2hlSGFuZGxlci5nZXR9LlxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxGaWxlSGFuZGxlci5nZXQoY2FjaGVLZXkpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0c2lkZVJlbmRlcigoKSA9PiB0aGlzLmdldEF0UnVudGltZShjYWNoZUtleSwgY3R4KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEF0UnVudGltZShcbiAgICBjYWNoZUtleTogc3RyaW5nLFxuICAgIGN0eDogR2V0Q2FjaGVIYW5kbGVyQ29udGV4dCxcbiAgKTogUHJvbWlzZTxDYWNoZUhhbmRsZXJWYWx1ZSB8IG51bGw+IHtcbiAgICAvLyBSdW50aW1lOiB0cnkgbWVtb3J5IGZpcnN0XG4gICAgY29uc3QgbWVtb3J5UmVzdWx0ID0gYXdhaXQgdGhpcy5tZW1vcnlIYW5kbGVyLmdldChjYWNoZUtleSk7XG4gICAgLy8gQSBtZW1vcnkgaGl0IGlzIGNoZWNrZWQgYWdhaW5zdCB0aGUgc2FtZSB0YWcgbWFya2VycyBhbiBTMyByZWFkIGlzLlxuICAgIC8vIGByZXZhbGlkYXRlVGFnYCBjYW4gb25seSBjbGVhciB0aGUgbWVtb3J5IG9mIHRoZSBpbnN0YW5jZSB0aGF0IHJhbiBpdCxcbiAgICAvLyBzbyBza2lwcGluZyB0aGUgY2hlY2sgbGVmdCBldmVyeSBvdGhlciBpbnN0YW5jZSBhbnN3ZXJpbmcgZnJvbSBtZW1vcnlcbiAgICAvLyBmb3IgdGhlIHdob2xlIG1lbW9yeSBUVEwgLSBhbmQgQ2xvdWRGcm9udCwgd2hvc2UgY29weSB0aGF0XG4gICAgLy8gYHJldmFsaWRhdGVUYWdgIGhhZCBqdXN0IGludmFsaWRhdGVkLCBjYWNoZWQgdGhlIHN0YWxlIHBhZ2UgYWdhaW4uXG4gICAgLy8gVGhlIGNoZWNrIGlzIG9uZSBEeW5hbW9EQiBgQmF0Y2hHZXRJdGVtYDsgd2hhdCB0aGUgbWVtb3J5IGxheWVyIHN0aWxsXG4gICAgLy8gc2F2ZXMgaXMgdGhlIFMzIHJlYWQgYW5kIHRoZSBwYXJzZSBvZiB0aGUgYm9keS4gQSByZXZhbGlkYXRlZCBlbnRyeSBpc1xuICAgIC8vIGRyb3BwZWQgYW5kIHJlYWQgZnJvbSBTMywgd2hpY2ggaGFuZHMgaXQgYmFjayBleHBpcmVkIG9yIGFzIGEgbWlzcy5cbiAgICBpZiAoXG4gICAgICBtZW1vcnlSZXN1bHQgJiZcbiAgICAgIChhd2FpdCB0aGlzLnMzRHluYW1vSGFuZGxlci5pc1JldmFsaWRhdGVkKFxuICAgICAgICB7XG4gICAgICAgICAgbGFzdE1vZGlmaWVkOiBtZW1vcnlSZXN1bHQubGFzdE1vZGlmaWVkLFxuICAgICAgICAgIHZhbHVlOiBtZW1vcnlSZXN1bHQudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICAgIGN0eCxcbiAgICAgICAgY2FjaGVLZXksXG4gICAgICApKVxuICAgICkge1xuICAgICAgdGhpcy5kZWJ1ZyhgTWVtb3J5IGNhY2hlIFJFVkFMSURBVEVEOiAke2NhY2hlS2V5fWApO1xuICAgICAgYXdhaXQgdGhpcy5tZW1vcnlIYW5kbGVyLnNldChjYWNoZUtleSwgbnVsbCk7XG4gICAgfSBlbHNlIGlmIChtZW1vcnlSZXN1bHQpIHtcbiAgICAgIHRoaXMuZGVidWcoYE1lbW9yeSBjYWNoZSBISVQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICByZXR1cm4gbWVtb3J5UmVzdWx0O1xuICAgIH1cblxuICAgIC8vIE1lbW9yeSBtaXNzIC0gdHJ5IFMzL0R5bmFtb0RCXG4gICAgY29uc3QgczNSZXN1bHQgPSBhd2FpdCB0aGlzLnMzRHluYW1vSGFuZGxlci5nZXQoY2FjaGVLZXksIGN0eCk7XG4gICAgaWYgKHMzUmVzdWx0KSB7XG4gICAgICB0aGlzLmRlYnVnKGBTMyBjYWNoZSBISVQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICAvLyBQcm9tb3RlZCB3aXRoIHRoZSBTMyBlbnRyeSdzIG93biBgbGFzdE1vZGlmaWVkYCwgbm90IHRoZSB0aW1lIG9mIHRoZVxuICAgICAgLy8gY29weTogTmV4dC5qcyBhZ2VzIHRoZSBlbnRyeSBmcm9tIGl0IGZvciB0aW1lLWJhc2VkIHJldmFsaWRhdGlvbiwgYW5kXG4gICAgICAvLyB0aGUgdGFnIG1hcmtlcnMgYXJlIGNvbXBhcmVkIGFnYWluc3QgaXQgdG9vLiBTdGFtcGluZyBgRGF0ZS5ub3coKWBcbiAgICAgIC8vIG1hZGUgYW4gZW50cnkgdGhhdCB3YXMgZHVlIGZvciByZWdlbmVyYXRpb24gbG9vayBmcmVzaGx5IHJlbmRlcmVkLFxuICAgICAgLy8gYW5kIG9uZSBhIHNvZnQgYHJldmFsaWRhdGVUYWdgIGhhZCBtYWRlIHN0YWxlIGxvb2sgbmV3ZXIgdGhhbiB0aGVcbiAgICAgIC8vIHN0YWxlIG1hcmssIHNvIG1lbW9yeSBoaXRzIHNlcnZlZCBpdCBhcyBmcmVzaCBmb3IgdGhlIHdob2xlIG1lbW9yeVxuICAgICAgLy8gVFRMLiBBbiBlbnRyeSBhIHRhZyByZXZhbGlkYXRpb24gZXhwaXJlZCAoYGxhc3RNb2RpZmllZDogLTFgKSBpcyBub3RcbiAgICAgIC8vIGNvcGllZCBhdCBhbGw6IHRoZSByZS1yZW5kZXIgaXQgYXNrcyBmb3Igd3JpdGVzIHRoZSBmcmVzaCBlbnRyeSB0b1xuICAgICAgLy8gYm90aCBsYXllcnMuXG4gICAgICBpZiAoczNSZXN1bHQubGFzdE1vZGlmaWVkICE9PSAtMSkge1xuICAgICAgICBhd2FpdCB0aGlzLm1lbW9yeUhhbmRsZXIuc2V0KFxuICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgIHMzUmVzdWx0LnZhbHVlLFxuICAgICAgICAgIHMzUmVzdWx0Lmxhc3RNb2RpZmllZCxcbiAgICAgICAgICBzM1Jlc3VsdC5jYWNoZUNvbnRyb2wsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gczNSZXN1bHQ7XG4gICAgfVxuXG4gICAgdGhpcy5kZWJ1ZyhgQ2FjaGUgTUlTUzogJHtjYWNoZUtleX1gKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY2FjaGUgZW50cnlcbiAgICogLSBCdWlsZCB0aW1lOiBXcml0ZSB0byBsb2NhbCBmaWxlIGNhY2hlIG9ubHkgKG9yIGRlbGV0ZSBpZiBkYXRhIGlzIG51bGwpXG4gICAqIC0gUnVudGltZTogV3JpdGUgdG8gYm90aCBtZW1vcnkgYW5kIFMzL0R5bmFtb0RCIChvciBkZWxldGUgaWYgZGF0YSBpcyBudWxsKSxcbiAgICogICB7QGxpbmsgb3V0c2lkZVJlbmRlcn1cbiAgICovXG4gIGFzeW5jIHNldChcbiAgICBjYWNoZUtleTogc3RyaW5nLFxuICAgIGRhdGE6IEluY3JlbWVudGFsQ2FjaGVWYWx1ZSB8IG51bGwsXG4gICAgY3R4OiBTZXRDYWNoZUhhbmRsZXJDb250ZXh0LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pc0J1aWxkVGltZSkge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2NhbEZpbGVIYW5kbGVyLnNldChjYWNoZUtleSwgZGF0YSwgZ2V0VGFncyhjdHgpKTtcbiAgICAgICAgdGhpcy5kZWJ1ZyhgQnVpbGQgY2FjaGUgd3JpdGU6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEZWxldGUgbm90IGltcGxlbWVudGVkIGZvciBsb2NhbCBmaWxlIGNhY2hlIChidWlsZC10aW1lIG9ubHkgY3JlYXRlcyBmaWxlcylcbiAgICAgICAgdGhpcy5kZWJ1ZyhgQnVpbGQgY2FjaGUgZGVsZXRlIGlnbm9yZWQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFJ1bnRpbWU6IGJvdGggbGF5ZXJzLCB3aGVyZSBgbnVsbGAgaXMgYSBkZWxldGUuXG4gICAgYXdhaXQgb3V0c2lkZVJlbmRlcihhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLmRlYnVnKGBDYWNoZSAke2RhdGEgPyBcIndyaXRlXCIgOiBcImRlbGV0ZVwifTogJHtjYWNoZUtleX1gKTtcbiAgICAgIGF3YWl0IHRoaXMubWVtb3J5SGFuZGxlci5zZXQoXG4gICAgICAgIGNhY2hlS2V5LFxuICAgICAgICBkYXRhLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGdldENhY2hlQ29udHJvbChjdHgpLFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuczNEeW5hbW9IYW5kbGVyLnNldChjYWNoZUtleSwgZGF0YSwgY3R4KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIHRhZ3NcbiAgICogLSBCdWlsZCB0aW1lOiBOb3QgaW1wbGVtZW50ZWRcbiAgICogLSBSdW50aW1lOiBEZWxlZ2F0ZSB0byBTMy9EeW5hbW9EQiBoYW5kbGVyLCB7QGxpbmsgb3V0c2lkZVJlbmRlcn1cbiAgICovXG4gIGFzeW5jIHJldmFsaWRhdGVUYWcoXG4gICAgdGFnOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBkdXJhdGlvbnM/OiB7IGV4cGlyZT86IG51bWJlciB9LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pc0J1aWxkVGltZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1lbW9yeSBoaXRzIGFyZSBjaGVja2VkIGFnYWluc3QgdGhlIHNhbWUgbWFya2VycyAoc2VlIGBnZXRgKSwgc28gb25seVxuICAgIC8vIHRoZSBTMy9EeW5hbW9EQiBoYW5kbGVyIGhhcyBhbnl0aGluZyB0byByZWNvcmQuXG4gICAgYXdhaXQgb3V0c2lkZVJlbmRlcigoKSA9PlxuICAgICAgdGhpcy5zM0R5bmFtb0hhbmRsZXIucmV2YWxpZGF0ZVRhZyh0YWcsIGR1cmF0aW9ucyksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxpYmVyYXRlbHkgYSBuby1vcC4gTmV4dC5qcyBjYWxscyBgcmVzZXRSZXF1ZXN0Q2FjaGVgIGF0IHRoZSBzdGFydCBvZlxuICAgKiBldmVyeSByZXF1ZXN0IChgYmFzZS1zZXJ2ZXJgLCBgYXBwLXBhZ2VgLCBgYXBwLXJvdXRlYCksIGFuZCBpdHMgb3duXG4gICAqIGBGaWxlU3lzdGVtQ2FjaGVgIC0gd2hvc2UgTFJVIGlzIHNoYXJlZCBhY3Jvc3MgcmVxdWVzdHMgdGhlIHNhbWUgd2F5IHRoZVxuICAgKiBtZW1vcnkgbGF5ZXIgaXMgLSBsZWF2ZXMgaXQgZW1wdHk6IHRoZSBob29rIGlzIGZvciBzdGF0ZSBzY29wZWQgdG8gb25lXG4gICAqIHJlcXVlc3QsIGFuZCBub3RoaW5nIGhlcmUgaXMuIENsZWFyaW5nIHRoZSBtZW1vcnkgbGF5ZXIgaW4gaXQgbWVhbnQgbm9cbiAgICogZW50cnkgZXZlciBzdXJ2aXZlZCB0byBhIHNlY29uZCByZXF1ZXN0LCBzbyBldmVyeSByZWFkIHdlbnQgdG8gUzMuXG4gICAqL1xuICBhc3luYyByZXNldFJlcXVlc3RDYWNoZSgpOiBQcm9taXNlPHZvaWQ+IHt9XG59XG4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyL2NhY2hlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0VBTUU7QUFDRixzREFBc0Q7QUFDdEQsa0RBQTZCO0FBTzdCLCtDQUt1QjtBQUN2Qix5RUFBbUU7QUFDbkUsaUVBQTREO0FBQzVELHlEQUFvRDtBQUNwRCx5REFBaUU7QUFFakU7O0dBRUc7QUFDSCxNQUFxQixxQkFBcUI7SUFDeEM7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLG1CQUFtQixHQUE4QixJQUFJLENBQUM7SUFDN0QsTUFBTSxDQUFDLHFCQUFxQixHQUEwQixJQUFJLENBQUM7SUFFbEQsV0FBVyxHQUFHLElBQUEsK0JBQVksR0FBRSxDQUFDO0lBQzdCLEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRTNFLDBCQUEwQjtJQUNsQixnQkFBZ0IsQ0FBeUI7SUFFakQsb0RBQW9EO0lBQzVDLGFBQWEsQ0FBc0I7SUFDbkMsZUFBZSxDQUFrQjtJQUV6QyxZQUFZLE9BQTRCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdEQUFxQixFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FDUiwrQkFBK0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3JFLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMscUJBQXFCO2dCQUNoRSxJQUFBLGdDQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxpQ0FBYyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFx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c3RvbSBDYWNoZSBIYW5kbGVyLiBTZWU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL25leHQtY29uZmlnLWpzL2luY3JlbWVudGFsQ2FjaGVIYW5kbGVyUGF0aFxuICBcbiAgT3JjaGVzdHJhdG9yIGNhY2hlIGhhbmRsZXIgdGhhdCBjb25kaXRpb25hbGx5IHVzZXMgZGlmZmVyZW50IGNhY2hpbmcgc3RyYXRlZ2llczpcbiAgLSBCdWlsZCB0aW1lOiBMb2NhbEZpbGVDYWNoZUhhbmRsZXIgZm9yIHByZS1jYWNoaW5nXG4gIC0gUnVudGltZTogTWVtb3J5Q2FjaGVIYW5kbGVyIChmYXN0KSArIFMzRHluYW1vQ2FjaGVIYW5kbGVyIChwZXJzaXN0ZW50KVxuKi9cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHR5cGUge1xuICBDYWNoZUhhbmRsZXIsXG4gIENhY2hlSGFuZGxlclZhbHVlLFxuICBDYWNoZUhhbmRsZXJDb250ZXh0LFxufSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmltcG9ydCB0eXBlIHsgSW5jcmVtZW50YWxDYWNoZVZhbHVlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGVcIjtcbmltcG9ydCB7XG4gIEdldENhY2hlSGFuZGxlckNvbnRleHQsXG4gIGdldENhY2hlQ29udHJvbCxcbiAgZ2V0VGFncyxcbiAgU2V0Q2FjaGVIYW5kbGVyQ29udGV4dCxcbn0gZnJvbSBcIi4vY2FjaGUtdXRpbHNcIjtcbmltcG9ydCB7IExvY2FsRmlsZUNhY2hlSGFuZGxlciB9IGZyb20gXCIuL2xvY2FsLWZpbGUtY2FjaGUtaGFuZGxlclwiO1xuaW1wb3J0IHsgTWVtb3J5Q2FjaGVIYW5kbGVyIH0gZnJvbSBcIi4vbWVtb3J5LWNhY2hlLWhhbmRsZXJcIjtcbmltcG9ydCB7IFMzQ2FjaGVIYW5kbGVyIH0gZnJvbSBcIi4vczMtY2FjaGUtaGFuZGxlclwiO1xuaW1wb3J0IHsgaXNCdWlsZFBoYXNlLCBvdXRzaWRlUmVuZGVyIH0gZnJvbSBcIi4vdXNlLWNhY2hlLWNvbW1vblwiO1xuXG4vKipcbiAqIE9yY2hlc3RyYXRvciBjYWNoZSBoYW5kbGVyIHRoYXQgY29uZGl0aW9uYWxseSBpbnN0YW50aWF0ZXMgaGFuZGxlcnMgYmFzZWQgb24gZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2RrTmV4dGpzQ2FjaGVIYW5kbGVyIGltcGxlbWVudHMgQ2FjaGVIYW5kbGVyIHtcbiAgLyoqXG4gICAqIFNoYXJlZCBzaW5nbGV0b24gaGFuZGxlcnMgZm9yIHJ1bnRpbWUuXG4gICAqXG4gICAqIE5leHQuanMgY3JlYXRlcyBtdWx0aXBsZSBjYWNoZSBoYW5kbGVyIGluc3RhbmNlcyAob25lIGVhY2ggZm9yIEFQUF9QQUdFLCBBUFBfUk9VVEUsIEZFVENILCBldGMpLlxuICAgKiBVc2luZyBzaW5nbGV0b24gcGF0dGVybiBwcm92aWRlczpcbiAgICogLSBTaW5nbGUgUzMgY2xpZW50IGNvbm5lY3Rpb24gcG9vbCBzaGFyZWQgYWNyb3NzIGFsbCBjYWNoZSB0eXBlc1xuICAgKiAtIFVuaWZpZWQgbWVtb3J5IGNhY2hlIGFjY2Vzc2libGUgYnkgYWxsIGluc3RhbmNlcyAoY2FjaGUgaGl0cyBiZW5lZml0IGFsbClcbiAgICogLSBMb3dlciBtZW1vcnkgZm9vdHByaW50IGFuZCBmYXN0ZXIgaW5pdGlhbGl6YXRpb25cbiAgICogLSBTYW1lIENhY2hlSGFuZGxlckNvbnRleHQgZm9yIGFsbCBpbnN0YW5jZXMsIHNvIG5vIGNvbmZpZ3VyYXRpb24gbG9zc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgc2hhcmVkTWVtb3J5SGFuZGxlcjogTWVtb3J5Q2FjaGVIYW5kbGVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHNoYXJlZFMzRHluYW1vSGFuZGxlcjogUzNDYWNoZUhhbmRsZXIgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlzQnVpbGRUaW1lID0gaXNCdWlsZFBoYXNlKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWcgPSBnZXREZWJ1ZyhcImNkay1uZXh0anM6Y2FjaGUtaGFuZGxlcjpvcmNoZXN0cmF0b3JcIik7XG5cbiAgLy8gU2V0IG9ubHkgYXQgYnVpbGQgdGltZS5cbiAgcHJpdmF0ZSBsb2NhbEZpbGVIYW5kbGVyITogTG9jYWxGaWxlQ2FjaGVIYW5kbGVyO1xuXG4gIC8vIFNldCBvbmx5IGF0IHJ1bnRpbWUsIHNoYXJlZCBhY3Jvc3MgYWxsIGluc3RhbmNlcy5cbiAgcHJpdmF0ZSBtZW1vcnlIYW5kbGVyITogTWVtb3J5Q2FjaGVIYW5kbGVyO1xuICBwcml2YXRlIHMzRHluYW1vSGFuZGxlciE6IFMzQ2FjaGVIYW5kbGVyO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhY2hlSGFuZGxlckNvbnRleHQpIHtcbiAgICBpZiAodGhpcy5pc0J1aWxkVGltZSkge1xuICAgICAgdGhpcy5sb2NhbEZpbGVIYW5kbGVyID0gbmV3IExvY2FsRmlsZUNhY2hlSGFuZGxlcigpO1xuICAgICAgdGhpcy5kZWJ1ZyhcbiAgICAgICAgYEJ1aWxkLXRpbWUgY2FjaGUgZGlyZWN0b3J5OiAke3RoaXMubG9jYWxGaWxlSGFuZGxlci5nZXRDYWNoZURpcigpfWAsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnMzRHluYW1vSGFuZGxlciA9IENka05leHRqc0NhY2hlSGFuZGxlci5zaGFyZWRTM0R5bmFtb0hhbmRsZXIgPz89XG4gICAgICAgIG91dHNpZGVSZW5kZXIoKCkgPT4gbmV3IFMzQ2FjaGVIYW5kbGVyKHsgY29udGV4dDogb3B0aW9ucyB9KSk7XG4gICAgICB0aGlzLm1lbW9yeUhhbmRsZXIgPSBDZGtOZXh0anNDYWNoZUhhbmRsZXIuc2hhcmVkTWVtb3J5SGFuZGxlciA/Pz1cbiAgICAgICAgbmV3IE1lbW9yeUNhY2hlSGFuZGxlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2FjaGUgZW50cnlcbiAgICogLSBCdWlsZCB0aW1lOiBOb3QgaW1wbGVtZW50ZWQgKGJ1aWxkIGRvZXNuJ3QgcmVhZCBjYWNoZSlcbiAgICogLSBSdW50aW1lOiBUcnkgbWVtb3J5IGZpcnN0LCB0aGVuIFMzL0R5bmFtb0RCLCB7QGxpbmsgb3V0c2lkZVJlbmRlcn1cbiAgICovXG4gIGFzeW5jIGdldChcbiAgICBjYWNoZUtleTogc3RyaW5nLFxuICAgIGN0eDogR2V0Q2FjaGVIYW5kbGVyQ29udGV4dCxcbiAgKTogUHJvbWlzZTxDYWNoZUhhbmRsZXJWYWx1ZSB8IG51bGw+IHtcbiAgICBpZiAodGhpcy5pc0J1aWxkVGltZSkge1xuICAgICAgLy8gUmVhZHMgYmFjayB3aGF0IHRoaXMgYnVpbGQgd3JvdGUsIHdoaWNoIGBjYWNoZUNvbXBvbmVudHNgIHByZXJlbmRlcmluZ1xuICAgICAgLy8gcmVxdWlyZXM7IHNlZSB7QGxpbmsgTG9jYWxGaWxlQ2FjaGVIYW5kbGVyLmdldH0uXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbEZpbGVIYW5kbGVyLmdldChjYWNoZUtleSk7XG4gICAgfVxuICAgIHJldHVybiBvdXRzaWRlUmVuZGVyKCgpID0+IHRoaXMuZ2V0QXRSdW50aW1lKGNhY2hlS2V5LCBjdHgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXRSdW50aW1lKFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgY3R4OiBHZXRDYWNoZUhhbmRsZXJDb250ZXh0LFxuICApOiBQcm9taXNlPENhY2hlSGFuZGxlclZhbHVlIHwgbnVsbD4ge1xuICAgIC8vIFJ1bnRpbWU6IHRyeSBtZW1vcnkgZmlyc3RcbiAgICBjb25zdCBtZW1vcnlSZXN1bHQgPSBhd2FpdCB0aGlzLm1lbW9yeUhhbmRsZXIuZ2V0KGNhY2hlS2V5KTtcbiAgICAvLyBBIG1lbW9yeSBoaXQgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBzYW1lIHRhZyBtYXJrZXJzIGFuIFMzIHJlYWQgaXMuXG4gICAgLy8gYHJldmFsaWRhdGVUYWdgIGNhbiBvbmx5IGNsZWFyIHRoZSBtZW1vcnkgb2YgdGhlIGluc3RhbmNlIHRoYXQgcmFuIGl0LFxuICAgIC8vIHNvIHNraXBwaW5nIHRoZSBjaGVjayBsZWZ0IGV2ZXJ5IG90aGVyIGluc3RhbmNlIGFuc3dlcmluZyBmcm9tIG1lbW9yeVxuICAgIC8vIGZvciB0aGUgd2hvbGUgbWVtb3J5IFRUTCAtIGFuZCBDbG91ZEZyb250LCB3aG9zZSBjb3B5IHRoYXRcbiAgICAvLyBgcmV2YWxpZGF0ZVRhZ2AgaGFkIGp1c3QgaW52YWxpZGF0ZWQsIGNhY2hlZCB0aGUgc3RhbGUgcGFnZSBhZ2Fpbi5cbiAgICAvLyBUaGUgY2hlY2sgaXMgb25lIER5bmFtb0RCIGBCYXRjaEdldEl0ZW1gOyB3aGF0IHRoZSBtZW1vcnkgbGF5ZXIgc3RpbGxcbiAgICAvLyBzYXZlcyBpcyB0aGUgUzMgcmVhZCBhbmQgdGhlIHBhcnNlIG9mIHRoZSBib2R5LiBBIHJldmFsaWRhdGVkIGVudHJ5IGlzXG4gICAgLy8gZHJvcHBlZCBhbmQgcmVhZCBmcm9tIFMzLCB3aGljaCBoYW5kcyBpdCBiYWNrIGV4cGlyZWQgb3IgYXMgYSBtaXNzLlxuICAgIGlmIChcbiAgICAgIG1lbW9yeVJlc3VsdCAmJlxuICAgICAgKGF3YWl0IHRoaXMuczNEeW5hbW9IYW5kbGVyLmlzUmV2YWxpZGF0ZWQoXG4gICAgICAgIHtcbiAgICAgICAgICBsYXN0TW9kaWZpZWQ6IG1lbW9yeVJlc3VsdC5sYXN0TW9kaWZpZWQsXG4gICAgICAgICAgdmFsdWU6IG1lbW9yeVJlc3VsdC52YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY3R4LFxuICAgICAgICBjYWNoZUtleSxcbiAgICAgICkpXG4gICAgKSB7XG4gICAgICB0aGlzLmRlYnVnKGBNZW1vcnkgY2FjaGUgUkVWQUxJREFURUQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICBhd2FpdCB0aGlzLm1lbW9yeUhhbmRsZXIuc2V0KGNhY2hlS2V5LCBudWxsKTtcbiAgICB9IGVsc2UgaWYgKG1lbW9yeVJlc3VsdCkge1xuICAgICAgdGhpcy5kZWJ1ZyhgTWVtb3J5IGNhY2hlIEhJVDogJHtjYWNoZUtleX1gKTtcbiAgICAgIHJldHVybiBtZW1vcnlSZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gTWVtb3J5IG1pc3MgLSB0cnkgUzMvRHluYW1vREJcbiAgICBjb25zdCBzM1Jlc3VsdCA9IGF3YWl0IHRoaXMuczNEeW5hbW9IYW5kbGVyLmdldChjYWNoZUtleSwgY3R4KTtcbiAgICBpZiAoczNSZXN1bHQpIHtcbiAgICAgIHRoaXMuZGVidWcoYFMzIGNhY2hlIEhJVDogJHtjYWNoZUtleX1gKTtcbiAgICAgIC8vIFByb21vdGVkIHdpdGggdGhlIFMzIGVudHJ5J3Mgb3duIGBsYXN0TW9kaWZpZWRgLCBub3QgdGhlIHRpbWUgb2YgdGhlXG4gICAgICAvLyBjb3B5OiBOZXh0LmpzIGFnZXMgdGhlIGVudHJ5IGZyb20gaXQgZm9yIHRpbWUtYmFzZWQgcmV2YWxpZGF0aW9uLCBhbmRcbiAgICAgIC8vIHRoZSB0YWcgbWFya2VycyBhcmUgY29tcGFyZWQgYWdhaW5zdCBpdCB0b28uIFN0YW1waW5nIGBEYXRlLm5vdygpYFxuICAgICAgLy8gbWFkZSBhbiBlbnRyeSB0aGF0IHdhcyBkdWUgZm9yIHJlZ2VuZXJhdGlvbiBsb29rIGZyZXNobHkgcmVuZGVyZWQsXG4gICAgICAvLyBhbmQgb25lIGEgc29mdCBgcmV2YWxpZGF0ZVRhZ2AgaGFkIG1hZGUgc3RhbGUgbG9vayBuZXdlciB0aGFuIHRoZVxuICAgICAgLy8gc3RhbGUgbWFyaywgc28gbWVtb3J5IGhpdHMgc2VydmVkIGl0IGFzIGZyZXNoIGZvciB0aGUgd2hvbGUgbWVtb3J5XG4gICAgICAvLyBUVEwuIEFuIGVudHJ5IGEgdGFnIHJldmFsaWRhdGlvbiBleHBpcmVkIChgbGFzdE1vZGlmaWVkOiAtMWApIGlzIG5vdFxuICAgICAgLy8gY29waWVkIGF0IGFsbDogdGhlIHJlLXJlbmRlciBpdCBhc2tzIGZvciB3cml0ZXMgdGhlIGZyZXNoIGVudHJ5IHRvXG4gICAgICAvLyBib3RoIGxheWVycy5cbiAgICAgIGlmIChzM1Jlc3VsdC5sYXN0TW9kaWZpZWQgIT09IC0xKSB7XG4gICAgICAgIGF3YWl0IHRoaXMubWVtb3J5SGFuZGxlci5zZXQoXG4gICAgICAgICAgY2FjaGVLZXksXG4gICAgICAgICAgczNSZXN1bHQudmFsdWUsXG4gICAgICAgICAgczNSZXN1bHQubGFzdE1vZGlmaWVkLFxuICAgICAgICAgIHMzUmVzdWx0LmNhY2hlQ29udHJvbCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzM1Jlc3VsdDtcbiAgICB9XG5cbiAgICB0aGlzLmRlYnVnKGBDYWNoZSBNSVNTOiAke2NhY2hlS2V5fWApO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjYWNoZSBlbnRyeVxuICAgKiAtIEJ1aWxkIHRpbWU6IFdyaXRlIHRvIGxvY2FsIGZpbGUgY2FjaGUgb25seSAob3IgZGVsZXRlIGlmIGRhdGEgaXMgbnVsbClcbiAgICogLSBSdW50aW1lOiBXcml0ZSB0byBib3RoIG1lbW9yeSBhbmQgUzMvRHluYW1vREIgKG9yIGRlbGV0ZSBpZiBkYXRhIGlzIG51bGwpLFxuICAgKiAgIHtAbGluayBvdXRzaWRlUmVuZGVyfVxuICAgKi9cbiAgYXN5bmMgc2V0KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgZGF0YTogSW5jcmVtZW50YWxDYWNoZVZhbHVlIHwgbnVsbCxcbiAgICBjdHg6IFNldENhY2hlSGFuZGxlckNvbnRleHQsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQnVpbGRUaW1lKSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvY2FsRmlsZUhhbmRsZXIuc2V0KGNhY2hlS2V5LCBkYXRhLCBnZXRUYWdzKGN0eCkpO1xuICAgICAgICB0aGlzLmRlYnVnKGBCdWlsZCBjYWNoZSB3cml0ZTogJHtjYWNoZUtleX1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERlbGV0ZSBub3QgaW1wbGVtZW50ZWQgZm9yIGxvY2FsIGZpbGUgY2FjaGUgKGJ1aWxkLXRpbWUgb25seSBjcmVhdGVzIGZpbGVzKVxuICAgICAgICB0aGlzLmRlYnVnKGBCdWlsZCBjYWNoZSBkZWxldGUgaWdub3JlZDogJHtjYWNoZUtleX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gUnVudGltZTogYm90aCBsYXllcnMsIHdoZXJlIGBudWxsYCBpcyBhIGRlbGV0ZS5cbiAgICBhd2FpdCBvdXRzaWRlUmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMuZGVidWcoYENhY2hlICR7ZGF0YSA/IFwid3JpdGVcIiA6IFwiZGVsZXRlXCJ9OiAke2NhY2hlS2V5fWApO1xuICAgICAgYXdhaXQgdGhpcy5tZW1vcnlIYW5kbGVyLnNldChcbiAgICAgICAgY2FjaGVLZXksXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgZ2V0Q2FjaGVDb250cm9sKGN0eCksXG4gICAgICApO1xuICAgICAgYXdhaXQgdGhpcy5zM0R5bmFtb0hhbmRsZXIuc2V0KGNhY2hlS2V5LCBkYXRhLCBjdHgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldmFsaWRhdGUgdGFnc1xuICAgKiAtIEJ1aWxkIHRpbWU6IE5vdCBpbXBsZW1lbnRlZFxuICAgKiAtIFJ1bnRpbWU6IERlbGVnYXRlIHRvIFMzL0R5bmFtb0RCIGhhbmRsZXIsIHtAbGluayBvdXRzaWRlUmVuZGVyfVxuICAgKi9cbiAgYXN5bmMgcmV2YWxpZGF0ZVRhZyhcbiAgICB0YWc6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIGR1cmF0aW9ucz86IHsgZXhwaXJlPzogbnVtYmVyIH0sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQnVpbGRUaW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTWVtb3J5IGhpdHMgYXJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgc2FtZSBtYXJrZXJzIChzZWUgYGdldGApLCBzbyBvbmx5XG4gICAgLy8gdGhlIFMzL0R5bmFtb0RCIGhhbmRsZXIgaGFzIGFueXRoaW5nIHRvIHJlY29yZC5cbiAgICBhd2FpdCBvdXRzaWRlUmVuZGVyKCgpID0+XG4gICAgICB0aGlzLnMzRHluYW1vSGFuZGxlci5yZXZhbGlkYXRlVGFnKHRhZywgZHVyYXRpb25zKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGliZXJhdGVseSBhIG5vLW9wLiBOZXh0LmpzIGNhbGxzIGByZXNldFJlcXVlc3RDYWNoZWAgYXQgdGhlIHN0YXJ0IG9mXG4gICAqIGV2ZXJ5IHJlcXVlc3QgKGBiYXNlLXNlcnZlcmAsIGBhcHAtcGFnZWAsIGBhcHAtcm91dGVgKSwgYW5kIGl0cyBvd25cbiAgICogYEZpbGVTeXN0ZW1DYWNoZWAgLSB3aG9zZSBMUlUgaXMgc2hhcmVkIGFjcm9zcyByZXF1ZXN0cyB0aGUgc2FtZSB3YXkgdGhlXG4gICAqIG1lbW9yeSBsYXllciBpcyAtIGxlYXZlcyBpdCBlbXB0eTogdGhlIGhvb2sgaXMgZm9yIHN0YXRlIHNjb3BlZCB0byBvbmVcbiAgICogcmVxdWVzdCwgYW5kIG5vdGhpbmcgaGVyZSBpcy4gQ2xlYXJpbmcgdGhlIG1lbW9yeSBsYXllciBpbiBpdCBtZWFudCBub1xuICAgKiBlbnRyeSBldmVyIHN1cnZpdmVkIHRvIGEgc2Vjb25kIHJlcXVlc3QsIHNvIGV2ZXJ5IHJlYWQgd2VudCB0byBTMy5cbiAgICovXG4gIGFzeW5jIHJlc2V0UmVxdWVzdENhY2hlKCk6IFByb21pc2U8dm9pZD4ge31cbn1cbiJdfQ==
@@ -1,5 +1,16 @@
1
- import { CachedRouteKind } from "next/dist/server/response-cache/index.js";
1
+ import type { CachedRouteKind } from "next/dist/server/response-cache/index.js";
2
2
  import type { PrerenderVariants } from "./cache-utils";
3
+ /**
4
+ * The `CachedRouteKind` members the init cache seeds, as their own string
5
+ * values. The enum is a `const enum`, which esbuild can't inline, so using it
6
+ * as a value put a runtime `import` of `next/dist/server/response-cache` in the
7
+ * adapter bundle; only its type is imported now.
8
+ */
9
+ export declare const CACHED_ROUTE_KIND: {
10
+ readonly APP_PAGE: CachedRouteKind.APP_PAGE;
11
+ readonly APP_ROUTE: CachedRouteKind.APP_ROUTE;
12
+ readonly PAGES: CachedRouteKind.PAGES;
13
+ };
3
14
  /** The fields of `ctx.outputs` a cache kind is read from. */
4
15
  export interface CacheKindOutputs {
5
16
  readonly pages: ReadonlyArray<{
@@ -1,6 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CACHED_ROUTE_KIND = void 0;
3
4
  exports.cacheKindResolver = cacheKindResolver;
5
+ /**
6
+ * The `CachedRouteKind` members the init cache seeds, as their own string
7
+ * values. The enum is a `const enum`, which esbuild can't inline, so using it
8
+ * as a value put a runtime `import` of `next/dist/server/response-cache` in the
9
+ * adapter bundle; only its type is imported now.
10
+ */
11
+ exports.CACHED_ROUTE_KIND = {
12
+ APP_PAGE: "APP_PAGE",
13
+ APP_ROUTE: "APP_ROUTE",
14
+ PAGES: "PAGES",
15
+ };
4
16
  /**
5
17
  * Returns which kind of cache entry to seed for one prerendered route, or
6
18
  * `undefined` for a route whose owner writes no response-cache entry.
@@ -19,17 +31,17 @@ exports.cacheKindResolver = cacheKindResolver;
19
31
  function cacheKindResolver(outputs) {
20
32
  const kindById = new Map();
21
33
  for (const { id } of outputs.pages) {
22
- kindById.set(id, "PAGES" /* CachedRouteKind.PAGES */);
34
+ kindById.set(id, exports.CACHED_ROUTE_KIND.PAGES);
23
35
  }
24
36
  for (const { id } of outputs.appPages) {
25
- kindById.set(id, "APP_PAGE" /* CachedRouteKind.APP_PAGE */);
37
+ kindById.set(id, exports.CACHED_ROUTE_KIND.APP_PAGE);
26
38
  }
27
39
  for (const { id } of outputs.appRoutes) {
28
- kindById.set(id, "APP_ROUTE" /* CachedRouteKind.APP_ROUTE */);
40
+ kindById.set(id, exports.CACHED_ROUTE_KIND.APP_ROUTE);
29
41
  }
30
42
  return (variants) => {
31
43
  const source = variants.html ?? variants.rsc ?? variants.data ?? variants.segments[0];
32
44
  return source ? kindById.get(source.parentOutputId) : undefined;
33
45
  };
34
46
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUta2luZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlci9jYWNoZS1raW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBCQSw4Q0FvQkM7QUFuQ0Q7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsT0FBeUI7SUFJekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7SUFDcEQsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxzQ0FBd0IsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSw0Q0FBMkIsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSw4Q0FBNEIsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ2xCLE1BQU0sTUFBTSxHQUNWLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHsgQ2FjaGVkUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgUHJlcmVuZGVyVmFyaWFudHMgfSBmcm9tIFwiLi9jYWNoZS11dGlsc1wiO1xuXG4vKiogVGhlIGZpZWxkcyBvZiBgY3R4Lm91dHB1dHNgIGEgY2FjaGUga2luZCBpcyByZWFkIGZyb20uICovXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlS2luZE91dHB1dHMge1xuICByZWFkb25seSBwYWdlczogUmVhZG9ubHlBcnJheTx7IGlkOiBzdHJpbmcgfT47XG4gIHJlYWRvbmx5IGFwcFBhZ2VzOiBSZWFkb25seUFycmF5PHsgaWQ6IHN0cmluZyB9PjtcbiAgcmVhZG9ubHkgYXBwUm91dGVzOiBSZWFkb25seUFycmF5PHsgaWQ6IHN0cmluZyB9Pjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoaWNoIGtpbmQgb2YgY2FjaGUgZW50cnkgdG8gc2VlZCBmb3Igb25lIHByZXJlbmRlcmVkIHJvdXRlLCBvclxuICogYHVuZGVmaW5lZGAgZm9yIGEgcm91dGUgd2hvc2Ugb3duZXIgd3JpdGVzIG5vIHJlc3BvbnNlLWNhY2hlIGVudHJ5LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgcHJlcmVuZGVyJ3MgYHBhcmVudE91dHB1dElkYCwgd2hpY2ggYG5leHQgYnVpbGRgIHNldHMgdG8gdGhlXG4gKiBgaWRgIG9mIHRoZSBvdXRwdXQgdGhhdCByZW5kZXJzIGl0IOKAlCBub3QgYnkgbWF0Y2hpbmcgdGhlIHBhdGhuYW1lIGFnYWluc3RcbiAqIHJvdXRlIHRlbXBsYXRlcy4gTWF0Y2hpbmcgaGFkIHRvIHJlaW1wbGVtZW50IE5leHQncyBkeW5hbWljLXNlZ21lbnQgZ3JhbW1hclxuICogYW5kIGdvdCBpdCB3cm9uZyB0d2ljZTogaXQgcmVxdWlyZWQgYXMgbWFueSBzZWdtZW50cyBhcyB0aGUgdGVtcGxhdGUgaGFkLCBzb1xuICogbm8gYFsuLi5zbHVnXWAgb3IgYFtbLi4ucmVzdF1dYCBwcmVyZW5kZXIgZXZlciBnb3QgYSBraW5kIGFuZCBldmVyeSBvbmUgd2FzIGFcbiAqIE1JU1Mgb24gZmlyc3QgcmVxdWVzdDsgYW5kIGl0IGtuZXcgdGhlIFBhZ2VzIFJvdXRlciBob21lIHBhZ2Ugb25seSBhcyB0aGVcbiAqIGAvaW5kZXhgIGl0cyBvdXRwdXQgcmVwb3J0cywgd2hpbGUgaXRzIEhUTUwgcHJlcmVuZGVyIGlzIGdyb3VwZWQgdW5kZXIgYC9gLCBzb1xuICogdGhhdCBwYWdlIHdhcyBuZXZlciBzZWVkZWQgZWl0aGVyLiBUaGUgcGFyZW50IGxpbmsgaGFzIG5laXRoZXIgcHJvYmxlbSwgYW5kIGl0XG4gKiBjYW5ub3QgaGFuZCBhIHByZXJlbmRlciB0byB0aGUgd3Jvbmcgb25lIG9mIHR3byB0ZW1wbGF0ZXMgdGhhdCBib3RoIG1hdGNoIGl0c1xuICogcGF0aG5hbWUgKGAvYWJvdXRgIGFnYWluc3QgYW4gYXBwIHJvdXRlIGAvW3NsdWddYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZUtpbmRSZXNvbHZlcihcbiAgb3V0cHV0czogQ2FjaGVLaW5kT3V0cHV0cyxcbik6IChcbiAgdmFyaWFudHM6IFByZXJlbmRlclZhcmlhbnRzPHsgcGFyZW50T3V0cHV0SWQ6IHN0cmluZyB9PixcbikgPT4gQ2FjaGVkUm91dGVLaW5kIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qga2luZEJ5SWQgPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVkUm91dGVLaW5kPigpO1xuICBmb3IgKGNvbnN0IHsgaWQgfSBvZiBvdXRwdXRzLnBhZ2VzKSB7XG4gICAga2luZEJ5SWQuc2V0KGlkLCBDYWNoZWRSb3V0ZUtpbmQuUEFHRVMpO1xuICB9XG4gIGZvciAoY29uc3QgeyBpZCB9IG9mIG91dHB1dHMuYXBwUGFnZXMpIHtcbiAgICBraW5kQnlJZC5zZXQoaWQsIENhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSk7XG4gIH1cbiAgZm9yIChjb25zdCB7IGlkIH0gb2Ygb3V0cHV0cy5hcHBSb3V0ZXMpIHtcbiAgICBraW5kQnlJZC5zZXQoaWQsIENhY2hlZFJvdXRlS2luZC5BUFBfUk9VVEUpO1xuICB9XG4gIHJldHVybiAodmFyaWFudHMpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPVxuICAgICAgdmFyaWFudHMuaHRtbCA/PyB2YXJpYW50cy5yc2MgPz8gdmFyaWFudHMuZGF0YSA/PyB2YXJpYW50cy5zZWdtZW50c1swXTtcbiAgICByZXR1cm4gc291cmNlID8ga2luZEJ5SWQuZ2V0KHNvdXJjZS5wYXJlbnRPdXRwdXRJZCkgOiB1bmRlZmluZWQ7XG4gIH07XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUta2luZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlci9jYWNoZS1raW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFzQ0EsOENBb0JDO0FBdEREOzs7OztHQUtHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixRQUFRLEVBQUUsVUFBc0M7SUFDaEQsU0FBUyxFQUFFLFdBQXdDO0lBQ25ELEtBQUssRUFBRSxPQUFnQztDQUMvQixDQUFDO0FBU1g7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsT0FBeUI7SUFJekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7SUFDcEQsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLHlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxLQUFLLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUseUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELEtBQUssTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSx5QkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ2xCLE1BQU0sTUFBTSxHQUNWLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHR5cGUgeyBDYWNoZWRSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQcmVyZW5kZXJWYXJpYW50cyB9IGZyb20gXCIuL2NhY2hlLXV0aWxzXCI7XG5cbi8qKlxuICogVGhlIGBDYWNoZWRSb3V0ZUtpbmRgIG1lbWJlcnMgdGhlIGluaXQgY2FjaGUgc2VlZHMsIGFzIHRoZWlyIG93biBzdHJpbmdcbiAqIHZhbHVlcy4gVGhlIGVudW0gaXMgYSBgY29uc3QgZW51bWAsIHdoaWNoIGVzYnVpbGQgY2FuJ3QgaW5saW5lLCBzbyB1c2luZyBpdFxuICogYXMgYSB2YWx1ZSBwdXQgYSBydW50aW1lIGBpbXBvcnRgIG9mIGBuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlYCBpbiB0aGVcbiAqIGFkYXB0ZXIgYnVuZGxlOyBvbmx5IGl0cyB0eXBlIGlzIGltcG9ydGVkIG5vdy5cbiAqL1xuZXhwb3J0IGNvbnN0IENBQ0hFRF9ST1VURV9LSU5EID0ge1xuICBBUFBfUEFHRTogXCJBUFBfUEFHRVwiIGFzIENhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgQVBQX1JPVVRFOiBcIkFQUF9ST1VURVwiIGFzIENhY2hlZFJvdXRlS2luZC5BUFBfUk9VVEUsXG4gIFBBR0VTOiBcIlBBR0VTXCIgYXMgQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxufSBhcyBjb25zdDtcblxuLyoqIFRoZSBmaWVsZHMgb2YgYGN0eC5vdXRwdXRzYCBhIGNhY2hlIGtpbmQgaXMgcmVhZCBmcm9tLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZUtpbmRPdXRwdXRzIHtcbiAgcmVhZG9ubHkgcGFnZXM6IFJlYWRvbmx5QXJyYXk8eyBpZDogc3RyaW5nIH0+O1xuICByZWFkb25seSBhcHBQYWdlczogUmVhZG9ubHlBcnJheTx7IGlkOiBzdHJpbmcgfT47XG4gIHJlYWRvbmx5IGFwcFJvdXRlczogUmVhZG9ubHlBcnJheTx7IGlkOiBzdHJpbmcgfT47XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGljaCBraW5kIG9mIGNhY2hlIGVudHJ5IHRvIHNlZWQgZm9yIG9uZSBwcmVyZW5kZXJlZCByb3V0ZSwgb3JcbiAqIGB1bmRlZmluZWRgIGZvciBhIHJvdXRlIHdob3NlIG93bmVyIHdyaXRlcyBubyByZXNwb25zZS1jYWNoZSBlbnRyeS5cbiAqXG4gKiBSZWFkIGZyb20gdGhlIHByZXJlbmRlcidzIGBwYXJlbnRPdXRwdXRJZGAsIHdoaWNoIGBuZXh0IGJ1aWxkYCBzZXRzIHRvIHRoZVxuICogYGlkYCBvZiB0aGUgb3V0cHV0IHRoYXQgcmVuZGVycyBpdCDigJQgbm90IGJ5IG1hdGNoaW5nIHRoZSBwYXRobmFtZSBhZ2FpbnN0XG4gKiByb3V0ZSB0ZW1wbGF0ZXMuIE1hdGNoaW5nIGhhZCB0byByZWltcGxlbWVudCBOZXh0J3MgZHluYW1pYy1zZWdtZW50IGdyYW1tYXJcbiAqIGFuZCBnb3QgaXQgd3JvbmcgdHdpY2U6IGl0IHJlcXVpcmVkIGFzIG1hbnkgc2VnbWVudHMgYXMgdGhlIHRlbXBsYXRlIGhhZCwgc29cbiAqIG5vIGBbLi4uc2x1Z11gIG9yIGBbWy4uLnJlc3RdXWAgcHJlcmVuZGVyIGV2ZXIgZ290IGEga2luZCBhbmQgZXZlcnkgb25lIHdhcyBhXG4gKiBNSVNTIG9uIGZpcnN0IHJlcXVlc3Q7IGFuZCBpdCBrbmV3IHRoZSBQYWdlcyBSb3V0ZXIgaG9tZSBwYWdlIG9ubHkgYXMgdGhlXG4gKiBgL2luZGV4YCBpdHMgb3V0cHV0IHJlcG9ydHMsIHdoaWxlIGl0cyBIVE1MIHByZXJlbmRlciBpcyBncm91cGVkIHVuZGVyIGAvYCwgc29cbiAqIHRoYXQgcGFnZSB3YXMgbmV2ZXIgc2VlZGVkIGVpdGhlci4gVGhlIHBhcmVudCBsaW5rIGhhcyBuZWl0aGVyIHByb2JsZW0sIGFuZCBpdFxuICogY2Fubm90IGhhbmQgYSBwcmVyZW5kZXIgdG8gdGhlIHdyb25nIG9uZSBvZiB0d28gdGVtcGxhdGVzIHRoYXQgYm90aCBtYXRjaCBpdHNcbiAqIHBhdGhuYW1lIChgL2Fib3V0YCBhZ2FpbnN0IGFuIGFwcCByb3V0ZSBgL1tzbHVnXWApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FjaGVLaW5kUmVzb2x2ZXIoXG4gIG91dHB1dHM6IENhY2hlS2luZE91dHB1dHMsXG4pOiAoXG4gIHZhcmlhbnRzOiBQcmVyZW5kZXJWYXJpYW50czx7IHBhcmVudE91dHB1dElkOiBzdHJpbmcgfT4sXG4pID0+IENhY2hlZFJvdXRlS2luZCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGtpbmRCeUlkID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlZFJvdXRlS2luZD4oKTtcbiAgZm9yIChjb25zdCB7IGlkIH0gb2Ygb3V0cHV0cy5wYWdlcykge1xuICAgIGtpbmRCeUlkLnNldChpZCwgQ0FDSEVEX1JPVVRFX0tJTkQuUEFHRVMpO1xuICB9XG4gIGZvciAoY29uc3QgeyBpZCB9IG9mIG91dHB1dHMuYXBwUGFnZXMpIHtcbiAgICBraW5kQnlJZC5zZXQoaWQsIENBQ0hFRF9ST1VURV9LSU5ELkFQUF9QQUdFKTtcbiAgfVxuICBmb3IgKGNvbnN0IHsgaWQgfSBvZiBvdXRwdXRzLmFwcFJvdXRlcykge1xuICAgIGtpbmRCeUlkLnNldChpZCwgQ0FDSEVEX1JPVVRFX0tJTkQuQVBQX1JPVVRFKTtcbiAgfVxuICByZXR1cm4gKHZhcmlhbnRzKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID1cbiAgICAgIHZhcmlhbnRzLmh0bWwgPz8gdmFyaWFudHMucnNjID8/IHZhcmlhbnRzLmRhdGEgPz8gdmFyaWFudHMuc2VnbWVudHNbMF07XG4gICAgcmV0dXJuIHNvdXJjZSA/IGtpbmRCeUlkLmdldChzb3VyY2UucGFyZW50T3V0cHV0SWQpIDogdW5kZWZpbmVkO1xuICB9O1xufVxuIl19
@@ -74,7 +74,7 @@ async function writeInitCache(ctx, cacheDir) {
74
74
  }
75
75
  // Create cache entry with the appropriate structure based on kind
76
76
  let cacheEntry;
77
- if (kind === "APP_PAGE" /* CachedRouteKind.APP_PAGE */) {
77
+ if (kind === cache_kinds_1.CACHED_ROUTE_KIND.APP_PAGE) {
78
78
  // Read HTML file
79
79
  const html = (await readPrerender(htmlPrerender))?.toString();
80
80
  if (!html) {
@@ -92,7 +92,7 @@ async function writeInitCache(ctx, cacheDir) {
92
92
  cacheEntry = {
93
93
  lastModified: Date.now(),
94
94
  value: {
95
- kind: "APP_PAGE" /* CachedRouteKind.APP_PAGE */,
95
+ kind: cache_kinds_1.CACHED_ROUTE_KIND.APP_PAGE,
96
96
  html,
97
97
  rscData,
98
98
  headers,
@@ -105,7 +105,7 @@ async function writeInitCache(ctx, cacheDir) {
105
105
  },
106
106
  };
107
107
  }
108
- else if (kind === "APP_ROUTE" /* CachedRouteKind.APP_ROUTE */) {
108
+ else if (kind === cache_kinds_1.CACHED_ROUTE_KIND.APP_ROUTE) {
109
109
  const body = await readPrerender(htmlPrerender);
110
110
  if (!body) {
111
111
  debug(`SKIP: No body content for APP_ROUTE ${basePath}`);
@@ -116,14 +116,14 @@ async function writeInitCache(ctx, cacheDir) {
116
116
  cacheEntry = {
117
117
  lastModified: Date.now(),
118
118
  value: {
119
- kind: "APP_ROUTE" /* CachedRouteKind.APP_ROUTE */,
119
+ kind: cache_kinds_1.CACHED_ROUTE_KIND.APP_ROUTE,
120
120
  body,
121
121
  headers,
122
122
  status: htmlPrerender?.fallback?.initialStatus || 200,
123
123
  },
124
124
  };
125
125
  }
126
- else if (kind === "PAGES" /* CachedRouteKind.PAGES */) {
126
+ else if (kind === cache_kinds_1.CACHED_ROUTE_KIND.PAGES) {
127
127
  // A build-time `notFound: true`. Next.js reports the route as
128
128
  // prerendered and hands us a prerender whose `filePath` is
129
129
  // `pages/404.html` and whose `initialStatus` is 404 - but it writes
@@ -160,7 +160,7 @@ async function writeInitCache(ctx, cacheDir) {
160
160
  cacheEntry = {
161
161
  lastModified: Date.now(),
162
162
  value: {
163
- kind: "PAGES" /* CachedRouteKind.PAGES */,
163
+ kind: cache_kinds_1.CACHED_ROUTE_KIND.PAGES,
164
164
  html,
165
165
  pageData: pageDataJson ? JSON.parse(pageDataJson) : {},
166
166
  // Both `undefined`, which is what `FileSystemCache` hands back for
@@ -265,4 +265,4 @@ async function getSegmentData(segmentPrerenders) {
265
265
  }
266
266
  return segmentData;
267
267
  }
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyL2luaXQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFxQ0Esd0NBbVBDO0FBeFJELHNEQUFzRDtBQUN0RDs7Ozs7OztHQU9HO0FBQ0gscUNBQXFDO0FBQ3JDLCtDQUE4RDtBQUM5RCw2Q0FBNEM7QUFDNUMseUNBQTBDO0FBQzFDLGtEQUE2QjtBQUc3Qiw0Q0FBMEM7QUFFMUMsK0NBQWtEO0FBQ2xELCtDQVV1QjtBQUV2QixNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRTdDOzs7R0FHRztBQUNJLEtBQUssVUFBVSxjQUFjLENBQ2xDLEdBR0MsRUFDRCxRQUFnQjtJQUVoQixnQ0FBZ0M7SUFDaEMsTUFBTSxJQUFBLGdCQUFLLEVBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsS0FBSyxDQUFDLHlCQUF5QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRTNDLDBFQUEwRTtJQUMxRSxNQUFNLGVBQWUsR0FBRyxJQUFBLDZCQUFlLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRSxLQUFLLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBRTFELE1BQU0sV0FBVyxHQUFHLElBQUEsK0JBQWlCLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5ELDhFQUE4RTtJQUM5RSxpQ0FBaUM7SUFDakMsTUFBTSxXQUFXLEdBQXlCLEVBQUUsQ0FBQztJQUU3Qyw4RUFBOEU7SUFDOUUsNEJBQTRCO0lBQzVCLE1BQU0saUJBQWlCLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUVwQyw4Q0FBOEM7SUFD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QUFVLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsbUJBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzNFLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxjQUFjLENBRTNCLGlCQUFzQjtJQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUU5QyxLQUFLLE1BQU0sZ0JBQWdCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNqRCxNQUFNLGNBQWMsR0FBRyxNQUFNLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIscUNBQXFDO1lBQ3JDLE1BQU0sV0FBVyxHQUNmLEdBQUc7Z0JBQ0gsZ0JBQWdCLENBQUMsUUFBUTtxQkFDdEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDdEIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyoqXG4gKiBUaGUgaW5pdCBjYWNoZTogb25lIHJlc3BvbnNlLWNhY2hlIGVudHJ5IHBlciBwcmVyZW5kZXJlZCByb3V0ZSwgd3JpdHRlbiBieVxuICogYG9uQnVpbGRDb21wbGV0ZWAgYW5kIHNlZWRlZCBpbnRvIFMzIGF0IGRlcGxveSwgc28gYSBmcmVzaFxuICogZGVwbG95bWVudCBzdGFydHMgd2l0aCB3aGF0IGBuZXh0IGJ1aWxkYCByZW5kZXJlZCBpbnN0ZWFkIG9mIGEgY29sZCBjYWNoZS5cbiAqXG4gKiBTZXBhcmF0ZSBmcm9tIGBhZGFwdGVyLm10c2Agb25seSBzbyBpdCBjYW4gYmUgdGVzdGVkIHdpdGhvdXQgbG9hZGluZyB0aGVcbiAqIGFkYXB0ZXIgaXRzZWxmICh3aGljaCByZXNvbHZlcyBjZGstbmV4dGpzJ3Mgb3duIGhhbmRsZXJzIG9mZiBgaW1wb3J0Lm1ldGFgKS5cbiAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBta2RpciwgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHsgQ2FjaGVIYW5kbGVyVmFsdWUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmltcG9ydCB7IENhY2hlZFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBMT0dfUFJFRklYIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHR5cGUgeyBCdWlsZENvbXBsZXRlQ29udGV4dCB9IGZyb20gXCIuL2J1aWxkLW91dHB1dHNcIjtcbmltcG9ydCB7IGNhY2hlS2luZFJlc29sdmVyIH0gZnJvbSBcIi4vY2FjaGUta2luZHNcIjtcbmltcG9ydCB7XG4gIGFwcFBhZ2VDYWNoZUhlYWRlcnMsXG4gIGNhY2hlT2JqZWN0TmFtZSxcbiAgZ3JvdXBQcmVyZW5kZXJzLFxuICBoZWFkZXJUYWdzLFxuICBJTklUX0NBQ0hFX1RBR19NQU5JRkVTVCxcbiAgSW5pdENhY2hlVGFnTWFuaWZlc3QsXG4gIHByZXJlbmRlclBhdGhUb0NhY2hlS2V5LFxuICByb3V0ZUNhY2hlS2V5RnJvbUZpbGVQYXRoLFxuICBzZXJpYWxpemVDYWNoZVZhbHVlLFxufSBmcm9tIFwiLi9jYWNoZS11dGlsc1wiO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKFwiY2RrLW5leHRqczphZGFwdGVyXCIpO1xuXG4vKipcbiAqIFdyaXRlIGEgYDxjYWNoZUtleT4uanNvbmAgcGVyIHByZXJlbmRlcmVkIHJvdXRlIHVuZGVyIGBjYWNoZURpcmAsIHBsdXNcbiAqIHtAbGluayBJTklUX0NBQ0hFX1RBR19NQU5JRkVTVH0gd2hlbiBhbnkgZW50cnkgY2FycmllcyB0YWdzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVJbml0Q2FjaGUoXG4gIGN0eDogUGljazxcbiAgICBCdWlsZENvbXBsZXRlQ29udGV4dCxcbiAgICBcImNvbmZpZ1wiIHwgXCJvdXRwdXRzXCIgfCBcIm5leHRWZXJzaW9uXCIgfCBcInByb2plY3REaXJcIlxuICA+LFxuICBjYWNoZURpcjogc3RyaW5nLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIEVuc3VyZSBjYWNoZSBkaXJlY3RvcnkgZXhpc3RzXG4gIGF3YWl0IG1rZGlyKGNhY2hlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgZGVidWcoYEluaXQgY2FjaGUgZGlyZWN0b3J5OiAke2NhY2hlRGlyfWApO1xuXG4gIC8vIE9uZSBlbnRyeSBwZXIgcm91dGUsIHdpdGggaXRzIEhUTUwsIGAucnNjYCBhbmQgc2VnbWVudCBvdXRwdXRzIHRvZ2V0aGVyXG4gIGNvbnN0IHByZXJlbmRlckdyb3VwcyA9IGdyb3VwUHJlcmVuZGVycyhjdHgub3V0cHV0cy5wcmVyZW5kZXJzKTtcbiAgZGVidWcoYFByZXJlbmRlciBncm91cHM6ICR7cHJlcmVuZGVyR3JvdXBzLnNpemV9IGdyb3Vwc2ApO1xuXG4gIGNvbnN0IGNhY2hlS2luZE9mID0gY2FjaGVLaW5kUmVzb2x2ZXIoY3R4Lm91dHB1dHMpO1xuXG4gIC8vIFRhZyAtPiBjYWNoZSBrZXlzLCBzdGFuZGluZyBpbiBmb3IgdGhlIG1hcHBpbmcgcm93cyBhIHJ1bnRpbWUgYHNldGAgd3JpdGVzLlxuICAvLyBTZWUgYElOSVRfQ0FDSEVfVEFHX01BTklGRVNUYC5cbiAgY29uc3QgdGFnTWFuaWZlc3Q6IEluaXRDYWNoZVRhZ01hbmlmZXN0ID0ge307XG5cbiAgLy8gUm91dGVzIHNlZWRlZCB1bmRlciB0aGVpciBwYXRobmFtZSBieSBhIGBuZXh0YCB0aGF0IHJlYWRzIHJvdXRlLWNhY2hlIGtleXM6XG4gIC8vIHNlZSB0aGUgYGNhY2hlS2V5YCBiZWxvdy5cbiAgY29uc3Qgc2NvcGVzS2V5c0J5Um91dGUgPSBuZXh0U2NvcGVzS2V5c0J5Um91dGUoY3R4LnByb2plY3REaXIpO1xuICBjb25zdCB1bnNjb3BlZFJvdXRlczogc3RyaW5nW10gPSBbXTtcblxuICAvLyBQcm9jZXNzIGVhY2ggZ3JvdXAgYW5kIGNyZWF0ZSBjYWNoZSBlbnRyaWVzXG4gIGZvciAoY29uc3QgW2Jhc2VQYXRoLCB2YXJpYW50c10gb2YgcHJlcmVuZGVyR3JvdXBzKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEEgZHluYW1pYyByb3V0ZSB0ZW1wbGF0ZSDigJQgYC9bbGFuZ10vW3NsdWddYCDigJQgaXMgbm90IGEgZGVhZCBlbnRyeTogd2l0aFxuICAgICAgLy8gUFBSIGl0IGlzIHRoZSByb3V0ZSdzICpmYWxsYmFjayBzaGVsbCosIGFuZCB0aGUgc2VydmVyIGxvb2tzIGl0IHVwIGluXG4gICAgICAvLyB0aGUgY2FjaGUgdW5kZXIgZXhhY3RseSB0aGF0IGtleS4gYGFwcC1wYWdlLXJ1bnRpbWVgIHJlYWRzXG4gICAgICAvLyBgcHJlcmVuZGVyTWFuaWZlc3QuZHluYW1pY1JvdXRlc1tyb3V0ZV0uZmFsbGJhY2tgICh0aGUgbGl0ZXJhbCB0ZW1wbGF0ZVxuICAgICAgLy8gc3RyaW5nKSBhbmQgY2FsbHMgYGhhbmRsZVJlc3BvbnNlKHsgY2FjaGVLZXksIGlzRmFsbGJhY2s6IHRydWUgfSlgOyB0aGVcbiAgICAgIC8vIFBhZ2VzIFJvdXRlciBkb2VzIHRoZSBzYW1lIHdpdGggYHNyY1BhZ2VgIGZvciBhbiBJU1IgZmFsbGJhY2suIFNraXBwaW5nXG4gICAgICAvLyB0aGVzZSBncm91cHMgbWFkZSBldmVyeSBzdWNoIGxvb2t1cCBhIE1JU1MsIHNvIHRoZSBzaGVsbCB3YXMgcmVuZGVyZWRcbiAgICAgIC8vIHBlciByZXF1ZXN0IGluc3RlYWQgb2YgcmVzdW1lZCBmcm9tIHRoZSBidWlsZCAtIHZpc2libGUgaW5cbiAgICAgIC8vIGB0ZXN0L2UyZS9hcHAtZGlyL3N1Yi1zaGVsbC1nZW5lcmF0aW9uYCwgd2hlcmUgYSBgJ3VzZSBjYWNoZSdgIHJvb3RcbiAgICAgIC8vIGxheW91dCByZXBvcnRlZCBgKHJ1bnRpbWUpYCB3aGVyZSBuZXh0IHN0YXJ0IHJlcG9ydHMgYChidWlsZHRpbWUpYC5cbiAgICAgIC8vXG4gICAgICAvLyBBIFBhZ2VzIFJvdXRlciB0ZW1wbGF0ZSBpcyBzZWVkZWQgZm9yIHRoZSBzYW1lIHJlYXNvbjogaW4gcHJvZHVjdGlvblxuICAgICAgLy8gaXRzIGZpbGwgZnVuY3Rpb24gb25seSByZXR1cm5zIHdoYXQgdGhlIGNhY2hlIGFscmVhZHkgaG9sZHMsIHNvIHdpdGhcbiAgICAgIC8vIG5vdGhpbmcgc2VlZGVkIHRoZXJlIGlzIG5vIGBmYWxsYmFjazogdHJ1ZWAgc2hlbGwgdG8gc2VydmUgYW5kXG4gICAgICAvLyBgcm91dGVyLmlzRmFsbGJhY2tgIGlzIG5ldmVyIHRydWUgKGB0ZXN0L2UyZS9mYWxsYmFjay1yb3V0ZS1wYXJhbXNgKS5cbiAgICAgIC8vIE5vdGhpbmcgZXh0cmEgaXMgbmVlZGVkIHRvIGtlZXAgbm9uLVBQUiB0ZW1wbGF0ZXMgb3V0OiBhIHJvdXRlIHdpdGggbm9cbiAgICAgIC8vIHNoZWxsIGVtaXRzIG5vIHByZXJlbmRlciBvdXRwdXQuXG4gICAgICBjb25zdCBraW5kID0gY2FjaGVLaW5kT2YodmFyaWFudHMpO1xuICAgICAgaWYgKCFraW5kKSB7XG4gICAgICAgIGRlYnVnKGBTS0lQOiBObyByb3V0ZSBraW5kIGZvdW5kIGZvciAke2Jhc2VQYXRofWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZGVidWcoYFByb2Nlc3NpbmcgJHtiYXNlUGF0aH0gKCR7a2luZH0pYCk7XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaHRtbDogaHRtbFByZXJlbmRlcixcbiAgICAgICAgcnNjOiByc2NQcmVyZW5kZXIsXG4gICAgICAgIHNlZ21lbnRzOiBzZWdtZW50UHJlcmVuZGVycyxcbiAgICAgICAgZGF0YTogZGF0YVByZXJlbmRlcixcbiAgICAgIH0gPSB2YXJpYW50cztcblxuICAgICAgaWYgKCFodG1sUHJlcmVuZGVyICYmICFyc2NQcmVyZW5kZXIgJiYgIWRhdGFQcmVyZW5kZXIpIHtcbiAgICAgICAgZGVidWcoYFNLSVA6IE5vIHByZXJlbmRlciBmaWxlcyBmb3VuZCBmb3IgJHtiYXNlUGF0aH1gKTtcbiAgICAgICAgY29udGludWU7IC8vIFNraXAgaWYgd2UgZG9uJ3QgaGF2ZSB0aGUgbWFpbiBmaWxlc1xuICAgICAgfVxuXG4gICAgICAvLyBDcmVhdGUgY2FjaGUgZW50cnkgd2l0aCB0aGUgYXBwcm9wcmlhdGUgc3RydWN0dXJlIGJhc2VkIG9uIGtpbmRcbiAgICAgIGxldCBjYWNoZUVudHJ5OiBDYWNoZUhhbmRsZXJWYWx1ZTtcblxuICAgICAgaWYgKGtpbmQgPT09IENhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSkge1xuICAgICAgICAvLyBSZWFkIEhUTUwgZmlsZVxuICAgICAgICBjb25zdCBodG1sID0gKGF3YWl0IHJlYWRQcmVyZW5kZXIoaHRtbFByZXJlbmRlcikpPy50b1N0cmluZygpO1xuXG4gICAgICAgIGlmICghaHRtbCkge1xuICAgICAgICAgIGRlYnVnKGBTS0lQOiBObyBIVE1MIGNvbnRlbnQgZm9yIEFQUF9QQUdFICR7YmFzZVBhdGh9YCk7XG4gICAgICAgICAgY29udGludWU7IC8vIFNraXAgaWYgbm8gSFRNTCBjb250ZW50XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWFkIFJTQyBkYXRhXG4gICAgICAgIGNvbnN0IHJzY0RhdGEgPSBhd2FpdCByZWFkUHJlcmVuZGVyKHJzY1ByZXJlbmRlcik7XG5cbiAgICAgICAgLy8gUmVhZCBzZWdtZW50IGRhdGFcbiAgICAgICAgY29uc3Qgc2VnbWVudERhdGEgPSBhd2FpdCBnZXRTZWdtZW50RGF0YShzZWdtZW50UHJlcmVuZGVycyk7XG5cbiAgICAgICAgLy8gRXh0cmFjdCBoZWFkZXJzIGZyb20gdGhlIEhUTUwgb3IgUlNDIHByZXJlbmRlclxuICAgICAgICBjb25zdCBoZWFkZXJzID0gYXBwUGFnZUNhY2hlSGVhZGVycyhcbiAgICAgICAgICBodG1sUHJlcmVuZGVyPy5mYWxsYmFjaz8uaW5pdGlhbEhlYWRlcnMgfHxcbiAgICAgICAgICAgIHJzY1ByZXJlbmRlcj8uZmFsbGJhY2s/LmluaXRpYWxIZWFkZXJzIHx8XG4gICAgICAgICAgICB7fSxcbiAgICAgICAgKTtcblxuICAgICAgICBjYWNoZUVudHJ5ID0ge1xuICAgICAgICAgIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKSxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAga2luZDogQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgIHJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc2VnbWVudERhdGE6IHNlZ21lbnREYXRhLFxuICAgICAgICAgICAgLy8gcG9zdHBvbmVkU3RhdGUgZnJvbSBmYWxsYmFjayBhcHBlYXJzIHRvIGJlIHRoZSBSZWFjdCBwb3N0cG9uZWQgc3RhdGVcbiAgICAgICAgICAgIC8vIHdoaWNoIG1hdGNoZXMgd2hhdCB0aGUgY2FjaGUgZXhwZWN0cyBmb3IgcG9zdHBvbmVkXG4gICAgICAgICAgICBwb3N0cG9uZWQ6IGh0bWxQcmVyZW5kZXI/LmZhbGxiYWNrPy5wb3N0cG9uZWRTdGF0ZSxcbiAgICAgICAgICAgIC8vIGluaXRpYWxTdGF0dXMgZnJvbSBwcmVyZW5kZXIgaXMgdGhlIEhUVFAgc3RhdHVzIG9mIHRoZSBwcmVyZW5kZXJlZCBwYWdlXG4gICAgICAgICAgICBzdGF0dXM6IGh0bWxQcmVyZW5kZXI/LmZhbGxiYWNrPy5pbml0aWFsU3RhdHVzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IENhY2hlZFJvdXRlS2luZC5BUFBfUk9VVEUpIHtcbiAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlYWRQcmVyZW5kZXIoaHRtbFByZXJlbmRlcik7XG5cbiAgICAgICAgaWYgKCFib2R5KSB7XG4gICAgICAgICAgZGVidWcoYFNLSVA6IE5vIGJvZHkgY29udGVudCBmb3IgQVBQX1JPVVRFICR7YmFzZVBhdGh9YCk7XG4gICAgICAgICAgY29udGludWU7IC8vIFNraXAgaWYgbm8gY29udGVudFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXh0cmFjdCBoZWFkZXJzXG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBodG1sUHJlcmVuZGVyPy5mYWxsYmFjaz8uaW5pdGlhbEhlYWRlcnMgfHwge307XG5cbiAgICAgICAgY2FjaGVFbnRyeSA9IHtcbiAgICAgICAgICBsYXN0TW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIGtpbmQ6IENhY2hlZFJvdXRlS2luZC5BUFBfUk9VVEUsXG4gICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogaHRtbFByZXJlbmRlcj8uZmFsbGJhY2s/LmluaXRpYWxTdGF0dXMgfHwgMjAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IENhY2hlZFJvdXRlS2luZC5QQUdFUykge1xuICAgICAgICAvLyBBIGJ1aWxkLXRpbWUgYG5vdEZvdW5kOiB0cnVlYC4gTmV4dC5qcyByZXBvcnRzIHRoZSByb3V0ZSBhc1xuICAgICAgICAvLyBwcmVyZW5kZXJlZCBhbmQgaGFuZHMgdXMgYSBwcmVyZW5kZXIgd2hvc2UgYGZpbGVQYXRoYCBpc1xuICAgICAgICAvLyBgcGFnZXMvNDA0Lmh0bWxgIGFuZCB3aG9zZSBgaW5pdGlhbFN0YXR1c2AgaXMgNDA0IC0gYnV0IGl0IHdyaXRlc1xuICAgICAgICAvLyAqbm8qIG91dHB1dCBmb3IgaXQgKG5vIGBmaXJzdC5odG1sYCwgYC5qc29uYCBvciBgLm1ldGFgKSwgYmVjYXVzZSBhXG4gICAgICAgIC8vIFBhZ2VzIFJvdXRlciBgbm90Rm91bmRgIGlzIHJlcHJlc2VudGVkIGluIHRoZSBjYWNoZSBhcyBhbiBlbnRyeVxuICAgICAgICAvLyB3aG9zZSBgdmFsdWVgIGlzIGBudWxsYCAoYHBhZ2VzLWhhbmRsZXIudHNgLCBcImlzTm90Rm91bmQgaW5cbiAgICAgICAgLy8gbWV0YWRhdGFcIiksIGFuZCBgRmlsZVN5c3RlbUNhY2hlLnNldGAga2VlcHMgYSBudWxsIHZhbHVlIGluIGl0cyBMUlVcbiAgICAgICAgLy8gb25seSwgbmV2ZXIgb24gZGlzay4gU28gYG5leHQgc3RhcnRgIG1pc3NlcywgcmUtcnVuc1xuICAgICAgICAvLyBgZ2V0U3RhdGljUHJvcHNgLCBhbmQgYW5zd2VycyA0MDQgZnJvbSBgcmVuZGVyNDA0KClgLlxuICAgICAgICAvL1xuICAgICAgICAvLyBTZWVkaW5nIGl0IGFzIGFuIG9yZGluYXJ5IGBQQUdFU2AgZW50cnkgbWFkZSB0aGF0IGEgMjAwOiB0aGUgZW50cnlcbiAgICAgICAgLy8gaXMgYSBISVQgY2FycnlpbmcgdGhlIDQwNCBwYWdlJ3MgSFRNTCwgYW5kIHRoZSBwYWdlcyBoYW5kbGVyIG5ldmVyXG4gICAgICAgIC8vIHJlYWRzIGB2YWx1ZS5zdGF0dXNgIG9uIHRoZSBISVQgcGF0aCwgc28gdGhlIHN0YXR1cyBzdGF5ZWQgMjAwIHdoaWxlXG4gICAgICAgIC8vIHRoZSBib2R5IHNhaWQgXCI0MDQgcGFnZVwiLiBTa2lwcGluZyBpdCByZXN0b3JlcyB0aGUgbWlzcywgYW5kIHdpdGggaXRcbiAgICAgICAgLy8gYG5leHQgc3RhcnRgJ3Mgc3RhdHVzLiBDb3N0cyBvbmUgcmVuZGVyIHBlciByZXZhbGlkYXRlIHdpbmRvdywgd2hpY2hcbiAgICAgICAgLy8gaXMgd2hhdCBgbmV4dCBzdGFydGAgcGF5cyB0b28uXG4gICAgICAgIGNvbnN0IGluaXRpYWxTdGF0dXMgPSBodG1sUHJlcmVuZGVyPy5mYWxsYmFjaz8uaW5pdGlhbFN0YXR1cztcbiAgICAgICAgaWYgKGluaXRpYWxTdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBpbml0aWFsU3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBTS0lQOiBQQUdFUyAke2Jhc2VQYXRofSBwcmVyZW5kZXJlZCB3aXRoIHN0YXR1cyAke2luaXRpYWxTdGF0dXN9IChidWlsZC10aW1lIG5vdEZvdW5kKWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGh0bWwgPSAoYXdhaXQgcmVhZFByZXJlbmRlcihodG1sUHJlcmVuZGVyKSk/LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgaWYgKCFodG1sKSB7XG4gICAgICAgICAgZGVidWcoYFNLSVA6IE5vIEhUTUwgY29udGVudCBmb3IgUEFHRVMgJHtiYXNlUGF0aH1gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGBnZXRTdGF0aWNQcm9wc2AnIHJlc3VsdCwgd2hpY2ggdGhlIGVudHJ5cG9pbnQgYW5zd2Vyc1xuICAgICAgICAvLyBgL19uZXh0L2RhdGEvPGJ1aWxkSWQ+LzxwYWdlPi5qc29uYCB3aXRoIGFuZCB0aGUgY2xpZW50IHJvdXRlciByZWFkc1xuICAgICAgICAvLyBvbiBhIG5hdmlnYXRpb24uIEEgcm91dGUncyAqZmFsbGJhY2sqIHRlbXBsYXRlIGhhcyBubyBkYXRhIGZpbGUgLVxuICAgICAgICAvLyB0aGVyZSBhcmUgbm8gcGFyYW1zIHRvIHJ1biBgZ2V0U3RhdGljUHJvcHNgIHdpdGggeWV0IC0gYW5kXG4gICAgICAgIC8vIGBGaWxlU3lzdGVtQ2FjaGVgIHNraXBzIHRoZSByZWFkIGZvciBvbmUgdG9vIChgaWYgKCFjdHguaXNGYWxsYmFjaylgKSxcbiAgICAgICAgLy8gbGVhdmluZyBgcGFnZURhdGFgIGFuIGVtcHR5IG9iamVjdC5cbiAgICAgICAgY29uc3QgcGFnZURhdGFKc29uID0gKGF3YWl0IHJlYWRQcmVyZW5kZXIoZGF0YVByZXJlbmRlcikpPy50b1N0cmluZygpO1xuXG4gICAgICAgIGNhY2hlRW50cnkgPSB7XG4gICAgICAgICAgbGFzdE1vZGlmaWVkOiBEYXRlLm5vdygpLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBraW5kOiBDYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgcGFnZURhdGE6IHBhZ2VEYXRhSnNvbiA/IEpTT04ucGFyc2UocGFnZURhdGFKc29uKSA6IHt9LFxuICAgICAgICAgICAgLy8gQm90aCBgdW5kZWZpbmVkYCwgd2hpY2ggaXMgd2hhdCBgRmlsZVN5c3RlbUNhY2hlYCBoYW5kcyBiYWNrIGZvclxuICAgICAgICAgICAgLy8gYSBgUEFHRVNgIGVudHJ5OiBpdCByZWFkcyBhIGAubWV0YWAgc2lkZWNhciBmb3IgdGhlIEFwcCBSb3V0ZXJcbiAgICAgICAgICAgIC8vIGtpbmRzIG9ubHksIGFuZCBgc2VuZFJlbmRlclJlc3VsdGAgc3VwcGxpZXMgdGhlIGNvbnRlbnQgdHlwZS5cbiAgICAgICAgICAgIC8vIFNlZWRpbmcgYGZhbGxiYWNrLmluaXRpYWxIZWFkZXJzYCBpbnN0ZWFkIHdvdWxkIHB1dFxuICAgICAgICAgICAgLy8gYGNvbnRlbnQtdHlwZTogdGV4dC9odG1sYCBvbiB0aGUgSlNPTiBkYXRhIHJlc3BvbnNlcyBzZXJ2ZWQgZnJvbVxuICAgICAgICAgICAgLy8gdGhpcyBzYW1lIGVudHJ5LlxuICAgICAgICAgICAgaGVhZGVyczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc3RhdHVzOiB1bmRlZmluZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNraXAgdW5zdXBwb3J0ZWQga2luZHNcbiAgICAgICAgZGVidWcoYFNLSVA6IFVuc3VwcG9ydGVkIHJvdXRlIGtpbmQgJHtraW5kfSBmb3IgJHtiYXNlUGF0aH1gKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFdyaXRlIGNhY2hlIGVudHJ5IHRvIGZpbGUsIHVuZGVyIHRoZSBrZXkgTmV4dC5qcyByZWFkcyBpdCBiYWNrIHdpdGg6XG4gICAgICAvLyBmcm9tIG5leHQgMTYuMy44IHRoZSBvbmUgYG5leHQgYnVpbGRgIGZpbGVkIHRoZSBwcmVyZW5kZXIgdW5kZXIgKHNlZVxuICAgICAgLy8gYHJvdXRlQ2FjaGVLZXlGcm9tRmlsZVBhdGhgKSwgYmVmb3JlIHRoYXQgdGhlIHJvdXRlIHJhdGhlciB0aGFuIHRoZVxuICAgICAgLy8gVVJMIGl0IGlzIHNlcnZlZCBhdCAoc2VlIGBwcmVyZW5kZXJQYXRoVG9DYWNoZUtleWApLlxuICAgICAgLy8gRXZlcnkga2luZCBzZWVkZWQgaGVyZSBoYXMgcmVhZCBpdHMgSFRNTCBwcmVyZW5kZXIsIHNvIHRoYXQgaXMgdGhlXG4gICAgICAvLyBmaWxlIHRvIHJlYWQgdGhlIGtleSBvZmYuXG4gICAgICBjb25zdCByb3V0ZUNhY2hlS2V5ID0gcm91dGVDYWNoZUtleUZyb21GaWxlUGF0aChcbiAgICAgICAgcHJlcmVuZGVyRmlsZVBhdGgoaHRtbFByZXJlbmRlciksXG4gICAgICApO1xuICAgICAgaWYgKCFyb3V0ZUNhY2hlS2V5ICYmIHNjb3Blc0tleXNCeVJvdXRlKSB7XG4gICAgICAgIC8vIE5ldmVyIHJlYWQgdW5kZXIgYW55IG90aGVyIGtleTsgdGhlIGJ1aWxkIGZhaWxzIGJlbG93LlxuICAgICAgICB1bnNjb3BlZFJvdXRlcy5wdXNoKGJhc2VQYXRoKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBjYWNoZUtleSA9XG4gICAgICAgIHJvdXRlQ2FjaGVLZXkgPz9cbiAgICAgICAgcHJlcmVuZGVyUGF0aFRvQ2FjaGVLZXkoYmFzZVBhdGgsIGN0eC5jb25maWcuYmFzZVBhdGggfHwgXCJcIik7XG4gICAgICBjb25zdCBjYWNoZUZpbGVQYXRoID0gam9pbihjYWNoZURpciwgY2FjaGVPYmplY3ROYW1lKGNhY2hlS2V5KSk7XG5cbiAgICAgIC8vIEVuc3VyZSBwYXJlbnQgZGlyZWN0b3J5IGV4aXN0c1xuICAgICAgYXdhaXQgbWtkaXIoZGlybmFtZShjYWNoZUZpbGVQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAgIGF3YWl0IHdyaXRlRmlsZShjYWNoZUZpbGVQYXRoLCBzZXJpYWxpemVDYWNoZVZhbHVlKGNhY2hlRW50cnkpKTtcblxuICAgICAgZm9yIChjb25zdCB0YWcgb2YgaGVhZGVyVGFncyhjYWNoZUVudHJ5LnZhbHVlKSkge1xuICAgICAgICAodGFnTWFuaWZlc3RbdGFnXSA/Pz0gW10pLnB1c2goY2FjaGVLZXkpO1xuICAgICAgfVxuXG4gICAgICBkZWJ1ZyhgQ3JlYXRlZCBjYWNoZSBlbnRyeTogJHtjYWNoZUZpbGVQYXRofWApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBwcm9jZXNzaW5nIHByZXJlbmRlciBncm91cCAke2Jhc2VQYXRofTpgLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQSBwYXRobmFtZSBrZXkgaXMgb25lIDE2LjMuOCsgbmV2ZXIgcmVhZHMsIHNvIGVhY2ggb2YgdGhlc2Ugd291bGQgYmUgYVxuICAvLyBNSVNTIHVudGlsIGl0IGlzIGZpcnN0IHJlbmRlcmVkIC0gdGhlIHJlZ3Jlc3Npb24gdGhlIHJvdXRlLWNhY2hlIGtleSBmaXhlZFxuICAvLyAtIHdpdGggYSBkZXBsb3kgdGhhdCBvdGhlcndpc2Ugc3VjY2VlZHMuIEZhaWwgdGhlIGJ1aWxkIGluc3RlYWQuXG4gIGlmICh1bnNjb3BlZFJvdXRlcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7TE9HX1BSRUZJWH0gTmV4dC5qcyAke2N0eC5uZXh0VmVyc2lvbn0gd3JvdGUgJHt1bnNjb3BlZFJvdXRlcy5sZW5ndGh9IGAgK1xuICAgICAgICBgcHJlcmVuZGVyKHMpIG91dHNpZGUgPGRpc3REaXI+L3NlcnZlci9yb3V0ZS1jYWNoZS8sIHNvIGNkay1uZXh0anMgYCArXG4gICAgICAgIGBjYW5ub3QgdGVsbCB0aGUgY2FjaGUga2V5IGl0IHJlYWRzIHRoZW0gYmFjayB3aXRoOiBgICtcbiAgICAgICAgYCR7dW5zY29wZWRSb3V0ZXMuc2xpY2UoMCwgNSkuam9pbihcIiwgXCIpfWAgK1xuICAgICAgICBgJHt1bnNjb3BlZFJvdXRlcy5sZW5ndGggPiA1ID8gXCIsIC4uLlwiIDogXCJcIn1gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCB0YWdnZWRLZXlzID0gT2JqZWN0LmtleXModGFnTWFuaWZlc3QpLmxlbmd0aDtcbiAgaWYgKHRhZ2dlZEtleXMgPiAwKSB7XG4gICAgYXdhaXQgd3JpdGVGaWxlKFxuICAgICAgam9pbihjYWNoZURpciwgSU5JVF9DQUNIRV9UQUdfTUFOSUZFU1QpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkodGFnTWFuaWZlc3QpLFxuICAgICk7XG4gICAgZGVidWcoYFdyb3RlICR7SU5JVF9DQUNIRV9UQUdfTUFOSUZFU1R9IHdpdGggJHt0YWdnZWRLZXlzfSB0YWdzYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBhcHAncyBgbmV4dGAgc2NvcGVzIHJlc3BvbnNlLWNhY2hlIGtleXMgYnkgc291cmNlIHJvdXRlICgxNi4zLjhcbiAqIG9uKSwgZm91bmQgYnkgd2hldGhlciBpdCBoYXMgdGhlIG1vZHVsZSB0aGF0IGRlcml2ZXMgdGhlbSwgc2luY2UgYSBjYW5hcnknc1xuICogdmVyc2lvbiBzYXlzIG5vdGhpbmcgb2Ygd2hhdCBpdCBjb250YWlucy5cbiAqL1xuZnVuY3Rpb24gbmV4dFNjb3Blc0tleXNCeVJvdXRlKHByb2plY3REaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNyZWF0ZVJlcXVpcmUoam9pbihwcm9qZWN0RGlyLCBcInBhY2thZ2UuanNvblwiKSkucmVzb2x2ZShcbiAgICAgIFwibmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGUtY2FjaGUta2V5LmpzXCIsXG4gICAgKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKiBBIHByZXJlbmRlciBvdXRwdXQsIG9mIHdoaWNoIG9ubHkgdGhlIGZpbGUgaXQgd2FzIHdyaXR0ZW4gdG8gaXMgcmVhZC4gKi9cbnR5cGUgUHJlcmVuZGVyT3V0cHV0ID1cbiAgeyBmYWxsYmFjaz86IHsgZmlsZVBhdGg/OiBzdHJpbmcgfSB8IHsgcG9zdHBvbmVkU3RhdGU6IHN0cmluZyB9IH0gfCB1bmRlZmluZWQ7XG5cbi8qKiBUaGUgZmlsZSBgbmV4dCBidWlsZGAgd3JvdGUgYSBwcmVyZW5kZXIgdG8sIGlmIGl0IHdyb3RlIG9uZS4gKi9cbmZ1bmN0aW9uIHByZXJlbmRlckZpbGVQYXRoKHByZXJlbmRlcjogUHJlcmVuZGVyT3V0cHV0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHByZXJlbmRlcj8uZmFsbGJhY2sgJiYgXCJmaWxlUGF0aFwiIGluIHByZXJlbmRlci5mYWxsYmFja1xuICAgID8gcHJlcmVuZGVyLmZhbGxiYWNrLmZpbGVQYXRoXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGUgY29udGVudCBvZiB0aGUgZmlsZSBgbmV4dCBidWlsZGAgd3JvdGUgYSBwcmVyZW5kZXIgdG8sIGlmIGl0IGV4aXN0cy4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlYWRQcmVyZW5kZXIoXG4gIHByZXJlbmRlcjogUHJlcmVuZGVyT3V0cHV0LFxuKTogUHJvbWlzZTxCdWZmZXIgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgZmlsZVBhdGggPSBwcmVyZW5kZXJGaWxlUGF0aChwcmVyZW5kZXIpO1xuICByZXR1cm4gZmlsZVBhdGggJiYgZXhpc3RzU3luYyhmaWxlUGF0aCkgPyByZWFkRmlsZShmaWxlUGF0aCkgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVhZCBzZWdtZW50IGRhdGEgZnJvbSBzZWdtZW50IHByZXJlbmRlcnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0U2VnbWVudERhdGE8XG4gIFQgZXh0ZW5kcyB7IHBhdGhuYW1lOiBzdHJpbmcgfSAmIE5vbk51bGxhYmxlPFByZXJlbmRlck91dHB1dD4sXG4+KHNlZ21lbnRQcmVyZW5kZXJzOiBUW10pOiBQcm9taXNlPE1hcDxzdHJpbmcsIEJ1ZmZlcj4+IHtcbiAgY29uc3Qgc2VnbWVudERhdGEgPSBuZXcgTWFwPHN0cmluZywgQnVmZmVyPigpO1xuXG4gIGZvciAoY29uc3Qgc2VnbWVudFByZXJlbmRlciBvZiBzZWdtZW50UHJlcmVuZGVycykge1xuICAgIGNvbnN0IHNlZ21lbnRDb250ZW50ID0gYXdhaXQgcmVhZFByZXJlbmRlcihzZWdtZW50UHJlcmVuZGVyKTtcbiAgICBpZiAoc2VnbWVudENvbnRlbnQpIHtcbiAgICAgIC8vIEV4dHJhY3Qgc2VnbWVudCBuYW1lIGZyb20gcGF0aG5hbWVcbiAgICAgIGNvbnN0IHNlZ21lbnROYW1lID1cbiAgICAgICAgXCIvXCIgK1xuICAgICAgICBzZWdtZW50UHJlcmVuZGVyLnBhdGhuYW1lXG4gICAgICAgICAgLnNwbGl0KFwiLnNlZ21lbnRzL1wiKVsxXVxuICAgICAgICAgIC5yZXBsYWNlKC9cXC5zZWdtZW50XFwucnNjJC8sIFwiXCIpO1xuICAgICAgc2VnbWVudERhdGEuc2V0KHNlZ21lbnROYW1lLCBzZWdtZW50Q29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnREYXRhO1xufVxuIl19
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyL2luaXQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFvQ0Esd0NBbVBDO0FBdlJELHNEQUFzRDtBQUN0RDs7Ozs7OztHQU9HO0FBQ0gscUNBQXFDO0FBQ3JDLCtDQUE4RDtBQUM5RCw2Q0FBNEM7QUFDNUMseUNBQTBDO0FBQzFDLGtEQUE2QjtBQUU3Qiw0Q0FBMEM7QUFFMUMsK0NBQXFFO0FBQ3JFLCtDQVV1QjtBQUV2QixNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRTdDOzs7R0FHRztBQUNJLEtBQUssVUFBVSxjQUFjLENBQ2xDLEdBR0MsRUFDRCxRQUFnQjtJQUVoQixnQ0FBZ0M7SUFDaEMsTUFBTSxJQUFBLGdCQUFLLEVBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsS0FBSyxDQUFDLHlCQUF5QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRTNDLDBFQUEwRTtJQUMxRSxNQUFNLGVBQWUsR0FBRyxJQUFBLDZCQUFlLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRSxLQUFLLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO0lBRTFELE1BQU0sV0FBVyxHQUFHLElBQUEsK0JBQWlCLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5ELDhFQUE4RTtJQUM5RSxpQ0FBaUM7SUFDakMsTUFBTSxXQUFXLEdBQXlCLEVBQUUsQ0FBQztJQUU3Qyw4RUFBOEU7SUFDOUUsNEJBQTRCO0lBQzVCLE1BQU0saUJBQWlCLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUVwQyw4Q0FBOEM7SUFD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YSxDQUMxQixTQUEwQjtJQUUxQixNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxPQUFPLFFBQVEsSUFBSSxJQUFBLG9CQUFVLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsbUJBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzNFLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxjQUFjLENBRTNCLGlCQUFzQjtJQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUU5QyxLQUFLLE1BQU0sZ0JBQWdCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNqRCxNQUFNLGNBQWMsR0FBRyxNQUFNLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIscUNBQXFDO1lBQ3JDLE1BQU0sV0FBVyxHQUNmLEdBQUc7Z0JBQ0gsZ0JBQWdCLENBQUMsUUFBUTtxQkFDdEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDdEIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyoqXG4gKiBUaGUgaW5pdCBjYWNoZTogb25lIHJlc3BvbnNlLWNhY2hlIGVudHJ5IHBlciBwcmVyZW5kZXJlZCByb3V0ZSwgd3JpdHRlbiBieVxuICogYG9uQnVpbGRDb21wbGV0ZWAgYW5kIHNlZWRlZCBpbnRvIFMzIGF0IGRlcGxveSwgc28gYSBmcmVzaFxuICogZGVwbG95bWVudCBzdGFydHMgd2l0aCB3aGF0IGBuZXh0IGJ1aWxkYCByZW5kZXJlZCBpbnN0ZWFkIG9mIGEgY29sZCBjYWNoZS5cbiAqXG4gKiBTZXBhcmF0ZSBmcm9tIGBhZGFwdGVyLm10c2Agb25seSBzbyBpdCBjYW4gYmUgdGVzdGVkIHdpdGhvdXQgbG9hZGluZyB0aGVcbiAqIGFkYXB0ZXIgaXRzZWxmICh3aGljaCByZXNvbHZlcyBjZGstbmV4dGpzJ3Mgb3duIGhhbmRsZXJzIG9mZiBgaW1wb3J0Lm1ldGFgKS5cbiAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBta2RpciwgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZUhhbmRsZXJWYWx1ZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9pbmNyZW1lbnRhbC1jYWNoZVwiO1xuaW1wb3J0IHsgTE9HX1BSRUZJWCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgQnVpbGRDb21wbGV0ZUNvbnRleHQgfSBmcm9tIFwiLi9idWlsZC1vdXRwdXRzXCI7XG5pbXBvcnQgeyBDQUNIRURfUk9VVEVfS0lORCwgY2FjaGVLaW5kUmVzb2x2ZXIgfSBmcm9tIFwiLi9jYWNoZS1raW5kc1wiO1xuaW1wb3J0IHtcbiAgYXBwUGFnZUNhY2hlSGVhZGVycyxcbiAgY2FjaGVPYmplY3ROYW1lLFxuICBncm91cFByZXJlbmRlcnMsXG4gIGhlYWRlclRhZ3MsXG4gIElOSVRfQ0FDSEVfVEFHX01BTklGRVNULFxuICBJbml0Q2FjaGVUYWdNYW5pZmVzdCxcbiAgcHJlcmVuZGVyUGF0aFRvQ2FjaGVLZXksXG4gIHJvdXRlQ2FjaGVLZXlGcm9tRmlsZVBhdGgsXG4gIHNlcmlhbGl6ZUNhY2hlVmFsdWUsXG59IGZyb20gXCIuL2NhY2hlLXV0aWxzXCI7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOmFkYXB0ZXJcIik7XG5cbi8qKlxuICogV3JpdGUgYSBgPGNhY2hlS2V5Pi5qc29uYCBwZXIgcHJlcmVuZGVyZWQgcm91dGUgdW5kZXIgYGNhY2hlRGlyYCwgcGx1c1xuICoge0BsaW5rIElOSVRfQ0FDSEVfVEFHX01BTklGRVNUfSB3aGVuIGFueSBlbnRyeSBjYXJyaWVzIHRhZ3MuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUluaXRDYWNoZShcbiAgY3R4OiBQaWNrPFxuICAgIEJ1aWxkQ29tcGxldGVDb250ZXh0LFxuICAgIFwiY29uZmlnXCIgfCBcIm91dHB1dHNcIiB8IFwibmV4dFZlcnNpb25cIiB8IFwicHJvamVjdERpclwiXG4gID4sXG4gIGNhY2hlRGlyOiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gRW5zdXJlIGNhY2hlIGRpcmVjdG9yeSBleGlzdHNcbiAgYXdhaXQgbWtkaXIoY2FjaGVEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBkZWJ1ZyhgSW5pdCBjYWNoZSBkaXJlY3Rvcnk6ICR7Y2FjaGVEaXJ9YCk7XG5cbiAgLy8gT25lIGVudHJ5IHBlciByb3V0ZSwgd2l0aCBpdHMgSFRNTCwgYC5yc2NgIGFuZCBzZWdtZW50IG91dHB1dHMgdG9nZXRoZXJcbiAgY29uc3QgcHJlcmVuZGVyR3JvdXBzID0gZ3JvdXBQcmVyZW5kZXJzKGN0eC5vdXRwdXRzLnByZXJlbmRlcnMpO1xuICBkZWJ1ZyhgUHJlcmVuZGVyIGdyb3VwczogJHtwcmVyZW5kZXJHcm91cHMuc2l6ZX0gZ3JvdXBzYCk7XG5cbiAgY29uc3QgY2FjaGVLaW5kT2YgPSBjYWNoZUtpbmRSZXNvbHZlcihjdHgub3V0cHV0cyk7XG5cbiAgLy8gVGFnIC0+IGNhY2hlIGtleXMsIHN0YW5kaW5nIGluIGZvciB0aGUgbWFwcGluZyByb3dzIGEgcnVudGltZSBgc2V0YCB3cml0ZXMuXG4gIC8vIFNlZSBgSU5JVF9DQUNIRV9UQUdfTUFOSUZFU1RgLlxuICBjb25zdCB0YWdNYW5pZmVzdDogSW5pdENhY2hlVGFnTWFuaWZlc3QgPSB7fTtcblxuICAvLyBSb3V0ZXMgc2VlZGVkIHVuZGVyIHRoZWlyIHBhdGhuYW1lIGJ5IGEgYG5leHRgIHRoYXQgcmVhZHMgcm91dGUtY2FjaGUga2V5czpcbiAgLy8gc2VlIHRoZSBgY2FjaGVLZXlgIGJlbG93LlxuICBjb25zdCBzY29wZXNLZXlzQnlSb3V0ZSA9IG5leHRTY29wZXNLZXlzQnlSb3V0ZShjdHgucHJvamVjdERpcik7XG4gIGNvbnN0IHVuc2NvcGVkUm91dGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIFByb2Nlc3MgZWFjaCBncm91cCBhbmQgY3JlYXRlIGNhY2hlIGVudHJpZXNcbiAgZm9yIChjb25zdCBbYmFzZVBhdGgsIHZhcmlhbnRzXSBvZiBwcmVyZW5kZXJHcm91cHMpIHtcbiAgICB0cnkge1xuICAgICAgLy8gQSBkeW5hbWljIHJvdXRlIHRlbXBsYXRlIOKAlCBgL1tsYW5nXS9bc2x1Z11gIOKAlCBpcyBub3QgYSBkZWFkIGVudHJ5OiB3aXRoXG4gICAgICAvLyBQUFIgaXQgaXMgdGhlIHJvdXRlJ3MgKmZhbGxiYWNrIHNoZWxsKiwgYW5kIHRoZSBzZXJ2ZXIgbG9va3MgaXQgdXAgaW5cbiAgICAgIC8vIHRoZSBjYWNoZSB1bmRlciBleGFjdGx5IHRoYXQga2V5LiBgYXBwLXBhZ2UtcnVudGltZWAgcmVhZHNcbiAgICAgIC8vIGBwcmVyZW5kZXJNYW5pZmVzdC5keW5hbWljUm91dGVzW3JvdXRlXS5mYWxsYmFja2AgKHRoZSBsaXRlcmFsIHRlbXBsYXRlXG4gICAgICAvLyBzdHJpbmcpIGFuZCBjYWxscyBgaGFuZGxlUmVzcG9uc2UoeyBjYWNoZUtleSwgaXNGYWxsYmFjazogdHJ1ZSB9KWA7IHRoZVxuICAgICAgLy8gUGFnZXMgUm91dGVyIGRvZXMgdGhlIHNhbWUgd2l0aCBgc3JjUGFnZWAgZm9yIGFuIElTUiBmYWxsYmFjay4gU2tpcHBpbmdcbiAgICAgIC8vIHRoZXNlIGdyb3VwcyBtYWRlIGV2ZXJ5IHN1Y2ggbG9va3VwIGEgTUlTUywgc28gdGhlIHNoZWxsIHdhcyByZW5kZXJlZFxuICAgICAgLy8gcGVyIHJlcXVlc3QgaW5zdGVhZCBvZiByZXN1bWVkIGZyb20gdGhlIGJ1aWxkIC0gdmlzaWJsZSBpblxuICAgICAgLy8gYHRlc3QvZTJlL2FwcC1kaXIvc3ViLXNoZWxsLWdlbmVyYXRpb25gLCB3aGVyZSBhIGAndXNlIGNhY2hlJ2Agcm9vdFxuICAgICAgLy8gbGF5b3V0IHJlcG9ydGVkIGAocnVudGltZSlgIHdoZXJlIG5leHQgc3RhcnQgcmVwb3J0cyBgKGJ1aWxkdGltZSlgLlxuICAgICAgLy9cbiAgICAgIC8vIEEgUGFnZXMgUm91dGVyIHRlbXBsYXRlIGlzIHNlZWRlZCBmb3IgdGhlIHNhbWUgcmVhc29uOiBpbiBwcm9kdWN0aW9uXG4gICAgICAvLyBpdHMgZmlsbCBmdW5jdGlvbiBvbmx5IHJldHVybnMgd2hhdCB0aGUgY2FjaGUgYWxyZWFkeSBob2xkcywgc28gd2l0aFxuICAgICAgLy8gbm90aGluZyBzZWVkZWQgdGhlcmUgaXMgbm8gYGZhbGxiYWNrOiB0cnVlYCBzaGVsbCB0byBzZXJ2ZSBhbmRcbiAgICAgIC8vIGByb3V0ZXIuaXNGYWxsYmFja2AgaXMgbmV2ZXIgdHJ1ZSAoYHRlc3QvZTJlL2ZhbGxiYWNrLXJvdXRlLXBhcmFtc2ApLlxuICAgICAgLy8gTm90aGluZyBleHRyYSBpcyBuZWVkZWQgdG8ga2VlcCBub24tUFBSIHRlbXBsYXRlcyBvdXQ6IGEgcm91dGUgd2l0aCBub1xuICAgICAgLy8gc2hlbGwgZW1pdHMgbm8gcHJlcmVuZGVyIG91dHB1dC5cbiAgICAgIGNvbnN0IGtpbmQgPSBjYWNoZUtpbmRPZih2YXJpYW50cyk7XG4gICAgICBpZiAoIWtpbmQpIHtcbiAgICAgICAgZGVidWcoYFNLSVA6IE5vIHJvdXRlIGtpbmQgZm91bmQgZm9yICR7YmFzZVBhdGh9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBkZWJ1ZyhgUHJvY2Vzc2luZyAke2Jhc2VQYXRofSAoJHtraW5kfSlgKTtcblxuICAgICAgY29uc3Qge1xuICAgICAgICBodG1sOiBodG1sUHJlcmVuZGVyLFxuICAgICAgICByc2M6IHJzY1ByZXJlbmRlcixcbiAgICAgICAgc2VnbWVudHM6IHNlZ21lbnRQcmVyZW5kZXJzLFxuICAgICAgICBkYXRhOiBkYXRhUHJlcmVuZGVyLFxuICAgICAgfSA9IHZhcmlhbnRzO1xuXG4gICAgICBpZiAoIWh0bWxQcmVyZW5kZXIgJiYgIXJzY1ByZXJlbmRlciAmJiAhZGF0YVByZXJlbmRlcikge1xuICAgICAgICBkZWJ1ZyhgU0tJUDogTm8gcHJlcmVuZGVyIGZpbGVzIGZvdW5kIGZvciAke2Jhc2VQYXRofWApO1xuICAgICAgICBjb250aW51ZTsgLy8gU2tpcCBpZiB3ZSBkb24ndCBoYXZlIHRoZSBtYWluIGZpbGVzXG4gICAgICB9XG5cbiAgICAgIC8vIENyZWF0ZSBjYWNoZSBlbnRyeSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzdHJ1Y3R1cmUgYmFzZWQgb24ga2luZFxuICAgICAgbGV0IGNhY2hlRW50cnk6IENhY2hlSGFuZGxlclZhbHVlO1xuXG4gICAgICBpZiAoa2luZCA9PT0gQ0FDSEVEX1JPVVRFX0tJTkQuQVBQX1BBR0UpIHtcbiAgICAgICAgLy8gUmVhZCBIVE1MIGZpbGVcbiAgICAgICAgY29uc3QgaHRtbCA9IChhd2FpdCByZWFkUHJlcmVuZGVyKGh0bWxQcmVyZW5kZXIpKT8udG9TdHJpbmcoKTtcblxuICAgICAgICBpZiAoIWh0bWwpIHtcbiAgICAgICAgICBkZWJ1ZyhgU0tJUDogTm8gSFRNTCBjb250ZW50IGZvciBBUFBfUEFHRSAke2Jhc2VQYXRofWApO1xuICAgICAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIGlmIG5vIEhUTUwgY29udGVudFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVhZCBSU0MgZGF0YVxuICAgICAgICBjb25zdCByc2NEYXRhID0gYXdhaXQgcmVhZFByZXJlbmRlcihyc2NQcmVyZW5kZXIpO1xuXG4gICAgICAgIC8vIFJlYWQgc2VnbWVudCBkYXRhXG4gICAgICAgIGNvbnN0IHNlZ21lbnREYXRhID0gYXdhaXQgZ2V0U2VnbWVudERhdGEoc2VnbWVudFByZXJlbmRlcnMpO1xuXG4gICAgICAgIC8vIEV4dHJhY3QgaGVhZGVycyBmcm9tIHRoZSBIVE1MIG9yIFJTQyBwcmVyZW5kZXJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IGFwcFBhZ2VDYWNoZUhlYWRlcnMoXG4gICAgICAgICAgaHRtbFByZXJlbmRlcj8uZmFsbGJhY2s/LmluaXRpYWxIZWFkZXJzIHx8XG4gICAgICAgICAgICByc2NQcmVyZW5kZXI/LmZhbGxiYWNrPy5pbml0aWFsSGVhZGVycyB8fFxuICAgICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgY2FjaGVFbnRyeSA9IHtcbiAgICAgICAgICBsYXN0TW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIGtpbmQ6IENBQ0hFRF9ST1VURV9LSU5ELkFQUF9QQUdFLFxuICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgIHJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc2VnbWVudERhdGE6IHNlZ21lbnREYXRhLFxuICAgICAgICAgICAgLy8gcG9zdHBvbmVkU3RhdGUgZnJvbSBmYWxsYmFjayBhcHBlYXJzIHRvIGJlIHRoZSBSZWFjdCBwb3N0cG9uZWQgc3RhdGVcbiAgICAgICAgICAgIC8vIHdoaWNoIG1hdGNoZXMgd2hhdCB0aGUgY2FjaGUgZXhwZWN0cyBmb3IgcG9zdHBvbmVkXG4gICAgICAgICAgICBwb3N0cG9uZWQ6IGh0bWxQcmVyZW5kZXI/LmZhbGxiYWNrPy5wb3N0cG9uZWRTdGF0ZSxcbiAgICAgICAgICAgIC8vIGluaXRpYWxTdGF0dXMgZnJvbSBwcmVyZW5kZXIgaXMgdGhlIEhUVFAgc3RhdHVzIG9mIHRoZSBwcmVyZW5kZXJlZCBwYWdlXG4gICAgICAgICAgICBzdGF0dXM6IGh0bWxQcmVyZW5kZXI/LmZhbGxiYWNrPy5pbml0aWFsU3RhdHVzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IENBQ0hFRF9ST1VURV9LSU5ELkFQUF9ST1VURSkge1xuICAgICAgICBjb25zdCBib2R5ID0gYXdhaXQgcmVhZFByZXJlbmRlcihodG1sUHJlcmVuZGVyKTtcblxuICAgICAgICBpZiAoIWJvZHkpIHtcbiAgICAgICAgICBkZWJ1ZyhgU0tJUDogTm8gYm9keSBjb250ZW50IGZvciBBUFBfUk9VVEUgJHtiYXNlUGF0aH1gKTtcbiAgICAgICAgICBjb250aW51ZTsgLy8gU2tpcCBpZiBubyBjb250ZW50XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeHRyYWN0IGhlYWRlcnNcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IGh0bWxQcmVyZW5kZXI/LmZhbGxiYWNrPy5pbml0aWFsSGVhZGVycyB8fCB7fTtcblxuICAgICAgICBjYWNoZUVudHJ5ID0ge1xuICAgICAgICAgIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKSxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAga2luZDogQ0FDSEVEX1JPVVRFX0tJTkQuQVBQX1JPVVRFLFxuICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGh0bWxQcmVyZW5kZXI/LmZhbGxiYWNrPy5pbml0aWFsU3RhdHVzIHx8IDIwMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChraW5kID09PSBDQUNIRURfUk9VVEVfS0lORC5QQUdFUykge1xuICAgICAgICAvLyBBIGJ1aWxkLXRpbWUgYG5vdEZvdW5kOiB0cnVlYC4gTmV4dC5qcyByZXBvcnRzIHRoZSByb3V0ZSBhc1xuICAgICAgICAvLyBwcmVyZW5kZXJlZCBhbmQgaGFuZHMgdXMgYSBwcmVyZW5kZXIgd2hvc2UgYGZpbGVQYXRoYCBpc1xuICAgICAgICAvLyBgcGFnZXMvNDA0Lmh0bWxgIGFuZCB3aG9zZSBgaW5pdGlhbFN0YXR1c2AgaXMgNDA0IC0gYnV0IGl0IHdyaXRlc1xuICAgICAgICAvLyAqbm8qIG91dHB1dCBmb3IgaXQgKG5vIGBmaXJzdC5odG1sYCwgYC5qc29uYCBvciBgLm1ldGFgKSwgYmVjYXVzZSBhXG4gICAgICAgIC8vIFBhZ2VzIFJvdXRlciBgbm90Rm91bmRgIGlzIHJlcHJlc2VudGVkIGluIHRoZSBjYWNoZSBhcyBhbiBlbnRyeVxuICAgICAgICAvLyB3aG9zZSBgdmFsdWVgIGlzIGBudWxsYCAoYHBhZ2VzLWhhbmRsZXIudHNgLCBcImlzTm90Rm91bmQgaW5cbiAgICAgICAgLy8gbWV0YWRhdGFcIiksIGFuZCBgRmlsZVN5c3RlbUNhY2hlLnNldGAga2VlcHMgYSBudWxsIHZhbHVlIGluIGl0cyBMUlVcbiAgICAgICAgLy8gb25seSwgbmV2ZXIgb24gZGlzay4gU28gYG5leHQgc3RhcnRgIG1pc3NlcywgcmUtcnVuc1xuICAgICAgICAvLyBgZ2V0U3RhdGljUHJvcHNgLCBhbmQgYW5zd2VycyA0MDQgZnJvbSBgcmVuZGVyNDA0KClgLlxuICAgICAgICAvL1xuICAgICAgICAvLyBTZWVkaW5nIGl0IGFzIGFuIG9yZGluYXJ5IGBQQUdFU2AgZW50cnkgbWFkZSB0aGF0IGEgMjAwOiB0aGUgZW50cnlcbiAgICAgICAgLy8gaXMgYSBISVQgY2FycnlpbmcgdGhlIDQwNCBwYWdlJ3MgSFRNTCwgYW5kIHRoZSBwYWdlcyBoYW5kbGVyIG5ldmVyXG4gICAgICAgIC8vIHJlYWRzIGB2YWx1ZS5zdGF0dXNgIG9uIHRoZSBISVQgcGF0aCwgc28gdGhlIHN0YXR1cyBzdGF5ZWQgMjAwIHdoaWxlXG4gICAgICAgIC8vIHRoZSBib2R5IHNhaWQgXCI0MDQgcGFnZVwiLiBTa2lwcGluZyBpdCByZXN0b3JlcyB0aGUgbWlzcywgYW5kIHdpdGggaXRcbiAgICAgICAgLy8gYG5leHQgc3RhcnRgJ3Mgc3RhdHVzLiBDb3N0cyBvbmUgcmVuZGVyIHBlciByZXZhbGlkYXRlIHdpbmRvdywgd2hpY2hcbiAgICAgICAgLy8gaXMgd2hhdCBgbmV4dCBzdGFydGAgcGF5cyB0b28uXG4gICAgICAgIGNvbnN0IGluaXRpYWxTdGF0dXMgPSBodG1sUHJlcmVuZGVyPy5mYWxsYmFjaz8uaW5pdGlhbFN0YXR1cztcbiAgICAgICAgaWYgKGluaXRpYWxTdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBpbml0aWFsU3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBTS0lQOiBQQUdFUyAke2Jhc2VQYXRofSBwcmVyZW5kZXJlZCB3aXRoIHN0YXR1cyAke2luaXRpYWxTdGF0dXN9IChidWlsZC10aW1lIG5vdEZvdW5kKWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGh0bWwgPSAoYXdhaXQgcmVhZFByZXJlbmRlcihodG1sUHJlcmVuZGVyKSk/LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgaWYgKCFodG1sKSB7XG4gICAgICAgICAgZGVidWcoYFNLSVA6IE5vIEhUTUwgY29udGVudCBmb3IgUEFHRVMgJHtiYXNlUGF0aH1gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGBnZXRTdGF0aWNQcm9wc2AnIHJlc3VsdCwgd2hpY2ggdGhlIGVudHJ5cG9pbnQgYW5zd2Vyc1xuICAgICAgICAvLyBgL19uZXh0L2RhdGEvPGJ1aWxkSWQ+LzxwYWdlPi5qc29uYCB3aXRoIGFuZCB0aGUgY2xpZW50IHJvdXRlciByZWFkc1xuICAgICAgICAvLyBvbiBhIG5hdmlnYXRpb24uIEEgcm91dGUncyAqZmFsbGJhY2sqIHRlbXBsYXRlIGhhcyBubyBkYXRhIGZpbGUgLVxuICAgICAgICAvLyB0aGVyZSBhcmUgbm8gcGFyYW1zIHRvIHJ1biBgZ2V0U3RhdGljUHJvcHNgIHdpdGggeWV0IC0gYW5kXG4gICAgICAgIC8vIGBGaWxlU3lzdGVtQ2FjaGVgIHNraXBzIHRoZSByZWFkIGZvciBvbmUgdG9vIChgaWYgKCFjdHguaXNGYWxsYmFjaylgKSxcbiAgICAgICAgLy8gbGVhdmluZyBgcGFnZURhdGFgIGFuIGVtcHR5IG9iamVjdC5cbiAgICAgICAgY29uc3QgcGFnZURhdGFKc29uID0gKGF3YWl0IHJlYWRQcmVyZW5kZXIoZGF0YVByZXJlbmRlcikpPy50b1N0cmluZygpO1xuXG4gICAgICAgIGNhY2hlRW50cnkgPSB7XG4gICAgICAgICAgbGFzdE1vZGlmaWVkOiBEYXRlLm5vdygpLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBraW5kOiBDQUNIRURfUk9VVEVfS0lORC5QQUdFUyxcbiAgICAgICAgICAgIGh0bWwsXG4gICAgICAgICAgICBwYWdlRGF0YTogcGFnZURhdGFKc29uID8gSlNPTi5wYXJzZShwYWdlRGF0YUpzb24pIDoge30sXG4gICAgICAgICAgICAvLyBCb3RoIGB1bmRlZmluZWRgLCB3aGljaCBpcyB3aGF0IGBGaWxlU3lzdGVtQ2FjaGVgIGhhbmRzIGJhY2sgZm9yXG4gICAgICAgICAgICAvLyBhIGBQQUdFU2AgZW50cnk6IGl0IHJlYWRzIGEgYC5tZXRhYCBzaWRlY2FyIGZvciB0aGUgQXBwIFJvdXRlclxuICAgICAgICAgICAgLy8ga2luZHMgb25seSwgYW5kIGBzZW5kUmVuZGVyUmVzdWx0YCBzdXBwbGllcyB0aGUgY29udGVudCB0eXBlLlxuICAgICAgICAgICAgLy8gU2VlZGluZyBgZmFsbGJhY2suaW5pdGlhbEhlYWRlcnNgIGluc3RlYWQgd291bGQgcHV0XG4gICAgICAgICAgICAvLyBgY29udGVudC10eXBlOiB0ZXh0L2h0bWxgIG9uIHRoZSBKU09OIGRhdGEgcmVzcG9uc2VzIHNlcnZlZCBmcm9tXG4gICAgICAgICAgICAvLyB0aGlzIHNhbWUgZW50cnkuXG4gICAgICAgICAgICBoZWFkZXJzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzdGF0dXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2tpcCB1bnN1cHBvcnRlZCBraW5kc1xuICAgICAgICBkZWJ1ZyhgU0tJUDogVW5zdXBwb3J0ZWQgcm91dGUga2luZCAke2tpbmR9IGZvciAke2Jhc2VQYXRofWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gV3JpdGUgY2FjaGUgZW50cnkgdG8gZmlsZSwgdW5kZXIgdGhlIGtleSBOZXh0LmpzIHJlYWRzIGl0IGJhY2sgd2l0aDpcbiAgICAgIC8vIGZyb20gbmV4dCAxNi4zLjggdGhlIG9uZSBgbmV4dCBidWlsZGAgZmlsZWQgdGhlIHByZXJlbmRlciB1bmRlciAoc2VlXG4gICAgICAvLyBgcm91dGVDYWNoZUtleUZyb21GaWxlUGF0aGApLCBiZWZvcmUgdGhhdCB0aGUgcm91dGUgcmF0aGVyIHRoYW4gdGhlXG4gICAgICAvLyBVUkwgaXQgaXMgc2VydmVkIGF0IChzZWUgYHByZXJlbmRlclBhdGhUb0NhY2hlS2V5YCkuXG4gICAgICAvLyBFdmVyeSBraW5kIHNlZWRlZCBoZXJlIGhhcyByZWFkIGl0cyBIVE1MIHByZXJlbmRlciwgc28gdGhhdCBpcyB0aGVcbiAgICAgIC8vIGZpbGUgdG8gcmVhZCB0aGUga2V5IG9mZi5cbiAgICAgIGNvbnN0IHJvdXRlQ2FjaGVLZXkgPSByb3V0ZUNhY2hlS2V5RnJvbUZpbGVQYXRoKFxuICAgICAgICBwcmVyZW5kZXJGaWxlUGF0aChodG1sUHJlcmVuZGVyKSxcbiAgICAgICk7XG4gICAgICBpZiAoIXJvdXRlQ2FjaGVLZXkgJiYgc2NvcGVzS2V5c0J5Um91dGUpIHtcbiAgICAgICAgLy8gTmV2ZXIgcmVhZCB1bmRlciBhbnkgb3RoZXIga2V5OyB0aGUgYnVpbGQgZmFpbHMgYmVsb3cuXG4gICAgICAgIHVuc2NvcGVkUm91dGVzLnB1c2goYmFzZVBhdGgpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhY2hlS2V5ID1cbiAgICAgICAgcm91dGVDYWNoZUtleSA/P1xuICAgICAgICBwcmVyZW5kZXJQYXRoVG9DYWNoZUtleShiYXNlUGF0aCwgY3R4LmNvbmZpZy5iYXNlUGF0aCB8fCBcIlwiKTtcbiAgICAgIGNvbnN0IGNhY2hlRmlsZVBhdGggPSBqb2luKGNhY2hlRGlyLCBjYWNoZU9iamVjdE5hbWUoY2FjaGVLZXkpKTtcblxuICAgICAgLy8gRW5zdXJlIHBhcmVudCBkaXJlY3RvcnkgZXhpc3RzXG4gICAgICBhd2FpdCBta2RpcihkaXJuYW1lKGNhY2hlRmlsZVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgICAgYXdhaXQgd3JpdGVGaWxlKGNhY2hlRmlsZVBhdGgsIHNlcmlhbGl6ZUNhY2hlVmFsdWUoY2FjaGVFbnRyeSkpO1xuXG4gICAgICBmb3IgKGNvbnN0IHRhZyBvZiBoZWFkZXJUYWdzKGNhY2hlRW50cnkudmFsdWUpKSB7XG4gICAgICAgICh0YWdNYW5pZmVzdFt0YWddID8/PSBbXSkucHVzaChjYWNoZUtleSk7XG4gICAgICB9XG5cbiAgICAgIGRlYnVnKGBDcmVhdGVkIGNhY2hlIGVudHJ5OiAke2NhY2hlRmlsZVBhdGh9YCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHByb2Nlc3NpbmcgcHJlcmVuZGVyIGdyb3VwICR7YmFzZVBhdGh9OmAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBBIHBhdGhuYW1lIGtleSBpcyBvbmUgMTYuMy44KyBuZXZlciByZWFkcywgc28gZWFjaCBvZiB0aGVzZSB3b3VsZCBiZSBhXG4gIC8vIE1JU1MgdW50aWwgaXQgaXMgZmlyc3QgcmVuZGVyZWQgLSB0aGUgcmVncmVzc2lvbiB0aGUgcm91dGUtY2FjaGUga2V5IGZpeGVkXG4gIC8vIC0gd2l0aCBhIGRlcGxveSB0aGF0IG90aGVyd2lzZSBzdWNjZWVkcy4gRmFpbCB0aGUgYnVpbGQgaW5zdGVhZC5cbiAgaWYgKHVuc2NvcGVkUm91dGVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHtMT0dfUFJFRklYfSBOZXh0LmpzICR7Y3R4Lm5leHRWZXJzaW9ufSB3cm90ZSAke3Vuc2NvcGVkUm91dGVzLmxlbmd0aH0gYCArXG4gICAgICAgIGBwcmVyZW5kZXIocykgb3V0c2lkZSA8ZGlzdERpcj4vc2VydmVyL3JvdXRlLWNhY2hlLywgc28gY2RrLW5leHRqcyBgICtcbiAgICAgICAgYGNhbm5vdCB0ZWxsIHRoZSBjYWNoZSBrZXkgaXQgcmVhZHMgdGhlbSBiYWNrIHdpdGg6IGAgK1xuICAgICAgICBgJHt1bnNjb3BlZFJvdXRlcy5zbGljZSgwLCA1KS5qb2luKFwiLCBcIil9YCArXG4gICAgICAgIGAke3Vuc2NvcGVkUm91dGVzLmxlbmd0aCA+IDUgPyBcIiwgLi4uXCIgOiBcIlwifWAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHRhZ2dlZEtleXMgPSBPYmplY3Qua2V5cyh0YWdNYW5pZmVzdCkubGVuZ3RoO1xuICBpZiAodGFnZ2VkS2V5cyA+IDApIHtcbiAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICBqb2luKGNhY2hlRGlyLCBJTklUX0NBQ0hFX1RBR19NQU5JRkVTVCksXG4gICAgICBKU09OLnN0cmluZ2lmeSh0YWdNYW5pZmVzdCksXG4gICAgKTtcbiAgICBkZWJ1ZyhgV3JvdGUgJHtJTklUX0NBQ0hFX1RBR19NQU5JRkVTVH0gd2l0aCAke3RhZ2dlZEtleXN9IHRhZ3NgKTtcbiAgfVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGFwcCdzIGBuZXh0YCBzY29wZXMgcmVzcG9uc2UtY2FjaGUga2V5cyBieSBzb3VyY2Ugcm91dGUgKDE2LjMuOFxuICogb24pLCBmb3VuZCBieSB3aGV0aGVyIGl0IGhhcyB0aGUgbW9kdWxlIHRoYXQgZGVyaXZlcyB0aGVtLCBzaW5jZSBhIGNhbmFyeSdzXG4gKiB2ZXJzaW9uIHNheXMgbm90aGluZyBvZiB3aGF0IGl0IGNvbnRhaW5zLlxuICovXG5mdW5jdGlvbiBuZXh0U2NvcGVzS2V5c0J5Um91dGUocHJvamVjdERpcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY3JlYXRlUmVxdWlyZShqb2luKHByb2plY3REaXIsIFwicGFja2FnZS5qc29uXCIpKS5yZXNvbHZlKFxuICAgICAgXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9yb3V0ZS1jYWNoZS1rZXkuanNcIixcbiAgICApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqIEEgcHJlcmVuZGVyIG91dHB1dCwgb2Ygd2hpY2ggb25seSB0aGUgZmlsZSBpdCB3YXMgd3JpdHRlbiB0byBpcyByZWFkLiAqL1xudHlwZSBQcmVyZW5kZXJPdXRwdXQgPVxuICB7IGZhbGxiYWNrPzogeyBmaWxlUGF0aD86IHN0cmluZyB9IHwgeyBwb3N0cG9uZWRTdGF0ZTogc3RyaW5nIH0gfSB8IHVuZGVmaW5lZDtcblxuLyoqIFRoZSBmaWxlIGBuZXh0IGJ1aWxkYCB3cm90ZSBhIHByZXJlbmRlciB0bywgaWYgaXQgd3JvdGUgb25lLiAqL1xuZnVuY3Rpb24gcHJlcmVuZGVyRmlsZVBhdGgocHJlcmVuZGVyOiBQcmVyZW5kZXJPdXRwdXQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gcHJlcmVuZGVyPy5mYWxsYmFjayAmJiBcImZpbGVQYXRoXCIgaW4gcHJlcmVuZGVyLmZhbGxiYWNrXG4gICAgPyBwcmVyZW5kZXIuZmFsbGJhY2suZmlsZVBhdGhcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBjb250ZW50IG9mIHRoZSBmaWxlIGBuZXh0IGJ1aWxkYCB3cm90ZSBhIHByZXJlbmRlciB0bywgaWYgaXQgZXhpc3RzLiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVhZFByZXJlbmRlcihcbiAgcHJlcmVuZGVyOiBQcmVyZW5kZXJPdXRwdXQsXG4pOiBQcm9taXNlPEJ1ZmZlciB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBmaWxlUGF0aCA9IHByZXJlbmRlckZpbGVQYXRoKHByZXJlbmRlcik7XG4gIHJldHVybiBmaWxlUGF0aCAmJiBleGlzdHNTeW5jKGZpbGVQYXRoKSA/IHJlYWRGaWxlKGZpbGVQYXRoKSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZWFkIHNlZ21lbnQgZGF0YSBmcm9tIHNlZ21lbnQgcHJlcmVuZGVyc1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRTZWdtZW50RGF0YTxcbiAgVCBleHRlbmRzIHsgcGF0aG5hbWU6IHN0cmluZyB9ICYgTm9uTnVsbGFibGU8UHJlcmVuZGVyT3V0cHV0Pixcbj4oc2VnbWVudFByZXJlbmRlcnM6IFRbXSk6IFByb21pc2U8TWFwPHN0cmluZywgQnVmZmVyPj4ge1xuICBjb25zdCBzZWdtZW50RGF0YSA9IG5ldyBNYXA8c3RyaW5nLCBCdWZmZXI+KCk7XG5cbiAgZm9yIChjb25zdCBzZWdtZW50UHJlcmVuZGVyIG9mIHNlZ21lbnRQcmVyZW5kZXJzKSB7XG4gICAgY29uc3Qgc2VnbWVudENvbnRlbnQgPSBhd2FpdCByZWFkUHJlcmVuZGVyKHNlZ21lbnRQcmVyZW5kZXIpO1xuICAgIGlmIChzZWdtZW50Q29udGVudCkge1xuICAgICAgLy8gRXh0cmFjdCBzZWdtZW50IG5hbWUgZnJvbSBwYXRobmFtZVxuICAgICAgY29uc3Qgc2VnbWVudE5hbWUgPVxuICAgICAgICBcIi9cIiArXG4gICAgICAgIHNlZ21lbnRQcmVyZW5kZXIucGF0aG5hbWVcbiAgICAgICAgICAuc3BsaXQoXCIuc2VnbWVudHMvXCIpWzFdXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLnNlZ21lbnRcXC5yc2MkLywgXCJcIik7XG4gICAgICBzZWdtZW50RGF0YS5zZXQoc2VnbWVudE5hbWUsIHNlZ21lbnRDb250ZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2VnbWVudERhdGE7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { CacheHandlerValue } from "next/dist/server/lib/incremental-cache";
1
+ import type { CacheHandlerValue } from "next/dist/server/lib/incremental-cache";
2
2
  import type { IncrementalCacheValue } from "next/dist/server/response-cache";
3
3
  /**
4
4
  * Local file cache handler that writes cache entries during Next.js build
@@ -134,4 +134,4 @@ class LocalFileCacheHandler {
134
134
  }
135
135
  }
136
136
  exports.LocalFileCacheHandler = LocalFileCacheHandler;
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZmlsZS1jYWNoZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYXB0ZXIvbG9jYWwtZmlsZS1jYWNoZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7RUFNRTtBQUNGLHNEQUFzRDtBQUN0RCwyQkFBd0U7QUFDeEUsK0JBQXFDO0FBQ3JDLGtEQUE2QjtBQUc3QiwrQ0FJdUI7QUFFdkIsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFRLEVBQUMscUNBQXFDLENBQUMsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFhLHFCQUFxQjtJQUN4QixRQUFRLENBQVM7SUFDekIsbUVBQW1FO0lBQzNELE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztJQUV2RDtRQUNFLG9FQUFvRTtRQUNwRSw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QjtZQUNuRCxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUI7WUFDdkMsQ0FBQyxDQUFDLElBQUEsV0FBSSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUUxRCw0RkFBNEY7UUFDNUYsSUFBQSxjQUFTLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWEsQ0FBQyxRQUFnQjtRQUNwQyxPQUFPLElBQUEsV0FBSSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBQSw2QkFBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7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QUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQTlIRCxzREE4SEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICBMb2NhbCBGaWxlIENhY2hlIEhhbmRsZXIgZm9yIE5leHQuanMgYnVpbGQtdGltZSBwcmUtY2FjaGluZ1xuICBcbiAgV3JpdGVzIGNhY2hlIGVudHJpZXMgdG8gLm5leHQvY2RrLW5leHRqcy1jYWNoZS1oYW5kbGVyL3tjYWNoZUtleX0uanNvblxuICBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3Mgc28gdGhleSBjYW4gYmUgZGVwbG95ZWQgdG8gUzMgdmlhIEJ1Y2tldERlcGxveW1lbnQuXG4gIEJ1Y2tldERlcGxveW1lbnQgd2lsbCBhZGQgdGhlIGJ1aWxkSWQgcHJlZml4IHdoZW4gdXBsb2FkaW5nIHRvIFMzLlxuKi9cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jLCByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHsgQ2FjaGVIYW5kbGVyVmFsdWUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmltcG9ydCB0eXBlIHsgSW5jcmVtZW50YWxDYWNoZVZhbHVlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGVcIjtcbmltcG9ydCB7XG4gIGNhY2hlT2JqZWN0TmFtZSxcbiAgcGFyc2VDYWNoZVZhbHVlLFxuICBzZXJpYWxpemVDYWNoZVZhbHVlLFxufSBmcm9tIFwiLi9jYWNoZS11dGlsc1wiO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKFwiY2RrLW5leHRqczpjYWNoZS1oYW5kbGVyOmxvY2FsLWZpbGVcIik7XG5cbi8qKlxuICogTG9jYWwgZmlsZSBjYWNoZSBoYW5kbGVyIHRoYXQgd3JpdGVzIGNhY2hlIGVudHJpZXMgZHVyaW5nIE5leHQuanMgYnVpbGRcbiAqIHRvIGJlIGRlcGxveWVkIHRvIFMzIGxhdGVyIHZpYSBCdWNrZXREZXBsb3ltZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NhbEZpbGVDYWNoZUhhbmRsZXIge1xuICBwcml2YXRlIGNhY2hlRGlyOiBzdHJpbmc7XG4gIC8qKiBXaGF0IHRoaXMgcHJvY2VzcyBoYXMgd3JpdHRlbiBvciByZWFkIGJhY2s7IHNlZSB7QGxpbmsgZ2V0fS4gKi9cbiAgcHJpdmF0ZSBlbnRyaWVzID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlSGFuZGxlclZhbHVlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFJlYWQgY2FjaGUgZGlyZWN0b3J5IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGUgc2V0IGJ5IE5leHRqc0J1aWxkXG4gICAgLy8gRmFsbHMgYmFjayB0byBkZWZhdWx0IGxvY2F0aW9uIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgdGhpcy5jYWNoZURpciA9IHByb2Nlc3MuZW52LkNES19ORVhUSlNfSU5JVF9DQUNIRV9ESVJcbiAgICAgID8gcHJvY2Vzcy5lbnYuQ0RLX05FWFRKU19JTklUX0NBQ0hFX0RJUlxuICAgICAgOiBqb2luKHByb2Nlc3MuY3dkKCksIFwiLm5leHRcIiwgXCJjZGstbmV4dGpzLWluaXQtY2FjaGVcIik7XG5cbiAgICAvLyBDcmVhdGUgZnJlc2ggY2FjaGUgZGlyZWN0b3J5OyBjYWNoZSBkaXJlY3RvcnkgaXMgY2xlYW5lZCBiZWZvcmUgZWFjaCBidWlsZCBpbiBOZXh0anNCdWlsZFxuICAgIG1rZGlyU3luYyh0aGlzLmNhY2hlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBkZWJ1ZyhgQ3JlYXRlZCBsb2NhbCBjYWNoZSBkaXJlY3Rvcnk6ICR7dGhpcy5jYWNoZURpcn1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBmaWxlIHBhdGggZm9yIGNhY2hlIGVudHJ5OiB7QGxpbmsgY2FjaGVPYmplY3ROYW1lfSwgdGhlIG5hbWUgdGhlXG4gICAqIHJ1bnRpbWUgcmVhZHMgaXQgYmFjayB1bmRlciAoQnVja2V0RGVwbG95bWVudCB3aWxsIGFkZCBidWlsZElkIHByZWZpeClcbiAgICovXG4gIHByaXZhdGUgYnVpbGRGaWxlUGF0aChjYWNoZUtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gam9pbih0aGlzLmNhY2hlRGlyLCBjYWNoZU9iamVjdE5hbWUoY2FjaGVLZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIGJhY2sgYW4gZW50cnkgdGhpcyBidWlsZCBhbHJlYWR5IHdyb3RlLlxuICAgKlxuICAgKiBSZXF1aXJlZCwgbm90IGFuIG9wdGltaXphdGlvbi4gVW5kZXIgYGNhY2hlQ29tcG9uZW50c2AgYSBwcmVyZW5kZXIgcnVuc1xuICAgKiB0d2ljZTogYSBmaXJzdCBwYXNzIHRoYXQgZmlsbHMgY2FjaGVzIChldmVyeSBgZmV0Y2hgIG1pc3NlcywgcnVucyBmb3IgcmVhbCxcbiAgICogYW5kIGlzIGBzZXRgKSwgdGhlbiBhIGZpbmFsIHBhc3MgaW4gd2hpY2ggZXZlcnkgYXdhaXQgbXVzdCBzZXR0bGUgaW4gYVxuICAgKiBtaWNyb3Rhc2sg4oCUIGFueXRoaW5nIHN0aWxsIHBlbmRpbmcgaXMgYnkgZGVmaW5pdGlvbiBcInJ1bnRpbWUgZGF0YVwiLCBhbmRcbiAgICogTmV4dC5qcyBhYm9ydHMgdGhlIHBhZ2Ugd2l0aCBgUm91dGUgXCIvXCI6IE5leHQuanMgZW5jb3VudGVyZWQgdW5jYWNoZWQgb3JcbiAgICogcnVudGltZSBkYXRhIGR1cmluZyBwcmVyZW5kZXJpbmdgLiBUaGUgZmluYWwgcGFzcyBvbmx5IHNldHRsZXMgaW1tZWRpYXRlbHlcbiAgICogaWYgYGdldGAgcmV0dXJucyB3aGF0IHRoZSBmaXJzdCBwYXNzIGBzZXRgLCBzbyBhIHdyaXRlLW9ubHkgYnVpbGQtdGltZVxuICAgKiBoYW5kbGVyIG1ha2VzIGBmZXRjaCh1cmwsIHsgY2FjaGU6ICdmb3JjZS1jYWNoZScgfSlgIHVucHJlcmVuZGVyYWJsZSBhbmRcbiAgICogZmFpbHMgdGhlIGJ1aWxkLiBOZXh0LmpzJ3Mgb3duIGBGaWxlU3lzdGVtQ2FjaGVgIHJlYWRzIGJhY2sgZm9yIGV4YWN0bHlcbiAgICogdGhpcyByZWFzb24uIE1lYXN1cmVkIGFnYWluc3QgbmV4dC5qcydzXG4gICAqIGB0ZXN0L2UyZS9hcHAtZGlyL3Jlc3VtZS1kYXRhLWNhY2hlYCwgd2hpY2ggaXMgdW5idWlsZGFibGUgd2l0aG91dCBpdC5cbiAgICpcbiAgICogRW50cmllcyBhcmUgcmVhZCB0aHJvdWdoIGEgcHJvY2Vzcy1sb2NhbCBtYXAgYmVjYXVzZSB0aGUgdHdvIHBhc3NlcyBhcmUgdGhlXG4gICAqIHNhbWUgcHJvY2VzcywgYW5kIGJlY2F1c2UgdGhlIGRlc2VyaWFsaXplZCB2YWx1ZSBpcyB3aGF0IE5leHQuanMgY29tcGFyZXNcbiAgICogYnkgcmVmZXJlbmNlIHdoZW4gZGVkdXBpbmcgd2l0aGluIGEgcmVuZGVyLlxuICAgKi9cbiAgYXN5bmMgZ2V0KGNhY2hlS2V5OiBzdHJpbmcpOiBQcm9taXNlPENhY2hlSGFuZGxlclZhbHVlIHwgbnVsbD4ge1xuICAgIGNvbnN0IG1lbW9pemVkID0gdGhpcy5lbnRyaWVzLmdldChjYWNoZUtleSk7XG4gICAgaWYgKG1lbW9pemVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBtZW1vaXplZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5idWlsZEZpbGVQYXRoKGNhY2hlS2V5KTtcbiAgICAgIGlmICghZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICAvLyBgdGFnc2AgaXMgc3RvcmVkIGFsb25nc2lkZSwgbm90IGluc2lkZSwgdGhlIGBDYWNoZUhhbmRsZXJWYWx1ZWA7IGl0IGlzXG4gICAgICAvLyBvbmx5IGNvbnN1bHRlZCBmb3IgdGFnIHJldmFsaWRhdGlvbiwgd2hpY2ggY2Fubm90IGhhcHBlbiBtaWQtYnVpbGQuXG4gICAgICBjb25zdCBzdG9yZWQgPSBwYXJzZUNhY2hlVmFsdWUocmVhZEZpbGVTeW5jKGZpbGVQYXRoLCBcInV0Zi04XCIpKTtcbiAgICAgIGNvbnN0IGVudHJ5OiBDYWNoZUhhbmRsZXJWYWx1ZSA9IHtcbiAgICAgICAgbGFzdE1vZGlmaWVkOiBzdG9yZWQubGFzdE1vZGlmaWVkLFxuICAgICAgICB2YWx1ZTogc3RvcmVkLnZhbHVlLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZW50cmllcy5zZXQoY2FjaGVLZXksIGVudHJ5KTtcbiAgICAgIGRlYnVnKGBMT0NBTCBGSUxFIENBQ0hFIEhJVDogJHtjYWNoZUtleX1gKTtcbiAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgcmVhZGluZyBsb2NhbCBjYWNoZSBmaWxlIGZvciAke2NhY2hlS2V5fTpgLCBlcnJvcik7XG4gICAgICAvLyBEb24ndCB0aHJvdyAtIGEgbWlzcyBvbmx5IGNvc3RzIHRoZSBidWlsZCBhIHJlLWZldGNoLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlIGNhY2hlIGVudHJ5IHRvIGxvY2FsIGZpbGVcbiAgICovXG4gIGFzeW5jIHNldChcbiAgICBjYWNoZUtleTogc3RyaW5nLFxuICAgIGRhdGE6IEluY3JlbWVudGFsQ2FjaGVWYWx1ZSB8IG51bGwsXG4gICAgdGFncz86IHN0cmluZ1tdLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmJ1aWxkRmlsZVBhdGgoY2FjaGVLZXkpO1xuXG4gICAgICAvLyBDcmVhdGUgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgIGNvbnN0IGRpciA9IGRpcm5hbWUoZmlsZVBhdGgpO1xuICAgICAgaWYgKCFleGlzdHNTeW5jKGRpcikpIHtcbiAgICAgICAgbWtkaXJTeW5jKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIENyZWF0ZSBDYWNoZUhhbmRsZXJWYWx1ZSBzdHJ1Y3R1cmUgd2l0aCB0YWdzXG4gICAgICBjb25zdCBjYWNoZUhhbmRsZXJWYWx1ZTogQ2FjaGVIYW5kbGVyVmFsdWUgPSB7XG4gICAgICAgIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKSxcbiAgICAgICAgdmFsdWU6IGRhdGEsXG4gICAgICB9O1xuXG4gICAgICAvLyBTdG9yZSB3aXRoIHRhZ3MgZm9yIHJldmFsaWRhdGlvbiBjaGVja2luZ1xuICAgICAgY29uc3Qgc3RvcmFnZVZhbHVlID0ge1xuICAgICAgICAuLi5jYWNoZUhhbmRsZXJWYWx1ZSxcbiAgICAgICAgdGFnczogdGFncyB8fCBbXSxcbiAgICAgIH07XG5cbiAgICAgIC8vIFNlcmlhbGl6ZSB0byBKU09OIHdpdGggc3BlY2lhbCBoYW5kbGluZyBmb3IgTWFwIGFuZCBCdWZmZXJcbiAgICAgIGNvbnN0IGpzb25TdHJpbmcgPSBzZXJpYWxpemVDYWNoZVZhbHVlKHN0b3JhZ2VWYWx1ZSk7XG5cbiAgICAgIC8vIFdyaXRlIHRvIGZpbGVcbiAgICAgIHdyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGpzb25TdHJpbmcsIFwidXRmLThcIik7XG4gICAgICAvLyBTZXJ2ZSB0aGUgcmVzdCBvZiB0aGlzIGJ1aWxkIGZyb20gbWVtb3J5IHJhdGhlciB0aGFuIHJlLXJlYWRpbmc7IHNlZVxuICAgICAgLy8ge0BsaW5rIGdldH0uXG4gICAgICB0aGlzLmVudHJpZXMuc2V0KGNhY2hlS2V5LCBjYWNoZUhhbmRsZXJWYWx1ZSk7XG5cbiAgICAgIGRlYnVnKGBMT0NBTCBGSUxFIENBQ0hFIFdSSVRFOiAke2NhY2hlS2V5fSAtPiAke2ZpbGVQYXRofWApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciB3cml0aW5nIGxvY2FsIGNhY2hlIGZpbGUgZm9yICR7Y2FjaGVLZXl9OmAsIGVycm9yKTtcbiAgICAgIC8vIERvbid0IHRocm93IC0gYnVpbGQgc2hvdWxkIGNvbnRpbnVlIGV2ZW4gaWYgY2FjaGluZyBmYWlsc1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2FjaGUgZGlyZWN0b3J5IHBhdGhcbiAgICovXG4gIGdldENhY2hlRGlyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVEaXI7XG4gIH1cbn1cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZmlsZS1jYWNoZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYXB0ZXIvbG9jYWwtZmlsZS1jYWNoZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7RUFNRTtBQUNGLHNEQUFzRDtBQUN0RCwyQkFBd0U7QUFDeEUsK0JBQXFDO0FBQ3JDLGtEQUE2QjtBQUc3QiwrQ0FJdUI7QUFFdkIsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFRLEVBQUMscUNBQXFDLENBQUMsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFhLHFCQUFxQjtJQUN4QixRQUFRLENBQVM7SUFDekIsbUVBQW1FO0lBQzNELE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztJQUV2RDtRQUNFLG9FQUFvRTtRQUNwRSw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QjtZQUNuRCxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUI7WUFDdkMsQ0FBQyxDQUFDLElBQUEsV0FBSSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUUxRCw0RkFBNEY7UUFDNUYsSUFBQSxjQUFTLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWEsQ0FBQyxRQUFnQjtRQUNwQyxPQUFPLElBQUEsV0FBSSxFQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBQSw2QkFBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7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QUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQTlIRCxzREE4SEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICBMb2NhbCBGaWxlIENhY2hlIEhhbmRsZXIgZm9yIE5leHQuanMgYnVpbGQtdGltZSBwcmUtY2FjaGluZ1xuICBcbiAgV3JpdGVzIGNhY2hlIGVudHJpZXMgdG8gLm5leHQvY2RrLW5leHRqcy1jYWNoZS1oYW5kbGVyL3tjYWNoZUtleX0uanNvblxuICBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3Mgc28gdGhleSBjYW4gYmUgZGVwbG95ZWQgdG8gUzMgdmlhIEJ1Y2tldERlcGxveW1lbnQuXG4gIEJ1Y2tldERlcGxveW1lbnQgd2lsbCBhZGQgdGhlIGJ1aWxkSWQgcHJlZml4IHdoZW4gdXBsb2FkaW5nIHRvIFMzLlxuKi9cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJTeW5jLCByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IGdldERlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZUhhbmRsZXJWYWx1ZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9pbmNyZW1lbnRhbC1jYWNoZVwiO1xuaW1wb3J0IHR5cGUgeyBJbmNyZW1lbnRhbENhY2hlVmFsdWUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZVwiO1xuaW1wb3J0IHtcbiAgY2FjaGVPYmplY3ROYW1lLFxuICBwYXJzZUNhY2hlVmFsdWUsXG4gIHNlcmlhbGl6ZUNhY2hlVmFsdWUsXG59IGZyb20gXCIuL2NhY2hlLXV0aWxzXCI7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOmNhY2hlLWhhbmRsZXI6bG9jYWwtZmlsZVwiKTtcblxuLyoqXG4gKiBMb2NhbCBmaWxlIGNhY2hlIGhhbmRsZXIgdGhhdCB3cml0ZXMgY2FjaGUgZW50cmllcyBkdXJpbmcgTmV4dC5qcyBidWlsZFxuICogdG8gYmUgZGVwbG95ZWQgdG8gUzMgbGF0ZXIgdmlhIEJ1Y2tldERlcGxveW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIExvY2FsRmlsZUNhY2hlSGFuZGxlciB7XG4gIHByaXZhdGUgY2FjaGVEaXI6IHN0cmluZztcbiAgLyoqIFdoYXQgdGhpcyBwcm9jZXNzIGhhcyB3cml0dGVuIG9yIHJlYWQgYmFjazsgc2VlIHtAbGluayBnZXR9LiAqL1xuICBwcml2YXRlIGVudHJpZXMgPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVIYW5kbGVyVmFsdWU+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVhZCBjYWNoZSBkaXJlY3RvcnkgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZSBzZXQgYnkgTmV4dGpzQnVpbGRcbiAgICAvLyBGYWxscyBiYWNrIHRvIGRlZmF1bHQgbG9jYXRpb24gZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICB0aGlzLmNhY2hlRGlyID0gcHJvY2Vzcy5lbnYuQ0RLX05FWFRKU19JTklUX0NBQ0hFX0RJUlxuICAgICAgPyBwcm9jZXNzLmVudi5DREtfTkVYVEpTX0lOSVRfQ0FDSEVfRElSXG4gICAgICA6IGpvaW4ocHJvY2Vzcy5jd2QoKSwgXCIubmV4dFwiLCBcImNkay1uZXh0anMtaW5pdC1jYWNoZVwiKTtcblxuICAgIC8vIENyZWF0ZSBmcmVzaCBjYWNoZSBkaXJlY3Rvcnk7IGNhY2hlIGRpcmVjdG9yeSBpcyBjbGVhbmVkIGJlZm9yZSBlYWNoIGJ1aWxkIGluIE5leHRqc0J1aWxkXG4gICAgbWtkaXJTeW5jKHRoaXMuY2FjaGVEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGRlYnVnKGBDcmVhdGVkIGxvY2FsIGNhY2hlIGRpcmVjdG9yeTogJHt0aGlzLmNhY2hlRGlyfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGZpbGUgcGF0aCBmb3IgY2FjaGUgZW50cnk6IHtAbGluayBjYWNoZU9iamVjdE5hbWV9LCB0aGUgbmFtZSB0aGVcbiAgICogcnVudGltZSByZWFkcyBpdCBiYWNrIHVuZGVyIChCdWNrZXREZXBsb3ltZW50IHdpbGwgYWRkIGJ1aWxkSWQgcHJlZml4KVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEZpbGVQYXRoKGNhY2hlS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBqb2luKHRoaXMuY2FjaGVEaXIsIGNhY2hlT2JqZWN0TmFtZShjYWNoZUtleSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgYmFjayBhbiBlbnRyeSB0aGlzIGJ1aWxkIGFscmVhZHkgd3JvdGUuXG4gICAqXG4gICAqIFJlcXVpcmVkLCBub3QgYW4gb3B0aW1pemF0aW9uLiBVbmRlciBgY2FjaGVDb21wb25lbnRzYCBhIHByZXJlbmRlciBydW5zXG4gICAqIHR3aWNlOiBhIGZpcnN0IHBhc3MgdGhhdCBmaWxscyBjYWNoZXMgKGV2ZXJ5IGBmZXRjaGAgbWlzc2VzLCBydW5zIGZvciByZWFsLFxuICAgKiBhbmQgaXMgYHNldGApLCB0aGVuIGEgZmluYWwgcGFzcyBpbiB3aGljaCBldmVyeSBhd2FpdCBtdXN0IHNldHRsZSBpbiBhXG4gICAqIG1pY3JvdGFzayDigJQgYW55dGhpbmcgc3RpbGwgcGVuZGluZyBpcyBieSBkZWZpbml0aW9uIFwicnVudGltZSBkYXRhXCIsIGFuZFxuICAgKiBOZXh0LmpzIGFib3J0cyB0aGUgcGFnZSB3aXRoIGBSb3V0ZSBcIi9cIjogTmV4dC5qcyBlbmNvdW50ZXJlZCB1bmNhY2hlZCBvclxuICAgKiBydW50aW1lIGRhdGEgZHVyaW5nIHByZXJlbmRlcmluZ2AuIFRoZSBmaW5hbCBwYXNzIG9ubHkgc2V0dGxlcyBpbW1lZGlhdGVseVxuICAgKiBpZiBgZ2V0YCByZXR1cm5zIHdoYXQgdGhlIGZpcnN0IHBhc3MgYHNldGAsIHNvIGEgd3JpdGUtb25seSBidWlsZC10aW1lXG4gICAqIGhhbmRsZXIgbWFrZXMgYGZldGNoKHVybCwgeyBjYWNoZTogJ2ZvcmNlLWNhY2hlJyB9KWAgdW5wcmVyZW5kZXJhYmxlIGFuZFxuICAgKiBmYWlscyB0aGUgYnVpbGQuIE5leHQuanMncyBvd24gYEZpbGVTeXN0ZW1DYWNoZWAgcmVhZHMgYmFjayBmb3IgZXhhY3RseVxuICAgKiB0aGlzIHJlYXNvbi4gTWVhc3VyZWQgYWdhaW5zdCBuZXh0LmpzJ3NcbiAgICogYHRlc3QvZTJlL2FwcC1kaXIvcmVzdW1lLWRhdGEtY2FjaGVgLCB3aGljaCBpcyB1bmJ1aWxkYWJsZSB3aXRob3V0IGl0LlxuICAgKlxuICAgKiBFbnRyaWVzIGFyZSByZWFkIHRocm91Z2ggYSBwcm9jZXNzLWxvY2FsIG1hcCBiZWNhdXNlIHRoZSB0d28gcGFzc2VzIGFyZSB0aGVcbiAgICogc2FtZSBwcm9jZXNzLCBhbmQgYmVjYXVzZSB0aGUgZGVzZXJpYWxpemVkIHZhbHVlIGlzIHdoYXQgTmV4dC5qcyBjb21wYXJlc1xuICAgKiBieSByZWZlcmVuY2Ugd2hlbiBkZWR1cGluZyB3aXRoaW4gYSByZW5kZXIuXG4gICAqL1xuICBhc3luYyBnZXQoY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVIYW5kbGVyVmFsdWUgfCBudWxsPiB7XG4gICAgY29uc3QgbWVtb2l6ZWQgPSB0aGlzLmVudHJpZXMuZ2V0KGNhY2hlS2V5KTtcbiAgICBpZiAobWVtb2l6ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1lbW9pemVkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmJ1aWxkRmlsZVBhdGgoY2FjaGVLZXkpO1xuICAgICAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIGB0YWdzYCBpcyBzdG9yZWQgYWxvbmdzaWRlLCBub3QgaW5zaWRlLCB0aGUgYENhY2hlSGFuZGxlclZhbHVlYDsgaXQgaXNcbiAgICAgIC8vIG9ubHkgY29uc3VsdGVkIGZvciB0YWcgcmV2YWxpZGF0aW9uLCB3aGljaCBjYW5ub3QgaGFwcGVuIG1pZC1idWlsZC5cbiAgICAgIGNvbnN0IHN0b3JlZCA9IHBhcnNlQ2FjaGVWYWx1ZShyZWFkRmlsZVN5bmMoZmlsZVBhdGgsIFwidXRmLThcIikpO1xuICAgICAgY29uc3QgZW50cnk6IENhY2hlSGFuZGxlclZhbHVlID0ge1xuICAgICAgICBsYXN0TW9kaWZpZWQ6IHN0b3JlZC5sYXN0TW9kaWZpZWQsXG4gICAgICAgIHZhbHVlOiBzdG9yZWQudmFsdWUsXG4gICAgICB9O1xuICAgICAgdGhpcy5lbnRyaWVzLnNldChjYWNoZUtleSwgZW50cnkpO1xuICAgICAgZGVidWcoYExPQ0FMIEZJTEUgQ0FDSEUgSElUOiAke2NhY2hlS2V5fWApO1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciByZWFkaW5nIGxvY2FsIGNhY2hlIGZpbGUgZm9yICR7Y2FjaGVLZXl9OmAsIGVycm9yKTtcbiAgICAgIC8vIERvbid0IHRocm93IC0gYSBtaXNzIG9ubHkgY29zdHMgdGhlIGJ1aWxkIGEgcmUtZmV0Y2guXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGUgY2FjaGUgZW50cnkgdG8gbG9jYWwgZmlsZVxuICAgKi9cbiAgYXN5bmMgc2V0KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgZGF0YTogSW5jcmVtZW50YWxDYWNoZVZhbHVlIHwgbnVsbCxcbiAgICB0YWdzPzogc3RyaW5nW10sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuYnVpbGRGaWxlUGF0aChjYWNoZUtleSk7XG5cbiAgICAgIC8vIENyZWF0ZSBkaXJlY3RvcnkgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAgY29uc3QgZGlyID0gZGlybmFtZShmaWxlUGF0aCk7XG4gICAgICBpZiAoIWV4aXN0c1N5bmMoZGlyKSkge1xuICAgICAgICBta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gQ3JlYXRlIENhY2hlSGFuZGxlclZhbHVlIHN0cnVjdHVyZSB3aXRoIHRhZ3NcbiAgICAgIGNvbnN0IGNhY2hlSGFuZGxlclZhbHVlOiBDYWNoZUhhbmRsZXJWYWx1ZSA9IHtcbiAgICAgICAgbGFzdE1vZGlmaWVkOiBEYXRlLm5vdygpLFxuICAgICAgICB2YWx1ZTogZGF0YSxcbiAgICAgIH07XG5cbiAgICAgIC8vIFN0b3JlIHdpdGggdGFncyBmb3IgcmV2YWxpZGF0aW9uIGNoZWNraW5nXG4gICAgICBjb25zdCBzdG9yYWdlVmFsdWUgPSB7XG4gICAgICAgIC4uLmNhY2hlSGFuZGxlclZhbHVlLFxuICAgICAgICB0YWdzOiB0YWdzIHx8IFtdLFxuICAgICAgfTtcblxuICAgICAgLy8gU2VyaWFsaXplIHRvIEpTT04gd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBNYXAgYW5kIEJ1ZmZlclxuICAgICAgY29uc3QganNvblN0cmluZyA9IHNlcmlhbGl6ZUNhY2hlVmFsdWUoc3RvcmFnZVZhbHVlKTtcblxuICAgICAgLy8gV3JpdGUgdG8gZmlsZVxuICAgICAgd3JpdGVGaWxlU3luYyhmaWxlUGF0aCwganNvblN0cmluZywgXCJ1dGYtOFwiKTtcbiAgICAgIC8vIFNlcnZlIHRoZSByZXN0IG9mIHRoaXMgYnVpbGQgZnJvbSBtZW1vcnkgcmF0aGVyIHRoYW4gcmUtcmVhZGluZzsgc2VlXG4gICAgICAvLyB7QGxpbmsgZ2V0fS5cbiAgICAgIHRoaXMuZW50cmllcy5zZXQoY2FjaGVLZXksIGNhY2hlSGFuZGxlclZhbHVlKTtcblxuICAgICAgZGVidWcoYExPQ0FMIEZJTEUgQ0FDSEUgV1JJVEU6ICR7Y2FjaGVLZXl9IC0+ICR7ZmlsZVBhdGh9YCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHdyaXRpbmcgbG9jYWwgY2FjaGUgZmlsZSBmb3IgJHtjYWNoZUtleX06YCwgZXJyb3IpO1xuICAgICAgLy8gRG9uJ3QgdGhyb3cgLSBidWlsZCBzaG91bGQgY29udGludWUgZXZlbiBpZiBjYWNoaW5nIGZhaWxzXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjYWNoZSBkaXJlY3RvcnkgcGF0aFxuICAgKi9cbiAgZ2V0Q2FjaGVEaXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZURpcjtcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import type { CacheControl } from "next/dist/server/lib/cache-control";
2
- import { CacheHandlerValue } from "next/dist/server/lib/incremental-cache";
3
- import { IncrementalCacheValue } from "next/dist/server/response-cache";
2
+ import type { CacheHandlerValue } from "next/dist/server/lib/incremental-cache";
3
+ import type { IncrementalCacheValue } from "next/dist/server/response-cache";
4
4
  /**
5
5
  * The in-memory layer the orchestrating handler puts in front of
6
6
  * `S3CacheHandler`. Not a `CacheHandler` of its own: it has no tags, since
@@ -178,4 +178,4 @@ class MemoryCacheHandler {
178
178
  }
179
179
  }
180
180
  exports.MemoryCacheHandler = MemoryCacheHandler;
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWNhY2hlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlci9tZW1vcnktY2FjaGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7RUFFRTtBQUNGLHNEQUFzRDtBQUN0RCxrREFBNkI7QUFJN0IsdURBQWdEO0FBQ2hELHlEQUFtRDtBQU9uRDs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBa0I7SUFDckIsYUFBYSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3pELEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNjLEtBQUssQ0FBUztJQUUvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDYyxVQUFVLENBQVM7SUFFcEM7UUFDRSxvRUFBb0U7UUFDcEUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBQSxnQ0FBYSxFQUN4QixnQ0FBZ0MsRUFDaEMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBQSxnQ0FBYSxFQUM3QixxQ0FBcUMsRUFDckMsSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLG1CQUFtQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFnQjtRQUN4Qix3QkFBd0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixtQkFBbUI7WUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxF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QUMzRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVc7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDeEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsNkJBQTZCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDckMsWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFqTUQsZ0RBaU1DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgSW4tbWVtb3J5IGNhY2hlIGhhbmRsZXJcbiovXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCBnZXREZWJ1ZyBmcm9tIFwiZGVidWdcIjtcbmltcG9ydCB0eXBlIHsgQ2FjaGVDb250cm9sIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2NhY2hlLWNvbnRyb2xcIjtcbmltcG9ydCB7IENhY2hlSGFuZGxlclZhbHVlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2luY3JlbWVudGFsLWNhY2hlXCI7XG5pbXBvcnQgeyBJbmNyZW1lbnRhbENhY2hlVmFsdWUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZVwiO1xuaW1wb3J0IHsgbWFya2VyQ2xvY2sgfSBmcm9tIFwiLi9hd3MtY2FjaGUtc3RvcmVcIjtcbmltcG9ydCB7IG51bWJlckZyb21FbnYgfSBmcm9tIFwiLi91c2UtY2FjaGUtY29tbW9uXCI7XG5cbmludGVyZmFjZSBNZW1vcnlDYWNoZUVudHJ5IHtcbiAgdmFsdWU6IENhY2hlSGFuZGxlclZhbHVlO1xuICBleHBpcmVzQXQ6IG51bWJlcjsgLy8gVGltZXN0YW1wIGluIG1pbGxpc2Vjb25kc1xufVxuXG4vKipcbiAqIFRoZSBpbi1tZW1vcnkgbGF5ZXIgdGhlIG9yY2hlc3RyYXRpbmcgaGFuZGxlciBwdXRzIGluIGZyb250IG9mXG4gKiBgUzNDYWNoZUhhbmRsZXJgLiBOb3QgYSBgQ2FjaGVIYW5kbGVyYCBvZiBpdHMgb3duOiBpdCBoYXMgbm8gdGFncywgc2luY2VcbiAqIGV2ZXJ5IGhpdCBpcyBjaGVja2VkIGFnYWluc3QgdGhlIHRhZyBtYXJrZXJzIGJlZm9yZSBpdCBpcyBzZXJ2ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZW1vcnlDYWNoZUhhbmRsZXIge1xuICBwcml2YXRlIGluTWVtb3J5Q2FjaGU6IE1hcDxzdHJpbmcsIE1lbW9yeUNhY2hlRW50cnk+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGRlYnVnID0gZ2V0RGVidWcoXCJjZGstbmV4dGpzOmNhY2hlLWhhbmRsZXI6bWVtb3J5XCIpO1xuXG4gIC8qKlxuICAgKiBUaW1lIHRvIGxpdmUgaW4gbWlsbGlzZWNvbmRzIGZvciBjYWNoZSBlbnRyaWVzLlxuICAgKiBBZnRlciB0aGlzIGR1cmF0aW9uLCBlbnRyaWVzIGV4cGlyZSBhbmQgYXJlIHJlbW92ZWQgZnJvbSB0aGUgY2FjaGUuXG4gICAqXG4gICAqIFRhZyByZXZhbGlkYXRpb25zIG5ldmVyIGNsZWFyIHRoaXMgY2FjaGU6IHRoZSBvcmNoZXN0cmF0aW5nIGhhbmRsZXIgY2hlY2tzXG4gICAqIGVhY2ggbWVtb3J5IGhpdCBhZ2FpbnN0IHRoZSB0YWcgbWFya2VycyBiZWZvcmUgc2VydmluZyBpdFxuICAgKiAoYFMzQ2FjaGVIYW5kbGVyLmlzUmV2YWxpZGF0ZWRgKSwgc28gYSByZXZhbGlkYXRlZCBlbnRyeSBpcyBub3Qgc2VydmVkIGZyb21cbiAgICogbWVtb3J5IGFueXdoZXJlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBTaG9ydCBUVEwgKDUgbWludXRlcykgLSBmb3IgZnJlcXVlbnRseSBjaGFuZ2luZyBkYXRhXG4gICAqIHR0bE1zID0gNSAqIDYwICogMTAwMDtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gTWVkaXVtIFRUTCAoMSBob3VyKSAtIGJhbGFuY2VkIGJldHdlZW4gZnJlc2huZXNzIGFuZCBwZXJmb3JtYW5jZVxuICAgKiB0dGxNcyA9IDYwICogNjAgKiAxMDAwO1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBMb25nIFRUTCAoMjQgaG91cnMpIC0gZm9yIG1vc3RseSBzdGF0aWMgY29udGVudFxuICAgKiB0dGxNcyA9IDI0ICogNjAgKiA2MCAqIDEwMDA7XG4gICAqXG4gICAqICoqV2h5IGFkanVzdCB0aGlzPyoqXG4gICAqIC0gTG93ZXIgdmFsdWVzOiBNb3JlIGNhY2hlIG1pc3NlcywgaGlnaGVyIFMzIGNvc3RzXG4gICAqIC0gSGlnaGVyIHZhbHVlczogRmV3ZXIgY2FjaGUgbWlzc2VzLCBtb3JlIG1lbW9yeSBoZWxkXG4gICAqXG4gICAqIFNldCB2aWEgZW52aXJvbm1lbnQgdmFyaWFibGU6IGBDREtfTkVYVEpTX01FTU9SWV9DQUNIRV9UVExfTVNgXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHR0bE1zOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIGNhY2hlIGVudHJpZXMgdG8gc3RvcmUgaW4gbWVtb3J5LlxuICAgKiBXaGVuIHRoaXMgbGltaXQgaXMgcmVhY2hlZCwgdGhlIGxlYXN0IHJlY2VudGx5IHVzZWQgKExSVSkgZW50cnkgaXMgZXZpY3RlZC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gU21hbGwgY2FjaGUgKDEwMCBlbnRyaWVzKSAtIG1pbmltYWwgbWVtb3J5IGZvb3RwcmludCBmb3Igc2ltcGxlIGFwcHNcbiAgICogbWF4RW50cmllcyA9IDEwMDtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gTWVkaXVtIGNhY2hlICgxMDAwIGVudHJpZXMpIC0gZ29vZCBiYWxhbmNlIGZvciB0eXBpY2FsIGFwcGxpY2F0aW9uc1xuICAgKiBtYXhFbnRyaWVzID0gMTAwMDtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gTGFyZ2UgY2FjaGUgKDEwMDAwIGVudHJpZXMpIC0gZm9yIGhpZ2gtdHJhZmZpYyBhcHBzIHdpdGggbWFueSB1bmlxdWUgcGFnZXNcbiAgICogbWF4RW50cmllcyA9IDEwMDAwO1xuICAgKlxuICAgKiAqKldoeSBhZGp1c3QgdGhpcz8qKlxuICAgKiAtIExvd2VyIHZhbHVlczogTGVzcyBtZW1vcnkgdXNhZ2UsIG1vcmUgY2FjaGUgZXZpY3Rpb25zXG4gICAqIC0gSGlnaGVyIHZhbHVlczogTW9yZSBtZW1vcnkgdXNhZ2UsIGZld2VyIGNhY2hlIGV2aWN0aW9ucywgYmV0dGVyIGhpdCByYXRlc1xuICAgKlxuICAgKiAqKk1lbW9yeSBjb25zaWRlcmF0aW9ucyoqOiBFYWNoIGVudHJ5IHN0b3JlcyB0aGUgZnVsbCBjYWNoZSB2YWx1ZSAoSFRNTCwgSlNPTiwgZXRjLilcbiAgICogQSB0eXBpY2FsIHBhZ2UgY2FjaGUgbWlnaHQgYmUgMTAtMTAwS0IsIHNvIDEwMDAgZW50cmllcyDiiYggMTAtMTAwTUIgb2YgbWVtb3J5LlxuICAgKiBDb25zaWRlciB5b3VyIGNvbXB1dGUgZW52aXJvbm1lbnQncyBtZW1vcnkgbGltaXRzIChMYW1iZGE6IDEyOE1CLTEwR0IsIEZhcmdhdGU6IDUxMk1CLTMwR0IpXG4gICAqIGFuZCBzaXplIGFjY29yZGluZ2x5LlxuICAgKlxuICAgKiBTZXQgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlOiBgQ0RLX05FWFRKU19NRU1PUllfQ0FDSEVfTUFYX0VOVFJJRVNgXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG1heEVudHJpZXM6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBEZWZhdWx0IHRvIDEgaG91ciBUVEwgYW5kIDEwMDAgbWF4IGVudHJpZXMuIEEgdmFsdWUgdGhhdCBpcyBub3QgYVxuICAgIC8vIG51bWJlciBmYWxscyBiYWNrIHRvbzogYXMgTmFOLCBub3RoaW5nIHdvdWxkIGV2ZXIgZXhwaXJlIG9yIGJlIGV2aWN0ZWQuXG4gICAgdGhpcy50dGxNcyA9IG51bWJlckZyb21FbnYoXG4gICAgICBcIkNES19ORVhUSlNfTUVNT1JZX0NBQ0hFX1RUTF9NU1wiLFxuICAgICAgNjAgKiA2MCAqIDEwMDAsXG4gICAgKTtcbiAgICB0aGlzLm1heEVudHJpZXMgPSBudW1iZXJGcm9tRW52KFxuICAgICAgXCJDREtfTkVYVEpTX01FTU9SWV9DQUNIRV9NQVhfRU5UUklFU1wiLFxuICAgICAgMTAwMCxcbiAgICApO1xuXG4gICAgdGhpcy5kZWJ1ZyhgVFRMOiAke3RoaXMudHRsTXMgLyAxMDAwfXMsIE1heCBlbnRyaWVzOiAke3RoaXMubWF4RW50cmllc31gKTtcbiAgfVxuXG4gIGFzeW5jIGdldChjYWNoZUtleTogc3RyaW5nKTogUHJvbWlzZTxDYWNoZUhhbmRsZXJWYWx1ZSB8IG51bGw+IHtcbiAgICAvLyBDaGVjayBpbi1tZW1vcnkgY2FjaGVcbiAgICBjb25zdCBtZW1vcnlFbnRyeSA9IHRoaXMuaW5NZW1vcnlDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChtZW1vcnlFbnRyeSkge1xuICAgICAgLy8gQ2hlY2sgaWYgZXhwaXJlZFxuICAgICAgaWYgKERhdGUubm93KCkgPiBtZW1vcnlFbnRyeS5leHBpcmVzQXQpIHtcbiAgICAgICAgdGhpcy5kZWJ1ZyhgTUVNT1JZIENBQ0hFIEVYUElSRUQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gTW92ZSB0byBlbmQgKG1vc3QgcmVjZW50bHkgdXNlZCkgYnkgZGVsZXRpbmcgYW5kIHJlLWluc2VydGluZ1xuICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICB0aGlzLmluTWVtb3J5Q2FjaGUuc2V0KGNhY2hlS2V5LCBtZW1vcnlFbnRyeSk7XG5cbiAgICAgIHRoaXMuZGVidWcoYE1FTU9SWSBDQUNIRSBISVQ6ICR7Y2FjaGVLZXl9YCk7XG4gICAgICByZXR1cm4gbWVtb3J5RW50cnkudmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5kZWJ1ZyhgTUVNT1JZIENBQ0hFIE1JU1M6ICR7Y2FjaGVLZXl9YCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogYGxhc3RNb2RpZmllZGAgaXMgdGhlIHRpbWUgdGhlIGVudHJ5IHdhcyByZW5kZXJlZCwgZm9yIGFuIGVudHJ5IGNvcGllZCBpblxuICAgKiBmcm9tIGEgc2xvd2VyIGxheWVyOyBhIGZyZXNoIHJlbmRlciBsZWF2ZXMgaXQgb3V0IGFuZCBpcyBzdGFtcGVkIG5vdyAtIG9uXG4gICAqIHtAbGluayBtYXJrZXJDbG9ja30sIGxpa2UgdGhlIFMzIGNvcHkgb2YgdGhlIHNhbWUgcmVuZGVyLiBBIG1lbW9yeSBoaXQgaXNcbiAgICogY2hlY2tlZCBhZ2FpbnN0IHRoZSB0YWcgbWFya2Vycywgd2hpY2ggYXJlIHN0YW1wZWQgb24gdGhhdCBjbG9jaywgYW5kXG4gICAqIGBEYXRlLm5vdygpYCBkcmlmdHMgZnJvbSBpdCBmb3IgYXMgbG9uZyBhcyB0aGUgcHJvY2VzcyBsaXZlczogYW4gZW50cnlcbiAgICogc3RhbXBlZCBhaGVhZCBvZiBpdCBsb29rZWQgbmV3ZXIgdGhhbiBhIGByZXZhbGlkYXRlVGFnYCBydW4gd2l0aGluIHRoZVxuICAgKiBkcmlmdCwgYW5kIHdhcyBzZXJ2ZWQgZm9yIHRoZSB3aG9sZSBtZW1vcnkgVFRMLlxuICAgKlxuICAgKiBgY2FjaGVDb250cm9sYCBpcyB0aGUgbGlmZXRpbWUgdGhlIGVudHJ5IHdhcyByZW5kZXJlZCB3aXRoLCBoYW5kZWQgYmFja1xuICAgKiBmcm9tIHtAbGluayBnZXR9IGFzIHRoZSBTMyBsYXllciBkb2VzOyBzZWUgYGdldENhY2hlQ29udHJvbGAuXG4gICAqL1xuICBhc3luYyBzZXQoXG4gICAgY2FjaGVLZXk6IHN0cmluZyxcbiAgICBkYXRhOiBJbmNyZW1lbnRhbENhY2hlVmFsdWUgfCBudWxsLFxuICAgIGxhc3RNb2RpZmllZD86IG51bWJlcixcbiAgICBjYWNoZUNvbnRyb2w/OiBDYWNoZUNvbnRyb2wsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgLy8gRGVsZXRlIGZyb20gbWVtb3J5IGNhY2hlXG4gICAgICB0aGlzLmRlYnVnKGBNRU1PUlkgQ0FDSEUgREVMRVRFOiAke2NhY2hlS2V5fWApO1xuICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVidWcgbG9nZ2luZyBmb3IgbWVtb3J5IGNhY2hlIHNldFxuICAgIHRoaXMuZGVidWcoYE1FTU9SWSBDQUNIRSBTRVQ6ICR7Y2FjaGVLZXl9ICgke2RhdGEua2luZH0pYCk7XG5cbiAgICAvLyBTdG9yZSBpbiBtZW1vcnkgY2FjaGUgd2l0aCBwcm9wZXIgQ2FjaGVIYW5kbGVyVmFsdWUgc3RydWN0dXJlXG4gICAgY29uc3QgY2FjaGVIYW5kbGVyVmFsdWU6IENhY2hlSGFuZGxlclZhbHVlID0ge1xuICAgICAgbGFzdE1vZGlmaWVkOiBsYXN0TW9kaWZpZWQgPz8gbWFya2VyQ2xvY2soKSxcbiAgICAgIHZhbHVlOiBkYXRhLFxuICAgICAgY2FjaGVDb250cm9sLFxuICAgIH07XG5cbiAgICBjb25zdCBlbnRyeTogTWVtb3J5Q2FjaGVFbnRyeSA9IHtcbiAgICAgIHZhbHVlOiBjYWNoZUhhbmRsZXJWYWx1ZSxcbiAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIHRoaXMudHRsTXMsXG4gICAgfTtcblxuICAgIC8vIENsZWFuIHVwIGV4cGlyZWQgZW50cmllcyBiZWZvcmUgYWRkaW5nIG5ldyBvbmVcbiAgICB0aGlzLmNsZWFudXBFeHBpcmVkKCk7XG5cbiAgICAvLyBJZiB3ZSdyZSBhdCBtYXggY2FwYWNpdHksIGV2aWN0IG9sZGVzdCBlbnRyeVxuICAgIGlmICh0aGlzLmluTWVtb3J5Q2FjaGUuc2l6ZSA+PSB0aGlzLm1heEVudHJpZXMpIHtcbiAgICAgIHRoaXMuZXZpY3RPbGRlc3QoKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgbmV3IGVudHJ5XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgZW50cnkpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQ2FjaGUgZW50cmllczogJHt0aGlzLmluTWVtb3J5Q2FjaGUuc2l6ZX0vJHt0aGlzLm1heEVudHJpZXN9YCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBleHBpcmVkIGNhY2hlIGVudHJpZXNcbiAgICovXG4gIHByaXZhdGUgY2xlYW51cEV4cGlyZWQoKTogdm9pZCB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZXhwaXJlZENvdW50ID0gMDtcblxuICAgIGZvciAoY29uc3QgW2tleSwgZW50cnldIG9mIHRoaXMuaW5NZW1vcnlDYWNoZS5lbnRyaWVzKCkpIHtcbiAgICAgIGlmIChub3cgPiBlbnRyeS5leHBpcmVzQXQpIHtcbiAgICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLmRlbGV0ZShrZXkpO1xuICAgICAgICBleHBpcmVkQ291bnQrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXhwaXJlZENvdW50ID4gMCkge1xuICAgICAgdGhpcy5kZWJ1ZyhgQ2xlYW5lZCB1cCAke2V4cGlyZWRDb3VudH0gZXhwaXJlZCBlbnRyaWVzYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV2aWN0IHRoZSBvbGRlc3QgKGxlYXN0IHJlY2VudGx5IHVzZWQpIGNhY2hlIGVudHJ5XG4gICAqIE1hcCBtYWludGFpbnMgaW5zZXJ0aW9uIG9yZGVyLCBzbyBmaXJzdCBlbnRyeSBpcyBvbGRlc3RcbiAgICovXG4gIHByaXZhdGUgZXZpY3RPbGRlc3QoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RLZXkgPSB0aGlzLmluTWVtb3J5Q2FjaGUua2V5cygpLm5leHQoKS52YWx1ZTtcbiAgICBpZiAoZmlyc3RLZXkpIHtcbiAgICAgIHRoaXMuZGVidWcoYE1BWCBDQVBBQ0lUWSBFVklDVCAoTFJVKTogJHtmaXJzdEtleX1gKTtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5kZWxldGUoZmlyc3RLZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1YmxpYyBtZXRob2RzIGZvciB0ZXN0aW5nIGFuZCBtb25pdG9yaW5nXG4gIHB1YmxpYyBnZXRDYWNoZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbk1lbW9yeUNhY2hlLnNpemU7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmluTWVtb3J5Q2FjaGUuY2xlYXIoKTtcbiAgfVxufVxuIl19
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWNhY2hlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlci9tZW1vcnktY2FjaGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7RUFFRTtBQUNGLHNEQUFzRDtBQUN0RCxrREFBNkI7QUFJN0IsdURBQWdEO0FBQ2hELHlEQUFtRDtBQU9uRDs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBa0I7SUFDckIsYUFBYSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3pELEtBQUssR0FBRyxJQUFBLGVBQVEsRUFBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNjLEtBQUssQ0FBUztJQUUvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDYyxVQUFVLENBQVM7SUFFcEM7UUFDRSxvRUFBb0U7UUFDcEUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBQSxnQ0FBYSxFQUN4QixnQ0FBZ0MsRUFDaEMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBQSxnQ0FBYSxFQUM3QixxQ0FBcUMsRUFDckMsSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLG1CQUFtQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFnQjtRQUN4Qix3QkFBd0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixtQkFBbUI7WUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxF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QUMzRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVc7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDeEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsNkJBQTZCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDckMsWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFqTUQsZ0RBaU1DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgSW4tbWVtb3J5IGNhY2hlIGhhbmRsZXJcbiovXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbmltcG9ydCBnZXREZWJ1ZyBmcm9tIFwiZGVidWdcIjtcbmltcG9ydCB0eXBlIHsgQ2FjaGVDb250cm9sIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2NhY2hlLWNvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgQ2FjaGVIYW5kbGVyVmFsdWUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvaW5jcmVtZW50YWwtY2FjaGVcIjtcbmltcG9ydCB0eXBlIHsgSW5jcmVtZW50YWxDYWNoZVZhbHVlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGVcIjtcbmltcG9ydCB7IG1hcmtlckNsb2NrIH0gZnJvbSBcIi4vYXdzLWNhY2hlLXN0b3JlXCI7XG5pbXBvcnQgeyBudW1iZXJGcm9tRW52IH0gZnJvbSBcIi4vdXNlLWNhY2hlLWNvbW1vblwiO1xuXG5pbnRlcmZhY2UgTWVtb3J5Q2FjaGVFbnRyeSB7XG4gIHZhbHVlOiBDYWNoZUhhbmRsZXJWYWx1ZTtcbiAgZXhwaXJlc0F0OiBudW1iZXI7IC8vIFRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHNcbn1cblxuLyoqXG4gKiBUaGUgaW4tbWVtb3J5IGxheWVyIHRoZSBvcmNoZXN0cmF0aW5nIGhhbmRsZXIgcHV0cyBpbiBmcm9udCBvZlxuICogYFMzQ2FjaGVIYW5kbGVyYC4gTm90IGEgYENhY2hlSGFuZGxlcmAgb2YgaXRzIG93bjogaXQgaGFzIG5vIHRhZ3MsIHNpbmNlXG4gKiBldmVyeSBoaXQgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSB0YWcgbWFya2VycyBiZWZvcmUgaXQgaXMgc2VydmVkLlxuICovXG5leHBvcnQgY2xhc3MgTWVtb3J5Q2FjaGVIYW5kbGVyIHtcbiAgcHJpdmF0ZSBpbk1lbW9yeUNhY2hlOiBNYXA8c3RyaW5nLCBNZW1vcnlDYWNoZUVudHJ5PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBkZWJ1ZyA9IGdldERlYnVnKFwiY2RrLW5leHRqczpjYWNoZS1oYW5kbGVyOm1lbW9yeVwiKTtcblxuICAvKipcbiAgICogVGltZSB0byBsaXZlIGluIG1pbGxpc2Vjb25kcyBmb3IgY2FjaGUgZW50cmllcy5cbiAgICogQWZ0ZXIgdGhpcyBkdXJhdGlvbiwgZW50cmllcyBleHBpcmUgYW5kIGFyZSByZW1vdmVkIGZyb20gdGhlIGNhY2hlLlxuICAgKlxuICAgKiBUYWcgcmV2YWxpZGF0aW9ucyBuZXZlciBjbGVhciB0aGlzIGNhY2hlOiB0aGUgb3JjaGVzdHJhdGluZyBoYW5kbGVyIGNoZWNrc1xuICAgKiBlYWNoIG1lbW9yeSBoaXQgYWdhaW5zdCB0aGUgdGFnIG1hcmtlcnMgYmVmb3JlIHNlcnZpbmcgaXRcbiAgICogKGBTM0NhY2hlSGFuZGxlci5pc1JldmFsaWRhdGVkYCksIHNvIGEgcmV2YWxpZGF0ZWQgZW50cnkgaXMgbm90IHNlcnZlZCBmcm9tXG4gICAqIG1lbW9yeSBhbnl3aGVyZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gU2hvcnQgVFRMICg1IG1pbnV0ZXMpIC0gZm9yIGZyZXF1ZW50bHkgY2hhbmdpbmcgZGF0YVxuICAgKiB0dGxNcyA9IDUgKiA2MCAqIDEwMDA7XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIE1lZGl1bSBUVEwgKDEgaG91cikgLSBiYWxhbmNlZCBiZXR3ZWVuIGZyZXNobmVzcyBhbmQgcGVyZm9ybWFuY2VcbiAgICogdHRsTXMgPSA2MCAqIDYwICogMTAwMDtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gTG9uZyBUVEwgKDI0IGhvdXJzKSAtIGZvciBtb3N0bHkgc3RhdGljIGNvbnRlbnRcbiAgICogdHRsTXMgPSAyNCAqIDYwICogNjAgKiAxMDAwO1xuICAgKlxuICAgKiAqKldoeSBhZGp1c3QgdGhpcz8qKlxuICAgKiAtIExvd2VyIHZhbHVlczogTW9yZSBjYWNoZSBtaXNzZXMsIGhpZ2hlciBTMyBjb3N0c1xuICAgKiAtIEhpZ2hlciB2YWx1ZXM6IEZld2VyIGNhY2hlIG1pc3NlcywgbW9yZSBtZW1vcnkgaGVsZFxuICAgKlxuICAgKiBTZXQgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlOiBgQ0RLX05FWFRKU19NRU1PUllfQ0FDSEVfVFRMX01TYFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0dGxNczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBjYWNoZSBlbnRyaWVzIHRvIHN0b3JlIGluIG1lbW9yeS5cbiAgICogV2hlbiB0aGlzIGxpbWl0IGlzIHJlYWNoZWQsIHRoZSBsZWFzdCByZWNlbnRseSB1c2VkIChMUlUpIGVudHJ5IGlzIGV2aWN0ZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFNtYWxsIGNhY2hlICgxMDAgZW50cmllcykgLSBtaW5pbWFsIG1lbW9yeSBmb290cHJpbnQgZm9yIHNpbXBsZSBhcHBzXG4gICAqIG1heEVudHJpZXMgPSAxMDA7XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIE1lZGl1bSBjYWNoZSAoMTAwMCBlbnRyaWVzKSAtIGdvb2QgYmFsYW5jZSBmb3IgdHlwaWNhbCBhcHBsaWNhdGlvbnNcbiAgICogbWF4RW50cmllcyA9IDEwMDA7XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIExhcmdlIGNhY2hlICgxMDAwMCBlbnRyaWVzKSAtIGZvciBoaWdoLXRyYWZmaWMgYXBwcyB3aXRoIG1hbnkgdW5pcXVlIHBhZ2VzXG4gICAqIG1heEVudHJpZXMgPSAxMDAwMDtcbiAgICpcbiAgICogKipXaHkgYWRqdXN0IHRoaXM/KipcbiAgICogLSBMb3dlciB2YWx1ZXM6IExlc3MgbWVtb3J5IHVzYWdlLCBtb3JlIGNhY2hlIGV2aWN0aW9uc1xuICAgKiAtIEhpZ2hlciB2YWx1ZXM6IE1vcmUgbWVtb3J5IHVzYWdlLCBmZXdlciBjYWNoZSBldmljdGlvbnMsIGJldHRlciBoaXQgcmF0ZXNcbiAgICpcbiAgICogKipNZW1vcnkgY29uc2lkZXJhdGlvbnMqKjogRWFjaCBlbnRyeSBzdG9yZXMgdGhlIGZ1bGwgY2FjaGUgdmFsdWUgKEhUTUwsIEpTT04sIGV0Yy4pXG4gICAqIEEgdHlwaWNhbCBwYWdlIGNhY2hlIG1pZ2h0IGJlIDEwLTEwMEtCLCBzbyAxMDAwIGVudHJpZXMg4omIIDEwLTEwME1CIG9mIG1lbW9yeS5cbiAgICogQ29uc2lkZXIgeW91ciBjb21wdXRlIGVudmlyb25tZW50J3MgbWVtb3J5IGxpbWl0cyAoTGFtYmRhOiAxMjhNQi0xMEdCLCBGYXJnYXRlOiA1MTJNQi0zMEdCKVxuICAgKiBhbmQgc2l6ZSBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogU2V0IHZpYSBlbnZpcm9ubWVudCB2YXJpYWJsZTogYENES19ORVhUSlNfTUVNT1JZX0NBQ0hFX01BWF9FTlRSSUVTYFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBtYXhFbnRyaWVzOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gRGVmYXVsdCB0byAxIGhvdXIgVFRMIGFuZCAxMDAwIG1heCBlbnRyaWVzLiBBIHZhbHVlIHRoYXQgaXMgbm90IGFcbiAgICAvLyBudW1iZXIgZmFsbHMgYmFjayB0b286IGFzIE5hTiwgbm90aGluZyB3b3VsZCBldmVyIGV4cGlyZSBvciBiZSBldmljdGVkLlxuICAgIHRoaXMudHRsTXMgPSBudW1iZXJGcm9tRW52KFxuICAgICAgXCJDREtfTkVYVEpTX01FTU9SWV9DQUNIRV9UVExfTVNcIixcbiAgICAgIDYwICogNjAgKiAxMDAwLFxuICAgICk7XG4gICAgdGhpcy5tYXhFbnRyaWVzID0gbnVtYmVyRnJvbUVudihcbiAgICAgIFwiQ0RLX05FWFRKU19NRU1PUllfQ0FDSEVfTUFYX0VOVFJJRVNcIixcbiAgICAgIDEwMDAsXG4gICAgKTtcblxuICAgIHRoaXMuZGVidWcoYFRUTDogJHt0aGlzLnR0bE1zIC8gMTAwMH1zLCBNYXggZW50cmllczogJHt0aGlzLm1heEVudHJpZXN9YCk7XG4gIH1cblxuICBhc3luYyBnZXQoY2FjaGVLZXk6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVIYW5kbGVyVmFsdWUgfCBudWxsPiB7XG4gICAgLy8gQ2hlY2sgaW4tbWVtb3J5IGNhY2hlXG4gICAgY29uc3QgbWVtb3J5RW50cnkgPSB0aGlzLmluTWVtb3J5Q2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICBpZiAobWVtb3J5RW50cnkpIHtcbiAgICAgIC8vIENoZWNrIGlmIGV4cGlyZWRcbiAgICAgIGlmIChEYXRlLm5vdygpID4gbWVtb3J5RW50cnkuZXhwaXJlc0F0KSB7XG4gICAgICAgIHRoaXMuZGVidWcoYE1FTU9SWSBDQUNIRSBFWFBJUkVEOiAke2NhY2hlS2V5fWApO1xuICAgICAgICB0aGlzLmluTWVtb3J5Q2FjaGUuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIE1vdmUgdG8gZW5kIChtb3N0IHJlY2VudGx5IHVzZWQpIGJ5IGRlbGV0aW5nIGFuZCByZS1pbnNlcnRpbmdcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgdGhpcy5pbk1lbW9yeUNhY2hlLnNldChjYWNoZUtleSwgbWVtb3J5RW50cnkpO1xuXG4gICAgICB0aGlzLmRlYnVnKGBNRU1PUlkgQ0FDSEUgSElUOiAke2NhY2hlS2V5fWApO1xuICAgICAgcmV0dXJuIG1lbW9yeUVudHJ5LnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZGVidWcoYE1FTU9SWSBDQUNIRSBNSVNTOiAke2NhY2hlS2V5fWApO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIGBsYXN0TW9kaWZpZWRgIGlzIHRoZSB0aW1lIHRoZSBlbnRyeSB3YXMgcmVuZGVyZWQsIGZvciBhbiBlbnRyeSBjb3BpZWQgaW5cbiAgICogZnJvbSBhIHNsb3dlciBsYXllcjsgYSBmcmVzaCByZW5kZXIgbGVhdmVzIGl0IG91dCBhbmQgaXMgc3RhbXBlZCBub3cgLSBvblxuICAgKiB7QGxpbmsgbWFya2VyQ2xvY2t9LCBsaWtlIHRoZSBTMyBjb3B5IG9mIHRoZSBzYW1lIHJlbmRlci4gQSBtZW1vcnkgaGl0IGlzXG4gICAqIGNoZWNrZWQgYWdhaW5zdCB0aGUgdGFnIG1hcmtlcnMsIHdoaWNoIGFyZSBzdGFtcGVkIG9uIHRoYXQgY2xvY2ssIGFuZFxuICAgKiBgRGF0ZS5ub3coKWAgZHJpZnRzIGZyb20gaXQgZm9yIGFzIGxvbmcgYXMgdGhlIHByb2Nlc3MgbGl2ZXM6IGFuIGVudHJ5XG4gICAqIHN0YW1wZWQgYWhlYWQgb2YgaXQgbG9va2VkIG5ld2VyIHRoYW4gYSBgcmV2YWxpZGF0ZVRhZ2AgcnVuIHdpdGhpbiB0aGVcbiAgICogZHJpZnQsIGFuZCB3YXMgc2VydmVkIGZvciB0aGUgd2hvbGUgbWVtb3J5IFRUTC5cbiAgICpcbiAgICogYGNhY2hlQ29udHJvbGAgaXMgdGhlIGxpZmV0aW1lIHRoZSBlbnRyeSB3YXMgcmVuZGVyZWQgd2l0aCwgaGFuZGVkIGJhY2tcbiAgICogZnJvbSB7QGxpbmsgZ2V0fSBhcyB0aGUgUzMgbGF5ZXIgZG9lczsgc2VlIGBnZXRDYWNoZUNvbnRyb2xgLlxuICAgKi9cbiAgYXN5bmMgc2V0KFxuICAgIGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgZGF0YTogSW5jcmVtZW50YWxDYWNoZVZhbHVlIHwgbnVsbCxcbiAgICBsYXN0TW9kaWZpZWQ/OiBudW1iZXIsXG4gICAgY2FjaGVDb250cm9sPzogQ2FjaGVDb250cm9sLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIC8vIERlbGV0ZSBmcm9tIG1lbW9yeSBjYWNoZVxuICAgICAgdGhpcy5kZWJ1ZyhgTUVNT1JZIENBQ0hFIERFTEVURTogJHtjYWNoZUtleX1gKTtcbiAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIERlYnVnIGxvZ2dpbmcgZm9yIG1lbW9yeSBjYWNoZSBzZXRcbiAgICB0aGlzLmRlYnVnKGBNRU1PUlkgQ0FDSEUgU0VUOiAke2NhY2hlS2V5fSAoJHtkYXRhLmtpbmR9KWApO1xuXG4gICAgLy8gU3RvcmUgaW4gbWVtb3J5IGNhY2hlIHdpdGggcHJvcGVyIENhY2hlSGFuZGxlclZhbHVlIHN0cnVjdHVyZVxuICAgIGNvbnN0IGNhY2hlSGFuZGxlclZhbHVlOiBDYWNoZUhhbmRsZXJWYWx1ZSA9IHtcbiAgICAgIGxhc3RNb2RpZmllZDogbGFzdE1vZGlmaWVkID8/IG1hcmtlckNsb2NrKCksXG4gICAgICB2YWx1ZTogZGF0YSxcbiAgICAgIGNhY2hlQ29udHJvbCxcbiAgICB9O1xuXG4gICAgY29uc3QgZW50cnk6IE1lbW9yeUNhY2hlRW50cnkgPSB7XG4gICAgICB2YWx1ZTogY2FjaGVIYW5kbGVyVmFsdWUsXG4gICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyB0aGlzLnR0bE1zLFxuICAgIH07XG5cbiAgICAvLyBDbGVhbiB1cCBleHBpcmVkIGVudHJpZXMgYmVmb3JlIGFkZGluZyBuZXcgb25lXG4gICAgdGhpcy5jbGVhbnVwRXhwaXJlZCgpO1xuXG4gICAgLy8gSWYgd2UncmUgYXQgbWF4IGNhcGFjaXR5LCBldmljdCBvbGRlc3QgZW50cnlcbiAgICBpZiAodGhpcy5pbk1lbW9yeUNhY2hlLnNpemUgPj0gdGhpcy5tYXhFbnRyaWVzKSB7XG4gICAgICB0aGlzLmV2aWN0T2xkZXN0KCk7XG4gICAgfVxuXG4gICAgLy8gQWRkIG5ldyBlbnRyeVxuICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5zZXQoY2FjaGVLZXksIGVudHJ5KTtcblxuICAgIHRoaXMuZGVidWcoYENhY2hlIGVudHJpZXM6ICR7dGhpcy5pbk1lbW9yeUNhY2hlLnNpemV9LyR7dGhpcy5tYXhFbnRyaWVzfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgZXhwaXJlZCBjYWNoZSBlbnRyaWVzXG4gICAqL1xuICBwcml2YXRlIGNsZWFudXBFeHBpcmVkKCk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgbGV0IGV4cGlyZWRDb3VudCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIGVudHJ5XSBvZiB0aGlzLmluTWVtb3J5Q2FjaGUuZW50cmllcygpKSB7XG4gICAgICBpZiAobm93ID4gZW50cnkuZXhwaXJlc0F0KSB7XG4gICAgICAgIHRoaXMuaW5NZW1vcnlDYWNoZS5kZWxldGUoa2V5KTtcbiAgICAgICAgZXhwaXJlZENvdW50Kys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4cGlyZWRDb3VudCA+IDApIHtcbiAgICAgIHRoaXMuZGVidWcoYENsZWFuZWQgdXAgJHtleHBpcmVkQ291bnR9IGV4cGlyZWQgZW50cmllc2ApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFdmljdCB0aGUgb2xkZXN0IChsZWFzdCByZWNlbnRseSB1c2VkKSBjYWNoZSBlbnRyeVxuICAgKiBNYXAgbWFpbnRhaW5zIGluc2VydGlvbiBvcmRlciwgc28gZmlyc3QgZW50cnkgaXMgb2xkZXN0XG4gICAqL1xuICBwcml2YXRlIGV2aWN0T2xkZXN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0S2V5ID0gdGhpcy5pbk1lbW9yeUNhY2hlLmtleXMoKS5uZXh0KCkudmFsdWU7XG4gICAgaWYgKGZpcnN0S2V5KSB7XG4gICAgICB0aGlzLmRlYnVnKGBNQVggQ0FQQUNJVFkgRVZJQ1QgKExSVSk6ICR7Zmlyc3RLZXl9YCk7XG4gICAgICB0aGlzLmluTWVtb3J5Q2FjaGUuZGVsZXRlKGZpcnN0S2V5KTtcbiAgICB9XG4gIH1cblxuICAvLyBQdWJsaWMgbWV0aG9kcyBmb3IgdGVzdGluZyBhbmQgbW9uaXRvcmluZ1xuICBwdWJsaWMgZ2V0Q2FjaGVTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5NZW1vcnlDYWNoZS5zaXplO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5pbk1lbW9yeUNhY2hlLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { CacheHandler, CacheHandlerValue, CacheHandlerContext } from "next/dist/server/lib/incremental-cache";
2
- import { IncrementalCacheValue } from "next/dist/server/response-cache";
1
+ import type { CacheHandler, CacheHandlerValue, CacheHandlerContext } from "next/dist/server/lib/incremental-cache";
2
+ import type { IncrementalCacheValue } from "next/dist/server/response-cache";
3
3
  import { RevalidateDurations } from "./aws-cache-store";
4
4
  import { GetCacheHandlerContext, SetCacheHandlerContext } from "./cache-utils";
5
5
  export interface S3CacheHandlerOptions {