@o3r/rules-engine 11.0.0-next.0 → 11.0.0-next.2

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 (83) hide show
  1. package/README.md +5 -1
  2. package/builders/rules-engine-extractor/helpers/rules-engine.extractor.d.ts +3 -4
  3. package/builders/rules-engine-extractor/helpers/rules-engine.extractor.d.ts.map +1 -1
  4. package/builders/rules-engine-extractor/helpers/rules-engine.extractor.interfaces.d.ts +30 -3
  5. package/builders/rules-engine-extractor/helpers/rules-engine.extractor.interfaces.d.ts.map +1 -1
  6. package/builders/rules-engine-extractor/helpers/rules-engine.extractor.interfaces.js.map +1 -1
  7. package/builders/rules-engine-extractor/helpers/rules-engine.extractor.js +49 -12
  8. package/builders/rules-engine-extractor/helpers/rules-engine.extractor.js.map +1 -1
  9. package/builders/rules-engine-extractor/index.d.ts.map +1 -1
  10. package/builders/rules-engine-extractor/index.js +3 -3
  11. package/builders/rules-engine-extractor/index.js.map +1 -1
  12. package/components/rules-engine/ruleset-history/ruleset-history-pres.module.d.ts +7 -7
  13. package/components/rules-engine/shared/fallback-to.pipe.d.ts +8 -1
  14. package/components/rules-engine/shared/fallback-to.pipe.d.ts.map +1 -1
  15. package/devkit/rules-engine-devtools.console.service.d.ts +1 -1
  16. package/devkit/rules-engine-devtools.service.d.ts +1 -1
  17. package/engine/engine.interface.d.ts +15 -1
  18. package/engine/engine.interface.d.ts.map +1 -1
  19. package/engine/ruleset-executor.d.ts +0 -5
  20. package/engine/ruleset-executor.d.ts.map +1 -1
  21. package/engine/structure.d.ts +15 -1
  22. package/engine/structure.d.ts.map +1 -1
  23. package/esm2022/components/rules-engine/rule-actions/rule-actions-pres.component.mjs +5 -5
  24. package/esm2022/components/rules-engine/rule-condition/rule-condition-pres.component.mjs +3 -3
  25. package/esm2022/components/rules-engine/rule-key-value/rule-key-value-pres.component.mjs +5 -5
  26. package/esm2022/components/rules-engine/rule-tree/rule-tree-pres.component.mjs +3 -3
  27. package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.component.mjs +5 -5
  28. package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.module.mjs +9 -9
  29. package/esm2022/components/rules-engine/shared/fallback-to.pipe.mjs +16 -5
  30. package/esm2022/components/rules-engine/shared/ruleset-history.helper.mjs +1 -1
  31. package/esm2022/devkit/rules-engine-devtools.console.service.mjs +5 -5
  32. package/esm2022/devkit/rules-engine-devtools.message.service.mjs +4 -4
  33. package/esm2022/devkit/rules-engine-devtools.module.mjs +4 -4
  34. package/esm2022/devkit/rules-engine-devtools.service.mjs +5 -5
  35. package/esm2022/engine/debug/engine.debug.mjs +1 -1
  36. package/esm2022/engine/debug/helpers.mjs +1 -1
  37. package/esm2022/engine/engine.interface.mjs +1 -1
  38. package/esm2022/engine/engine.mjs +1 -1
  39. package/esm2022/engine/operator/operator.helpers.mjs +1 -1
  40. package/esm2022/engine/operator/operators/date-based.operators.mjs +1 -1
  41. package/esm2022/engine/ruleset-executor.mjs +2 -8
  42. package/esm2022/engine/structure.mjs +1 -1
  43. package/esm2022/services/runner/rules-engine.runner.module.mjs +4 -4
  44. package/esm2022/services/runner/rules-engine.runner.service.mjs +6 -11
  45. package/esm2022/stores/rulesets/rulesets.effect.mjs +3 -3
  46. package/esm2022/stores/rulesets/rulesets.module.mjs +4 -4
  47. package/esm2022/stores/rulesets/rulesets.selectors.mjs +47 -6
  48. package/esm2022/stores/rulesets/rulesets.sync.mjs +1 -1
  49. package/fesm2022/o3r-rules-engine.mjs +121 -80
  50. package/fesm2022/o3r-rules-engine.mjs.map +1 -1
  51. package/migration.json +1 -1
  52. package/package.json +26 -22
  53. package/rules.facts.metadata.json +2 -2
  54. package/schemas/rulesets.schema.json +32 -14
  55. package/schematics/cms-adapter/index.d.ts +2 -3
  56. package/schematics/cms-adapter/index.d.ts.map +1 -1
  57. package/schematics/cms-adapter/index.js +7 -3
  58. package/schematics/cms-adapter/index.js.map +1 -1
  59. package/schematics/facts-service/index.d.ts +1 -2
  60. package/schematics/facts-service/index.d.ts.map +1 -1
  61. package/schematics/facts-service/index.js +6 -3
  62. package/schematics/facts-service/index.js.map +1 -1
  63. package/schematics/ng-add/index.d.ts +2 -2
  64. package/schematics/ng-add/index.d.ts.map +1 -1
  65. package/schematics/ng-add/index.js +69 -49
  66. package/schematics/ng-add/index.js.map +1 -1
  67. package/schematics/ng-add/schema.d.ts +2 -0
  68. package/schematics/ng-add/schema.d.ts.map +1 -1
  69. package/schematics/ng-add/schema.json +5 -0
  70. package/schematics/ng-update/v10.0/action-module-split.d.ts.map +1 -1
  71. package/schematics/ng-update/v10.0/action-module-split.js +5 -1
  72. package/schematics/ng-update/v10.0/action-module-split.js.map +1 -1
  73. package/schematics/operator/index.d.ts +1 -1
  74. package/schematics/operator/index.d.ts.map +1 -1
  75. package/schematics/operator/index.js +6 -2
  76. package/schematics/operator/index.js.map +1 -1
  77. package/schematics/rules-engine-to-component/index.d.ts +1 -1
  78. package/schematics/rules-engine-to-component/index.d.ts.map +1 -1
  79. package/schematics/rules-engine-to-component/index.js +6 -2
  80. package/schematics/rules-engine-to-component/index.js.map +1 -1
  81. package/services/runner/rules-engine.runner.service.d.ts.map +1 -1
  82. package/stores/rulesets/rulesets.selectors.d.ts +13 -0
  83. package/stores/rulesets/rulesets.selectors.d.ts.map +1 -1
@@ -134,4 +134,4 @@ export class RulesEngine {
134
134
  return Object.keys(this.factMap);
135
135
  }
136
136
  }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VuZ2luZS9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBWSxZQUFZLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3JELG1CQUFtQjtBQUNuQixNQUFNLE9BQU8sV0FBVztJQW1DdEI7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksT0FBNEI7UUE3Q3hDLGtGQUFrRjtRQUNqRSxZQUFPLEdBQW9DLEVBQUUsQ0FBQztRQUUvRCw0REFBNEQ7UUFDM0Msc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWtDLEVBQUUsQ0FBQyxDQUFDO1FBMEM1RixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUks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VSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUQsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEVBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsU0FBdUM7UUFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ2xELEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYztRQUNuQixPQUFPLENBQUMsWUFBOEMsRUFBRSxFQUFFLENBQ3hELFlBQVksQ0FBQyxJQUFJLENBQ2YsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQzVGLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUNqQyxDQUFDO0lBQ04sQ0FBQztJQUVELDZDQUE2QztJQUN0Qyx1QkFBdUI7UUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVuZ2luZURlYnVnZ2VyIH0gZnJvbSAnLi9kZWJ1Zy9lbmdpbmUuZGVidWcnO1xuaW1wb3J0IHsgRmFjdE9iamVjdCwgUnVsZXNFbmdpbmVPcHRpb25zIH0gZnJvbSAnLi9lbmdpbmUuaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgRmFjdCwgRmFjdHMgfSBmcm9tICcuL2ZhY3QvaW5kZXgnO1xuaW1wb3J0IHsgZmlsdGVyUnVsZXNldHNFdmVudFN0cmVhbSB9IGZyb20gJy4vaGVscGVycy9maWx0ZXItcnVsZXNldC1ldmVudC5vcGVyYXRvcic7XG5pbXBvcnQgeyBPcGVyYXRvciwgb3BlcmF0b3JMaXN0LCBVbmFyeU9wZXJhdG9yIH0gZnJvbSAnLi9vcGVyYXRvci9pbmRleCc7XG5pbXBvcnQgeyBSdWxlc2V0RXhlY3V0b3IgfSBmcm9tICcuL3J1bGVzZXQtZXhlY3V0b3InO1xuaW1wb3J0IHsgQWN0aW9uQmxvY2ssIFJ1bGVzZXQgfSBmcm9tICcuL3N0cnVjdHVyZSc7XG5cbi8qKiBSdWxlcyBlbmdpbmUgKi9cbmV4cG9ydCBjbGFzcyBSdWxlc0VuZ2luZSB7XG5cbiAgLyoqIE1hcCBvZiByZWdpc3RlcmVkIGZhY3Qgc3RyZWFtLCB0aGlzIG1hcCBpcyBtdXRhdGVkIGJ5IHRoZSBydWxlc2V0IGV4ZWN1dG9ycyAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZhY3RNYXA6IFJlY29yZDxzdHJpbmcsIEZhY3RPYmplY3Q8YW55Pj4gPSB7fTtcblxuICAvKiogU3ViamVjdCBjb250YWluaW5nIHRoZSBydWxlc2V0cyBhbmQgdGhlIHJlc3VsdHMgc3RyZWFtKi9cbiAgcHJpdmF0ZSByZWFkb25seSBydWxlc2V0TWFwU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgUnVsZXNldEV4ZWN1dG9yPj4oe30pO1xuXG4gIC8qKiBNYXAgb2YgYXZhaWxhYmxlIG9wZXJhdG9ycyAqL1xuICBwdWJsaWMgb3BlcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBPcGVyYXRvcjx1bmtub3duLCB1bmtub3duPj47XG5cbiAgLyoqIExpc3Qgb2YgZXZlbnRzIGZvciB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcnVsZXMgZW5naW5lICovXG4gIHB1YmxpYyByZWFkb25seSBldmVudHMkOiBPYnNlcnZhYmxlPEFjdGlvbkJsb2NrW10+O1xuXG4gIC8qKiBEZWxheSBiZWZvcmUgZmFjdCBzdHJlYW0gZGVmYXVsdGluZyB2YWx1ZSAqL1xuICBwdWJsaWMgZmFjdERlZmF1bHREZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogSW5zdGFuY2Ugb2YgZW5naW5lIGRlYnVnIG9iamVjdDsgVW5kZWZpbmVkIGlmIGRlYnVnTW9kZSBpcyBub3QgYWN0aXZlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lRGVidWc/OiBFbmdpbmVEZWJ1Z2dlcjtcblxuICAvKiogTmFtZSBvZiB0aGUgcnVsZXMgZW5naW5lIGluc3RhbmNlICovXG4gIHB1YmxpYyByZWFkb25seSBydWxlc0VuZ2luZUluc3RhbmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtYW5jZSByZXBvcnRlciB0byB1c2UgZm9yIHBlcmZvcm1hbmNlIG1lYXN1cmVtZW50cy5cbiAgICogQGRlZmF1bHQgd2luZG93LnBlcmZvcm1hbmNlIG9uIGJyb3dzZXIgb25seSwgdW5kZWZpbmVkIG9uIG5vZGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwZXJmb3JtYW5jZTtcblxuICAvKipcbiAgICogTG9nIHRoZSBlbmdpbmUgZXJyb3JzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nZ2VyPzogTG9nZ2VyO1xuICAvKipcbiAgICogRmxhZyB0byBjaGVjayBpZiB0aGUgcnVuIGlzIGluIGRlYnVnIG1vZGUgb3Igbm90XG4gICAqL1xuICBwdWJsaWMgZ2V0IGRlYnVnTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmVuZ2luZURlYnVnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBydWxlcyBlbmdpbmUgb3B0aW9uc1xuICAgKiBAcGFyYW0gbG9nZ2VyXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogUnVsZXNFbmdpbmVPcHRpb25zKSB7XG4gICAgdGhpcy5wZXJmb3JtYW5jZSA9IG9wdGlvbnM/LnBlcmZvcm1hbmNlIHx8ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5wZXJmb3JtYW5jZSA6IHVuZGVmaW5lZCk7XG4gICAgdGhpcy5lbmdpbmVEZWJ1ZyA9IG9wdGlvbnM/LmRlYnVnZ2VyO1xuICAgIHRoaXMuZW5naW5lRGVidWc/LnJlZ2lzdGVyUnVsZUVuZ2luZSh0aGlzKTtcbiAgICB0aGlzLmxvZ2dlciA9IG9wdGlvbnM/LmxvZ2dlcjtcbiAgICB0aGlzLnJ1bGVzRW5naW5lSW5zdGFuY2VOYW1lID0gb3B0aW9ucz8ucnVsZXNFbmdpbmVJbnN0YW5jZU5hbWUgfHwgJ1J1bGVzRW5naW5lJztcbiAgICB0aGlzLmZhY3REZWZhdWx0RGVsYXkgPSBvcHRpb25zPy5mYWN0RGVmYXVsdERlbGF5O1xuICAgIC8vIExvYWQgZGVmYXVsdCBvcGVyYXRvcnNcbiAgICB0aGlzLm9wZXJhdG9ycyA9IG9wZXJhdG9yTGlzdC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgT3BlcmF0b3I8YW55LCBhbnk+Pj4oKGFjYywgb3BlcmF0b3IpID0+IHtcbiAgICAgIGFjY1tvcGVyYXRvci5uYW1lXSA9IG9wZXJhdG9yO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ydWxlc2V0TWFwU3ViamVjdC5waXBlKFxuICAgICAgdGhpcy5wcmVwYXJlQWN0aW9uc1N0cmVhbSgpLFxuICAgICAgdGhpcy5oYW5kbGVBY3Rpb25zU3RyZWFtT3V0cHV0KClcbiAgICApO1xuICAgIGlmIChvcHRpb25zPy5mYWN0cykge1xuICAgICAgdGhpcy51cHNlcnRGYWN0cyhvcHRpb25zLmZhY3RzKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnM/LnJ1bGVzKSB7XG4gICAgICB0aGlzLnVwc2VydFJ1bGVzZXRzKG9wdGlvbnMucnVsZXMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8ub3BlcmF0b3JzKSB7XG4gICAgICB0aGlzLnVwc2VydE9wZXJhdG9ycyhvcHRpb25zLm9wZXJhdG9ycyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBkZWJ1ZyBldmVudHMgdG8gYWN0aW9ucyBzdHJlYW0gaWYgZGVidWcgZW5naW5lIGlzIGFjdGl2YXRlZFxuICAgKiBAcGFyYW0gYWN0aW9uc1N0cmVhbVxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVBY3Rpb25zU3RyZWFtT3V0cHV0PFQgZXh0ZW5kcyBBY3Rpb25CbG9jayA9IEFjdGlvbkJsb2NrPigpOiAoYWN0aW9uc1N0cmVhbSQ6IE9ic2VydmFibGU8VFtdPikgPT4gT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gKGFjdGlvbnNTdHJlYW0kOiBPYnNlcnZhYmxlPFRbXT4pID0+IHRoaXMuZW5naW5lRGVidWcgPyBhY3Rpb25zU3RyZWFtJC5waXBlKHRhcCgoYWxsQWN0aW9ucykgPT4gdGhpcy5lbmdpbmVEZWJ1ZyEuYWxsQWN0aW9uc0NoYW5nZShhbGxBY3Rpb25zKSkpIDogYWN0aW9uc1N0cmVhbSQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBhY3Rpb25zIHN0cmVhbSBldmVudCBiYXNlZCBvbiBwcm92aWRlZCBhY3RpdmUgcnVsZXNldHMgaWRzOyBIYW5kbGUgZGVidWcgdG9vXG4gICAqIEBwYXJhbSBydWxlU2V0c1xuICAgKi9cbiAgcHJpdmF0ZSBwcmVwYXJlQWN0aW9uc1N0cmVhbTxUIGV4dGVuZHMgQWN0aW9uQmxvY2sgPSBBY3Rpb25CbG9jaz4ocnVsZVNldHM/OiBzdHJpbmdbXSk6IChydWxlc2V0TWFwU3ViamVjdCQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgUnVsZXNldEV4ZWN1dG9yPj4pID0+IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIChydWxlc2V0TWFwU3ViamVjdCQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgUnVsZXNldEV4ZWN1dG9yPj4pID0+ICh0aGlzLmVuZ2luZURlYnVnID9cbiAgICAgIHJ1bGVzZXRNYXBTdWJqZWN0JC5waXBlKFxuICAgICAgICB0YXAoKHJ1bGVTZXRFeGVjdXRvck1hcCkgPT4gdGhpcy5lbmdpbmVEZWJ1ZyEuYWN0aXZlUnVsZXNldHNDaGFuZ2UocnVsZVNldEV4ZWN1dG9yTWFwLCBydWxlU2V0cykpLFxuICAgICAgICBmaWx0ZXJSdWxlc2V0c0V2ZW50U3RyZWFtKHJ1bGVTZXRzKSlcbiAgICAgIDogcnVsZXNldE1hcFN1YmplY3QkLnBpcGUoZmlsdGVyUnVsZXNldHNFdmVudFN0cmVhbShydWxlU2V0cykpKSBhcyBPYnNlcnZhYmxlPFRbXT47XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHJldHJpZXZlIGEgZmFjdCBzdHJlYW1cbiAgICogVGhlIGZhY3Qgc3RyZWFtIGNyZWF0ZWQgd2lsbCBiZSByZWdpc3RlcmVkIGluIHRoZSBlbmdpbmVcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBmYWN0IHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSBmYWN0VmFsdWUkIFZhbHVlIHN0cmVhbSBmb3IgdGhlIGZhY3RcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbTxUID0gRmFjdHM+KGlkOiBzdHJpbmcsIGZhY3RWYWx1ZSQ/OiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgLy8gdHJpY2sgdG8gZW1pdCB1bmRlZmluZWQgaWYgdGhlIG9ic2VydmFibGUgaXMgbm90IGltbWVkaWF0ZWx5IGVtaXR0aW5nICh0byBub3QgYmxvYyBleGVjdXRpb24pXG4gICAgY29uc3Qgb2JzJCA9IGZhY3RWYWx1ZSQgP1xuICAgICAgbWVyZ2UoZmFjdFZhbHVlJCwgb2YodW5kZWZpbmVkKS5waXBlKGRlbGF5KHRoaXMuZmFjdERlZmF1bHREZWxheSB8fCAwKSwgdGFrZVVudGlsKGZhY3RWYWx1ZSQpKSkgOlxuICAgICAgZmFjdFZhbHVlJDtcbiAgICBjb25zdCBmYWN0T2JqID0gdGhpcy5mYWN0TWFwW2lkXTtcbiAgICBpZiAoZmFjdE9iaikge1xuICAgICAgaWYgKGZhY3RWYWx1ZSQpIHtcbiAgICAgICAgZmFjdE9iai5zdWJqZWN0Lm5leHQob2JzJCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFjdE9iai52YWx1ZSQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZD4ob2JzJCk7XG4gICAgY29uc3QgdmFsdWUkID0gc3ViamVjdC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdmFsdWUgfHwgb2YodW5kZWZpbmVkKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy5mYWN0TWFwW2lkXSA9IHtcbiAgICAgIHN1YmplY3QsXG4gICAgICB2YWx1ZSRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHZhbHVlJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgcHJvbWlzZSBvZiB0aGUgbGF0ZXN0IHZhbHVlIG9mIGEgZmFjdC5cbiAgICogUmV0dXJuIHVuZGVmaW5lZCBpZiB0aGUgZmFjdCBpcyBub3QgZGVmaW5lZC5cbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBmYWN0IHRvIHJldHJpZXZlXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVGYWN0VmFsdWU8VCA9IHVua25vd24+KGlkOiBzdHJpbmcpOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mYWN0TWFwW2lkXS52YWx1ZSQgJiYgZmlyc3RWYWx1ZUZyb20odGhpcy5yZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbTxUPihpZCksIHsgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBmYWN0IGluIHJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gZmFjdHMgZmFjdCBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydEZhY3RzPFQgPSB1bmtub3duPihmYWN0czogRmFjdDxUPiB8IEZhY3Q8VD5bXSkge1xuICAgIChBcnJheS5pc0FycmF5KGZhY3RzKSA/IGZhY3RzIDogW2ZhY3RzXSkuZm9yRWFjaCgoe2lkLCB2YWx1ZSR9KSA9PlxuICAgICAgdGhpcy5yZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbShpZCwgdmFsdWUkKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBydWxlIGluIHJ1bGVzIGVuZ2luZVxuICAgKiBAcGFyYW0gcnVsZXMgcnVsZSBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKiBAcGFyYW0gcnVsZXNldHNcbiAgICovXG4gIHB1YmxpYyB1cHNlcnRSdWxlc2V0cyhydWxlc2V0czogUnVsZXNldFtdKSB7XG4gICAgdGhpcy5lbmdpbmVEZWJ1Zz8uYWRkQXZhaWxhYmxlUnVsZXNldHMocnVsZXNldHMpO1xuXG4gICAgdGhpcy5ydWxlc2V0TWFwU3ViamVjdC5uZXh0KFxuICAgICAgcnVsZXNldHMucmVkdWNlKChhY2NSdWxlc2V0LCBydWxlc2V0KSA9PiB7XG4gICAgICAgIGFjY1J1bGVzZXRbcnVsZXNldC5pZF0gPSBuZXcgUnVsZXNldEV4ZWN1dG9yKHJ1bGVzZXQsIHRoaXMpO1xuICAgICAgICByZXR1cm4gYWNjUnVsZXNldDtcbiAgICAgIH0sIHsuLi50aGlzLnJ1bGVzZXRNYXBTdWJqZWN0LnZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgb3BlcmF0b3IgaW4gcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBvcGVyYXRvcnMgb3BlcmF0b3IgbGlzdCB0byBhZGQgLyB1cGRhdGVcbiAgICovXG4gIHB1YmxpYyB1cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JzOiAoT3BlcmF0b3IgfCBVbmFyeU9wZXJhdG9yKVtdKSB7XG4gICAgdGhpcy5vcGVyYXRvcnMgPSBvcGVyYXRvcnMucmVkdWNlKChhY2MsIG9wZXJhdG9yKSA9PiB7XG4gICAgICBhY2Nbb3BlcmF0b3IubmFtZV0gPSBvcGVyYXRvcjtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgey4uLnRoaXMub3BlcmF0b3JzfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlcmF0b3IgdG8gYXBwbHkgb24gYSBzdHJlYW0gb2YgcnVsZXNldHMgaWRzXG4gICAqIFJldHVybnMgYSBzdHJlYW0gb2YgYWN0aW9ucyBvdXRwdXR0ZWQgYnkgdGhlIHJ1bGVzIGVuZ2luZSwgY29ycmVzcG9uZGluZyB0byB0aGUgcnVsZXNldHNJZHNcbiAgICovXG4gIHB1YmxpYyBnZXRFdmVudFN0cmVhbTxUIGV4dGVuZHMgQWN0aW9uQmxvY2sgPSBBY3Rpb25CbG9jaz4oKTogKHJ1bGVzZXRzSWRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD4pID0+IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIChydWxlc2V0c0lkcyQ6IE9ic2VydmFibGU8c3RyaW5nW10gfCB1bmRlZmluZWQ+KSA9PlxuICAgICAgcnVsZXNldHNJZHMkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocnVsZVNldHMpID0+IHRoaXMucnVsZXNldE1hcFN1YmplY3QucGlwZSh0aGlzLnByZXBhcmVBY3Rpb25zU3RyZWFtPFQ+KHJ1bGVTZXRzKSkpLFxuICAgICAgICB0aGlzLmhhbmRsZUFjdGlvbnNTdHJlYW1PdXRwdXQoKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCBmYWN0cyBuYW1lcyAqL1xuICBwdWJsaWMgZ2V0UmVnaXN0ZXJlZEZhY3RzTmFtZXMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZmFjdE1hcCk7XG4gIH1cblxufVxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VuZ2luZS9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBWSxZQUFZLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3JELG1CQUFtQjtBQUNuQixNQUFNLE9BQU8sV0FBVztJQW1DdEI7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksT0FBNEI7UUE3Q3hDLGtGQUFrRjtRQUNqRSxZQUFPLEdBQW9DLEVBQUUsQ0FBQztRQUUvRCw0REFBNEQ7UUFDM0Msc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWtDLEVBQUUsQ0FBQyxDQUFDO1FBMEM1RixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUks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LE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN0QyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBQyxTQUF1QztRQUM1RCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDbEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7WUFDOUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjO1FBQ25CLE9BQU8sQ0FBQyxZQUE4QyxFQUFFLEVBQUUsQ0FDeEQsWUFBWSxDQUFDLElBQUksQ0FDZixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDNUYsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBRUQsNkNBQTZDO0lBQ3RDLHVCQUF1QjtRQUM1QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRW5naW5lRGVidWdnZXIgfSBmcm9tICcuL2RlYnVnL2VuZ2luZS5kZWJ1Zyc7XG5pbXBvcnQgeyBGYWN0T2JqZWN0LCBSdWxlc0VuZ2luZU9wdGlvbnMgfSBmcm9tICcuL2VuZ2luZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBGYWN0LCBGYWN0cyB9IGZyb20gJy4vZmFjdC9pbmRleCc7XG5pbXBvcnQgeyBmaWx0ZXJSdWxlc2V0c0V2ZW50U3RyZWFtIH0gZnJvbSAnLi9oZWxwZXJzL2ZpbHRlci1ydWxlc2V0LWV2ZW50Lm9wZXJhdG9yJztcbmltcG9ydCB7IE9wZXJhdG9yLCBvcGVyYXRvckxpc3QsIFVuYXJ5T3BlcmF0b3IgfSBmcm9tICcuL29wZXJhdG9yL2luZGV4JztcbmltcG9ydCB7IFJ1bGVzZXRFeGVjdXRvciB9IGZyb20gJy4vcnVsZXNldC1leGVjdXRvcic7XG5pbXBvcnQgeyBBY3Rpb25CbG9jaywgUnVsZXNldCB9IGZyb20gJy4vc3RydWN0dXJlJztcblxuLyoqIFJ1bGVzIGVuZ2luZSAqL1xuZXhwb3J0IGNsYXNzIFJ1bGVzRW5naW5lIHtcblxuICAvKiogTWFwIG9mIHJlZ2lzdGVyZWQgZmFjdCBzdHJlYW0sIHRoaXMgbWFwIGlzIG11dGF0ZWQgYnkgdGhlIHJ1bGVzZXQgZXhlY3V0b3JzICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdE1hcDogUmVjb3JkPHN0cmluZywgRmFjdE9iamVjdDxhbnk+PiA9IHt9O1xuXG4gIC8qKiBTdWJqZWN0IGNvbnRhaW5pbmcgdGhlIHJ1bGVzZXRzIGFuZCB0aGUgcmVzdWx0cyBzdHJlYW0qL1xuICBwcml2YXRlIHJlYWRvbmx5IHJ1bGVzZXRNYXBTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBSdWxlc2V0RXhlY3V0b3I+Pih7fSk7XG5cbiAgLyoqIE1hcCBvZiBhdmFpbGFibGUgb3BlcmF0b3JzICovXG4gIHB1YmxpYyBvcGVyYXRvcnM6IFJlY29yZDxzdHJpbmcsIE9wZXJhdG9yPHVua25vd24sIHVua25vd24+PjtcblxuICAvKiogTGlzdCBvZiBldmVudHMgZm9yIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBydWxlcyBlbmdpbmUgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50cyQ6IE9ic2VydmFibGU8QWN0aW9uQmxvY2tbXT47XG5cbiAgLyoqIERlbGF5IGJlZm9yZSBmYWN0IHN0cmVhbSBkZWZhdWx0aW5nIHZhbHVlICovXG4gIHB1YmxpYyBmYWN0RGVmYXVsdERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBvZiBlbmdpbmUgZGVidWcgb2JqZWN0OyBVbmRlZmluZWQgaWYgZGVidWdNb2RlIGlzIG5vdCBhY3RpdmVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmVEZWJ1Zz86IEVuZ2luZURlYnVnZ2VyO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBydWxlcyBlbmdpbmUgaW5zdGFuY2UgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJ1bGVzRW5naW5lSW5zdGFuY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1hbmNlIHJlcG9ydGVyIHRvIHVzZSBmb3IgcGVyZm9ybWFuY2UgbWVhc3VyZW1lbnRzLlxuICAgKiBAZGVmYXVsdCB3aW5kb3cucGVyZm9ybWFuY2Ugb24gYnJvd3NlciBvbmx5LCB1bmRlZmluZWQgb24gbm9kZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBlcmZvcm1hbmNlO1xuXG4gIC8qKlxuICAgKiBMb2cgdGhlIGVuZ2luZSBlcnJvcnNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2dnZXI/OiBMb2dnZXI7XG4gIC8qKlxuICAgKiBGbGFnIHRvIGNoZWNrIGlmIHRoZSBydW4gaXMgaW4gZGVidWcgbW9kZSBvciBub3RcbiAgICovXG4gIHB1YmxpYyBnZXQgZGVidWdNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZW5naW5lRGVidWc7XG4gIH1cblxuICAvKipcbiAgICogUnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBvcHRpb25zIHJ1bGVzIGVuZ2luZSBvcHRpb25zXG4gICAqIEBwYXJhbSBsb2dnZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBSdWxlc0VuZ2luZU9wdGlvbnMpIHtcbiAgICB0aGlzLnBlcmZvcm1hbmNlID0gb3B0aW9ucz8ucGVyZm9ybWFuY2UgfHwgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnBlcmZvcm1hbmNlIDogdW5kZWZpbmVkKTtcbiAgICB0aGlzLmVuZ2luZURlYnVnID0gb3B0aW9ucz8uZGVidWdnZXI7XG4gICAgdGhpcy5lbmdpbmVEZWJ1Zz8ucmVnaXN0ZXJSdWxlRW5naW5lKHRoaXMpO1xuICAgIHRoaXMubG9nZ2VyID0gb3B0aW9ucz8ubG9nZ2VyO1xuICAgIHRoaXMucnVsZXNFbmdpbmVJbnN0YW5jZU5hbWUgPSBvcHRpb25zPy5ydWxlc0VuZ2luZUluc3RhbmNlTmFtZSB8fCAnUnVsZXNFbmdpbmUnO1xuICAgIHRoaXMuZmFjdERlZmF1bHREZWxheSA9IG9wdGlvbnM/LmZhY3REZWZhdWx0RGVsYXk7XG4gICAgLy8gTG9hZCBkZWZhdWx0IG9wZXJhdG9yc1xuICAgIHRoaXMub3BlcmF0b3JzID0gb3BlcmF0b3JMaXN0LnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBPcGVyYXRvcjxhbnksIGFueT4+PigoYWNjLCBvcGVyYXRvcikgPT4ge1xuICAgICAgYWNjW29wZXJhdG9yLm5hbWVdID0gb3BlcmF0b3I7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgICB0aGlzLmV2ZW50cyQgPSB0aGlzLnJ1bGVzZXRNYXBTdWJqZWN0LnBpcGUoXG4gICAgICB0aGlzLnByZXBhcmVBY3Rpb25zU3RyZWFtKCksXG4gICAgICB0aGlzLmhhbmRsZUFjdGlvbnNTdHJlYW1PdXRwdXQoKVxuICAgICk7XG4gICAgaWYgKG9wdGlvbnM/LmZhY3RzKSB7XG4gICAgICB0aGlzLnVwc2VydEZhY3RzKG9wdGlvbnMuZmFjdHMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucz8ucnVsZXMpIHtcbiAgICAgIHRoaXMudXBzZXJ0UnVsZXNldHMob3B0aW9ucy5ydWxlcyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zPy5vcGVyYXRvcnMpIHtcbiAgICAgIHRoaXMudXBzZXJ0T3BlcmF0b3JzKG9wdGlvbnMub3BlcmF0b3JzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIGRlYnVnIGV2ZW50cyB0byBhY3Rpb25zIHN0cmVhbSBpZiBkZWJ1ZyBlbmdpbmUgaXMgYWN0aXZhdGVkXG4gICAqIEBwYXJhbSBhY3Rpb25zU3RyZWFtXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUFjdGlvbnNTdHJlYW1PdXRwdXQ8VCBleHRlbmRzIEFjdGlvbkJsb2NrID0gQWN0aW9uQmxvY2s+KCk6IChhY3Rpb25zU3RyZWFtJDogT2JzZXJ2YWJsZTxUW10+KSA9PiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiAoYWN0aW9uc1N0cmVhbSQ6IE9ic2VydmFibGU8VFtdPikgPT4gdGhpcy5lbmdpbmVEZWJ1ZyA/IGFjdGlvbnNTdHJlYW0kLnBpcGUodGFwKChhbGxBY3Rpb25zKSA9PiB0aGlzLmVuZ2luZURlYnVnIS5hbGxBY3Rpb25zQ2hhbmdlKGFsbEFjdGlvbnMpKSkgOiBhY3Rpb25zU3RyZWFtJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGFjdGlvbnMgc3RyZWFtIGV2ZW50IGJhc2VkIG9uIHByb3ZpZGVkIGFjdGl2ZSBydWxlc2V0cyBpZHM7IEhhbmRsZSBkZWJ1ZyB0b29cbiAgICogQHBhcmFtIHJ1bGVTZXRzXG4gICAqL1xuICBwcml2YXRlIHByZXBhcmVBY3Rpb25zU3RyZWFtPFQgZXh0ZW5kcyBBY3Rpb25CbG9jayA9IEFjdGlvbkJsb2NrPihydWxlU2V0cz86IHN0cmluZ1tdKTogKHJ1bGVzZXRNYXBTdWJqZWN0JDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBSdWxlc2V0RXhlY3V0b3I+PikgPT4gT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gKHJ1bGVzZXRNYXBTdWJqZWN0JDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBSdWxlc2V0RXhlY3V0b3I+PikgPT4gKHRoaXMuZW5naW5lRGVidWcgP1xuICAgICAgcnVsZXNldE1hcFN1YmplY3QkLnBpcGUoXG4gICAgICAgIHRhcCgocnVsZVNldEV4ZWN1dG9yTWFwKSA9PiB0aGlzLmVuZ2luZURlYnVnIS5hY3RpdmVSdWxlc2V0c0NoYW5nZShydWxlU2V0RXhlY3V0b3JNYXAsIHJ1bGVTZXRzKSksXG4gICAgICAgIGZpbHRlclJ1bGVzZXRzRXZlbnRTdHJlYW0ocnVsZVNldHMpKVxuICAgICAgOiBydWxlc2V0TWFwU3ViamVjdCQucGlwZShmaWx0ZXJSdWxlc2V0c0V2ZW50U3RyZWFtKHJ1bGVTZXRzKSkpIGFzIE9ic2VydmFibGU8VFtdPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgb3IgcmV0cmlldmUgYSBmYWN0IHN0cmVhbVxuICAgKiBUaGUgZmFjdCBzdHJlYW0gY3JlYXRlZCB3aWxsIGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGVuZ2luZVxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGZhY3QgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIGZhY3RWYWx1ZSQgVmFsdWUgc3RyZWFtIGZvciB0aGUgZmFjdFxuICAgKi9cbiAgcHVibGljIHJldHJpZXZlT3JDcmVhdGVGYWN0U3RyZWFtPFQgPSBGYWN0cz4oaWQ6IHN0cmluZywgZmFjdFZhbHVlJD86IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICAvLyB0cmljayB0byBlbWl0IHVuZGVmaW5lZCBpZiB0aGUgb2JzZXJ2YWJsZSBpcyBub3QgaW1tZWRpYXRlbHkgZW1pdHRpbmcgKHRvIG5vdCBibG9jIGV4ZWN1dGlvbilcbiAgICBjb25zdCBvYnMkID0gZmFjdFZhbHVlJCA/XG4gICAgICBtZXJnZShmYWN0VmFsdWUkLCBvZih1bmRlZmluZWQpLnBpcGUoZGVsYXkodGhpcy5mYWN0RGVmYXVsdERlbGF5IHx8IDApLCB0YWtlVW50aWwoZmFjdFZhbHVlJCkpKSA6XG4gICAgICBmYWN0VmFsdWUkO1xuICAgIGNvbnN0IGZhY3RPYmogPSB0aGlzLmZhY3RNYXBbaWRdO1xuICAgIGlmIChmYWN0T2JqKSB7XG4gICAgICBpZiAoZmFjdFZhbHVlJCkge1xuICAgICAgICBmYWN0T2JqLnN1YmplY3QubmV4dChvYnMkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWN0T2JqLnZhbHVlJDtcbiAgICB9XG5cbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkPihvYnMkKTtcbiAgICBjb25zdCB2YWx1ZSQgPSBzdWJqZWN0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB2YWx1ZSB8fCBvZih1bmRlZmluZWQpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICB0aGlzLmZhY3RNYXBbaWRdID0ge1xuICAgICAgc3ViamVjdCxcbiAgICAgIHZhbHVlJFxuICAgIH07XG5cbiAgICByZXR1cm4gdmFsdWUkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBwcm9taXNlIG9mIHRoZSBsYXRlc3QgdmFsdWUgb2YgYSBmYWN0LlxuICAgKiBSZXR1cm4gdW5kZWZpbmVkIGlmIHRoZSBmYWN0IGlzIG5vdCBkZWZpbmVkLlxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGZhY3QgdG8gcmV0cmlldmVcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUZhY3RWYWx1ZTxUID0gdW5rbm93bj4oaWQ6IHN0cmluZyk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZhY3RNYXBbaWRdLnZhbHVlJCAmJiBmaXJzdFZhbHVlRnJvbSh0aGlzLnJldHJpZXZlT3JDcmVhdGVGYWN0U3RyZWFtPFQ+KGlkKSwgeyBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IGZhY3QgaW4gcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBmYWN0cyBmYWN0IGxpc3QgdG8gYWRkIC8gdXBkYXRlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0RmFjdHM8VCA9IHVua25vd24+KGZhY3RzOiBGYWN0PFQ+IHwgRmFjdDxUPltdKSB7XG4gICAgKEFycmF5LmlzQXJyYXkoZmFjdHMpID8gZmFjdHMgOiBbZmFjdHNdKS5mb3JFYWNoKCh7aWQsIHZhbHVlJH0pID0+XG4gICAgICB0aGlzLnJldHJpZXZlT3JDcmVhdGVGYWN0U3RyZWFtKGlkLCB2YWx1ZSQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IHJ1bGUgaW4gcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBydWxlcyBydWxlIGxpc3QgdG8gYWRkIC8gdXBkYXRlXG4gICAqIEBwYXJhbSBydWxlc2V0c1xuICAgKi9cbiAgcHVibGljIHVwc2VydFJ1bGVzZXRzKHJ1bGVzZXRzOiBSdWxlc2V0W10pIHtcbiAgICB0aGlzLmVuZ2luZURlYnVnPy5hZGRBdmFpbGFibGVSdWxlc2V0cyhydWxlc2V0cyk7XG5cbiAgICB0aGlzLnJ1bGVzZXRNYXBTdWJqZWN0Lm5leHQoXG4gICAgICBydWxlc2V0cy5yZWR1Y2UoKGFjY1J1bGVzZXQsIHJ1bGVzZXQpID0+IHtcbiAgICAgICAgYWNjUnVsZXNldFtydWxlc2V0LmlkXSA9IG5ldyBSdWxlc2V0RXhlY3V0b3IocnVsZXNldCwgdGhpcyk7XG4gICAgICAgIHJldHVybiBhY2NSdWxlc2V0O1xuICAgICAgfSwgey4uLnRoaXMucnVsZXNldE1hcFN1YmplY3QudmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBvcGVyYXRvciBpbiBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIG9wZXJhdG9ycyBvcGVyYXRvciBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydE9wZXJhdG9ycyhvcGVyYXRvcnM6IChPcGVyYXRvciB8IFVuYXJ5T3BlcmF0b3IpW10pIHtcbiAgICB0aGlzLm9wZXJhdG9ycyA9IG9wZXJhdG9ycy5yZWR1Y2UoKGFjYywgb3BlcmF0b3IpID0+IHtcbiAgICAgIGFjY1tvcGVyYXRvci5uYW1lXSA9IG9wZXJhdG9yO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7Li4udGhpcy5vcGVyYXRvcnN9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVyYXRvciB0byBhcHBseSBvbiBhIHN0cmVhbSBvZiBydWxlc2V0cyBpZHNcbiAgICogUmV0dXJucyBhIHN0cmVhbSBvZiBhY3Rpb25zIG91dHB1dHRlZCBieSB0aGUgcnVsZXMgZW5naW5lLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBydWxlc2V0c0lkc1xuICAgKi9cbiAgcHVibGljIGdldEV2ZW50U3RyZWFtPFQgZXh0ZW5kcyBBY3Rpb25CbG9jayA9IEFjdGlvbkJsb2NrPigpOiAocnVsZXNldHNJZHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPikgPT4gT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gKHJ1bGVzZXRzSWRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD4pID0+XG4gICAgICBydWxlc2V0c0lkcyQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChydWxlU2V0cykgPT4gdGhpcy5ydWxlc2V0TWFwU3ViamVjdC5waXBlKHRoaXMucHJlcGFyZUFjdGlvbnNTdHJlYW08VD4ocnVsZVNldHMpKSksXG4gICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uc1N0cmVhbU91dHB1dCgpXG4gICAgICApO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbGlzdCBvZiByZWdpc3RlcmVkIGZhY3RzIG5hbWVzICovXG4gIHB1YmxpYyBnZXRSZWdpc3RlcmVkRmFjdHNOYW1lcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5mYWN0TWFwKTtcbiAgfVxuXG59XG4iXX0=
@@ -106,4 +106,4 @@ export function parseRegExp(inputRegExp) {
106
106
  }
107
107
  return new RegExp(inputRegExp);
108
108
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvb3BlcmF0b3Ivb3BlcmF0b3IuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUEyQixHQUFNLEVBQUUsR0FBTSxFQUFFLFFBQXdCLEVBQUUsYUFBaUQ7SUFDbkosTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RSxJQUFJLGtCQUFxRCxDQUFDO0lBQzFELElBQUksYUFBYSxJQUFJLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtRQUN0RCxrQkFBa0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3pFLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBRSxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxHQUFHLGtCQUFrQixRQUFRLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3JGO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBMkIsQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tB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Q0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDL0IsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztLQUMvQztJQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0ZUlucHV0LCBPcGVyYXRvciwgU3VwcG9ydGVkU2ltcGxlVHlwZXN9IGZyb20gJy4vb3BlcmF0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHtGYWN0c30gZnJvbSAnLi4vZmFjdCc7XG5cbi8qKlxuICogRXhlY3V0ZSBPcGVyYXRvclxuICogQHBhcmFtIGxocyBMZWZ0IGhhbmQgc2lkZVxuICogQHBhcmFtIHJocyBSaWdodCBoYW5kIHNpZGVcbiAqIEBwYXJhbSBvcGVyYXRvciBPcGVyYXRvciB0byBjb21wYXJlIHZhbHVlc1xuICogQHBhcmFtIG9wZXJhdG9yRmFjdHMgRmFjdHMgdGhhdCBvcGVyYXRvciBjYW4gZGVwZW5kIG9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjdXRlT3BlcmF0b3I8TCA9IHVua25vd24sIFIgPSB1bmtub3duPihsaHM6IEwsIHJoczogUiwgb3BlcmF0b3I6IE9wZXJhdG9yPEwsIFI+LCBvcGVyYXRvckZhY3RzPzogUmVjb3JkPHN0cmluZywgRmFjdHMgfCB1bmRlZmluZWQ+KSB7XG4gIGNvbnN0IHZhbGlkTGhzID0gKCFvcGVyYXRvci52YWxpZGF0ZUxocyB8fCBvcGVyYXRvci52YWxpZGF0ZUxocyhsaHMpKTtcbiAgY29uc3QgdmFsaWRSaHMgPSAoIW9wZXJhdG9yLnZhbGlkYXRlUmhzIHx8IG9wZXJhdG9yLnZhbGlkYXRlUmhzKHJocykpO1xuICBsZXQgb3BlcmF0b3JGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4gfCB1bmRlZmluZWQ7XG4gIGlmIChvcGVyYXRvckZhY3RzICYmIG9wZXJhdG9yLmZhY3RJbXBsaWNpdERlcGVuZGVuY2llcykge1xuICAgIG9wZXJhdG9yRmFjdFZhbHVlcyA9IG9wZXJhdG9yLmZhY3RJbXBsaWNpdERlcGVuZGVuY2llcy5yZWR1Y2UoKGFjYywgZGVwKSA9PiB7XG4gICAgICBpZiAob3BlcmF0b3JGYWN0c1tkZXBdKSB7XG4gICAgICAgIGFjY1tkZXBdID0gb3BlcmF0b3JGYWN0c1tkZXBdITtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGZhY3QgXCIke2RlcH1cIiByZXF1ZXN0ZWQgYnkgJHtvcGVyYXRvci5uYW1lfSBjYW5ub3QgYmUgZm91bmQuYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIEZhY3RzPik7XG4gIH1cbiAgaWYgKCF2YWxpZExocykge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsZWZ0IG9wZXJhbmQ6ICR7SlNPTi5zdHJpbmdpZnkobGhzKX1gKTtcbiAgfVxuICBpZiAoIXZhbGlkUmhzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJpZ2h0IG9wZXJhbmQ6ICR7SlNPTi5zdHJpbmdpZnkocmhzKX1gKTtcbiAgfVxuICBjb25zdCBvYnMgPSBvcGVyYXRvci5ldmFsdWF0b3IobGhzLCByaHMsIG9wZXJhdG9yRmFjdFZhbHVlcyk7XG4gIHJldHVybiBvYnM7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYSBudW1iZXIgb3BlcmFuZFxuICogQHBhcmFtIG9wZXJhbmQgdmFsdWUgb2Ygb25lIG9mIHRoZSBvcGVyYW5kc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyVmFsaWRhdG9yKG9wZXJhbmQ6IHVua25vd24pOiBvcGVyYW5kIGlzIG51bWJlciB8IHN0cmluZyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcbiAgcmV0dXJuIG9wZXJhbmQgIT09ICcnICYmICFBcnJheS5pc0FycmF5KG9wZXJhbmQpICYmICFpc05hTigrYCR7b3BlcmFuZH1gKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhbiBvcGVyYW5kIGlzIGEgcmFuZ2Ugb2YgbnVtYmVyc1xuICogQHBhcmFtIG9wZXJhdG9ySW5wdXQgdmFsdWUgb2Ygb25lIG9mIHRoZSBvcGVyYW5kc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSYW5nZU51bWJlcihvcGVyYXRvcklucHV0OiB1bmtub3duKTogb3BlcmF0b3JJbnB1dCBpcyBbbnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmddIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3BlcmF0b3JJbnB1dCkgJiZcbiAgICBvcGVyYXRvcklucHV0Lmxlbmd0aCA9PT0gMiAmJlxuICAgIG51bWJlclZhbGlkYXRvcihvcGVyYXRvcklucHV0WzBdKSAmJlxuICAgIG51bWJlclZhbGlkYXRvcihvcGVyYXRvcklucHV0WzFdKSAmJlxuICAgIG9wZXJhdG9ySW5wdXRbMF0gPD0gb3BlcmF0b3JJbnB1dFsxXTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyBpZiB0aGUgcGFyYW1ldGVyIGlzIGEgdmFsaWQgZGF0ZSBmb3IgdGhlIG9wZXJhdG9yIChnZXRUaW1lIGZ1bmN0aW9uIGF2YWlsYWJsZSByZXR1cm5pbmcgYSBudW1iZXIpXG4gKiBAcGFyYW0gb3BlcmF0b3JJbnB1dFxuICovXG5leHBvcnQgY29uc3QgaXNWYWxpZERhdGUgPSAob3BlcmF0b3JJbnB1dDogYW55KTogb3BlcmF0b3JJbnB1dCBpcyBEYXRlID0+IHtcbiAgaWYgKCFvcGVyYXRvcklucHV0IHx8IHR5cGVvZiBvcGVyYXRvcklucHV0LmdldFRpbWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgZ2V0VGltZVJlc3VsdCA9IG9wZXJhdG9ySW5wdXQuZ2V0VGltZSgpO1xuICByZXR1cm4gdHlwZW9mIGdldFRpbWVSZXN1bHQgPT09ICdudW1iZXInICYmICFpc05hTihnZXRUaW1lUmVzdWx0KTtcbn07XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgdGhlIHBhcmFtZXRlciBpcyBhIHZhbGlkIGlucHV0IGZvciBEYXRlIGNvbnN0cnVjdG9yIChuZXcgRGF0ZSByZXR1cm5zIGEgdmFsaWQgZGF0ZSlcbiAqIEBwYXJhbSBvcGVyYXRvcklucHV0XG4gKi9cbmV4cG9ydCBjb25zdCBpc1ZhbGlkRGF0ZUlucHV0ID0gKG9wZXJhdG9ySW5wdXQ6IGFueSk6IG9wZXJhdG9ySW5wdXQgaXMgRGF0ZUlucHV0ID0+IHtcbiAgcmV0dXJuIG9wZXJhdG9ySW5wdXQgPT09IDAgfHwgISFvcGVyYXRvcklucHV0ICYmIGlzVmFsaWREYXRlKG5ldyBEYXRlKG9wZXJhdG9ySW5wdXQpKTtcbn07XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgdGhlIHBhcmFtZXRlciBpcyBhIHZhbGlkIGRhdGUgcmFuZ2VcbiAqIEBwYXJhbSBvcGVyYXRvcklucHV0XG4gKi9cbmV4cG9ydCBjb25zdCBpc1ZhbGlkRGF0ZVJhbmdlID0gKG9wZXJhdG9ySW5wdXQ6IGFueSk6IG9wZXJhdG9ySW5wdXQgaXMgW0RhdGVJbnB1dCwgRGF0ZUlucHV0XSA9PiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wZXJhdG9ySW5wdXQpICYmXG4gICAgb3BlcmF0b3JJbnB1dC5sZW5ndGggPT09IDIgJiZcbiAgICBpc1ZhbGlkRGF0ZUlucHV0KG9wZXJhdG9ySW5wdXRbMF0pICYmXG4gICAgaXNWYWxpZERhdGVJbnB1dChvcGVyYXRvcklucHV0WzFdKSAmJlxuICAgIG5ldyBEYXRlKG9wZXJhdG9ySW5wdXRbMF0pIDw9IG5ldyBEYXRlKG9wZXJhdG9ySW5wdXRbMV0pO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGEgdmFsdWUgaXMgYSBzdXBwb3J0ZWQgc2ltcGxlIHR5cGVcbiAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byB2YWxpZGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdXBwb3J0ZWRTaW1wbGVUeXBlcyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFN1cHBvcnRlZFNpbXBsZVR5cGVzIHtcbiAgcmV0dXJuIFsnc3RyaW5nJywgJ2Jvb2xlYW4nLCAnbnVtYmVyJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiB2YWx1ZSkgfHwgdmFsdWUgPT09IG51bGwgfHwgaXNWYWxpZERhdGUodmFsdWUpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgYSB2YWx1ZSBpcyBhIHN0cmluZ1xuICogQHBhcmFtIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xufVxuXG4vKipcbiAqIFBhcnNlIGlucHV0IHRvIHJldHVybiBSZWdFeHBcbiAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSB0byB0ZXN0IHdoZXRoZXIgcGF0dGVybiBleGlzdHMgKGNhbiBiZSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncylcbiAqIEBwYXJhbSBpbnB1dFN0cmluZyByZWdleHAgcGF0dGVyblxuICogQHBhcmFtIGlucHV0UmVnRXhwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlZ0V4cChpbnB1dFJlZ0V4cDogc3RyaW5nKSB7XG4gIGlmIChpbnB1dFJlZ0V4cC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBjb25zdCBmaW5hbFNsYXNoID0gaW5wdXRSZWdFeHAubGFzdEluZGV4T2YoJy8nKTtcbiAgICBjb25zdCByZWdleHBQYXR0ZXJuID0gaW5wdXRSZWdFeHAuc2xpY2UoMSwgZmluYWxTbGFzaCk7XG4gICAgY29uc3QgcmVnZXhwRmxhZ3MgPSBpbnB1dFJlZ0V4cC5zbGljZShmaW5hbFNsYXNoICsgMSk7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXhwUGF0dGVybiwgcmVnZXhwRmxhZ3MpO1xuICB9XG4gIHJldHVybiBuZXcgUmVnRXhwKGlucHV0UmVnRXhwKTtcbn1cbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvb3BlcmF0b3Ivb3BlcmF0b3IuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUEyQixHQUFNLEVBQUUsR0FBTSxFQUFFLFFBQXdCLEVBQUUsYUFBaUQ7SUFDbkosTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RSxJQUFJLGtCQUFxRCxDQUFDO0lBQzFELElBQUksYUFBYSxJQUFJLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3ZELGtCQUFrQixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDekUsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUUsQ0FBQztZQUNqQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLFFBQVEsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLENBQUM7WUFDdEYsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQTJCLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFNB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QUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFtQjtJQUM3QyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGVJbnB1dCwgT3BlcmF0b3IsIFN1cHBvcnRlZFNpbXBsZVR5cGVzfSBmcm9tICcuL29wZXJhdG9yLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7RmFjdHN9IGZyb20gJy4uL2ZhY3QnO1xuXG4vKipcbiAqIEV4ZWN1dGUgT3BlcmF0b3JcbiAqIEBwYXJhbSBsaHMgTGVmdCBoYW5kIHNpZGVcbiAqIEBwYXJhbSByaHMgUmlnaHQgaGFuZCBzaWRlXG4gKiBAcGFyYW0gb3BlcmF0b3IgT3BlcmF0b3IgdG8gY29tcGFyZSB2YWx1ZXNcbiAqIEBwYXJhbSBvcGVyYXRvckZhY3RzIEZhY3RzIHRoYXQgb3BlcmF0b3IgY2FuIGRlcGVuZCBvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZU9wZXJhdG9yPEwgPSB1bmtub3duLCBSID0gdW5rbm93bj4obGhzOiBMLCByaHM6IFIsIG9wZXJhdG9yOiBPcGVyYXRvcjxMLCBSPiwgb3BlcmF0b3JGYWN0cz86IFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPikge1xuICBjb25zdCB2YWxpZExocyA9ICghb3BlcmF0b3IudmFsaWRhdGVMaHMgfHwgb3BlcmF0b3IudmFsaWRhdGVMaHMobGhzKSk7XG4gIGNvbnN0IHZhbGlkUmhzID0gKCFvcGVyYXRvci52YWxpZGF0ZVJocyB8fCBvcGVyYXRvci52YWxpZGF0ZVJocyhyaHMpKTtcbiAgbGV0IG9wZXJhdG9yRmFjdFZhbHVlczogUmVjb3JkPHN0cmluZywgRmFjdHM+IHwgdW5kZWZpbmVkO1xuICBpZiAob3BlcmF0b3JGYWN0cyAmJiBvcGVyYXRvci5mYWN0SW1wbGljaXREZXBlbmRlbmNpZXMpIHtcbiAgICBvcGVyYXRvckZhY3RWYWx1ZXMgPSBvcGVyYXRvci5mYWN0SW1wbGljaXREZXBlbmRlbmNpZXMucmVkdWNlKChhY2MsIGRlcCkgPT4ge1xuICAgICAgaWYgKG9wZXJhdG9yRmFjdHNbZGVwXSkge1xuICAgICAgICBhY2NbZGVwXSA9IG9wZXJhdG9yRmFjdHNbZGVwXSE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmYWN0IFwiJHtkZXB9XCIgcmVxdWVzdGVkIGJ5ICR7b3BlcmF0b3IubmFtZX0gY2Fubm90IGJlIGZvdW5kLmApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4pO1xuICB9XG4gIGlmICghdmFsaWRMaHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGVmdCBvcGVyYW5kOiAke0pTT04uc3RyaW5naWZ5KGxocyl9YCk7XG4gIH1cbiAgaWYgKCF2YWxpZFJocykge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByaWdodCBvcGVyYW5kOiAke0pTT04uc3RyaW5naWZ5KHJocyl9YCk7XG4gIH1cbiAgY29uc3Qgb2JzID0gb3BlcmF0b3IuZXZhbHVhdG9yKGxocywgcmhzLCBvcGVyYXRvckZhY3RWYWx1ZXMpO1xuICByZXR1cm4gb2JzO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGEgbnVtYmVyIG9wZXJhbmRcbiAqIEBwYXJhbSBvcGVyYW5kIHZhbHVlIG9mIG9uZSBvZiB0aGUgb3BlcmFuZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclZhbGlkYXRvcihvcGVyYW5kOiB1bmtub3duKTogb3BlcmFuZCBpcyBudW1iZXIgfCBzdHJpbmcge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXRlbXBsYXRlLWV4cHJlc3Npb25zXG4gIHJldHVybiBvcGVyYW5kICE9PSAnJyAmJiAhQXJyYXkuaXNBcnJheShvcGVyYW5kKSAmJiAhaXNOYU4oK2Ake29wZXJhbmR9YCk7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYW4gb3BlcmFuZCBpcyBhIHJhbmdlIG9mIG51bWJlcnNcbiAqIEBwYXJhbSBvcGVyYXRvcklucHV0IHZhbHVlIG9mIG9uZSBvZiB0aGUgb3BlcmFuZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmFuZ2VOdW1iZXIob3BlcmF0b3JJbnB1dDogdW5rbm93bik6IG9wZXJhdG9ySW5wdXQgaXMgW251bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nXSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wZXJhdG9ySW5wdXQpICYmXG4gICAgb3BlcmF0b3JJbnB1dC5sZW5ndGggPT09IDIgJiZcbiAgICBudW1iZXJWYWxpZGF0b3Iob3BlcmF0b3JJbnB1dFswXSkgJiZcbiAgICBudW1iZXJWYWxpZGF0b3Iob3BlcmF0b3JJbnB1dFsxXSkgJiZcbiAgICBvcGVyYXRvcklucHV0WzBdIDw9IG9wZXJhdG9ySW5wdXRbMV07XG59XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgdGhlIHBhcmFtZXRlciBpcyBhIHZhbGlkIGRhdGUgZm9yIHRoZSBvcGVyYXRvciAoZ2V0VGltZSBmdW5jdGlvbiBhdmFpbGFibGUgcmV0dXJuaW5nIGEgbnVtYmVyKVxuICogQHBhcmFtIG9wZXJhdG9ySW5wdXRcbiAqL1xuZXhwb3J0IGNvbnN0IGlzVmFsaWREYXRlID0gKG9wZXJhdG9ySW5wdXQ6IGFueSk6IG9wZXJhdG9ySW5wdXQgaXMgRGF0ZSA9PiB7XG4gIGlmICghb3BlcmF0b3JJbnB1dCB8fCB0eXBlb2Ygb3BlcmF0b3JJbnB1dC5nZXRUaW1lICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGdldFRpbWVSZXN1bHQgPSBvcGVyYXRvcklucHV0LmdldFRpbWUoKTtcbiAgcmV0dXJuIHR5cGVvZiBnZXRUaW1lUmVzdWx0ID09PSAnbnVtYmVyJyAmJiAhaXNOYU4oZ2V0VGltZVJlc3VsdCk7XG59O1xuXG4vKipcbiAqIFZlcmlmaWVzIGlmIHRoZSBwYXJhbWV0ZXIgaXMgYSB2YWxpZCBpbnB1dCBmb3IgRGF0ZSBjb25zdHJ1Y3RvciAobmV3IERhdGUgcmV0dXJucyBhIHZhbGlkIGRhdGUpXG4gKiBAcGFyYW0gb3BlcmF0b3JJbnB1dFxuICovXG5leHBvcnQgY29uc3QgaXNWYWxpZERhdGVJbnB1dCA9IChvcGVyYXRvcklucHV0OiBhbnkpOiBvcGVyYXRvcklucHV0IGlzIERhdGVJbnB1dCA9PiB7XG4gIHJldHVybiBvcGVyYXRvcklucHV0ID09PSAwIHx8ICEhb3BlcmF0b3JJbnB1dCAmJiBpc1ZhbGlkRGF0ZShuZXcgRGF0ZShvcGVyYXRvcklucHV0KSk7XG59O1xuXG4vKipcbiAqIFZlcmlmaWVzIGlmIHRoZSBwYXJhbWV0ZXIgaXMgYSB2YWxpZCBkYXRlIHJhbmdlXG4gKiBAcGFyYW0gb3BlcmF0b3JJbnB1dFxuICovXG5leHBvcnQgY29uc3QgaXNWYWxpZERhdGVSYW5nZSA9IChvcGVyYXRvcklucHV0OiBhbnkpOiBvcGVyYXRvcklucHV0IGlzIFtEYXRlSW5wdXQsIERhdGVJbnB1dF0gPT4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvcGVyYXRvcklucHV0KSAmJlxuICAgIG9wZXJhdG9ySW5wdXQubGVuZ3RoID09PSAyICYmXG4gICAgaXNWYWxpZERhdGVJbnB1dChvcGVyYXRvcklucHV0WzBdKSAmJlxuICAgIGlzVmFsaWREYXRlSW5wdXQob3BlcmF0b3JJbnB1dFsxXSkgJiZcbiAgICBuZXcgRGF0ZShvcGVyYXRvcklucHV0WzBdKSA8PSBuZXcgRGF0ZShvcGVyYXRvcklucHV0WzFdKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgdGhhdCBhIHZhbHVlIGlzIGEgc3VwcG9ydGVkIHNpbXBsZSB0eXBlXG4gKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gdmFsaWRhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VwcG9ydGVkU2ltcGxlVHlwZXModmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTdXBwb3J0ZWRTaW1wbGVUeXBlcyB7XG4gIHJldHVybiBbJ3N0cmluZycsICdib29sZWFuJywgJ251bWJlcicsICd1bmRlZmluZWQnXS5pbmNsdWRlcyh0eXBlb2YgdmFsdWUpIHx8IHZhbHVlID09PSBudWxsIHx8IGlzVmFsaWREYXRlKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGEgdmFsdWUgaXMgYSBzdHJpbmdcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcbn1cblxuLyoqXG4gKiBQYXJzZSBpbnB1dCB0byByZXR1cm4gUmVnRXhwXG4gKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gdGVzdCB3aGV0aGVyIHBhdHRlcm4gZXhpc3RzIChjYW4gYmUgc3RyaW5nIG9yIGFycmF5IG9mIHN0cmluZ3MpXG4gKiBAcGFyYW0gaW5wdXRTdHJpbmcgcmVnZXhwIHBhdHRlcm5cbiAqIEBwYXJhbSBpbnB1dFJlZ0V4cFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWdFeHAoaW5wdXRSZWdFeHA6IHN0cmluZykge1xuICBpZiAoaW5wdXRSZWdFeHAuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgY29uc3QgZmluYWxTbGFzaCA9IGlucHV0UmVnRXhwLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgY29uc3QgcmVnZXhwUGF0dGVybiA9IGlucHV0UmVnRXhwLnNsaWNlKDEsIGZpbmFsU2xhc2gpO1xuICAgIGNvbnN0IHJlZ2V4cEZsYWdzID0gaW5wdXRSZWdFeHAuc2xpY2UoZmluYWxTbGFzaCArIDEpO1xuICAgIHJldHVybiBuZXcgUmVnRXhwKHJlZ2V4cFBhdHRlcm4sIHJlZ2V4cEZsYWdzKTtcbiAgfVxuICByZXR1cm4gbmV3IFJlZ0V4cChpbnB1dFJlZ0V4cCk7XG59XG4iXX0=
@@ -116,4 +116,4 @@ export const dateNotEquals = {
116
116
  export const dateBasedOperators = [
117
117
  inRangeDate, dateInNextMinutes, dateNotInNextMinutes, dateAfter, dateBefore, dateEquals, dateNotEquals
118
118
  ];
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1iYXNlZC5vcGVyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZW5naW5lL29wZXJhdG9yL29wZXJhdG9ycy9kYXRlLWJhc2VkLm9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHeEY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFzRDtJQUM1RSxJQUFJLEVBQUUsYUFBYTtJQUNuQixTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM5QixNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDcEUsQ0FBQztJQUNELFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsV0FBVyxFQUFFLGdCQUFnQjtDQUM5QixDQUFDO0FBR0Y7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUErQztJQUMzRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLFNBQVMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsRUFBRTtRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1NBQ2hGO1FBQ0QsSUFBSSxPQUFPLGtCQUFrQixDQUFDLGNBQWMsS0FBSyxRQUFRLEVBQUU7WUFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxrQkFB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LEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsYUFBYTtDQUN2RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc1ZhbGlkRGF0ZUlucHV0LCBpc1ZhbGlkRGF0ZVJhbmdlLCBudW1iZXJWYWxpZGF0b3J9IGZyb20gJy4uL29wZXJhdG9yLmhlbHBlcnMnO1xuaW1wb3J0IHtEYXRlSW5wdXQsIE9wZXJhdG9yfSBmcm9tICcuLi9vcGVyYXRvci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIENoZWNrIGlmIGEgZGF0ZSB2YXJpYWJsZSBpcyBpbiBhIHNwZWNpZmllZCBkYXRlIHJhbmdlXG4gKiBAdGl0bGUgaXMgYmV0d2VlblxuICovXG5leHBvcnQgY29uc3QgaW5SYW5nZURhdGU6IE9wZXJhdG9yPERhdGUsIFtEYXRlSW5wdXQsIERhdGVJbnB1dF0sIERhdGVJbnB1dD4gPSB7XG4gIG5hbWU6ICdpblJhbmdlRGF0ZScsXG4gIGV2YWx1YXRvcjogKGRhdGUsIFtmcm9tLCB0b10pID0+IHtcbiAgICBjb25zdCBkYXRlT2JqZWN0ID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGZyb20pIDw9IGRhdGVPYmplY3QgJiYgbmV3IERhdGUodG8pID49IGRhdGVPYmplY3Q7XG4gIH0sXG4gIHZhbGlkYXRlTGhzOiBpc1ZhbGlkRGF0ZUlucHV0LFxuICB2YWxpZGF0ZVJoczogaXNWYWxpZERhdGVSYW5nZVxufTtcblxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgaXMgaW4gdGhlIG5leHQgeCBtaW51dGVzXG4gKiBAdGl0bGUgaXMgaW4gbmV4dCBtaW51dGVzXG4gKiBAcmV0dXJucyBmYWxzZSBmb3IgZGF0ZXMgYmVmb3JlIGBub3dgIGFuZCBmb3IgZGF0ZXMgYWZ0ZXIgYG5vd2AgKyBgbmV4dE1pbnV0ZXNgLCB0cnVlIGZvciBkYXRlcyBiZXR3ZWVuIGBub3dgIGFuZCBgbm93YCArIGBuZXh0TWludXRlc2BcbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGVJbk5leHRNaW51dGVzOiBPcGVyYXRvcjxEYXRlLCBzdHJpbmcgfCBudW1iZXIsIERhdGVJbnB1dD4gPSB7XG4gIG5hbWU6ICdkYXRlSW5OZXh0TWludXRlcycsXG4gIGV2YWx1YXRvcjogKGxlZnREYXRlSW5wdXQsIG1pbnV0ZXMsIG9wZXJhdG9yRmFjdFZhbHVlcykgPT4ge1xuICAgIGlmICghb3BlcmF0b3JGYWN0VmFsdWVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG9wZXJhdG9yRmFjdFZhbHVlcy4gVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50IHRpbWUuJyk7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3BlcmF0b3JGYWN0VmFsdWVzLm8zckN1cnJlbnRUaW1lICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvM3JDdXJyZW50VGltZSB2YWx1ZSBpcyBub3QgYSBudW1iZXInKTtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudFRpbWVWYWx1ZSA9IG9wZXJhdG9yRmFjdFZhbHVlcy5vM3JDdXJyZW50VGltZTtcbiAgICByZXR1cm4gaW5SYW5nZURhdGUuZXZhbHVhdG9yKGxlZnREYXRlSW5wdXQsIFtjdXJyZW50VGltZVZhbHVlLCBjdXJyZW50VGltZVZhbHVlICsgK21pbnV0ZXMgKiA2MDAwMF0pO1xuICB9LFxuICBmYWN0SW1wbGljaXREZXBlbmRlbmNpZXM6IFsnbzNyQ3VycmVudFRpbWUnXSxcbiAgdmFsaWRhdGVMaHM6IGlzVmFsaWREYXRlSW5wdXQsXG4gIHZhbGlkYXRlUmhzOiBudW1iZXJWYWxpZGF0b3Jcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBpcyBub3QgaW4gdGhlIG5leHQgeCBtaW51dGVzXG4gKiBAdGl0bGUgaXMgbm90IGluIG5leHQgbWludXRlc1xuICogQHJldHVybnMgZmFsc2UgZm9yIGRhdGVzIGJlZm9yZSBgbm93YCBhbmQgZm9yIGRhdGVzIGJldHdlZW4gYG5vd2AgYW5kIGBub3dgICsgYG5leHRNaW51dGVzYCwgdHJ1ZSBmb3IgZGF0ZXMgYWZ0ZXIgYG5vd2AgKyBgbmV4dE1pbnV0ZXNgXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRlTm90SW5OZXh0TWludXRlczogT3BlcmF0b3I8RGF0ZSwgc3RyaW5nIHwgbnVtYmVyLCBEYXRlSW5wdXQ+ID0ge1xuICBuYW1lOiAnZGF0ZU5vdEluTmV4dE1pbnV0ZXMnLFxuICBldmFsdWF0b3I6IChsZWZ0RGF0ZUlucHV0LCBtaW51dGVzLCBvcGVyYXRvckZhY3RWYWx1ZXMpID0+IHtcbiAgICBpZiAoIW9wZXJhdG9yRmFjdFZhbHVlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBvcGVyYXRvckZhY3RWYWx1ZXMuIFVuYWJsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudCB0aW1lLicpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wZXJhdG9yRmFjdFZhbHVlcy5vM3JDdXJyZW50VGltZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbzNyQ3VycmVudFRpbWUgdmFsdWUgaXMgbm90IGEgbnVtYmVyJyk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRUaW1lVmFsdWUgPSBvcGVyYXRvckZhY3RWYWx1ZXMubzNyQ3VycmVudFRpbWU7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoY3VycmVudFRpbWVWYWx1ZSk7XG4gICAgY29uc3QgbGVmdERhdGUgPSBuZXcgRGF0ZShsZWZ0RGF0ZUlucHV0KTtcbiAgICBjb25zdCB0YXJnZXREYXRlID0gbmV3IERhdGUobmV3IERhdGUoY3VycmVudFRpbWVWYWx1ZSkuc2V0TWludXRlcyhub3cuZ2V0TWludXRlcygpICsgK21pbnV0ZXMpKTtcbiAgICByZXR1cm4gbGVmdERhdGUgPj0gbm93ICYmIGxlZnREYXRlID4gdGFyZ2V0RGF0ZTtcbiAgfSxcbiAgZmFjdEltcGxpY2l0RGVwZW5kZW5jaWVzOiBbJ28zckN1cnJlbnRUaW1lJ10sXG4gIHZhbGlkYXRlTGhzOiBpc1ZhbGlkRGF0ZUlucHV0LFxuICB2YWxpZGF0ZVJoczogbnVtYmVyVmFsaWRhdG9yXG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGEgZGF0ZSB2YXJpYWJsZSBpcyBwcmlvciB0aGFuIGEgc3BlY2lmaWVkIGRhdGVcbiAqIEB0aXRsZSBpcyBiZWZvcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGVCZWZvcmU6IE9wZXJhdG9yPERhdGUsIERhdGVJbnB1dCwgRGF0ZUlucHV0PiA9IHtcbiAgbmFtZTogJ2RhdGVCZWZvcmUnLFxuICBldmFsdWF0b3I6IChsZWZ0RGF0ZSwgcmlnaHREYXRlKSA9PiB7XG4gICAgY29uc3QgZmlyc3REYXRlVGltZSA9IG5ldyBEYXRlKGxlZnREYXRlKS5zZXRIb3VycygwLDAsMCwwKTtcbiAgICBjb25zdCBzZWNvbmREYXRlVGltZSA9IG5ldyBEYXRlKHJpZ2h0RGF0ZSkuc2V0SG91cnMoMCwwLDAsMCk7XG4gICAgcmV0dXJuIGZpcnN0RGF0ZVRpbWUgPCBzZWNvbmREYXRlVGltZTtcbiAgfSxcbiAgdmFsaWRhdGVMaHM6IGlzVmFsaWREYXRlSW5wdXQsXG4gIHZhbGlkYXRlUmhzOiBpc1ZhbGlkRGF0ZUlucHV0XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGEgZGF0ZSB2YXJpYWJsZSBpcyBwb3N0ZXJpb3IgdGhhbiBhIHNwZWNpZmllZCBkYXRlXG4gKiBAdGl0bGUgaXMgYWZ0ZXJcbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGVBZnRlcjogT3BlcmF0b3I8RGF0ZSwgRGF0ZUlucHV0LCBEYXRlSW5wdXQ+ID0ge1xuICBuYW1lOiAnZGF0ZUFmdGVyJyxcbiAgZXZhbHVhdG9yOiAobGVmdERhdGUsIHJpZ2h0RGF0ZSkgPT4ge1xuICAgIGNvbnN0IGZpcnN0RGF0ZVRpbWUgPSBuZXcgRGF0ZShsZWZ0RGF0ZSkuc2V0SG91cnMoMCwwLDAsMCk7XG4gICAgY29uc3Qgc2Vjb25kRGF0ZVRpbWUgPSBuZXcgRGF0ZShyaWdodERhdGUpLnNldEhvdXJzKDAsMCwwLDApO1xuICAgIHJldHVybiBmaXJzdERhdGVUaW1lID4gc2Vjb25kRGF0ZVRpbWU7XG4gIH0sXG4gIHZhbGlkYXRlTGhzOiBpc1ZhbGlkRGF0ZUlucHV0LFxuICB2YWxpZGF0ZVJoczogaXNWYWxpZERhdGVJbnB1dFxufTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIGRhdGUgdmFyaWFibGUgaXMgdGhlIHNhbWUgYXMgYSBzcGVjaWZpZWQgZGF0ZVxuICogQHRpdGxlIGlzIGVxdWFsIHRvXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRlRXF1YWxzOiBPcGVyYXRvcjxEYXRlLCBEYXRlSW5wdXQsIERhdGVJbnB1dD4gPSB7XG4gIG5hbWU6ICdkYXRlRXF1YWxzJyxcbiAgZXZhbHVhdG9yOiAobGVmdERhdGUsIHJpZ2h0RGF0ZSkgPT4ge1xuICAgIGNvbnN0IGZpcnN0RGF0ZUlnbm9yaW5nSG91cnMgPSBuZXcgRGF0ZShsZWZ0RGF0ZSkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgY29uc3Qgc2Vjb25kRGF0ZUlnbm9yaW5nSG91cnMgPSBuZXcgRGF0ZShyaWdodERhdGUpLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBmaXJzdERhdGVJZ25vcmluZ0hvdXJzID09PSBzZWNvbmREYXRlSWdub3JpbmdIb3VycztcbiAgfSxcbiAgdmFsaWRhdGVMaHM6IGlzVmFsaWREYXRlSW5wdXQsXG4gIHZhbGlkYXRlUmhzOiBpc1ZhbGlkRGF0ZUlucHV0XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGEgZGF0ZSB2YXJpYWJsZSBpcyBkaWZmZXJlbnQgZnJvbSBhIHNwZWNpZmllZCBkYXRlXG4gKiBAdGl0bGUgaXMgbm90IGVxdWFsXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRlTm90RXF1YWxzOiBPcGVyYXRvcjxEYXRlLCBEYXRlSW5wdXQsIERhdGVJbnB1dD4gPSB7XG4gIG5hbWU6ICdkYXRlTm90RXF1YWxzJyxcbiAgZXZhbHVhdG9yOiAobGVmdERhdGUsIHJpZ2h0RGF0ZSkgPT4ge1xuICAgIGNvbnN0IGZpcnN0RGF0ZUlnbm9yaW5nSG91cnMgPSBuZXcgRGF0ZShsZWZ0RGF0ZSkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgY29uc3Qgc2Vjb25kRGF0ZUlnbm9yaW5nSG91cnMgPSBuZXcgRGF0ZShyaWdodERhdGUpLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHJldHVybiBmaXJzdERhdGVJZ25vcmluZ0hvdXJzICE9PSBzZWNvbmREYXRlSWdub3JpbmdIb3VycztcbiAgfSxcbiAgdmFsaWRhdGVMaHM6IGlzVmFsaWREYXRlSW5wdXQsXG4gIHZhbGlkYXRlUmhzOiBpc1ZhbGlkRGF0ZUlucHV0XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZUJhc2VkT3BlcmF0b3JzID0gW1xuICBpblJhbmdlRGF0ZSwgZGF0ZUluTmV4dE1pbnV0ZXMsIGRhdGVOb3RJbk5leHRNaW51dGVzLCBkYXRlQWZ0ZXIsIGRhdGVCZWZvcmUsIGRhdGVFcXVhbHMsIGRhdGVOb3RFcXVhbHNcbl07XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1iYXNlZC5vcGVyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZW5naW5lL29wZXJhdG9yL29wZXJhdG9ycy9kYXRlLWJhc2VkLm9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHeEY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFzRDtJQUM1RSxJQUFJLEVBQUUsYUFBYTtJQUNuQixTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM5QixNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDcEUsQ0FBQztJQUNELFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsV0FBVyxFQUFFLGdCQUFnQjtDQUM5QixDQUFDO0FBR0Y7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUErQztJQUMzRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLFNBQVMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsRUFBRTtRQUN4RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELElBQUksT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxN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LE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWE7Q0FDdkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNWYWxpZERhdGVJbnB1dCwgaXNWYWxpZERhdGVSYW5nZSwgbnVtYmVyVmFsaWRhdG9yfSBmcm9tICcuLi9vcGVyYXRvci5oZWxwZXJzJztcbmltcG9ydCB7RGF0ZUlucHV0LCBPcGVyYXRvcn0gZnJvbSAnLi4vb3BlcmF0b3IuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDaGVjayBpZiBhIGRhdGUgdmFyaWFibGUgaXMgaW4gYSBzcGVjaWZpZWQgZGF0ZSByYW5nZVxuICogQHRpdGxlIGlzIGJldHdlZW5cbiAqL1xuZXhwb3J0IGNvbnN0IGluUmFuZ2VEYXRlOiBPcGVyYXRvcjxEYXRlLCBbRGF0ZUlucHV0LCBEYXRlSW5wdXRdLCBEYXRlSW5wdXQ+ID0ge1xuICBuYW1lOiAnaW5SYW5nZURhdGUnLFxuICBldmFsdWF0b3I6IChkYXRlLCBbZnJvbSwgdG9dKSA9PiB7XG4gICAgY29uc3QgZGF0ZU9iamVjdCA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIHJldHVybiBuZXcgRGF0ZShmcm9tKSA8PSBkYXRlT2JqZWN0ICYmIG5ldyBEYXRlKHRvKSA+PSBkYXRlT2JqZWN0O1xuICB9LFxuICB2YWxpZGF0ZUxoczogaXNWYWxpZERhdGVJbnB1dCxcbiAgdmFsaWRhdGVSaHM6IGlzVmFsaWREYXRlUmFuZ2Vcbn07XG5cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGlzIGluIHRoZSBuZXh0IHggbWludXRlc1xuICogQHRpdGxlIGlzIGluIG5leHQgbWludXRlc1xuICogQHJldHVybnMgZmFsc2UgZm9yIGRhdGVzIGJlZm9yZSBgbm93YCBhbmQgZm9yIGRhdGVzIGFmdGVyIGBub3dgICsgYG5leHRNaW51dGVzYCwgdHJ1ZSBmb3IgZGF0ZXMgYmV0d2VlbiBgbm93YCBhbmQgYG5vd2AgKyBgbmV4dE1pbnV0ZXNgXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRlSW5OZXh0TWludXRlczogT3BlcmF0b3I8RGF0ZSwgc3RyaW5nIHwgbnVtYmVyLCBEYXRlSW5wdXQ+ID0ge1xuICBuYW1lOiAnZGF0ZUluTmV4dE1pbnV0ZXMnLFxuICBldmFsdWF0b3I6IChsZWZ0RGF0ZUlucHV0LCBtaW51dGVzLCBvcGVyYXRvckZhY3RWYWx1ZXMpID0+IHtcbiAgICBpZiAoIW9wZXJhdG9yRmFjdFZhbHVlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBvcGVyYXRvckZhY3RWYWx1ZXMuIFVuYWJsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudCB0aW1lLicpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wZXJhdG9yRmFjdFZhbHVlcy5vM3JDdXJyZW50VGltZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbzNyQ3VycmVudFRpbWUgdmFsdWUgaXMgbm90IGEgbnVtYmVyJyk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRUaW1lVmFsdWUgPSBvcGVyYXRvckZhY3RWYWx1ZXMubzNyQ3VycmVudFRpbWU7XG4gICAgcmV0dXJuIGluUmFuZ2VEYXRlLmV2YWx1YXRvcihsZWZ0RGF0ZUlucHV0LCBbY3VycmVudFRpbWVWYWx1ZSwgY3VycmVudFRpbWVWYWx1ZSArICttaW51dGVzICogNjAwMDBdKTtcbiAgfSxcbiAgZmFjdEltcGxpY2l0RGVwZW5kZW5jaWVzOiBbJ28zckN1cnJlbnRUaW1lJ10sXG4gIHZhbGlkYXRlTGhzOiBpc1ZhbGlkRGF0ZUlucHV0LFxuICB2YWxpZGF0ZVJoczogbnVtYmVyVmFsaWRhdG9yXG59O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgaXMgbm90IGluIHRoZSBuZXh0IHggbWludXRlc1xuICogQHRpdGxlIGlzIG5vdCBpbiBuZXh0IG1pbnV0ZXNcbiAqIEByZXR1cm5zIGZhbHNlIGZvciBkYXRlcyBiZWZvcmUgYG5vd2AgYW5kIGZvciBkYXRlcyBiZXR3ZWVuIGBub3dgIGFuZCBgbm93YCArIGBuZXh0TWludXRlc2AsIHRydWUgZm9yIGRhdGVzIGFmdGVyIGBub3dgICsgYG5leHRNaW51dGVzYFxuICovXG5leHBvcnQgY29uc3QgZGF0ZU5vdEluTmV4dE1pbnV0ZXM6IE9wZXJhdG9yPERhdGUsIHN0cmluZyB8IG51bWJlciwgRGF0ZUlucHV0PiA9IHtcbiAgbmFtZTogJ2RhdGVOb3RJbk5leHRNaW51dGVzJyxcbiAgZXZhbHVhdG9yOiAobGVmdERhdGVJbnB1dCwgbWludXRlcywgb3BlcmF0b3JGYWN0VmFsdWVzKSA9PiB7XG4gICAgaWYgKCFvcGVyYXRvckZhY3RWYWx1ZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gb3BlcmF0b3JGYWN0VmFsdWVzLiBVbmFibGUgdG8gcmV0cmlldmUgdGhlIGN1cnJlbnQgdGltZS4nKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcGVyYXRvckZhY3RWYWx1ZXMubzNyQ3VycmVudFRpbWUgIT09ICdudW1iZXInKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ28zckN1cnJlbnRUaW1lIHZhbHVlIGlzIG5vdCBhIG51bWJlcicpO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VGltZVZhbHVlID0gb3BlcmF0b3JGYWN0VmFsdWVzLm8zckN1cnJlbnRUaW1lO1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKGN1cnJlbnRUaW1lVmFsdWUpO1xuICAgIGNvbnN0IGxlZnREYXRlID0gbmV3IERhdGUobGVmdERhdGVJbnB1dCk7XG4gICAgY29uc3QgdGFyZ2V0RGF0ZSA9IG5ldyBEYXRlKG5ldyBEYXRlKGN1cnJlbnRUaW1lVmFsdWUpLnNldE1pbnV0ZXMobm93LmdldE1pbnV0ZXMoKSArICttaW51dGVzKSk7XG4gICAgcmV0dXJuIGxlZnREYXRlID49IG5vdyAmJiBsZWZ0RGF0ZSA+IHRhcmdldERhdGU7XG4gIH0sXG4gIGZhY3RJbXBsaWNpdERlcGVuZGVuY2llczogWydvM3JDdXJyZW50VGltZSddLFxuICB2YWxpZGF0ZUxoczogaXNWYWxpZERhdGVJbnB1dCxcbiAgdmFsaWRhdGVSaHM6IG51bWJlclZhbGlkYXRvclxufTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIGRhdGUgdmFyaWFibGUgaXMgcHJpb3IgdGhhbiBhIHNwZWNpZmllZCBkYXRlXG4gKiBAdGl0bGUgaXMgYmVmb3JlXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRlQmVmb3JlOiBPcGVyYXRvcjxEYXRlLCBEYXRlSW5wdXQsIERhdGVJbnB1dD4gPSB7XG4gIG5hbWU6ICdkYXRlQmVmb3JlJyxcbiAgZXZhbHVhdG9yOiAobGVmdERhdGUsIHJpZ2h0RGF0ZSkgPT4ge1xuICAgIGNvbnN0IGZpcnN0RGF0ZVRpbWUgPSBuZXcgRGF0ZShsZWZ0RGF0ZSkuc2V0SG91cnMoMCwwLDAsMCk7XG4gICAgY29uc3Qgc2Vjb25kRGF0ZVRpbWUgPSBuZXcgRGF0ZShyaWdodERhdGUpLnNldEhvdXJzKDAsMCwwLDApO1xuICAgIHJldHVybiBmaXJzdERhdGVUaW1lIDwgc2Vjb25kRGF0ZVRpbWU7XG4gIH0sXG4gIHZhbGlkYXRlTGhzOiBpc1ZhbGlkRGF0ZUlucHV0LFxuICB2YWxpZGF0ZVJoczogaXNWYWxpZERhdGVJbnB1dFxufTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIGRhdGUgdmFyaWFibGUgaXMgcG9zdGVyaW9yIHRoYW4gYSBzcGVjaWZpZWQgZGF0ZVxuICogQHRpdGxlIGlzIGFmdGVyXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRlQWZ0ZXI6IE9wZXJhdG9yPERhdGUsIERhdGVJbnB1dCwgRGF0ZUlucHV0PiA9IHtcbiAgbmFtZTogJ2RhdGVBZnRlcicsXG4gIGV2YWx1YXRvcjogKGxlZnREYXRlLCByaWdodERhdGUpID0+IHtcbiAgICBjb25zdCBmaXJzdERhdGVUaW1lID0gbmV3IERhdGUobGVmdERhdGUpLnNldEhvdXJzKDAsMCwwLDApO1xuICAgIGNvbnN0IHNlY29uZERhdGVUaW1lID0gbmV3IERhdGUocmlnaHREYXRlKS5zZXRIb3VycygwLDAsMCwwKTtcbiAgICByZXR1cm4gZmlyc3REYXRlVGltZSA+IHNlY29uZERhdGVUaW1lO1xuICB9LFxuICB2YWxpZGF0ZUxoczogaXNWYWxpZERhdGVJbnB1dCxcbiAgdmFsaWRhdGVSaHM6IGlzVmFsaWREYXRlSW5wdXRcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBkYXRlIHZhcmlhYmxlIGlzIHRoZSBzYW1lIGFzIGEgc3BlY2lmaWVkIGRhdGVcbiAqIEB0aXRsZSBpcyBlcXVhbCB0b1xuICovXG5leHBvcnQgY29uc3QgZGF0ZUVxdWFsczogT3BlcmF0b3I8RGF0ZSwgRGF0ZUlucHV0LCBEYXRlSW5wdXQ+ID0ge1xuICBuYW1lOiAnZGF0ZUVxdWFscycsXG4gIGV2YWx1YXRvcjogKGxlZnREYXRlLCByaWdodERhdGUpID0+IHtcbiAgICBjb25zdCBmaXJzdERhdGVJZ25vcmluZ0hvdXJzID0gbmV3IERhdGUobGVmdERhdGUpLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIGNvbnN0IHNlY29uZERhdGVJZ25vcmluZ0hvdXJzID0gbmV3IERhdGUocmlnaHREYXRlKS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZmlyc3REYXRlSWdub3JpbmdIb3VycyA9PT0gc2Vjb25kRGF0ZUlnbm9yaW5nSG91cnM7XG4gIH0sXG4gIHZhbGlkYXRlTGhzOiBpc1ZhbGlkRGF0ZUlucHV0LFxuICB2YWxpZGF0ZVJoczogaXNWYWxpZERhdGVJbnB1dFxufTtcblxuLyoqXG4gKiBDaGVjayBpZiBhIGRhdGUgdmFyaWFibGUgaXMgZGlmZmVyZW50IGZyb20gYSBzcGVjaWZpZWQgZGF0ZVxuICogQHRpdGxlIGlzIG5vdCBlcXVhbFxuICovXG5leHBvcnQgY29uc3QgZGF0ZU5vdEVxdWFsczogT3BlcmF0b3I8RGF0ZSwgRGF0ZUlucHV0LCBEYXRlSW5wdXQ+ID0ge1xuICBuYW1lOiAnZGF0ZU5vdEVxdWFscycsXG4gIGV2YWx1YXRvcjogKGxlZnREYXRlLCByaWdodERhdGUpID0+IHtcbiAgICBjb25zdCBmaXJzdERhdGVJZ25vcmluZ0hvdXJzID0gbmV3IERhdGUobGVmdERhdGUpLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIGNvbnN0IHNlY29uZERhdGVJZ25vcmluZ0hvdXJzID0gbmV3IERhdGUocmlnaHREYXRlKS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gZmlyc3REYXRlSWdub3JpbmdIb3VycyAhPT0gc2Vjb25kRGF0ZUlnbm9yaW5nSG91cnM7XG4gIH0sXG4gIHZhbGlkYXRlTGhzOiBpc1ZhbGlkRGF0ZUlucHV0LFxuICB2YWxpZGF0ZVJoczogaXNWYWxpZERhdGVJbnB1dFxufTtcblxuZXhwb3J0IGNvbnN0IGRhdGVCYXNlZE9wZXJhdG9ycyA9IFtcbiAgaW5SYW5nZURhdGUsIGRhdGVJbk5leHRNaW51dGVzLCBkYXRlTm90SW5OZXh0TWludXRlcywgZGF0ZUFmdGVyLCBkYXRlQmVmb3JlLCBkYXRlRXF1YWxzLCBkYXRlTm90RXF1YWxzXG5dO1xuIl19
@@ -244,15 +244,9 @@ export class RulesetExecutor {
244
244
  id: this.ruleset.id,
245
245
  validityRange: this.ruleset.validityRange,
246
246
  linkedComponent: this.ruleset.linkedComponent,
247
+ linkedComponents: this.ruleset.linkedComponents,
247
248
  rulesResultsSubject$: result$
248
249
  };
249
250
  }
250
- /**
251
- * Plug ruleset to fact streams and trigger a first evaluation
252
- * @deprecated This function is not made to be accessible from Outside of the class, will be removed in v10
253
- */
254
- prepareRuleset() {
255
- return this.plugRuleset();
256
- }
257
251
  }
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmdpbmUvcnVsZXNldC1leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUk1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3JCLE1BQU0scUJBQXFCLENBQUM7QUFlN0IsTUFBTSxPQUFPLGVBQWU7SUFtQjFCOzs7O09BSUc7SUFDSCxZQUFZLE9BQWdCLEVBQUUsV0FBd0I7UUFQOUMscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBUTNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxhQUE2RCxFQUFFLGNBQTJCO1FBQ3RILElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRTtZ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RSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3pDLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWU7WUFDN0Msb0JBQW9CLEVBQUUsT0FBTztTQUNiLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFJ1bGVzZXQgZXhlY3V0b3IgKi9cbmltcG9ydCB7IEpTT05QYXRoIH0gZnJvbSAnanNvbnBhdGgtcGx1cyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgcGFpcndpc2UsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaGFuZGxlUnVsZUV2YWx1YXRpb25EZWJ1ZyB9IGZyb20gJy4vZGVidWcvaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGVzRW5naW5lIH0gZnJvbSAnLi9lbmdpbmUnO1xuaW1wb3J0IHR5cGUgeyBGYWN0cyB9IGZyb20gJy4vZmFjdCc7XG5pbXBvcnQgeyBFbmdpbmVSdWxlc2V0LCBFdmFsdWF0aW9uUmVhc29uLCBSdWxlRXZhbHVhdGlvbiwgUnVsZUV2YWx1YXRpb25PdXRwdXQgfSBmcm9tICcuL2VuZ2luZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZXhlY3V0ZU9wZXJhdG9yIH0gZnJvbSAnLi9vcGVyYXRvci9vcGVyYXRvci5oZWxwZXJzJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi9vcGVyYXRvci9vcGVyYXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgaXNBbGxDb25kaXRpb25zLFxuICBpc0NvbmRpdGlvblByb3BlcnRpZXMsXG4gIGlzTm90Q29uZGl0aW9uLFxuICBpc09wZXJhbmRGYWN0LFxuICBpc09wZXJhbmRMaXRlcmFsLFxuICBpc09wZXJhbmRSdW50aW1lRmFjdFxufSBmcm9tICcuL3J1bGUvcnVsZS5oZWxwZXJzJztcbmltcG9ydCB7XG4gIEFjdGlvbkJsb2NrLFxuICBBY3Rpb25TZXRUZW1wb3JhcnlGYWN0QmxvY2ssXG4gIEFsbEJsb2NrLFxuICBHZW5lcmljT3BlcmFuZCxcbiAgSWZFbHNlQmxvY2ssXG4gIE5lc3RlZENvbmRpdGlvbixcbiAgUnVsZSxcbiAgUnVsZXNldFxufSBmcm9tICcuL3N0cnVjdHVyZSc7XG5cbi8qKiBUeXBlIG9mIHRoZSByZXRyaWV2ZSBmYWN0IGZ1bmN0aW9uICovXG5leHBvcnQgdHlwZSBSZXRyaWV2ZUZhY3RGdW5jVHlwZSA9IDxUID0gdW5rbm93bj4gKGlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjbGFzcyBSdWxlc2V0RXhlY3V0b3Ige1xuXG4gIC8qKiByZXRyaWV2ZUZhY3RGdW5jICovXG4gIHByb3RlY3RlZCByZWFkb25seSBydWxlc0VuZ2luZTogUnVsZXNFbmdpbmU7XG5cbiAgLyoqIE1hcCBvZiBhdmFpbGFibGUgb3BlcmF0b3JzICovXG4gIHByb3RlY3RlZCByZWFkb25seSBvcGVyYXRvcnM6IFJlY29yZDxzdHJpbmcsIE9wZXJhdG9yPHVua25vd24sIHVua25vd24+PjtcblxuICAvKiogRGVsYXkgYmVmb3JlIGZhY3Qgc3RyZWFtIGRlZmF1bHRpbmcgdmFsdWUgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZhY3REZWZhdWx0RGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqIFJ1bGVzZXQgYXNzb2NpYXRlZCB0byB0aGUgY3VycmVudCBleGVjdXRvciovXG4gIHB1YmxpYyByZWFkb25seSBydWxlc2V0OiBSdWxlc2V0O1xuXG4gIC8qKiBSdWxlc2V0IHBsdWdnZWQgdG8gdGhlIGZhY3Qgc3RyZWFtLCB0aGF0IGNvbnRhaW5zIGFjdGlvbnMgc3RyZWFtIHJlc3VsdCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lUnVsZXNldDogRW5naW5lUnVsZXNldDtcblxuICBwcml2YXRlIGV4ZWN1dGlvbkNvdW50ZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgcnVsZXNldCBleGVjdXRvclxuICAgKiBAcGFyYW0gcnVsZXNldCBSdWxlc2V0IHRvIGV2YWx1YXRlXG4gICAqIEBwYXJhbSBydWxlc0VuZ2luZSBJbnN0YW5jZSBvZiB0aGUgcnVsZXMgZW5naW5lXG4gICAqL1xuICBjb25zdHJ1Y3RvcihydWxlc2V0OiBSdWxlc2V0LCBydWxlc0VuZ2luZTogUnVsZXNFbmdpbmUpIHtcbiAgICB0aGlzLnJ1bGVzZXQgPSBydWxlc2V0O1xuICAgIHRoaXMucnVsZXNFbmdpbmUgPSBydWxlc0VuZ2luZTtcbiAgICB0aGlzLm9wZXJhdG9ycyA9IHJ1bGVzRW5naW5lLm9wZXJhdG9ycztcbiAgICB0aGlzLmVuZ2luZVJ1bGVzZXQgPSB0aGlzLnBsdWdSdWxlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgZXhwbG9yZXMgYSBydWxlIHRvIGlkZW50aWZ5IGFuZCBjb2xsZWN0IGlucHV0IGZhY3RzLlxuICAgKiBJbnB1dCBmYWN0cyBhcmUgaWRlbnRpZmllZCBiYXNlZCBvbiB0aGUgJ0ZBQ1QnIHR5cGUgYW5kIG9wZXJhdG9yLXNwZWNpZmljIGltcGxpY2l0IGRlcGVuZGVuY2llcy5cbiAgICogQHBhcmFtIGN1cnJlbnRPYmplY3QgVGhlIGN1cnJlbnQgb2JqZWN0IGJlaW5nIGV4cGxvcmVkLlxuICAgKiBAcGFyYW0gcnVsZUlucHV0RmFjdHMgQSBzZXQgdG8gc3RvcmUgdGhlIGlkZW50aWZpZWQgaW5wdXQgZmFjdHMgZm9yIHRoZSBydWxlLlxuICAgKi9cbiAgcHJpdmF0ZSBjb2xsZWN0UnVsZUlucHV0RmFjdHMoY3VycmVudE9iamVjdDogQWxsQmxvY2sgfCBOZXN0ZWRDb25kaXRpb24gfCBOZXN0ZWRDb25kaXRpb25bXSwgcnVsZUlucHV0RmFjdHM6IFNldDxzdHJpbmc+KSB7XG4gICAgaWYgKGN1cnJlbnRPYmplY3QgJiYgaXNPcGVyYW5kRmFjdChjdXJyZW50T2JqZWN0KSkge1xuICAgICAgcnVsZUlucHV0RmFjdHMuYWRkKGN1cnJlbnRPYmplY3QudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50T2JqZWN0KSkge1xuICAgICAgY3VycmVudE9iamVjdC5mb3JFYWNoKChlbGVtKSA9PiB0aGlzLmNvbGxlY3RSdWxlSW5wdXRGYWN0cyhlbGVtLCBydWxlSW5wdXRGYWN0cykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBjdXJyZW50T2JqZWN0KSB7XG4gICAgICAgIGlmICgoa2V5ID09PSAnb3BlcmF0b3InKSAmJiBpc0NvbmRpdGlvblByb3BlcnRpZXMoY3VycmVudE9iamVjdCkpIHtcbiAgICAgICAgICBjb25zdCBvcCA9IHRoaXMub3BlcmF0b3JzW2N1cnJlbnRPYmplY3Rba2V5XV07XG4gICAgICAgICAgaWYgKG9wICYmIG9wLmZhY3RJbXBsaWNpdERlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgb3AuZmFjdEltcGxpY2l0RGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHJ1bGVJbnB1dEZhY3RzLmFkZChkZXApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuY29sbGVjdFJ1bGVJbnB1dEZhY3RzKGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildLCBydWxlSW5wdXRGYWN0cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0IHBlcmZvcm1hbmNlIG1hcmsgZm9yIGEgcnVsZSBydW5cbiAgICogQHBhcmFtIHJ1bGUgUnVsZSB0byBtZWFzdXJlXG4gICAqIEBwYXJhbSBzdGF0dXMgc3RhdHVzIG9mIHRoZSBydWxlIGV2YWx1YXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBwZXJmb3JtYW5jZU1hcmsocnVsZTogUnVsZSwgc3RhdHVzOiAnc3RhcnQnIHwgJ2VuZCcpIHtcbiAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5wZXJmb3JtYW5jZSkge1xuICAgICAgY29uc3QgbWFya05hbWUgPSBgcnVsZXMtZW5naW5lOiR7dGhpcy5ydWxlc0VuZ2luZS5ydWxlc0VuZ2luZUluc3RhbmNlTmFtZX06JHt0aGlzLnJ1bGVzZXQubmFtZX06JHtydWxlLm5hbWV9YDtcbiAgICAgIHRoaXMucnVsZXNFbmdpbmUucGVyZm9ybWFuY2UubWFyayhgJHttYXJrTmFtZX06JHtzdGF0dXN9YCk7XG4gICAgICBpZiAoc3RhdHVzID09PSAnZW5kJykge1xuICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLnBlcmZvcm1hbmNlLm1lYXN1cmUobWFya05hbWUsIGAke21hcmtOYW1lfTpzdGFydGAsIGAke21hcmtOYW1lfTplbmRgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IG9wZXJhbmQgdmFsdWUgc3RyZWFtIGFjY29yZGluZyB0byBpdHMgdHlwZVxuICAgKiBAcGFyYW0gb3BlcmFuZCBvcGVyYW5kIG9mIHRoZSBjb25kaXRpb25cbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0T3BlcmFuZFZhbHVlKG9wZXJhbmQ6IEdlbmVyaWNPcGVyYW5kIHwgdW5kZWZpbmVkLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4pOiB1bmtub3duIHtcbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kRmFjdChvcGVyYW5kKSkge1xuICAgICAgY29uc3QgZmFjdFZhbHVlID0gZmFjdHNWYWx1ZVtvcGVyYW5kLnZhbHVlXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgICByZXR1cm4gb3BlcmFuZC5wYXRoID8gZmFjdFZhbHVlICYmIEpTT05QYXRoKHt3cmFwOiBmYWxzZSwganNvbjogZmFjdFZhbHVlLCBwYXRoOiBvcGVyYW5kLnBhdGh9KSA6IGZhY3RWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKGlzT3BlcmFuZExpdGVyYWwob3BlcmFuZCkpIHtcbiAgICAgIHJldHVybiBvcGVyYW5kLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kUnVudGltZUZhY3Qob3BlcmFuZCkpIHtcbiAgICAgIHJldHVybiBydW50aW1lRmFjdFZhbHVlc1tvcGVyYW5kLnZhbHVlXTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGEgcm9vdCBydWxlIGZyb20gYSBydWxlc2V0LCBhbmQgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIGFjdGlvbnMgdG8gYmUgcHJvY2Vzc2VkXG4gICAqIFdpbGwgYWxzbyB1cGRhdGUgdGhlIHJ1bnRpbWVGYWN0VmFsdWVzIG1hcCB0aGF0IGlzIHJ1bGVzZXQgd2lzZVxuICAgKiBOb3RlIHRoYXQgcnVudGltZUZhY3RWYWx1ZXMgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBydWxlXG4gICAqIEBwYXJhbSBmYWN0c1ZhbHVlXG4gICAqIEBwYXJhbSBydW50aW1lRmFjdFZhbHVlc1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZXZhbHVhdGVSdWxlKHJ1bGU6IFJ1bGUsIGZhY3RzVmFsdWU6IFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPiwgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPikge1xuICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQmxvY2socnVsZS5yb290RWxlbWVudCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IHByb2Nlc3MgYSBibG9jayB0byBleHRyYWN0IGFsbCB0aGUgYWN0aW9ucyBrZWVwaW5nIHRoZSBvcmRlclxuICAgKiBOb3RlIHRoYXQgcnVudGltZUZhY3RWYWx1ZXMgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwYXJhbSBhY3Rpb25zXG4gICAqIEBwYXJhbSBmYWN0c1ZhbHVlXG4gICAqIEBwYXJhbSBydW50aW1lRmFjdFZhbHVlcyBUaGlzIHJ1bnRpbWUgZmFjdCBtYXAgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZUJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4sIGFjdGlvbnM6IEFjdGlvbkJsb2NrW10gPSBbXSkge1xuICAgIGlmICh0aGlzLmlzSWZFbHNlQmxvY2soZWxlbWVudCkpIHtcbiAgICAgICghZWxlbWVudC5jb25kaXRpb24gfHwgdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihlbGVtZW50LmNvbmRpdGlvbiwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpID8gZWxlbWVudC5zdWNjZXNzRWxlbWVudHMgOiBlbGVtZW50LmZhaWx1cmVFbGVtZW50cylcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnRSZXN1bHQpID0+IHRoaXMuZXZhbHVhdGVCbG9jayhlbGVtZW50UmVzdWx0LCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcywgYWN0aW9ucykpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0FjdGlvbkJsb2NrKGVsZW1lbnQpKSB7XG4gICAgICBpZiAodGhpcy5pc0FjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayhlbGVtZW50KSkge1xuICAgICAgICBydW50aW1lRmFjdFZhbHVlc1tlbGVtZW50LmZhY3RdID0gZWxlbWVudC52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGlvbnMucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGEgSWZFbHNlIGJsb2NrXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0lmRWxzZUJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrKTogZWxlbWVudCBpcyBJZkVsc2VCbG9jayB7XG4gICAgcmV0dXJuIGVsZW1lbnQuYmxvY2tUeXBlID09PSAnSUZfRUxTRSc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGFuIGFjdGlvbiBibG9ja1xuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNBY3Rpb25CbG9jayhlbGVtZW50OiBBbGxCbG9jayk6IGVsZW1lbnQgaXMgQWN0aW9uQmxvY2sge1xuICAgIHJldHVybiAnZWxlbWVudFR5cGUnIGluIGVsZW1lbnQgJiYgZWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0FDVElPTic7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBhY3Rpb24gc2V0cyBhIHRlbXBvcmFyeSBmYWN0XG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0FjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayhlbGVtZW50OiBBY3Rpb25CbG9jayk6IGVsZW1lbnQgaXMgQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrIHtcbiAgICByZXR1cm4gJ2FjdGlvblR5cGUnIGluIGVsZW1lbnQgJiYgZWxlbWVudC5hY3Rpb25UeXBlID09PSAnU0VUX0ZBQ1QnO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIGEgY29uZGl0aW9uIGJsb2NrXG4gICAqIEBwYXJhbSBuZXN0ZWRDb25kaXRpb25cbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZUNvbmRpdGlvbihuZXN0ZWRDb25kaXRpb246IE5lc3RlZENvbmRpdGlvbiwgZmFjdHNWYWx1ZTogUmVjb3JkPHN0cmluZywgRmFjdHMgfCB1bmRlZmluZWQ+LCBydW50aW1lRmFjdFZhbHVlczogUmVjb3JkPHN0cmluZywgRmFjdHM+KTogYm9vbGVhbiB7XG4gICAgaWYgKGlzQ29uZGl0aW9uUHJvcGVydGllcyhuZXN0ZWRDb25kaXRpb24pKSB7XG4gICAgICBjb25zdCBvcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzW25lc3RlZENvbmRpdGlvbi5vcGVyYXRvcl07XG4gICAgICBpZiAob3BlcmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3BlcmF0b3IgOiAke25lc3RlZENvbmRpdGlvbi5vcGVyYXRvcn0sIHNraXBwaW5nIHRoZSBydWxlIGV4ZWN1dGlvbi4uLmApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4ZWN1dGVPcGVyYXRvcih0aGlzLmdldE9wZXJhbmRWYWx1ZShuZXN0ZWRDb25kaXRpb24ubGhzLCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcyksXG4gICAgICAgIHRoaXMuZ2V0T3BlcmFuZFZhbHVlKCdyaHMnIGluIG5lc3RlZENvbmRpdGlvbiA/IG5lc3RlZENvbmRpdGlvbi5yaHMgOiB1bmRlZmluZWQsIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKSwgb3BlcmF0b3IsIGZhY3RzVmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChpc05vdENvbmRpdGlvbihuZXN0ZWRDb25kaXRpb24pKSB7XG4gICAgICByZXR1cm4gIXRoaXMuZXZhbHVhdGVDb25kaXRpb24obmVzdGVkQ29uZGl0aW9uLm5vdCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICAgIH1cbiAgICBpZiAobmVzdGVkQ29uZGl0aW9uLmFsbCB8fCBuZXN0ZWRDb25kaXRpb24uYW55KSB7XG4gICAgICBjb25zdCBldmFsdWF0ZSA9IChjb25kaXRpb246IE5lc3RlZENvbmRpdGlvbikgPT4gdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihjb25kaXRpb24sIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKTtcbiAgICAgIHJldHVybiBpc0FsbENvbmRpdGlvbnMobmVzdGVkQ29uZGl0aW9uKSA/IG5lc3RlZENvbmRpdGlvbi5hbGwuZXZlcnkoZXZhbHVhdGUpIDogbmVzdGVkQ29uZGl0aW9uLmFueS5zb21lKGV2YWx1YXRlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbmRpdGlvbiBibG9jayBtZXQgOiAke0pTT04uc3RyaW5naWZ5KG5lc3RlZENvbmRpdGlvbil9YCk7XG4gIH1cblxuICAvKipcbiAgICogUGx1ZyBydWxlc2V0IHRvIGZhY3Qgc3RyZWFtcyBhbmQgdHJpZ2dlciBhIGZpcnN0IGV2YWx1YXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBwbHVnUnVsZXNldCgpIHtcbiAgICBjb25zdCBpbnB1dEZhY3RzRm9yUnVsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gICAgY29uc3QgZmluZFJ1bGVJbnB1dEZhY3RzID0gKG9iajogQWxsQmxvY2spOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb25zdCBydWxlSW5wdXRGYWN0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgdGhpcy5jb2xsZWN0UnVsZUlucHV0RmFjdHMob2JqLCBydWxlSW5wdXRGYWN0cyk7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbShydWxlSW5wdXRGYWN0cyk7XG4gICAgfTtcbiAgICB0aGlzLnJ1bGVzZXQucnVsZXMuZm9yRWFjaCgocnVsZSkgPT4gaW5wdXRGYWN0c0ZvclJ1bGVbcnVsZS5pZF0gPSBmaW5kUnVsZUlucHV0RmFjdHMocnVsZS5yb290RWxlbWVudCkpO1xuICAgIGNvbnN0IGZhY3RzVGhhdFJlcnVuRXZlcnl0aGluZzogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnJ1bGVzZXQucnVsZXMuZm9yRWFjaCgocnVsZSkgPT4ge1xuICAgICAgaWYgKHJ1bGUub3V0cHV0UnVudGltZUZhY3RzLmxlbmd0aCA+IDAgfHwgcnVsZS5pbnB1dFJ1bnRpbWVGYWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZhY3RzVGhhdFJlcnVuRXZlcnl0aGluZy5wdXNoKC4uLmlucHV0RmFjdHNGb3JSdWxlW3J1bGUuaWRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlckZ1bGwkOiBPYnNlcnZhYmxlPHVua25vd25bXT4gPSBmYWN0c1RoYXRSZXJ1bkV2ZXJ5dGhpbmcubGVuZ3RoID09PSAwID8gb2YoW10pIDpcbiAgICAgIGNvbWJpbmVMYXRlc3QoZmFjdHNUaGF0UmVydW5FdmVyeXRoaW5nLm1hcCgoZmFjdCkgPT4gdGhpcy5ydWxlc0VuZ2luZS5yZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbShmYWN0KSkpO1xuICAgIGNvbnN0IHJlc3VsdCQgPSB0cmlnZ2VyRnVsbCQucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgY29uc3QgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPiA9IHt9O1xuXG4gICAgICBsZXQgcnVsZXNldElucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZGVidWdNb2RlKSB7XG4gICAgICAgIHJ1bGVzZXRJbnB1dEZhY3RzID0gQXJyYXkuZnJvbSh0aGlzLnJ1bGVzZXQucnVsZXMucmVkdWNlKChhY2MsIHJ1bGUpID0+IHtcbiAgICAgICAgICBpbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXS5mb3JFYWNoKChmYWN0TmFtZSkgPT4gYWNjLmFkZChmYWN0TmFtZSkpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIG5ldyBTZXQ8c3RyaW5nPigpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHRoaXMucnVsZXNldC5ydWxlcy5tYXAoKHJ1bGUpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXRGYWN0cyA9IGlucHV0RmFjdHNGb3JSdWxlW3J1bGUuaWRdO1xuICAgICAgICBjb25zdCB2YWx1ZXMkID0gaW5wdXRGYWN0cy5tYXAoKGZhY3QpID0+IHRoaXMucnVsZXNFbmdpbmUucmV0cmlldmVPckNyZWF0ZUZhY3RTdHJlYW0oZmFjdCkpO1xuICAgICAgICByZXR1cm4gKHZhbHVlcyQubGVuZ3RoID8gY29tYmluZUxhdGVzdCh2YWx1ZXMkKSA6IG9mKFtbXV0gYXMgKEZhY3RzIHwgdW5kZWZpbmVkKVtdKSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnBlcmZvcm1hbmNlTWFyayhydWxlLCAnc3RhcnQnKSksXG4gICAgICAgICAgICBtYXAoKFtvbGRGYWN0VmFsdWVzLCBmYWN0VmFsdWVzXSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBvdXRwdXQ6IFJ1bGVFdmFsdWF0aW9uT3V0cHV0ID0ge2FjdGlvbnM6IHVuZGVmaW5lZH07XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHRoaXMuZXZhbHVhdGVSdWxlKHJ1bGUsIGlucHV0RmFjdHMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPj4oKGFjYywgaWQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBhY2NbaWRdID0gZmFjdFZhbHVlcyFbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCB7fSksIHJ1bnRpbWVGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnJ1bGVzRW5naW5lLmRlYnVnTW9kZSkge1xuICAgICAgICAgICAgICAgIG91dHB1dC5ldmFsdWF0aW9uID0gaGFuZGxlUnVsZUV2YWx1YXRpb25EZWJ1Zyh7IC4uLnJ1bGUsIGlucHV0RmFjdHMgfSwgdGhpcy5ydWxlc2V0Lm5hbWUsIG91dHB1dC5hY3Rpb25zLCBvdXRwdXQuZXJyb3IsIHJ1bnRpbWVGYWN0VmFsdWVzLCBmYWN0VmFsdWVzLCBvbGRGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8uZXJyb3Iob3V0cHV0LmVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8ud2FybihgU2tpcHBpbmcgcnVsZSAke3J1bGUubmFtZX0sIGFuZCB0aGUgYXNzb2NpYXRlZCBydWxlc2V0YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucGVyZm9ybWFuY2VNYXJrKHJ1bGUsICdlbmQnKSlcbiAgICAgICAgICApO1xuICAgICAgfSkpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICBtYXAoKFtwcmV2UmVzLCBjdXJyUmVzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbnNMaXN0cyA9IGN1cnJSZXMhLm1hcChyID0+IHIuYWN0aW9ucyk7XG4gICAgICAgICAgY29uc3QgYWxsRXhlY3V0aW9uc1ZhbGlkID0gYWN0aW9uc0xpc3RzLmV2ZXJ5KChhY3Rpb25zKSA9PiAhIWFjdGlvbnMpO1xuXG4gICAgICAgICAgbGV0IGV4ZWNJbmZvOiB7XG4gICAgICAgICAgICBleGVjdXRpb25Db3VudGVyPzogbnVtYmVyO1xuICAgICAgICAgICAgYWN0aW9uc0xpc3RzOiBBY3Rpb25CbG9ja1tdW107XG4gICAgICAgICAgICBydWxlc2V0T3V0cHV0RXhlY3V0aW9uPzogUnVsZUV2YWx1YXRpb25bXTtcbiAgICAgICAgICAgIGFsbEV4ZWN1dGlvbnNWYWxpZD86IGJvb2xlYW47XG4gICAgICAgICAgICBydWxlc2V0VHJpZ2dlcnM/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBFdmFsdWF0aW9uUmVhc29uPj47XG4gICAgICAgICAgfSA9IHthY3Rpb25zTGlzdHM6IChhbGxFeGVjdXRpb25zVmFsaWQgPyBhY3Rpb25zTGlzdHMgOiBbW11dKSBhcyBBY3Rpb25CbG9ja1tdW119O1xuXG4gICAgICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZW5naW5lRGVidWcpIHtcbiAgICAgICAgICAgIGV4ZWNJbmZvID0ge1xuICAgICAgICAgICAgICAuLi5leGVjSW5mbyxcbiAgICAgICAgICAgICAgLi4udGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1Zy5oYW5kbGVEZWJ1Z1J1bGVzZXRFeGVjdXRpb25JbmZvKFxuICAgICAgICAgICAgICAgIGN1cnJSZXMhLCBwcmV2UmVzLCBhbGxFeGVjdXRpb25zVmFsaWQsIHJ1bGVzZXRJbnB1dEZhY3RzLCBydW50aW1lRmFjdFZhbHVlcywgKyt0aGlzLmV4ZWN1dGlvbkNvdW50ZXIsIHRoaXMucnVsZXNldClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGVjSW5mbztcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgob3V0cHV0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0QWN0aW9ucyA9IChbXSBhcyBBY3Rpb25CbG9ja1tdKS5jb25jYXQoLi4ub3V0cHV0LmFjdGlvbnNMaXN0cyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1ZyAmJiBvdXRwdXQuYWxsRXhlY3V0aW9uc1ZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmVuZ2luZURlYnVnLmFkZFJ1bGVzZXRFeGVjdXRpb25FdmVudCh0aGlzLnJ1bGVzZXQsIG91dHB1dC5leGVjdXRpb25Db3VudGVyISxcbiAgICAgICAgICAgICAgcnVsZXNldElucHV0RmFjdHMsIG91dHB1dEFjdGlvbnMsIHJ1bnRpbWVGYWN0VmFsdWVzLCBvdXRwdXQucnVsZXNldFRyaWdnZXJzISxcbiAgICAgICAgICAgICAgb3V0cHV0LnJ1bGVzZXRPdXRwdXRFeGVjdXRpb24hKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb3V0cHV0QWN0aW9ucztcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBwcmV2Lmxlbmd0aCA9PT0gMCAmJiBjdXJyLmxlbmd0aCA9PT0gMClcbiAgICAgICk7XG4gICAgfSksIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5ydWxlc2V0LmlkLFxuICAgICAgdmFsaWRpdHlSYW5nZTogdGhpcy5ydWxlc2V0LnZhbGlkaXR5UmFuZ2UsXG4gICAgICBsaW5rZWRDb21wb25lbnQ6IHRoaXMucnVsZXNldC5saW5rZWRDb21wb25lbnQsXG4gICAgICBydWxlc1Jlc3VsdHNTdWJqZWN0JDogcmVzdWx0JFxuICAgIH0gYXMgRW5naW5lUnVsZXNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQbHVnIHJ1bGVzZXQgdG8gZmFjdCBzdHJlYW1zIGFuZCB0cmlnZ2VyIGEgZmlyc3QgZXZhbHVhdGlvblxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBtYWRlIHRvIGJlIGFjY2Vzc2libGUgZnJvbSBPdXRzaWRlIG9mIHRoZSBjbGFzcywgd2lsbCBiZSByZW1vdmVkIGluIHYxMFxuICAgKi9cbiAgcHVibGljIHByZXBhcmVSdWxlc2V0KCkge1xuICAgIHJldHVybiB0aGlzLnBsdWdSdWxlc2V0KCk7XG4gIH1cbn1cbiJdfQ==
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmdpbmUvcnVsZXNldC1leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUk1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3JCLE1BQU0scUJBQXFCLENBQUM7QUFlN0IsTUFBTSxPQUFPLGVBQWU7SUFtQjFCOzs7O09BSUc7SUFDSCxZQUFZLE9BQWdCLEVBQUUsV0FBd0I7UUFQOUMscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBUTNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxhQUE2RCxFQUFFLGNBQTJCO1FBQ3RILElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxD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QyxzQkFBdUIsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO2dCQUVELE9BQU8sYUFBYSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxFQUNGLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FDN0UsQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUVsRCxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3pDLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWU7WUFDN0MsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDL0Msb0JBQW9CLEVBQUUsT0FBTztTQUNiLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFJ1bGVzZXQgZXhlY3V0b3IgKi9cbmltcG9ydCB7IEpTT05QYXRoIH0gZnJvbSAnanNvbnBhdGgtcGx1cyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgcGFpcndpc2UsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaGFuZGxlUnVsZUV2YWx1YXRpb25EZWJ1ZyB9IGZyb20gJy4vZGVidWcvaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGVzRW5naW5lIH0gZnJvbSAnLi9lbmdpbmUnO1xuaW1wb3J0IHR5cGUgeyBGYWN0cyB9IGZyb20gJy4vZmFjdCc7XG5pbXBvcnQgeyBFbmdpbmVSdWxlc2V0LCBFdmFsdWF0aW9uUmVhc29uLCBSdWxlRXZhbHVhdGlvbiwgUnVsZUV2YWx1YXRpb25PdXRwdXQgfSBmcm9tICcuL2VuZ2luZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZXhlY3V0ZU9wZXJhdG9yIH0gZnJvbSAnLi9vcGVyYXRvci9vcGVyYXRvci5oZWxwZXJzJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi9vcGVyYXRvci9vcGVyYXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgaXNBbGxDb25kaXRpb25zLFxuICBpc0NvbmRpdGlvblByb3BlcnRpZXMsXG4gIGlzTm90Q29uZGl0aW9uLFxuICBpc09wZXJhbmRGYWN0LFxuICBpc09wZXJhbmRMaXRlcmFsLFxuICBpc09wZXJhbmRSdW50aW1lRmFjdFxufSBmcm9tICcuL3J1bGUvcnVsZS5oZWxwZXJzJztcbmltcG9ydCB7XG4gIEFjdGlvbkJsb2NrLFxuICBBY3Rpb25TZXRUZW1wb3JhcnlGYWN0QmxvY2ssXG4gIEFsbEJsb2NrLFxuICBHZW5lcmljT3BlcmFuZCxcbiAgSWZFbHNlQmxvY2ssXG4gIE5lc3RlZENvbmRpdGlvbixcbiAgUnVsZSxcbiAgUnVsZXNldFxufSBmcm9tICcuL3N0cnVjdHVyZSc7XG5cbi8qKiBUeXBlIG9mIHRoZSByZXRyaWV2ZSBmYWN0IGZ1bmN0aW9uICovXG5leHBvcnQgdHlwZSBSZXRyaWV2ZUZhY3RGdW5jVHlwZSA9IDxUID0gdW5rbm93bj4gKGlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjbGFzcyBSdWxlc2V0RXhlY3V0b3Ige1xuXG4gIC8qKiByZXRyaWV2ZUZhY3RGdW5jICovXG4gIHByb3RlY3RlZCByZWFkb25seSBydWxlc0VuZ2luZTogUnVsZXNFbmdpbmU7XG5cbiAgLyoqIE1hcCBvZiBhdmFpbGFibGUgb3BlcmF0b3JzICovXG4gIHByb3RlY3RlZCByZWFkb25seSBvcGVyYXRvcnM6IFJlY29yZDxzdHJpbmcsIE9wZXJhdG9yPHVua25vd24sIHVua25vd24+PjtcblxuICAvKiogRGVsYXkgYmVmb3JlIGZhY3Qgc3RyZWFtIGRlZmF1bHRpbmcgdmFsdWUgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZhY3REZWZhdWx0RGVsYXk/OiBudW1iZXI7XG5cbiAgLyoqIFJ1bGVzZXQgYXNzb2NpYXRlZCB0byB0aGUgY3VycmVudCBleGVjdXRvciovXG4gIHB1YmxpYyByZWFkb25seSBydWxlc2V0OiBSdWxlc2V0O1xuXG4gIC8qKiBSdWxlc2V0IHBsdWdnZWQgdG8gdGhlIGZhY3Qgc3RyZWFtLCB0aGF0IGNvbnRhaW5zIGFjdGlvbnMgc3RyZWFtIHJlc3VsdCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lUnVsZXNldDogRW5naW5lUnVsZXNldDtcblxuICBwcml2YXRlIGV4ZWN1dGlvbkNvdW50ZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgcnVsZXNldCBleGVjdXRvclxuICAgKiBAcGFyYW0gcnVsZXNldCBSdWxlc2V0IHRvIGV2YWx1YXRlXG4gICAqIEBwYXJhbSBydWxlc0VuZ2luZSBJbnN0YW5jZSBvZiB0aGUgcnVsZXMgZW5naW5lXG4gICAqL1xuICBjb25zdHJ1Y3RvcihydWxlc2V0OiBSdWxlc2V0LCBydWxlc0VuZ2luZTogUnVsZXNFbmdpbmUpIHtcbiAgICB0aGlzLnJ1bGVzZXQgPSBydWxlc2V0O1xuICAgIHRoaXMucnVsZXNFbmdpbmUgPSBydWxlc0VuZ2luZTtcbiAgICB0aGlzLm9wZXJhdG9ycyA9IHJ1bGVzRW5naW5lLm9wZXJhdG9ycztcbiAgICB0aGlzLmVuZ2luZVJ1bGVzZXQgPSB0aGlzLnBsdWdSdWxlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgZXhwbG9yZXMgYSBydWxlIHRvIGlkZW50aWZ5IGFuZCBjb2xsZWN0IGlucHV0IGZhY3RzLlxuICAgKiBJbnB1dCBmYWN0cyBhcmUgaWRlbnRpZmllZCBiYXNlZCBvbiB0aGUgJ0ZBQ1QnIHR5cGUgYW5kIG9wZXJhdG9yLXNwZWNpZmljIGltcGxpY2l0IGRlcGVuZGVuY2llcy5cbiAgICogQHBhcmFtIGN1cnJlbnRPYmplY3QgVGhlIGN1cnJlbnQgb2JqZWN0IGJlaW5nIGV4cGxvcmVkLlxuICAgKiBAcGFyYW0gcnVsZUlucHV0RmFjdHMgQSBzZXQgdG8gc3RvcmUgdGhlIGlkZW50aWZpZWQgaW5wdXQgZmFjdHMgZm9yIHRoZSBydWxlLlxuICAgKi9cbiAgcHJpdmF0ZSBjb2xsZWN0UnVsZUlucHV0RmFjdHMoY3VycmVudE9iamVjdDogQWxsQmxvY2sgfCBOZXN0ZWRDb25kaXRpb24gfCBOZXN0ZWRDb25kaXRpb25bXSwgcnVsZUlucHV0RmFjdHM6IFNldDxzdHJpbmc+KSB7XG4gICAgaWYgKGN1cnJlbnRPYmplY3QgJiYgaXNPcGVyYW5kRmFjdChjdXJyZW50T2JqZWN0KSkge1xuICAgICAgcnVsZUlucHV0RmFjdHMuYWRkKGN1cnJlbnRPYmplY3QudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50T2JqZWN0KSkge1xuICAgICAgY3VycmVudE9iamVjdC5mb3JFYWNoKChlbGVtKSA9PiB0aGlzLmNvbGxlY3RSdWxlSW5wdXRGYWN0cyhlbGVtLCBydWxlSW5wdXRGYWN0cykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBjdXJyZW50T2JqZWN0KSB7XG4gICAgICAgIGlmICgoa2V5ID09PSAnb3BlcmF0b3InKSAmJiBpc0NvbmRpdGlvblByb3BlcnRpZXMoY3VycmVudE9iamVjdCkpIHtcbiAgICAgICAgICBjb25zdCBvcCA9IHRoaXMub3BlcmF0b3JzW2N1cnJlbnRPYmplY3Rba2V5XV07XG4gICAgICAgICAgaWYgKG9wICYmIG9wLmZhY3RJbXBsaWNpdERlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgb3AuZmFjdEltcGxpY2l0RGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHJ1bGVJbnB1dEZhY3RzLmFkZChkZXApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuY29sbGVjdFJ1bGVJbnB1dEZhY3RzKGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildLCBydWxlSW5wdXRGYWN0cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0IHBlcmZvcm1hbmNlIG1hcmsgZm9yIGEgcnVsZSBydW5cbiAgICogQHBhcmFtIHJ1bGUgUnVsZSB0byBtZWFzdXJlXG4gICAqIEBwYXJhbSBzdGF0dXMgc3RhdHVzIG9mIHRoZSBydWxlIGV2YWx1YXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBwZXJmb3JtYW5jZU1hcmsocnVsZTogUnVsZSwgc3RhdHVzOiAnc3RhcnQnIHwgJ2VuZCcpIHtcbiAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5wZXJmb3JtYW5jZSkge1xuICAgICAgY29uc3QgbWFya05hbWUgPSBgcnVsZXMtZW5naW5lOiR7dGhpcy5ydWxlc0VuZ2luZS5ydWxlc0VuZ2luZUluc3RhbmNlTmFtZX06JHt0aGlzLnJ1bGVzZXQubmFtZX06JHtydWxlLm5hbWV9YDtcbiAgICAgIHRoaXMucnVsZXNFbmdpbmUucGVyZm9ybWFuY2UubWFyayhgJHttYXJrTmFtZX06JHtzdGF0dXN9YCk7XG4gICAgICBpZiAoc3RhdHVzID09PSAnZW5kJykge1xuICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLnBlcmZvcm1hbmNlLm1lYXN1cmUobWFya05hbWUsIGAke21hcmtOYW1lfTpzdGFydGAsIGAke21hcmtOYW1lfTplbmRgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IG9wZXJhbmQgdmFsdWUgc3RyZWFtIGFjY29yZGluZyB0byBpdHMgdHlwZVxuICAgKiBAcGFyYW0gb3BlcmFuZCBvcGVyYW5kIG9mIHRoZSBjb25kaXRpb25cbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0T3BlcmFuZFZhbHVlKG9wZXJhbmQ6IEdlbmVyaWNPcGVyYW5kIHwgdW5kZWZpbmVkLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4pOiB1bmtub3duIHtcbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kRmFjdChvcGVyYW5kKSkge1xuICAgICAgY29uc3QgZmFjdFZhbHVlID0gZmFjdHNWYWx1ZVtvcGVyYW5kLnZhbHVlXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgICByZXR1cm4gb3BlcmFuZC5wYXRoID8gZmFjdFZhbHVlICYmIEpTT05QYXRoKHt3cmFwOiBmYWxzZSwganNvbjogZmFjdFZhbHVlLCBwYXRoOiBvcGVyYW5kLnBhdGh9KSA6IGZhY3RWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKGlzT3BlcmFuZExpdGVyYWwob3BlcmFuZCkpIHtcbiAgICAgIHJldHVybiBvcGVyYW5kLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kUnVudGltZUZhY3Qob3BlcmFuZCkpIHtcbiAgICAgIHJldHVybiBydW50aW1lRmFjdFZhbHVlc1tvcGVyYW5kLnZhbHVlXTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGEgcm9vdCBydWxlIGZyb20gYSBydWxlc2V0LCBhbmQgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIGFjdGlvbnMgdG8gYmUgcHJvY2Vzc2VkXG4gICAqIFdpbGwgYWxzbyB1cGRhdGUgdGhlIHJ1bnRpbWVGYWN0VmFsdWVzIG1hcCB0aGF0IGlzIHJ1bGVzZXQgd2lzZVxuICAgKiBOb3RlIHRoYXQgcnVudGltZUZhY3RWYWx1ZXMgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBydWxlXG4gICAqIEBwYXJhbSBmYWN0c1ZhbHVlXG4gICAqIEBwYXJhbSBydW50aW1lRmFjdFZhbHVlc1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZXZhbHVhdGVSdWxlKHJ1bGU6IFJ1bGUsIGZhY3RzVmFsdWU6IFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPiwgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPikge1xuICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQmxvY2socnVsZS5yb290RWxlbWVudCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IHByb2Nlc3MgYSBibG9jayB0byBleHRyYWN0IGFsbCB0aGUgYWN0aW9ucyBrZWVwaW5nIHRoZSBvcmRlclxuICAgKiBOb3RlIHRoYXQgcnVudGltZUZhY3RWYWx1ZXMgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwYXJhbSBhY3Rpb25zXG4gICAqIEBwYXJhbSBmYWN0c1ZhbHVlXG4gICAqIEBwYXJhbSBydW50aW1lRmFjdFZhbHVlcyBUaGlzIHJ1bnRpbWUgZmFjdCBtYXAgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZUJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4sIGFjdGlvbnM6IEFjdGlvbkJsb2NrW10gPSBbXSkge1xuICAgIGlmICh0aGlzLmlzSWZFbHNlQmxvY2soZWxlbWVudCkpIHtcbiAgICAgICghZWxlbWVudC5jb25kaXRpb24gfHwgdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihlbGVtZW50LmNvbmRpdGlvbiwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpID8gZWxlbWVudC5zdWNjZXNzRWxlbWVudHMgOiBlbGVtZW50LmZhaWx1cmVFbGVtZW50cylcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnRSZXN1bHQpID0+IHRoaXMuZXZhbHVhdGVCbG9jayhlbGVtZW50UmVzdWx0LCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcywgYWN0aW9ucykpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0FjdGlvbkJsb2NrKGVsZW1lbnQpKSB7XG4gICAgICBpZiAodGhpcy5pc0FjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayhlbGVtZW50KSkge1xuICAgICAgICBydW50aW1lRmFjdFZhbHVlc1tlbGVtZW50LmZhY3RdID0gZWxlbWVudC52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGlvbnMucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGEgSWZFbHNlIGJsb2NrXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0lmRWxzZUJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrKTogZWxlbWVudCBpcyBJZkVsc2VCbG9jayB7XG4gICAgcmV0dXJuIGVsZW1lbnQuYmxvY2tUeXBlID09PSAnSUZfRUxTRSc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGFuIGFjdGlvbiBibG9ja1xuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNBY3Rpb25CbG9jayhlbGVtZW50OiBBbGxCbG9jayk6IGVsZW1lbnQgaXMgQWN0aW9uQmxvY2sge1xuICAgIHJldHVybiAnZWxlbWVudFR5cGUnIGluIGVsZW1lbnQgJiYgZWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0FDVElPTic7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBhY3Rpb24gc2V0cyBhIHRlbXBvcmFyeSBmYWN0XG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0FjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayhlbGVtZW50OiBBY3Rpb25CbG9jayk6IGVsZW1lbnQgaXMgQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrIHtcbiAgICByZXR1cm4gJ2FjdGlvblR5cGUnIGluIGVsZW1lbnQgJiYgZWxlbWVudC5hY3Rpb25UeXBlID09PSAnU0VUX0ZBQ1QnO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIGEgY29uZGl0aW9uIGJsb2NrXG4gICAqIEBwYXJhbSBuZXN0ZWRDb25kaXRpb25cbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZUNvbmRpdGlvbihuZXN0ZWRDb25kaXRpb246IE5lc3RlZENvbmRpdGlvbiwgZmFjdHNWYWx1ZTogUmVjb3JkPHN0cmluZywgRmFjdHMgfCB1bmRlZmluZWQ+LCBydW50aW1lRmFjdFZhbHVlczogUmVjb3JkPHN0cmluZywgRmFjdHM+KTogYm9vbGVhbiB7XG4gICAgaWYgKGlzQ29uZGl0aW9uUHJvcGVydGllcyhuZXN0ZWRDb25kaXRpb24pKSB7XG4gICAgICBjb25zdCBvcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzW25lc3RlZENvbmRpdGlvbi5vcGVyYXRvcl07XG4gICAgICBpZiAob3BlcmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3BlcmF0b3IgOiAke25lc3RlZENvbmRpdGlvbi5vcGVyYXRvcn0sIHNraXBwaW5nIHRoZSBydWxlIGV4ZWN1dGlvbi4uLmApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4ZWN1dGVPcGVyYXRvcih0aGlzLmdldE9wZXJhbmRWYWx1ZShuZXN0ZWRDb25kaXRpb24ubGhzLCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcyksXG4gICAgICAgIHRoaXMuZ2V0T3BlcmFuZFZhbHVlKCdyaHMnIGluIG5lc3RlZENvbmRpdGlvbiA/IG5lc3RlZENvbmRpdGlvbi5yaHMgOiB1bmRlZmluZWQsIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKSwgb3BlcmF0b3IsIGZhY3RzVmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChpc05vdENvbmRpdGlvbihuZXN0ZWRDb25kaXRpb24pKSB7XG4gICAgICByZXR1cm4gIXRoaXMuZXZhbHVhdGVDb25kaXRpb24obmVzdGVkQ29uZGl0aW9uLm5vdCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICAgIH1cbiAgICBpZiAobmVzdGVkQ29uZGl0aW9uLmFsbCB8fCBuZXN0ZWRDb25kaXRpb24uYW55KSB7XG4gICAgICBjb25zdCBldmFsdWF0ZSA9IChjb25kaXRpb246IE5lc3RlZENvbmRpdGlvbikgPT4gdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihjb25kaXRpb24sIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKTtcbiAgICAgIHJldHVybiBpc0FsbENvbmRpdGlvbnMobmVzdGVkQ29uZGl0aW9uKSA/IG5lc3RlZENvbmRpdGlvbi5hbGwuZXZlcnkoZXZhbHVhdGUpIDogbmVzdGVkQ29uZGl0aW9uLmFueS5zb21lKGV2YWx1YXRlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbmRpdGlvbiBibG9jayBtZXQgOiAke0pTT04uc3RyaW5naWZ5KG5lc3RlZENvbmRpdGlvbil9YCk7XG4gIH1cblxuICAvKipcbiAgICogUGx1ZyBydWxlc2V0IHRvIGZhY3Qgc3RyZWFtcyBhbmQgdHJpZ2dlciBhIGZpcnN0IGV2YWx1YXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBwbHVnUnVsZXNldCgpIHtcbiAgICBjb25zdCBpbnB1dEZhY3RzRm9yUnVsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gICAgY29uc3QgZmluZFJ1bGVJbnB1dEZhY3RzID0gKG9iajogQWxsQmxvY2spOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb25zdCBydWxlSW5wdXRGYWN0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgdGhpcy5jb2xsZWN0UnVsZUlucHV0RmFjdHMob2JqLCBydWxlSW5wdXRGYWN0cyk7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbShydWxlSW5wdXRGYWN0cyk7XG4gICAgfTtcbiAgICB0aGlzLnJ1bGVzZXQucnVsZXMuZm9yRWFjaCgocnVsZSkgPT4gaW5wdXRGYWN0c0ZvclJ1bGVbcnVsZS5pZF0gPSBmaW5kUnVsZUlucHV0RmFjdHMocnVsZS5yb290RWxlbWVudCkpO1xuICAgIGNvbnN0IGZhY3RzVGhhdFJlcnVuRXZlcnl0aGluZzogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnJ1bGVzZXQucnVsZXMuZm9yRWFjaCgocnVsZSkgPT4ge1xuICAgICAgaWYgKHJ1bGUub3V0cHV0UnVudGltZUZhY3RzLmxlbmd0aCA+IDAgfHwgcnVsZS5pbnB1dFJ1bnRpbWVGYWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZhY3RzVGhhdFJlcnVuRXZlcnl0aGluZy5wdXNoKC4uLmlucHV0RmFjdHNGb3JSdWxlW3J1bGUuaWRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlckZ1bGwkOiBPYnNlcnZhYmxlPHVua25vd25bXT4gPSBmYWN0c1RoYXRSZXJ1bkV2ZXJ5dGhpbmcubGVuZ3RoID09PSAwID8gb2YoW10pIDpcbiAgICAgIGNvbWJpbmVMYXRlc3QoZmFjdHNUaGF0UmVydW5FdmVyeXRoaW5nLm1hcCgoZmFjdCkgPT4gdGhpcy5ydWxlc0VuZ2luZS5yZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbShmYWN0KSkpO1xuICAgIGNvbnN0IHJlc3VsdCQgPSB0cmlnZ2VyRnVsbCQucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgY29uc3QgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPiA9IHt9O1xuXG4gICAgICBsZXQgcnVsZXNldElucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZGVidWdNb2RlKSB7XG4gICAgICAgIHJ1bGVzZXRJbnB1dEZhY3RzID0gQXJyYXkuZnJvbSh0aGlzLnJ1bGVzZXQucnVsZXMucmVkdWNlKChhY2MsIHJ1bGUpID0+IHtcbiAgICAgICAgICBpbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXS5mb3JFYWNoKChmYWN0TmFtZSkgPT4gYWNjLmFkZChmYWN0TmFtZSkpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIG5ldyBTZXQ8c3RyaW5nPigpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHRoaXMucnVsZXNldC5ydWxlcy5tYXAoKHJ1bGUpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXRGYWN0cyA9IGlucHV0RmFjdHNGb3JSdWxlW3J1bGUuaWRdO1xuICAgICAgICBjb25zdCB2YWx1ZXMkID0gaW5wdXRGYWN0cy5tYXAoKGZhY3QpID0+IHRoaXMucnVsZXNFbmdpbmUucmV0cmlldmVPckNyZWF0ZUZhY3RTdHJlYW0oZmFjdCkpO1xuICAgICAgICByZXR1cm4gKHZhbHVlcyQubGVuZ3RoID8gY29tYmluZUxhdGVzdCh2YWx1ZXMkKSA6IG9mKFtbXV0gYXMgKEZhY3RzIHwgdW5kZWZpbmVkKVtdKSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnBlcmZvcm1hbmNlTWFyayhydWxlLCAnc3RhcnQnKSksXG4gICAgICAgICAgICBtYXAoKFtvbGRGYWN0VmFsdWVzLCBmYWN0VmFsdWVzXSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBvdXRwdXQ6IFJ1bGVFdmFsdWF0aW9uT3V0cHV0ID0ge2FjdGlvbnM6IHVuZGVmaW5lZH07XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHRoaXMuZXZhbHVhdGVSdWxlKHJ1bGUsIGlucHV0RmFjdHMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPj4oKGFjYywgaWQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBhY2NbaWRdID0gZmFjdFZhbHVlcyFbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCB7fSksIHJ1bnRpbWVGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnJ1bGVzRW5naW5lLmRlYnVnTW9kZSkge1xuICAgICAgICAgICAgICAgIG91dHB1dC5ldmFsdWF0aW9uID0gaGFuZGxlUnVsZUV2YWx1YXRpb25EZWJ1Zyh7IC4uLnJ1bGUsIGlucHV0RmFjdHMgfSwgdGhpcy5ydWxlc2V0Lm5hbWUsIG91dHB1dC5hY3Rpb25zLCBvdXRwdXQuZXJyb3IsIHJ1bnRpbWVGYWN0VmFsdWVzLCBmYWN0VmFsdWVzLCBvbGRGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8uZXJyb3Iob3V0cHV0LmVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8ud2FybihgU2tpcHBpbmcgcnVsZSAke3J1bGUubmFtZX0sIGFuZCB0aGUgYXNzb2NpYXRlZCBydWxlc2V0YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucGVyZm9ybWFuY2VNYXJrKHJ1bGUsICdlbmQnKSlcbiAgICAgICAgICApO1xuICAgICAgfSkpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICBtYXAoKFtwcmV2UmVzLCBjdXJyUmVzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbnNMaXN0cyA9IGN1cnJSZXMhLm1hcChyID0+IHIuYWN0aW9ucyk7XG4gICAgICAgICAgY29uc3QgYWxsRXhlY3V0aW9uc1ZhbGlkID0gYWN0aW9uc0xpc3RzLmV2ZXJ5KChhY3Rpb25zKSA9PiAhIWFjdGlvbnMpO1xuXG4gICAgICAgICAgbGV0IGV4ZWNJbmZvOiB7XG4gICAgICAgICAgICBleGVjdXRpb25Db3VudGVyPzogbnVtYmVyO1xuICAgICAgICAgICAgYWN0aW9uc0xpc3RzOiBBY3Rpb25CbG9ja1tdW107XG4gICAgICAgICAgICBydWxlc2V0T3V0cHV0RXhlY3V0aW9uPzogUnVsZUV2YWx1YXRpb25bXTtcbiAgICAgICAgICAgIGFsbEV4ZWN1dGlvbnNWYWxpZD86IGJvb2xlYW47XG4gICAgICAgICAgICBydWxlc2V0VHJpZ2dlcnM/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBFdmFsdWF0aW9uUmVhc29uPj47XG4gICAgICAgICAgfSA9IHthY3Rpb25zTGlzdHM6IChhbGxFeGVjdXRpb25zVmFsaWQgPyBhY3Rpb25zTGlzdHMgOiBbW11dKSBhcyBBY3Rpb25CbG9ja1tdW119O1xuXG4gICAgICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZW5naW5lRGVidWcpIHtcbiAgICAgICAgICAgIGV4ZWNJbmZvID0ge1xuICAgICAgICAgICAgICAuLi5leGVjSW5mbyxcbiAgICAgICAgICAgICAgLi4udGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1Zy5oYW5kbGVEZWJ1Z1J1bGVzZXRFeGVjdXRpb25JbmZvKFxuICAgICAgICAgICAgICAgIGN1cnJSZXMhLCBwcmV2UmVzLCBhbGxFeGVjdXRpb25zVmFsaWQsIHJ1bGVzZXRJbnB1dEZhY3RzLCBydW50aW1lRmFjdFZhbHVlcywgKyt0aGlzLmV4ZWN1dGlvbkNvdW50ZXIsIHRoaXMucnVsZXNldClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGVjSW5mbztcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgob3V0cHV0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0QWN0aW9ucyA9IChbXSBhcyBBY3Rpb25CbG9ja1tdKS5jb25jYXQoLi4ub3V0cHV0LmFjdGlvbnNMaXN0cyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1ZyAmJiBvdXRwdXQuYWxsRXhlY3V0aW9uc1ZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmVuZ2luZURlYnVnLmFkZFJ1bGVzZXRFeGVjdXRpb25FdmVudCh0aGlzLnJ1bGVzZXQsIG91dHB1dC5leGVjdXRpb25Db3VudGVyISxcbiAgICAgICAgICAgICAgcnVsZXNldElucHV0RmFjdHMsIG91dHB1dEFjdGlvbnMsIHJ1bnRpbWVGYWN0VmFsdWVzLCBvdXRwdXQucnVsZXNldFRyaWdnZXJzISxcbiAgICAgICAgICAgICAgb3V0cHV0LnJ1bGVzZXRPdXRwdXRFeGVjdXRpb24hKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb3V0cHV0QWN0aW9ucztcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBwcmV2Lmxlbmd0aCA9PT0gMCAmJiBjdXJyLmxlbmd0aCA9PT0gMClcbiAgICAgICk7XG4gICAgfSksIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5ydWxlc2V0LmlkLFxuICAgICAgdmFsaWRpdHlSYW5nZTogdGhpcy5ydWxlc2V0LnZhbGlkaXR5UmFuZ2UsXG4gICAgICBsaW5rZWRDb21wb25lbnQ6IHRoaXMucnVsZXNldC5saW5rZWRDb21wb25lbnQsXG4gICAgICBsaW5rZWRDb21wb25lbnRzOiB0aGlzLnJ1bGVzZXQubGlua2VkQ29tcG9uZW50cyxcbiAgICAgIHJ1bGVzUmVzdWx0c1N1YmplY3QkOiByZXN1bHQkXG4gICAgfSBhcyBFbmdpbmVSdWxlc2V0O1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VuZ2luZS9zdHJ1Y3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZXNFbmdpbmVBY3Rpb24gfSBmcm9tICdAbzNyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBOYXRpdmVUeXBlcyA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXI7XG4vKiogR2VuZXJpYyBvcGVyYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmQ8VCBleHRlbmRzIHN0cmluZywgVSBleHRlbmRzIE5hdGl2ZVR5cGVzID0gTmF0aXZlVHlwZXM+IHtcbiAgLyoqIE9wZXJhbmQgdHlwZSAqL1xuICB0eXBlOiBUO1xuICAvKiogU3RhdGljIHZhbHVlICovXG4gIHZhbHVlOiBVO1xufVxuXG4vKiogT3BlcmFuZCBiYXNlZCBvbiBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmRGYWN0IGV4dGVuZHMgT3BlcmFuZDwnRkFDVCcsIHN0cmluZz4ge1xuICAvKiogSlNPTlBhdGggdG8gZGVlcCByZWFkIHRoZSBmYWN0IHZhbHVlICovXG4gIHBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKiBDb25kaXRpb24gYXZhaWxhYmxlIG9wZXJhbmQgdHlwZXMgKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPcGVyYW5kID0gT3BlcmFuZEZhY3QgfCBPcGVyYW5kPCdSVU5USU1FX0ZBQ1QnLCBzdHJpbmc+IHwgT3BlcmFuZDwnTElURVJBTCc+O1xuXG4vKiogQ29uZGl0aW9uIG9iamVjdCBpbnRlcmZhY2Ugd2l0aCB1bmFyeSBvcGVyYXRvciAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogT3BlcmF0b3IgKi9cbiAgb3BlcmF0b3I6IHN0cmluZztcbn1cblxuLyoqIENvbmRpdGlvbiBvYmplY3QgaW50ZXJmYWNlICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogUmlnaHQgSGFuZCBTaWRlICovXG4gIHJoczogR2VuZXJpY09wZXJhbmQ7XG4gIC8qKiBPcGVyYXRvciAqL1xuICBvcGVyYXRvcjogc3RyaW5nO1xufVxuXG4vKiogTmVzdGVkIENvbmRpdGlvbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBOZXN0ZWRDb25kaXRpb24gPSBVbmFyeU9wZXJhdGlvbiB8IEJpbmFyeU9wZXJhdGlvbiB8IFRvcExldmVsQ29uZGl0aW9uO1xuLyoqIEFsbCBDb25kaXRpb24gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpZC1ibGFja2xpc3RcbmV4cG9ydCB0eXBlIEFsbENvbmRpdGlvbnMgPSB7YWxsOiBOZXN0ZWRDb25kaXRpb25bXTsgYW55PzogbmV2ZXI7IG5vdD86IG5ldmVyfTtcbi8qKiBBbnkgQ29uZGl0aW9uICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaWQtYmxhY2tsaXN0XG5leHBvcnQgdHlwZSBBbnlDb25kaXRpb25zID0ge2FueTogTmVzdGVkQ29uZGl0aW9uW107IGFsbD86IG5ldmVyOyBub3Q/OiBuZXZlcn07XG4vKiogTm90IENvbmRpdGlvbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWJsYWNrbGlzdFxuZXhwb3J0IHR5cGUgTm90Q29uZGl0aW9uID0ge25vdDogTmVzdGVkQ29uZGl0aW9uOyBhbGw/OiBuZXZlcjsgYW55PzogbmV2ZXJ9O1xuLyoqIFRvcCBsZXZlbCBDb25kaXRpb24gaW4gdGhlIHJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IHR5cGUgVG9wTGV2ZWxDb25kaXRpb24gPSBBbGxDb25kaXRpb25zIHwgQW55Q29uZGl0aW9ucyB8IE5vdENvbmRpdGlvbiB8IFVuYXJ5T3BlcmF0aW9uIHwgQmluYXJ5T3BlcmF0aW9uO1xuXG4vKiogRXZlbnQgZW1pdHRlZCBpbiBjYXNlIHRoZSBydWxlIGNvbmRpdGlvbiBpcyBwYXNzZWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUV2ZW50IHtcbiAgLyoqIFR5cGUgKG9yIG5hbWUpIG9mIHRoZSBldmVudCAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBsaXN0IG9mIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBldmVudCAqL1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQmFzZSBmb3IgdGhlIFJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcbiAgLyoqIFVuaXF1ZSBpZCBhc3NvY2lhdGVkIHRvIGEgcnVsZSovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBSdW50aW1lIGZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0UnVudGltZUZhY3RzOiBzdHJpbmdbXTtcbiAgLyoqIEBkZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTIuIEZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAvKiogUnVudGltZSBmYWN0cyB0aGF0IGFyZSBjcmVhdGVkL3VwZGF0ZWQgYnkgdGhlIHJ1bGUqL1xuICBvdXRwdXRSdW50aW1lRmFjdHM6IHN0cmluZ1tdO1xuICAvKiogTmFtZSBvZiB0aGUgcnVsZSovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIHJvb3RFbGVtZW50IG9mIHRoZSBydWxlLCB0aGF0IGNvbnRhaW5zIGVpdGhlciBhIGJsb2NrLCBlaXRoZXIgYW4gYWN0aW9uIGxpc3QgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHJvb3RFbGVtZW50OiBBbGxCbG9jaztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIHBvc3NpYmxlIHR5cGVzIG9mIGFjdGlvbnMgcmVzdWx0ZWQgYXMgb3V0cHV0IG9mIGEgcnVsZSBleGVjdXRpb25cbiAqIEBkZXByZWNhdGVkIHRoZSBhY3Rpb25zIGFyZSBub3cgZGVwZW5kaW5nIG9mIGV4ZWN1dGluZyBtb2R1bGVzXG4gKi9cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGVzID0gJ1NFVF9GQUNUJyB8ICdVUERBVEVfQ09ORklHJyB8ICdVUERBVEVfQVNTRVQnIHwgJ1VQREFURV9MT0NBTElTQVRJT04nIHwgJ1VQREFURV9QTEFDRUhPTERFUic7XG5cbi8qKiBUeXBlcyBhc3NvY2lhdGVkIHRvIHRoZSBjb25kaXRpb24gYmxvY2tzIHRoYXQgYXJlIHN1cHBvcnRlZCAqL1xuZXhwb3J0IHR5cGUgQ29uZGl0aW9uQmxvY2tUeXBlcyA9ICdJRl9FTFNFJztcblxuLyoqIEludGVyZmFjZSBjb21tb24gdG8gYWxsIGVsZW1lbnRzICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVFbGVtZW50IHtcbiAgLyoqIFR5cGUgb2YgdGhlIGVsZW1lbnQqL1xuICBlbGVtZW50VHlwZTogc3RyaW5nO1xufVxuXG4vKiogSW50ZXJmYWNlIGNvbW1vbiB0byBhbGwgYWN0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25CbG9jayBleHRlbmRzIFJ1bGVFbGVtZW50LCBSdWxlc0VuZ2luZUFjdGlvbiB7XG4gIGVsZW1lbnRUeXBlOiAnQUNUSU9OJztcbiAgYWN0aW9uVHlwZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xufVxuXG4vKiogSW50ZXJmYWNlIG9mIGFjdGlvbiB0aGF0IHNldHMgb3IgdXBkYXRlcyBhIHRlbXBvcmFyeSBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayBleHRlbmRzIEFjdGlvbkJsb2NrIHtcbiAgYWN0aW9uVHlwZTogJ1NFVF9GQUNUJztcbiAgZmFjdDogc3RyaW5nO1xufVxuXG4vKiogSW50ZXJmYWNlIG9mIGJsb2NrIFJ1bGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUJsb2NrIGV4dGVuZHMgUnVsZUVsZW1lbnQge1xuICBlbGVtZW50VHlwZTogJ1JVTEVfQkxPQ0snO1xuICBibG9ja1R5cGU6IENvbmRpdGlvbkJsb2NrVHlwZXM7XG59XG5cbi8qKiBBbGwgc3VwcG9ydGVkIGJsb2NrcyAoc3VwcG9ydGluZyBuZXN0ZWQgc3RydWN0dXJlKSAqL1xuZXhwb3J0IHR5cGUgQWxsQmxvY2sgPVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIElmRWxzZUJsb2NrXG4gIHwgKEFjdGlvbkJsb2NrICYgUmVjb3JkPHN0cmluZywgYW55Pik7XG5cbi8qKiBCbG9jayByZXByZXNlbnRpbmcgYW4gJ2lmIGVsc2UnIGNvbmRpdGlvbi4gSWYgbm8gY29uZGl0aW9uIHNwZWNpZmllZCBpdCB3aWxsIGV4ZWN1dGUgc3VjY2VzcyBlbGVtZW50cyBvbmx5ICovXG5leHBvcnQgaW50ZXJmYWNlIElmRWxzZUJsb2NrIGV4dGVuZHMgUnVsZUJsb2NrIHtcbiAgYmxvY2tUeXBlOiAnSUZfRUxTRSc7XG4gIHN1Y2Nlc3NFbGVtZW50czogQWxsQmxvY2tbXTtcbiAgZmFpbHVyZUVsZW1lbnRzOiBBbGxCbG9ja1tdO1xuICBjb25kaXRpb24/OiBUb3BMZXZlbENvbmRpdGlvbjtcbn1cblxuLyoqIEludGVyZmFjZSBvZiBhIHJ1bGVzZXQgYXMgaXQncyBzcGVjaWZpZWQgaW4gdGhlIGpzb24gZmlsZSAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlc2V0IHtcbiAgLyoqIFVuaXF1ZSBpZCBvZiB0aGUgcnVsZXNldCovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBOYW1lIG9mIHRoZSBydWxlc2V0ICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJ1bGVzZXQgZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBMaXN0IG9mIHJ1bGVzIGFzc29jaWF0ZWQgdG8gdGhlIHJ1bGVzZXQgKi9cbiAgcnVsZXM6IFJ1bGVbXTtcbiAgLyoqIE9wdGlvbmFsIGRhdGUgcmFuZ2Ugd2hlcmUgdGhlIHJ1bGVzZXQgd2lsbCBiZSBleGVjdXRlZCovXG4gIHZhbGlkaXR5UmFuZ2U/OiB7ZnJvbT86IHN0cmluZzsgdG8/OiBzdHJpbmd9O1xuICAvKiogQ29tcG9uZW50IGxpbmtlZCB0byB0aGUgcnVsZXNldCwgaWYgc2V0IGl0IHdpbGwgZGlzYWJsZSB0aGUgcnVsZXNldCBleGVjdXRpb24gcGVyIGRlZmF1bHQsIHdhaXRpbmcgdG8gYSBzdWJzY3JpcHRpb24gKi9cbiAgbGlua2VkQ29tcG9uZW50Pzoge2xpYnJhcnk6IHN0cmluZzsgbmFtZTogc3RyaW5nfTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VuZ2luZS9zdHJ1Y3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZXNFbmdpbmVBY3Rpb24gfSBmcm9tICdAbzNyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBOYXRpdmVUeXBlcyA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXI7XG4vKiogR2VuZXJpYyBvcGVyYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmQ8VCBleHRlbmRzIHN0cmluZywgVSBleHRlbmRzIE5hdGl2ZVR5cGVzID0gTmF0aXZlVHlwZXM+IHtcbiAgLyoqIE9wZXJhbmQgdHlwZSAqL1xuICB0eXBlOiBUO1xuICAvKiogU3RhdGljIHZhbHVlICovXG4gIHZhbHVlOiBVO1xufVxuXG4vKiogT3BlcmFuZCBiYXNlZCBvbiBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmRGYWN0IGV4dGVuZHMgT3BlcmFuZDwnRkFDVCcsIHN0cmluZz4ge1xuICAvKiogSlNPTlBhdGggdG8gZGVlcCByZWFkIHRoZSBmYWN0IHZhbHVlICovXG4gIHBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKiBDb25kaXRpb24gYXZhaWxhYmxlIG9wZXJhbmQgdHlwZXMgKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPcGVyYW5kID0gT3BlcmFuZEZhY3QgfCBPcGVyYW5kPCdSVU5USU1FX0ZBQ1QnLCBzdHJpbmc+IHwgT3BlcmFuZDwnTElURVJBTCc+O1xuXG4vKiogQ29uZGl0aW9uIG9iamVjdCBpbnRlcmZhY2Ugd2l0aCB1bmFyeSBvcGVyYXRvciAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogT3BlcmF0b3IgKi9cbiAgb3BlcmF0b3I6IHN0cmluZztcbn1cblxuLyoqIENvbmRpdGlvbiBvYmplY3QgaW50ZXJmYWNlICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogUmlnaHQgSGFuZCBTaWRlICovXG4gIHJoczogR2VuZXJpY09wZXJhbmQ7XG4gIC8qKiBPcGVyYXRvciAqL1xuICBvcGVyYXRvcjogc3RyaW5nO1xufVxuXG4vKiogTmVzdGVkIENvbmRpdGlvbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBOZXN0ZWRDb25kaXRpb24gPSBVbmFyeU9wZXJhdGlvbiB8IEJpbmFyeU9wZXJhdGlvbiB8IFRvcExldmVsQ29uZGl0aW9uO1xuLyoqIEFsbCBDb25kaXRpb24gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpZC1ibGFja2xpc3RcbmV4cG9ydCB0eXBlIEFsbENvbmRpdGlvbnMgPSB7YWxsOiBOZXN0ZWRDb25kaXRpb25bXTsgYW55PzogbmV2ZXI7IG5vdD86IG5ldmVyfTtcbi8qKiBBbnkgQ29uZGl0aW9uICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaWQtYmxhY2tsaXN0XG5leHBvcnQgdHlwZSBBbnlDb25kaXRpb25zID0ge2FueTogTmVzdGVkQ29uZGl0aW9uW107IGFsbD86IG5ldmVyOyBub3Q/OiBuZXZlcn07XG4vKiogTm90IENvbmRpdGlvbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWJsYWNrbGlzdFxuZXhwb3J0IHR5cGUgTm90Q29uZGl0aW9uID0ge25vdDogTmVzdGVkQ29uZGl0aW9uOyBhbGw/OiBuZXZlcjsgYW55PzogbmV2ZXJ9O1xuLyoqIFRvcCBsZXZlbCBDb25kaXRpb24gaW4gdGhlIHJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IHR5cGUgVG9wTGV2ZWxDb25kaXRpb24gPSBBbGxDb25kaXRpb25zIHwgQW55Q29uZGl0aW9ucyB8IE5vdENvbmRpdGlvbiB8IFVuYXJ5T3BlcmF0aW9uIHwgQmluYXJ5T3BlcmF0aW9uO1xuXG4vKiogRXZlbnQgZW1pdHRlZCBpbiBjYXNlIHRoZSBydWxlIGNvbmRpdGlvbiBpcyBwYXNzZWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUV2ZW50IHtcbiAgLyoqIFR5cGUgKG9yIG5hbWUpIG9mIHRoZSBldmVudCAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBsaXN0IG9mIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBldmVudCAqL1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQmFzZSBmb3IgdGhlIFJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcbiAgLyoqIFVuaXF1ZSBpZCBhc3NvY2lhdGVkIHRvIGEgcnVsZSovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBSdW50aW1lIGZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0UnVudGltZUZhY3RzOiBzdHJpbmdbXTtcbiAgLyoqIEBkZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTIuIEZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAvKiogUnVudGltZSBmYWN0cyB0aGF0IGFyZSBjcmVhdGVkL3VwZGF0ZWQgYnkgdGhlIHJ1bGUqL1xuICBvdXRwdXRSdW50aW1lRmFjdHM6IHN0cmluZ1tdO1xuICAvKiogTmFtZSBvZiB0aGUgcnVsZSovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIHJvb3RFbGVtZW50IG9mIHRoZSBydWxlLCB0aGF0IGNvbnRhaW5zIGVpdGhlciBhIGJsb2NrLCBlaXRoZXIgYW4gYWN0aW9uIGxpc3QgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHJvb3RFbGVtZW50OiBBbGxCbG9jaztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIHBvc3NpYmxlIHR5cGVzIG9mIGFjdGlvbnMgcmVzdWx0ZWQgYXMgb3V0cHV0IG9mIGEgcnVsZSBleGVjdXRpb25cbiAqIEBkZXByZWNhdGVkIHRoZSBhY3Rpb25zIGFyZSBub3cgZGVwZW5kaW5nIG9mIGV4ZWN1dGluZyBtb2R1bGVzXG4gKi9cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGVzID0gJ1NFVF9GQUNUJyB8ICdVUERBVEVfQ09ORklHJyB8ICdVUERBVEVfQVNTRVQnIHwgJ1VQREFURV9MT0NBTElTQVRJT04nIHwgJ1VQREFURV9QTEFDRUhPTERFUic7XG5cbi8qKiBUeXBlcyBhc3NvY2lhdGVkIHRvIHRoZSBjb25kaXRpb24gYmxvY2tzIHRoYXQgYXJlIHN1cHBvcnRlZCAqL1xuZXhwb3J0IHR5cGUgQ29uZGl0aW9uQmxvY2tUeXBlcyA9ICdJRl9FTFNFJztcblxuLyoqIEludGVyZmFjZSBjb21tb24gdG8gYWxsIGVsZW1lbnRzICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVFbGVtZW50IHtcbiAgLyoqIFR5cGUgb2YgdGhlIGVsZW1lbnQqL1xuICBlbGVtZW50VHlwZTogc3RyaW5nO1xufVxuXG4vKiogSW50ZXJmYWNlIGNvbW1vbiB0byBhbGwgYWN0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25CbG9jayBleHRlbmRzIFJ1bGVFbGVtZW50LCBSdWxlc0VuZ2luZUFjdGlvbiB7XG4gIGVsZW1lbnRUeXBlOiAnQUNUSU9OJztcbiAgYWN0aW9uVHlwZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xufVxuXG4vKiogSW50ZXJmYWNlIG9mIGFjdGlvbiB0aGF0IHNldHMgb3IgdXBkYXRlcyBhIHRlbXBvcmFyeSBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayBleHRlbmRzIEFjdGlvbkJsb2NrIHtcbiAgYWN0aW9uVHlwZTogJ1NFVF9GQUNUJztcbiAgZmFjdDogc3RyaW5nO1xufVxuXG4vKiogSW50ZXJmYWNlIG9mIGJsb2NrIFJ1bGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUJsb2NrIGV4dGVuZHMgUnVsZUVsZW1lbnQge1xuICBlbGVtZW50VHlwZTogJ1JVTEVfQkxPQ0snO1xuICBibG9ja1R5cGU6IENvbmRpdGlvbkJsb2NrVHlwZXM7XG59XG5cbi8qKiBBbGwgc3VwcG9ydGVkIGJsb2NrcyAoc3VwcG9ydGluZyBuZXN0ZWQgc3RydWN0dXJlKSAqL1xuZXhwb3J0IHR5cGUgQWxsQmxvY2sgPVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIElmRWxzZUJsb2NrXG4gIHwgKEFjdGlvbkJsb2NrICYgUmVjb3JkPHN0cmluZywgYW55Pik7XG5cbi8qKiBCbG9jayByZXByZXNlbnRpbmcgYW4gJ2lmIGVsc2UnIGNvbmRpdGlvbi4gSWYgbm8gY29uZGl0aW9uIHNwZWNpZmllZCBpdCB3aWxsIGV4ZWN1dGUgc3VjY2VzcyBlbGVtZW50cyBvbmx5ICovXG5leHBvcnQgaW50ZXJmYWNlIElmRWxzZUJsb2NrIGV4dGVuZHMgUnVsZUJsb2NrIHtcbiAgYmxvY2tUeXBlOiAnSUZfRUxTRSc7XG4gIHN1Y2Nlc3NFbGVtZW50czogQWxsQmxvY2tbXTtcbiAgZmFpbHVyZUVsZW1lbnRzOiBBbGxCbG9ja1tdO1xuICBjb25kaXRpb24/OiBUb3BMZXZlbENvbmRpdGlvbjtcbn1cblxuLyoqIEludGVyZmFjZSBvZiBhIHJ1bGVzZXQgYXMgaXQncyBzcGVjaWZpZWQgaW4gdGhlIGpzb24gZmlsZSAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlc2V0IHtcbiAgLyoqIFVuaXF1ZSBpZCBvZiB0aGUgcnVsZXNldCovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBOYW1lIG9mIHRoZSBydWxlc2V0ICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJ1bGVzZXQgZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBMaXN0IG9mIHJ1bGVzIGFzc29jaWF0ZWQgdG8gdGhlIHJ1bGVzZXQgKi9cbiAgcnVsZXM6IFJ1bGVbXTtcbiAgLyoqIE9wdGlvbmFsIGRhdGUgcmFuZ2Ugd2hlcmUgdGhlIHJ1bGVzZXQgd2lsbCBiZSBleGVjdXRlZCovXG4gIHZhbGlkaXR5UmFuZ2U/OiB7ZnJvbT86IHN0cmluZzsgdG8/OiBzdHJpbmd9O1xuICAvKipcbiAgICogQ29tcG9uZW50cyBsaW5rZWQgdG8gdGhlIHJ1bGVzZXQuIElmIHByZXNlbnQgdGhlIHJ1bGVzZXQgd2lsbCBub3QgYmUgYWN0aXZlIGJ5IGRlZmF1bHQuXG4gICAqICdvcicgY29uZGl0aW9uOiBJZiBhdCBsZWFzdCBvbmUgY29tcG9uZW50IGhhcyBzdWJzY3JpYmVkLCB0aGUgcnVsZXNldCB3aWxsIGJlY29tZSBhY3RpdmUuXG4gICAqIElmIHByb3ZpZGVkLCB0aGUge0BsaW5rIGxpbmtlZENvbXBvbmVudH0gcHJvcGVydHkgd2lsbCBub3QgYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uXG4gICAqL1xuICBsaW5rZWRDb21wb25lbnRzPzoge29yOiB7bGlicmFyeTogc3RyaW5nOyBuYW1lOiBzdHJpbmd9W119O1xuICAvKipcbiAgICogQ29tcG9uZW50IGxpbmtlZCB0byB0aGUgcnVsZXNldCwgaWYgc2V0IGl0IHdpbGwgZGlzYWJsZSB0aGUgcnVsZXNldCBleGVjdXRpb24gcGVyIGRlZmF1bHQsIHdhaXRpbmcgdG8gYSBzdWJzY3JpcHRpb25cbiAgICogQGRlcHJlY2F0ZWQgSXQgd2lsbCBiZSByZW1vdmVkIGluIHYxMiwgdXNlIHtAbGluayBsaW5rZWRDb21wb25lbnRzfSBpbnN0ZWFkXG4gICAqL1xuICBsaW5rZWRDb21wb25lbnQ/OiB7bGlicmFyeTogc3RyaW5nOyBuYW1lOiBzdHJpbmd9O1xufVxuIl19
@@ -16,15 +16,15 @@ export class RulesEngineRunnerModule {
16
16
  ]
17
17
  };
18
18
  }
19
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerModule, imports: [StoreModule,
19
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesEngineRunnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: RulesEngineRunnerModule, imports: [StoreModule,
21
21
  RulesetsStoreModule,
22
22
  LoggerModule] }); }
23
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerModule, imports: [StoreModule,
23
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesEngineRunnerModule, imports: [StoreModule,
24
24
  RulesetsStoreModule,
25
25
  LoggerModule] }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesEngineRunnerModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -3,7 +3,7 @@ import { select, Store } from '@ngrx/store';
3
3
  import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
4
4
  import { filter, map, shareReplay, switchMap } from 'rxjs/operators';
5
5
  import { EngineDebugger, operatorList, RulesEngine } from '../../engine/index';
6
- import { selectActiveRuleSets, selectAllRulesets, selectRuleSetLinkComponents } from '../../stores';
6
+ import { selectActiveRuleSets, selectAllRulesets, selectComponentsLinkedToRuleset } from '../../stores';
7
7
  import { RULES_ENGINE_OPTIONS } from '../rules-engine.token';
8
8
  import { LoggerService } from '@o3r/logger';
9
9
  import * as i0 from "@angular/core";
@@ -25,12 +25,7 @@ export class RulesEngineRunnerService {
25
25
  });
26
26
  this.ruleSets$ = combineLatest([
27
27
  this.store.pipe(select(selectActiveRuleSets)),
28
- this.linkedComponents$.pipe(switchMap((linkedComponentsNamesMap) => this.store.pipe(select(selectRuleSetLinkComponents), map((linkComponentMap) => Object.keys(linkedComponentsNamesMap)
29
- .filter((linkedComponentsName) => linkedComponentsNamesMap[linkedComponentsName] > 0)
30
- .reduce((acc, compName) => {
31
- acc.push(...(linkComponentMap[compName] || []));
32
- return acc;
33
- }, [])))))
28
+ this.linkedComponents$.pipe(switchMap((linkedComponentsNamesMap) => this.store.pipe(select(selectComponentsLinkedToRuleset), map((rulesetsWithLinkedComponentsMap) => Object.keys(rulesetsWithLinkedComponentsMap.or).filter((rulesetId) => rulesetsWithLinkedComponentsMap.or[rulesetId].some((componentId) => linkedComponentsNamesMap[componentId] > 0))))))
34
29
  ]).pipe(map(([activeRulesets, linkedComponentsRulesetsIds]) => ([...activeRulesets, ...linkedComponentsRulesetsIds])));
35
30
  this.events$ = this.ruleSets$.pipe(this.engine.getEventStream(), shareReplay(1));
36
31
  this.upsertOperators(operatorList);
@@ -105,10 +100,10 @@ export class RulesEngineRunnerService {
105
100
  this.linkedComponents$.next(newMap);
106
101
  }
107
102
  }
108
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerService, deps: [{ token: i1.Store }, { token: i2.LoggerService }, { token: RULES_ENGINE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
109
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerService }); }
103
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesEngineRunnerService, deps: [{ token: i1.Store }, { token: i2.LoggerService }, { token: RULES_ENGINE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
104
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesEngineRunnerService }); }
110
105
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesEngineRunnerService, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesEngineRunnerService, decorators: [{
112
107
  type: Injectable
113
108
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.LoggerService }, { type: undefined, decorators: [{
114
109
  type: Optional
@@ -116,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
116
111
  type: Inject,
117
112
  args: [RULES_ENGINE_OPTIONS]
118
113
  }] }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bm5lci9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxvQkFBb0IsRUFBNEIsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sYUFBYSxDQUFDOzs7O0FBSTFDLE1BQU0sT0FBTyx3QkFBd0I7SUFzQm5DLFlBQ21CLEtBQTJCLEVBQzNCLE1BQXFCLEVBQ0ksWUFBd0M7UUFGakUsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXRCOUIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSzVDLHNEQUFzRDtRQUM1QyxzQkFBaUIsR0FBK0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFXbEcsOEJBQThCO1FBQ2QsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FB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LHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBMEJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25CbG9jaywgRmFjdCwgT3BlcmF0b3IsIFJ1bGVzZXQsIFVuYXJ5T3BlcmF0b3J9IGZyb20gJy4uLy4uL2VuZ2luZS9pbmRleCc7XG5pbXBvcnQge0VuZ2luZURlYnVnZ2VyLCBvcGVyYXRvckxpc3QsIFJ1bGVzRW5naW5lfSBmcm9tICcuLi8uLi9lbmdpbmUvaW5kZXgnO1xuaW1wb3J0IHR5cGUge1J1bGVzZXRzU3RvcmV9IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5pbXBvcnQge3NlbGVjdEFjdGl2ZVJ1bGVTZXRzLCBzZWxlY3RBbGxSdWxlc2V0cywgc2VsZWN0UnVsZVNldExpbmtDb21wb25lbnRzfSBmcm9tICcuLi8uLi9zdG9yZXMnO1xuaW1wb3J0IHtSVUxFU19FTkdJTkVfT1BUSU9OUywgUnVsZXNFbmdpbmVTZXJ2aWNlT3B0aW9uc30gZnJvbSAnLi4vcnVsZXMtZW5naW5lLnRva2VuJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBSdWxlc0VuZ2luZUFjdGlvbkhhbmRsZXIgfSBmcm9tICdAbzNyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIC8qKiBSdWxlc2V0cyB0byByZXN0cmljdCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBlbmdpbmUgKi9cbiAgcHJvdGVjdGVkIHJ1bGVTZXRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXSB8IHVuZGVmaW5lZD47XG5cbiAgLyoqIE9ic2VydmFibGUgb2YgY29tcG9uZW50IGxpbmtlZCB0byB0aGUgY29tcG9uZW50ICovXG4gIHByb3RlY3RlZCBsaW5rZWRDb21wb25lbnRzJDogQmVoYXZpb3JTdWJqZWN0PHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG5cbiAgLyoqIE1hcCBvZiBlbmdpbmVzIGRlZGljYXRlZCB0byBlYWNoIHJ1bGUgc2V0cyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lOiBSdWxlc0VuZ2luZTtcblxuICAvKiogc3RyZWFtIG9mIHRoZSB3aG9sZSBydWxlc2V0IHJlc3VsdHMgKi9cbiAgcHVibGljIGV2ZW50cyQ6IE9ic2VydmFibGU8QWN0aW9uQmxvY2tbXT47XG5cbiAgLyoqIEVuYWJsZSBhY3Rpb24gZXhlY3V0aW9uIG9uIG5ldyBzdGF0ZSBjaGFuZ2UgKi9cbiAgcHVibGljIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqIExpc3Qgb2YgYWN0aW9uIGhhbmRsZXJzICovXG4gIHB1YmxpYyByZWFkb25seSBhY3Rpb25IYW5kbGVycyA9IG5ldyBTZXQ8UnVsZXNFbmdpbmVBY3Rpb25IYW5kbGVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IFN0b3JlPFJ1bGVzZXRzU3RvcmU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUlVMRVNfRU5HSU5FX09QVElPTlMpIGVuZ2luZUNvbmZpZz86IFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnMpIHtcbiAgICB0aGlzLmVuYWJsZWQgPSAhZW5naW5lQ29uZmlnPy5kcnlSdW47XG4gICAgdGhpcy5lbmdpbmUgPSBuZXcgUnVsZXNFbmdpbmUoe1xuICAgICAgZGVidWdnZXI6IGVuZ2luZUNvbmZpZz8uZGVidWcgPyBuZXcgRW5naW5lRGVidWdnZXIoe2V2ZW50c1N0YWNrTGltaXQ6IGVuZ2luZUNvbmZpZz8uZGVidWdFdmVudHNTdGFja0xpbWl0fSkgOiB1bmRlZmluZWQsXG4gICAgICBsb2dnZXI6IHRoaXMubG9nZ2VyXG4gICAgfSk7XG4gICAgdGhpcy5ydWxlU2V0cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0QWN0aXZlUnVsZVNldHMpKSxcbiAgICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChsaW5rZWRDb21wb25lbnRzTmFtZXNNYXApID0+IHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgICBzZWxlY3Qoc2VsZWN0UnVsZVNldExpbmtDb21wb25lbnRzKSxcbiAgICAgICAgICBtYXAoKGxpbmtDb21wb25lbnRNYXApID0+IE9iamVjdC5rZXlzKGxpbmtlZENvbXBvbmVudHNOYW1lc01hcClcbiAgICAgICAgICAgIC5maWx0ZXIoKGxpbmtlZENvbXBvbmVudHNOYW1lKSA9PiBsaW5rZWRDb21wb25lbnRzTmFtZXNNYXBbbGlua2VkQ29tcG9uZW50c05hbWVdID4gMClcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY29tcE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgYWNjLnB1c2goLi4uKGxpbmtDb21wb25lbnRNYXBbY29tcE5hbWVdIHx8IFtdKSk7XG4gICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCBbXSBhcyBzdHJpbmdbXSkpXG4gICAgICAgICkpXG4gICAgICApXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2FjdGl2ZVJ1bGVzZXRzLCBsaW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSA9PiAoWy4uLmFjdGl2ZVJ1bGVzZXRzLCAuLi5saW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSlcbiAgICApO1xuXG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ydWxlU2V0cyQucGlwZShcbiAgICAgIHRoaXMuZW5naW5lLmdldEV2ZW50U3RyZWFtPEFjdGlvbkJsb2NrPigpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JMaXN0KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KHNlbGVjdEFsbFJ1bGVzZXRzKVxuICAgICAgKS5zdWJzY3JpYmUoKHJ1bGVzZXRzOiBSdWxlc2V0W10pID0+IHRoaXMuZW5naW5lLnVwc2VydFJ1bGVzZXRzKHJ1bGVzZXRzKSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ldmVudHMkLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMuZW5hYmxlZCkpLnN1YnNjcmliZShhc3luYyAoZXZlbnRzKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTdGFydCBSdWxlcyBFbmdpbmUgYWN0aW9uIGV4ZWN1dGVkJyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUFjdGlvbnMoZXZlbnRzKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FsbCBSdWxlcyBFbmdpbmUgYWN0aW9ucyBleGVjdXRlZCcpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKiBAcGFyYW0gYWN0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbkJsb2NrW10pIHtcbiAgICBjb25zdCBhY3Rpb25IYW5kbGVycyA9IFsuLi50aGlzLmFjdGlvbkhhbmRsZXJzXTtcblxuICAgIGNvbnN0IHN1cHBvcnRlZEFjdGlvbnMgPSBuZXcgU2V0KGFjdGlvbkhhbmRsZXJzLm1hcCgoaGFuZGxlcikgPT4gaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9ucykuZmxhdCgpKTtcblxuICAgIGNvbnN0IGFjdGlvbk1hcHMgPSBhY3Rpb25zXG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgaXNLbm93biA9IHN1cHBvcnRlZEFjdGlvbnMuaGFzKGFjdGlvbi5hY3Rpb25UeXBlKTtcbiAgICAgICAgaWYgKCFpc0tub3duKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihgVGhlIGFjdGlvbiAke2FjdGlvbi5hY3Rpb25UeXBlfSBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgaGFuZGxlcmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0tub3duO1xuICAgICAgfSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgYWN0aW9uKSA9PiB7XG4gICAgICAgIGFjY1thY3Rpb24uYWN0aW9uVHlwZV0gfHw9IFtdO1xuICAgICAgICBhY2NbYWN0aW9uLmFjdGlvblR5cGVdLnB1c2goYWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIEFjdGlvbkJsb2NrW10+KTtcblxuICAgIGNvbnN0IGhhbmRsaW5nID0gYWN0aW9uSGFuZGxlcnNcbiAgICAgIC5tYXAoKGhhbmRsZXIpID0+XG4gICAgICAgIGhhbmRsZXIuZXhlY3V0ZUFjdGlvbnMoXG4gICAgICAgICAgaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcigoc3VwcG9ydGVkQWN0aW9uKSA9PiBhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pXG4gICAgICAgICAgICAucmVkdWNlPEFjdGlvbkJsb2NrW10+KChhY2MsIHN1cHBvcnRlZEFjdGlvbikgPT4gYWNjLmNvbmNhdChhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pLCBbXSlcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGhhbmRsaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IGZhY3QgaW4gcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBmYWN0cyBmYWN0IGxpc3QgdG8gYWRkIC8gdXBkYXRlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0RmFjdHMoZmFjdHM6IEZhY3Q8dW5rbm93bj4gfCBGYWN0PHVua25vd24+W10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRGYWN0cyhmYWN0cyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBvcGVyYXRvciBpbiBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIG9wZXJhdG9ycyBvcGVyYXRvciBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydE9wZXJhdG9ycyhvcGVyYXRvcnM6IChPcGVyYXRvcjxhbnksIGFueT4gfCBVbmFyeU9wZXJhdG9yPGFueT4pW10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgdGVtcG9yYXJ5IGEgcnVsZSBzZXRcbiAgICogQHBhcmFtIGNvbXBvbmVudENvbXB1dGVkTmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgdG8gZW5hYmxlIHRoZSBydWxlc2V0IGZvclxuICAgKi9cbiAgcHVibGljIGVuYWJsZVJ1bGVTZXRGb3IoY29tcG9uZW50Q29tcHV0ZWROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdNYXAgPSB0aGlzLmxpbmtlZENvbXBvbmVudHMkLnZhbHVlO1xuICAgIG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID0gbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gPyBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSArIDEgOiAxO1xuICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQubmV4dChuZXdNYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGVtcG9yYXJ5IGEgcnVsZSBzZXRcbiAgICogQHBhcmFtIGNvbXBvbmVudENvbXB1dGVkTmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgdG8gZGlzYWJsZSB0aGUgcnVsZXNldCBmb3JcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlUnVsZVNldEZvcihjb21wb25lbnRDb21wdXRlZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5ld01hcCA9IHRoaXMubGlua2VkQ29tcG9uZW50cyQudmFsdWU7XG4gICAgaWYgKG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID4gMCkge1xuICAgICAgbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0tLTtcbiAgICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQubmV4dChuZXdNYXApO1xuICAgIH1cbiAgfVxufVxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bm5lci9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFN0UsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLCtCQUErQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsRUFBNEIsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sYUFBYSxDQUFDOzs7O0FBSTFDLE1BQU0sT0FBTyx3QkFBd0I7SUFzQm5DLFlBQ21CLEtBQTJCLEVBQzNCLE1BQXFCLEVBQ0ksWUFBd0M7UUFGakUsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXRCOUIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSzVDLHNEQUFzRDtRQUM1QyxzQkFBaUIsR0FBK0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFXbEcsOEJBQThCO1FBQ2QsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQU1uRSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzVCLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdkgsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ3pCLFNBQVMsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDckQsTUFBTSxDQUFDLCtCQUErQixDQUFDLEVBQ3ZDLEdBQUcsQ0FBQyxDQUFDLCtCQUErQixFQUFFLEVBQUUsQ0FDdEMsTUFBTSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNuRSwrQkFBK0IsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDL0csQ0FDRixDQUNGLENBQUMsQ0FDSDtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsMkJBQTJCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQzlHLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBZSxFQUN6QyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQzNFLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztZQUN4RCxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNPLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBc0I7UUFDbkQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVoRCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFcEcsTUFBTSxVQUFVLEdBQUcsT0FBTzthQUN2QixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqQixNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLE1BQU0sQ0FBQyxVQUFVLG1DQUFtQyxDQUFDLENBQUM7WUFDdkYsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFtQyxDQUFDLENBQUM7UUFFMUMsTUFBTSxRQUFRLEdBQUcsY0FBYzthQUM1QixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNmLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxpQkFBaUI7YUFDdEIsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDeEQsTUFBTSxDQUFnQixDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2hHLENBQ0YsQ0FBQztRQUVKLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLEtBQXNDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsU0FBc0Q7UUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMscUJBQTZCO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlCQUFpQixDQUFDLHFCQUE2QjtRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1FBQzVDLElBQUksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO2lJQWpKVSx3QkFBd0Isb0VBeUJiLG9CQUFvQjtxSUF6Qi9CLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBMEJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25CbG9jaywgRmFjdCwgT3BlcmF0b3IsIFJ1bGVzZXQsIFVuYXJ5T3BlcmF0b3J9IGZyb20gJy4uLy4uL2VuZ2luZS9pbmRleCc7XG5pbXBvcnQge0VuZ2luZURlYnVnZ2VyLCBvcGVyYXRvckxpc3QsIFJ1bGVzRW5naW5lfSBmcm9tICcuLi8uLi9lbmdpbmUvaW5kZXgnO1xuaW1wb3J0IHR5cGUge1J1bGVzZXRzU3RvcmV9IGZyb20gJy4uLy4uL3N0b3Jlcyc7XG5pbXBvcnQge3NlbGVjdEFjdGl2ZVJ1bGVTZXRzLCBzZWxlY3RBbGxSdWxlc2V0cywgc2VsZWN0Q29tcG9uZW50c0xpbmtlZFRvUnVsZXNldH0gZnJvbSAnLi4vLi4vc3RvcmVzJztcbmltcG9ydCB7UlVMRVNfRU5HSU5FX09QVElPTlMsIFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnN9IGZyb20gJy4uL3J1bGVzLWVuZ2luZS50b2tlbic7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB0eXBlIHtSdWxlc0VuZ2luZUFjdGlvbkhhbmRsZXJ9IGZyb20gJ0BvM3IvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSdWxlc0VuZ2luZVJ1bm5lclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLyoqIFJ1bGVzZXRzIHRvIHJlc3RyaWN0IHRoZSBleGVjdXRpb24gb2YgdGhlIGVuZ2luZSAqL1xuICBwcm90ZWN0ZWQgcnVsZVNldHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdIHwgdW5kZWZpbmVkPjtcblxuICAvKiogT2JzZXJ2YWJsZSBvZiBjb21wb25lbnQgbGlua2VkIHRvIHRoZSBjb21wb25lbnQgKi9cbiAgcHJvdGVjdGVkIGxpbmtlZENvbXBvbmVudHMkOiBCZWhhdmlvclN1YmplY3Q8eyBba2V5OiBzdHJpbmddOiBudW1iZXIgfT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcblxuICAvKiogTWFwIG9mIGVuZ2luZXMgZGVkaWNhdGVkIHRvIGVhY2ggcnVsZSBzZXRzICovXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU6IFJ1bGVzRW5naW5lO1xuXG4gIC8qKiBzdHJlYW0gb2YgdGhlIHdob2xlIHJ1bGVzZXQgcmVzdWx0cyAqL1xuICBwdWJsaWMgZXZlbnRzJDogT2JzZXJ2YWJsZTxBY3Rpb25CbG9ja1tdPjtcblxuICAvKiogRW5hYmxlIGFjdGlvbiBleGVjdXRpb24gb24gbmV3IHN0YXRlIGNoYW5nZSAqL1xuICBwdWJsaWMgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKiogTGlzdCBvZiBhY3Rpb24gaGFuZGxlcnMgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvbkhhbmRsZXJzID0gbmV3IFNldDxSdWxlc0VuZ2luZUFjdGlvbkhhbmRsZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8UnVsZXNldHNTdG9yZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSVUxFU19FTkdJTkVfT1BUSU9OUykgZW5naW5lQ29uZmlnPzogUnVsZXNFbmdpbmVTZXJ2aWNlT3B0aW9ucykge1xuICAgIHRoaXMuZW5hYmxlZCA9ICFlbmdpbmVDb25maWc/LmRyeVJ1bjtcbiAgICB0aGlzLmVuZ2luZSA9IG5ldyBSdWxlc0VuZ2luZSh7XG4gICAgICBkZWJ1Z2dlcjogZW5naW5lQ29uZmlnPy5kZWJ1ZyA/IG5ldyBFbmdpbmVEZWJ1Z2dlcih7ZXZlbnRzU3RhY2tMaW1pdDogZW5naW5lQ29uZmlnPy5kZWJ1Z0V2ZW50c1N0YWNrTGltaXR9KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXJcbiAgICB9KTtcbiAgICB0aGlzLnJ1bGVTZXRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RBY3RpdmVSdWxlU2V0cykpLFxuICAgICAgdGhpcy5saW5rZWRDb21wb25lbnRzJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGxpbmtlZENvbXBvbmVudHNOYW1lc01hcCkgPT4gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICAgIHNlbGVjdChzZWxlY3RDb21wb25lbnRzTGlua2VkVG9SdWxlc2V0KSxcbiAgICAgICAgICBtYXAoKHJ1bGVzZXRzV2l0aExpbmtlZENvbXBvbmVudHNNYXApID0+XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhydWxlc2V0c1dpdGhMaW5rZWRDb21wb25lbnRzTWFwLm9yKS5maWx0ZXIoKHJ1bGVzZXRJZCkgPT5cbiAgICAgICAgICAgICAgcnVsZXNldHNXaXRoTGlua2VkQ29tcG9uZW50c01hcC5vcltydWxlc2V0SWRdLnNvbWUoKGNvbXBvbmVudElkKSA9PiBsaW5rZWRDb21wb25lbnRzTmFtZXNNYXBbY29tcG9uZW50SWRdID4gMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICkpXG4gICAgICApXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2FjdGl2ZVJ1bGVzZXRzLCBsaW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSA9PiAoWy4uLmFjdGl2ZVJ1bGVzZXRzLCAuLi5saW5rZWRDb21wb25lbnRzUnVsZXNldHNJZHNdKSlcbiAgICApO1xuXG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ydWxlU2V0cyQucGlwZShcbiAgICAgIHRoaXMuZW5naW5lLmdldEV2ZW50U3RyZWFtPEFjdGlvbkJsb2NrPigpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JMaXN0KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KHNlbGVjdEFsbFJ1bGVzZXRzKVxuICAgICAgKS5zdWJzY3JpYmUoKHJ1bGVzZXRzOiBSdWxlc2V0W10pID0+IHRoaXMuZW5naW5lLnVwc2VydFJ1bGVzZXRzKHJ1bGVzZXRzKSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5ldmVudHMkLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMuZW5hYmxlZCkpLnN1YnNjcmliZShhc3luYyAoZXZlbnRzKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTdGFydCBSdWxlcyBFbmdpbmUgYWN0aW9uIGV4ZWN1dGVkJyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUFjdGlvbnMoZXZlbnRzKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FsbCBSdWxlcyBFbmdpbmUgYWN0aW9ucyBleGVjdXRlZCcpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKiBAcGFyYW0gYWN0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbkJsb2NrW10pIHtcbiAgICBjb25zdCBhY3Rpb25IYW5kbGVycyA9IFsuLi50aGlzLmFjdGlvbkhhbmRsZXJzXTtcblxuICAgIGNvbnN0IHN1cHBvcnRlZEFjdGlvbnMgPSBuZXcgU2V0KGFjdGlvbkhhbmRsZXJzLm1hcCgoaGFuZGxlcikgPT4gaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9ucykuZmxhdCgpKTtcblxuICAgIGNvbnN0IGFjdGlvbk1hcHMgPSBhY3Rpb25zXG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgaXNLbm93biA9IHN1cHBvcnRlZEFjdGlvbnMuaGFzKGFjdGlvbi5hY3Rpb25UeXBlKTtcbiAgICAgICAgaWYgKCFpc0tub3duKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihgVGhlIGFjdGlvbiAke2FjdGlvbi5hY3Rpb25UeXBlfSBkb2VzIG5vdCBoYXZlIHJlZ2lzdGVyZWQgaGFuZGxlcmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0tub3duO1xuICAgICAgfSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgYWN0aW9uKSA9PiB7XG4gICAgICAgIGFjY1thY3Rpb24uYWN0aW9uVHlwZV0gfHw9IFtdO1xuICAgICAgICBhY2NbYWN0aW9uLmFjdGlvblR5cGVdLnB1c2goYWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIEFjdGlvbkJsb2NrW10+KTtcblxuICAgIGNvbnN0IGhhbmRsaW5nID0gYWN0aW9uSGFuZGxlcnNcbiAgICAgIC5tYXAoKGhhbmRsZXIpID0+XG4gICAgICAgIGhhbmRsZXIuZXhlY3V0ZUFjdGlvbnMoXG4gICAgICAgICAgaGFuZGxlci5zdXBwb3J0aW5nQWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcigoc3VwcG9ydGVkQWN0aW9uKSA9PiBhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pXG4gICAgICAgICAgICAucmVkdWNlPEFjdGlvbkJsb2NrW10+KChhY2MsIHN1cHBvcnRlZEFjdGlvbikgPT4gYWNjLmNvbmNhdChhY3Rpb25NYXBzW3N1cHBvcnRlZEFjdGlvbl0pLCBbXSlcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGhhbmRsaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IGZhY3QgaW4gcnVsZXMgZW5naW5lXG4gICAqIEBwYXJhbSBmYWN0cyBmYWN0IGxpc3QgdG8gYWRkIC8gdXBkYXRlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0RmFjdHMoZmFjdHM6IEZhY3Q8dW5rbm93bj4gfCBGYWN0PHVua25vd24+W10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRGYWN0cyhmYWN0cyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBvcGVyYXRvciBpbiBydWxlcyBlbmdpbmVcbiAgICogQHBhcmFtIG9wZXJhdG9ycyBvcGVyYXRvciBsaXN0IHRvIGFkZCAvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwc2VydE9wZXJhdG9ycyhvcGVyYXRvcnM6IChPcGVyYXRvcjxhbnksIGFueT4gfCBVbmFyeU9wZXJhdG9yPGFueT4pW10pIHtcbiAgICB0aGlzLmVuZ2luZS51cHNlcnRPcGVyYXRvcnMob3BlcmF0b3JzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgdGVtcG9yYXJ5IGEgcnVsZSBzZXRcbiAgICogQHBhcmFtIGNvbXBvbmVudENvbXB1dGVkTmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgdG8gZW5hYmxlIHRoZSBydWxlc2V0IGZvclxuICAgKi9cbiAgcHVibGljIGVuYWJsZVJ1bGVTZXRGb3IoY29tcG9uZW50Q29tcHV0ZWROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdNYXAgPSB0aGlzLmxpbmtlZENvbXBvbmVudHMkLnZhbHVlO1xuICAgIG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID0gbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0gPyBuZXdNYXBbY29tcG9uZW50Q29tcHV0ZWROYW1lXSArIDEgOiAxO1xuICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQubmV4dChuZXdNYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGVtcG9yYXJ5IGEgcnVsZSBzZXRcbiAgICogQHBhcmFtIGNvbXBvbmVudENvbXB1dGVkTmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgdG8gZGlzYWJsZSB0aGUgcnVsZXNldCBmb3JcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlUnVsZVNldEZvcihjb21wb25lbnRDb21wdXRlZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5ld01hcCA9IHRoaXMubGlua2VkQ29tcG9uZW50cyQudmFsdWU7XG4gICAgaWYgKG5ld01hcFtjb21wb25lbnRDb21wdXRlZE5hbWVdID4gMCkge1xuICAgICAgbmV3TWFwW2NvbXBvbmVudENvbXB1dGVkTmFtZV0tLTtcbiAgICAgIHRoaXMubGlua2VkQ29tcG9uZW50cyQubmV4dChuZXdNYXApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -21,10 +21,10 @@ export class RulesetsEffect {
21
21
  */
22
22
  this.upsertEntitiesFromApi$ = createEffect(() => this.actions$.pipe(ofType(upsertRulesetsEntitiesFromApi), mergeMap((payload) => from(payload.call).pipe(map((reply) => upsertRulesetsEntities({ entities: reply, requestId: payload.requestId })), catchError((err) => of(failRulesetsEntities({ error: err, requestId: payload.requestId })))))));
23
23
  }
24
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsEffect, deps: [{ token: i1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsEffect }); }
24
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesetsEffect, deps: [{ token: i1.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesetsEffect }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsEffect, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesetsEffect, decorators: [{
28
28
  type: Injectable
29
29
  }], ctorParameters: () => [{ type: i1.Actions }] });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldHMuZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9ydWxlc2V0cy9ydWxlc2V0cy5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM5QixNQUFNLG9CQUFvQixDQUFDOzs7QUFFNUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQStCekIsWUFBc0IsUUFBaUI7UUFBakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQTdCdkM7O1dBRUc7UUFDSSx3QkFBbUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsMEJBQTBCLENBQUMsRUFDbEMsc0JBQXNCLENBQ3BCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFDLENBQUMsRUFDdEYsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEVBQ2pGLHFCQUFxQixDQUN0QixDQUNGLENBQ0YsQ0FBQztRQUVGOztXQUVHO1FBQ0ksMkJBQXNCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEVBQ3JDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsRUFDdkYsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFGLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFHRixDQUFDO2lJQWhDVSxjQUFjO3FJQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgZnJvbUFwaUVmZmVjdFN3aXRjaE1hcCB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGNhbmNlbFJ1bGVzZXRzUmVxdWVzdCxcbiAgZmFpbFJ1bGVzZXRzRW50aXRpZXMsXG4gIHNldFJ1bGVzZXRzRW50aXRpZXMsXG4gIHNldFJ1bGVzZXRzRW50aXRpZXNGcm9tQXBpLFxuICB1cHNlcnRSdWxlc2V0c0VudGl0aWVzLFxuICB1cHNlcnRSdWxlc2V0c0VudGl0aWVzRnJvbUFwaVxufSBmcm9tICcuL3J1bGVzZXRzLmFjdGlvbnMnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIGFzeW5jIFJ1bGVzZXRzIGFjdGlvbnNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bGVzZXRzRWZmZWN0IHtcblxuICAvKipcbiAgICogU2V0IHRoZSBlbnRpdGllcyB3aXRoIHRoZSByZXBseSBjb250ZW50LCBkaXNwYXRjaCBmYWlsUnVsZXNldHNFbnRpdGllcyBpZiBpdCBjYXRjaGVzIGEgZmFpbHVyZVxuICAgKi9cbiAgcHVibGljIHNldEVudGl0aWVzRnJvbUFwaSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2V0UnVsZXNldHNFbnRpdGllc0Zyb21BcGkpLFxuICAgICAgZnJvbUFwaUVmZmVjdFN3aXRjaE1hcChcbiAgICAgICAgKHJlcGx5LCBhY3Rpb24pID0+IHNldFJ1bGVzZXRzRW50aXRpZXMoe2VudGl0aWVzOiByZXBseSwgcmVxdWVzdElkOiBhY3Rpb24ucmVxdWVzdElkfSksXG4gICAgICAgIChlcnJvciwgYWN0aW9uKSA9PiBvZihmYWlsUnVsZXNldHNFbnRpdGllcyh7ZXJyb3IsIHJlcXVlc3RJZDogYWN0aW9uLnJlcXVlc3RJZH0pKSxcbiAgICAgICAgY2FuY2VsUnVsZXNldHNSZXF1ZXN0XG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIC8qKlxuICAgKiBVcHNlcnQgdGhlIGVudGl0aWVzIHdpdGggdGhlIHJlcGx5IGNvbnRlbnQsIGRpc3BhdGNoIGZhaWxSdWxlc2V0c0VudGl0aWVzIGlmIGl0IGNhdGNoZXMgYSBmYWlsdXJlXG4gICAqL1xuICBwdWJsaWMgdXBzZXJ0RW50aXRpZXNGcm9tQXBpJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZSh1cHNlcnRSdWxlc2V0c0VudGl0aWVzRnJvbUFwaSksXG4gICAgICBtZXJnZU1hcCgocGF5bG9hZCkgPT5cbiAgICAgICAgZnJvbShwYXlsb2FkLmNhbGwpLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXBseSkgPT4gdXBzZXJ0UnVsZXNldHNFbnRpdGllcyh7ZW50aXRpZXM6IHJlcGx5LCByZXF1ZXN0SWQ6IHBheWxvYWQucmVxdWVzdElkfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gb2YoZmFpbFJ1bGVzZXRzRW50aXRpZXMoe2Vycm9yOiBlcnIsIHJlcXVlc3RJZDogcGF5bG9hZC5yZXF1ZXN0SWR9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFjdGlvbnMkOiBBY3Rpb25zKSB7XG4gIH1cbn1cbiJdfQ==
@@ -22,13 +22,13 @@ export class RulesetsStoreModule {
22
22
  ]
23
23
  };
24
24
  }
25
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] }); }
27
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, providers: [
25
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesetsStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: RulesetsStoreModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] }); }
27
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesetsStoreModule, providers: [
28
28
  { provide: RULESETS_REDUCER_TOKEN, useFactory: getDefaultRulesetsReducer }
29
29
  ], imports: [StoreModule.forFeature(RULESETS_STORE_NAME, RULESETS_REDUCER_TOKEN), EffectsModule.forFeature([RulesetsEffect])] }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RulesetsStoreModule, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: RulesetsStoreModule, decorators: [{
32
32
  type: NgModule,
33
33
  args: [{
34
34
  imports: [