valtech-components 2.0.934 → 2.0.936

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.
@@ -30,7 +30,9 @@ export class PageLinksComponent {
30
30
  return this._props();
31
31
  }
32
32
  constructor() {
33
- this._props = signal({ links: [] });
33
+ this._props = signal({ links: [] }, {
34
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
35
+ });
34
36
  this.links = computed(() => this._props().links ?? []);
35
37
  addIcons({ chevronForwardOutline, openOutline });
36
38
  }
@@ -147,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
147
149
  type: Input,
148
150
  args: [{ required: true }]
149
151
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1saW5rcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BhZ2UtbGlua3MvcGFnZS1saW5rcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHcEU7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBMERILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsdUNBQXVDO0lBQ3ZDLElBQStCLEtBQUssQ0FBQyxLQUF3QjtRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQU1EO1FBSlEsV0FBTSxHQUFHLE1BQU0sQ0FBb0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVoRCxVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFHMUQsUUFBUSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRVMsVUFBVSxDQUFDLElBQWM7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdEQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQXBCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixzR0FyRG5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaURULGsrQ0FsRFMsWUFBWSwrQkFBRSxVQUFVLG9PQUFFLE9BQU87OzRGQXNEaEMsa0JBQWtCO2tCQXpEOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTt3REFJaEIsS0FBSztzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uRm9yd2FyZE91dGxpbmUsIG9wZW5PdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgUGFnZUxpbmssIFBhZ2VMaW5rc01ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1wYWdlLWxpbmtzYCDigJQgc3RhY2tlZCBsaXN0IG9mIG5hdmlnYXRpb25hbCBsaW5rcyB3aXRoIG9wdGlvbmFsIGRpdmlkZXJzLlxuICogVXNlZCBmb3IgbGVnYWwvcG9saWNpZXMsIGZvb3RlciBsaW5rIGNvbHVtbnMsIFwiYWJvdXRcIiBzZWN0aW9ucywgZXRjLlxuICpcbiAqIEVhY2ggaXRlbSBjYW4gbmF2aWdhdGUgdmlhIEFuZ3VsYXIgYHJvdXRlckxpbmtgIChTUEEpIG9yIGV4dGVybmFsIGBocmVmYC5cbiAqIERldGVjdHMgYWJzb2x1dGUgVVJMcyAoYGh0dHAocyk6Ly9gKSB0byBhcHBseSBgdGFyZ2V0PVwiX2JsYW5rXCJgIGJ5IGRlZmF1bHQuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS1saW5rcyBbcHJvcHNdPVwie1xuICogICBsaW5rczogW1xuICogICAgIHsgbGFiZWw6ICdUZXJtcycsIHJvdXRlckxpbms6ICcvbGVnYWwvdGVybXMnIH0sXG4gKiAgICAgeyBsYWJlbDogJ1ByaXZhY3knLCByb3V0ZXJMaW5rOiAnL2xlZ2FsL3ByaXZhY3knIH0sXG4gKiAgICAgeyBsYWJlbDogJ1Zpc2l0IG1haW4gc2l0ZScsIGhyZWY6ICdodHRwczovL215dmFsdGVjaC5jb20nLCBpY29uOiAnb3Blbi1vdXRsaW5lJyB9LFxuICogICBdLFxuICogfVwiPjwvdmFsLXBhZ2UtbGlua3M+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wYWdlLWxpbmtzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTGluaywgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJ2YWwtcGFnZS1saW5rc1wiXG4gICAgICBbY2xhc3Mubm8tZGl2aWRlcnNdPVwicHJvcHMuc2hvd0RpdmlkZXJzID09PSBmYWxzZVwiXG4gICAgICBbY2xhc3Muc2l6ZS1zbWFsbF09XCJwcm9wcy5zaXplID09PSAnc21hbGwnXCJcbiAgICAgIFtjbGFzcy5zaXplLWxhcmdlXT1cInByb3BzLnNpemUgPT09ICdsYXJnZSdcIlxuICAgID5cbiAgICAgIEBmb3IgKGxpbmsgb2YgbGlua3MoKTsgdHJhY2sgbGluay5sYWJlbDsgbGV0IGxhc3QgPSAkbGFzdCkge1xuICAgICAgICBAaWYgKGxpbmsucm91dGVyTGluaykge1xuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cInZhbC1wYWdlLWxpbmtzX19pdGVtXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImxpbmsucm91dGVyTGlua1wiXG4gICAgICAgICAgICBbY2xhc3MuaXMtbGFzdF09XCJsYXN0XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5hcmlhTGFiZWwgfHwgbGluay5sYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWwtcGFnZS1saW5rc19fbGFiZWxcIj57eyBsaW5rLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgQGlmIChsaW5rLmljb24pIHtcbiAgICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidmFsLXBhZ2UtbGlua3NfX2ljb25cIiBbbmFtZV09XCJsaW5rLmljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsLXBhZ2UtbGlua3NfX2ljb24gdmFsLXBhZ2UtbGlua3NfX2ljb24tLWRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIGlmIChsaW5rLmhyZWYpIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtcGFnZS1saW5rc19faXRlbVwiXG4gICAgICAgICAgICBbaHJlZl09XCJsaW5rLmhyZWZcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWxhc3RdPVwibGFzdFwiXG4gICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXNFeHRlcm5hbChsaW5rKSA/ICdfYmxhbmsnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5yZWxdPVwiaXNFeHRlcm5hbChsaW5rKSA/ICdub29wZW5lciBub3JlZmVycmVyJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmFyaWFMYWJlbCB8fCBsaW5rLmxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbC1wYWdlLWxpbmtzX19sYWJlbFwiPnt7IGxpbmsubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICBAaWYgKGxpbmsuaWNvbikge1xuICAgICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ2YWwtcGFnZS1saW5rc19faWNvblwiIFtuYW1lXT1cImxpbmsuaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGlvbi1pY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtcGFnZS1saW5rc19faWNvbiB2YWwtcGFnZS1saW5rc19faWNvbi0tZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiaXNFeHRlcm5hbChsaW5rKSA/ICdvcGVuLW91dGxpbmUnIDogJ2NoZXZyb24tZm9yd2FyZC1vdXRsaW5lJ1wiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9uYXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3BhZ2UtbGlua3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VMaW5rc0NvbXBvbmVudCB7XG4gIC8qKiBQYWdlIGxpbmtzIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgcHJvcHModmFsdWU6IFBhZ2VMaW5rc01ldGFkYXRhKSB7XG4gICAgdGhpcy5fcHJvcHMuc2V0KHZhbHVlKTtcbiAgfVxuICBnZXQgcHJvcHMoKTogUGFnZUxpbmtzTWV0YWRhdGEge1xuICAgIHJldHVybiB0aGlzLl9wcm9wcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJvcHMgPSBzaWduYWw8UGFnZUxpbmtzTWV0YWRhdGE+KHsgbGlua3M6IFtdIH0pO1xuXG4gIHByb3RlY3RlZCBsaW5rcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3Byb3BzKCkubGlua3MgPz8gW10pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgY2hldnJvbkZvcndhcmRPdXRsaW5lLCBvcGVuT3V0bGluZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0V4dGVybmFsKGxpbms6IFBhZ2VMaW5rKTogYm9vbGVhbiB7XG4gICAgaWYgKGxpbmsuZXh0ZXJuYWwgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGxpbmsuZXh0ZXJuYWw7XG4gICAgcmV0dXJuICEhbGluay5ocmVmICYmIC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QobGluay5ocmVmKTtcbiAgfVxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1saW5rcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BhZ2UtbGlua3MvcGFnZS1saW5rcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHcEU7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBMERILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsdUNBQXVDO0lBQ3ZDLElBQStCLEtBQUssQ0FBQyxLQUF3QjtRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQVdEO1FBVFEsV0FBTSxHQUFHLE1BQU0sQ0FDckIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQ2I7WUFDRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDcEUsQ0FDRixDQUFDO1FBRVEsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRzFELFFBQVEsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVTLFVBQVUsQ0FBQyxJQUFjO1FBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0F6QlUsa0JBQWtCO21HQUFsQixrQkFBa0Isc0dBckRuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVCxrK0NBbERTLFlBQVksK0JBQUUsVUFBVSxvT0FBRSxPQUFPOzs0RkFzRGhDLGtCQUFrQjtrQkF6RDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFDbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRFQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07d0RBSWhCLEtBQUs7c0JBQW5DLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkZvcndhcmRPdXRsaW5lLCBvcGVuT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IFBhZ2VMaW5rLCBQYWdlTGlua3NNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIGB2YWwtcGFnZS1saW5rc2Ag4oCUIHN0YWNrZWQgbGlzdCBvZiBuYXZpZ2F0aW9uYWwgbGlua3Mgd2l0aCBvcHRpb25hbCBkaXZpZGVycy5cbiAqIFVzZWQgZm9yIGxlZ2FsL3BvbGljaWVzLCBmb290ZXIgbGluayBjb2x1bW5zLCBcImFib3V0XCIgc2VjdGlvbnMsIGV0Yy5cbiAqXG4gKiBFYWNoIGl0ZW0gY2FuIG5hdmlnYXRlIHZpYSBBbmd1bGFyIGByb3V0ZXJMaW5rYCAoU1BBKSBvciBleHRlcm5hbCBgaHJlZmAuXG4gKiBEZXRlY3RzIGFic29sdXRlIFVSTHMgKGBodHRwKHMpOi8vYCkgdG8gYXBwbHkgYHRhcmdldD1cIl9ibGFua1wiYCBieSBkZWZhdWx0LlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXBhZ2UtbGlua3MgW3Byb3BzXT1cIntcbiAqICAgbGlua3M6IFtcbiAqICAgICB7IGxhYmVsOiAnVGVybXMnLCByb3V0ZXJMaW5rOiAnL2xlZ2FsL3Rlcm1zJyB9LFxuICogICAgIHsgbGFiZWw6ICdQcml2YWN5Jywgcm91dGVyTGluazogJy9sZWdhbC9wcml2YWN5JyB9LFxuICogICAgIHsgbGFiZWw6ICdWaXNpdCBtYWluIHNpdGUnLCBocmVmOiAnaHR0cHM6Ly9teXZhbHRlY2guY29tJywgaWNvbjogJ29wZW4tb3V0bGluZScgfSxcbiAqICAgXSxcbiAqIH1cIj48L3ZhbC1wYWdlLWxpbmtzPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGFnZS1saW5rcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlckxpbmssIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuYXZcbiAgICAgIGNsYXNzPVwidmFsLXBhZ2UtbGlua3NcIlxuICAgICAgW2NsYXNzLm5vLWRpdmlkZXJzXT1cInByb3BzLnNob3dEaXZpZGVycyA9PT0gZmFsc2VcIlxuICAgICAgW2NsYXNzLnNpemUtc21hbGxdPVwicHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1sYXJnZV09XCJwcm9wcy5zaXplID09PSAnbGFyZ2UnXCJcbiAgICA+XG4gICAgICBAZm9yIChsaW5rIG9mIGxpbmtzKCk7IHRyYWNrIGxpbmsubGFiZWw7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgICAgQGlmIChsaW5rLnJvdXRlckxpbmspIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtcGFnZS1saW5rc19faXRlbVwiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJsaW5rLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWxhc3RdPVwibGFzdFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmsuYXJpYUxhYmVsIHx8IGxpbmsubGFiZWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLXBhZ2UtbGlua3NfX2xhYmVsXCI+e3sgbGluay5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAobGluay5pY29uKSB7XG4gICAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cInZhbC1wYWdlLWxpbmtzX19pY29uXCIgW25hbWVdPVwibGluay5pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInZhbC1wYWdlLWxpbmtzX19pY29uIHZhbC1wYWdlLWxpbmtzX19pY29uLS1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1mb3J3YXJkLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2lvbi1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSBpZiAobGluay5ocmVmKSB7XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLXBhZ2UtbGlua3NfX2l0ZW1cIlxuICAgICAgICAgICAgW2hyZWZdPVwibGluay5ocmVmXCJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1sYXN0XT1cImxhc3RcIlxuICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cImlzRXh0ZXJuYWwobGluaykgPyAnX2JsYW5rJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIucmVsXT1cImlzRXh0ZXJuYWwobGluaykgPyAnbm9vcGVuZXIgbm9yZWZlcnJlcicgOiBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5hcmlhTGFiZWwgfHwgbGluay5sYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWwtcGFnZS1saW5rc19fbGFiZWxcIj57eyBsaW5rLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgQGlmIChsaW5rLmljb24pIHtcbiAgICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidmFsLXBhZ2UtbGlua3NfX2ljb25cIiBbbmFtZV09XCJsaW5rLmljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsLXBhZ2UtbGlua3NfX2ljb24gdmFsLXBhZ2UtbGlua3NfX2ljb24tLWRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImlzRXh0ZXJuYWwobGluaykgPyAnb3Blbi1vdXRsaW5lJyA6ICdjaGV2cm9uLWZvcndhcmQtb3V0bGluZSdcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2lvbi1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvbmF2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9wYWdlLWxpbmtzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlTGlua3NDb21wb25lbnQge1xuICAvKiogUGFnZSBsaW5rcyBjb25maWd1cmF0aW9uIG9iamVjdC4gKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc2V0IHByb3BzKHZhbHVlOiBQYWdlTGlua3NNZXRhZGF0YSkge1xuICAgIHRoaXMuX3Byb3BzLnNldCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHByb3BzKCk6IFBhZ2VMaW5rc01ldGFkYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fcHJvcHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Byb3BzID0gc2lnbmFsPFBhZ2VMaW5rc01ldGFkYXRhPihcbiAgICB7IGxpbmtzOiBbXSB9LFxuICAgIHtcbiAgICAgIGVxdWFsOiAoYSwgYikgPT4gYSA9PT0gYiB8fCBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYiksXG4gICAgfVxuICApO1xuXG4gIHByb3RlY3RlZCBsaW5rcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3Byb3BzKCkubGlua3MgPz8gW10pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgY2hldnJvbkZvcndhcmRPdXRsaW5lLCBvcGVuT3V0bGluZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0V4dGVybmFsKGxpbms6IFBhZ2VMaW5rKTogYm9vbGVhbiB7XG4gICAgaWYgKGxpbmsuZXh0ZXJuYWwgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGxpbmsuZXh0ZXJuYWw7XG4gICAgcmV0dXJuICEhbGluay5ocmVmICYmIC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QobGluay5ocmVmKTtcbiAgfVxufVxuIl19
@@ -34,6 +34,8 @@ import * as i0 from "@angular/core";
34
34
  */
35
35
  /** Máximo de entradas retenidas en el buffer. */
36
36
  const MAX_ENTRIES = 150;
37
+ /** Ventana de throttle del volcado al signal (ms). Acota la frecuencia de CD. */
38
+ const FLUSH_THROTTLE_MS = 250;
37
39
  export class DebugConsoleComponent {
38
40
  constructor() {
39
41
  /** Gate maestro: `false` (sin provider o `enabled: false`) → todo inerte. */
@@ -129,18 +131,23 @@ export class DebugConsoleComponent {
129
131
  this.scheduleFlush();
130
132
  }
131
133
  /**
132
- * Vuelca el buffer al signal `entries` en un microtask — fuera del contexto
133
- * reactivo desde el que se haya llamado `console.log`. Batchea: múltiples
134
- * logs del mismo tick resultan en una sola escritura del signal.
134
+ * Vuelca el buffer al signal `entries`, diferido y throttled.
135
+ *
136
+ * `entries.set()` dispara change-detection (el signal se lee en el template).
137
+ * Si algo emite `console.*` en cada CD (p.ej. un binding que loguea), un flush
138
+ * por microtask re-encola CD inmediatamente → loop infinito que congela el
139
+ * navegador. El throttle por tiempo acota el peor caso a ~1 CD/ventana en vez
140
+ * de 1 CD/microtask: el buffer absorbe todos los logs intermedios en una sola
141
+ * escritura. Sigue fuera del contexto reactivo del `console.log` (evita NG0600).
135
142
  */
136
143
  scheduleFlush() {
137
144
  if (this.flushScheduled)
138
145
  return;
139
146
  this.flushScheduled = true;
140
- queueMicrotask(() => {
147
+ setTimeout(() => {
141
148
  this.flushScheduled = false;
142
149
  this.entries.set([...this.buffer]);
143
- });
150
+ }, FLUSH_THROTTLE_MS);
144
151
  }
145
152
  /** Convierte cualquier argumento a una representación legible de una línea. */
146
153
  stringify(value) {
@@ -234,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
234
241
  }
235
242
  `, styles: [":host{position:fixed;z-index:2147483000;inset:auto 0 0 auto;pointer-events:none}.dbg-fab,.dbg-panel{pointer-events:auto}.dbg-fab{position:fixed;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:50%;border:0;background:#1a1a1a;color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 2px 10px #0006;display:flex;align-items:center;justify-content:center}.dbg-fab__count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#d33;color:#fff;font-size:11px;line-height:18px;text-align:center}.dbg-panel{position:fixed;right:calc(8px + env(safe-area-inset-right,0px));left:calc(8px + env(safe-area-inset-left,0px));bottom:calc(68px + env(safe-area-inset-bottom,0px));max-width:560px;margin:0 auto;max-height:55vh;display:flex;flex-direction:column;background:#101010;color:#eee;border-radius:10px;box-shadow:0 6px 24px #00000080;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dbg-panel__bar{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#1c1c1c;border-bottom:1px solid #2c2c2c}.dbg-panel__title{font-size:12px;font-weight:700}.dbg-panel__actions button{margin-left:8px;background:#2c2c2c;color:#eee;border:0;border-radius:6px;padding:4px 10px;font-size:11px;cursor:pointer}.dbg-panel__body{overflow-y:auto;padding:6px 8px;-webkit-overflow-scrolling:touch}.dbg-line{display:flex;gap:6px;padding:3px 0;font-size:11px;line-height:1.4;border-bottom:1px solid rgba(255,255,255,.04);word-break:break-word}.dbg-line__ts{flex-shrink:0;color:#777}.dbg-line__text{white-space:pre-wrap}.dbg-line--log .dbg-line__text{color:#ddd}.dbg-line--info .dbg-line__text{color:#6cb6ff}.dbg-line--warn .dbg-line__text{color:#f1c40f}.dbg-line--error .dbg-line__text{color:#ff6b6b}.dbg-empty{padding:12px;font-size:11px;color:#777;text-align:center}\n"] }]
236
243
  }] });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctY29uc29sZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RlYnVnLWNvbnNvbGUvZGVidWctY29uc29sZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFFSCxpREFBaUQ7QUFDakQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBNkN4QixNQUFNLE9BQU8scUJBQXFCO0lBM0NsQztRQTRDRSw2RUFBNkU7UUFDcEUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7UUFFOUUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixZQUFPLEdBQUcsTUFBTSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUUvQzs7Ozs7V0FLRztRQUNLLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBQzdCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRS9CLHlFQUF5RTtRQUNqRSxhQUFRLEdBQWlFLEVBQUUsQ0FBQztLQTJHckY7SUF6R0MsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsY0FBYyxFQUFFLENB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T0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzsrR0EzSFUscUJBQXFCO21HQUFyQixxQkFBcUIsNkVBdkN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NUOzs0RkFHVSxxQkFBcUI7a0JBM0NqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sWUFDckM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBWQUxURUNIX0RFQlVHX0NPTlNPTEUgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBEZWJ1Z0xvZ0VudHJ5LCBEZWJ1Z0xvZ0xldmVsIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1kZWJ1Zy1jb25zb2xlYCDigJQgb3ZlcmxheSBkZSBsb2dzIGVuIHBhbnRhbGxhIHBhcmEgZGlhZ27Ds3N0aWNvLlxuICpcbiAqIEhlcnJhbWllbnRhIGRlIGRlc2Fycm9sbG8uIFBlcm1pdGUgbGVlciBsb3MgYGNvbnNvbGUuKmAgZGVzZGUgdW4gUFdBIGVuIGlPU1xuICogYcOxYWRpZG8gYSBsYSBwYW50YWxsYSBkZSBpbmljaW8sIGRvbmRlIGxhIGNvbnNvbGEgZGVsIG5hdmVnYWRvciBubyBlc1xuICogYWNjZXNpYmxlLlxuICpcbiAqIENvbXBvcnRhbWllbnRvOlxuICogIC0gTW9ua2V5LXBhdGNoIGRlIGBjb25zb2xlLmxvZy93YXJuL2Vycm9yL2luZm9gOiBjYWRhIGxsYW1hZGEgdGFtYmnDqW4gZW1wdWphXG4gKiAgICB1bmEgZW50cmFkYSBhbCBidWZmZXIgKMO6bHRpbWFzIH4xNTApIGFkZW3DoXMgZGUgbGxhbWFyIGFsIGBjb25zb2xlYCBvcmlnaW5hbC5cbiAqICAtIEJvdMOzbiBmbG90YW50ZSAoZXNxdWluYSkgcXVlIGFicmUvY2llcnJhIHVuIHBhbmVsIHNjcm9sbGFibGUgY29uIGxhc1xuICogICAgZW50cmFkYXMgbcOhcyBudWV2YXMgYWJham8sIGNvbG9yZWFkYXMgcG9yIG5pdmVsLlxuICogIC0gQm90b25lcyBcImNvcGlhclwiIChhbCBwb3J0YXBhcGVsZXMpIHkgXCJsaW1waWFyXCIuXG4gKlxuICogR2F0ZSBtYWVzdHJvIHbDrWEgYHByb3ZpZGVWYWx0ZWNoRGVidWdDb25zb2xlKHsgZW5hYmxlZCB9KWAgZW4gYG1haW4udHNgLiBTaW5cbiAqIHByb3ZpZGVyIOKAlCBvIGNvbiBgZW5hYmxlZDogZmFsc2VgIOKAlCBlbCBjb21wb25lbnRlIE5PIHBhcmNoZWEgYGNvbnNvbGVgIHkgTk9cbiAqIHJlbmRlcml6YSBuYWRhLiBMYSBhcHAgZGVjaWRlIGVsIHZhbG9yIChub3JtYWxtZW50ZSBgIWVudmlyb25tZW50LnByb2R1Y3Rpb25gKS5cbiAqXG4gKiBpMThuOiBOTyB1c2EgaTE4biBhIHByb3DDs3NpdG8g4oCUIGVzIHVuIGRldi10b29sIHF1ZSBuaW5nw7puIGVuZC11c2VyIHZlO1xuICogbG9zIGxhYmVscyB2YW4gZW4gZXNwYcOxb2wgcGxhbm8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIG1haW4udHNcbiAqIHByb3ZpZGVWYWx0ZWNoRGVidWdDb25zb2xlKHsgZW5hYmxlZDogIWVudmlyb25tZW50LnByb2R1Y3Rpb24gfSksXG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDwhLS0gY29tcG9uZW50ZSByYcOteiwgdW5hIHNvbGEgdmV6IC0tPlxuICogPHZhbC1kZWJ1Zy1jb25zb2xlIC8+XG4gKiBgYGBcbiAqL1xuXG4vKiogTcOheGltbyBkZSBlbnRyYWRhcyByZXRlbmlkYXMgZW4gZWwgYnVmZmVyLiAqL1xuY29uc3QgTUFYX0VOVFJJRVMgPSAxNTA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kZWJ1Zy1jb25zb2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChlbmFibGVkKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImRiZy1mYWJcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wZW4oKSA/ICdDZXJyYXIgY29uc29sYScgOiAnQWJyaXIgY29uc29sYSdcIlxuICAgICAgPlxuICAgICAgICB7eyBvcGVuKCkgPyAnw5cnIDogJ+KAuS/igLonIH19XG4gICAgICAgIEBpZiAoIW9wZW4oKSAmJiBlbnRyaWVzKCkubGVuZ3RoKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctZmFiX19jb3VudFwiPnt7IGVudHJpZXMoKS5sZW5ndGggfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICBAaWYgKG9wZW4oKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJnLXBhbmVsXCIgcm9sZT1cImxvZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYmctcGFuZWxfX2JhclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctcGFuZWxfX3RpdGxlXCI+IERlYnVnIMK3IHt7IGVudHJpZXMoKS5sZW5ndGggfX0gPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctcGFuZWxfX2FjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNvcHkoKVwiPmNvcGlhcjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPmxpbXBpYXI8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJnLXBhbmVsX19ib2R5XCI+XG4gICAgICAgICAgICBAZm9yIChlIG9mIGVudHJpZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYmctbGluZVwiIFtjbGFzc109XCInZGJnLWxpbmUtLScgKyBlLmxldmVsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctbGluZV9fdHNcIj57eyBlLnRzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJnLWxpbmVfX3RleHRcIj57eyBlLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJnLWVtcHR5XCI+U2luIGxvZ3MgdG9kYXbDrWEuPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZGVidWctY29uc29sZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEZWJ1Z0NvbnNvbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKiBHYXRlIG1hZXN0cm86IGBmYWxzZWAgKHNpbiBwcm92aWRlciBvIGBlbmFibGVkOiBmYWxzZWApIOKGkiB0b2RvIGluZXJ0ZS4gKi9cbiAgcmVhZG9ubHkgZW5hYmxlZCA9IGluamVjdChWQUxURUNIX0RFQlVHX0NPTlNPTEUsIHsgb3B0aW9uYWw6IHRydWUgfSk/LmVuYWJsZWQgPz8gZmFsc2U7XG5cbiAgcmVhZG9ubHkgb3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVudHJpZXMgPSBzaWduYWw8RGVidWdMb2dFbnRyeVtdPihbXSk7XG5cbiAgLyoqXG4gICAqIEJ1ZmZlciBwbGFubyAoTk8gc2lnbmFsKS4gYGNvbnNvbGUubG9nYCBwdWVkZSBpbnZvY2Fyc2UgZGVudHJvIGRlIHVuXG4gICAqIGBlZmZlY3QoKWAvYGNvbXB1dGVkKClgOyBlc2NyaWJpciBlbCBzaWduYWwgYGVudHJpZXNgIGFow60gbWlzbW8gZGlzcGFyYVxuICAgKiBORzA2MDAuIEFjdW11bGFtb3MgZW4gZXN0ZSBhcnJheSB5IHZvbGNhbW9zIGFsIHNpZ25hbCBlbiB1biBtaWNyb3Rhc2ssXG4gICAqIGZ1ZXJhIGRlIHRvZG8gY29udGV4dG8gcmVhY3Rpdm8uXG4gICAqL1xuICBwcml2YXRlIGJ1ZmZlcjogRGVidWdMb2dFbnRyeVtdID0gW107XG4gIHByaXZhdGUgZmx1c2hTY2hlZHVsZWQgPSBmYWxzZTtcblxuICAvKiogUmVmZXJlbmNpYXMgYSBsb3MgbcOpdG9kb3Mgb3JpZ2luYWxlcyBwYXJhIHJlc3RhdXJhcmxvcyBlbiBkZXN0cm95LiAqL1xuICBwcml2YXRlIG9yaWdpbmFsOiBQYXJ0aWFsPFJlY29yZDxEZWJ1Z0xvZ0xldmVsLCAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkPj4gPSB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMucGF0Y2hDb25zb2xlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMucmVzdG9yZUNvbnNvbGUoKTtcbiAgfVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4udXBkYXRlKHYgPT4gIXYpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXIgPSBbXTtcbiAgICB0aGlzLmVudHJpZXMuc2V0KFtdKTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZW50cmllcygpXG4gICAgICAubWFwKGUgPT4gYCR7ZS50c30gWyR7ZS5sZXZlbH1dICR7ZS50ZXh0fWApXG4gICAgICAuam9pbignXFxuJyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRmFsbGJhY2sgcGFyYSBXZWJWaWV3cyBzaW4gQ2xpcGJvYXJkIEFQSS5cbiAgICAgIGNvbnN0IHRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgIHRhLnZhbHVlID0gdGV4dDtcbiAgICAgIHRhLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgIHRhLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhKTtcbiAgICAgIHRhLnNlbGVjdCgpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiBzaW4gcmVjdXJzbyBkZSBjb3BpYSBkaXNwb25pYmxlICovXG4gICAgICB9XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRhKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVlbXBsYXphIGxvcyBtw6l0b2RvcyBkZSBgY29uc29sZWAgcGFyYSBlc3BlamFyIGNhZGEgbGxhbWFkYSBhbCBidWZmZXIuICovXG4gIHByaXZhdGUgcGF0Y2hDb25zb2xlKCk6IHZvaWQge1xuICAgIGNvbnN0IGxldmVsczogRGVidWdMb2dMZXZlbFtdID0gWydsb2cnLCAnd2FybicsICdlcnJvcicsICdpbmZvJ107XG4gICAgZm9yIChjb25zdCBsZXZlbCBvZiBsZXZlbHMpIHtcbiAgICAgIGNvbnN0IG9yaWcgPSBjb25zb2xlW2xldmVsXS5iaW5kKGNvbnNvbGUpIGFzICguLi5hOiB1bmtub3duW10pID0+IHZvaWQ7XG4gICAgICB0aGlzLm9yaWdpbmFsW2xldmVsXSA9IG9yaWc7XG4gICAgICBjb25zb2xlW2xldmVsXSA9ICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICAgICAgb3JpZyguLi5hcmdzKTtcbiAgICAgICAgdGhpcy5wdXNoKGxldmVsLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlc3RhdXJhIGxvcyBtw6l0b2RvcyBvcmlnaW5hbGVzIGRlIGBjb25zb2xlYC4gKi9cbiAgcHJpdmF0ZSByZXN0b3JlQ29uc29sZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGxldmVsIG9mIE9iamVjdC5rZXlzKHRoaXMub3JpZ2luYWwpIGFzIERlYnVnTG9nTGV2ZWxbXSkge1xuICAgICAgY29uc3Qgb3JpZyA9IHRoaXMub3JpZ2luYWxbbGV2ZWxdO1xuICAgICAgaWYgKG9yaWcpIHtcbiAgICAgICAgY29uc29sZVtsZXZlbF0gPSBvcmlnO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9yaWdpbmFsID0ge307XG4gIH1cblxuICAvKipcbiAgICogQWdyZWdhIHVuYSBlbnRyYWRhIGFsIGJ1ZmZlciBwbGFubyB5IHByb2dyYW1hIGVsIHZvbGNhZG8gYWwgc2lnbmFsLlxuICAgKiBFbCB2b2xjYWRvIHNlIGRpZmllcmUgYSB1biBtaWNyb3Rhc2s6IGBjb25zb2xlLmxvZ2AgcHVlZGUgbGxhbWFyc2UgZGVzZGVcbiAgICogZGVudHJvIGRlIHVuIGBlZmZlY3QoKWAsIHkgZXNjcmliaXIgdW4gc2lnbmFsIGFow60gbGFuemFyw61hIE5HMDYwMC5cbiAgICovXG4gIHByaXZhdGUgcHVzaChsZXZlbDogRGVidWdMb2dMZXZlbCwgYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dCA9IGFyZ3MubWFwKGEgPT4gdGhpcy5zdHJpbmdpZnkoYSkpLmpvaW4oJyAnKTtcbiAgICBjb25zdCB0cyA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgxMSwgMjMpO1xuICAgIHRoaXMuYnVmZmVyLnB1c2goeyB0cywgbGV2ZWwsIHRleHQgfSk7XG4gICAgaWYgKHRoaXMuYnVmZmVyLmxlbmd0aCA+IE1BWF9FTlRSSUVTKSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyLnNsaWNlKHRoaXMuYnVmZmVyLmxlbmd0aCAtIE1BWF9FTlRSSUVTKTtcbiAgICB9XG4gICAgdGhpcy5zY2hlZHVsZUZsdXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogVnVlbGNhIGVsIGJ1ZmZlciBhbCBzaWduYWwgYGVudHJpZXNgIGVuIHVuIG1pY3JvdGFzayDigJQgZnVlcmEgZGVsIGNvbnRleHRvXG4gICAqIHJlYWN0aXZvIGRlc2RlIGVsIHF1ZSBzZSBoYXlhIGxsYW1hZG8gYGNvbnNvbGUubG9nYC4gQmF0Y2hlYTogbcO6bHRpcGxlc1xuICAgKiBsb2dzIGRlbCBtaXNtbyB0aWNrIHJlc3VsdGFuIGVuIHVuYSBzb2xhIGVzY3JpdHVyYSBkZWwgc2lnbmFsLlxuICAgKi9cbiAgcHJpdmF0ZSBzY2hlZHVsZUZsdXNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZsdXNoU2NoZWR1bGVkKSByZXR1cm47XG4gICAgdGhpcy5mbHVzaFNjaGVkdWxlZCA9IHRydWU7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgdGhpcy5mbHVzaFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5lbnRyaWVzLnNldChbLi4udGhpcy5idWZmZXJdKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBDb252aWVydGUgY3VhbHF1aWVyIGFyZ3VtZW50byBhIHVuYSByZXByZXNlbnRhY2nDs24gbGVnaWJsZSBkZSB1bmEgbMOtbmVhLiAqL1xuICBwcml2YXRlIHN0cmluZ2lmeSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBFcnJvcikgcmV0dXJuIGAke3ZhbHVlLm5hbWV9OiAke3ZhbHVlLm1lc3NhZ2V9YDtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctY29uc29sZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RlYnVnLWNvbnNvbGUvZGVidWctY29uc29sZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFFSCxpREFBaUQ7QUFDakQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBRXhCLGlGQUFpRjtBQUNqRixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQTZDOUIsTUFBTSxPQUFPLHFCQUFxQjtJQTNDbEM7UUE0Q0UsNkVBQTZFO1FBQ3BFLFlBQU8sR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDO1FBRTlFLFNBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsWUFBTyxHQUFHLE1BQU0sQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFFL0M7Ozs7O1dBS0c7UUFDSyxXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUM3QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUUvQix5RUFBeUU7UUFDakUsYUFBUSxHQUFpRSxFQUFFLENBQUM7S0FnSHJGO0lBOUdDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENB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SyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckUsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzsrR0FoSVUscUJBQXFCO21HQUFyQixxQkFBcUIsNkVBdkN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NUOzs0RkFHVSxxQkFBcUI7a0JBM0NqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sWUFDckM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBWQUxURUNIX0RFQlVHX0NPTlNPTEUgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBEZWJ1Z0xvZ0VudHJ5LCBEZWJ1Z0xvZ0xldmVsIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1kZWJ1Zy1jb25zb2xlYCDigJQgb3ZlcmxheSBkZSBsb2dzIGVuIHBhbnRhbGxhIHBhcmEgZGlhZ27Ds3N0aWNvLlxuICpcbiAqIEhlcnJhbWllbnRhIGRlIGRlc2Fycm9sbG8uIFBlcm1pdGUgbGVlciBsb3MgYGNvbnNvbGUuKmAgZGVzZGUgdW4gUFdBIGVuIGlPU1xuICogYcOxYWRpZG8gYSBsYSBwYW50YWxsYSBkZSBpbmljaW8sIGRvbmRlIGxhIGNvbnNvbGEgZGVsIG5hdmVnYWRvciBubyBlc1xuICogYWNjZXNpYmxlLlxuICpcbiAqIENvbXBvcnRhbWllbnRvOlxuICogIC0gTW9ua2V5LXBhdGNoIGRlIGBjb25zb2xlLmxvZy93YXJuL2Vycm9yL2luZm9gOiBjYWRhIGxsYW1hZGEgdGFtYmnDqW4gZW1wdWphXG4gKiAgICB1bmEgZW50cmFkYSBhbCBidWZmZXIgKMO6bHRpbWFzIH4xNTApIGFkZW3DoXMgZGUgbGxhbWFyIGFsIGBjb25zb2xlYCBvcmlnaW5hbC5cbiAqICAtIEJvdMOzbiBmbG90YW50ZSAoZXNxdWluYSkgcXVlIGFicmUvY2llcnJhIHVuIHBhbmVsIHNjcm9sbGFibGUgY29uIGxhc1xuICogICAgZW50cmFkYXMgbcOhcyBudWV2YXMgYWJham8sIGNvbG9yZWFkYXMgcG9yIG5pdmVsLlxuICogIC0gQm90b25lcyBcImNvcGlhclwiIChhbCBwb3J0YXBhcGVsZXMpIHkgXCJsaW1waWFyXCIuXG4gKlxuICogR2F0ZSBtYWVzdHJvIHbDrWEgYHByb3ZpZGVWYWx0ZWNoRGVidWdDb25zb2xlKHsgZW5hYmxlZCB9KWAgZW4gYG1haW4udHNgLiBTaW5cbiAqIHByb3ZpZGVyIOKAlCBvIGNvbiBgZW5hYmxlZDogZmFsc2VgIOKAlCBlbCBjb21wb25lbnRlIE5PIHBhcmNoZWEgYGNvbnNvbGVgIHkgTk9cbiAqIHJlbmRlcml6YSBuYWRhLiBMYSBhcHAgZGVjaWRlIGVsIHZhbG9yIChub3JtYWxtZW50ZSBgIWVudmlyb25tZW50LnByb2R1Y3Rpb25gKS5cbiAqXG4gKiBpMThuOiBOTyB1c2EgaTE4biBhIHByb3DDs3NpdG8g4oCUIGVzIHVuIGRldi10b29sIHF1ZSBuaW5nw7puIGVuZC11c2VyIHZlO1xuICogbG9zIGxhYmVscyB2YW4gZW4gZXNwYcOxb2wgcGxhbm8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIG1haW4udHNcbiAqIHByb3ZpZGVWYWx0ZWNoRGVidWdDb25zb2xlKHsgZW5hYmxlZDogIWVudmlyb25tZW50LnByb2R1Y3Rpb24gfSksXG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDwhLS0gY29tcG9uZW50ZSByYcOteiwgdW5hIHNvbGEgdmV6IC0tPlxuICogPHZhbC1kZWJ1Zy1jb25zb2xlIC8+XG4gKiBgYGBcbiAqL1xuXG4vKiogTcOheGltbyBkZSBlbnRyYWRhcyByZXRlbmlkYXMgZW4gZWwgYnVmZmVyLiAqL1xuY29uc3QgTUFYX0VOVFJJRVMgPSAxNTA7XG5cbi8qKiBWZW50YW5hIGRlIHRocm90dGxlIGRlbCB2b2xjYWRvIGFsIHNpZ25hbCAobXMpLiBBY290YSBsYSBmcmVjdWVuY2lhIGRlIENELiAqL1xuY29uc3QgRkxVU0hfVEhST1RUTEVfTVMgPSAyNTA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kZWJ1Zy1jb25zb2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChlbmFibGVkKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImRiZy1mYWJcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wZW4oKSA/ICdDZXJyYXIgY29uc29sYScgOiAnQWJyaXIgY29uc29sYSdcIlxuICAgICAgPlxuICAgICAgICB7eyBvcGVuKCkgPyAnw5cnIDogJ+KAuS/igLonIH19XG4gICAgICAgIEBpZiAoIW9wZW4oKSAmJiBlbnRyaWVzKCkubGVuZ3RoKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctZmFiX19jb3VudFwiPnt7IGVudHJpZXMoKS5sZW5ndGggfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICBAaWYgKG9wZW4oKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJnLXBhbmVsXCIgcm9sZT1cImxvZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYmctcGFuZWxfX2JhclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctcGFuZWxfX3RpdGxlXCI+IERlYnVnIMK3IHt7IGVudHJpZXMoKS5sZW5ndGggfX0gPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctcGFuZWxfX2FjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNvcHkoKVwiPmNvcGlhcjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPmxpbXBpYXI8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJnLXBhbmVsX19ib2R5XCI+XG4gICAgICAgICAgICBAZm9yIChlIG9mIGVudHJpZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYmctbGluZVwiIFtjbGFzc109XCInZGJnLWxpbmUtLScgKyBlLmxldmVsXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYmctbGluZV9fdHNcIj57eyBlLnRzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJnLWxpbmVfX3RleHRcIj57eyBlLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJnLWVtcHR5XCI+U2luIGxvZ3MgdG9kYXbDrWEuPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZGVidWctY29uc29sZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEZWJ1Z0NvbnNvbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKiBHYXRlIG1hZXN0cm86IGBmYWxzZWAgKHNpbiBwcm92aWRlciBvIGBlbmFibGVkOiBmYWxzZWApIOKGkiB0b2RvIGluZXJ0ZS4gKi9cbiAgcmVhZG9ubHkgZW5hYmxlZCA9IGluamVjdChWQUxURUNIX0RFQlVHX0NPTlNPTEUsIHsgb3B0aW9uYWw6IHRydWUgfSk/LmVuYWJsZWQgPz8gZmFsc2U7XG5cbiAgcmVhZG9ubHkgb3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVudHJpZXMgPSBzaWduYWw8RGVidWdMb2dFbnRyeVtdPihbXSk7XG5cbiAgLyoqXG4gICAqIEJ1ZmZlciBwbGFubyAoTk8gc2lnbmFsKS4gYGNvbnNvbGUubG9nYCBwdWVkZSBpbnZvY2Fyc2UgZGVudHJvIGRlIHVuXG4gICAqIGBlZmZlY3QoKWAvYGNvbXB1dGVkKClgOyBlc2NyaWJpciBlbCBzaWduYWwgYGVudHJpZXNgIGFow60gbWlzbW8gZGlzcGFyYVxuICAgKiBORzA2MDAuIEFjdW11bGFtb3MgZW4gZXN0ZSBhcnJheSB5IHZvbGNhbW9zIGFsIHNpZ25hbCBlbiB1biBtaWNyb3Rhc2ssXG4gICAqIGZ1ZXJhIGRlIHRvZG8gY29udGV4dG8gcmVhY3Rpdm8uXG4gICAqL1xuICBwcml2YXRlIGJ1ZmZlcjogRGVidWdMb2dFbnRyeVtdID0gW107XG4gIHByaXZhdGUgZmx1c2hTY2hlZHVsZWQgPSBmYWxzZTtcblxuICAvKiogUmVmZXJlbmNpYXMgYSBsb3MgbcOpdG9kb3Mgb3JpZ2luYWxlcyBwYXJhIHJlc3RhdXJhcmxvcyBlbiBkZXN0cm95LiAqL1xuICBwcml2YXRlIG9yaWdpbmFsOiBQYXJ0aWFsPFJlY29yZDxEZWJ1Z0xvZ0xldmVsLCAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkPj4gPSB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMucGF0Y2hDb25zb2xlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMucmVzdG9yZUNvbnNvbGUoKTtcbiAgfVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4udXBkYXRlKHYgPT4gIXYpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXIgPSBbXTtcbiAgICB0aGlzLmVudHJpZXMuc2V0KFtdKTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZW50cmllcygpXG4gICAgICAubWFwKGUgPT4gYCR7ZS50c30gWyR7ZS5sZXZlbH1dICR7ZS50ZXh0fWApXG4gICAgICAuam9pbignXFxuJyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRmFsbGJhY2sgcGFyYSBXZWJWaWV3cyBzaW4gQ2xpcGJvYXJkIEFQSS5cbiAgICAgIGNvbnN0IHRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgIHRhLnZhbHVlID0gdGV4dDtcbiAgICAgIHRhLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgIHRhLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhKTtcbiAgICAgIHRhLnNlbGVjdCgpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiBzaW4gcmVjdXJzbyBkZSBjb3BpYSBkaXNwb25pYmxlICovXG4gICAgICB9XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRhKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVlbXBsYXphIGxvcyBtw6l0b2RvcyBkZSBgY29uc29sZWAgcGFyYSBlc3BlamFyIGNhZGEgbGxhbWFkYSBhbCBidWZmZXIuICovXG4gIHByaXZhdGUgcGF0Y2hDb25zb2xlKCk6IHZvaWQge1xuICAgIGNvbnN0IGxldmVsczogRGVidWdMb2dMZXZlbFtdID0gWydsb2cnLCAnd2FybicsICdlcnJvcicsICdpbmZvJ107XG4gICAgZm9yIChjb25zdCBsZXZlbCBvZiBsZXZlbHMpIHtcbiAgICAgIGNvbnN0IG9yaWcgPSBjb25zb2xlW2xldmVsXS5iaW5kKGNvbnNvbGUpIGFzICguLi5hOiB1bmtub3duW10pID0+IHZvaWQ7XG4gICAgICB0aGlzLm9yaWdpbmFsW2xldmVsXSA9IG9yaWc7XG4gICAgICBjb25zb2xlW2xldmVsXSA9ICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICAgICAgb3JpZyguLi5hcmdzKTtcbiAgICAgICAgdGhpcy5wdXNoKGxldmVsLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlc3RhdXJhIGxvcyBtw6l0b2RvcyBvcmlnaW5hbGVzIGRlIGBjb25zb2xlYC4gKi9cbiAgcHJpdmF0ZSByZXN0b3JlQ29uc29sZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGxldmVsIG9mIE9iamVjdC5rZXlzKHRoaXMub3JpZ2luYWwpIGFzIERlYnVnTG9nTGV2ZWxbXSkge1xuICAgICAgY29uc3Qgb3JpZyA9IHRoaXMub3JpZ2luYWxbbGV2ZWxdO1xuICAgICAgaWYgKG9yaWcpIHtcbiAgICAgICAgY29uc29sZVtsZXZlbF0gPSBvcmlnO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9yaWdpbmFsID0ge307XG4gIH1cblxuICAvKipcbiAgICogQWdyZWdhIHVuYSBlbnRyYWRhIGFsIGJ1ZmZlciBwbGFubyB5IHByb2dyYW1hIGVsIHZvbGNhZG8gYWwgc2lnbmFsLlxuICAgKiBFbCB2b2xjYWRvIHNlIGRpZmllcmUgYSB1biBtaWNyb3Rhc2s6IGBjb25zb2xlLmxvZ2AgcHVlZGUgbGxhbWFyc2UgZGVzZGVcbiAgICogZGVudHJvIGRlIHVuIGBlZmZlY3QoKWAsIHkgZXNjcmliaXIgdW4gc2lnbmFsIGFow60gbGFuemFyw61hIE5HMDYwMC5cbiAgICovXG4gIHByaXZhdGUgcHVzaChsZXZlbDogRGVidWdMb2dMZXZlbCwgYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dCA9IGFyZ3MubWFwKGEgPT4gdGhpcy5zdHJpbmdpZnkoYSkpLmpvaW4oJyAnKTtcbiAgICBjb25zdCB0cyA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgxMSwgMjMpO1xuICAgIHRoaXMuYnVmZmVyLnB1c2goeyB0cywgbGV2ZWwsIHRleHQgfSk7XG4gICAgaWYgKHRoaXMuYnVmZmVyLmxlbmd0aCA+IE1BWF9FTlRSSUVTKSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyLnNsaWNlKHRoaXMuYnVmZmVyLmxlbmd0aCAtIE1BWF9FTlRSSUVTKTtcbiAgICB9XG4gICAgdGhpcy5zY2hlZHVsZUZsdXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogVnVlbGNhIGVsIGJ1ZmZlciBhbCBzaWduYWwgYGVudHJpZXNgLCBkaWZlcmlkbyB5IHRocm90dGxlZC5cbiAgICpcbiAgICogYGVudHJpZXMuc2V0KClgIGRpc3BhcmEgY2hhbmdlLWRldGVjdGlvbiAoZWwgc2lnbmFsIHNlIGxlZSBlbiBlbCB0ZW1wbGF0ZSkuXG4gICAqIFNpIGFsZ28gZW1pdGUgYGNvbnNvbGUuKmAgZW4gY2FkYSBDRCAocC5lai4gdW4gYmluZGluZyBxdWUgbG9ndWVhKSwgdW4gZmx1c2hcbiAgICogcG9yIG1pY3JvdGFzayByZS1lbmNvbGEgQ0QgaW5tZWRpYXRhbWVudGUg4oaSIGxvb3AgaW5maW5pdG8gcXVlIGNvbmdlbGEgZWxcbiAgICogbmF2ZWdhZG9yLiBFbCB0aHJvdHRsZSBwb3IgdGllbXBvIGFjb3RhIGVsIHBlb3IgY2FzbyBhIH4xIENEL3ZlbnRhbmEgZW4gdmV6XG4gICAqIGRlIDEgQ0QvbWljcm90YXNrOiBlbCBidWZmZXIgYWJzb3JiZSB0b2RvcyBsb3MgbG9ncyBpbnRlcm1lZGlvcyBlbiB1bmEgc29sYVxuICAgKiBlc2NyaXR1cmEuIFNpZ3VlIGZ1ZXJhIGRlbCBjb250ZXh0byByZWFjdGl2byBkZWwgYGNvbnNvbGUubG9nYCAoZXZpdGEgTkcwNjAwKS5cbiAgICovXG4gIHByaXZhdGUgc2NoZWR1bGVGbHVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mbHVzaFNjaGVkdWxlZCkgcmV0dXJuO1xuICAgIHRoaXMuZmx1c2hTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mbHVzaFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5lbnRyaWVzLnNldChbLi4udGhpcy5idWZmZXJdKTtcbiAgICB9LCBGTFVTSF9USFJPVFRMRV9NUyk7XG4gIH1cblxuICAvKiogQ29udmllcnRlIGN1YWxxdWllciBhcmd1bWVudG8gYSB1bmEgcmVwcmVzZW50YWNpw7NuIGxlZ2libGUgZGUgdW5hIGzDrW5lYS4gKi9cbiAgcHJpdmF0ZSBzdHJpbmdpZnkodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHJldHVybiBgJHt2YWx1ZS5uYW1lfTogJHt2YWx1ZS5tZXNzYWdlfWA7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,9 @@ import { Component, computed, Input, signal } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class LandingSplitComponent {
5
5
  constructor() {
6
- this.props_ = signal({ title: '' });
6
+ this.props_ = signal({ title: '' }, {
7
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
8
+ });
7
9
  this.p = computed(() => this.props_());
8
10
  }
9
11
  set props(v) {
@@ -50,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
50
52
  }], propDecorators: { props: [{
51
53
  type: Input
52
54
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZy1zcGxpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xhbmRpbmctc3BsaXQvbGFuZGluZy1zcGxpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUhuRSxNQUFNLE9BQU8scUJBQXFCO0lBaEhsQztRQWlIbUIsV0FBTSxHQUFHLE1BQU0sQ0FBdUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQU03RCxNQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQzVDO0lBTEMsSUFBYSxLQUFLLENBQUMsQ0FBdUI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQzsrR0FMVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix5R0FsQnRCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULGt1Q0EzR1MsWUFBWTs7NEZBNkdYLHFCQUFxQjtrQkFoSGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQTJGYjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDs4QkFLWSxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmRpbmdTcGxpdE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1sYW5kaW5nLXNwbGl0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5zcGxpdC13cmFwIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBnYXA6IDY0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5zcGxpdC13cmFwLS1yZXZlcnNlZCAuc3BsaXQtdGV4dCB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgfVxuICAgICAgLnNwbGl0LXdyYXAtLXJldmVyc2VkIC5zcGxpdC12aXN1YWwge1xuICAgICAgICBvcmRlcjogMDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5zcGxpdC13cmFwIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgICBnYXA6IDM2cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNwbGl0LXdyYXAtLXJldmVyc2VkIC5zcGxpdC10ZXh0IHtcbiAgICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgfVxuICAgICAgICAuc3BsaXQtd3JhcC0tcmV2ZXJzZWQgLnNwbGl0LXZpc3VhbCB7XG4gICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnNwbGl0LXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC5zcGxpdC1raWNrZXIge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuc3BsaXQtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDI2cHgsIDN2dywgMzhweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGNvbG9yOiAjMDkwZjFiO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLnNwbGl0LWRlc2Mge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgICAgICBjb2xvcjogIzM1NGM2OTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuc3BsaXQtdmlzdWFsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgLnNwbGl0LXRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogI2YwZWFmZjtcbiAgICAgICAgfVxuICAgICAgICAuc3BsaXQtZGVzYyB7XG4gICAgICAgICAgY29sb3I6ICNhMGI0Yzg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuc3BsaXQtdGl0bGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnNwbGl0LXRpdGxlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuc3BsaXQtdGl0bGUge1xuICAgICAgICBjb2xvcjogI2YwZWFmZjtcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuc3BsaXQtZGVzYyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuc3BsaXQtZGVzYyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLnNwbGl0LWRlc2Mge1xuICAgICAgICBjb2xvcjogI2EwYjRjODtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzcGxpdC13cmFwXCIgW2NsYXNzLnNwbGl0LXdyYXAtLXJldmVyc2VkXT1cInAoKS5yZXZlcnNlZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNwbGl0LXRleHRcIj5cbiAgICAgICAgQGlmIChwKCkua2lja2VyKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJzcGxpdC1raWNrZXJcIj57eyBwKCkua2lja2VyIH19PC9wPlxuICAgICAgICB9XG4gICAgICAgIDxoMiBjbGFzcz1cInNwbGl0LXRpdGxlXCI+e3sgcCgpLnRpdGxlIH19PC9oMj5cbiAgICAgICAgQGlmIChwKCkuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICA8cCBjbGFzcz1cInNwbGl0LWRlc2NcIj57eyBwKCkuZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICAgIH1cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FjdGlvbnNdXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNwbGl0LXZpc3VhbFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdmlzdWFsXVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTGFuZGluZ1NwbGl0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wc18gPSBzaWduYWw8TGFuZGluZ1NwbGl0TWV0YWRhdGE+KHsgdGl0bGU6ICcnIH0pO1xuXG4gIEBJbnB1dCgpIHNldCBwcm9wcyh2OiBMYW5kaW5nU3BsaXRNZXRhZGF0YSkge1xuICAgIHRoaXMucHJvcHNfLnNldCh2KTtcbiAgfVxuXG4gIHJlYWRvbmx5IHAgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzXygpKTtcbn1cbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZy1zcGxpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xhbmRpbmctc3BsaXQvbGFuZGluZy1zcGxpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUhuRSxNQUFNLE9BQU8scUJBQXFCO0lBaEhsQztRQWlIbUIsV0FBTSxHQUFHLE1BQU0sQ0FDOUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQ2I7WUFDRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDcEUsQ0FDRixDQUFDO1FBTU8sTUFBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUM1QztJQUxDLElBQWEsS0FBSyxDQUFDLENBQXVCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7K0dBVlUscUJBQXFCO21HQUFyQixxQkFBcUIseUdBbEJ0Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVCxrdUNBM0dTLFlBQVk7OzRGQTZHWCxxQkFBcUI7a0JBaEhqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUEyRmI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7OEJBVVksS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYW5kaW5nU3BsaXRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbGFuZGluZy1zcGxpdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuc3BsaXQtd3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ2FwOiA2NHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuc3BsaXQtd3JhcC0tcmV2ZXJzZWQgLnNwbGl0LXRleHQge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgIH1cbiAgICAgIC5zcGxpdC13cmFwLS1yZXZlcnNlZCAuc3BsaXQtdmlzdWFsIHtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuc3BsaXQtd3JhcCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgICAgZ2FwOiAzNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5zcGxpdC13cmFwLS1yZXZlcnNlZCAuc3BsaXQtdGV4dCB7XG4gICAgICAgICAgb3JkZXI6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnNwbGl0LXdyYXAtLXJldmVyc2VkIC5zcGxpdC12aXN1YWwge1xuICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zcGxpdC10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAuc3BsaXQta2lja2VyIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzcwMjZkZik7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLnNwbGl0LXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyNnB4LCAzdncsIDM4cHgpO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBjb2xvcjogIzA5MGYxYjtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5zcGxpdC1kZXNjIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgICAgICAgY29sb3I6ICMzNTRjNjk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLnNwbGl0LXZpc3VhbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgIC5zcGxpdC10aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICNmMGVhZmY7XG4gICAgICAgIH1cbiAgICAgICAgLnNwbGl0LWRlc2Mge1xuICAgICAgICAgIGNvbG9yOiAjYTBiNGM4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLnNwbGl0LXRpdGxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5zcGxpdC10aXRsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLnNwbGl0LXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICNmMGVhZmY7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLnNwbGl0LWRlc2MsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnNwbGl0LWRlc2MsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5zcGxpdC1kZXNjIHtcbiAgICAgICAgY29sb3I6ICNhMGI0Yzg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwic3BsaXQtd3JhcFwiIFtjbGFzcy5zcGxpdC13cmFwLS1yZXZlcnNlZF09XCJwKCkucmV2ZXJzZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGxpdC10ZXh0XCI+XG4gICAgICAgIEBpZiAocCgpLmtpY2tlcikge1xuICAgICAgICAgIDxwIGNsYXNzPVwic3BsaXQta2lja2VyXCI+e3sgcCgpLmtpY2tlciB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgICA8aDIgY2xhc3M9XCJzcGxpdC10aXRsZVwiPnt7IHAoKS50aXRsZSB9fTwvaDI+XG4gICAgICAgIEBpZiAocCgpLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJzcGxpdC1kZXNjXCI+e3sgcCgpLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICB9XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY3Rpb25zXVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGxpdC12aXN1YWxcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Zpc3VhbF1cIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIExhbmRpbmdTcGxpdENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNfID0gc2lnbmFsPExhbmRpbmdTcGxpdE1ldGFkYXRhPihcbiAgICB7IHRpdGxlOiAnJyB9LFxuICAgIHtcbiAgICAgIGVxdWFsOiAoYSwgYikgPT4gYSA9PT0gYiB8fCBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYiksXG4gICAgfVxuICApO1xuXG4gIEBJbnB1dCgpIHNldCBwcm9wcyh2OiBMYW5kaW5nU3BsaXRNZXRhZGF0YSkge1xuICAgIHRoaXMucHJvcHNfLnNldCh2KTtcbiAgfVxuXG4gIHJlYWRvbmx5IHAgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzXygpKTtcbn1cbiJdfQ==
@@ -3,7 +3,9 @@ import { Component, computed, Input, signal } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class LandingStepsComponent {
5
5
  constructor() {
6
- this.props_ = signal({ steps: [] });
6
+ this.props_ = signal({ steps: [] }, {
7
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
8
+ });
7
9
  this.p = computed(() => this.props_());
8
10
  this.cols = computed(() => this.p().columns ?? 3);
9
11
  this.accentColor = computed(() => this.p().accentColor ?? '');
@@ -40,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
40
42
  }], propDecorators: { props: [{
41
43
  type: Input
42
44
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZy1zdGVwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xhbmRpbmctc3RlcHMvbGFuZGluZy1zdGVwcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBaUduRSxNQUFNLE9BQU8scUJBQXFCO0lBOUZsQztRQStGbUIsV0FBTSxHQUFHLE1BQU0sQ0FBdUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQU03RCxNQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3QyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ25FO0lBUEMsSUFBYSxLQUFLLENBQUMsQ0FBdUI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQzsrR0FMVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix5R0FadEI7Ozs7Ozs7Ozs7R0FVVCxtdUNBekZTLFlBQVk7OzRGQTJGWCxxQkFBcUI7a0JBOUZqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUErRWI7Ozs7Ozs7Ozs7R0FVVDs4QkFLWSxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmRpbmdTdGVwc01ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1sYW5kaW5nLXN0ZXBzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5zdGVwcy1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgfVxuICAgICAgLnN0ZXBzLWdyaWQuY29scy0yIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIH1cbiAgICAgIC5zdGVwcy1ncmlkLmNvbHMtNCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAuc3RlcHMtZ3JpZCxcbiAgICAgICAgLnN0ZXBzLWdyaWQuY29scy0yLFxuICAgICAgICAuc3RlcHMtZ3JpZC5jb2xzLTQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAgIGdhcDogMjRweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc3RlcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tYWNjZW50LCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzcwMjZkZikpO1xuICAgICAgfVxuXG4gICAgICAuc3RlcF9fbnVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYWNjZW50LCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzcwMjZkZikpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgICAgfVxuXG4gICAgICAuc3RlcF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAjMDkwZjFiO1xuICAgICAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgfVxuXG4gICAgICAuc3RlcF9fZGVzYyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgICAgIGNvbG9yOiAjMzU0YzY5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgLnN0ZXBfX3RpdGxlIHtcbiAgICAgICAgICBjb2xvcjogI2YwZWFmZjtcbiAgICAgICAgfVxuICAgICAgICAuc3RlcF9fZGVzYyB7XG4gICAgICAgICAgY29sb3I6ICNhMGI0Yzg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuc3RlcF9fdGl0bGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnN0ZXBfX3RpdGxlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuc3RlcF9fdGl0bGUge1xuICAgICAgICBjb2xvcjogI2YwZWFmZjtcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuc3RlcF9fZGVzYyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuc3RlcF9fZGVzYyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLnN0ZXBfX2Rlc2Mge1xuICAgICAgICBjb2xvcjogI2EwYjRjODtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzdGVwcy1ncmlkXCIgW2NsYXNzLmNvbHMtMl09XCJjb2xzKCkgPT09IDJcIiBbY2xhc3MuY29scy00XT1cImNvbHMoKSA9PT0gNFwiPlxuICAgICAgQGZvciAoc3RlcCBvZiBwKCkuc3RlcHM7IHRyYWNrIHN0ZXAudGl0bGU7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwXCIgW3N0eWxlLi0tYWNjZW50XT1cImFjY2VudENvbG9yKClcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0ZXBfX251bVwiPjB7eyBpICsgMSB9fTwvc3Bhbj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJzdGVwX190aXRsZVwiPnt7IHN0ZXAudGl0bGUgfX08L2gzPlxuICAgICAgICAgIDxwIGNsYXNzPVwic3RlcF9fZGVzY1wiPnt7IHN0ZXAuZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBMYW5kaW5nU3RlcHNDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzXyA9IHNpZ25hbDxMYW5kaW5nU3RlcHNNZXRhZGF0YT4oeyBzdGVwczogW10gfSk7XG5cbiAgQElucHV0KCkgc2V0IHByb3BzKHY6IExhbmRpbmdTdGVwc01ldGFkYXRhKSB7XG4gICAgdGhpcy5wcm9wc18uc2V0KHYpO1xuICB9XG5cbiAgcmVhZG9ubHkgcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHNfKCkpO1xuICByZWFkb25seSBjb2xzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wKCkuY29sdW1ucyA/PyAzKTtcbiAgcmVhZG9ubHkgYWNjZW50Q29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnAoKS5hY2NlbnRDb2xvciA/PyAnJyk7XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZy1zdGVwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xhbmRpbmctc3RlcHMvbGFuZGluZy1zdGVwcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBaUduRSxNQUFNLE9BQU8scUJBQXFCO0lBOUZsQztRQStGbUIsV0FBTSxHQUFHLE1BQU0sQ0FDOUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQ2I7WUFDRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDcEUsQ0FDRixDQUFDO1FBTU8sTUFBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNuRTtJQVBDLElBQWEsS0FBSyxDQUFDLENBQXVCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7K0dBVlUscUJBQXFCO21HQUFyQixxQkFBcUIseUdBWnRCOzs7Ozs7Ozs7O0dBVVQsbXVDQXpGUyxZQUFZOzs0RkEyRlgscUJBQXFCO2tCQTlGakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBK0ViOzs7Ozs7Ozs7O0dBVVQ7OEJBVVksS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYW5kaW5nU3RlcHNNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbGFuZGluZy1zdGVwcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuc3RlcHMtZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgIGdhcDogMzJweDtcbiAgICAgIH1cbiAgICAgIC5zdGVwcy1ncmlkLmNvbHMtMiB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICB9XG4gICAgICAuc3RlcHMtZ3JpZC5jb2xzLTQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgLnN0ZXBzLWdyaWQsXG4gICAgICAgIC5zdGVwcy1ncmlkLmNvbHMtMixcbiAgICAgICAgLnN0ZXBzLWdyaWQuY29scy00IHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnN0ZXAge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWFjY2VudCwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICM3MDI2ZGYpKTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXBfX251bSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjY2VudCwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICM3MDI2ZGYpKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXBfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogIzA5MGYxYjtcbiAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIH1cblxuICAgICAgLnN0ZXBfX2Rlc2Mge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgICAgICBjb2xvcjogIzM1NGM2OTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgIC5zdGVwX190aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICNmMGVhZmY7XG4gICAgICAgIH1cbiAgICAgICAgLnN0ZXBfX2Rlc2Mge1xuICAgICAgICAgIGNvbG9yOiAjYTBiNGM4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLnN0ZXBfX3RpdGxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5zdGVwX190aXRsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLnN0ZXBfX3RpdGxlIHtcbiAgICAgICAgY29sb3I6ICNmMGVhZmY7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLnN0ZXBfX2Rlc2MsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnN0ZXBfX2Rlc2MsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5zdGVwX19kZXNjIHtcbiAgICAgICAgY29sb3I6ICNhMGI0Yzg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwic3RlcHMtZ3JpZFwiIFtjbGFzcy5jb2xzLTJdPVwiY29scygpID09PSAyXCIgW2NsYXNzLmNvbHMtNF09XCJjb2xzKCkgPT09IDRcIj5cbiAgICAgIEBmb3IgKHN0ZXAgb2YgcCgpLnN0ZXBzOyB0cmFjayBzdGVwLnRpdGxlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcFwiIFtzdHlsZS4tLWFjY2VudF09XCJhY2NlbnRDb2xvcigpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwX19udW1cIj4we3sgaSArIDEgfX08L3NwYW4+XG4gICAgICAgICAgPGgzIGNsYXNzPVwic3RlcF9fdGl0bGVcIj57eyBzdGVwLnRpdGxlIH19PC9oMz5cbiAgICAgICAgICA8cCBjbGFzcz1cInN0ZXBfX2Rlc2NcIj57eyBzdGVwLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTGFuZGluZ1N0ZXBzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wc18gPSBzaWduYWw8TGFuZGluZ1N0ZXBzTWV0YWRhdGE+KFxuICAgIHsgc3RlcHM6IFtdIH0sXG4gICAge1xuICAgICAgZXF1YWw6IChhLCBiKSA9PiBhID09PSBiIHx8IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKSxcbiAgICB9XG4gICk7XG5cbiAgQElucHV0KCkgc2V0IHByb3BzKHY6IExhbmRpbmdTdGVwc01ldGFkYXRhKSB7XG4gICAgdGhpcy5wcm9wc18uc2V0KHYpO1xuICB9XG5cbiAgcmVhZG9ubHkgcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHNfKCkpO1xuICByZWFkb25seSBjb2xzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wKCkuY29sdW1ucyA/PyAzKTtcbiAgcmVhZG9ubHkgYWNjZW50Q29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnAoKS5hY2NlbnRDb2xvciA/PyAnJyk7XG59XG4iXX0=
@@ -25,7 +25,9 @@ import * as i0 from "@angular/core";
25
25
  */
26
26
  export class SkeletonLayoutComponent {
27
27
  constructor() {
28
- this.props_ = signal({ preset: 'list' });
28
+ this.props_ = signal({ preset: 'list' }, {
29
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
30
+ });
29
31
  /** Props con defaults aplicados. */
30
32
  this.resolved = computed(() => this.props_());
31
33
  /** Shimmer on/off — default on. */
@@ -420,4 +422,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
420
422
  }], propDecorators: { props: [{
421
423
  type: Input
422
424
  }] } });
423
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc2tlbGV0b24tbGF5b3V0L3NrZWxldG9uLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQWdELDRCQUE0QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUVyRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFtUkgsTUFBTSxPQUFPLHVCQUF1QjtJQWxScEM7UUFtUm1CLFdBQU0sR0FBRyxNQUFNLENBQXlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFNN0Usb0NBQW9DO1FBQzNCLGFBQVEsR0FBRyxRQUFRLENBQXlCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLG1DQUFtQztRQUMxQixTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUM7UUFFbkUsNkVBQTZFO1FBQ3BFLGNBQVMsR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixNQUFNLE1BQU0sR0FBeUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUM5QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxvREFBb0Q7UUFDM0MsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO1lBQzFDLE9BQU8sVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUF2QkMsSUFBYSxLQUFLLENBQUMsS0FBeUM7UUFDMUQsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FMVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwyR0E5UXhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNMVCw2MkJBdkxTLGlCQUFpQjs7NEZBK1FoQix1QkFBdUI7a0JBbFJuQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsQ0FBQyxZQUNsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzTFQ7OEJBMkZZLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dE1ldGFkYXRhLCBTa2VsZXRvbkxheW91dFByZXNldCwgU0tFTEVUT05fTEFZT1VUX0RFRkFVTFRfUk9XUyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIGB2YWwtc2tlbGV0b24tbGF5b3V0YFxuICpcbiAqIFNrZWxldG9uIGRlIHDDoWdpbmEgKipwcmVzZXQtZHJpdmVuKiouIEVuIHZleiBkZSBxdWUgY2FkYSB2aXN0YSBjb21wb25nYVxuICogw6F0b21vcyBgdmFsLXNrZWxldG9uYCBhIG1hbm8sIGRlY2xhcmEgdW5hIHNoYXBlIHkgZXN0ZSBvcmdhbmlzbSBhcm1hIGVsXG4gKiBwbGFjZWhvbGRlciBjb21wbGV0by4gRXN0w6FuZGFyIMO6bmljbyBwYXJhIGxvYWRpbmcgc3RhdGVzIGVuIHRvZG8gZWwgZmFjdG9yeS5cbiAqXG4gKiBQcmVzZXRzOiBgZm9ybWAgwrcgYGxpc3RgIMK3IGBhcnRpY2xlYCDCtyBgY2FyZHNgIMK3IGBkZXRhaWxgIMK3IGBoZXJvYC5cbiAqXG4gKiBFeHRlbmRlciA9IGFncmVnYXIgdW4gdmFsb3IgYSBgU2tlbGV0b25MYXlvdXRQcmVzZXRgICsgdW4gYEBjYXNlYCBhY8OhLlxuICogTG9zIGNvbnN1bWVycyBubyBjYW1iaWFuLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiBAaWYgKGxvYWRpbmcoKSkge1xuICogICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdmb3JtJywgcm93czogMywgc2hvd0F2YXRhcjogdHJ1ZSB9XCIgLz5cbiAqIH0gQGVsc2Uge1xuICogICAuLi5jb250ZW5pZG8gcmVhbC4uLlxuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1za2VsZXRvbi1sYXlvdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU2tlbGV0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ2YWwtc2tlbGV0b24tbGF5b3V0XCIgW2NsYXNzXT1cInJlc29sdmVkKCkuY3NzQ2xhc3MgfHwgJydcIiBhcmlhLWJ1c3k9XCJ0cnVlXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICBAc3dpdGNoIChyZXNvbHZlZCgpLnByZXNldCkge1xuICAgICAgICA8IS0tIEZPUk0g4oCUIGF2YXRhciBvcGNpb25hbCArIE4gZmllbGRzIChsYWJlbCtpbnB1dCkgKyBib3TDs24gLS0+XG4gICAgICAgIEBjYXNlICgnZm9ybScpIHtcbiAgICAgICAgICBAaWYgKHJlc29sdmVkKCkuc2hvd0F2YXRhcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWZvcm1fX2F2YXRhclwiPlxuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdhdmF0YXInLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICc5NnB4JyxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogJzk2cHgnLFxuICAgICAgICAgICAgICAgICAgY2lyY2xlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWZvcm1fX2F2YXRhci1tZXRhXCI+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzE1MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMThweCcsXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkOiBhbmltKCksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxOTBweCcsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEzcHgnLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTEwcHgnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxM3B4JyxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1mb3JtX19maWVsZHNcIj5cbiAgICAgICAgICAgIEBmb3IgKGkgb2Ygcm93c0FycmF5KCk7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWZvcm1fX2ZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzkwcHgnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxM3B4JyxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICcxMnB4JyxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChyZXNvbHZlZCgpLnNob3dCdXR0b24gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICcyNHB4JyxcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGVkOiBhbmltKCksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIExJU1Qg4oCUIE4gZmlsYXMgbGlzdC1pdGVtIChlbCDDoXRvbW8geWEgdHJhZSBpY29ubyArIDIgbMOtbmVhcykgLS0+XG4gICAgICAgIEBjYXNlICgnbGlzdCcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2stbGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoaSBvZiByb3dzQXJyYXkoKTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uIFtwcm9wc109XCJ7IHR5cGU6ICdsaXN0LWl0ZW0nLCBhbmltYXRlZDogYW5pbSgpIH1cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBBUlRJQ0xFIOKAlCB0w610dWxvICsgbWV0YSArIHDDoXJyYWZvcyAtLT5cbiAgICAgICAgQGNhc2UgKCdhcnRpY2xlJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1hcnRpY2xlXCI+XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkKCkuc2hvd1RpdGxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNzAlJyxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogJzMwcHgnLFxuICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvblxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzQwJScsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGVkOiBhbmltKCksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZm9yIChpIG9mIHJvd3NBcnJheSgpOyB0cmFjayBpKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgdHlwZTogJ3BhcmFncmFwaCcsIGxpbmVzOiA0LCBhbmltYXRlZDogYW5pbSgpIH1cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBDQVJEUyDigJQgZ3JpZCBkZSBOIGNhcmQgYmxvY2tzIC0tPlxuICAgICAgICBAY2FzZSAoJ2NhcmRzJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1jYXJkc1wiIFtzdHlsZS5ncmlkLXRlbXBsYXRlLWNvbHVtbnNdPVwiZ3JpZENvbHVtbnMoKVwiPlxuICAgICAgICAgICAgQGZvciAoaSBvZiByb3dzQXJyYXkoKTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uIFtwcm9wc109XCJ7IHR5cGU6ICdjYXJkJywgYW5pbWF0ZWQ6IGFuaW0oKSB9XCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gREVUQUlMIOKAlCBOIGZpbGFzIGtleS12YWx1ZSAtLT5cbiAgICAgICAgQGNhc2UgKCdkZXRhaWwnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWRldGFpbFwiPlxuICAgICAgICAgICAgQGZvciAoaSBvZiByb3dzQXJyYXkoKTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2stZGV0YWlsX19yb3dcIj5cbiAgICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTEwcHgnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzE2MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkOiBhbmltKCksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gSEVSTyDigJQgYmFubmVyIGdyYW5kZSArIGZpbGFzIGRlIGNvbnRlbmlkbyAtLT5cbiAgICAgICAgQGNhc2UgKCdoZXJvJykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1oZXJvXCI+XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkKCkuc2hvd1RpdGxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogJzE0MHB4JyxcbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzIwcHgnLFxuICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1oZXJvX19yb3dzXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGkgb2Ygcm93c0FycmF5KCk7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNzJweCcsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzE0cHgnLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC52YWwtc2tlbGV0b24tbGF5b3V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC8qIEZPUk0gKi9cbiAgICAgIC5zay1mb3JtX19hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zay1mb3JtX19hdmF0YXItbWV0YSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLnNrLWZvcm1fX2ZpZWxkcyB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxOHB4O1xuICAgICAgfVxuICAgICAgLnNrLWZvcm1fX2ZpZWxkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIExJU1QgKi9cbiAgICAgIC5zay1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgIH1cblxuICAgICAgLyogQVJUSUNMRSAqL1xuICAgICAgLnNrLWFydGljbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgfVxuXG4gICAgICAvKiBDQVJEUyAqL1xuICAgICAgLnNrLWNhcmRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgIH1cblxuICAgICAgLyogREVUQUlMICovXG4gICAgICAuc2stZGV0YWlsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgIH1cbiAgICAgIC5zay1kZXRhaWxfX3JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAvKiBIRVJPICovXG4gICAgICAuc2staGVybyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICB9XG4gICAgICAuc2staGVyb19fcm93cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNfID0gc2lnbmFsPFNrZWxldG9uTGF5b3V0TWV0YWRhdGE+KHsgcHJlc2V0OiAnbGlzdCcgfSk7XG5cbiAgQElucHV0KCkgc2V0IHByb3BzKHZhbHVlOiBTa2VsZXRvbkxheW91dE1ldGFkYXRhIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB0aGlzLnByb3BzXy5zZXQodmFsdWUpO1xuICB9XG5cbiAgLyoqIFByb3BzIGNvbiBkZWZhdWx0cyBhcGxpY2Fkb3MuICovXG4gIHJlYWRvbmx5IHJlc29sdmVkID0gY29tcHV0ZWQ8U2tlbGV0b25MYXlvdXRNZXRhZGF0YT4oKCkgPT4gdGhpcy5wcm9wc18oKSk7XG5cbiAgLyoqIFNoaW1tZXIgb24vb2ZmIOKAlCBkZWZhdWx0IG9uLiAqL1xuICByZWFkb25seSBhbmltID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZCgpLmFuaW1hdGVkICE9PSBmYWxzZSk7XG5cbiAgLyoqIEFycmF5IGBbMC4ucm93cylgIHBhcmEgbG9zIGBAZm9yYC4gcm93cyBkZWwgcHJvcCBvIGRlZmF1bHQgZGVsIHByZXNldC4gKi9cbiAgcmVhZG9ubHkgcm93c0FycmF5ID0gY29tcHV0ZWQ8bnVtYmVyW10+KCgpID0+IHtcbiAgICBjb25zdCBwID0gdGhpcy5yZXNvbHZlZCgpO1xuICAgIGNvbnN0IHByZXNldDogU2tlbGV0b25MYXlvdXRQcmVzZXQgPSBwLnByZXNldDtcbiAgICBjb25zdCBjb3VudCA9IHAucm93cyAmJiBwLnJvd3MgPiAwID8gTWF0aC5mbG9vcihwLnJvd3MpIDogU0tFTEVUT05fTEFZT1VUX0RFRkFVTFRfUk9XU1twcmVzZXRdO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaSkgPT4gaSk7XG4gIH0pO1xuXG4gIC8qKiBgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zYCBwYXJhIGVsIHByZXNldCBjYXJkcy4gKi9cbiAgcmVhZG9ubHkgZ3JpZENvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29scyA9IHRoaXMucmVzb2x2ZWQoKS5jb2x1bW5zID8/IDI7XG4gICAgcmV0dXJuIGByZXBlYXQoJHtNYXRoLm1heCgxLCBjb2xzKX0sIDFmcilgO1xuICB9KTtcbn1cbiJdfQ==
425
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc2tlbGV0b24tbGF5b3V0L3NrZWxldG9uLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQWdELDRCQUE0QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUVyRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFtUkgsTUFBTSxPQUFPLHVCQUF1QjtJQWxScEM7UUFtUm1CLFdBQU0sR0FBRyxNQUFNLENBQzlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNsQjtZQUNFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNwRSxDQUNGLENBQUM7UUFNRixvQ0FBb0M7UUFDM0IsYUFBUSxHQUFHLFFBQVEsQ0FBeUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUUsbUNBQW1DO1FBQzFCLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUVuRSw2RUFBNkU7UUFDcEUsY0FBUyxHQUFHLFFBQVEsQ0FBVyxHQUFHLEVBQUU7WUFDM0MsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUF5QixDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILG9EQUFvRDtRQUMzQyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7WUFDMUMsT0FBTyxVQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQXZCQyxJQUFhLEtBQUssQ0FBQyxLQUF5QztRQUMxRCxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQVZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJHQTlReEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0xULDYyQkF2TFMsaUJBQWlCOzs0RkErUWhCLHVCQUF1QjtrQkFsUm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLGlCQUFpQixDQUFDLFlBQ2xCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNMVDs4QkFnR1ksS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFNrZWxldG9uTGF5b3V0TWV0YWRhdGEsIFNrZWxldG9uTGF5b3V0UHJlc2V0LCBTS0VMRVRPTl9MQVlPVVRfREVGQVVMVF9ST1dTIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1za2VsZXRvbi1sYXlvdXRgXG4gKlxuICogU2tlbGV0b24gZGUgcMOhZ2luYSAqKnByZXNldC1kcml2ZW4qKi4gRW4gdmV6IGRlIHF1ZSBjYWRhIHZpc3RhIGNvbXBvbmdhXG4gKiDDoXRvbW9zIGB2YWwtc2tlbGV0b25gIGEgbWFubywgZGVjbGFyYSB1bmEgc2hhcGUgeSBlc3RlIG9yZ2FuaXNtIGFybWEgZWxcbiAqIHBsYWNlaG9sZGVyIGNvbXBsZXRvLiBFc3TDoW5kYXIgw7puaWNvIHBhcmEgbG9hZGluZyBzdGF0ZXMgZW4gdG9kbyBlbCBmYWN0b3J5LlxuICpcbiAqIFByZXNldHM6IGBmb3JtYCDCtyBgbGlzdGAgwrcgYGFydGljbGVgIMK3IGBjYXJkc2AgwrcgYGRldGFpbGAgwrcgYGhlcm9gLlxuICpcbiAqIEV4dGVuZGVyID0gYWdyZWdhciB1biB2YWxvciBhIGBTa2VsZXRvbkxheW91dFByZXNldGAgKyB1biBgQGNhc2VgIGFjw6EuXG4gKiBMb3MgY29uc3VtZXJzIG5vIGNhbWJpYW4uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIEBpZiAobG9hZGluZygpKSB7XG4gKiAgIDx2YWwtc2tlbGV0b24tbGF5b3V0IFtwcm9wc109XCJ7IHByZXNldDogJ2Zvcm0nLCByb3dzOiAzLCBzaG93QXZhdGFyOiB0cnVlIH1cIiAvPlxuICogfSBAZWxzZSB7XG4gKiAgIC4uLmNvbnRlbmlkbyByZWFsLi4uXG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNrZWxldG9uLWxheW91dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTa2VsZXRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInZhbC1za2VsZXRvbi1sYXlvdXRcIiBbY2xhc3NdPVwicmVzb2x2ZWQoKS5jc3NDbGFzcyB8fCAnJ1wiIGFyaWEtYnVzeT1cInRydWVcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgIEBzd2l0Y2ggKHJlc29sdmVkKCkucHJlc2V0KSB7XG4gICAgICAgIDwhLS0gRk9STSDigJQgYXZhdGFyIG9wY2lvbmFsICsgTiBmaWVsZHMgKGxhYmVsK2lucHV0KSArIGJvdMOzbiAtLT5cbiAgICAgICAgQGNhc2UgKCdmb3JtJykge1xuICAgICAgICAgIEBpZiAocmVzb2x2ZWQoKS5zaG93QXZhdGFyKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2stZm9ybV9fYXZhdGFyXCI+XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2F2YXRhcicsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzk2cHgnLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnOTZweCcsXG4gICAgICAgICAgICAgICAgICBjaXJjbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2stZm9ybV9fYXZhdGFyLW1ldGFcIj5cbiAgICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTUwcHgnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC1za2VsZXRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzE5MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTNweCcsXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkOiBhbmltKCksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMTBweCcsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEzcHgnLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWZvcm1fX2ZpZWxkc1wiPlxuICAgICAgICAgICAgQGZvciAoaSBvZiByb3dzQXJyYXkoKTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2stZm9ybV9fZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnOTBweCcsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEzcHgnLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzEycHgnLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkKCkuc2hvd0J1dHRvbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvblxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzI0cHgnLFxuICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTElTVCDigJQgTiBmaWxhcyBsaXN0LWl0ZW0gKGVsIMOhdG9tbyB5YSB0cmFlIGljb25vICsgMiBsw61uZWFzKSAtLT5cbiAgICAgICAgQGNhc2UgKCdsaXN0Jykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChpIG9mIHJvd3NBcnJheSgpOyB0cmFjayBpKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgdHlwZTogJ2xpc3QtaXRlbScsIGFuaW1hdGVkOiBhbmltKCkgfVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEFSVElDTEUg4oCUIHTDrXR1bG8gKyBtZXRhICsgcMOhcnJhZm9zIC0tPlxuICAgICAgICBAY2FzZSAoJ2FydGljbGUnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWFydGljbGVcIj5cbiAgICAgICAgICAgIEBpZiAocmVzb2x2ZWQoKS5zaG93VGl0bGUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6ICc3MCUnLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMzBweCcsXG4gICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNDAlJyxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogJzE0cHgnLFxuICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBmb3IgKGkgb2Ygcm93c0FycmF5KCk7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB0eXBlOiAncGFyYWdyYXBoJywgbGluZXM6IDQsIGFuaW1hdGVkOiBhbmltKCkgfVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIENBUkRTIOKAlCBncmlkIGRlIE4gY2FyZCBibG9ja3MgLS0+XG4gICAgICAgIEBjYXNlICgnY2FyZHMnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNhcmRzXCIgW3N0eWxlLmdyaWQtdGVtcGxhdGUtY29sdW1uc109XCJncmlkQ29sdW1ucygpXCI+XG4gICAgICAgICAgICBAZm9yIChpIG9mIHJvd3NBcnJheSgpOyB0cmFjayBpKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgdHlwZTogJ2NhcmQnLCBhbmltYXRlZDogYW5pbSgpIH1cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBERVRBSUwg4oCUIE4gZmlsYXMga2V5LXZhbHVlIC0tPlxuICAgICAgICBAY2FzZSAoJ2RldGFpbCcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2stZGV0YWlsXCI+XG4gICAgICAgICAgICBAZm9yIChpIG9mIHJvd3NBcnJheSgpOyB0cmFjayBpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1kZXRhaWxfX3Jvd1wiPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMTBweCcsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzE0cHgnLFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTYwcHgnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQ6IGFuaW0oKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBIRVJPIOKAlCBiYW5uZXIgZ3JhbmRlICsgZmlsYXMgZGUgY29udGVuaWRvIC0tPlxuICAgICAgICBAY2FzZSAoJ2hlcm8nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWhlcm9cIj5cbiAgICAgICAgICAgIEBpZiAocmVzb2x2ZWQoKS5zaG93VGl0bGUgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTQwcHgnLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMjBweCcsXG4gICAgICAgICAgICAgICAgICBhbmltYXRlZDogYW5pbSgpLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWhlcm9fX3Jvd3NcIj5cbiAgICAgICAgICAgICAgQGZvciAoaSBvZiByb3dzQXJyYXkoKTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc3MnB4JyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVkOiBhbmltKCksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1za2VsZXRvbi1sYXlvdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLyogRk9STSAqL1xuICAgICAgLnNrLWZvcm1fX2F2YXRhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnNrLWZvcm1fX2F2YXRhci1tZXRhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuc2stZm9ybV9fZmllbGRzIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE4cHg7XG4gICAgICB9XG4gICAgICAuc2stZm9ybV9fZmllbGQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLyogTElTVCAqL1xuICAgICAgLnNrLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgfVxuXG4gICAgICAvKiBBUlRJQ0xFICovXG4gICAgICAuc2stYXJ0aWNsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICB9XG5cbiAgICAgIC8qIENBUkRTICovXG4gICAgICAuc2stY2FyZHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgfVxuXG4gICAgICAvKiBERVRBSUwgKi9cbiAgICAgIC5zay1kZXRhaWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgfVxuICAgICAgLnNrLWRldGFpbF9fcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEhFUk8gKi9cbiAgICAgIC5zay1oZXJvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgIH1cbiAgICAgIC5zay1oZXJvX19yb3dzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNrZWxldG9uTGF5b3V0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wc18gPSBzaWduYWw8U2tlbGV0b25MYXlvdXRNZXRhZGF0YT4oXG4gICAgeyBwcmVzZXQ6ICdsaXN0JyB9LFxuICAgIHtcbiAgICAgIGVxdWFsOiAoYSwgYikgPT4gYSA9PT0gYiB8fCBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYiksXG4gICAgfVxuICApO1xuXG4gIEBJbnB1dCgpIHNldCBwcm9wcyh2YWx1ZTogU2tlbGV0b25MYXlvdXRNZXRhZGF0YSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkgdGhpcy5wcm9wc18uc2V0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBQcm9wcyBjb24gZGVmYXVsdHMgYXBsaWNhZG9zLiAqL1xuICByZWFkb25seSByZXNvbHZlZCA9IGNvbXB1dGVkPFNrZWxldG9uTGF5b3V0TWV0YWRhdGE+KCgpID0+IHRoaXMucHJvcHNfKCkpO1xuXG4gIC8qKiBTaGltbWVyIG9uL29mZiDigJQgZGVmYXVsdCBvbi4gKi9cbiAgcmVhZG9ubHkgYW5pbSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWQoKS5hbmltYXRlZCAhPT0gZmFsc2UpO1xuXG4gIC8qKiBBcnJheSBgWzAuLnJvd3MpYCBwYXJhIGxvcyBgQGZvcmAuIHJvd3MgZGVsIHByb3AgbyBkZWZhdWx0IGRlbCBwcmVzZXQuICovXG4gIHJlYWRvbmx5IHJvd3NBcnJheSA9IGNvbXB1dGVkPG51bWJlcltdPigoKSA9PiB7XG4gICAgY29uc3QgcCA9IHRoaXMucmVzb2x2ZWQoKTtcbiAgICBjb25zdCBwcmVzZXQ6IFNrZWxldG9uTGF5b3V0UHJlc2V0ID0gcC5wcmVzZXQ7XG4gICAgY29uc3QgY291bnQgPSBwLnJvd3MgJiYgcC5yb3dzID4gMCA/IE1hdGguZmxvb3IocC5yb3dzKSA6IFNLRUxFVE9OX0xBWU9VVF9ERUZBVUxUX1JPV1NbcHJlc2V0XTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgKF8sIGkpID0+IGkpO1xuICB9KTtcblxuICAvKiogYGdyaWQtdGVtcGxhdGUtY29sdW1uc2AgcGFyYSBlbCBwcmVzZXQgY2FyZHMuICovXG4gIHJlYWRvbmx5IGdyaWRDb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbHMgPSB0aGlzLnJlc29sdmVkKCkuY29sdW1ucyA/PyAyO1xuICAgIHJldHVybiBgcmVwZWF0KCR7TWF0aC5tYXgoMSwgY29scyl9LCAxZnIpYDtcbiAgfSk7XG59XG4iXX0=
@@ -37,6 +37,16 @@ export class I18nService {
37
37
  // Computed para verificaciones rápidas
38
38
  this.isSpanish = computed(() => this._lang() === 'es');
39
39
  this.isEnglish = computed(() => this._lang() === 'en');
40
+ /**
41
+ * Keys faltantes ya advertidas (`ns.key.lang`). Garantiza que el warning se
42
+ * emita UNA sola vez por key, nunca por cada change-detection.
43
+ *
44
+ * Crítico: `getText` se evalúa en bindings de template (una vez por CD). Si
45
+ * advirtiéramos en cada llamada, un `console.warn` por CD + el `val-debug-console`
46
+ * (que espeja `console.*` a un signal) crea un loop infinito de CD que congela
47
+ * el navegador en dev. Deduplicar corta ese loop en su origen.
48
+ */
49
+ this._warnedMissing = new Set();
40
50
  this.isBrowser = isPlatformBrowser(platformId);
41
51
  this.loadStoredLanguage();
42
52
  }
@@ -82,7 +92,8 @@ export class I18nService {
82
92
  * Fallback order:
83
93
  * 1. content[namespace][lang][key]
84
94
  * 2. content['_global'][lang][key]
85
- * 3. "[namespace.key]" (placeholder)
95
+ * 3. "" (string vacío) — nunca un placeholder visible ni un valor que
96
+ * rompa el render. El consumer puede aplicar su propio fallback con `||`.
86
97
  */
87
98
  getText(key, namespace, data) {
88
99
  const content = this._content();
@@ -94,10 +105,18 @@ export class I18nService {
94
105
  if (!text && ns !== '_global') {
95
106
  text = content['_global']?.[lang]?.[key];
96
107
  }
97
- // Fallback a placeholder
108
+ // Fallback seguro: string vacío. Se advierte UNA vez por key (ver
109
+ // `_warnedMissing`) para que un binding evaluado por CD no genere un
110
+ // console.warn por cada change-detection (que dispararía un loop con el
111
+ // debug-console). No devolvemos `[ns.key]` — un placeholder visible
112
+ // ensucia la UI y, al ser truthy, anula los `|| fallback` del consumer.
98
113
  if (!text) {
99
- console.warn(`[i18n] Missing translation: ${ns}.${key} (${lang})`);
100
- return `[${ns}.${key}]`;
114
+ const warnKey = `${ns}.${key}.${lang}`;
115
+ if (!this._warnedMissing.has(warnKey)) {
116
+ this._warnedMissing.add(warnKey);
117
+ console.warn(`[i18n] Missing translation: ${ns}.${key} (${lang})`);
118
+ }
119
+ return '';
101
120
  }
102
121
  // Aplicar interpolación si hay data
103
122
  if (data) {
@@ -226,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
226
245
  type: Inject,
227
246
  args: [PLATFORM_ID]
228
247
  }] }] });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQWdCdEIsWUFBaUMsVUFBa0I7UUFmbkQsNkJBQTZCO1FBQ1osVUFBSyxHQUFHLE1BQU0sQ0FBVyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RCxhQUFRLEdBQUcsTUFBTSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLE1BQU0sQ0FBYSxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWxHLG9CQUFvQjtRQUNYLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVwRSx1Q0FBdUM7UUFDOUIsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDbEQsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFLekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsQ0FBQyxDQUFDLEdBQVcsRUFBRSxTQUFrQixFQUFFLElBQTZCO1FBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILFFBQVEsQ0FBQyxJQUFhLEVBQUUsT0FBYSxJQUFJLElBQUksRUFBRTtRQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyx5Q0FBeUM7UUFDdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQU8sQ0FBQyxHQUFXLEVBQUUsU0FBa0IsRUFBRSxJQUE2QjtRQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLE1BQU0sRUFBRSxHQUFHLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFFbEMsaUNBQWlDO1FBQ2pDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxJQUFJLEdBQUcsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sSUFBSSxFQUFFLElBQUksR0FBRyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUVELG9DQUFvQztRQUNwQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsSUFBYyxFQUFFLFdBQVcsR0FBRyxLQUFLO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLDhCQUE4QixDQUFDLENBQUM7WUFDckUsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUVELDJDQUEyQztRQUMzQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckIsb0NBQW9DO1FBQ3BDLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxlQUFlLENBQUMsU0FBaUIsRUFBRSxPQUF5QjtRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0IsR0FBRyxLQUFLO1lBQ1IsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPO1NBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxZQUEwQjtRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0IsR0FBRyxLQUFLO1lBQ1IsR0FBRyxZQUFZO1NBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsU0FBcUI7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixPQUFPLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3hCLHFFQUFxRTtRQUNyRSxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV0RCxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBa0IsQ0FBQyxDQUFDO1lBQ25DLE9BQU87UUFDVCxDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBYSxDQUFDO1FBQ2pFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVCLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDLElBQWdCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxXQUFXLENBQUMsSUFBWSxFQUFFLElBQTRCO1FBQzVELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMxRCxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0EzTlUsV0FBVyxrQkFnQkYsV0FBVzttSEFoQnBCLFdBQVcsY0FERSxNQUFNOzs0RkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWlCbkIsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSTE4bkxhbmcsXG4gIExhbmd1YWdlc0NvbnRlbnQsXG4gIENvbnRlbnRTdG9yZSxcbiAgTEFOR19TVE9SQUdFX0tFWSxcbiAgREVGQVVMVF9JMThOX0NPTkZJRyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRUaW1lT2ZEYXlLZXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbHMvZGF0ZXRpbWUnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIGludGVybmFjaW9uYWxpemFjacOzbiBiYXNhZG8gZW4gQW5ndWxhciBTaWduYWxzLlxuICpcbiAqIENhcmFjdGVyw61zdGljYXM6XG4gKiAtIFNpbiBSeEpTOiB1c2EgU2lnbmFscyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3MgeSBjb25nZWxhbWllbnRvXG4gKiAtIE5hbWVzcGFjZS1iYXNlZDogb3JnYW5pemEgdHJhZHVjY2lvbmVzIHBvciBjb250ZXh0b1xuICogLSBGYWxsYmFjayBtdWx0aS1uaXZlbDogbmFtZXNwYWNlIOKGkiBfZ2xvYmFsIOKGkiBwbGFjZWhvbGRlclxuICogLSBJbnRlcnBvbGFjacOzbjogc29wb3J0YSB7dmFyaWFibGV9IGVuIHRleHRvc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFbiB1biBjb21wb25lbnRlXG4gKiBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAqXG4gKiAvLyBPYnRlbmVyIHRleHRvXG4gKiBjb25zdCB0aXRsZSA9IHRoaXMuaTE4bi50KCd0aXRsZScsICdMb2dpbicpO1xuICpcbiAqIC8vIENvbiBpbnRlcnBvbGFjacOzblxuICogY29uc3Qgd2VsY29tZSA9IHRoaXMuaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywgeyBuYW1lOiAnSnVhbicgfSk7XG4gKlxuICogLy8gQ2FtYmlhciBpZGlvbWFcbiAqIHRoaXMuaTE4bi5zZXRMYW5ndWFnZSgnZW4nKTtcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZSB7XG4gIC8vIEVzdGFkbyBpbnRlcm5vIGNvbiBTaWduYWxzXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmcgPSBzaWduYWw8STE4bkxhbmc+KERFRkFVTFRfSTE4Tl9DT05GSUcuZGVmYXVsdExhbmd1YWdlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudCA9IHNpZ25hbDxDb250ZW50U3RvcmU+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkTGFuZ3VhZ2VzID0gc2lnbmFsPEkxOG5MYW5nW10+KERFRkFVTFRfSTE4Tl9DT05GSUcuc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcblxuICAvLyBQw7pibGljb3MgcmVhZG9ubHlcbiAgcmVhZG9ubHkgbGFuZyA9IHRoaXMuX2xhbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBzdXBwb3J0ZWRMYW5ndWFnZXMgPSB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMuYXNSZWFkb25seSgpO1xuXG4gIC8vIENvbXB1dGVkIHBhcmEgdmVyaWZpY2FjaW9uZXMgcsOhcGlkYXNcbiAgcmVhZG9ubHkgaXNTcGFuaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZXMnKTtcbiAgcmVhZG9ubHkgaXNFbmdsaXNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbGFuZygpID09PSAnZW4nKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICAgIHRoaXMubG9hZFN0b3JlZExhbmd1YWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0ZXh0byB0cmFkdWNpZG8gKGFsaWFzIGNvcnRvIGRlIGdldFRleHQpXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgQ2xhdmUgZGVsIHRleHRvXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgTmFtZXNwYWNlIChkZWZhdWx0OiAnX2dsb2JhbCcpXG4gICAqIEBwYXJhbSBkYXRhIFZhcmlhYmxlcyBwYXJhIGludGVycG9sYWNpw7NuXG4gICAqIEByZXR1cm5zIFRleHRvIHRyYWR1Y2lkbyBvIHBsYWNlaG9sZGVyIFtuYW1lc3BhY2Uua2V5XVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBpMThuLnQoJ3N1Ym1pdCcpOyAgICAgICAgICAgICAgICAgICAgLy8gYnVzY2EgZW4gX2dsb2JhbFxuICAgKiBpMThuLnQoJ3RpdGxlJywgJ0xvZ2luJyk7ICAgICAgICAgICAgLy8gYnVzY2EgZW4gTG9naW5cbiAgICogaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywge25hbWV9KTsgIC8vIGNvbiBpbnRlcnBvbGFjacOzblxuICAgKi9cbiAgdChrZXk6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nLCBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGV4dChrZXksIG5hbWVzcGFjZSwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHRpbWUtb2YtZGF5IGdyZWV0aW5nIGluIHRoZSBjdXJyZW50IGxhbmd1YWdlLlxuICAgKlxuICAgKiBVc2VzIGJ1bmRsZWQga2V5cyBgZ29vZE1vcm5pbmdgIC8gYGdvb2RBZnRlcm5vb25gIC8gYGdvb2RFdmVuaW5nYCBmcm9tIGBfZ2xvYmFsYC5cbiAgICogUmVhY3RpdmUgdG8gYGxhbmcoKWAgd2hlbiBjYWxsZWQgaW5zaWRlIGEgYGNvbXB1dGVkKClgLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBuYW1lIHRvIGFwcGVuZDogXCJCdWVub3MgZMOtYXMsIEp1YW5cIlxuICAgKiBAcGFyYW0gZGF0ZSBPcHRpb25hbCBkYXRlIHRvIGV2YWx1YXRlIChkZWZhdWx0cyB0byBub3cpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGdyZWV0aW5nID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgKiAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAqICAgcmV0dXJuIHRoaXMuaTE4bi5ncmVldGluZyh0aGlzLmF1dGgudXNlcigpPy5uYW1lKTtcbiAgICogfSk7XG4gICAqL1xuICBncmVldGluZyhuYW1lPzogc3RyaW5nLCBkYXRlOiBEYXRlID0gbmV3IERhdGUoKSk6IHN0cmluZyB7XG4gICAgdGhpcy5fbGFuZygpOyAvLyB0cmFjayBmb3IgcmVhY3Rpdml0eSBpbnNpZGUgY29tcHV0ZWQoKVxuICAgIGNvbnN0IHRleHQgPSB0aGlzLnQoZ2V0VGltZU9mRGF5S2V5KGRhdGUpKTtcbiAgICByZXR1cm4gbmFtZSA/IGAke3RleHR9LCAke25hbWV9YCA6IHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0ZXh0byB0cmFkdWNpZG9cbiAgICpcbiAgICogRmFsbGJhY2sgb3JkZXI6XG4gICAqIDEuIGNvbnRlbnRbbmFtZXNwYWNlXVtsYW5nXVtrZXldXG4gICAqIDIuIGNvbnRlbnRbJ19nbG9iYWwnXVtsYW5nXVtrZXldXG4gICAqIDMuIFwiW25hbWVzcGFjZS5rZXldXCIgKHBsYWNlaG9sZGVyKVxuICAgKi9cbiAgZ2V0VGV4dChrZXk6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nLCBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX2NvbnRlbnQoKTtcbiAgICBjb25zdCBsYW5nID0gdGhpcy5fbGFuZygpO1xuICAgIGNvbnN0IG5zID0gbmFtZXNwYWNlIHx8ICdfZ2xvYmFsJztcblxuICAgIC8vIEJ1c2NhciBlbiBuYW1lc3BhY2UgZXNwZWPDrWZpY29cbiAgICBsZXQgdGV4dCA9IGNvbnRlbnRbbnNdPy5bbGFuZ10/LltrZXldO1xuXG4gICAgLy8gRmFsbGJhY2sgYSBfZ2xvYmFsXG4gICAgaWYgKCF0ZXh0ICYmIG5zICE9PSAnX2dsb2JhbCcpIHtcbiAgICAgIHRleHQgPSBjb250ZW50WydfZ2xvYmFsJ10/LltsYW5nXT8uW2tleV07XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgYSBwbGFjZWhvbGRlclxuICAgIGlmICghdGV4dCkge1xuICAgICAgY29uc29sZS53YXJuKGBbaTE4bl0gTWlzc2luZyB0cmFuc2xhdGlvbjogJHtuc30uJHtrZXl9ICgke2xhbmd9KWApO1xuICAgICAgcmV0dXJuIGBbJHtuc30uJHtrZXl9XWA7XG4gICAgfVxuXG4gICAgLy8gQXBsaWNhciBpbnRlcnBvbGFjacOzbiBzaSBoYXkgZGF0YVxuICAgIGlmIChkYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZSh0ZXh0LCBkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW1iaWEgZWwgaWRpb21hIGRlIGxhIGFwbGljYWNpw7NuXG4gICAqXG4gICAqIEBwYXJhbSBsYW5nIE51ZXZvIGlkaW9tYVxuICAgKiBAcGFyYW0gZm9yY2VSZWxvYWQgU2kgdHJ1ZSwgcmVjYXJnYSBsYSBww6FnaW5hIChmYWxsYmFjayBzaSByZWFjdGl2aWRhZCBmYWxsYSlcbiAgICovXG4gIHNldExhbmd1YWdlKGxhbmc6IEkxOG5MYW5nLCBmb3JjZVJlbG9hZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMoKS5pbmNsdWRlcyhsYW5nKSkge1xuICAgICAgY29uc29sZS53YXJuKGBbaTE4bl0gTGFuZ3VhZ2UgJyR7bGFuZ30nIG5vdCBpbiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGxhbmcgPT09IHRoaXMuX2xhbmcoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFBlcnNpc3RpciBlbiBsb2NhbFN0b3JhZ2UgKGJyb3dzZXItb25seSlcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKExBTkdfU1RPUkFHRV9LRVksIGxhbmcpO1xuICAgIH1cblxuICAgIC8vIEFjdHVhbGl6YXIgc2lnbmFsXG4gICAgdGhpcy5fbGFuZy5zZXQobGFuZyk7XG5cbiAgICAvLyBGYWxsYmFjazogcmVjYXJnYXIgc2kgc2Ugc29saWNpdGFcbiAgICBpZiAoZm9yY2VSZWxvYWQgJiYgdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0cmEgY29udGVuaWRvIGRlIHRyYWR1Y2Npb25lcyBwYXJhIHVuIG5hbWVzcGFjZVxuICAgKlxuICAgKiBAcGFyYW0gbmFtZXNwYWNlIE5vbWJyZSBkZWwgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSBjb250ZW50IENvbnRlbmlkbyBkZSB0cmFkdWNjaW9uZXNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogaTE4bi5yZWdpc3RlckNvbnRlbnQoJ0xvZ2luJywge1xuICAgKiAgIGVzOiB7IHRpdGxlOiAnSW5pY2lhciBzZXNpw7NuJyB9LFxuICAgKiAgIGVuOiB7IHRpdGxlOiAnU2lnbiBpbicgfVxuICAgKiB9KTtcbiAgICovXG4gIHJlZ2lzdGVyQ29udGVudChuYW1lc3BhY2U6IHN0cmluZywgY29udGVudDogTGFuZ3VhZ2VzQ29udGVudCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRlbnQudXBkYXRlKHN0b3JlID0+ICh7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIFtuYW1lc3BhY2VdOiBjb250ZW50LFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RyYSBtw7psdGlwbGVzIG5hbWVzcGFjZXMgZGUgdW5hIHZlelxuICAgKlxuICAgKiBAcGFyYW0gY29udGVudFN0b3JlIE9iamV0byBjb24gbmFtZXNwYWNlcyBjb21vIGtleXNcbiAgICovXG4gIHJlZ2lzdGVyQ29udGVudEJ1bGsoY29udGVudFN0b3JlOiBDb250ZW50U3RvcmUpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250ZW50LnVwZGF0ZShzdG9yZSA9PiAoe1xuICAgICAgLi4uc3RvcmUsXG4gICAgICAuLi5jb250ZW50U3RvcmUsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYSBsb3MgaWRpb21hcyBzb3BvcnRhZG9zXG4gICAqL1xuICBzZXRJMThuTGFuZ3VhZ2VzKGxhbmd1YWdlczogSTE4bkxhbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuX3N1cHBvcnRlZExhbmd1YWdlcy5zZXQobGFuZ3VhZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRvZG9zIGxvcyBuYW1lc3BhY2VzIHJlZ2lzdHJhZG9zXG4gICAqL1xuICBnZXROYW1lc3BhY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fY29udGVudCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSB1biBuYW1lc3BhY2UgdGllbmUgdHJhZHVjY2lvbmVzXG4gICAqL1xuICBoYXNOYW1lc3BhY2UobmFtZXNwYWNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmFtZXNwYWNlIGluIHRoaXMuX2NvbnRlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBpZGlvbWEgZ3VhcmRhZG8gZW4gbG9jYWxTdG9yYWdlIG8gZGV0ZWN0YSBkZWwgbmF2ZWdhZG9yXG4gICAqL1xuICBwcml2YXRlIGxvYWRTdG9yZWRMYW5ndWFnZSgpOiB2b2lkIHtcbiAgICAvLyBTU1I6IHNpbiBsb2NhbFN0b3JhZ2UvbmF2aWdhdG9yLiBNYW50ZW5lbW9zIGVsIGRlZmF1bHQ7IGVsIGJyb3dzZXJcbiAgICAvLyBoeWRyYXRhcsOhIGVsIGxhbmcgcmVhbCBjdWFuZG8gZWwgY2xpZW50ZSBhcnJhbnF1ZS5cbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSk7XG5cbiAgICBpZiAoc3RvcmVkICYmIHRoaXMuaXNWYWxpZExhbmd1YWdlKHN0b3JlZCkpIHtcbiAgICAgIHRoaXMuX2xhbmcuc2V0KHN0b3JlZCBhcyBJMThuTGFuZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGV0ZWN0YXIgaWRpb21hIGRlbCBuYXZlZ2Fkb3JcbiAgICBjb25zdCBicm93c2VyTGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdIGFzIEkxOG5MYW5nO1xuICAgIGlmICh0aGlzLmlzVmFsaWRMYW5ndWFnZShicm93c2VyTGFuZykpIHtcbiAgICAgIHRoaXMuX2xhbmcuc2V0KGJyb3dzZXJMYW5nKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKExBTkdfU1RPUkFHRV9LRVksIGJyb3dzZXJMYW5nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhIHNpIHVuIGlkaW9tYSBlc3TDoSBzb3BvcnRhZG9cbiAgICovXG4gIHByaXZhdGUgaXNWYWxpZExhbmd1YWdlKGxhbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0ZWRMYW5ndWFnZXMoKS5pbmNsdWRlcyhsYW5nIGFzIEkxOG5MYW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWVtcGxhemEge3ZhcmlhYmxlfSBlbiB0ZXh0byBjb24gdmFsb3JlcyBkZSBkYXRhXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGludGVycG9sYXRlKCdIb2xhIHtuYW1lfScsIHsgbmFtZTogJ0p1YW4nIH0pIC8vICdIb2xhIEp1YW4nXG4gICAqL1xuICBwcml2YXRlIGludGVycG9sYXRlKHRleHQ6IHN0cmluZywgZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXFxcXHske2tleX1cXFxcfWAsICdnJyk7XG4gICAgICByZXR1cm4gcmVzdWx0LnJlcGxhY2UocmVnZXgsIHZhbHVlKTtcbiAgICB9LCB0ZXh0KTtcbiAgfVxufVxuIl19
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQTJCdEIsWUFBaUMsVUFBa0I7UUExQm5ELDZCQUE2QjtRQUNaLFVBQUssR0FBRyxNQUFNLENBQVcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUQsYUFBUSxHQUFHLE1BQU0sQ0FBZSxFQUFFLENBQUMsQ0FBQztRQUNwQyx3QkFBbUIsR0FBRyxNQUFNLENBQWEsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVsRyxvQkFBb0I7UUFDWCxTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFcEUsdUNBQXVDO1FBQzlCLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFD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TSxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBL09VLFdBQVcsa0JBMkJGLFdBQVc7bUhBM0JwQixXQUFXLGNBREUsTUFBTTs7NEZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkE0Qm5CLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEkxOG5MYW5nLFxuICBMYW5ndWFnZXNDb250ZW50LFxuICBDb250ZW50U3RvcmUsXG4gIExBTkdfU1RPUkFHRV9LRVksXG4gIERFRkFVTFRfSTE4Tl9DT05GSUcsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VGltZU9mRGF5S2V5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3V0aWxzL2RhdGV0aW1lJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBkZSBpbnRlcm5hY2lvbmFsaXphY2nDs24gYmFzYWRvIGVuIEFuZ3VsYXIgU2lnbmFscy5cbiAqXG4gKiBDYXJhY3RlcsOtc3RpY2FzOlxuICogLSBTaW4gUnhKUzogdXNhIFNpZ25hbHMgcGFyYSBldml0YXIgbWVtb3J5IGxlYWtzIHkgY29uZ2VsYW1pZW50b1xuICogLSBOYW1lc3BhY2UtYmFzZWQ6IG9yZ2FuaXphIHRyYWR1Y2Npb25lcyBwb3IgY29udGV4dG9cbiAqIC0gRmFsbGJhY2sgbXVsdGktbml2ZWw6IG5hbWVzcGFjZSDihpIgX2dsb2JhbCDihpIgcGxhY2Vob2xkZXJcbiAqIC0gSW50ZXJwb2xhY2nDs246IHNvcG9ydGEge3ZhcmlhYmxlfSBlbiB0ZXh0b3NcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRW4gdW4gY29tcG9uZW50ZVxuICogaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gKlxuICogLy8gT2J0ZW5lciB0ZXh0b1xuICogY29uc3QgdGl0bGUgPSB0aGlzLmkxOG4udCgndGl0bGUnLCAnTG9naW4nKTtcbiAqXG4gKiAvLyBDb24gaW50ZXJwb2xhY2nDs25cbiAqIGNvbnN0IHdlbGNvbWUgPSB0aGlzLmkxOG4udCgnd2VsY29tZScsICdMb2dpbicsIHsgbmFtZTogJ0p1YW4nIH0pO1xuICpcbiAqIC8vIENhbWJpYXIgaWRpb21hXG4gKiB0aGlzLmkxOG4uc2V0TGFuZ3VhZ2UoJ2VuJyk7XG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSTE4blNlcnZpY2Uge1xuICAvLyBFc3RhZG8gaW50ZXJubyBjb24gU2lnbmFsc1xuICBwcml2YXRlIHJlYWRvbmx5IF9sYW5nID0gc2lnbmFsPEkxOG5MYW5nPihERUZBVUxUX0kxOE5fQ09ORklHLmRlZmF1bHRMYW5ndWFnZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnQgPSBzaWduYWw8Q29udGVudFN0b3JlPih7fSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1cHBvcnRlZExhbmd1YWdlcyA9IHNpZ25hbDxJMThuTGFuZ1tdPihERUZBVUxUX0kxOE5fQ09ORklHLnN1cHBvcnRlZExhbmd1YWdlcyk7XG5cbiAgLy8gUMO6YmxpY29zIHJlYWRvbmx5XG4gIHJlYWRvbmx5IGxhbmcgPSB0aGlzLl9sYW5nLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgc3VwcG9ydGVkTGFuZ3VhZ2VzID0gdGhpcy5fc3VwcG9ydGVkTGFuZ3VhZ2VzLmFzUmVhZG9ubHkoKTtcblxuICAvLyBDb21wdXRlZCBwYXJhIHZlcmlmaWNhY2lvbmVzIHLDoXBpZGFzXG4gIHJlYWRvbmx5IGlzU3BhbmlzaCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2xhbmcoKSA9PT0gJ2VzJyk7XG4gIHJlYWRvbmx5IGlzRW5nbGlzaCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2xhbmcoKSA9PT0gJ2VuJyk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEtleXMgZmFsdGFudGVzIHlhIGFkdmVydGlkYXMgKGBucy5rZXkubGFuZ2ApLiBHYXJhbnRpemEgcXVlIGVsIHdhcm5pbmcgc2VcbiAgICogZW1pdGEgVU5BIHNvbGEgdmV6IHBvciBrZXksIG51bmNhIHBvciBjYWRhIGNoYW5nZS1kZXRlY3Rpb24uXG4gICAqXG4gICAqIENyw610aWNvOiBgZ2V0VGV4dGAgc2UgZXZhbMO6YSBlbiBiaW5kaW5ncyBkZSB0ZW1wbGF0ZSAodW5hIHZleiBwb3IgQ0QpLiBTaVxuICAgKiBhZHZpcnRpw6lyYW1vcyBlbiBjYWRhIGxsYW1hZGEsIHVuIGBjb25zb2xlLndhcm5gIHBvciBDRCArIGVsIGB2YWwtZGVidWctY29uc29sZWBcbiAgICogKHF1ZSBlc3BlamEgYGNvbnNvbGUuKmAgYSB1biBzaWduYWwpIGNyZWEgdW4gbG9vcCBpbmZpbml0byBkZSBDRCBxdWUgY29uZ2VsYVxuICAgKiBlbCBuYXZlZ2Fkb3IgZW4gZGV2LiBEZWR1cGxpY2FyIGNvcnRhIGVzZSBsb29wIGVuIHN1IG9yaWdlbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dhcm5lZE1pc3NpbmcgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICAgIHRoaXMubG9hZFN0b3JlZExhbmd1YWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0ZXh0byB0cmFkdWNpZG8gKGFsaWFzIGNvcnRvIGRlIGdldFRleHQpXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgQ2xhdmUgZGVsIHRleHRvXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgTmFtZXNwYWNlIChkZWZhdWx0OiAnX2dsb2JhbCcpXG4gICAqIEBwYXJhbSBkYXRhIFZhcmlhYmxlcyBwYXJhIGludGVycG9sYWNpw7NuXG4gICAqIEByZXR1cm5zIFRleHRvIHRyYWR1Y2lkbyBvIHBsYWNlaG9sZGVyIFtuYW1lc3BhY2Uua2V5XVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBpMThuLnQoJ3N1Ym1pdCcpOyAgICAgICAgICAgICAgICAgICAgLy8gYnVzY2EgZW4gX2dsb2JhbFxuICAgKiBpMThuLnQoJ3RpdGxlJywgJ0xvZ2luJyk7ICAgICAgICAgICAgLy8gYnVzY2EgZW4gTG9naW5cbiAgICogaTE4bi50KCd3ZWxjb21lJywgJ0xvZ2luJywge25hbWV9KTsgIC8vIGNvbiBpbnRlcnBvbGFjacOzblxuICAgKi9cbiAgdChrZXk6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nLCBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGV4dChrZXksIG5hbWVzcGFjZSwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHRpbWUtb2YtZGF5IGdyZWV0aW5nIGluIHRoZSBjdXJyZW50IGxhbmd1YWdlLlxuICAgKlxuICAgKiBVc2VzIGJ1bmRsZWQga2V5cyBgZ29vZE1vcm5pbmdgIC8gYGdvb2RBZnRlcm5vb25gIC8gYGdvb2RFdmVuaW5nYCBmcm9tIGBfZ2xvYmFsYC5cbiAgICogUmVhY3RpdmUgdG8gYGxhbmcoKWAgd2hlbiBjYWxsZWQgaW5zaWRlIGEgYGNvbXB1dGVkKClgLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBuYW1lIHRvIGFwcGVuZDogXCJCdWVub3MgZMOtYXMsIEp1YW5cIlxuICAgKiBAcGFyYW0gZGF0ZSBPcHRpb25hbCBkYXRlIHRvIGV2YWx1YXRlIChkZWZhdWx0cyB0byBub3cpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGdyZWV0aW5nID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgKiAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAqICAgcmV0dXJuIHRoaXMuaTE4bi5ncmVldGluZyh0aGlzLmF1dGgudXNlcigpPy5uYW1lKTtcbiAgICogfSk7XG4gICAqL1xuICBncmVldGluZyhuYW1lPzogc3RyaW5nLCBkYXRlOiBEYXRlID0gbmV3IERhdGUoKSk6IHN0cmluZyB7XG4gICAgdGhpcy5fbGFuZygpOyAvLyB0cmFjayBmb3IgcmVhY3Rpdml0eSBpbnNpZGUgY29tcHV0ZWQoKVxuICAgIGNvbnN0IHRleHQgPSB0aGlzLnQoZ2V0VGltZU9mRGF5S2V5KGRhdGUpKTtcbiAgICByZXR1cm4gbmFtZSA/IGAke3RleHR9LCAke25hbWV9YCA6IHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0ZXh0byB0cmFkdWNpZG9cbiAgICpcbiAgICogRmFsbGJhY2sgb3JkZXI6XG4gICAqIDEuIGNvbnRlbnRbbmFtZXNwYWNlXVtsYW5nXVtrZXldXG4gICAqIDIuIGNvbnRlbnRbJ19nbG9iYWwnXVtsYW5nXVtrZXldXG4gICAqIDMuIFwiXCIgKHN0cmluZyB2YWPDrW8pIOKAlCBudW5jYSB1biBwbGFjZWhvbGRlciB2aXNpYmxlIG5pIHVuIHZhbG9yIHF1ZVxuICAgKiAgICByb21wYSBlbCByZW5kZXIuIEVsIGNvbnN1bWVyIHB1ZWRlIGFwbGljYXIgc3UgcHJvcGlvIGZhbGxiYWNrIGNvbiBgfHxgLlxuICAgKi9cbiAgZ2V0VGV4dChrZXk6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nLCBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX2NvbnRlbnQoKTtcbiAgICBjb25zdCBsYW5nID0gdGhpcy5fbGFuZygpO1xuICAgIGNvbnN0IG5zID0gbmFtZXNwYWNlIHx8ICdfZ2xvYmFsJztcblxuICAgIC8vIEJ1c2NhciBlbiBuYW1lc3BhY2UgZXNwZWPDrWZpY29cbiAgICBsZXQgdGV4dCA9IGNvbnRlbnRbbnNdPy5bbGFuZ10/LltrZXldO1xuXG4gICAgLy8gRmFsbGJhY2sgYSBfZ2xvYmFsXG4gICAgaWYgKCF0ZXh0ICYmIG5zICE9PSAnX2dsb2JhbCcpIHtcbiAgICAgIHRleHQgPSBjb250ZW50WydfZ2xvYmFsJ10/LltsYW5nXT8uW2tleV07XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgc2VndXJvOiBzdHJpbmcgdmFjw61vLiBTZSBhZHZpZXJ0ZSBVTkEgdmV6IHBvciBrZXkgKHZlclxuICAgIC8vIGBfd2FybmVkTWlzc2luZ2ApIHBhcmEgcXVlIHVuIGJpbmRpbmcgZXZhbHVhZG8gcG9yIENEIG5vIGdlbmVyZSB1blxuICAgIC8vIGNvbnNvbGUud2FybiBwb3IgY2FkYSBjaGFuZ2UtZGV0ZWN0aW9uIChxdWUgZGlzcGFyYXLDrWEgdW4gbG9vcCBjb24gZWxcbiAgICAvLyBkZWJ1Zy1jb25zb2xlKS4gTm8gZGV2b2x2ZW1vcyBgW25zLmtleV1gIOKAlCB1biBwbGFjZWhvbGRlciB2aXNpYmxlXG4gICAgLy8gZW5zdWNpYSBsYSBVSSB5LCBhbCBzZXIgdHJ1dGh5LCBhbnVsYSBsb3MgYHx8IGZhbGxiYWNrYCBkZWwgY29uc3VtZXIuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICBjb25zdCB3YXJuS2V5ID0gYCR7bnN9LiR7a2V5fS4ke2xhbmd9YDtcbiAgICAgIGlmICghdGhpcy5fd2FybmVkTWlzc2luZy5oYXMod2FybktleSkpIHtcbiAgICAgICAgdGhpcy5fd2FybmVkTWlzc2luZy5hZGQod2FybktleSk7XG4gICAgICAgIGNvbnNvbGUud2FybihgW2kxOG5dIE1pc3NpbmcgdHJhbnNsYXRpb246ICR7bnN9LiR7a2V5fSAoJHtsYW5nfSlgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyBBcGxpY2FyIGludGVycG9sYWNpw7NuIHNpIGhheSBkYXRhXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlKHRleHQsIGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbWJpYSBlbCBpZGlvbWEgZGUgbGEgYXBsaWNhY2nDs25cbiAgICpcbiAgICogQHBhcmFtIGxhbmcgTnVldm8gaWRpb21hXG4gICAqIEBwYXJhbSBmb3JjZVJlbG9hZCBTaSB0cnVlLCByZWNhcmdhIGxhIHDDoWdpbmEgKGZhbGxiYWNrIHNpIHJlYWN0aXZpZGFkIGZhbGxhKVxuICAgKi9cbiAgc2V0TGFuZ3VhZ2UobGFuZzogSTE4bkxhbmcsIGZvcmNlUmVsb2FkID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3N1cHBvcnRlZExhbmd1YWdlcygpLmluY2x1ZGVzKGxhbmcpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFtpMThuXSBMYW5ndWFnZSAnJHtsYW5nfScgbm90IGluIHN1cHBvcnRlZCBsYW5ndWFnZXNgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobGFuZyA9PT0gdGhpcy5fbGFuZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUGVyc2lzdGlyIGVuIGxvY2FsU3RvcmFnZSAoYnJvd3Nlci1vbmx5KVxuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSwgbGFuZyk7XG4gICAgfVxuXG4gICAgLy8gQWN0dWFsaXphciBzaWduYWxcbiAgICB0aGlzLl9sYW5nLnNldChsYW5nKTtcblxuICAgIC8vIEZhbGxiYWNrOiByZWNhcmdhciBzaSBzZSBzb2xpY2l0YVxuICAgIGlmIChmb3JjZVJlbG9hZCAmJiB0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RyYSBjb250ZW5pZG8gZGUgdHJhZHVjY2lvbmVzIHBhcmEgdW4gbmFtZXNwYWNlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgTm9tYnJlIGRlbCBuYW1lc3BhY2VcbiAgICogQHBhcmFtIGNvbnRlbnQgQ29udGVuaWRvIGRlIHRyYWR1Y2Npb25lc1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBpMThuLnJlZ2lzdGVyQ29udGVudCgnTG9naW4nLCB7XG4gICAqICAgZXM6IHsgdGl0bGU6ICdJbmljaWFyIHNlc2nDs24nIH0sXG4gICAqICAgZW46IHsgdGl0bGU6ICdTaWduIGluJyB9XG4gICAqIH0pO1xuICAgKi9cbiAgcmVnaXN0ZXJDb250ZW50KG5hbWVzcGFjZTogc3RyaW5nLCBjb250ZW50OiBMYW5ndWFnZXNDb250ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudC51cGRhdGUoc3RvcmUgPT4gKHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgW25hbWVzcGFjZV06IGNvbnRlbnQsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhIG3Dumx0aXBsZXMgbmFtZXNwYWNlcyBkZSB1bmEgdmV6XG4gICAqXG4gICAqIEBwYXJhbSBjb250ZW50U3RvcmUgT2JqZXRvIGNvbiBuYW1lc3BhY2VzIGNvbW8ga2V5c1xuICAgKi9cbiAgcmVnaXN0ZXJDb250ZW50QnVsayhjb250ZW50U3RvcmU6IENvbnRlbnRTdG9yZSk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRlbnQudXBkYXRlKHN0b3JlID0+ICh7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIC4uLmNvbnRlbnRTdG9yZSxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJhIGxvcyBpZGlvbWFzIHNvcG9ydGFkb3NcbiAgICovXG4gIHNldEkxOG5MYW5ndWFnZXMobGFuZ3VhZ2VzOiBJMThuTGFuZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fc3VwcG9ydGVkTGFuZ3VhZ2VzLnNldChsYW5ndWFnZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdG9kb3MgbG9zIG5hbWVzcGFjZXMgcmVnaXN0cmFkb3NcbiAgICovXG4gIGdldE5hbWVzcGFjZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jb250ZW50KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuIG5hbWVzcGFjZSB0aWVuZSB0cmFkdWNjaW9uZXNcbiAgICovXG4gIGhhc05hbWVzcGFjZShuYW1lc3BhY2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuYW1lc3BhY2UgaW4gdGhpcy5fY29udGVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGlkaW9tYSBndWFyZGFkbyBlbiBsb2NhbFN0b3JhZ2UgbyBkZXRlY3RhIGRlbCBuYXZlZ2Fkb3JcbiAgICovXG4gIHByaXZhdGUgbG9hZFN0b3JlZExhbmd1YWdlKCk6IHZvaWQge1xuICAgIC8vIFNTUjogc2luIGxvY2FsU3RvcmFnZS9uYXZpZ2F0b3IuIE1hbnRlbmVtb3MgZWwgZGVmYXVsdDsgZWwgYnJvd3NlclxuICAgIC8vIGh5ZHJhdGFyw6EgZWwgbGFuZyByZWFsIGN1YW5kbyBlbCBjbGllbnRlIGFycmFucXVlLlxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMQU5HX1NUT1JBR0VfS0VZKTtcblxuICAgIGlmIChzdG9yZWQgJiYgdGhpcy5pc1ZhbGlkTGFuZ3VhZ2Uoc3RvcmVkKSkge1xuICAgICAgdGhpcy5fbGFuZy5zZXQoc3RvcmVkIGFzIEkxOG5MYW5nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEZXRlY3RhciBpZGlvbWEgZGVsIG5hdmVnYWRvclxuICAgIGNvbnN0IGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlLnNwbGl0KCctJylbMF0gYXMgSTE4bkxhbmc7XG4gICAgaWYgKHRoaXMuaXNWYWxpZExhbmd1YWdlKGJyb3dzZXJMYW5nKSkge1xuICAgICAgdGhpcy5fbGFuZy5zZXQoYnJvd3NlckxhbmcpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTEFOR19TVE9SQUdFX0tFWSwgYnJvd3NlckxhbmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGEgc2kgdW4gaWRpb21hIGVzdMOhIHNvcG9ydGFkb1xuICAgKi9cbiAgcHJpdmF0ZSBpc1ZhbGlkTGFuZ3VhZ2UobGFuZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1cHBvcnRlZExhbmd1YWdlcygpLmluY2x1ZGVzKGxhbmcgYXMgSTE4bkxhbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZW1wbGF6YSB7dmFyaWFibGV9IGVuIHRleHRvIGNvbiB2YWxvcmVzIGRlIGRhdGFcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogaW50ZXJwb2xhdGUoJ0hvbGEge25hbWV9JywgeyBuYW1lOiAnSnVhbicgfSkgLy8gJ0hvbGEgSnVhbidcbiAgICovXG4gIHByaXZhdGUgaW50ZXJwb2xhdGUodGV4dDogc3RyaW5nLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZGF0YSkucmVkdWNlKChyZXN1bHQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxceyR7a2V5fVxcXFx9YCwgJ2cnKTtcbiAgICAgIHJldHVybiByZXN1bHQucmVwbGFjZShyZWdleCwgdmFsdWUpO1xuICAgIH0sIHRleHQpO1xuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.934';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45MzQnO1xuIl19
5
+ export const VERSION = '2.0.936';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45MzYnO1xuIl19
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
54
54
  * Current version of valtech-components.
55
55
  * This is automatically updated during the publish process.
56
56
  */
57
- const VERSION = '2.0.934';
57
+ const VERSION = '2.0.936';
58
58
 
59
59
  // Control de estado de refresco (singleton a nivel de módulo)
60
60
  let isRefreshing = false;
@@ -1532,6 +1532,16 @@ class I18nService {
1532
1532
  // Computed para verificaciones rápidas
1533
1533
  this.isSpanish = computed(() => this._lang() === 'es');
1534
1534
  this.isEnglish = computed(() => this._lang() === 'en');
1535
+ /**
1536
+ * Keys faltantes ya advertidas (`ns.key.lang`). Garantiza que el warning se
1537
+ * emita UNA sola vez por key, nunca por cada change-detection.
1538
+ *
1539
+ * Crítico: `getText` se evalúa en bindings de template (una vez por CD). Si
1540
+ * advirtiéramos en cada llamada, un `console.warn` por CD + el `val-debug-console`
1541
+ * (que espeja `console.*` a un signal) crea un loop infinito de CD que congela
1542
+ * el navegador en dev. Deduplicar corta ese loop en su origen.
1543
+ */
1544
+ this._warnedMissing = new Set();
1535
1545
  this.isBrowser = isPlatformBrowser(platformId);
1536
1546
  this.loadStoredLanguage();
1537
1547
  }
@@ -1577,7 +1587,8 @@ class I18nService {
1577
1587
  * Fallback order:
1578
1588
  * 1. content[namespace][lang][key]
1579
1589
  * 2. content['_global'][lang][key]
1580
- * 3. "[namespace.key]" (placeholder)
1590
+ * 3. "" (string vacío) — nunca un placeholder visible ni un valor que
1591
+ * rompa el render. El consumer puede aplicar su propio fallback con `||`.
1581
1592
  */
1582
1593
  getText(key, namespace, data) {
1583
1594
  const content = this._content();
@@ -1589,10 +1600,18 @@ class I18nService {
1589
1600
  if (!text && ns !== '_global') {
1590
1601
  text = content['_global']?.[lang]?.[key];
1591
1602
  }
1592
- // Fallback a placeholder
1603
+ // Fallback seguro: string vacío. Se advierte UNA vez por key (ver
1604
+ // `_warnedMissing`) para que un binding evaluado por CD no genere un
1605
+ // console.warn por cada change-detection (que dispararía un loop con el
1606
+ // debug-console). No devolvemos `[ns.key]` — un placeholder visible
1607
+ // ensucia la UI y, al ser truthy, anula los `|| fallback` del consumer.
1593
1608
  if (!text) {
1594
- console.warn(`[i18n] Missing translation: ${ns}.${key} (${lang})`);
1595
- return `[${ns}.${key}]`;
1609
+ const warnKey = `${ns}.${key}.${lang}`;
1610
+ if (!this._warnedMissing.has(warnKey)) {
1611
+ this._warnedMissing.add(warnKey);
1612
+ console.warn(`[i18n] Missing translation: ${ns}.${key} (${lang})`);
1613
+ }
1614
+ return '';
1596
1615
  }
1597
1616
  // Aplicar interpolación si hay data
1598
1617
  if (data) {
@@ -17240,7 +17259,9 @@ class PageLinksComponent {
17240
17259
  return this._props();
17241
17260
  }
17242
17261
  constructor() {
17243
- this._props = signal({ links: [] });
17262
+ this._props = signal({ links: [] }, {
17263
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
17264
+ });
17244
17265
  this.links = computed(() => this._props().links ?? []);
17245
17266
  addIcons({ chevronForwardOutline, openOutline });
17246
17267
  }
@@ -32002,6 +32023,8 @@ function provideValtechDebugConsole(config = {}) {
32002
32023
  */
32003
32024
  /** Máximo de entradas retenidas en el buffer. */
32004
32025
  const MAX_ENTRIES = 150;
32026
+ /** Ventana de throttle del volcado al signal (ms). Acota la frecuencia de CD. */
32027
+ const FLUSH_THROTTLE_MS = 250;
32005
32028
  class DebugConsoleComponent {
32006
32029
  constructor() {
32007
32030
  /** Gate maestro: `false` (sin provider o `enabled: false`) → todo inerte. */
@@ -32097,18 +32120,23 @@ class DebugConsoleComponent {
32097
32120
  this.scheduleFlush();
32098
32121
  }
32099
32122
  /**
32100
- * Vuelca el buffer al signal `entries` en un microtask — fuera del contexto
32101
- * reactivo desde el que se haya llamado `console.log`. Batchea: múltiples
32102
- * logs del mismo tick resultan en una sola escritura del signal.
32123
+ * Vuelca el buffer al signal `entries`, diferido y throttled.
32124
+ *
32125
+ * `entries.set()` dispara change-detection (el signal se lee en el template).
32126
+ * Si algo emite `console.*` en cada CD (p.ej. un binding que loguea), un flush
32127
+ * por microtask re-encola CD inmediatamente → loop infinito que congela el
32128
+ * navegador. El throttle por tiempo acota el peor caso a ~1 CD/ventana en vez
32129
+ * de 1 CD/microtask: el buffer absorbe todos los logs intermedios en una sola
32130
+ * escritura. Sigue fuera del contexto reactivo del `console.log` (evita NG0600).
32103
32131
  */
32104
32132
  scheduleFlush() {
32105
32133
  if (this.flushScheduled)
32106
32134
  return;
32107
32135
  this.flushScheduled = true;
32108
- queueMicrotask(() => {
32136
+ setTimeout(() => {
32109
32137
  this.flushScheduled = false;
32110
32138
  this.entries.set([...this.buffer]);
32111
- });
32139
+ }, FLUSH_THROTTLE_MS);
32112
32140
  }
32113
32141
  /** Convierte cualquier argumento a una representación legible de una línea. */
32114
32142
  stringify(value) {
@@ -35666,7 +35694,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
35666
35694
 
35667
35695
  class LandingSplitComponent {
35668
35696
  constructor() {
35669
- this.props_ = signal({ title: '' });
35697
+ this.props_ = signal({ title: '' }, {
35698
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
35699
+ });
35670
35700
  this.p = computed(() => this.props_());
35671
35701
  }
35672
35702
  set props(v) {
@@ -35716,7 +35746,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
35716
35746
 
35717
35747
  class LandingStepsComponent {
35718
35748
  constructor() {
35719
- this.props_ = signal({ steps: [] });
35749
+ this.props_ = signal({ steps: [] }, {
35750
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
35751
+ });
35720
35752
  this.p = computed(() => this.props_());
35721
35753
  this.cols = computed(() => this.p().columns ?? 3);
35722
35754
  this.accentColor = computed(() => this.p().accentColor ?? '');
@@ -39597,7 +39629,9 @@ const SKELETON_LAYOUT_DEFAULT_ROWS = {
39597
39629
  */
39598
39630
  class SkeletonLayoutComponent {
39599
39631
  constructor() {
39600
- this.props_ = signal({ preset: 'list' });
39632
+ this.props_ = signal({ preset: 'list' }, {
39633
+ equal: (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b),
39634
+ });
39601
39635
  /** Props con defaults aplicados. */
39602
39636
  this.resolved = computed(() => this.props_());
39603
39637
  /** Shimmer on/off — default on. */