@coolon/angular-ui-powerups 13.0.2 → 13.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/esm2020/lib/components/forms/abstract-list-input.component.mjs +8 -8
  2. package/esm2020/lib/components/forms/abstract-value-input.component.mjs +2 -2
  3. package/esm2020/lib/interaction/activity-ref.mjs +9 -2
  4. package/esm2020/lib/interaction/components/activity-container/activity-container.component.mjs +50 -29
  5. package/esm2020/lib/interaction/services/interaction.service.mjs +16 -7
  6. package/esm2020/lib/place/components/abstract-place-navigation.component.mjs +3 -3
  7. package/esm2020/lib/place/components/place-outlet/place-outlet.component.mjs +3 -3
  8. package/esm2020/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.mjs +4 -1
  9. package/esm2020/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +4 -1
  10. package/esm2020/lib/place/navigation/session/navigation-session.mjs +10 -7
  11. package/esm2020/lib/place/place-router.mjs +83 -56
  12. package/fesm2015/coolon-angular-ui-powerups.mjs +3204 -3133
  13. package/fesm2015/coolon-angular-ui-powerups.mjs.map +1 -1
  14. package/fesm2020/coolon-angular-ui-powerups.mjs +3385 -3318
  15. package/fesm2020/coolon-angular-ui-powerups.mjs.map +1 -1
  16. package/lib/components/forms/abstract-list-input.component.d.ts +4 -4
  17. package/lib/components/forms/abstract-value-input.component.d.ts +2 -2
  18. package/lib/interaction/components/activity-container/activity-container.component.d.ts +11 -9
  19. package/lib/interaction/services/interaction.service.d.ts +2 -2
  20. package/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.d.ts +1 -0
  21. package/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.d.ts +1 -0
  22. package/lib/place/navigation/session/navigation-session.d.ts +11 -10
  23. package/lib/place/place-router.d.ts +20 -18
  24. package/package.json +1 -1
  25. package/schematics/bootstrap-app/templates/src/app/app.component.ts.template +1 -2
  26. package/schematics/bootstrap-app/templates/src/styles.scss.template +59 -7
@@ -1,8 +1,8 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  /* tslint:disable:no-input-rename */
3
- import { Component, EventEmitter, Input, Output } from '@angular/core';
4
- import { Binding, DebugContext, Dsl, Form, Guard, MutableListModel, TrackExternal } from '@coolon/pectin';
5
- import { AbstractInputComponent } from './abstract-input.component';
3
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
4
+ import { Binding, DebugContext, Dsl, Form, Guard, MutableListModel, TrackExternal } from "@coolon/pectin";
5
+ import { AbstractInputComponent } from "./abstract-input.component";
6
6
  import * as i0 from "@angular/core";
7
7
  export class AbstractListInputComponent extends AbstractInputComponent {
8
8
  constructor() {
@@ -29,7 +29,7 @@ export class AbstractListInputComponent extends AbstractInputComponent {
29
29
  this.valueChange.emit(is);
30
30
  this.onValueEditedListeners.fire(l => l(is, was));
31
31
  }, {
32
- initialValue: 'ignore',
32
+ initialValue: "ignore",
33
33
  // we never fire events during an external changes to the value. This allows
34
34
  // the component to behave when used in the conventional angular
35
35
  // fashion, i.e. [(value)]="..."
@@ -53,14 +53,14 @@ export class AbstractListInputComponent extends AbstractInputComponent {
53
53
  }
54
54
  }
55
55
  AbstractListInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractListInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
- AbstractListInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AbstractListInputComponent, selector: "ng-component", inputs: { listModel: "listModel", value: "value" }, outputs: { valueChange: "valueChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
56
+ AbstractListInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AbstractListInputComponent, selector: "ng-component", inputs: { listModel: "listModel", value: "value" }, outputs: { valueChange: "valueChange" }, usesInheritance: true, ngImport: i0, template: "", isInline: true });
57
57
  __decorate([
58
- TrackExternal({ delegateTo: 'formValueModel' }),
58
+ TrackExternal({ delegateTo: "formValueModel" }),
59
59
  __metadata("design:type", Object)
60
60
  ], AbstractListInputComponent.prototype, "listModel", void 0);
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AbstractListInputComponent, decorators: [{
62
62
  type: Component,
63
- args: [{ template: '' }]
63
+ args: [{ template: "" }]
64
64
  }], ctorParameters: function () { return []; }, propDecorators: { listModel: [{
65
65
  type: Input
66
66
  }], value: [{
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
68
68
  }], valueChange: [{
69
69
  type: Output
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2Fic3RyYWN0LWxpc3QtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEUsTUFBTSxPQUFPLDBCQUE4QixTQUFRLHNCQUEyQjtJQXVDNUU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQW5DVjs7Ozs7Ozs7O1dBU0c7UUFDRCwwRkFBMEY7UUFDekUsbUJBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUssQ0FBQyxDQUFDO1FBQzFGLHVCQUFrQixHQUFHLElBQUksZ0JBQWdCLEVBQUssQ0FBQztRQUVoRCx5QkFBb0IsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBa0J4QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJdkQsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoRyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQ2xDLElBQUksQ0FBQyxvQkFBb0IsRUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDekQsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLEVBQUU7WUFDRCxZQUFZLEVBQUUsUUFBUTtZQUN0Qiw0RUFBNEU7WUFDNUUsZ0VBQWdFO1lBQ2hFLGdDQUFnQztZQUNoQyxNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFwQ0QsdUZBQXVGO0lBQ3ZGLHdGQUF3RjtJQUN4RixnQkFBZ0I7SUFDaEIsSUFBYSxLQUFLLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFJLEtBQUssQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt1SEFuQ1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsd0tBRGhCLEVBQUU7QUFJdkI7SUFEVSxhQUFhLENBQUMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzs7NkRBQ0Y7MkZBSDVDLDBCQUEwQjtrQkFEdEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7MEVBSXpCLFNBQVM7c0JBRFIsS0FBSztnQkF3Qk8sS0FBSztzQkFBakIsS0FBSztnQkFXYSxXQUFXO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bm8taW5wdXQtcmVuYW1lICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCaW5kaW5nLCBEZWJ1Z0NvbnRleHQsIERzbCwgRm9ybSwgR3VhcmQsIE11dGFibGVMaXN0TW9kZWwsIFRyYWNrRXh0ZXJuYWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBBYnN0cmFjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgY2xhc3MgQWJzdHJhY3RMaXN0SW5wdXRDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdElucHV0Q29tcG9uZW50PFRbXT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIEBUcmFja0V4dGVybmFsKHsgZGVsZWdhdGVUbzogJ2Zvcm1WYWx1ZU1vZGVsJyB9KVxuICBsaXN0TW9kZWw6IEZvcm0uTGlzdE1vZGVsQmFzZTxUPiB8IE11dGFibGVMaXN0TW9kZWw8VD47XG5cbiAgLyoqXG4gICAqIEEgYmFja2luZyBtb2RlbCBmb3IgYWxsIG91ciBASW5wdXQoKSB2YWx1ZU1vZGVsIHByb3BlcnRpZXMgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgYXMgZm9sbG93cy5cbiAgICpcbiAgICogICAgQElucHV0KCkgQFRyYWNrRXh0ZXJuYWwoe3VzZUV4aXN0aW5nOiBcImlucHV0TW9kZWxcIn0pXG4gICAqICAgIHZhbHVlTW9kZWw6IEZvcm0uTGlzdE1vZGVsQmFzZTxzdHJpbmc+IHwgTXV0YWJsZUxpc3RNb2RlbDxzdHJpbmc+O1xuICAgKlxuICAgKiBUaGlzIGFwcHJvYWNoIGFsbG93cyB0aGUgaW5wdXQgdG8gYWNjZXB0IHBsYWluIG9yIGZvcm0gbW9kZWxzIGJ1dCBhbGwgYmFja2VkIGJ5IGEgZm9ybVxuICAgKiBmcmllbmRseSBkZWxlZ2F0ZS4gIFdlIGhhdmUgdG8gdXNlIGFuIGV4aXN0aW5nIGRlbGVnYXRlIGZvciB1bmlvbiB0eXBlcyBhcyBwZWN0aW4ganVzdFxuICAgKiBnZXRzIHRvbGQgaXQncyBhbiBPYmplY3QgYW5kIGNhbid0IHNjYW4gZm9yIGEgYmFzZSB0eXBlIGFubm90YXRlZCB3aXRoIEBEZWxlZ2F0ZVVzaW5nKC4uKS5cbiAgICovXG4gICAgLy8gV2UgaGF2ZSB0byByZWdpc3RlciBpdCBhcyBhIGRpc3Bvc2FibGUgc28gaXQgZGl0Y2hlcyBhbnkgbGlzdGVuZXJzIHdoZW4gd2UncmUgZGlzcG9zZWQuXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtVmFsdWVNb2RlbCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBGb3JtLkRlbGVnYXRpbmdGb3JtTGlzdE1vZGVsPFQ+KCkpO1xuICByZWFkb25seSBjb21wb25lbnRMaXN0TW9kZWwgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxUPigpO1xuXG4gIHByaXZhdGUgc2V0VmFsdWVJc0luUHJvZ3Jlc3MgPSBuZXcgR3VhcmQoKTtcbiAgLy8gd2UgbmVlZCB0aGlzIGZvciBwbGFpbiB2YWx1ZXMgb3RoZXJ3aXNlIG91ciBGb3JtLkRlbGVnYXRpbmdMaXN0TW9kZWwgd2lsbCBzdGF5IGRpc2FibGVkLlxuICBwcml2YXRlIGxpc3RIb2xkZXI6IE11dGFibGVMaXN0TW9kZWw8VD47XG5cbiAgLy8gV2UgYWRkIHN1cHBvcnQgZm9yIHNpbXBsZSBkaXJlY3QgZGlzcGxheSBvZiB2YWx1ZXMgYnkgYWxsb3dpbmcgY29tcG9uZW50cyB0byBiZSB1c2VkXG4gIC8vIGJ5IGBjb21wb25lbnQudmFsdWUgPSAuLi5gICBUaGlzIHVzZSBvZiB0aGUgY29tcG9uZW50IHdpdGhvdXQgYSB2YWx1ZSBtb2RlbCBpbiB0YWJsZXNcbiAgLy8gYW5kIHRoZSBsaWtlLlxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWVJc0luUHJvZ3Jlc3Mud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5saXN0SG9sZGVyKSB7XG4gICAgICAgIHRoaXMubGlzdEhvbGRlciA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFQ+KHZhbHVlKTtcbiAgICAgICAgdGhpcy5saXN0TW9kZWwgPSB0aGlzLmxpc3RIb2xkZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxpc3RIb2xkZXIudmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyB3aGVuLCB2YWx1ZU9mLCBjaGFpbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGNvbnN0IGJpbmRpbmcgPSBuZXcgQmluZGluZy5JZGVudGl0eSh0aGlzLmZvcm1WYWx1ZU1vZGVsLCB0aGlzLmNvbXBvbmVudExpc3RNb2RlbCkud3JpdGVSaWdodCgpO1xuICAgIGNvbnN0IGluRXh0ZXJuYWxDaGFuZ2UgPSB2YWx1ZU9mLmFueShcbiAgICAgIHRoaXMuc2V0VmFsdWVJc0luUHJvZ3Jlc3MsXG4gICAgICBjaGFpbihiaW5kaW5nLmRpcmVjdGlvbikuZXF1YWxzKEJpbmRpbmcuRGlyZWN0aW9uLlJJR0hUKVxuICAgICkuYXJlVHJ1dGh5KCk7XG5cbiAgICB3aGVuKHRoaXMuY29tcG9uZW50TGlzdE1vZGVsKS5jaGFuZ2VzKChpcywgd2FzKSA9PiB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXMpO1xuICAgICAgdGhpcy5vblZhbHVlRWRpdGVkTGlzdGVuZXJzLmZpcmUobCA9PiBsKGlzLCB3YXMpKTtcbiAgICB9LCB7XG4gICAgICBpbml0aWFsVmFsdWU6ICdpZ25vcmUnLFxuICAgICAgLy8gd2UgbmV2ZXIgZmlyZSBldmVudHMgZHVyaW5nIGFuIGV4dGVybmFsIGNoYW5nZXMgdG8gdGhlIHZhbHVlLiBUaGlzIGFsbG93c1xuICAgICAgLy8gdGhlIGNvbXBvbmVudCB0byBiZWhhdmUgd2hlbiB1c2VkIGluIHRoZSBjb252ZW50aW9uYWwgYW5ndWxhclxuICAgICAgLy8gZmFzaGlvbiwgaS5lLiBbKHZhbHVlKV09XCIuLi5cIlxuICAgICAgdW5sZXNzOiBpbkV4dGVybmFsQ2hhbmdlXG4gICAgfSk7XG4gICAgRGVidWdDb250ZXh0LnRhZyh0aGlzLmZvcm1WYWx1ZU1vZGVsLCBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LmZvcm1WYWx1ZU1vZGVsYCk7XG4gIH1cblxufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2Fic3RyYWN0LWxpc3QtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsT0FBTyxFQUVQLFlBQVksRUFDWixHQUFHLEVBQ0gsSUFBSSxFQUNKLEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR3BFLE1BQU0sT0FBTywwQkFBOEIsU0FBUSxzQkFBMkI7SUF1QzVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFuQ1Y7Ozs7Ozs7OztXQVNHO1FBQ0QsMEZBQTBGO1FBQ3pFLG1CQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFLLENBQUMsQ0FBQztRQUMxRix1QkFBa0IsR0FBRyxJQUFJLGdCQUFnQixFQUFLLENBQUM7UUFFaEQseUJBQW9CLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQWtCeEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSXZELE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEcsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUNsQyxJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQ3pELENBQUMsU0FBUyxFQUFFLENBQUM7UUFFZCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxFQUFFO1lBQ0QsWUFBWSxFQUFFLFFBQVE7WUFDdEIsNEVBQTRFO1lBQzVFLGdFQUFnRTtZQUNoRSxnQ0FBZ0M7WUFDaEMsTUFBTSxFQUFFLGdCQUFnQjtTQUN6QixDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBcENELHVGQUF1RjtJQUN2Rix3RkFBd0Y7SUFDeEYsZ0JBQWdCO0lBQ2hCLElBQWEsS0FBSyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBSSxLQUFLLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ2xDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7dUhBbkNVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHdLQURoQixFQUFFO0FBSXZCO0lBRFUsYUFBYSxDQUFDLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLENBQUM7OzZEQUMrQjsyRkFIN0UsMEJBQTBCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTswRUFJekIsU0FBUztzQkFEUixLQUFLO2dCQXdCTyxLQUFLO3NCQUFqQixLQUFLO2dCQVdhLFdBQVc7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQmluZGluZywgQ29udmVydGVkRm9ybUxpc3RNb2RlbCxcbiAgQ29udmVydGVkRm9ybVZhbHVlTW9kZWwsXG4gIERlYnVnQ29udGV4dCxcbiAgRHNsLFxuICBGb3JtLFxuICBHdWFyZCxcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgVHJhY2tFeHRlcm5hbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7IEFic3RyYWN0SW5wdXRDb21wb25lbnQgfSBmcm9tIFwiLi9hYnN0cmFjdC1pbnB1dC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiBcIlwiIH0pXG5leHBvcnQgY2xhc3MgQWJzdHJhY3RMaXN0SW5wdXRDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdElucHV0Q29tcG9uZW50PFRbXT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIEBUcmFja0V4dGVybmFsKHsgZGVsZWdhdGVUbzogXCJmb3JtVmFsdWVNb2RlbFwiIH0pXG4gIGxpc3RNb2RlbDogRm9ybS5MaXN0TW9kZWxCYXNlPFQ+IHwgQ29udmVydGVkRm9ybUxpc3RNb2RlbDxULCBhbnk+IHwgTXV0YWJsZUxpc3RNb2RlbDxUPjtcblxuICAvKipcbiAgICogQSBiYWNraW5nIG1vZGVsIGZvciBhbGwgb3VyIEBJbnB1dCgpIHZhbHVlTW9kZWwgcHJvcGVydGllcyB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCBhcyBmb2xsb3dzLlxuICAgKlxuICAgKiAgICBASW5wdXQoKSBAVHJhY2tFeHRlcm5hbCh7dXNlRXhpc3Rpbmc6IFwiaW5wdXRNb2RlbFwifSlcbiAgICogICAgdmFsdWVNb2RlbDogRm9ybS5MaXN0TW9kZWxCYXNlPHN0cmluZz4gfCBNdXRhYmxlTGlzdE1vZGVsPHN0cmluZz47XG4gICAqXG4gICAqIFRoaXMgYXBwcm9hY2ggYWxsb3dzIHRoZSBpbnB1dCB0byBhY2NlcHQgcGxhaW4gb3IgZm9ybSBtb2RlbHMgYnV0IGFsbCBiYWNrZWQgYnkgYSBmb3JtXG4gICAqIGZyaWVuZGx5IGRlbGVnYXRlLiAgV2UgaGF2ZSB0byB1c2UgYW4gZXhpc3RpbmcgZGVsZWdhdGUgZm9yIHVuaW9uIHR5cGVzIGFzIHBlY3RpbiBqdXN0XG4gICAqIGdldHMgdG9sZCBpdCdzIGFuIE9iamVjdCBhbmQgY2FuJ3Qgc2NhbiBmb3IgYSBiYXNlIHR5cGUgYW5ub3RhdGVkIHdpdGggQERlbGVnYXRlVXNpbmcoLi4pLlxuICAgKi9cbiAgICAvLyBXZSBoYXZlIHRvIHJlZ2lzdGVyIGl0IGFzIGEgZGlzcG9zYWJsZSBzbyBpdCBkaXRjaGVzIGFueSBsaXN0ZW5lcnMgd2hlbiB3ZSdyZSBkaXNwb3NlZC5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1WYWx1ZU1vZGVsID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEZvcm0uRGVsZWdhdGluZ0Zvcm1MaXN0TW9kZWw8VD4oKSk7XG4gIHJlYWRvbmx5IGNvbXBvbmVudExpc3RNb2RlbCA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFQ+KCk7XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZUlzSW5Qcm9ncmVzcyA9IG5ldyBHdWFyZCgpO1xuICAvLyB3ZSBuZWVkIHRoaXMgZm9yIHBsYWluIHZhbHVlcyBvdGhlcndpc2Ugb3VyIEZvcm0uRGVsZWdhdGluZ0xpc3RNb2RlbCB3aWxsIHN0YXkgZGlzYWJsZWQuXG4gIHByaXZhdGUgbGlzdEhvbGRlcjogTXV0YWJsZUxpc3RNb2RlbDxUPjtcblxuICAvLyBXZSBhZGQgc3VwcG9ydCBmb3Igc2ltcGxlIGRpcmVjdCBkaXNwbGF5IG9mIHZhbHVlcyBieSBhbGxvd2luZyBjb21wb25lbnRzIHRvIGJlIHVzZWRcbiAgLy8gYnkgYGNvbXBvbmVudC52YWx1ZSA9IC4uLmAgIFRoaXMgdXNlIG9mIHRoZSBjb21wb25lbnQgd2l0aG91dCBhIHZhbHVlIG1vZGVsIGluIHRhYmxlc1xuICAvLyBhbmQgdGhlIGxpa2UuXG4gIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogVFtdKSB7XG4gICAgdGhpcy5zZXRWYWx1ZUlzSW5Qcm9ncmVzcy53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmxpc3RIb2xkZXIpIHtcbiAgICAgICAgdGhpcy5saXN0SG9sZGVyID0gbmV3IE11dGFibGVMaXN0TW9kZWw8VD4odmFsdWUpO1xuICAgICAgICB0aGlzLmxpc3RNb2RlbCA9IHRoaXMubGlzdEhvbGRlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGlzdEhvbGRlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IHdoZW4sIHZhbHVlT2YsIGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgY29uc3QgYmluZGluZyA9IG5ldyBCaW5kaW5nLklkZW50aXR5KHRoaXMuZm9ybVZhbHVlTW9kZWwsIHRoaXMuY29tcG9uZW50TGlzdE1vZGVsKS53cml0ZVJpZ2h0KCk7XG4gICAgY29uc3QgaW5FeHRlcm5hbENoYW5nZSA9IHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5zZXRWYWx1ZUlzSW5Qcm9ncmVzcyxcbiAgICAgIGNoYWluKGJpbmRpbmcuZGlyZWN0aW9uKS5lcXVhbHMoQmluZGluZy5EaXJlY3Rpb24uUklHSFQpXG4gICAgKS5hcmVUcnV0aHkoKTtcblxuICAgIHdoZW4odGhpcy5jb21wb25lbnRMaXN0TW9kZWwpLmNoYW5nZXMoKGlzLCB3YXMpID0+IHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChpcyk7XG4gICAgICB0aGlzLm9uVmFsdWVFZGl0ZWRMaXN0ZW5lcnMuZmlyZShsID0+IGwoaXMsIHdhcykpO1xuICAgIH0sIHtcbiAgICAgIGluaXRpYWxWYWx1ZTogXCJpZ25vcmVcIixcbiAgICAgIC8vIHdlIG5ldmVyIGZpcmUgZXZlbnRzIGR1cmluZyBhbiBleHRlcm5hbCBjaGFuZ2VzIHRvIHRoZSB2YWx1ZS4gVGhpcyBhbGxvd3NcbiAgICAgIC8vIHRoZSBjb21wb25lbnQgdG8gYmVoYXZlIHdoZW4gdXNlZCBpbiB0aGUgY29udmVudGlvbmFsIGFuZ3VsYXJcbiAgICAgIC8vIGZhc2hpb24sIGkuZS4gWyh2YWx1ZSldPVwiLi4uXCJcbiAgICAgIHVubGVzczogaW5FeHRlcm5hbENoYW5nZVxuICAgIH0pO1xuICAgIERlYnVnQ29udGV4dC50YWcodGhpcy5mb3JtVmFsdWVNb2RlbCwgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfS5mb3JtVmFsdWVNb2RlbGApO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  /* tslint:disable:no-input-rename */
3
3
  import { Component, EventEmitter, Input, Output } from '@angular/core';
4
- import { Binding, DebugContext, Dsl, Form, Guard, MutableValueModel, TrackExternal } from '@coolon/pectin';
4
+ import { Binding, DebugContext, Dsl, Form, Guard, MutableValueModel, TrackExternal } from "@coolon/pectin";
5
5
  import { AbstractInputComponent } from './abstract-input.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class AbstractValueInputComponent extends AbstractInputComponent {
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
68
68
  }], valueChange: [{
69
69
  type: Output
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdmFsdWUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9DQUFvQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEdBQUcsRUFDSCxJQUFJLEVBQ0osS0FBSyxFQUNMLGlCQUFpQixFQUNqQixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEUsTUFBTSxPQUFPLDJCQUErQixTQUFRLHNCQUF5QjtJQXVDM0U7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQW5DVjs7Ozs7Ozs7O1dBU0c7UUFDRCwwRkFBMEY7UUFDekUsbUJBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUssQ0FBQyxDQUFDO1FBRTFGLHVCQUFrQixHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDbEMsd0JBQW1CLEdBQUcsSUFBSSxpQkFBaUIsRUFBSyxDQUFDO1FBa0J2QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFJckQsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqRyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQ2xDLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDekQsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLEVBQUU7WUFDRCxZQUFZLEVBQUUsUUFBUTtZQUN0QiwyRUFBMkU7WUFDM0UsZ0VBQWdFO1lBQ2hFLGdDQUFnQztZQUNoQyxNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFwQ0QsdUZBQXVGO0lBQ3ZGLHdGQUF3RjtJQUN4RixnQkFBZ0I7SUFDaEIsSUFBYSxLQUFLLENBQUMsS0FBUTtRQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBSSxLQUFLLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDekM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3dIQW5DVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwwS0FEakIsRUFBRTtBQUl2QjtJQURVLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDOzsrREFDQzsyRkFIL0MsMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTswRUFJekIsVUFBVTtzQkFEVCxLQUFLO2dCQXdCTyxLQUFLO3NCQUFqQixLQUFLO2dCQVdhLFdBQVc7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJpbmRpbmcsXG4gIERlYnVnQ29udGV4dCxcbiAgRHNsLFxuICBGb3JtLFxuICBHdWFyZCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFRyYWNrRXh0ZXJuYWxcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0VmFsdWVJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIEFic3RyYWN0SW5wdXRDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIEBUcmFja0V4dGVybmFsKHsgZGVsZWdhdGVUbzogJ2Zvcm1WYWx1ZU1vZGVsJyB9KVxuICB2YWx1ZU1vZGVsOiBGb3JtLlZhbHVlTW9kZWxCYXNlPFQ+IHwgTXV0YWJsZVZhbHVlTW9kZWw8VD47XG5cbiAgLyoqXG4gICAqIEEgYmFja2luZyBtb2RlbCBmb3IgYWxsIG91ciBASW5wdXQoKSB2YWx1ZU1vZGVsIHByb3BlcnRpZXMgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgYXMgZm9sbG93cy5cbiAgICpcbiAgICogICAgQElucHV0KCkgQFRyYWNrRXh0ZXJuYWwoe3VzZUV4aXN0aW5nOiBcImlucHV0TW9kZWxcIn0pXG4gICAqICAgIHZhbHVlTW9kZWw6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBNdXRhYmxlVmFsdWVNb2RlbDxzdHJpbmc+O1xuICAgKlxuICAgKiBUaGlzIGFwcHJvYWNoIGFsbG93cyB0aGUgaW5wdXQgdG8gYWNjZXB0IHBsYWluIG9yIGZvcm0gbW9kZWxzIGJ1dCBhbGwgYmFja2VkIGJ5IGEgZm9ybVxuICAgKiBmcmllbmRseSBkZWxlZ2F0ZS4gIFdlIGhhdmUgdG8gdXNlIGFuIGV4aXN0aW5nIGRlbGVnYXRlIGZvciB1bmlvbiB0eXBlcyBhcyBwZWN0aW4ganVzdFxuICAgKiBnZXRzIHRvbGQgaXQncyBhbiBPYmplY3QgYW5kIGNhbid0IHNjYW4gZm9yIGEgYmFzZSB0eXBlIGFubm90YXRlZCB3aXRoIEBEZWxlZ2F0ZVVzaW5nKC4uKS5cbiAgICovXG4gICAgLy8gV2UgaGF2ZSB0byByZWdpc3RlciBpdCBhcyBhIGRpc3Bvc2FibGUgc28gaXQgZGl0Y2hlcyBhbnkgbGlzdGVuZXJzIHdoZW4gd2UncmUgZGlzcG9zZWQuXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtVmFsdWVNb2RlbCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBGb3JtLkRlbGVnYXRpbmdGb3JtVmFsdWVNb2RlbDxUPigpKTtcblxuICBwcm90ZWN0ZWQgc2V0VmFsdWVJblByb2dyZXNzID0gbmV3IEd1YXJkKCk7XG4gIHJlYWRvbmx5IGNvbXBvbmVudFZhbHVlTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcbiAgLy8gd2UgbmVlZCB0aGlzIGZvciBwbGFpbiB2YWx1ZXMgb3RoZXJ3aXNlIG91ciBGb3JtLkRlbGVnYXRpbmdWYWx1ZU1vZGVsIHdpbGwgc3RheSBkaXNhYmxlZC5cbiAgcHJpdmF0ZSBwbGFpblZhbHVlSG9sZGVyOiBNdXRhYmxlVmFsdWVNb2RlbDxUPjtcblxuICAvLyBXZSBhZGQgc3VwcG9ydCBmb3Igc2ltcGxlIGRpcmVjdCBkaXNwbGF5IG9mIHZhbHVlcyBieSBhbGxvd2luZyBjb21wb25lbnRzIHRvIGJlIHVzZWRcbiAgLy8gYnkgYGNvbXBvbmVudC52YWx1ZSA9IC4uLmAgIFRoaXMgdXNlIG9mIHRoZSBjb21wb25lbnQgd2l0aG91dCBhIHZhbHVlIG1vZGVsIGluIHRhYmxlc1xuICAvLyBhbmQgdGhlIGxpa2UuXG4gIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIHRoaXMuc2V0VmFsdWVJblByb2dyZXNzLndoaWxlVHJ1ZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMucGxhaW5WYWx1ZUhvbGRlcikge1xuICAgICAgICB0aGlzLnBsYWluVmFsdWVIb2xkZXIgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4odmFsdWUpO1xuICAgICAgICB0aGlzLnZhbHVlTW9kZWwgPSB0aGlzLnBsYWluVmFsdWVIb2xkZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBsYWluVmFsdWVIb2xkZXIudmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgd2hlbiwgY2hhaW4sIHZhbHVlT2YgfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICBjb25zdCBiaW5kaW5nID0gbmV3IEJpbmRpbmcuSWRlbnRpdHkodGhpcy5mb3JtVmFsdWVNb2RlbCwgdGhpcy5jb21wb25lbnRWYWx1ZU1vZGVsKS53cml0ZVJpZ2h0KCk7XG4gICAgY29uc3QgaW5FeHRlcm5hbENoYW5nZSA9IHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5zZXRWYWx1ZUluUHJvZ3Jlc3MsXG4gICAgICBjaGFpbihiaW5kaW5nLmRpcmVjdGlvbikuZXF1YWxzKEJpbmRpbmcuRGlyZWN0aW9uLlJJR0hUKVxuICAgICkuYXJlVHJ1dGh5KCk7XG5cbiAgICB3aGVuKHRoaXMuY29tcG9uZW50VmFsdWVNb2RlbCkuY2hhbmdlcygoaXMsIHdhcykgPT4ge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGlzKTtcbiAgICAgIHRoaXMub25WYWx1ZUVkaXRlZExpc3RlbmVycy5maXJlKGwgPT4gbChpcywgd2FzKSk7XG4gICAgfSwge1xuICAgICAgaW5pdGlhbFZhbHVlOiAnaWdub3JlJyxcbiAgICAgIC8vIHdlIG5ldmVyIGZpcmUgZXZlbnRzIGR1cmluZyBhbiBleHRlcm5hbCBzZXQgdmFsdWUgb3BlcmF0aW9uLiBUaGlzIGFsbG93c1xuICAgICAgLy8gdGhlIGNvbXBvbmVudCB0byBiZWhhdmUgd2hlbiB1c2VkIGluIHRoZSBjb252ZW50aW9uYWwgYW5ndWxhclxuICAgICAgLy8gZmFzaGlvbiwgaS5lLiBbKHZhbHVlKV09XCIuLi5cIlxuICAgICAgdW5sZXNzOiBpbkV4dGVybmFsQ2hhbmdlXG4gICAgfSk7XG4gICAgRGVidWdDb250ZXh0LnRhZyh0aGlzLmZvcm1WYWx1ZU1vZGVsLCBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LmZvcm1WYWx1ZU1vZGVsYCk7XG4gIH1cblxufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdmFsdWUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9DQUFvQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEdBQUcsRUFDSCxJQUFJLEVBQ0osS0FBSyxFQUNMLGlCQUFpQixFQUNqQixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEUsTUFBTSxPQUFPLDJCQUErQixTQUFRLHNCQUF5QjtJQXVDM0U7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQW5DVjs7Ozs7Ozs7O1dBU0c7UUFDRCwwRkFBMEY7UUFDekUsbUJBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUssQ0FBQyxDQUFDO1FBRTFGLHVCQUFrQixHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDbEMsd0JBQW1CLEdBQUcsSUFBSSxpQkFBaUIsRUFBSyxDQUFDO1FBa0J2QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFJckQsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqRyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQ2xDLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FDekQsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLEVBQUU7WUFDRCxZQUFZLEVBQUUsUUFBUTtZQUN0QiwyRUFBMkU7WUFDM0UsZ0VBQWdFO1lBQ2hFLGdDQUFnQztZQUNoQyxNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFwQ0QsdUZBQXVGO0lBQ3ZGLHdGQUF3RjtJQUN4RixnQkFBZ0I7SUFDaEIsSUFBYSxLQUFLLENBQUMsS0FBUTtRQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBSSxLQUFLLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDekM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3dIQW5DVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwwS0FEakIsRUFBRTtBQUl2QjtJQURVLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDOzsrREFDbUM7MkZBSGpGLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7MEVBSXpCLFVBQVU7c0JBRFQsS0FBSztnQkF3Qk8sS0FBSztzQkFBakIsS0FBSztnQkFXYSxXQUFXO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bm8taW5wdXQtcmVuYW1lICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCaW5kaW5nLCBDb252ZXJ0ZWRGb3JtVmFsdWVNb2RlbCxcbiAgRGVidWdDb250ZXh0LFxuICBEc2wsXG4gIEZvcm0sXG4gIEd1YXJkLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgVHJhY2tFeHRlcm5hbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7IEFic3RyYWN0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFZhbHVlSW5wdXRDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdElucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBAVHJhY2tFeHRlcm5hbCh7IGRlbGVnYXRlVG86ICdmb3JtVmFsdWVNb2RlbCcgfSlcbiAgdmFsdWVNb2RlbDogRm9ybS5WYWx1ZU1vZGVsQmFzZTxUPiB8IENvbnZlcnRlZEZvcm1WYWx1ZU1vZGVsPFQsIGFueT4gfCBNdXRhYmxlVmFsdWVNb2RlbDxUPjtcblxuICAvKipcbiAgICogQSBiYWNraW5nIG1vZGVsIGZvciBhbGwgb3VyIEBJbnB1dCgpIHZhbHVlTW9kZWwgcHJvcGVydGllcyB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCBhcyBmb2xsb3dzLlxuICAgKlxuICAgKiAgICBASW5wdXQoKSBAVHJhY2tFeHRlcm5hbCh7dXNlRXhpc3Rpbmc6IFwiaW5wdXRNb2RlbFwifSlcbiAgICogICAgdmFsdWVNb2RlbDogIERpcnR5VHJhY2tpbmdGb3JtLlZhbHVlTW9kZWw8c3RyaW5nPiB8IE11dGFibGVWYWx1ZU1vZGVsPHN0cmluZz47XG4gICAqXG4gICAqIFRoaXMgYXBwcm9hY2ggYWxsb3dzIHRoZSBpbnB1dCB0byBhY2NlcHQgcGxhaW4gb3IgZm9ybSBtb2RlbHMgYnV0IGFsbCBiYWNrZWQgYnkgYSBmb3JtXG4gICAqIGZyaWVuZGx5IGRlbGVnYXRlLiAgV2UgaGF2ZSB0byB1c2UgYW4gZXhpc3RpbmcgZGVsZWdhdGUgZm9yIHVuaW9uIHR5cGVzIGFzIHBlY3RpbiBqdXN0XG4gICAqIGdldHMgdG9sZCBpdCdzIGFuIE9iamVjdCBhbmQgY2FuJ3Qgc2NhbiBmb3IgYSBiYXNlIHR5cGUgYW5ub3RhdGVkIHdpdGggQERlbGVnYXRlVXNpbmcoLi4pLlxuICAgKi9cbiAgICAvLyBXZSBoYXZlIHRvIHJlZ2lzdGVyIGl0IGFzIGEgZGlzcG9zYWJsZSBzbyBpdCBkaXRjaGVzIGFueSBsaXN0ZW5lcnMgd2hlbiB3ZSdyZSBkaXNwb3NlZC5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1WYWx1ZU1vZGVsID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEZvcm0uRGVsZWdhdGluZ0Zvcm1WYWx1ZU1vZGVsPFQ+KCkpO1xuXG4gIHByb3RlY3RlZCBzZXRWYWx1ZUluUHJvZ3Jlc3MgPSBuZXcgR3VhcmQoKTtcbiAgcmVhZG9ubHkgY29tcG9uZW50VmFsdWVNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxUPigpO1xuICAvLyB3ZSBuZWVkIHRoaXMgZm9yIHBsYWluIHZhbHVlcyBvdGhlcndpc2Ugb3VyIEZvcm0uRGVsZWdhdGluZ1ZhbHVlTW9kZWwgd2lsbCBzdGF5IGRpc2FibGVkLlxuICBwcml2YXRlIHBsYWluVmFsdWVIb2xkZXI6IE11dGFibGVWYWx1ZU1vZGVsPFQ+O1xuXG4gIC8vIFdlIGFkZCBzdXBwb3J0IGZvciBzaW1wbGUgZGlyZWN0IGRpc3BsYXkgb2YgdmFsdWVzIGJ5IGFsbG93aW5nIGNvbXBvbmVudHMgdG8gYmUgdXNlZFxuICAvLyBieSBgY29tcG9uZW50LnZhbHVlID0gLi4uYCAgVGhpcyB1c2Ugb2YgdGhlIGNvbXBvbmVudCB3aXRob3V0IGEgdmFsdWUgbW9kZWwgaW4gdGFibGVzXG4gIC8vIGFuZCB0aGUgbGlrZS5cbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgdGhpcy5zZXRWYWx1ZUluUHJvZ3Jlc3Mud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5wbGFpblZhbHVlSG9sZGVyKSB7XG4gICAgICAgIHRoaXMucGxhaW5WYWx1ZUhvbGRlciA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxUPih2YWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVNb2RlbCA9IHRoaXMucGxhaW5WYWx1ZUhvbGRlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGxhaW5WYWx1ZUhvbGRlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyB3aGVuLCBjaGFpbiwgdmFsdWVPZiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGNvbnN0IGJpbmRpbmcgPSBuZXcgQmluZGluZy5JZGVudGl0eSh0aGlzLmZvcm1WYWx1ZU1vZGVsLCB0aGlzLmNvbXBvbmVudFZhbHVlTW9kZWwpLndyaXRlUmlnaHQoKTtcbiAgICBjb25zdCBpbkV4dGVybmFsQ2hhbmdlID0gdmFsdWVPZi5hbnkoXG4gICAgICB0aGlzLnNldFZhbHVlSW5Qcm9ncmVzcyxcbiAgICAgIGNoYWluKGJpbmRpbmcuZGlyZWN0aW9uKS5lcXVhbHMoQmluZGluZy5EaXJlY3Rpb24uUklHSFQpXG4gICAgKS5hcmVUcnV0aHkoKTtcblxuICAgIHdoZW4odGhpcy5jb21wb25lbnRWYWx1ZU1vZGVsKS5jaGFuZ2VzKChpcywgd2FzKSA9PiB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXMpO1xuICAgICAgdGhpcy5vblZhbHVlRWRpdGVkTGlzdGVuZXJzLmZpcmUobCA9PiBsKGlzLCB3YXMpKTtcbiAgICB9LCB7XG4gICAgICBpbml0aWFsVmFsdWU6ICdpZ25vcmUnLFxuICAgICAgLy8gd2UgbmV2ZXIgZmlyZSBldmVudHMgZHVyaW5nIGFuIGV4dGVybmFsIHNldCB2YWx1ZSBvcGVyYXRpb24uIFRoaXMgYWxsb3dzXG4gICAgICAvLyB0aGUgY29tcG9uZW50IHRvIGJlaGF2ZSB3aGVuIHVzZWQgaW4gdGhlIGNvbnZlbnRpb25hbCBhbmd1bGFyXG4gICAgICAvLyBmYXNoaW9uLCBpLmUuIFsodmFsdWUpXT1cIi4uLlwiXG4gICAgICB1bmxlc3M6IGluRXh0ZXJuYWxDaGFuZ2VcbiAgICB9KTtcbiAgICBEZWJ1Z0NvbnRleHQudGFnKHRoaXMuZm9ybVZhbHVlTW9kZWwsIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0uZm9ybVZhbHVlTW9kZWxgKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,4 +1,5 @@
1
- import { assert, Deferred, MutableValueModel, DelegatingValueModel } from '@coolon/pectin';
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { assert, Deferred, MutableValueModel, DelegatingValueModel, Trace } from '@coolon/pectin';
2
3
  export class ActivityRef {
3
4
  constructor(activityClass, activityData, onComplete) {
4
5
  this.activityClass = activityClass;
@@ -57,4 +58,10 @@ export class ActivityRef {
57
58
  return this._activityBusy.readonly;
58
59
  }
59
60
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHktcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLFFBQVEsRUFBUSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUluSSxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUFxQixhQUErQyxFQUMvQyxZQUFlLEVBQ2YsVUFBdUQ7UUFGdkQsa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBQy9DLGlCQUFZLEdBQVosWUFBWSxDQUFHO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBNkM7UUFScEUsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixtQkFBYyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUssQ0FBQztRQUM1QixpQkFBWSxHQUFHLElBQUksaUJBQWlCLEVBQVcsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLElBQUksb0JBQW9CLEVBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFLeEYsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZ0I7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUEyQixFQUFFLHdCQUE0QztRQUM3RixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLEVBQUU7WUFDbEQsTUFBTSxDQUFDLE1BQVM7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsUUFBUSxDQUFDLEtBQVE7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUTtTQUNwQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUyxjQUFjLENBQUMsZUFBZ0Q7UUFFdkUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNuQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQ3JDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydCwgQ29uc3RydWN0YWJsZSwgRGVmZXJyZWQsIEZvcm0sIE11dGFibGVWYWx1ZU1vZGVsLCBEZWxlZ2F0aW5nVmFsdWVNb2RlbCwgVHJhY2UsIFZhbHVlTW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4vYWN0aXZpdHknO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSAnLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcblxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5UmVmPEQsIFIsIEU+IHtcblxuICBwcml2YXRlIF9jb21wbGV0ZSA9IGZhbHNlO1xuICBwcml2YXRlIF9hY3Rpdml0eTogQWN0aXZpdHk8RCwgUiwgRT47XG4gIHByaXZhdGUgZGVmZXJyZWRSZXN1bHQgPSBEZWZlcnJlZC5kZWZlcjxSPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzZWRNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3Rpdml0eUJ1c3kgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYWN0aXZpdHlDbGFzczogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGFjdGl2aXR5RGF0YTogRCxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgb25Db21wbGV0ZTogKGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxELCBSLCBFPikgPT4gdm9pZCkge1xuICB9XG5cbiAgaXNBY3Rpdml0eVJlYWxpc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX2FjdGl2aXR5O1xuICB9XG5cbiAgaXNDb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGxldGU7XG4gIH1cblxuICBnZXQgYWN0aXZpdHkoKTogQWN0aXZpdHk8RCwgUiwgRT4ge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzQWN0aXZpdHlSZWFsaXNlZCgpKTtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZpdHk7XG4gIH1cblxuICBzZXRGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvY3VzZWRNb2RlbC52YWx1ZSA9IGZvY3VzZWQ7XG4gIH1cblxuICBnZXQgZm9jdXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkTW9kZWwudmFsdWVcbiAgfVxuXG4gIG5vdGlmeUFjdGl2aXR5Q3JlYXRlZChhY3Rpdml0eTogQWN0aXZpdHk8RCwgUiwgRT4sIG5lc3RlZEludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMuX2FjdGl2aXR5KTtcbiAgICB0aGlzLl9hY3Rpdml0eSA9IGFjdGl2aXR5O1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuX2FjdGl2aXR5LmluaXRpYWxpc2UobmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0LCB7XG4gICAgICBvbkRvbmUocmVzdWx0OiBSKSB7XG4gICAgICAgIHNlbGYuZmluaXNoQWN0aXZpdHkoZGVmZXJyZWQgPT4gZGVmZXJyZWQucmVzb2x2ZShyZXN1bHQpKTtcbiAgICAgIH0sXG4gICAgICBvbkNhbmNlbChlcnJvcjogRSkge1xuICAgICAgICBzZWxmLmZpbmlzaEFjdGl2aXR5KGRlZmVycmVkID0+IGRlZmVycmVkLnJlamVjdChlcnJvcikpO1xuICAgICAgfSxcbiAgICAgIGZvY3VzZWQ6IHRoaXMuZm9jdXNlZE1vZGVsLnJlYWRvbmx5XG4gICAgfSk7XG4gICAgdGhpcy5fYWN0aXZpdHlCdXN5LnNldERlbGVnYXRlKHRoaXMuX2FjdGl2aXR5LmJ1c3kpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpbmlzaEFjdGl2aXR5KHJlc29sdmVPclJlamVjdDogKGRlZmVycmVkOiBEZWZlcnJlZDxSPikgPT4gdm9pZCkge1xuXG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuaXNDb21wbGV0ZSgpKTtcbiAgICByZXNvbHZlT3JSZWplY3QodGhpcy5kZWZlcnJlZFJlc3VsdCk7XG4gICAgdGhpcy5fY29tcGxldGUgPSB0cnVlO1xuICAgIHRoaXMub25Db21wbGV0ZSh0aGlzKTtcbiAgICB0aGlzLl9hY3Rpdml0eUJ1c3kuZGlzcG9zZSgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYWN0aXZpdHkuY2FuY2VsKCk7XG4gIH1cblxuICBnZXQgYWN0aXZpdHlSZXN1bHQoKTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmZXJyZWRSZXN1bHQucHJvbWlzZTtcbiAgfVxuXG4gIGdldCBhY3Rpdml0eUJ1c3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5QnVzeS5yZWFkb25seTtcbiAgfVxuXG59XG4iXX0=
61
+ __decorate([
62
+ Trace(),
63
+ __metadata("design:type", Function),
64
+ __metadata("design:paramtypes", [Function]),
65
+ __metadata("design:returntype", void 0)
66
+ ], ActivityRef.prototype, "finishActivity", null);
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHktcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFpQixRQUFRLEVBQVEsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFJbkksTUFBTSxPQUFPLFdBQVc7SUFRdEIsWUFBcUIsYUFBK0MsRUFDL0MsWUFBZSxFQUNmLFVBQXVEO1FBRnZELGtCQUFhLEdBQWIsYUFBYSxDQUFrQztRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBRztRQUNmLGVBQVUsR0FBVixVQUFVLENBQTZDO1FBUnBFLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsbUJBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7UUFDaEQsa0JBQWEsR0FBRyxJQUFJLG9CQUFvQixFQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBS3hGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdCO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQTtJQUNoQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsUUFBMkIsRUFBRSx3QkFBNEM7UUFDN0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLHdCQUF3QixFQUFFO1lBQ2xELE1BQU0sQ0FBQyxNQUFTO2dCQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELFFBQVEsQ0FBQyxLQUFRO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBR1MsY0FBYyxDQUFDLGVBQWdEO1FBRXZFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbkMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0NBRUY7QUFyQkM7SUFEQyxLQUFLLEVBQUU7Ozs7aURBUVAiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQsIENvbnN0cnVjdGFibGUsIERlZmVycmVkLCBGb3JtLCBNdXRhYmxlVmFsdWVNb2RlbCwgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsIFRyYWNlLCBWYWx1ZU1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuL2FjdGl2aXR5JztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVJlZjxELCBSLCBFPiB7XG5cbiAgcHJpdmF0ZSBfY29tcGxldGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYWN0aXZpdHk6IEFjdGl2aXR5PEQsIFIsIEU+O1xuICBwcml2YXRlIGRlZmVycmVkUmVzdWx0ID0gRGVmZXJyZWQuZGVmZXI8Uj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZpdHlCdXN5ID0gbmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGFjdGl2aXR5Q2xhc3M6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LFxuICAgICAgICAgICAgICByZWFkb25seSBhY3Rpdml0eURhdGE6IEQsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IG9uQ29tcGxldGU6IChhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RCwgUiwgRT4pID0+IHZvaWQpIHtcbiAgfVxuXG4gIGlzQWN0aXZpdHlSZWFsaXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9hY3Rpdml0eTtcbiAgfVxuXG4gIGlzQ29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBsZXRlO1xuICB9XG5cbiAgZ2V0IGFjdGl2aXR5KCk6IEFjdGl2aXR5PEQsIFIsIEU+IHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0FjdGl2aXR5UmVhbGlzZWQoKSk7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5O1xuICB9XG5cbiAgc2V0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5mb2N1c2VkTW9kZWwudmFsdWUgPSBmb2N1c2VkO1xuICB9XG5cbiAgZ2V0IGZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZE1vZGVsLnZhbHVlXG4gIH1cblxuICBub3RpZnlBY3Rpdml0eUNyZWF0ZWQoYWN0aXZpdHk6IEFjdGl2aXR5PEQsIFIsIEU+LCBuZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIGFzc2VydC5pc05pbCh0aGlzLl9hY3Rpdml0eSk7XG4gICAgdGhpcy5fYWN0aXZpdHkgPSBhY3Rpdml0eTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLl9hY3Rpdml0eS5pbml0aWFsaXNlKG5lc3RlZEludGVyYWN0aW9uQ29udGV4dCwge1xuICAgICAgb25Eb25lKHJlc3VsdDogUikge1xuICAgICAgICBzZWxmLmZpbmlzaEFjdGl2aXR5KGRlZmVycmVkID0+IGRlZmVycmVkLnJlc29sdmUocmVzdWx0KSk7XG4gICAgICB9LFxuICAgICAgb25DYW5jZWwoZXJyb3I6IEUpIHtcbiAgICAgICAgc2VsZi5maW5pc2hBY3Rpdml0eShkZWZlcnJlZCA9PiBkZWZlcnJlZC5yZWplY3QoZXJyb3IpKTtcbiAgICAgIH0sXG4gICAgICBmb2N1c2VkOiB0aGlzLmZvY3VzZWRNb2RlbC5yZWFkb25seVxuICAgIH0pO1xuICAgIHRoaXMuX2FjdGl2aXR5QnVzeS5zZXREZWxlZ2F0ZSh0aGlzLl9hY3Rpdml0eS5idXN5KTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIHByb3RlY3RlZCBmaW5pc2hBY3Rpdml0eShyZXNvbHZlT3JSZWplY3Q6IChkZWZlcnJlZDogRGVmZXJyZWQ8Uj4pID0+IHZvaWQpIHtcblxuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzQ29tcGxldGUoKSk7XG4gICAgcmVzb2x2ZU9yUmVqZWN0KHRoaXMuZGVmZXJyZWRSZXN1bHQpO1xuICAgIHRoaXMuX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICB0aGlzLm9uQ29tcGxldGUodGhpcyk7XG4gICAgdGhpcy5fYWN0aXZpdHlCdXN5LmRpc3Bvc2UoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmFjdGl2aXR5LmNhbmNlbCgpO1xuICB9XG5cbiAgZ2V0IGFjdGl2aXR5UmVzdWx0KCk6IFByb21pc2U8Uj4ge1xuICAgIHJldHVybiB0aGlzLmRlZmVycmVkUmVzdWx0LnByb21pc2U7XG4gIH1cblxuICBnZXQgYWN0aXZpdHlCdXN5KCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eUJ1c3kucmVhZG9ubHk7XG4gIH1cblxufVxuIl19
@@ -1,20 +1,24 @@
1
- import { Component, Input, QueryList, ViewChild, ViewChildren } from '@angular/core';
2
- import { MatTabGroup } from '@angular/material/tabs';
3
- import { assert, DelegatingValueModel, Dsl, GarbageCollector, MutableValueModel } from '@coolon/pectin';
4
- import { lang } from '@coolon/typescript-utilities';
5
- import { findLast } from 'lodash';
6
- import { AbstractInteractionContext } from '../../abstract-interaction-context';
7
- import { ActivityRef } from '../../activity-ref';
8
- import { ActivityOutletComponent } from './activity-outlet/activity-outlet.component';
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, Input, QueryList, ViewChild, ViewChildren } from "@angular/core";
3
+ import { MatTabGroup } from "@angular/material/tabs";
4
+ import { assert, DelegatingValueModel, Dsl, GarbageCollector, MutableValueModel, Trace } from "@coolon/pectin";
5
+ import { lang } from "@coolon/typescript-utilities";
6
+ import { findLast } from "lodash";
7
+ import { PlaceRouter } from "../../../place/place-router";
8
+ import { AbstractInteractionContext } from "../../abstract-interaction-context";
9
+ import { ActivityRef } from "../../activity-ref";
10
+ import { ActivityOutletComponent } from "./activity-outlet/activity-outlet.component";
9
11
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/material/tabs";
11
- import * as i2 from "../../../components/busy-overlay/busy-overlay.component";
12
- import * as i3 from "./activity-outlet/activity-outlet.component";
13
- import * as i4 from "@angular/common";
14
- import * as i5 from "@angular/cdk/a11y";
12
+ import * as i1 from "../../../place/place-router";
13
+ import * as i2 from "@angular/material/tabs";
14
+ import * as i3 from "../../../components/busy-overlay/busy-overlay.component";
15
+ import * as i4 from "./activity-outlet/activity-outlet.component";
16
+ import * as i5 from "@angular/common";
17
+ import * as i6 from "@angular/cdk/a11y";
15
18
  export class ActivityContainerComponent extends AbstractInteractionContext {
16
- constructor() {
19
+ constructor(placeRouter) {
17
20
  super();
21
+ this.placeRouter = placeRouter;
18
22
  this.dynamicHeight = false;
19
23
  this.activityRefs = [];
20
24
  this.garbage = new GarbageCollector();
@@ -61,7 +65,7 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
61
65
  }
62
66
  getActiveActivityRef() {
63
67
  if (!this.isActive()) {
64
- lang.illegalState('no activity in progress');
68
+ lang.illegalState("no activity in progress");
65
69
  }
66
70
  return findLast(this.activityRefs, tab => !tab.isComplete());
67
71
  }
@@ -82,11 +86,11 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
82
86
  }
83
87
  // TODO: this handling of multiple nested activities is only used by the activity component and is not a general case.
84
88
  // @Trace()
85
- createAndLaunchActivity(activityType, data, disableClose) {
89
+ async createAndLaunchActivity(activityType, data, disableClose) {
86
90
  assert.isTruthy(this.isInitialised()); // make sure we've been initialised
87
91
  const activityRef = new ActivityRef(activityType, data, () => {
88
- const activeActivityCount = this.getActiveActivityCount() > 0;
89
- if (activeActivityCount) {
92
+ const isActive = this.getActiveActivityCount() > 0;
93
+ if (isActive) {
90
94
  this.triggerTabSynchronisation();
91
95
  }
92
96
  else {
@@ -96,10 +100,19 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
96
100
  this.launchActivity(activityRef);
97
101
  // if this is the first activity let the interaction service know.
98
102
  if (this.activityRefs.length === 1) {
99
- // console.log('Now active!!!');
100
103
  this.interactionServiceApi.notifyActive(this);
101
104
  }
102
- return activityRef.activityResult;
105
+ try {
106
+ return await activityRef.activityResult;
107
+ }
108
+ finally {
109
+ // console.log("closing activity", activityType.name, this.activityRefs)
110
+ if (!this.isActive()) {
111
+ // wait until the activity route syncing has finished
112
+ await this.placeRouter.waitActivitiesSynchronised();
113
+ console.log("activity syncing finished");
114
+ }
115
+ }
103
116
  }
104
117
  getActiveActivityCount() {
105
118
  return this.activityRefs.filter(ref => !ref.isComplete()).length;
@@ -152,8 +165,8 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
152
165
  /**
153
166
  * Synchronises the selected tab index.
154
167
  */
155
- // @Trace()
156
168
  synchroniseSelectedTabIndex() {
169
+ assert.isTruthy(this.isActive());
157
170
  const previousIndex = this.tabs.selectedIndex;
158
171
  const newIndex = this.getActiveActivityCount() - 1;
159
172
  if (previousIndex !== newIndex) {
@@ -184,22 +197,30 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
184
197
  }
185
198
  this.syncSelectedTabTimeout = setTimeout(() => {
186
199
  this.syncSelectedTabTimeout = null;
187
- this.synchroniseSelectedTabIndex();
200
+ if (this.isActive()) {
201
+ this.synchroniseSelectedTabIndex();
202
+ }
188
203
  }, 75);
189
204
  }
190
205
  }
191
- ActivityContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ActivityContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
192
- ActivityContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight" }, viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], components: [{ type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { type: i2.BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busyModel", "busy"] }, { type: i3.ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
206
+ ActivityContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ActivityContainerComponent, deps: [{ token: i1.PlaceRouter }], target: i0.ɵɵFactoryTarget.Component });
207
+ ActivityContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight" }, viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], components: [{ type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { type: i3.BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busyModel", "busy"] }, { type: i4.ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
208
+ __decorate([
209
+ Trace(),
210
+ __metadata("design:type", Function),
211
+ __metadata("design:paramtypes", []),
212
+ __metadata("design:returntype", void 0)
213
+ ], ActivityContainerComponent.prototype, "synchroniseSelectedTabIndex", null);
193
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ActivityContainerComponent, decorators: [{
194
215
  type: Component,
195
- args: [{ selector: 'aup-activity-container', template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
196
- }], ctorParameters: function () { return []; }, propDecorators: { dynamicHeight: [{
216
+ args: [{ selector: "aup-activity-container", template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
217
+ }], ctorParameters: function () { return [{ type: i1.PlaceRouter }]; }, propDecorators: { dynamicHeight: [{
197
218
  type: Input
198
219
  }], tabs: [{
199
220
  type: ViewChild,
200
- args: ['tabs', { static: true }]
221
+ args: ["tabs", { static: true }]
201
222
  }], activityOutlets: [{
202
223
  type: ViewChildren,
203
224
  args: [ActivityOutletComponent]
204
- }] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsTUFBTSxFQUVOLG9CQUFvQixFQUVwQixHQUFHLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7OztBQU90RixNQUFNLE9BQU8sMEJBQW9DLFNBQVEsMEJBQTBCO0lBMEJqRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBeEJWLGtCQUFhLEdBQUcsS0FBSyxDQUFD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QUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNyQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOzt1SEFyTlUsMEJBQTBCOzJHQUExQiwwQkFBMEIsMk9BUXZCLHVCQUF1Qix1RUNuQ3ZDLG01QkFpQkE7MkZEVWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3QjswRUFPbEMsYUFBYTtzQkFEWixLQUFLO2dCQUlOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUluQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgVHJhY2Vcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgbGFuZyB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuXG5pbXBvcnQgeyBmaW5kTGFzdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBzbGlkZURvd25PbkVudGVyQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYW5pbWF0aW9ucy9zbGlkZS1hbmltYXRpb25zJztcbmltcG9ydCB7IEFic3RyYWN0SW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uLy4uL2FjdGl2aXR5JztcbmltcG9ydCB7IEFjdGl2aXR5UmVmIH0gZnJvbSAnLi4vLi4vYWN0aXZpdHktcmVmJztcbmltcG9ydCB7IEludGVyYWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZpdHlPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWFjdGl2aXR5LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eUNvbnRhaW5lckNvbXBvbmVudDxELCBSLCBFPiBleHRlbmRzIEFic3RyYWN0SW50ZXJhY3Rpb25Db250ZXh0IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKVxuICBkeW5hbWljSGVpZ2h0ID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgndGFicycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHRhYnM6IE1hdFRhYkdyb3VwO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQWN0aXZpdHlPdXRsZXRDb21wb25lbnQpXG4gIGFjdGl2aXR5T3V0bGV0czogUXVlcnlMaXN0PEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50PGFueSwgYW55LCBhbnk+PjtcblxuICBhY3Rpdml0eVJlZnM6IEFjdGl2aXR5UmVmPGFueSwgYW55LCBhbnk+W10gPSBbXTtcblxuICBwcml2YXRlIF9pZGVudGlmaWVyOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlZmVycmVkQ2xlYW5VcDogUHJvbWlzZTxhbnk+O1xuXG4gIHByaXZhdGUgaW50ZXJhY3Rpb25TZXJ2aWNlQXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpO1xuXG4gIHByaXZhdGUgZ2FyYmFnZSA9IG5ldyBHYXJiYWdlQ29sbGVjdG9yKCk7XG4gIHByaXZhdGUgc3luY1NlbGVjdGVkVGFiVGltZW91dDogYW55O1xuICBwcml2YXRlIG9uQW5pbWF0aW9uRmluaXNoZWRKb2I6ICgpID0+IHZvaWQ7XG5cbiAgcmVhZG9ubHkgaW5BbmltYXRpb24gPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGJ1c3kgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUodGhpcy5idXN5KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY2hhaW4sIG9ic2VydmUgfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAvLyB1c2luZyB0aGUgY29tcG9uZW50IGRpcmVjdGx5IHJhdGhlciB0aGFuIChhbmltYXRpb25Eb25lKT0uLiBhbGxvd3MgdXNcbiAgICAvLyB0byBrZWVwIG91ciBjYWxsYmFjayBwcml2YXRlLlxuICAgIG9ic2VydmUudmFsdWVzRnJvbSh0aGlzLnRhYnMuYW5pbWF0aW9uRG9uZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25BbmltYXRpb25GaW5pc2hlZCgpKTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoaWRlbnRpZmllcjogc3RyaW5nLCBhcGk6IEludGVyYWN0aW9uU2VydmljZS5BcGkpIHtcbiAgICBhc3NlcnQuaXNGYWxzZXkodGhpcy5pc0luaXRpYWxpc2VkKCkpO1xuICAgIGFzc2VydC5ub3ROaWwoaWRlbnRpZmllcik7XG4gICAgYXNzZXJ0Lm5vdE5pbChhcGkpO1xuICAgIHRoaXMuX2lkZW50aWZpZXIgPSBpZGVudGlmaWVyO1xuICAgIHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlQXBpID0gYXBpO1xuICB9XG5cbiAgZ2V0IGlkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMuaWRlbnRpZmllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYW4gYWN0aXZpdHkgaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gICAqL1xuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgPiAwO1xuICB9XG5cbiAgcmVnaXN0ZXJEaXNwb3NhYmxlPFQgZXh0ZW5kcyBEaXNwb3NhYmxlPihkaXNwb3NhYmxlOiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuZ2FyYmFnZS5yZWdpc3RlckRpc3Bvc2FibGUoZGlzcG9zYWJsZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBkaXNwb3NlKCk6IHZvaWQge1xuICAgIC8vIFRPRE86IHRoaW5rIGFib3V0IGF1dG8gY2FuY2VsbGluZyBhbnkgb3V0c3RhbmRpbmcgYWN0aXZpdHkgb24gZGlzcG9zZS5cbiAgICAvLyAgICAgICBTZWUgTmF2aWdhdGlvblN0YXRlLk5hdmlnYXRpbmcgZm9yIGEgdXNlLWNhc2UuXG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuaXNBY3RpdmUoKSk7XG4gICAgdGhpcy5nYXJiYWdlLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIGdldEFjdGl2ZUFjdGl2aXR5UmVmKCk6IEFjdGl2aXR5UmVmPGFueSwgYW55LCBhbnk+IHtcbiAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoJ25vIGFjdGl2aXR5IGluIHByb2dyZXNzJyk7XG4gICAgfVxuICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLmFjdGl2aXR5UmVmcywgdGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHRoZSBjdXJyZW50IGFjdGl2aXR5IGFuZCByZXR1cm5zIHRydWUgdGhlIGNvbnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZSwgZmFsc2UgaWZcbiAgICogdGhlcmUgaXMgc3RpbGwgYW5vdGhlciBhY3Rpdml0eSBydW5uaW5nLlxuICAgKi9cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYWN0aXZpdHkgPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5UmVmKCk7XG4gICAgYWN0aXZpdHkuY2FuY2VsKCk7XG4gICAgaWYgKHRoaXMuaXNDbGVhbmluZ1VwKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLndhaXRGb3JJbnRlcmFjdGlvbkNvbnRleHRDbGVhbnVwVG9GaW5pc2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICF0aGlzLmlzQWN0aXZlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogdGhpcyBoYW5kbGluZyBvZiBtdWx0aXBsZSBuZXN0ZWQgYWN0aXZpdGllcyBpcyBvbmx5IHVzZWQgYnkgdGhlIGFjdGl2aXR5IGNvbXBvbmVudCBhbmQgaXMgbm90IGEgZ2VuZXJhbCBjYXNlLlxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgY3JlYXRlQW5kTGF1bmNoQWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQxLCBSMSwgRTE+PiwgZGF0YTogRDEsIGRpc2FibGVDbG9zZTogYm9vbGVhbik6IFByb21pc2U8UjE+IHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0luaXRpYWxpc2VkKCkpOyAvLyBtYWtlIHN1cmUgd2UndmUgYmVlbiBpbml0aWFsaXNlZFxuICAgIGNvbnN0IGFjdGl2aXR5UmVmID0gbmV3IEFjdGl2aXR5UmVmPEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZSwgZGF0YSwgKCkgPT4ge1xuICAgICAgY29uc3QgYWN0aXZlQWN0aXZpdHlDb3VudCA9IHRoaXMuZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpID4gMDtcbiAgICAgIGlmIChhY3RpdmVBY3Rpdml0eUNvdW50KSB7XG4gICAgICAgIHRoaXMudHJpZ2dlclRhYlN5bmNocm9uaXNhdGlvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maW5pc2hBbmRTdGFydENsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmxhdW5jaEFjdGl2aXR5KGFjdGl2aXR5UmVmKTtcbiAgICAvLyBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhY3Rpdml0eSBsZXQgdGhlIGludGVyYWN0aW9uIHNlcnZpY2Uga25vdy5cbiAgICBpZiAodGhpcy5hY3Rpdml0eVJlZnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnTm93IGFjdGl2ZSEhIScpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkubm90aWZ5QWN0aXZlKHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aXZpdHlSZWYuYWN0aXZpdHlSZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVJlZnMuZmlsdGVyKHJlZiA9PiAhcmVmLmlzQ29tcGxldGUoKSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVyYWN0aW9uIGNvbnRleHQgaGFzIGZpbmlzaGVkIGFuIGlzIGluIHRoZSBwcm9jZXNzIG9mIHdhaXRpbmdcbiAgICogZm9yIGFsbCB0aGUgaW5mcmFzdHJ1Y3R1cmUgKGluY2x1ZGluZyByb3V0ZSB1cGRhdGVzKSB0byBiZSBjb21wbGV0ZWQuXG4gICAqL1xuICBpc0NsZWFuaW5nVXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmZXJyZWRDbGVhblVwO1xuICB9XG5cbiAgYXN5bmMgd2FpdEZvckludGVyYWN0aW9uQ29udGV4dENsZWFudXBUb0ZpbmlzaCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kZWZlcnJlZENsZWFuVXAgP1xuICAgICAgdGhpcy5fZGVmZXJyZWRDbGVhblVwIDpcbiAgICAgIHRydWU7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIGZpbmlzaEFuZFN0YXJ0Q2xlYW51cCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RlZmVycmVkQ2xlYW5VcCkge1xuICAgICAgLy8gSW1wb3J0YW50OlxuICAgICAgLy8gQ2xlYXIgb3VyIHRhYnMgc28gdGhlIG5leHQgYWN0aXZpdHkgdHJpZ2dlcnMgYSB0YWIgY2hhbmdlLlxuICAgICAgLy8gV2l0aG91dCB0aGlzIG91ciBhbmltYXRpb24gZG9uZSB3YXNuJ3QgY2FsbGVkIHdoZW4gYSBzaW5nbGVcbiAgICAgIC8vIG5ldyBhY3Rpdml0eSBmb2xsb3dlZCBhIHNpbmdsZSB0YWIgYWN0aXZpdHkgKHNpbmNlIHdlJ3JlIHRyYWNraW5nXG4gICAgICAvLyBieSBhY3Rpdml0eSBpbmRleClcbiAgICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gW107XG4gICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkubm90aWZ5RmluaXNoZWQodGhpcyk7XG4gICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgPSBwcm9taXNlXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgPSBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuLy8gQFRyYWNlKClcbiAgbGF1bmNoQWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPEQxLCBSMSwgRTE+KSB7XG4gICAgY29uc3QgY2xlYW5lZFRhYnMgPSB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIodGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcyA9IGNsZWFuZWRUYWJzLmNvbmNhdChhY3Rpdml0eVJlZik7XG4gICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgfVxuXG4gIGFjdGl2aXR5SW5kZXgoaW5kZXg6IG51bWJlciwgYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPGFueSwgYW55LCBhbnk+KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgb25BbmltYXRpb25GaW5pc2hlZCgpIHtcbiAgICBpZiAodGhpcy5vbkFuaW1hdGlvbkZpbmlzaGVkSm9iKSB7XG4gICAgICB0aGlzLm9uQW5pbWF0aW9uRmluaXNoZWRKb2IoKTtcbiAgICAgIHRoaXMub25BbmltYXRpb25GaW5pc2hlZEpvYiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25pc2VzIHRoZSBzZWxlY3RlZCB0YWIgaW5kZXguXG4gICAqL1xuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIHN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpOiB2b2lkIHtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSAtIDE7XG4gICAgaWYgKHByZXZpb3VzSW5kZXggIT09IG5ld0luZGV4KSB7XG4gICAgICB0aGlzLmluQW5pbWF0aW9uLnZhbHVlID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWN0aXZpdHlSZWZzW25ld0luZGV4XS5zZXRGb2N1c2VkKGZhbHNlKTtcbiAgICAgIHRoaXMuYnVzeS5zZXREZWxlZ2F0ZSh0aGlzLmFjdGl2aXR5UmVmc1tuZXdJbmRleF0uYWN0aXZpdHlCdXN5KVxuICAgICAgdGhpcy50YWJzLnNlbGVjdGVkSW5kZXggPSBuZXdJbmRleDtcbiAgICAgIHRoaXMub25BbmltYXRpb25GaW5pc2hlZEpvYiA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVJlZnMgPSB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIodGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgICAgICAgdGhpcy5pbkFuaW1hdGlvbi52YWx1ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGl2aXR5UmVmcy5mb3JFYWNoKChyZWYsIGluZGV4KSA9PiB7XG4gICAgICAgICAgcmVmLnNldEZvY3VzZWQoaW5kZXggPT09IG5ld0luZGV4KVxuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdGVkT3V0bGV0KCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5T3V0bGV0cy50b0FycmF5KClbdGhpcy50YWJzLnNlbGVjdGVkSW5kZXhdO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0U2VsZWN0ZWRUYWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIHRyaWdnZXJUYWJTeW5jaHJvbmlzYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gbnVsbDtcbiAgICAgIHRoaXMuc3luY2hyb25pc2VTZWxlY3RlZFRhYkluZGV4KCk7XG4gICAgfSwgNzUpO1xuICB9XG59XG4iLCI8bWF0LXRhYi1ncm91cCAjdGFicyBuby10YWItaGVhZGVyXG4gICAgICAgICAgICAgICBbZHluYW1pY0hlaWdodF09XCJkeW5hbWljSGVpZ2h0XCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5mdWxsLWhlaWdodC10YWJzXT1cIiFkeW5hbWljSGVpZ2h0XCI+XG4gIDxtYXQtdGFiICpuZ0Zvcj1cImxldCBhY3Rpdml0eVJlZiBvZiBhY3Rpdml0eVJlZnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IGFjdGl2aXR5SW5kZXhcIj5cbiAgICA8YXVwLWJ1c3ktb3ZlcmxheSBbYnVzeU1vZGVsXT1cImJ1c3lcIiBjZGtUcmFwRm9jdXMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmU+XG4gICAgICA8IS0tXG4gICAgICBXZSBoYXZlIGlzc3VlcyB3aGVyZSBhbmd1bGFyIGlzIHRyaWdnZXJpbmcgYSBsZWF2ZSBhbmltYXRpb24gd2hlbiBhblxuICAgICAgbmV3IGFjdGl2aXR5IGlzIHN0YXJ0ZWQsIGJ1dCBpcyBub3QgcnVubmluZyB0aGUgZW50ZXIgYW5pbWF0aW9uXG4gICAgICB3aGVuIGl0IGlzIHNjcm9sbGVkIGJhY2sgaW50byB2aWV3LiAgU28gd2UgdHJhY2sgdGhlIHRhYiBjaGFuZ2VzIGFuZFxuICAgICAgZGlzYWJsZSBhbGwgYW5pbWF0aW9ucyBpbnNpZGUgdGhlIHRhYiB3aGlsZSB3ZSdyZSBhbmltYXRpbmcuXG4gICAgICAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1vdXRsZXQtd3JhcHBlclwiIFtALmRpc2FibGVkXT1cIiFhY3Rpdml0eVJlZi5mb2N1c2VkXCI+XG4gICAgICAgIDxhdXAtYWN0aXZpdHktb3V0bGV0IFtuZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHRdPVwidGhpc1wiIFthY3Rpdml0eVJlZl09XCJhY3Rpdml0eVJlZlwiPjwvYXVwLWFjdGl2aXR5LW91dGxldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXVwLWJ1c3ktb3ZlcmxheT5cbiAgPC9tYXQtdGFiPlxuPC9tYXQtdGFiLWdyb3VwPlxuIl19
225
+ }], synchroniseSelectedTabIndex: [] } });
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLE1BQU0sRUFFTixvQkFBb0IsRUFFcEIsR0FBRyxFQUNILGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsS0FBSyxFQUNOLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXBELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7QUFPdEYsTUFBTSxPQUFPLDBCQUFvQyxTQUFRLDBCQUEw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LENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXO0lBQ1gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7SUFDSCx5QkFBeUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0IsWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7YUFDcEM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOzt1SEFqT1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsMk9BUXZCLHVCQUF1Qix1RUNwQ3ZDLG01QkFpQkE7QURxTUU7SUFEQyxLQUFLLEVBQUU7Ozs7NkVBa0JQOzJGQTNNVSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCO2tHQU9sQyxhQUFhO3NCQURaLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSW5DLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBa0w3QiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFic1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgVHJhY2Vcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQgeyBsYW5nIH0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcblxuaW1wb3J0IHsgZmluZExhc3QgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBzbGlkZURvd25PbkVudGVyQW5pbWF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2FuaW1hdGlvbnMvc2xpZGUtYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHsgUGxhY2VSb3V0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vcGxhY2UvcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQgeyBBYnN0cmFjdEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9hYnN0cmFjdC1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gXCIuLi8uLi9hY3Rpdml0eVwiO1xuaW1wb3J0IHsgQWN0aXZpdHlSZWYgfSBmcm9tIFwiLi4vLi4vYWN0aXZpdHktcmVmXCI7XG5pbXBvcnQgeyBJbnRlcmFjdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaW50ZXJhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgQWN0aXZpdHlPdXRsZXRDb21wb25lbnQgfSBmcm9tIFwiLi9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXVwLWFjdGl2aXR5LWNvbnRhaW5lclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50PEQsIFIsIEU+IGV4dGVuZHMgQWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpXG4gIGR5bmFtaWNIZWlnaHQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFwidGFic1wiLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICB0YWJzOiBNYXRUYWJHcm91cDtcblxuICBAVmlld0NoaWxkcmVuKEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50KVxuICBhY3Rpdml0eU91dGxldHM6IFF1ZXJ5TGlzdDxBY3Rpdml0eU91dGxldENvbXBvbmVudDxhbnksIGFueSwgYW55Pj47XG5cbiAgYWN0aXZpdHlSZWZzOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55PltdID0gW107XG5cbiAgcHJpdmF0ZSBfaWRlbnRpZmllcjogc3RyaW5nO1xuICBwcml2YXRlIF9kZWZlcnJlZENsZWFuVXA6IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIGludGVyYWN0aW9uU2VydmljZUFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaTtcblxuICBwcml2YXRlIGdhcmJhZ2UgPSBuZXcgR2FyYmFnZUNvbGxlY3RvcigpO1xuICBwcml2YXRlIHN5bmNTZWxlY3RlZFRhYlRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBvbkFuaW1hdGlvbkZpbmlzaGVkSm9iOiAoKSA9PiB2b2lkO1xuXG4gIHJlYWRvbmx5IGluQW5pbWF0aW9uID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBidXN5ID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKHRoaXMuYnVzeSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGNoYWluLCBvYnNlcnZlIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgLy8gdXNpbmcgdGhlIGNvbXBvbmVudCBkaXJlY3RseSByYXRoZXIgdGhhbiAoYW5pbWF0aW9uRG9uZSk9Li4gYWxsb3dzIHVzXG4gICAgLy8gdG8ga2VlcCBvdXIgY2FsbGJhY2sgcHJpdmF0ZS5cbiAgICBvYnNlcnZlLnZhbHVlc0Zyb20odGhpcy50YWJzLmFuaW1hdGlvbkRvbmUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQW5pbWF0aW9uRmluaXNoZWQoKSk7XG4gIH1cblxuICBpbml0aWFsaXNlKGlkZW50aWZpZXI6IHN0cmluZywgYXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpKSB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTtcbiAgICBhc3NlcnQubm90TmlsKGlkZW50aWZpZXIpO1xuICAgIGFzc2VydC5ub3ROaWwoYXBpKTtcbiAgICB0aGlzLl9pZGVudGlmaWVyID0gaWRlbnRpZmllcjtcbiAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaSA9IGFwaTtcbiAgfVxuXG4gIGdldCBpZGVudGlmaWVyKCkge1xuICAgIHJldHVybiB0aGlzLl9pZGVudGlmaWVyO1xuICB9XG5cbiAgaXNJbml0aWFsaXNlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLmlkZW50aWZpZXI7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFuIGFjdGl2aXR5IGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICAgKi9cbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpID4gMDtcbiAgfVxuXG4gIHJlZ2lzdGVyRGlzcG9zYWJsZTxUIGV4dGVuZHMgRGlzcG9zYWJsZT4oZGlzcG9zYWJsZTogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmdhcmJhZ2UucmVnaXN0ZXJEaXNwb3NhYmxlKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiB0aGluayBhYm91dCBhdXRvIGNhbmNlbGxpbmcgYW55IG91dHN0YW5kaW5nIGFjdGl2aXR5IG9uIGRpc3Bvc2UuXG4gICAgLy8gICAgICAgU2VlIE5hdmlnYXRpb25TdGF0ZS5OYXZpZ2F0aW5nIGZvciBhIHVzZS1jYXNlLlxuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzQWN0aXZlKCkpO1xuICAgIHRoaXMuZ2FyYmFnZS5kaXNwb3NlKCk7XG4gIH1cblxuICBnZXRBY3RpdmVBY3Rpdml0eVJlZigpOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55PiB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKFwibm8gYWN0aXZpdHkgaW4gcHJvZ3Jlc3NcIik7XG4gICAgfVxuICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLmFjdGl2aXR5UmVmcywgdGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHRoZSBjdXJyZW50IGFjdGl2aXR5IGFuZCByZXR1cm5zIHRydWUgdGhlIGNvbnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZSwgZmFsc2UgaWZcbiAgICogdGhlcmUgaXMgc3RpbGwgYW5vdGhlciBhY3Rpdml0eSBydW5uaW5nLlxuICAgKi9cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYWN0aXZpdHkgPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5UmVmKCk7XG4gICAgYWN0aXZpdHkuY2FuY2VsKCk7XG4gICAgaWYgKHRoaXMuaXNDbGVhbmluZ1VwKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLndhaXRGb3JJbnRlcmFjdGlvbkNvbnRleHRDbGVhbnVwVG9GaW5pc2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICF0aGlzLmlzQWN0aXZlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogdGhpcyBoYW5kbGluZyBvZiBtdWx0aXBsZSBuZXN0ZWQgYWN0aXZpdGllcyBpcyBvbmx5IHVzZWQgYnkgdGhlIGFjdGl2aXR5IGNvbXBvbmVudCBhbmQgaXMgbm90IGEgZ2VuZXJhbCBjYXNlLlxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlQW5kTGF1bmNoQWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQxLCBSMSwgRTE+PiwgZGF0YTogRDEsIGRpc2FibGVDbG9zZTogYm9vbGVhbik6IFByb21pc2U8UjE+IHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0luaXRpYWxpc2VkKCkpOyAvLyBtYWtlIHN1cmUgd2UndmUgYmVlbiBpbml0aWFsaXNlZFxuICAgIGNvbnN0IGFjdGl2aXR5UmVmID0gbmV3IEFjdGl2aXR5UmVmPEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZSwgZGF0YSwgKCkgPT4ge1xuICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSA+IDA7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyVGFiU3luY2hyb25pc2F0aW9uKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbmlzaEFuZFN0YXJ0Q2xlYW51cCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubGF1bmNoQWN0aXZpdHkoYWN0aXZpdHlSZWYpO1xuICAgIC8vIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFjdGl2aXR5IGxldCB0aGUgaW50ZXJhY3Rpb24gc2VydmljZSBrbm93LlxuICAgIGlmICh0aGlzLmFjdGl2aXR5UmVmcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlQXBpLm5vdGlmeUFjdGl2ZSh0aGlzKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGFjdGl2aXR5UmVmLmFjdGl2aXR5UmVzdWx0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhcImNsb3NpbmcgYWN0aXZpdHlcIiwgYWN0aXZpdHlUeXBlLm5hbWUsIHRoaXMuYWN0aXZpdHlSZWZzKVxuICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgLy8gd2FpdCB1bnRpbCB0aGUgYWN0aXZpdHkgcm91dGUgc3luY2luZyBoYXMgZmluaXNoZWRcbiAgICAgICAgYXdhaXQgdGhpcy5wbGFjZVJvdXRlci53YWl0QWN0aXZpdGllc1N5bmNocm9uaXNlZCgpO1xuICAgICAgICBjb25zb2xlLmxvZyhcImFjdGl2aXR5IHN5bmNpbmcgZmluaXNoZWRcIilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVJlZnMuZmlsdGVyKHJlZiA9PiAhcmVmLmlzQ29tcGxldGUoKSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVyYWN0aW9uIGNvbnRleHQgaGFzIGZpbmlzaGVkIGFuIGlzIGluIHRoZSBwcm9jZXNzIG9mIHdhaXRpbmdcbiAgICogZm9yIGFsbCB0aGUgaW5mcmFzdHJ1Y3R1cmUgKGluY2x1ZGluZyByb3V0ZSB1cGRhdGVzKSB0byBiZSBjb21wbGV0ZWQuXG4gICAqL1xuICBpc0NsZWFuaW5nVXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmZXJyZWRDbGVhblVwO1xuICB9XG5cbiAgYXN5bmMgd2FpdEZvckludGVyYWN0aW9uQ29udGV4dENsZWFudXBUb0ZpbmlzaCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kZWZlcnJlZENsZWFuVXAgP1xuICAgICAgdGhpcy5fZGVmZXJyZWRDbGVhblVwIDpcbiAgICAgIHRydWU7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIGZpbmlzaEFuZFN0YXJ0Q2xlYW51cCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RlZmVycmVkQ2xlYW5VcCkge1xuICAgICAgLy8gSW1wb3J0YW50OlxuICAgICAgLy8gQ2xlYXIgb3VyIHRhYnMgc28gdGhlIG5leHQgYWN0aXZpdHkgdHJpZ2dlcnMgYSB0YWIgY2hhbmdlLlxuICAgICAgLy8gV2l0aG91dCB0aGlzIG91ciBhbmltYXRpb24gZG9uZSB3YXNuJ3QgY2FsbGVkIHdoZW4gYSBzaW5nbGVcbiAgICAgIC8vIG5ldyBhY3Rpdml0eSBmb2xsb3dlZCBhIHNpbmdsZSB0YWIgYWN0aXZpdHkgKHNpbmNlIHdlJ3JlIHRyYWNraW5nXG4gICAgICAvLyBieSBhY3Rpdml0eSBpbmRleClcbiAgICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gW107XG4gICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkubm90aWZ5RmluaXNoZWQodGhpcyk7XG4gICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgPSBwcm9taXNlXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgPSBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuLy8gQFRyYWNlKClcbiAgbGF1bmNoQWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPEQxLCBSMSwgRTE+KSB7XG4gICAgY29uc3QgY2xlYW5lZFRhYnMgPSB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIodGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcyA9IGNsZWFuZWRUYWJzLmNvbmNhdChhY3Rpdml0eVJlZik7XG4gICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgfVxuXG4gIGFjdGl2aXR5SW5kZXgoaW5kZXg6IG51bWJlciwgYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPGFueSwgYW55LCBhbnk+KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgb25BbmltYXRpb25GaW5pc2hlZCgpIHtcbiAgICBpZiAodGhpcy5vbkFuaW1hdGlvbkZpbmlzaGVkSm9iKSB7XG4gICAgICB0aGlzLm9uQW5pbWF0aW9uRmluaXNoZWRKb2IoKTtcbiAgICAgIHRoaXMub25BbmltYXRpb25GaW5pc2hlZEpvYiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25pc2VzIHRoZSBzZWxlY3RlZCB0YWIgaW5kZXguXG4gICAqL1xuICBAVHJhY2UoKVxuICBwcml2YXRlIHN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpOiB2b2lkIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSAtIDE7XG4gICAgaWYgKHByZXZpb3VzSW5kZXggIT09IG5ld0luZGV4KSB7XG4gICAgICB0aGlzLmluQW5pbWF0aW9uLnZhbHVlID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWN0aXZpdHlSZWZzW25ld0luZGV4XS5zZXRGb2N1c2VkKGZhbHNlKTtcbiAgICAgIHRoaXMuYnVzeS5zZXREZWxlZ2F0ZSh0aGlzLmFjdGl2aXR5UmVmc1tuZXdJbmRleF0uYWN0aXZpdHlCdXN5KTtcbiAgICAgIHRoaXMudGFicy5zZWxlY3RlZEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICB0aGlzLm9uQW5pbWF0aW9uRmluaXNoZWRKb2IgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gdGhpcy5hY3Rpdml0eVJlZnMuZmlsdGVyKHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gICAgICAgIHRoaXMuaW5BbmltYXRpb24udmFsdWUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVJlZnMuZm9yRWFjaCgocmVmLCBpbmRleCkgPT4ge1xuICAgICAgICAgIHJlZi5zZXRGb2N1c2VkKGluZGV4ID09PSBuZXdJbmRleCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdGVkT3V0bGV0KCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5T3V0bGV0cy50b0FycmF5KClbdGhpcy50YWJzLnNlbGVjdGVkSW5kZXhdO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0U2VsZWN0ZWRUYWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIHRyaWdnZXJUYWJTeW5jaHJvbmlzYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgICAgIH1cbiAgICB9LCA3NSk7XG4gIH1cbn1cbiIsIjxtYXQtdGFiLWdyb3VwICN0YWJzIG5vLXRhYi1oZWFkZXJcbiAgICAgICAgICAgICAgIFtkeW5hbWljSGVpZ2h0XT1cImR5bmFtaWNIZWlnaHRcIlxuICAgICAgICAgICAgICAgW2NsYXNzLmZ1bGwtaGVpZ2h0LXRhYnNdPVwiIWR5bmFtaWNIZWlnaHRcIj5cbiAgPG1hdC10YWIgKm5nRm9yPVwibGV0IGFjdGl2aXR5UmVmIG9mIGFjdGl2aXR5UmVmczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogYWN0aXZpdHlJbmRleFwiPlxuICAgIDxhdXAtYnVzeS1vdmVybGF5IFtidXN5TW9kZWxdPVwiYnVzeVwiIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT5cbiAgICAgIDwhLS1cbiAgICAgIFdlIGhhdmUgaXNzdWVzIHdoZXJlIGFuZ3VsYXIgaXMgdHJpZ2dlcmluZyBhIGxlYXZlIGFuaW1hdGlvbiB3aGVuIGFuXG4gICAgICBuZXcgYWN0aXZpdHkgaXMgc3RhcnRlZCwgYnV0IGlzIG5vdCBydW5uaW5nIHRoZSBlbnRlciBhbmltYXRpb25cbiAgICAgIHdoZW4gaXQgaXMgc2Nyb2xsZWQgYmFjayBpbnRvIHZpZXcuICBTbyB3ZSB0cmFjayB0aGUgdGFiIGNoYW5nZXMgYW5kXG4gICAgICBkaXNhYmxlIGFsbCBhbmltYXRpb25zIGluc2lkZSB0aGUgdGFiIHdoaWxlIHdlJ3JlIGFuaW1hdGluZy5cbiAgICAgIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LW91dGxldC13cmFwcGVyXCIgW0AuZGlzYWJsZWRdPVwiIWFjdGl2aXR5UmVmLmZvY3VzZWRcIj5cbiAgICAgICAgPGF1cC1hY3Rpdml0eS1vdXRsZXQgW25lc3RlZEludGVyYWN0aW9uQ29udGV4dF09XCJ0aGlzXCIgW2FjdGl2aXR5UmVmXT1cImFjdGl2aXR5UmVmXCI+PC9hdXAtYWN0aXZpdHktb3V0bGV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9hdXAtYnVzeS1vdmVybGF5PlxuICA8L21hdC10YWI+XG48L21hdC10YWItZ3JvdXA+XG4iXX0=
@@ -1,5 +1,6 @@
1
+ import { __decorate, __metadata } from "tslib";
1
2
  import { Injectable } from '@angular/core';
2
- import { DelegatingValueModel, Dsl, GarbageCollector, MutableListModel } from '@coolon/pectin';
3
+ import { DelegatingValueModel, Dsl, GarbageCollector, MutableListModel, Trace } from '@coolon/pectin';
3
4
  import { assert } from '@coolon/typescript-utilities';
4
5
  import { InteractionServiceRoutingAdapter } from './interaction-service-routing-adapter';
5
6
  import { ModalInteractionContextFactory } from './modal-interaction-context.factory';
@@ -61,7 +62,7 @@ export class InteractionService {
61
62
  registerPlaceRouter(router) {
62
63
  assert.isFalsey(this.placeRouter);
63
64
  this.placeRouter = router;
64
- this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress);
65
+ this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress$);
65
66
  const self = this;
66
67
  return new InteractionServiceRoutingAdapter(this.activeInteractionContextIds, this.activeModalContext, () => {
67
68
  return self.modelInteractionContextFactory.createInteractionContext('exclusive', new InteractionService.ApiAdapter(this.placeRouter, this.exclusiveInteractionRegistry));
@@ -108,8 +109,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
108
109
  }
109
110
  }
110
111
  InteractionService.ContextRegistry = ContextRegistry;
111
- class ApiAdapter {
112
+ class ApiAdapter extends GarbageCollector {
112
113
  constructor(placeRouter, contextRegistry) {
114
+ super();
113
115
  this.placeRouter = placeRouter;
114
116
  this.contextRegistry = contextRegistry;
115
117
  }
@@ -121,9 +123,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
121
123
  }
122
124
  // @Trace()
123
125
  isNavigationInProgress() {
124
- return this.placeRouter.navigationInProgress.value;
126
+ return this.placeRouter.navigationInProgress$.value;
125
127
  }
126
- // @Trace()
127
128
  notifyFinished(context) {
128
129
  this.contextRegistry.finish(context);
129
130
  // :: Important ::
@@ -133,9 +134,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
133
134
  // current route won't finish until after this promise returns... Deadlock.
134
135
  // So in order to keep this logic out of the activities we perform the check here and ensure that
135
136
  // any interactions with the context while routing is active returns immediately.
136
- return this.isNavigationInProgress() ? Promise.resolve() : this.placeRouter.syncInteractionContextIdsWithRouter();
137
+ return this.isNavigationInProgress() ?
138
+ Promise.resolve() :
139
+ this.placeRouter.syncInteractionContextIdsWithRouter();
137
140
  }
138
141
  }
142
+ __decorate([
143
+ Trace(),
144
+ __metadata("design:type", Function),
145
+ __metadata("design:paramtypes", [Object]),
146
+ __metadata("design:returntype", Promise)
147
+ ], ApiAdapter.prototype, "notifyFinished", null);
139
148
  InteractionService.ApiAdapter = ApiAdapter;
140
149
  })(InteractionService || (InteractionService = {}));
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBSWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSXRELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXpGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFckYsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFLNUIsTUFBTSxPQUFPLGtCQUFrQjtJQW1CN0IsWUFBcUIsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFqQmxFLFlBQU8sR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFHbEQsc0ZBQXNGO1FBQ3RGLHVGQUF1RjtRQUN2Rix3RUFBd0U7UUFDdkQsMEJBQXFCLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQVk5RixNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakcsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDN0UsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFM0UsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNuRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxFQUN4QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUNyQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ3JELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLEVBQ3hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQ3BDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQ3ZDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FDdkIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFDdEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FDckMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUdkLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxxQkFBcUIsQ0FBQzthQUM1RixNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRXRFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0NBQWdDLENBQUMsVUFBZ0M7UUFDL0QsT0FBTyxJQUFJLENBQUMseUNBQXlDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlDQUF5QyxDQUFDLFVBQWdDO1FBQ3hFLGtEQUFrRDtRQUNsRCxPQUFPLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQ25LLENBQUM7SUFFRCxpQ0FBaUMsQ0FBQyxrQkFBNkM7UUFDN0Usa0RBQWtEO1FBQ2xELHVDQUF1QztRQUN2Qyw4Q0FBOEM7UUFDOUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxFQUFFLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUNwSixDQUFDO0lBR0Q7Ozs7OztPQU1HO0lBQ0gsbUJBQW1CLENBQUMsTUFBbUI7UUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FDekMsSUFBSSxDQUFDLDJCQUEyQixFQUNoQyxJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLEdBQUcsRUFBRTtZQUNILE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7UUFDM0ssQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzsrR0FuR1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQXdHRCxXQUFpQixrQkFBa0I7SUFxQmpDOzs7O09BSUc7SUFDSCxNQUFhLGVBQWdCLFNBQVEsZ0JBQWdCO1FBT25EO1lBQ0UsS0FBSyxFQUFFLENBQUM7WUFORixrQkFBYSxHQUFHLElBQUksZ0JBQWdCLEVBQXNCLENBQUM7WUFDM0Qsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksb0JBQW9CLEVBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQU0xRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFFRCxJQUFJLG1CQUFtQjtZQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3JDLENBQUM7UUFFRCxLQUFLLENBQUMsT0FBMkI7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELE1BQU0sQ0FBQyxPQUEyQjtZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsQ0FBQztRQUVELFdBQVcsQ0FBQyxRQUE2QjtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7S0FDRjtJQWpDWSxrQ0FBZSxrQkFpQzNCLENBQUE7SUFFRCxNQUFhLFVBQVU7UUFFckIsWUFBNkIsV0FBd0IsRUFBbUIsZUFBZ0M7WUFBM0UsZ0JBQVcsR0FBWCxXQUFXLENBQWE7WUFBbUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3hHLENBQUM7UUFFRCxXQUFXO1FBQ1gsWUFBWSxDQUFDLE9BQTJCO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ3BILENBQUM7UUFFRCxXQUFXO1FBQ0gsc0JBQXNCO1lBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7UUFDckQsQ0FBQztRQUVELFdBQVc7UUFDWCxjQUFjLENBQUMsT0FBMkI7WUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckMsa0JBQWtCO1lBQ2xCLDhHQUE4RztZQUM5Ryx3RkFBd0Y7WUFDeEYseUdBQXlHO1lBQ3pHLDJFQUEyRTtZQUMzRSxpR0FBaUc7WUFDakcsaUZBQWlGO1lBQ2pGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ3BILENBQUM7S0FDRjtJQTdCWSw2QkFBVSxhQTZCdEIsQ0FBQTtBQUVILENBQUMsRUE1RmdCLGtCQUFrQixLQUFsQixrQkFBa0IsUUE0RmxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvciwgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsIFRyYWNlLFxuICBWYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsQ2hhaW5cbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQbGFjZVJvdXRlciB9IGZyb20gJy4uLy4uL3BsYWNlL3BsYWNlLXJvdXRlcic7XG5pbXBvcnQgeyBJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSBcIi4uL2luLXBsYWNlLWludGVyYWN0aW9uLWNvbnRleHRcIjtcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIgfSBmcm9tICcuL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyJztcblxuaW1wb3J0IHsgTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5IH0gZnJvbSAnLi9tb2RhbC1pbnRlcmFjdGlvbi1jb250ZXh0LmZhY3RvcnknO1xuXG5sZXQgaW5wbGFjZU1vbml0b3JDb3VudCA9IDA7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnYXJiYWdlID0gbmV3IEdhcmJhZ2VDb2xsZWN0b3IoKTtcbiAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZU1vZGFsQ29udGV4dCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUlubGluZUNvbnRleHQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PigpO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkluUHJvZ3Jlc3MgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXI7XG4gIHByaXZhdGUgZXhjbHVzaXZlSW50ZXJhY3Rpb25SZWdpc3RyeTogSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeTtcbiAgcHJpdmF0ZSBtb2RhbEludGVyYWN0aW9uUmVnaXN0cnk6IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnk7XG4gIHByaXZhdGUgaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnk6IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnk7XG4gIHByaXZhdGUgYWN0aXZlTW9kYWxDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcblxuICByZWFkb25seSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IExpc3RNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IGluTW9kYWxJbnRlcmFjdGlvbjogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3Rvcnk6IE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeSkge1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcy5nYXJiYWdlKTtcblxuICAgIHRoaXMuZXhjbHVzaXZlSW50ZXJhY3Rpb25SZWdpc3RyeSA9IG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQ29udGV4dFJlZ2lzdHJ5KCk7XG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuICAgIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuXG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuZGlzYWJsZVdoZW4odmFsdWVPZi5hbnkoXG4gICAgICB0aGlzLmV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5leGNsdXNpdmVJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmUsXG4gICAgICB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmVcbiAgICApLmFyZVRydXRoeSgpO1xuXG5cbiAgICAvLyBUT0RPOiBjaGFpbi5jb25jYXQobGlzdE9yVmFsdWVNb2RlbHMpIHdvdWxkIGJlIG5pY2UuXG4gICAgdGhpcy5hY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMgPSBjaGFpbih0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmludGVyYWN0aW9uQ29udGV4dElkcylcbiAgICAgIC5jb25jYXQodGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0SWRzKTtcblxuICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0ID0gY2hhaW4odGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0cykuZmlyc3QoKTtcbiAgICB0aGlzLmluTW9kYWxJbnRlcmFjdGlvbiA9IGNoYWluKHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0KS5pc05vdE5pbCgpO1xuXG4gIH1cblxuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjcmVhdGVNb2RhbEludGVyYWN0aW9uQ29udGV4dERpc3Bvc2VkV2l0aCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGb3IoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RGlzcG9zZWRXaXRoKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kZWwgaW50ZXJhY3Rpb24gY29udGV4dCB0aGF0IHdpbGwgYmUgZGlzcG9zZWQgYWxvbmcgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGgoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgcmV0dXJuIHRoaXMubW9kZWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5LmNyZWF0ZUludGVyYWN0aW9uQ29udGV4dCgnbW9kYWwnLCBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaUFkYXB0ZXIodGhpcy5wbGFjZVJvdXRlciwgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkpKTtcbiAgfVxuXG4gIHJlZ2lzdGVySW5wbGFjZUludGVyYWN0aW9uQ29udGV4dChpbnRlcmFjdGlvbkNvbnRleHQ6IEluUGxhY2VJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAvLyBUT0RPOiBsb29rIGF0IG1ha2luZyB0aGUgcmVnaXN0cnkgdGhlIGZhY3RvcnkuLlxuICAgIC8vIFRvZG86IGNoZWNrIGZvciBkb3VibGUgcmVnaXN0cmF0aW9uLlxuICAgIC8vIFRvZG86IGFsbG93IG11bHRpcGxlIGlucGxhY2UgaW50ZXJhY3Rpb25zLi5cbiAgICBpbnRlcmFjdGlvbkNvbnRleHQuaW5pdGlhbGlzZShgaXAkeysraW5wbGFjZU1vbml0b3JDb3VudH1gLCBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaUFkYXB0ZXIodGhpcy5wbGFjZVJvdXRlciwgdGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeSkpO1xuICB9XG5cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnRlcmFjdGlvbiBjb250ZXh0IHRoYXQgd2lsbCBwcmV2ZW50IGFueSBvdGhlciBjb250ZXh0cyBmcm9tIHN0YXJ0aW5nIGFuXG4gICAqIGFjdGl2aXR5IHVudGlsIGl0IGlzIGRpc3Bvc2VkLiAgVGhpcyBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHRoZSByb3V0ZXIgZm9yIHBhc3NpbmdcbiAgICogdG8gUGxhY2VDb21wb25lbnQuY2FuRGVhY3RpdmF0ZShpbnRlcmFjdGlvbkNvbnRleHQpLiAgVGhpcyBlbnN1cmVzIGNvbXBvbmVudHMgZG9uJ3RcbiAgICogdHJ5IGFuZCBpbnRlcmFjdCBpbiBhIHdheSB0aGF0IHdlIGNhbid0IHRyYWNrIGFuZCBzeW5jaHJvbmlzZSB3aXRoIHRoZSBicm93c2VyIGJhY2tcbiAgICogYnV0dG9uLlxuICAgKi9cbiAgcmVnaXN0ZXJQbGFjZVJvdXRlcihyb3V0ZXI6IFBsYWNlUm91dGVyKTogSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIge1xuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLnBsYWNlUm91dGVyKTtcbiAgICB0aGlzLnBsYWNlUm91dGVyID0gcm91dGVyO1xuICAgIHRoaXMuX25hdmlnYXRpb25JblByb2dyZXNzLnNldERlbGVnYXRlKHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvbkluUHJvZ3Jlc3MpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIoXG4gICAgICB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyxcbiAgICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0LFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gc2VsZi5tb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkuY3JlYXRlSW50ZXJhY3Rpb25Db250ZXh0KCdleGNsdXNpdmUnLCBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaUFkYXB0ZXIodGhpcy5wbGFjZVJvdXRlciwgdGhpcy5leGNsdXNpdmVJbnRlcmFjdGlvblJlZ2lzdHJ5KSk7XG4gICAgICB9KTtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgSW50ZXJhY3Rpb25TZXJ2aWNlIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIEFwaSB7XG5cbiAgICAvKipcbiAgICAgKiBOb3RpZmllcyB0aGUgaW50ZXJhY3Rpb24gc2VydmljZSB0aGF0IGEgcGFydGljdWxhciBpbnRlcmFjdGlvbkNvbnRleHQgaGFzIGJlY29tZSBhY3RpdmUuIFRoZSBpbnRlcmFjdGlvblxuICAgICAqIHNlcnZpY2VzIHdpbGwgdGhlbiBwdXNoIGNoYW5nZXMgdG8gdGhlIHJvdXRlciB0byB0cmFjayBzdGF0ZS4gIElmIHRoZSByb3V0ZXIgaXMgaWRsZSwgdGhlIHByb21pc2Ugd2lsbFxuICAgICAqIHJlc29sdmUgd2hlbiB0aGUgcm91dGluZyBoYXMgZmluaXNoZWQgdXBkYXRpbmcuICBPdGhlcndpc2UgaXQgd2lsbCByZXR1cm4gaW1tZWRpYXRlbHkuXG4gICAgICogQHBhcmFtIGludGVyYWN0aW9uQ29udGV4dFxuICAgICAqL1xuICAgIG5vdGlmeUFjdGl2ZShpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj47XG5cbiAgICAvKipcbiAgICAgKiBOb3RpZmllcyB0aGUgaW50ZXJhY3Rpb24gc2VydmljZSB0aGF0IGEgcGFydGljdWxhciBpbnRlcmFjdGlvbkNvbnRleHQgaGFzIGJlY29tZSBpZGxlLiBUaGUgaW50ZXJhY3Rpb25cbiAgICAgKiBzZXJ2aWNlcyB3aWxsIHRoZW4gcHVzaCBjaGFuZ2VzIHRvIHRoZSByb3V0ZXIgdG8gdHJhY2sgc3RhdGUuICBJZiB0aGUgcm91dGVyIGlzIGlkbGUsIHRoZSBwcm9taXNlIHdpbGxcbiAgICAgKiByZXNvbHZlIHdoZW4gdGhlIHJvdXRpbmcgaGFzIGZpbmlzaGVkIHVwZGF0aW5nLiAgT3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICAgKi9cbiAgICBub3RpZnlGaW5pc2hlZChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj47XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHRoZSBzZXJ2aWNlIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCB0aGUgQVBJIGFkYXB0ZXJzIGFyZSBkb2luZyB0b1xuICAgKiBlbnN1cmUgdGhlIHJ1bGVzIGFyZSBmb2xsb3dlZCwgaS5lLiBtb2RhbCBvciBpbi1wbGFjZSBpbnRlcmFjdGlvbiBhcmVuJ3Qgc3RhcnRlZCB3aGlsZVxuICAgKiBhbiBleGNsdXNpdmUgcm91dGluZyBpbnRlcmFjdGlvbiBpcyBhY3RpdmUuXG4gICAqL1xuICBleHBvcnQgY2xhc3MgQ29udGV4dFJlZ2lzdHJ5IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgICBwcml2YXRlIF9pbnRlcmFjdGlvbnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWREZWxlZ2F0ZSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG4gICAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICAgIHJlYWRvbmx5IGludGVyYWN0aW9uQ29udGV4dElkczogTGlzdE1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGNoYWluKHRoaXMuX2ludGVyYWN0aW9ucykuaXNOb3RFbXB0eSgpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHRJZHMgPSBjaGFpbih0aGlzLl9pbnRlcmFjdGlvbnMpLnBsdWNrKFwiaWRlbnRpZmllclwiKTtcbiAgICB9XG5cbiAgICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0cygpOkxpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+IHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbnMucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgc3RhcnQoY29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICB0aGlzLl9pbnRlcmFjdGlvbnMucHVzaChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmaW5pc2goY29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICB0aGlzLl9pbnRlcmFjdGlvbnMucmVtb3ZlKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGlzQWN0aXZlKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlLnZhbHVlO1xuICAgIH1cblxuICAgIGRpc2FibGVXaGVuKGRpc2FibGVkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZERlbGVnYXRlLnNldERlbGVnYXRlKGRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXBpQWRhcHRlciBpbXBsZW1lbnRzIEFwaSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlciwgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0UmVnaXN0cnk6IENvbnRleHRSZWdpc3RyeSkge1xuICAgIH1cblxuICAgIC8vIEBUcmFjZSgpXG4gICAgbm90aWZ5QWN0aXZlKGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8YW55PiB7XG4gICAgICBhc3NlcnQuaXNUcnV0aHkoY29udGV4dC5pZGVudGlmaWVyKTtcbiAgICAgIHRoaXMuY29udGV4dFJlZ2lzdHJ5LnN0YXJ0KGNvbnRleHQpO1xuICAgICAgcmV0dXJuIHRoaXMuaXNOYXZpZ2F0aW9uSW5Qcm9ncmVzcygpID8gUHJvbWlzZS5yZXNvbHZlKCkgOiB0aGlzLnBsYWNlUm91dGVyLnN5bmNJbnRlcmFjdGlvbkNvbnRleHRJZHNXaXRoUm91dGVyKCk7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBwcml2YXRlIGlzTmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcy52YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBAVHJhY2UoKVxuICAgIG5vdGlmeUZpbmlzaGVkKGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8YW55PiB7XG4gICAgICB0aGlzLmNvbnRleHRSZWdpc3RyeS5maW5pc2goY29udGV4dCk7XG4gICAgICAvLyA6OiBJbXBvcnRhbnQgOjpcbiAgICAgIC8vIFRoaXMgbWV0aG9kIHdpbGwgYmUgdHJhdmVyc2VkIGJ5IGJvdGggdGhlIHBsYWNlIHJvdXRlciAoZHVyaW5nIGNhbiBjYW5EZWFjdGl2YXRlIGd1YXJkcykgYW5kIHVzZXIgbGFuZCBjb2RlXG4gICAgICAvLyAoYm90aCB3aGVuIHJvdXRpbmcgaXMgaWRsZSBhbmQgd2hpbGUgaXQgaXMgYWN0aXZlIGluIFBsYWNlQ29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKSkuXG4gICAgICAvLyBUaGUgcmVzdWx0IG9mIHB1c2hJbnRlcmFjdGlvbklkc1RvUm91dGUgd2lsbCBub3Qgc3RhcnQgdW50aWwgYWZ0ZXIgdGhlIGN1cnJlbnQgcm91dGUgZmluaXNoZXMsIGFuZCB0aGVcbiAgICAgIC8vIGN1cnJlbnQgcm91dGUgd29uJ3QgZmluaXNoIHVudGlsIGFmdGVyIHRoaXMgcHJvbWlzZSByZXR1cm5zLi4uIERlYWRsb2NrLlxuICAgICAgLy8gU28gaW4gb3JkZXIgdG8ga2VlcCB0aGlzIGxvZ2ljIG91dCBvZiB0aGUgYWN0aXZpdGllcyB3ZSBwZXJmb3JtIHRoZSBjaGVjayBoZXJlIGFuZCBlbnN1cmUgdGhhdFxuICAgICAgLy8gYW55IGludGVyYWN0aW9ucyB3aXRoIHRoZSBjb250ZXh0IHdoaWxlIHJvdXRpbmcgaXMgYWN0aXZlIHJldHVybnMgaW1tZWRpYXRlbHkuXG4gICAgICByZXR1cm4gdGhpcy5pc05hdmlnYXRpb25JblByb2dyZXNzKCkgPyBQcm9taXNlLnJlc29sdmUoKSA6IHRoaXMucGxhY2VSb3V0ZXIuc3luY0ludGVyYWN0aW9uQ29udGV4dElkc1dpdGhSb3V0ZXIoKTtcbiAgICB9XG4gIH1cblxufVxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLG9CQUFvQixFQUVwQixHQUFHLEVBQ0gsZ0JBQWdCLEVBRWhCLGdCQUFnQixFQUNHLEtBQUssRUFHekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQUVyRixJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUs1QixNQUFNLE9BQU8sa0JBQWtCO0lBbUI3QixZQUFxQiw4QkFBOEQ7UUFBOUQsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQWpCbEUsWUFBTyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUdsRCxzRkFBc0Y7UUFDdEYsdUZBQXVGO1FBQ3ZGLHdFQUF3RTtRQUN2RCwwQkFBcUIsR0FBRyxJQUFJLG9CQUFvQixFQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBWTlGLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxlQUFl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RztZQUN6RywyRUFBMkU7WUFDM0UsaUdBQWlHO1lBQ2pHLGlGQUFpRjtZQUNqRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLG1DQUFtQyxFQUFFLENBQUM7UUFDM0QsQ0FBQztLQUNGO0lBYkM7UUFEQyxLQUFLLEVBQUU7Ozs7b0RBYVA7SUEvQlUsNkJBQVUsYUFnQ3RCLENBQUE7QUFFSCxDQUFDLEVBL0ZnQixrQkFBa0IsS0FBbEIsa0JBQWtCLFFBK0ZsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEaXNwb3NhYmxlLFxuICBEc2wsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsIExpc3RNb2RlbCxcbiAgTGlzdE1vZGVsQ2hhaW4sXG4gIE11dGFibGVMaXN0TW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLCBUcmFjZSxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUGxhY2VSb3V0ZXIgfSBmcm9tICcuLi8uLi9wbGFjZS9wbGFjZS1yb3V0ZXInO1xuaW1wb3J0IHsgSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gXCIuLi9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHQgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7IEludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyIH0gZnJvbSAnLi9pbnRlcmFjdGlvbi1zZXJ2aWNlLXJvdXRpbmctYWRhcHRlcic7XG5cbmltcG9ydCB7IE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeSB9IGZyb20gJy4vbW9kYWwtaW50ZXJhY3Rpb24tY29udGV4dC5mYWN0b3J5JztcblxubGV0IGlucGxhY2VNb25pdG9yQ291bnQgPSAwO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZ2FyYmFnZSA9IG5ldyBHYXJiYWdlQ29sbGVjdG9yKCk7XG4gIHJlYWRvbmx5IGFjdGl2ZTogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVNb2RhbENvbnRleHQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PigpO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVJbmxpbmVDb250ZXh0ID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPEludGVyYWN0aW9uQ29udGV4dD4oKTtcbiAgLy8gcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlQ29udGV4dDogVmFsdWVNb2RlbENoYWluPEludGVyYWN0aW9uQ29udGV4dD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25JblByb2dyZXNzID0gbmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpO1xuXG4gIHByaXZhdGUgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyO1xuICBwcml2YXRlIGV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnk6IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnk7XG4gIHByaXZhdGUgbW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5OiBJbnRlcmFjdGlvblNlcnZpY2UuQ29udGV4dFJlZ2lzdHJ5O1xuICBwcml2YXRlIGluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5OiBJbnRlcmFjdGlvblNlcnZpY2UuQ29udGV4dFJlZ2lzdHJ5O1xuICBwcml2YXRlIGFjdGl2ZU1vZGFsQ29udGV4dDogVmFsdWVNb2RlbENoYWluPEludGVyYWN0aW9uQ29udGV4dD47XG5cbiAgcmVhZG9ubHkgYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzOiBMaXN0TW9kZWxDaGFpbjxzdHJpbmc+O1xuICByZWFkb25seSBpbk1vZGFsSW50ZXJhY3Rpb246IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgbW9kZWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5OiBNb2RhbEludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkpIHtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMuZ2FyYmFnZSk7XG5cbiAgICB0aGlzLmV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5ID0gbmV3IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnkoKTtcbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5ID0gbmV3IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnkoKTtcblxuICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5leGNsdXNpdmVJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZVxuICAgICkuYXJlVHJ1dGh5KCkpO1xuXG4gICAgdGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeS5kaXNhYmxlV2hlbih2YWx1ZU9mLmFueShcbiAgICAgIHRoaXMuZXhjbHVzaXZlSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmUsXG4gICAgICB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmUsXG4gICAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZVxuICAgICkuYXJlVHJ1dGh5KCkpO1xuXG4gICAgdGhpcy5hY3RpdmUgPSB2YWx1ZU9mLmFueShcbiAgICAgIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKTtcblxuXG4gICAgLy8gVE9ETzogY2hhaW4uY29uY2F0KGxpc3RPclZhbHVlTW9kZWxzKSB3b3VsZCBiZSBuaWNlLlxuICAgIHRoaXMuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzID0gY2hhaW4odGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeS5pbnRlcmFjdGlvbkNvbnRleHRJZHMpXG4gICAgICAuY29uY2F0KHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmludGVyYWN0aW9uQ29udGV4dElkcyk7XG5cbiAgICB0aGlzLmFjdGl2ZU1vZGFsQ29udGV4dCA9IGNoYWluKHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmludGVyYWN0aW9uQ29udGV4dHMpLmZpcnN0KCk7XG4gICAgdGhpcy5pbk1vZGFsSW50ZXJhY3Rpb24gPSBjaGFpbih0aGlzLmFjdGl2ZU1vZGFsQ29udGV4dCkuaXNOb3ROaWwoKTtcblxuICB9XG5cbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGggaW5zdGVhZC5cbiAgICogQHBhcmFtIGRpc3Bvc2FibGVcbiAgICovXG4gIGNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0Rm9yKGRpc3Bvc2FibGU6IERpc3Bvc2FibGUuQ29sbGVjdG9yKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RhbEludGVyYWN0aW9uQ29udGV4dERpc3Bvc2VkV2l0aChkaXNwb3NhYmxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG1vZGVsIGludGVyYWN0aW9uIGNvbnRleHQgdGhhdCB3aWxsIGJlIGRpc3Bvc2VkIGFsb25nIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIGRpc3Bvc2FibGVcbiAgICovXG4gIGNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RGlzcG9zZWRXaXRoKGRpc3Bvc2FibGU6IERpc3Bvc2FibGUuQ29sbGVjdG9yKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICAvLyBUT0RPOiBsb29rIGF0IG1ha2luZyB0aGUgcmVnaXN0cnkgdGhlIGZhY3RvcnkuLlxuICAgIHJldHVybiB0aGlzLm1vZGVsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeS5jcmVhdGVJbnRlcmFjdGlvbkNvbnRleHQoJ21vZGFsJywgbmV3IEludGVyYWN0aW9uU2VydmljZS5BcGlBZGFwdGVyKHRoaXMucGxhY2VSb3V0ZXIsIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5KSk7XG4gIH1cblxuICByZWdpc3RlcklucGxhY2VJbnRlcmFjdGlvbkNvbnRleHQoaW50ZXJhY3Rpb25Db250ZXh0OiBJblBsYWNlSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgLy8gVE9ETzogbG9vayBhdCBtYWtpbmcgdGhlIHJlZ2lzdHJ5IHRoZSBmYWN0b3J5Li5cbiAgICAvLyBUb2RvOiBjaGVjayBmb3IgZG91YmxlIHJlZ2lzdHJhdGlvbi5cbiAgICAvLyBUb2RvOiBhbGxvdyBtdWx0aXBsZSBpbnBsYWNlIGludGVyYWN0aW9ucy4uXG4gICAgaW50ZXJhY3Rpb25Db250ZXh0LmluaXRpYWxpc2UoYGlwJHsrK2lucGxhY2VNb25pdG9yQ291bnR9YCwgbmV3IEludGVyYWN0aW9uU2VydmljZS5BcGlBZGFwdGVyKHRoaXMucGxhY2VSb3V0ZXIsIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkpKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW50ZXJhY3Rpb24gY29udGV4dCB0aGF0IHdpbGwgcHJldmVudCBhbnkgb3RoZXIgY29udGV4dHMgZnJvbSBzdGFydGluZyBhblxuICAgKiBhY3Rpdml0eSB1bnRpbCBpdCBpcyBkaXNwb3NlZC4gIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSB0aGUgcm91dGVyIGZvciBwYXNzaW5nXG4gICAqIHRvIFBsYWNlQ29tcG9uZW50LmNhbkRlYWN0aXZhdGUoaW50ZXJhY3Rpb25Db250ZXh0KS4gIFRoaXMgZW5zdXJlcyBjb21wb25lbnRzIGRvbid0XG4gICAqIHRyeSBhbmQgaW50ZXJhY3QgaW4gYSB3YXkgdGhhdCB3ZSBjYW4ndCB0cmFjayBhbmQgc3luY2hyb25pc2Ugd2l0aCB0aGUgYnJvd3NlciBiYWNrXG4gICAqIGJ1dHRvbi5cbiAgICovXG4gIHJlZ2lzdGVyUGxhY2VSb3V0ZXIocm91dGVyOiBQbGFjZVJvdXRlcik6IEludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyIHtcbiAgICBhc3NlcnQuaXNGYWxzZXkodGhpcy5wbGFjZVJvdXRlcik7XG4gICAgdGhpcy5wbGFjZVJvdXRlciA9IHJvdXRlcjtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uSW5Qcm9ncmVzcy5zZXREZWxlZ2F0ZSh0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25JblByb2dyZXNzJCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcihcbiAgICAgIHRoaXMuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLFxuICAgICAgdGhpcy5hY3RpdmVNb2RhbENvbnRleHQsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHJldHVybiBzZWxmLm1vZGVsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeS5jcmVhdGVJbnRlcmFjdGlvbkNvbnRleHQoJ2V4Y2x1c2l2ZScsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLmV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnkpKTtcbiAgICAgIH0pO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBJbnRlcmFjdGlvblNlcnZpY2Uge1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXBpIHtcblxuICAgIC8qKlxuICAgICAqIE5vdGlmaWVzIHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlIHRoYXQgYSBwYXJ0aWN1bGFyIGludGVyYWN0aW9uQ29udGV4dCBoYXMgYmVjb21lIGFjdGl2ZS4gVGhlIGludGVyYWN0aW9uXG4gICAgICogc2VydmljZXMgd2lsbCB0aGVuIHB1c2ggY2hhbmdlcyB0byB0aGUgcm91dGVyIHRvIHRyYWNrIHN0YXRlLiAgSWYgdGhlIHJvdXRlciBpcyBpZGxlLCB0aGUgcHJvbWlzZSB3aWxsXG4gICAgICogcmVzb2x2ZSB3aGVuIHRoZSByb3V0aW5nIGhhcyBmaW5pc2hlZCB1cGRhdGluZy4gIE90aGVyd2lzZSBpdCB3aWxsIHJldHVybiBpbW1lZGlhdGVseS5cbiAgICAgKiBAcGFyYW0gaW50ZXJhY3Rpb25Db250ZXh0XG4gICAgICovXG4gICAgbm90aWZ5QWN0aXZlKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTx1bmtub3duPjtcblxuICAgIC8qKlxuICAgICAqIE5vdGlmaWVzIHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlIHRoYXQgYSBwYXJ0aWN1bGFyIGludGVyYWN0aW9uQ29udGV4dCBoYXMgYmVjb21lIGlkbGUuIFRoZSBpbnRlcmFjdGlvblxuICAgICAqIHNlcnZpY2VzIHdpbGwgdGhlbiBwdXNoIGNoYW5nZXMgdG8gdGhlIHJvdXRlciB0byB0cmFjayBzdGF0ZS4gIElmIHRoZSByb3V0ZXIgaXMgaWRsZSwgdGhlIHByb21pc2Ugd2lsbFxuICAgICAqIHJlc29sdmUgd2hlbiB0aGUgcm91dGluZyBoYXMgZmluaXNoZWQgdXBkYXRpbmcuICBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICAgKi9cbiAgICBub3RpZnlGaW5pc2hlZChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj47XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHRoZSBzZXJ2aWNlIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCB0aGUgQVBJIGFkYXB0ZXJzIGFyZSBkb2luZyB0b1xuICAgKiBlbnN1cmUgdGhlIHJ1bGVzIGFyZSBmb2xsb3dlZCwgaS5lLiBtb2RhbCBvciBpbi1wbGFjZSBpbnRlcmFjdGlvbiBhcmVuJ3Qgc3RhcnRlZCB3aGlsZVxuICAgKiBhbiBleGNsdXNpdmUgcm91dGluZyBpbnRlcmFjdGlvbiBpcyBhY3RpdmUuXG4gICAqL1xuICBleHBvcnQgY2xhc3MgQ29udGV4dFJlZ2lzdHJ5IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgICBwcml2YXRlIF9pbnRlcmFjdGlvbnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWREZWxlZ2F0ZSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG4gICAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICAgIHJlYWRvbmx5IGludGVyYWN0aW9uQ29udGV4dElkczogTGlzdE1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGNoYWluKHRoaXMuX2ludGVyYWN0aW9ucykuaXNOb3RFbXB0eSgpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHRJZHMgPSBjaGFpbih0aGlzLl9pbnRlcmFjdGlvbnMpLnBsdWNrKFwiaWRlbnRpZmllclwiKTtcbiAgICB9XG5cbiAgICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0cygpOkxpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+IHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbnMucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgc3RhcnQoY29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICB0aGlzLl9pbnRlcmFjdGlvbnMucHVzaChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmaW5pc2goY29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICB0aGlzLl9pbnRlcmFjdGlvbnMucmVtb3ZlKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGlzQWN0aXZlKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlLnZhbHVlO1xuICAgIH1cblxuICAgIGRpc2FibGVXaGVuKGRpc2FibGVkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZERlbGVnYXRlLnNldERlbGVnYXRlKGRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXBpQWRhcHRlciBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3IgaW1wbGVtZW50cyBBcGkge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIsIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dFJlZ2lzdHJ5OiBDb250ZXh0UmVnaXN0cnkpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBub3RpZnlBY3RpdmUoY29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIGFzc2VydC5pc1RydXRoeShjb250ZXh0LmlkZW50aWZpZXIpO1xuICAgICAgdGhpcy5jb250ZXh0UmVnaXN0cnkuc3RhcnQoY29udGV4dCk7XG4gICAgICByZXR1cm4gdGhpcy5pc05hdmlnYXRpb25JblByb2dyZXNzKCkgPyBQcm9taXNlLnJlc29sdmUoKSA6IHRoaXMucGxhY2VSb3V0ZXIuc3luY0ludGVyYWN0aW9uQ29udGV4dElkc1dpdGhSb3V0ZXIoKTtcbiAgICB9XG5cbiAgICAvLyBAVHJhY2UoKVxuICAgIHByaXZhdGUgaXNOYXZpZ2F0aW9uSW5Qcm9ncmVzcygpIHtcbiAgICAgIHJldHVybiB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25JblByb2dyZXNzJC52YWx1ZTtcbiAgICB9XG5cbiAgICBAVHJhY2UoKVxuICAgIG5vdGlmeUZpbmlzaGVkKGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8YW55PiB7XG4gICAgICB0aGlzLmNvbnRleHRSZWdpc3RyeS5maW5pc2goY29udGV4dCk7XG4gICAgICAvLyA6OiBJbXBvcnRhbnQgOjpcbiAgICAgIC8vIFRoaXMgbWV0aG9kIHdpbGwgYmUgdHJhdmVyc2VkIGJ5IGJvdGggdGhlIHBsYWNlIHJvdXRlciAoZHVyaW5nIGNhbiBjYW5EZWFjdGl2YXRlIGd1YXJkcykgYW5kIHVzZXIgbGFuZCBjb2RlXG4gICAgICAvLyAoYm90aCB3aGVuIHJvdXRpbmcgaXMgaWRsZSBhbmQgd2hpbGUgaXQgaXMgYWN0aXZlIGluIFBsYWNlQ29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKSkuXG4gICAgICAvLyBUaGUgcmVzdWx0IG9mIHB1c2hJbnRlcmFjdGlvbklkc1RvUm91dGUgd2lsbCBub3Qgc3RhcnQgdW50aWwgYWZ0ZXIgdGhlIGN1cnJlbnQgcm91dGUgZmluaXNoZXMsIGFuZCB0aGVcbiAgICAgIC8vIGN1cnJlbnQgcm91dGUgd29uJ3QgZmluaXNoIHVudGlsIGFmdGVyIHRoaXMgcHJvbWlzZSByZXR1cm5zLi4uIERlYWRsb2NrLlxuICAgICAgLy8gU28gaW4gb3JkZXIgdG8ga2VlcCB0aGlzIGxvZ2ljIG91dCBvZiB0aGUgYWN0aXZpdGllcyB3ZSBwZXJmb3JtIHRoZSBjaGVjayBoZXJlIGFuZCBlbnN1cmUgdGhhdFxuICAgICAgLy8gYW55IGludGVyYWN0aW9ucyB3aXRoIHRoZSBjb250ZXh0IHdoaWxlIHJvdXRpbmcgaXMgYWN0aXZlIHJldHVybnMgaW1tZWRpYXRlbHkuXG4gICAgICByZXR1cm4gdGhpcy5pc05hdmlnYXRpb25JblByb2dyZXNzKCkgP1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKSA6XG4gICAgICAgIHRoaXMucGxhY2VSb3V0ZXIuc3luY0ludGVyYWN0aW9uQ29udGV4dElkc1dpdGhSb3V0ZXIoKTtcbiAgICB9XG4gIH1cblxufVxuIl19