@coolon/angular-ui-powerups 0.0.91 → 0.0.92

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.
@@ -3,8 +3,6 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
- import { Injectable } from '@angular/core';
7
- import { InteractionContext } from '../interaction/interaction-context';
8
6
  /**
9
7
  * @abstract
10
8
  */
@@ -146,39 +144,30 @@ if (false) {
146
144
  }
147
145
  class Factory {
148
146
  /**
149
- * @param {?} appModelInteractionContext
147
+ * @param {?} interactionContext
150
148
  */
151
- constructor(appModelInteractionContext) {
152
- this.appModelInteractionContext = appModelInteractionContext;
149
+ constructor(interactionContext) {
150
+ this.interactionContext = interactionContext;
153
151
  }
154
152
  /**
155
153
  * @param {?} visit
156
154
  * @return {?}
157
155
  */
158
156
  createInternal(visit) {
159
- return new Internal(visit, this.appModelInteractionContext);
157
+ return new Internal(visit, this.interactionContext);
160
158
  }
161
159
  /**
162
160
  * @param {?} firstTimeRoute
163
161
  * @return {?}
164
162
  */
165
163
  createExternal(firstTimeRoute) {
166
- return new External(firstTimeRoute, this.appModelInteractionContext);
164
+ return new External(firstTimeRoute, this.interactionContext);
167
165
  }
168
166
  }
169
- Factory.decorators = [
170
- { type: Injectable, args: [{
171
- providedIn: 'root'
172
- },] },
173
- ];
174
- /** @nocollapse */
175
- Factory.ctorParameters = () => [
176
- { type: InteractionContext }
177
- ];
178
167
  NavigationSession.Factory = Factory;
179
168
  if (false) {
180
169
  /** @type {?} */
181
- Factory.prototype.appModelInteractionContext;
170
+ Factory.prototype.interactionContext;
182
171
  }
183
172
  class ComponentDeactivationHandler {
184
173
  /**
@@ -287,4 +276,4 @@ if (false) {
287
276
  ComponentDeactivationHandler.prototype.primary;
288
277
  }
289
278
  })(NavigationSession || (NavigationSession = {}));
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFNeEUsTUFBTSxPQUFnQixpQkFBaUI7Ozs7OztJQVdyQyxZQUErQixlQUF3QixFQUFtQiwwQkFBOEM7UUFBekYsb0JBQWUsR0FBZixlQUFlLENBQVM7UUFBbUIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFvQjtRQVRoSCxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRXhDLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztRQUs1QyxrQ0FBNkIsR0FBRyxJQUFJLEdBQUcsRUFBa0UsQ0FBQztRQUdoSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RFLENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLEtBQVk7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxRQUF5QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7OztJQUVLLGFBQWEsQ0FBQyxTQUF5QixFQUFFLFNBQWdDOzs7O2dCQUV6RSxPQUFPLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDL0QsSUFBSSxDQUFDLE9BQU8sRUFBRTs7c0JBQ04sZ0JBQWdCLEdBQUcsSUFB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WUFDZCxDQUFDO1NBQUE7Ozs7O1FBRUQsNEJBQTRCLENBQUMsa0JBQXNDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixLQUFLLGtCQUFrQixDQUFDO1FBQ2hFLENBQUM7Ozs7OztRQUVlLHVCQUF1QixDQUFDLGtCQUFzQzs7O3NCQUN0RSxRQUFRLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDOUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUM7U0FBQTs7Ozs7O1FBR1MscUJBQXFCLENBQUMsU0FBZ0M7WUFDOUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRSxDQUFDO0tBQ0Y7SUFqRVksOENBQTRCLCtCQWlFeEMsQ0FBQTs7Ozs7O1FBL0RDLHVEQUFnQzs7UUFFcEIsaURBQWtDOztRQUFFLGtFQUF1RDs7UUFBRSwrQ0FBd0I7O0FBK0RySSxDQUFDLEVBdkdnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBdUdqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpc3Bvc2FibGUgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHQgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi9wbGFjZS1yb3V0ZXInO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuL3Zpc2l0JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIHtcblxuICBwcml2YXRlIF9hbHJlYWR5QWNjZXB0ZWQ6IFBsYWNlQ29tcG9uZW50W10gPSBbXTtcblxuICBwcml2YXRlIF92aXNpdHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXQ+KCk7XG4gIHByaXZhdGUgX3BvcFN0YXRlUmV0dXJuVXJsOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNFeHRlcm5hbDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGlhbG9nT3Blbk9uU3RhcnQ6IGJvb2xlYW47XG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBOYXZpZ2F0aW9uU2Vzc2lvbi5Db21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyPigpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJzdE5hdmlnYXRpb246IGJvb2xlYW4sIHByaXZhdGUgcmVhZG9ubHkgYXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIHRoaXMuZGlhbG9nT3Blbk9uU3RhcnQgPSB0aGlzLmFwcE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCk7XG4gIH1cblxuICBzdG9yZVZpc2l0KHZpc2l0OiBWaXNpdCkge1xuICAgIHRoaXMuX3Zpc2l0cy5zZXQodmlzaXQucGxhY2VEZWZpbml0aW9uLCB2aXNpdCk7XG4gIH1cblxuICBnZXRWaXNpdEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2l0cy5nZXQocGxhY2VEZWYpO1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBuZXh0U3RhdGU6IFBsYWNlUm91dGVyLlVybEhlbHBlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgIGxldCBoYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5nZXQoY29tcG9uZW50KTtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbGUgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgaGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uU2Vzc2lvbi5Db21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyKGNvbXBvbmVudCwgdGhpcy5hcHBNb2RhbEludGVyYWN0aW9uQ29udGV4dCwgaXNQcmltYXJ5SGFuZGxlcik7XG4gICAgICB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIGhhbmRsZXIpO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci5jYW5EZWFjdGl2YXRlKG5leHRTdGF0ZSk7XG4gIH1cblxuICBzZXRQb3BzdGF0ZVJldHVyblVybCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsID0gdXJsO1xuICB9XG5cbiAgZ2V0IGlzUG9wU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fcG9wU3RhdGVSZXR1cm5Vcmw7XG4gIH1cblxuICBnZXQgcG9wU3RhdGVSZXR1cm5VcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsO1xuICB9XG5cbiAgZ2V0VmlzaXRzKCk6IFZpc2l0W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0cy52YWx1ZXMoKSk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG5cbiAgY2xhc3MgRXh0ZXJuYWwgZXh0ZW5kcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgcmVhZG9ubHkgaXNFeHRlcm5hbCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpc0ZpcnN0VGltZTogYm9vbGVhbiwgYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgc3VwZXIoaXNGaXJzdFRpbWUsIGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBjbGFzcyBJbnRlcm5hbCBleHRlbmRzIE5hdmlnYXRpb25TZXNzaW9uIHtcbiAgICByZWFkb25seSBpc0V4dGVybmFsID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcih2aXNpdDogVmlzaXQsIGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHN1cGVyKGZhbHNlLCBhcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgICB0aGlzLnN0b3JlVmlzaXQodmlzaXQpO1xuICAgIH1cbiAgfVxuXG5cbiAgQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xuICB9KVxuICBleHBvcnQgY2xhc3MgRmFjdG9yeSB7XG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIH1cblxuICAgIGNyZWF0ZUludGVybmFsKHZpc2l0OiBWaXNpdCk6IE5hdmlnYXRpb25TZXNzaW9uIHtcbiAgICAgIHJldHVybiBuZXcgSW50ZXJuYWwodmlzaXQsIHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgIH1cblxuICAgIGNyZWF0ZUV4dGVybmFsKGZpcnN0VGltZVJvdXRlOiBib29sZWFuKTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgICAgcmV0dXJuIG5ldyBFeHRlcm5hbChmaXJzdFRpbWVSb3V0ZSwgdGhpcy5hcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIENvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIge1xuXG4gICAgcHJpdmF0ZSBhbHJlYWR5QWNjZXB0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIHJlYWRvbmx5IHByaW1hcnk6Ym9vbGVhbikge1xuICAgICAgLy8gc3VwZXIoKTtcbiAgICB9XG5cbiAgICBhc3luYyBjYW5EZWFjdGl2YXRlKG5leHRTdGF0ZTogUGxhY2VSb3V0ZXIuVXJsSGVscGVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICBjb25zb2xlLmxvZyhgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LmNhbkRlYWN0aXZhdGVgLCB7Y29tcG9uZW50OnRoaXMuY29tcG9uZW50fSk7XG4gICAgICBpZiAodGhpcy5hbHJlYWR5QWNjZXB0ZWQpIHtcbiAgICAgICAgLy8gV2UnbGwgZ2V0IGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB0aGVyZSdzIGFueSBwYXJhbWV0ZXIgc2FuaXRpc2F0aW9uIHNvXG4gICAgICAgIC8vIHdlIGFsd2F5cyByZXR1cm4gdHJ1ZSBpZiB3ZSBhY2NlcHRlZCBvbiBhIHByZXZpb3VzIGN5Y2xlIG9mIHRoZSBjdXJyZW50XG4gICAgICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbi5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIGlmICh0aGlzLnByaW1hcnkgJiYgdGhpcy5hcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgLy8gV2UgY2hlY2sgdGhlIGdsb2JhbCBpbnRlcmFjdGlvbiBmaXJzdFxuICAgICAgICAgIGF3YWl0IHRoaXMuY2FuY2VsQ3VycmVudEFjdGl2aXR5T2YodGhpcy5hcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbHJlYWR5QWNjZXB0ZWQgPSBhd2FpdCB0aGlzLmNhbkRlYWN0aXZhdGVDb21wb25lbnQobmV4dFN0YXRlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hbHJlYWR5QWNjZXB0ZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNhbkRlYWN0aXZhdGVDb21wb25lbnQobmV4dFN0YXRlOiBQbGFjZVJvdXRlci5VcmxIZWxwZXIpIHtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGNvbXBvbmVudCBoYXMgYW4gYWN0aXZlIGludGVyYWN0aW9uLiAgVGhpcyB3aWxsIGhhbmRsZVxuICAgICAgLy8gYW4gaW5wbGFjZSBpbnRlcmFjdGlvbiBjb250ZXh0c1xuICAgICAgY29uc3QgaGFzQ3VzdG9tSW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0ICYmXG4gICAgICAgICF0aGlzLmlzQXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQodGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0KSAmJlxuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKTtcblxuICAgICAgaWYgKGhhc0N1c3RvbUludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgIHRoaXMuY2FuY2VsQ3VycmVudEFjdGl2aXR5T2YodGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0xlYXZpbmdDdXJyZW50UGxhY2UobmV4dFN0YXRlKSAmJiB0aGlzLmNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKSB7XG4gICAgICAgIC8vIE5vIGludGVyYWN0aW9uIGluIHByb2dyZXNzLCBzbyBhc2sgdGhlIGNvbXBvbmVudCAuXG4gICAgICAgIC8vIFRoaXMgbWF5IHN0YXJ0IGFuIGludGVyYWN0aW9uLCBoZW5jZSBjaGVja2luZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBiZWZvcmUgbm93LiBJLmUuIGlmIHRoZSBwbGFjZSBwb3BzIHVwIHRoZSBkaWFsb2csIGFuZFxuICAgICAgICAvLyB0aGUgdXNlciBjbGlja3MgYmFjayBhZ2Fpbiwgd2UnbGwgcmUtZW50ZXIgaGVyZSBhbmQgZ28gYmFuZyB3aGVuIHRoZSBjb21wb25lbnQgdHJpZXMgdG8gb3BlbiBhbm90aGVyIGRpYWxvZy5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlzQXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0ID09PSBpbnRlcmFjdGlvbkNvbnRleHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNhbmNlbEN1cnJlbnRBY3Rpdml0eU9mKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICBjb25zdCBhY3Rpdml0eSA9IGF3YWl0IGludGVyYWN0aW9uQ29udGV4dC5nZXRDdXJyZW50QWN0aXZpdHkoKTtcbiAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsaW5nJywgeyBhY3Rpdml0eSB9KTtcbiAgICAgIGFjdGl2aXR5LmNhbmNlbChudWxsKTtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBpc0xlYXZpbmdDdXJyZW50UGxhY2UobmV4dFN0YXRlOiBQbGFjZVJvdXRlci5VcmxIZWxwZXIpIHtcbiAgICAgIHJldHVybiAhbmV4dFN0YXRlLmluY2x1ZGVzUGF0aE9mKHRoaXMuY29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbik7XG4gICAgfVxuICB9XG5cbn1cblxuIl19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQU9BLE1BQU0sT0FBZ0IsaUJBQWlCOzs7Ozs7SUFXckMsWUFBK0IsZUFBd0IsRUFBbUIsMEJBQThDO1FBQXpGLG9CQUFlLEdBQWYsZUFBZSxDQUFTO1FBQW1CLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBb0I7UUFUaEgscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUV4QyxZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFLNUMsa0NBQTZCLEdBQUcsSUFBSSxHQUFHLEVBQWtFLENBQUM7UUFHaEgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0RSxDQUFDOzs7OztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsUUFBeUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7Ozs7SUFFSyxhQUFhLENBQUMsU0FBeUIsRUFBRSxTQUFnQzs7OztnQkFFekUsT0FBTyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQy9ELElBQUksQ0FBQyxPQUFPLEVBQUU7O3NCQUNOLGdCQUFnQixHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEtBQUssQ0FBQztnQkFDdEUsT0FBTyxHQUFHLElBQUksaUJBQWlCLENBQUMsNEJBQTRCLENBQUMsU0FBUyxF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RyxNQUFNLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFO2dCQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsQ0FBQztTQUFBOzs7Ozs7UUFHUyxxQkFBcUIsQ0FBQyxTQUFnQztZQUM5RCxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7S0FDRjtJQWpFWSw4Q0FBNEIsK0JBaUV4QyxDQUFBOzs7Ozs7UUEvREMsdURBQWdDOztRQUVwQixpREFBa0M7O1FBQUUsa0VBQXVEOztRQUFFLCtDQUF5Qjs7QUErRHRJLENBQUMsRUFuR2dCLGlCQUFpQixLQUFqQixpQkFBaUIsUUFtR2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQbGFjZVJvdXRlciB9IGZyb20gJy4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi92aXNpdCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG5cbiAgcHJpdmF0ZSBfYWxyZWFkeUFjY2VwdGVkOiBQbGFjZUNvbXBvbmVudFtdID0gW107XG5cbiAgcHJpdmF0ZSBfdmlzaXRzID0gbmV3IE1hcDxQbGFjZURlZmluaXRpb24sIFZpc2l0PigpO1xuICBwcml2YXRlIF9wb3BTdGF0ZVJldHVyblVybDogc3RyaW5nO1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzRXh0ZXJuYWw6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRpYWxvZ09wZW5PblN0YXJ0OiBib29sZWFuO1xuICBwcml2YXRlIGNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzID0gbmV3IE1hcDxQbGFjZUNvbXBvbmVudCwgTmF2aWdhdGlvblNlc3Npb24uQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcj4oKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyc3ROYXZpZ2F0aW9uOiBib29sZWFuLCBwcml2YXRlIHJlYWRvbmx5IGFwcE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICB0aGlzLmRpYWxvZ09wZW5PblN0YXJ0ID0gdGhpcy5hcHBNb2RhbEludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpO1xuICB9XG5cbiAgc3RvcmVWaXNpdCh2aXNpdDogVmlzaXQpIHtcbiAgICB0aGlzLl92aXNpdHMuc2V0KHZpc2l0LnBsYWNlRGVmaW5pdGlvbiwgdmlzaXQpO1xuICB9XG5cbiAgZ2V0VmlzaXRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLl92aXNpdHMuZ2V0KHBsYWNlRGVmKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgbmV4dFN0YXRlOiBQbGFjZVJvdXRlci5VcmxIZWxwZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBsb29rdXAgdGhlIGhhbmRsZXIgYW5kIGNyZWF0ZSBpdCBpZiB3ZSd2ZSBub3Qgc2VlbiBpdCB5ZXRcbiAgICBsZXQgaGFuZGxlciA9IHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuZ2V0KGNvbXBvbmVudCk7XG4gICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICBjb25zdCBpc1ByaW1hcnlIYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5zaXplID09PSAwOyAvLyBvbmx5IHByaW1hcnkgaGFuZGxlciBjYW5jZWxlIHRoZSBhcHAgbW9kZWwgaW50ZXJhdGlvbnNcbiAgICAgIGhhbmRsZXIgPSBuZXcgTmF2aWdhdGlvblNlc3Npb24uQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcihjb21wb25lbnQsIHRoaXMuYXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQsIGlzUHJpbWFyeUhhbmRsZXIpO1xuICAgICAgdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5zZXQoY29tcG9uZW50LCBoYW5kbGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIGhhbmRsZXIuY2FuRGVhY3RpdmF0ZShuZXh0U3RhdGUpO1xuICB9XG5cbiAgc2V0UG9wc3RhdGVSZXR1cm5VcmwodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wb3BTdGF0ZVJldHVyblVybCA9IHVybDtcbiAgfVxuXG4gIGdldCBpc1BvcFN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsO1xuICB9XG5cbiAgZ2V0IHBvcFN0YXRlUmV0dXJuVXJsKCkge1xuICAgIHJldHVybiB0aGlzLl9wb3BTdGF0ZVJldHVyblVybDtcbiAgfVxuXG4gIGdldFZpc2l0cygpOiBWaXNpdFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl92aXNpdHMudmFsdWVzKCkpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgTmF2aWdhdGlvblNlc3Npb24ge1xuXG4gIGNsYXNzIEV4dGVybmFsIGV4dGVuZHMgTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJlYWRvbmx5IGlzRXh0ZXJuYWwgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaXNGaXJzdFRpbWU6IGJvb2xlYW4sIGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHN1cGVyKGlzRmlyc3RUaW1lLCBhcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgY2xhc3MgSW50ZXJuYWwgZXh0ZW5kcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgcmVhZG9ubHkgaXNFeHRlcm5hbCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IodmlzaXQ6IFZpc2l0LCBhcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICBzdXBlcihmYWxzZSwgYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgdGhpcy5zdG9yZVZpc2l0KHZpc2l0KTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRmFjdG9yeSB7XG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICB9XG5cbiAgICBjcmVhdGVJbnRlcm5hbCh2aXNpdDogVmlzaXQpOiBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgICByZXR1cm4gbmV3IEludGVybmFsKHZpc2l0LCB0aGlzLmludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuXG4gICAgY3JlYXRlRXh0ZXJuYWwoZmlyc3RUaW1lUm91dGU6IGJvb2xlYW4pOiBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgICByZXR1cm4gbmV3IEV4dGVybmFsKGZpcnN0VGltZVJvdXRlLCB0aGlzLmludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIENvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIge1xuXG4gICAgcHJpdmF0ZSBhbHJlYWR5QWNjZXB0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIHJlYWRvbmx5IHByaW1hcnk6IGJvb2xlYW4pIHtcbiAgICAgIC8vIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2FuRGVhY3RpdmF0ZShuZXh0U3RhdGU6IFBsYWNlUm91dGVyLlVybEhlbHBlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgY29uc29sZS5sb2coYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfS5jYW5EZWFjdGl2YXRlYCwgeyBjb21wb25lbnQ6IHRoaXMuY29tcG9uZW50IH0pO1xuICAgICAgaWYgKHRoaXMuYWxyZWFkeUFjY2VwdGVkKSB7XG4gICAgICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuICAgICAgICAvLyB3ZSBhbHdheXMgcmV0dXJuIHRydWUgaWYgd2UgYWNjZXB0ZWQgb24gYSBwcmV2aW91cyBjeWNsZSBvZiB0aGUgY3VycmVudFxuICAgICAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcblxuICAgICAgICBpZiAodGhpcy5wcmltYXJ5ICYmIHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKSkge1xuICAgICAgICAgIC8vIFdlIGNoZWNrIHRoZSBnbG9iYWwgaW50ZXJhY3Rpb24gZmlyc3RcbiAgICAgICAgICBhd2FpdCB0aGlzLmNhbmNlbEN1cnJlbnRBY3Rpdml0eU9mKHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWxyZWFkeUFjY2VwdGVkID0gYXdhaXQgdGhpcy5jYW5EZWFjdGl2YXRlQ29tcG9uZW50KG5leHRTdGF0ZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWxyZWFkeUFjY2VwdGVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBjYW5EZWFjdGl2YXRlQ29tcG9uZW50KG5leHRTdGF0ZTogUGxhY2VSb3V0ZXIuVXJsSGVscGVyKSB7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGFjdGl2ZSBpbnRlcmFjdGlvbi4gIFRoaXMgd2lsbCBoYW5kbGVcbiAgICAgIC8vIGFuIGlucGxhY2UgaW50ZXJhY3Rpb24gY29udGV4dHNcbiAgICAgIGNvbnN0IGhhc0N1c3RvbUludGVyYWN0aW9uQ29udGV4dCA9IHRoaXMuY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dCAmJlxuICAgICAgICAhdGhpcy5pc0FwcE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0KHRoaXMuY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dCkgJiZcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCk7XG5cbiAgICAgIGlmIChoYXNDdXN0b21JbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jYW5jZWxDdXJyZW50QWN0aXZpdHlPZih0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzTGVhdmluZ0N1cnJlbnRQbGFjZShuZXh0U3RhdGUpICYmIHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUpIHtcbiAgICAgICAgLy8gTm8gaW50ZXJhY3Rpb24gaW4gcHJvZ3Jlc3MsIHNvIGFzayB0aGUgY29tcG9uZW50IC5cbiAgICAgICAgLy8gVGhpcyBtYXkgc3RhcnQgYW4gaW50ZXJhY3Rpb24sIGhlbmNlIGNoZWNraW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGJlZm9yZSBub3cuIEkuZS4gaWYgdGhlIHBsYWNlIHBvcHMgdXAgdGhlIGRpYWxvZywgYW5kXG4gICAgICAgIC8vIHRoZSB1c2VyIGNsaWNrcyBiYWNrIGFnYWluLCB3ZSdsbCByZS1lbnRlciBoZXJlIGFuZCBnbyBiYW5nIHdoZW4gdGhlIGNvbXBvbmVudCB0cmllcyB0byBvcGVuIGFub3RoZXIgZGlhbG9nLlxuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaXNBcHBNb2RhbEludGVyYWN0aW9uQ29udGV4dChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQgPT09IGludGVyYWN0aW9uQ29udGV4dDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgY2FuY2VsQ3VycmVudEFjdGl2aXR5T2YoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGFjdGl2aXR5ID0gYXdhaXQgaW50ZXJhY3Rpb25Db250ZXh0LmdldEN1cnJlbnRBY3Rpdml0eSgpO1xuICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxpbmcnLCB7IGFjdGl2aXR5IH0pO1xuICAgICAgYWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGlzTGVhdmluZ0N1cnJlbnRQbGFjZShuZXh0U3RhdGU6IFBsYWNlUm91dGVyLlVybEhlbHBlcikge1xuICAgICAgcmV0dXJuICFuZXh0U3RhdGUuaW5jbHVkZXNQYXRoT2YodGhpcy5jb21wb25lbnQucGxhY2VEZWZpbml0aW9uKTtcbiAgICB9XG4gIH1cblxufVxuXG4iXX0=
@@ -8,27 +8,28 @@ import { Injectable } from '@angular/core';
8
8
  import { NavigationEnd, NavigationError, NavigationStart, Router, UrlSegment, UrlSerializer } from '@angular/router';
9
9
  import { Dsl, GarbageCollector, MutableListModel, MutableValueModel, Trace } from '@coolon/pectin';
10
10
  import _ from 'lodash';
11
+ import { InteractionContext } from '../interaction/interaction-context';
11
12
  import { NavigationSession } from './navigation-session';
12
13
  import { PlaceHistory } from './place-history';
13
14
  import { Visit } from './visit';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "@angular/router";
16
- import * as i2 from "./navigation-session";
17
+ import * as i2 from "../interaction/interaction-context";
17
18
  import * as i3 from "@angular/common";
18
19
  import * as i4 from "./place-history";
19
20
  export class PlaceRouter extends GarbageCollector {
20
21
  /**
21
22
  * @param {?} router
22
23
  * @param {?} urlSerializer
23
- * @param {?} navigationSessionFactory
24
+ * @param {?} interactionContext
24
25
  * @param {?} angularLocation
25
26
  * @param {?} placeHistory
26
27
  */
27
- constructor(router, urlSerializer, navigationSessionFactory, angularLocation, placeHistory) {
28
+ constructor(router, urlSerializer, interactionContext, angularLocation, placeHistory) {
28
29
  super();
29
30
  this.router = router;
30
31
  this.urlSerializer = urlSerializer;
31
- this.navigationSessionFactory = navigationSessionFactory;
32
+ this.interactionContext = interactionContext;
32
33
  this.angularLocation = angularLocation;
33
34
  this.placeHistory = placeHistory;
34
35
  this.firstRoute = true;
@@ -36,6 +37,7 @@ export class PlaceRouter extends GarbageCollector {
36
37
  this._activeVisits = new MutableListModel();
37
38
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
38
39
  this.activeVisitIndex = chain(this._activeVisits).indexBy('placeDefinition');
40
+ this.navigationSessionFactory = new NavigationSession.Factory(interactionContext);
39
41
  angularLocation.onUrlChange((/**
40
42
  * @param {?} url
41
43
  * @return {?}
@@ -263,11 +265,11 @@ PlaceRouter.decorators = [
263
265
  PlaceRouter.ctorParameters = () => [
264
266
  { type: Router },
265
267
  { type: UrlSerializer },
266
- { type: NavigationSession.Factory },
268
+ { type: InteractionContext },
267
269
  { type: Location },
268
270
  { type: PlaceHistory }
269
271
  ];
270
- /** @nocollapse */ PlaceRouter.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i1.UrlSerializer), i0.ɵɵinject(i2.NavigationSession.Factory), i0.ɵɵinject(i3.Location), i0.ɵɵinject(i4.PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
272
+ /** @nocollapse */ PlaceRouter.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i1.UrlSerializer), i0.ɵɵinject(i2.InteractionContext), i0.ɵɵinject(i3.Location), i0.ɵɵinject(i4.PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
271
273
  tslib_1.__decorate([
272
274
  Trace(),
273
275
  tslib_1.__metadata("design:type", Function),
@@ -294,6 +296,11 @@ if (false) {
294
296
  PlaceRouter.prototype.navigationSessionActive;
295
297
  /** @type {?} */
296
298
  PlaceRouter.prototype.activeVisitIndex;
299
+ /**
300
+ * @type {?}
301
+ * @private
302
+ */
303
+ PlaceRouter.prototype.navigationSessionFactory;
297
304
  /**
298
305
  * @type {?}
299
306
  * @private
@@ -308,7 +315,7 @@ if (false) {
308
315
  * @type {?}
309
316
  * @private
310
317
  */
311
- PlaceRouter.prototype.navigationSessionFactory;
318
+ PlaceRouter.prototype.interactionContext;
312
319
  /** @type {?} */
313
320
  PlaceRouter.prototype.angularLocation;
314
321
  /** @type {?} */
@@ -416,4 +423,4 @@ if (false) {
416
423
  UrlHelper.prototype.urlTree;
417
424
  }
418
425
  })(PlaceRouter || (PlaceRouter = {}));
419
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFHTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixNQUFNLEVBRU4sVUFBVSxFQUNWLGFBQWEsRUFFZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFFTCxHQUFHLEVBQ0gsZ0JBQWdCLEVBR2hCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsS0FBSyxFQUVOLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7QUFNaEMsTUFBTSxPQUFPLFdBQVksU0FBUSxnQkFBZ0I7Ozs7Ozs7O0lBVS9DLFlBQTZCLE1BQWMsRUFDZCxhQUE0QixFQUM1Qix3QkFBbUQsRUFDM0QsZUFBeUIsRUFDekIsWUFBMEI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFMbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMkI7UUFDM0Qsb0JBQWUsR0FBZixlQUFlLENBQVU7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFadkMsZUFBVSxHQUFHLElBQUksQ0FBQztRQUVULDRCQUF1QixHQUFHLElBQUks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bmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgTmF2aWdhdGlvbkVycm9yLFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgVXJsU2VnbWVudCxcbiAgVXJsU2VyaWFsaXplcixcbiAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBIYXNPbmVJbmRleENoYWluLFxuICBMaXN0TW9kZWwsXG4gIE11dGFibGVMaXN0TW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBUcmFjZSxcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlc3Npb24gfSBmcm9tICcuL25hdmlnYXRpb24tc2Vzc2lvbic7XG5pbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuL3BsYWNlLWRlZmluaXRpb24nO1xuaW1wb3J0IHsgUGxhY2VIaXN0b3J5IH0gZnJvbSAnLi9wbGFjZS1oaXN0b3J5JztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi92aXNpdCc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VSb3V0ZXIgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwcml2YXRlIGZpcnN0Um91dGUgPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25TZXNzaW9uTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8TmF2aWdhdGlvblNlc3Npb24+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZVZpc2l0cyA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFZpc2l0PigpO1xuXG4gIHJlYWRvbmx5IG5hdmlnYXRpb25TZXNzaW9uQWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSBhY3RpdmVWaXNpdEluZGV4OiBIYXNPbmVJbmRleENoYWluPCdwbGFjZURlZmluaXRpb24nLCBWaXNpdD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRpb25TZXNzaW9uRmFjdG9yeTogTmF2aWdhdGlvblNlc3Npb24uRmFjdG9yeSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYW5ndWxhckxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnkpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5hY3RpdmVWaXNpdEluZGV4ID0gY2hhaW4odGhpcy5fYWN0aXZlVmlzaXRzKS5pbmRleEJ5KCdwbGFjZURlZmluaXRpb24nKTtcblxuICAgIGFuZ3VsYXJMb2NhdGlvbi5vblVybENoYW5nZSh1cmwgPT4ge1xuICAgICAgY29uc29sZS5sb2coYGxvY2F0aW9uLm9uVXJsQ2hhbmdlIC0+ICR7dXJsfWApO1xuICAgIH0pO1xuXG4gICAgLy8gVE9ETzogbWFrZSBzZXR1cCB0aGUgY2FsbGJhY2tzIGluIGR1cmluZyBtb2R1bGUgaW5pdGlhdGlvbiB0byBtYWtlIHRoaXMgdGVzdGFibGUuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAvLyBSb3V0aW5nIGV2ZW50IHNlcXVlbmNlXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAvLyBOYXZpZ2F0aW9uU3RhcnQgLT4gLi4uLiAtPiBOYXZpZ2F0aW9uQ2FuY2VsIC0tPiByZWRpcmVjdCwgZ28gYXJvdW5kIGFnYWluIGluIHRoZSBzYW1lIHNlc3Npb25cbiAgICAgIC8vIE5hdmlnYXRpb25TdGFydCAtPiAuLi4uIC0+IE5hdmlnYXRpb25FbmQgLS0+IG5hdmlnYXRpb24gY29tcGxldGUsIGVuZCBzZXNzaW9uLlxuICAgICAgLy8gTmF2aWdhdGlvblN0YXJ0IC0+IC4uLi4gLT4gTmF2aWdhdGlvbkVycm9yIC0tPiBuYXZpZ2F0aW9uIGNhbmNlbGVkLCBlbmQgc2Vzc2lvbi5cbiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgdGhpcy5vbkFuZ3VsYXJSb3V0ZXJTdGFydGVkKGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgdGhpcy5vbkFuZ3VsYXJSb3V0ZXJGaW5pc2hlZChmYWxzZSk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgdGhpcy5vbkFuZ3VsYXJSb3V0ZXJGaW5pc2hlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubmF2aWdhdGlvblNlc3Npb25BY3RpdmUgPSBjaGFpbih0aGlzLm5hdmlnYXRpb25TZXNzaW9uTW9kZWwpLmlzTm90TmlsKCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZS5zdWJzY3JpYmUoYWN0aXZlID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCduYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZScsIGFjdGl2ZSk7XG4gICAgfSk7XG4gICAgLy8gY29uc3QgdHhvID0gbmV3IFRyYW5zYWN0aW9uT2JzZXJ2ZXIoKS5vbkV2ZW50KGUgPT4gY29uc29sZS5sb2coZS50b1N0cmluZygpKSk7XG4gICAgLy8gdHhvLm9ic2VydmUoJ3RoaXMubmF2aWdhdGlvblNlc3Npb25Nb2RlbCcsIHRoaXMubmF2aWdhdGlvblNlc3Npb25Nb2RlbCk7XG4gIH1cblxuICBnZXQgbmF2aWdhdGlvblNlc3Npb24oKTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlO1xuICB9XG5cbiAgZ2V0IG5hdmlnYXRpb25TZXNzaW9uTW9kZWwoKTogVmFsdWVNb2RlbDxOYXZpZ2F0aW9uU2Vzc2lvbj4ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnJlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVZpc2l0cygpOiBMaXN0TW9kZWw8VmlzaXQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmlzaXRzLnJlYWRvbmx5O1xuICB9XG5cbiAgLyoqXG4gICAqICBwbGFjZVJvdXRlci5uYXZpZ2F0ZShwbGFjZURlc3RpbmF0aW9ucy5zb21lUGxhY2UuY3JlYXRlVmlzaXQocm91dGVJZCwgLi4udmlzaXRQYXJhbXMpKTtcbiAgICogQHBhcmFtIHZpc2l0XG4gICAqL1xuICBAVHJhY2UoKVxuICBhc3luYyBuYXZpZ2F0ZSh2aXNpdDogVmlzaXQsIG9wdGlvbnM/OiB7IHJlbGF0aXZlVG86IEFjdGl2YXRlZFJvdXRlIH0pIHtcbiAgICB0aGlzLmRvTmF2aWdhdGlvbih2aXNpdCwgYXN5bmMgcm91dGVyID0+IHtcbiAgICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgICB2aXNpdC5wbGFjZURlZmluaXRpb24ucGF0aCxcbiAgICAgICAgLi4udGhpcy5jcmVhdGVSb3V0ZVBhcmFtZXRlcnModmlzaXQpXG4gICAgICBdO1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIHtcbiAgICAgICAgcmVsYXRpdmVUbzogb3B0aW9ucyA/IG9wdGlvbnMucmVsYXRpdmVUbyA6IG51bGxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgcHVzaFZpc2l0Q2hhbmdlc1RvUm91dGUoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcmV2aW91czogVmlzaXQsIG5leHQ6IFZpc2l0KSB7XG5cbiAgICAvLyB3ZSBoYXZlIHRvIHB1c2ggdG8gaGlzdG9yeSBzbyBvdXIgcmVtZW1iZXIgc2FuaXRpc2VycyBkb24ndCBwaWNrIHVwIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgIC8vIHdoZW4gaXQncyBiZWVuIGNsZWFyZWQgYnkgdGhlIHVzZXIuXG4gICAgdGhpcy5wbGFjZUhpc3RvcnkuYWRkKG5leHQpO1xuXG4gICAgLy8gRklYTUU6IG5vIHJvdXRlIGlkIC0+IHJvdXRlIGlkIGR1cGxpY2F0ZXMgcm91dGUgcGFyYW1ldGVyc1xuICAgIGlmIChuZXh0Lmhhc1JvdXRpbmdDaGFuZ2VkRnJvbShwcmV2aW91cykpIHtcbiAgICAgIHJldHVybiB0aGlzLmRvTmF2aWdhdGlvbihuZXh0LCByb3V0ZXIgPT4ge1xuICAgICAgICBjb25zdCBjb21tYW5kcyA9IHRoaXMucGFyc2VVcmwodGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QpLmNyZWF0ZVJlZGlyZWN0Q29tbWFuZHNGb3IobmV4dCk7XG4gICAgICAgIC8vIC8vIHdlIGhhdmUgdG8gdG8gdXNlIHRoZSBkZWZpbml0aW9uIGZvciByb3V0ZSBpZCBhcyBvdXIgcmVkaXJlY3Rpb24gYWx3YXlzIGluY2x1ZGVzXG4gICAgICAgIC8vIC8vIHRoZSBpZCBpbiB0aGUgdXJsIHNlZ2VtZW50cyAoYnV0IGxlYXZlcyBpdCBibGFuayB3aGVuIHRoZXJlJ3Mgbm8gaWQpLiBJLmUuIGluIHRoZVxuICAgICAgICAvLyAvLyBubyBpZCBjYXNlIHdlJ3JlIGRvaW5nIHRoZSBmb2xsb3dpbmcgcmVkaXJlY3QgWzxwbGFjZVBhdGg+LCBcIlwiXSAtPiBbXCIuLlwiLCA8aWQ+XVxuICAgICAgICAvLyBjb25zdCByZWxhdGl2ZVBhdGggPSAhIXByZXZpb3VzLnBsYWNlRGVmaW5pdGlvbi5oYXNSb3V0ZUlkKCkgPyAnLi4nIDogJy4nO1xuICAgICAgICAvLyBjb25zdCBjb21tYW5kcyA9IFtcbiAgICAgICAgLy8gICByZWxhdGl2ZVBhdGgsXG4gICAgICAgIC8vICAgLi4udGhpcy5jcmVhdGVSb3V0ZVBhcmFtZXRlcnMobmV4dCksXG4gICAgICAgIC8vICAgLi4udGhpcy5leHRyYWN0Q2hpbGRQYXRoKGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90KVxuICAgICAgICAvLyBdO1xuICAgICAgICBjb25zb2xlLmxvZygnIyMjIFB1c2ggQ2hhbmdlcyB0byByb3V0ZSBSZWRpcmVjdCcsIHsgY29tbWFuZHMgfSk7XG4gICAgICAgIHJldHVybiByb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG9OYXZpZ2F0aW9uKHZpc2l0OiBWaXNpdCwgY3VzdG9tTmF2aWdhdGlvbjogKHJvdXRlcjogUm91dGVyKSA9PiBhbnkpIHtcbiAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlID0gdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkZhY3RvcnkuY3JlYXRlSW50ZXJuYWwodmlzaXQpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjdXN0b21OYXZpZ2F0aW9uKHRoaXMucm91dGVyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gUm91dGVyIGhhcyBmaW5pc2hlZCAoc2luY2UgdGhlcmUgd2FzIG5vIHJvdXRlciBjaGFuZ2UgcmVxdWlyZWQpIHNvIHdlXG4gICAgICAvLyBuZWVkIHRvIGVuZCB0aGUgbmF2aWdhdGlvbiBzZXNzaW9uLlxuICAgICAgaWYgKHRoaXMubmF2aWdhdGlvblNlc3Npb24gJiYgIXRoaXMucm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCkpIHtcbiAgICAgICAgdGhpcy5vbkFuZ3VsYXJSb3V0ZXJGaW5pc2hlZChmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0KSB7XG4gICAgY29uc3QgZGVmID0gdmlzaXQucGxhY2VEZWZpbml0aW9uO1xuICAgIHJldHVybiB2aXNpdC5oYXNSb3V0ZUlkKCkgP1xuICAgICAgW2RlZi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHZpc2l0KSwgZGVmLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCldIDpcbiAgICAgIFtkZWYuZ2V0Rm9ybWF0dGVkUm91dGVQYXJhbWV0ZXJzKHZpc2l0KV07XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIG9uQW5ndWxhclJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCkge1xuICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbikgeyAvLyBXZSBiZWVuIGFjdGl2YXRlZCBieSBhbiBleHRlcm5hbCByb3V0ZSByYXRoZXIgdGhhbiBwbGFjZVJvdXRlci5nbyh2aXNpdClcbiAgICAgIGNvbnNvbGUubG9nKCduYXZpZ2F0aW9uIHN0YXJ0ZWQnLCB7IGZpcnN0VGltZTogdGhpcy5maXJzdFJvdXRlIH0pO1xuICAgICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMubmF2aWdhdGlvblNlc3Npb25GYWN0b3J5LmNyZWF0ZUV4dGVybmFsKHRoaXMuZmlyc3RSb3V0ZSk7XG4gICAgICBpZiAoZXZlbnQubmF2aWdhdGlvblRyaWdnZXIgPT09ICdwb3BzdGF0ZScpIHtcbiAgICAgICAgc2Vzc2lvbi5zZXRQb3BzdGF0ZVJldHVyblVybCh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuICAgICAgfVxuICAgICAgdGhpcy5fbmF2aWdhdGlvblNlc3Npb25Nb2RlbC52YWx1ZSA9IHNlc3Npb247XG4gICAgfVxuICAgIHRoaXMuZmlyc3RSb3V0ZSA9IGZhbHNlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJpdmF0ZSBvbkFuZ3VsYXJSb3V0ZXJGaW5pc2hlZChjYW5jZWxsZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5fbmF2aWdhdGlvblNlc3Npb25Nb2RlbC52YWx1ZTtcbiAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgLy8gVXBkYXRlIHZpc2l0cyBiZWZvcmUgd2UgZW5kIHRoZSBuYXZpZ2F0aW9uIHNlc3Npb24uICBUaGlzIGFsbG93cyB0aGUgcGxhY2VPdXRldHMgdG9cbiAgICAgIC8vIGlnbm9yZSB2aXNpdCBjaGFuZ2VzIHRoYXQgb2NjdXIgd2hpbGUgdGhlIG5hdmlnYXRpb24gaXMgaW4gcHJvZ3Jlc3NcbiAgICAgIGNvbnN0IHZpc2l0cyA9IHNlc3Npb24uZ2V0VmlzaXRzKCk7XG4gICAgICB2aXNpdHMuZm9yRWFjaCh2ID0+IHRoaXMucGxhY2VIaXN0b3J5LmFkZCh2KSk7XG4gICAgICB0aGlzLl9hY3RpdmVWaXNpdHMudmFsdWUgPSB2aXNpdHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdXJsIHdoZW4gYSBndWFyZCBjYW5jZWxzIHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzU4NiNpc3N1ZWNvbW1lbnQtNDMyNzk1NzIwXG4gICAgICBpZiAoc2Vzc2lvbi5pc1BvcFN0YXRlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsZWQgZHVyaW5nIHBvcHN0YXRlJyk7XG4gICAgICAgIHRoaXMuYW5ndWxhckxvY2F0aW9uLmdvKHNlc3Npb24ucG9wU3RhdGVSZXR1cm5VcmwpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIGV4dHJhY3RDaGlsZFBhdGgoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBhbnlbXSB7XG4gICAgcmV0dXJuIF8uZmxhdHRlbihhY3RpdmF0ZWRSb3V0ZS5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gY2hpbGQudXJsKSk7XG4gIH1cblxuICBwYXJzZVVybChzbmFwc2hvdDogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFBsYWNlUm91dGVyLlVybEhlbHBlciB7XG4gICAgcmV0dXJuIG5ldyBQbGFjZVJvdXRlci5VcmxIZWxwZXIodGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHNuYXBzaG90LnVybCkpO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZVJvdXRlciB7XG5cblxuICBleHBvcnQgY2xhc3MgVXJsSGVscGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdXJsVHJlZTogVXJsVHJlZSkge1xuICAgICAgY29uc29sZS5sb2coeyBzZWdtZW50czogdGhpcy51cmxUcmVlLnJvb3QuY2hpbGRyZW4ucHJpbWFyeS5zZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBjbG9uZVVybFNlZ21lbnRMaXN0KCk6IFVybFNlZ21lbnRbXSB7XG4gICAgICByZXR1cm4gWy4uLnRoaXMudXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHNdO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KTogVXJsU2VnbWVudFtdIHtcbiAgICAgIC8vIFVnbHksIGJ1dCBpdCB3b3JrcyBmb3Igbm93LlxuICAgICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLmNsb25lVXJsU2VnbWVudExpc3QoKTtcbiAgICAgIGNvbnN0IHZpc2l0U2VnbWVudHMgPSB0aGlzLmNvbnZlcnRUb1VybFNlZ21lbnRzKHZpc2l0KTtcbiAgICAgIGNvbnN0IHJlcGxhY2VBdCA9IHNlZ21lbnRzLmZpbmRJbmRleChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCA9PT0gdmlzaXRTZWdtZW50c1swXS5wYXRoKTtcbiAgICAgIC8vIGRvIG5vdCB1c2UgdGhlIHJldHVybiB2YWx1ZSwgaXQncyB0aGUgaXRlbXMgdGhhdCB3ZXJlIHJlbW92ZWQhXG4gICAgICBzZWdtZW50cy5zcGxpY2UocmVwbGFjZUF0LCB2aXNpdFNlZ21lbnRzLmxlbmd0aCwgLi4udmlzaXRTZWdtZW50cyk7XG4gICAgICByZXR1cm4gc2VnbWVudHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIHZpc2l0IGludG8gc2VnbWVudHMuICBQbGVhc2Ugbm90IHRoYXQgdGhlc2Ugc2VnbWVudHMgYXJlIG5vdCBlXG4gICAgICogQHBhcmFtIHZpc2l0XG4gICAgICovXG4gICAgY29udmVydFRvVXJsU2VnbWVudHModmlzaXQ6IFZpc2l0KTogVXJsU2VnbWVudFtdIHtcbiAgICAgIHJldHVybiB2aXNpdC5wbGFjZURlZmluaXRpb24uaGFzUm91dGVJZCgpID9cbiAgICAgICAgW1xuICAgICAgICAgIC8vIE5PVEU6XG4gICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gYXR0YWNoIHRoZSBwYXJhbXMgdG8gdGhlIHJvb3QgcGF0aCBhbmQgbm90IHRoZSBpZC4gIElmIHdlIGF0dGFjaCB0aGVtXG4gICAgICAgICAgLy8gdG8gYW4gZW1wdHkgaWQgdGhlbiB0aGUgYW5ndWxhciByb3V0ZXIgd29uJ3QgbWF0Y2ggdGhlIHBhdHRlcm4uXG4gICAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXQucGxhY2VEZWZpbml0aW9uLnBhdGgsIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQpKSxcbiAgICAgICAgICBuZXcgVXJsU2VnbWVudCh2aXNpdC5wbGFjZURlZmluaXRpb24uZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdCksIHt9KV1cbiAgICAgICAgOlxuICAgICAgICBbXG4gICAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXQucGxhY2VEZWZpbml0aW9uLnBhdGgsIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQpKVxuICAgICAgICBdO1xuICAgIH1cblxuXG4gICAgQFRyYWNlKClcbiAgICBjcmVhdGVSZWRpcmVjdENvbW1hbmRzRm9yKHZpc2l0OiBWaXNpdCk6IGFueVtdIHtcblxuICAgICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLnVwZGF0ZVZpc2l0U2VnbWVudHModmlzaXQpO1xuICAgICAgY29uc3QgY29tbWFuZHMgPSBbXTtcbiAgICAgIHNlZ21lbnRzLmZvckVhY2gocyA9PiB7XG4gICAgICAgIGNvbW1hbmRzLnB1c2gocy5wYXRoKTtcbiAgICAgICAgaWYgKHMucGFyYW1ldGVyTWFwLmtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbW1hbmRzLnB1c2gocy5wYXJhbWV0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gY29tbWFuZHM7XG4gICAgfVxuXG4gICAgaW5jbHVkZXNQYXRoT2YocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuY2xvbmVVcmxTZWdtZW50TGlzdCgpLmZpbmQocyA9PiBzLnBhdGggPT09IHBsYWNlRGVmLnBhdGgpO1xuICAgIH1cblxuICB9XG59XG4iXX0=
426
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFHTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixNQUFNLEVBRU4sVUFBVSxFQUNWLGFBQWEsRUFFZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFFTCxHQUFHLEVBQ0gsZ0JBQWdCLEVBR2hCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsS0FBSyxFQUVOLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7QUFNaEMsTUFBTSxPQUFPLFdBQVksU0FBUSxnQkFBZ0I7Ozs7Ozs7O0lBVy9DLFlBQTZCLE1BQWMsRUFDZCxhQUE0QixFQUNyQyxrQkFBcUMsRUFDcEMsZUFBeUIsRUFDekIsWUFBMEI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFMbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQVU7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFi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UyxZQXlEckIsQ0FBQTs7Ozs7O1FBdkRhLDRCQUF3Qjs7QUF3RHhDLENBQUMsRUE3RGdCLFdBQVcsS0FBWCxXQUFXLFFBNkQzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uRW5kLFxuICBOYXZpZ2F0aW9uRXJyb3IsXG4gIE5hdmlnYXRpb25TdGFydCxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxTZWdtZW50LFxuICBVcmxTZXJpYWxpemVyLFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBEc2wsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsXG4gIEhhc09uZUluZGV4Q2hhaW4sXG4gIExpc3RNb2RlbCxcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFRyYWNlLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHQgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXNzaW9uIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXNlc3Npb24nO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlSGlzdG9yeSB9IGZyb20gJy4vcGxhY2UtaGlzdG9yeSc7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4vdmlzaXQnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlUm91dGVyIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJpdmF0ZSBmaXJzdFJvdXRlID0gdHJ1ZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPE5hdmlnYXRpb25TZXNzaW9uPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVWaXNpdHMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxWaXNpdD4oKTtcblxuICByZWFkb25seSBuYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZTogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcmVhZG9ubHkgYWN0aXZlVmlzaXRJbmRleDogSGFzT25lSW5kZXhDaGFpbjwncGxhY2VEZWZpbml0aW9uJywgVmlzaXQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRpb25TZXNzaW9uRmFjdG9yeTogTmF2aWdhdGlvblNlc3Npb24uRmFjdG9yeTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgaW50ZXJhY3Rpb25Db250ZXh0OkludGVyYWN0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYW5ndWxhckxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnkpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5hY3RpdmVWaXNpdEluZGV4ID0gY2hhaW4odGhpcy5fYWN0aXZlVmlzaXRzKS5pbmRleEJ5KCdwbGFjZURlZmluaXRpb24nKTtcbiAgICB0aGlzLm5hdmlnYXRpb25TZXNzaW9uRmFjdG9yeSA9IG5ldyBOYXZpZ2F0aW9uU2Vzc2lvbi5GYWN0b3J5KGludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgYW5ndWxhckxvY2F0aW9uLm9uVXJsQ2hhbmdlKHVybCA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgbG9jYXRpb24ub25VcmxDaGFuZ2UgLT4gJHt1cmx9YCk7XG4gICAgfSk7XG5cbiAgICAvLyBUT0RPOiBtYWtlIHNldHVwIHRoZSBjYWxsYmFja3MgaW4gZHVyaW5nIG1vZHVsZSBpbml0aWF0aW9uIHRvIG1ha2UgdGhpcyB0ZXN0YWJsZS5cbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIC8vIFJvdXRpbmcgZXZlbnQgc2VxdWVuY2VcbiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIC8vIE5hdmlnYXRpb25TdGFydCAtPiAuLi4uIC0+IE5hdmlnYXRpb25DYW5jZWwgLS0+IHJlZGlyZWN0LCBnbyBhcm91bmQgYWdhaW4gaW4gdGhlIHNhbWUgc2Vzc2lvblxuICAgICAgLy8gTmF2aWdhdGlvblN0YXJ0IC0+IC4uLi4gLT4gTmF2aWdhdGlvbkVuZCAtLT4gbmF2aWdhdGlvbiBjb21wbGV0ZSwgZW5kIHNlc3Npb24uXG4gICAgICAvLyBOYXZpZ2F0aW9uU3RhcnQgLT4gLi4uLiAtPiBOYXZpZ2F0aW9uRXJyb3IgLS0+IG5hdmlnYXRpb24gY2FuY2VsZWQsIGVuZCBzZXNzaW9uLlxuICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICB0aGlzLm9uQW5ndWxhclJvdXRlclN0YXJ0ZWQoZXZlbnQpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICB0aGlzLm9uQW5ndWxhclJvdXRlckZpbmlzaGVkKGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICB0aGlzLm9uQW5ndWxhclJvdXRlckZpbmlzaGVkKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkFjdGl2ZSA9IGNoYWluKHRoaXMubmF2aWdhdGlvblNlc3Npb25Nb2RlbCkuaXNOb3ROaWwoKTtcbiAgICB0aGlzLm5hdmlnYXRpb25TZXNzaW9uQWN0aXZlLnN1YnNjcmliZShhY3RpdmUgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ25hdmlnYXRpb25TZXNzaW9uQWN0aXZlJywgYWN0aXZlKTtcbiAgICB9KTtcbiAgICAvLyBjb25zdCB0eG8gPSBuZXcgVHJhbnNhY3Rpb25PYnNlcnZlcigpLm9uRXZlbnQoZSA9PiBjb25zb2xlLmxvZyhlLnRvU3RyaW5nKCkpKTtcbiAgICAvLyB0eG8ub2JzZXJ2ZSgndGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsJywgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsKTtcbiAgfVxuXG4gIGdldCBuYXZpZ2F0aW9uU2Vzc2lvbigpOiBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uTW9kZWwudmFsdWU7XG4gIH1cblxuICBnZXQgbmF2aWdhdGlvblNlc3Npb25Nb2RlbCgpOiBWYWx1ZU1vZGVsPE5hdmlnYXRpb25TZXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uTW9kZWwucmVhZG9ubHk7XG4gIH1cblxuICBnZXQgYWN0aXZlVmlzaXRzKCk6IExpc3RNb2RlbDxWaXNpdD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVWaXNpdHMucmVhZG9ubHk7XG4gIH1cblxuICAvKipcbiAgICogIHBsYWNlUm91dGVyLm5hdmlnYXRlKHBsYWNlRGVzdGluYXRpb25zLnNvbWVQbGFjZS5jcmVhdGVWaXNpdChyb3V0ZUlkLCAuLi52aXNpdFBhcmFtcykpO1xuICAgKiBAcGFyYW0gdmlzaXRcbiAgICovXG4gIEBUcmFjZSgpXG4gIGFzeW5jIG5hdmlnYXRlKHZpc2l0OiBWaXNpdCwgb3B0aW9ucz86IHsgcmVsYXRpdmVUbzogQWN0aXZhdGVkUm91dGUgfSkge1xuICAgIHRoaXMuZG9OYXZpZ2F0aW9uKHZpc2l0LCBhc3luYyByb3V0ZXIgPT4ge1xuICAgICAgY29uc3QgY29tbWFuZHMgPSBbXG4gICAgICAgIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5wYXRoLFxuICAgICAgICAuLi50aGlzLmNyZWF0ZVJvdXRlUGFyYW1ldGVycyh2aXNpdClcbiAgICAgIF07XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShjb21tYW5kcywge1xuICAgICAgICByZWxhdGl2ZVRvOiBvcHRpb25zID8gb3B0aW9ucy5yZWxhdGl2ZVRvIDogbnVsbFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBwdXNoVmlzaXRDaGFuZ2VzVG9Sb3V0ZShhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByZXZpb3VzOiBWaXNpdCwgbmV4dDogVmlzaXQpIHtcblxuICAgIC8vIHdlIGhhdmUgdG8gcHVzaCB0byBoaXN0b3J5IHNvIG91ciByZW1lbWJlciBzYW5pdGlzZXJzIGRvbid0IHBpY2sgdXAgdGhlIHByZXZpb3VzIHZhbHVlXG4gICAgLy8gd2hlbiBpdCdzIGJlZW4gY2xlYXJlZCBieSB0aGUgdXNlci5cbiAgICB0aGlzLnBsYWNlSGlzdG9yeS5hZGQobmV4dCk7XG5cbiAgICAvLyBGSVhNRTogbm8gcm91dGUgaWQgLT4gcm91dGUgaWQgZHVwbGljYXRlcyByb3V0ZSBwYXJhbWV0ZXJzXG4gICAgaWYgKG5leHQuaGFzUm91dGluZ0NoYW5nZWRGcm9tKHByZXZpb3VzKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZG9OYXZpZ2F0aW9uKG5leHQsIHJvdXRlciA9PiB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRzID0gdGhpcy5wYXJzZVVybCh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCkuY3JlYXRlUmVkaXJlY3RDb21tYW5kc0ZvcihuZXh0KTtcbiAgICAgICAgLy8gLy8gd2UgaGF2ZSB0byB0byB1c2UgdGhlIGRlZmluaXRpb24gZm9yIHJvdXRlIGlkIGFzIG91ciByZWRpcmVjdGlvbiBhbHdheXMgaW5jbHVkZXNcbiAgICAgICAgLy8gLy8gdGhlIGlkIGluIHRoZSB1cmwgc2VnZW1lbnRzIChidXQgbGVhdmVzIGl0IGJsYW5rIHdoZW4gdGhlcmUncyBubyBpZCkuIEkuZS4gaW4gdGhlXG4gICAgICAgIC8vIC8vIG5vIGlkIGNhc2Ugd2UncmUgZG9pbmcgdGhlIGZvbGxvd2luZyByZWRpcmVjdCBbPHBsYWNlUGF0aD4sIFwiXCJdIC0+IFtcIi4uXCIsIDxpZD5dXG4gICAgICAgIC8vIGNvbnN0IHJlbGF0aXZlUGF0aCA9ICEhcHJldmlvdXMucGxhY2VEZWZpbml0aW9uLmhhc1JvdXRlSWQoKSA/ICcuLicgOiAnLic7XG4gICAgICAgIC8vIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgICAvLyAgIHJlbGF0aXZlUGF0aCxcbiAgICAgICAgLy8gICAuLi50aGlzLmNyZWF0ZVJvdXRlUGFyYW1ldGVycyhuZXh0KSxcbiAgICAgICAgLy8gICAuLi50aGlzLmV4dHJhY3RDaGlsZFBhdGgoYWN0aXZhdGVkUm91dGUuc25hcHNob3QpXG4gICAgICAgIC8vIF07XG4gICAgICAgIGNvbnNvbGUubG9nKCcjIyMgUHVzaCBDaGFuZ2VzIHRvIHJvdXRlIFJlZGlyZWN0JywgeyBjb21tYW5kcyB9KTtcbiAgICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShjb21tYW5kcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkb05hdmlnYXRpb24odmlzaXQ6IFZpc2l0LCBjdXN0b21OYXZpZ2F0aW9uOiAocm91dGVyOiBSb3V0ZXIpID0+IGFueSkge1xuICAgIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uTW9kZWwudmFsdWUgPSB0aGlzLm5hdmlnYXRpb25TZXNzaW9uRmFjdG9yeS5jcmVhdGVJbnRlcm5hbCh2aXNpdCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGN1c3RvbU5hdmlnYXRpb24odGhpcy5yb3V0ZXIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBSb3V0ZXIgaGFzIGZpbmlzaGVkIChzaW5jZSB0aGVyZSB3YXMgbm8gcm91dGVyIGNoYW5nZSByZXF1aXJlZCkgc28gd2VcbiAgICAgIC8vIG5lZWQgdG8gZW5kIHRoZSBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbiAmJiAhdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKSkge1xuICAgICAgICB0aGlzLm9uQW5ndWxhclJvdXRlckZpbmlzaGVkKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXQpIHtcbiAgICBjb25zdCBkZWYgPSB2aXNpdC5wbGFjZURlZmluaXRpb247XG4gICAgcmV0dXJuIHZpc2l0Lmhhc1JvdXRlSWQoKSA/XG4gICAgICBbZGVmLmdldEZvcm1hdHRlZFJvdXRlSWQodmlzaXQpLCBkZWYuZ2V0Rm9ybWF0dGVkUm91dGVQYXJhbWV0ZXJzKHZpc2l0KV0gOlxuICAgICAgW2RlZi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQpXTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgb25Bbmd1bGFyUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgaWYgKCF0aGlzLm5hdmlnYXRpb25TZXNzaW9uKSB7IC8vIFdlIGJlZW4gYWN0aXZhdGVkIGJ5IGFuIGV4dGVybmFsIHJvdXRlIHJhdGhlciB0aGFuIHBsYWNlUm91dGVyLmdvKHZpc2l0KVxuICAgICAgY29uc29sZS5sb2coJ25hdmlnYXRpb24gc3RhcnRlZCcsIHsgZmlyc3RUaW1lOiB0aGlzLmZpcnN0Um91dGUgfSk7XG4gICAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkZhY3RvcnkuY3JlYXRlRXh0ZXJuYWwodGhpcy5maXJzdFJvdXRlKTtcbiAgICAgIGlmIChldmVudC5uYXZpZ2F0aW9uVHJpZ2dlciA9PT0gJ3BvcHN0YXRlJykge1xuICAgICAgICBzZXNzaW9uLnNldFBvcHN0YXRlUmV0dXJuVXJsKHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnVybCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlID0gc2Vzc2lvbjtcbiAgICB9XG4gICAgdGhpcy5maXJzdFJvdXRlID0gZmFsc2U7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIG9uQW5ndWxhclJvdXRlckZpbmlzaGVkKGNhbmNlbGxlZDogYm9vbGVhbikge1xuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLl9uYXZpZ2F0aW9uU2Vzc2lvbk1vZGVsLnZhbHVlO1xuICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAvLyBVcGRhdGUgdmlzaXRzIGJlZm9yZSB3ZSBlbmQgdGhlIG5hdmlnYXRpb24gc2Vzc2lvbi4gIFRoaXMgYWxsb3dzIHRoZSBwbGFjZU91dGV0cyB0b1xuICAgICAgLy8gaWdub3JlIHZpc2l0IGNoYW5nZXMgdGhhdCBvY2N1ciB3aGlsZSB0aGUgbmF2aWdhdGlvbiBpcyBpbiBwcm9ncmVzc1xuICAgICAgY29uc3QgdmlzaXRzID0gc2Vzc2lvbi5nZXRWaXNpdHMoKTtcbiAgICAgIHZpc2l0cy5mb3JFYWNoKHYgPT4gdGhpcy5wbGFjZUhpc3RvcnkuYWRkKHYpKTtcbiAgICAgIHRoaXMuX2FjdGl2ZVZpc2l0cy52YWx1ZSA9IHZpc2l0cztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IHByZXNlcnZlIHRoZSB1cmwgd2hlbiBhIGd1YXJkIGNhbmNlbHMgdGhlIGJhY2sgYnV0dG9uLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTg2I2lzc3VlY29tbWVudC00MzI3OTU3MjBcbiAgICAgIGlmIChzZXNzaW9uLmlzUG9wU3RhdGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxlZCBkdXJpbmcgcG9wc3RhdGUnKTtcbiAgICAgICAgdGhpcy5hbmd1bGFyTG9jYXRpb24uZ28oc2Vzc2lvbi5wb3BTdGF0ZVJldHVyblVybCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX25hdmlnYXRpb25TZXNzaW9uTW9kZWwudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgZXh0cmFjdENoaWxkUGF0aChhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGFueVtdIHtcbiAgICByZXR1cm4gXy5mbGF0dGVuKGFjdGl2YXRlZFJvdXRlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiBjaGlsZC51cmwpKTtcbiAgfVxuXG4gIHBhcnNlVXJsKHNuYXBzaG90OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUGxhY2VSb3V0ZXIuVXJsSGVscGVyIHtcbiAgICByZXR1cm4gbmV3IFBsYWNlUm91dGVyLlVybEhlbHBlcih0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2Uoc25hcHNob3QudXJsKSk7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlUm91dGVyIHtcblxuXG4gIGV4cG9ydCBjbGFzcyBVcmxIZWxwZXIge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1cmxUcmVlOiBVcmxUcmVlKSB7XG4gICAgICBjb25zb2xlLmxvZyh7IHNlZ21lbnRzOiB0aGlzLnVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIGNsb25lVXJsU2VnbWVudExpc3QoKTogVXJsU2VnbWVudFtdIHtcbiAgICAgIHJldHVybiBbLi4udGhpcy51cmxUcmVlLnJvb3QuY2hpbGRyZW4ucHJpbWFyeS5zZWdtZW50c107XG4gICAgfVxuXG4gICAgdXBkYXRlVmlzaXRTZWdtZW50cyh2aXNpdDogVmlzaXQpOiBVcmxTZWdtZW50W10ge1xuICAgICAgLy8gVWdseSwgYnV0IGl0IHdvcmtzIGZvciBub3cuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMuY2xvbmVVcmxTZWdtZW50TGlzdCgpO1xuICAgICAgY29uc3QgdmlzaXRTZWdtZW50cyA9IHRoaXMuY29udmVydFRvVXJsU2VnbWVudHModmlzaXQpO1xuICAgICAgY29uc3QgcmVwbGFjZUF0ID0gc2VnbWVudHMuZmluZEluZGV4KHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoID09PSB2aXNpdFNlZ21lbnRzWzBdLnBhdGgpO1xuICAgICAgLy8gZG8gbm90IHVzZSB0aGUgcmV0dXJuIHZhbHVlLCBpdCdzIHRoZSBpdGVtcyB0aGF0IHdlcmUgcmVtb3ZlZCFcbiAgICAgIHNlZ21lbnRzLnNwbGljZShyZXBsYWNlQXQsIHZpc2l0U2VnbWVudHMubGVuZ3RoLCAuLi52aXNpdFNlZ21lbnRzKTtcbiAgICAgIHJldHVybiBzZWdtZW50cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgdmlzaXQgaW50byBzZWdtZW50cy4gIFBsZWFzZSBub3QgdGhhdCB0aGVzZSBzZWdtZW50cyBhcmUgbm90IGVcbiAgICAgKiBAcGFyYW0gdmlzaXRcbiAgICAgKi9cbiAgICBjb252ZXJ0VG9VcmxTZWdtZW50cyh2aXNpdDogVmlzaXQpOiBVcmxTZWdtZW50W10ge1xuICAgICAgcmV0dXJuIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5oYXNSb3V0ZUlkKCkgP1xuICAgICAgICBbXG4gICAgICAgICAgLy8gTk9URTpcbiAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBhdHRhY2ggdGhlIHBhcmFtcyB0byB0aGUgcm9vdCBwYXRoIGFuZCBub3QgdGhlIGlkLiAgSWYgd2UgYXR0YWNoIHRoZW1cbiAgICAgICAgICAvLyB0byBhbiBlbXB0eSBpZCB0aGVuIHRoZSBhbmd1bGFyIHJvdXRlciB3b24ndCBtYXRjaCB0aGUgcGF0dGVybi5cbiAgICAgICAgICBuZXcgVXJsU2VnbWVudCh2aXNpdC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCkpLFxuICAgICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHZpc2l0KSwge30pXVxuICAgICAgICA6XG4gICAgICAgIFtcbiAgICAgICAgICBuZXcgVXJsU2VnbWVudCh2aXNpdC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCkpXG4gICAgICAgIF07XG4gICAgfVxuXG5cbiAgICBAVHJhY2UoKVxuICAgIGNyZWF0ZVJlZGlyZWN0Q29tbWFuZHNGb3IodmlzaXQ6IFZpc2l0KTogYW55W10ge1xuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMudXBkYXRlVmlzaXRTZWdtZW50cyh2aXNpdCk7XG4gICAgICBjb25zdCBjb21tYW5kcyA9IFtdO1xuICAgICAgc2VnbWVudHMuZm9yRWFjaChzID0+IHtcbiAgICAgICAgY29tbWFuZHMucHVzaChzLnBhdGgpO1xuICAgICAgICBpZiAocy5wYXJhbWV0ZXJNYXAua2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29tbWFuZHMucHVzaChzLnBhcmFtZXRlcnMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb21tYW5kcztcbiAgICB9XG5cbiAgICBpbmNsdWRlc1BhdGhPZihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5jbG9uZVVybFNlZ21lbnRMaXN0KCkuZmluZChzID0+IHMucGF0aCA9PT0gcGxhY2VEZWYucGF0aCk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
@@ -17,28 +17,27 @@ export { NoopComponent as ɵk } from './lib/components/noop/noop.component';
17
17
  export { CommandDirective as ɵb } from './lib/directives/command.directive';
18
18
  export { DirectivesModule as ɵa } from './lib/directives/directives.module';
19
19
  export { FocusBindingDirective as ɵc } from './lib/directives/focus-binding.directive';
20
- export { AbstractActivity as ɵbe } from './lib/interaction/abstract-activity';
21
- export { ACTIVITY_DATA as ɵbf, Activity as ɵbg } from './lib/interaction/activity';
22
- export { ActivityContainerComponent as ɵbb } from './lib/interaction/components/activity-container/activity-container.component';
23
- export { ActivityOutletComponent as ɵbc } from './lib/interaction/components/activity-outlet/activity-outlet.component';
24
- export { AlertDialogComponent as ɵbj } from './lib/interaction/components/alert-dialog/alert-dialog.component';
25
- export { ConfirmThenDialogComponent as ɵbi } from './lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component';
26
- export { ConfirmationDialogComponent as ɵbd } from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';
27
- export { InplaceInteractionContextComponent as ɵbm } from './lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component';
28
- export { InteractionOutletComponent as ɵbl } from './lib/interaction/components/interaction-outlet/interaction-outlet.component';
29
- export { InteractionContext as ɵv } from './lib/interaction/interaction-context';
30
- export { InteractionModule as ɵba } from './lib/interaction/interaction.module';
31
- export { DIALOG_INTERACTION_SERVICE_DEFAULTS as ɵbn, DialogInteractionService as ɵbo } from './lib/interaction/services/dialog-interaction.service';
32
- export { AbstractPlaceNavigationComponent as ɵy } from './lib/place/components/abstract-place-navigation.component';
20
+ export { AbstractActivity as ɵbd } from './lib/interaction/abstract-activity';
21
+ export { ACTIVITY_DATA as ɵbe, Activity as ɵbf } from './lib/interaction/activity';
22
+ export { ActivityContainerComponent as ɵba } from './lib/interaction/components/activity-container/activity-container.component';
23
+ export { ActivityOutletComponent as ɵbb } from './lib/interaction/components/activity-outlet/activity-outlet.component';
24
+ export { AlertDialogComponent as ɵbi } from './lib/interaction/components/alert-dialog/alert-dialog.component';
25
+ export { ConfirmThenDialogComponent as ɵbh } from './lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component';
26
+ export { ConfirmationDialogComponent as ɵbc } from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';
27
+ export { InplaceInteractionContextComponent as ɵbl } from './lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component';
28
+ export { InteractionOutletComponent as ɵbk } from './lib/interaction/components/interaction-outlet/interaction-outlet.component';
29
+ export { InteractionContext as ɵu } from './lib/interaction/interaction-context';
30
+ export { InteractionModule as ɵz } from './lib/interaction/interaction.module';
31
+ export { DIALOG_INTERACTION_SERVICE_DEFAULTS as ɵbm, DialogInteractionService as ɵbn } from './lib/interaction/services/dialog-interaction.service';
32
+ export { AbstractPlaceNavigationComponent as ɵx } from './lib/place/components/abstract-place-navigation.component';
33
33
  export { BusyOverlayComponent as ɵn } from './lib/place/components/busy-overlay/busy-overlay.component';
34
34
  export { EmptyStateComponent as ɵm } from './lib/place/components/empty-state/empty-state.component';
35
- export { ListPlaceNavComponent as ɵz } from './lib/place/components/list-place-nav/list-place-nav.component';
35
+ export { ListPlaceNavComponent as ɵy } from './lib/place/components/list-place-nav/list-place-nav.component';
36
36
  export { PlaceOutletComponent as ɵo } from './lib/place/components/place-outlet/place-outlet.component';
37
37
  export { LEFT_RIGHT_PLACE_ANIMATION as ɵq, leftRightPlaceAnimation as ɵp } from './lib/place/components/place-outlet/route-animations';
38
- export { TabbedPlaceNavigationComponent as ɵx } from './lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component';
39
- export { NavigationSession as ɵu } from './lib/place/navigation-session';
38
+ export { TabbedPlaceNavigationComponent as ɵw } from './lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component';
40
39
  export { AUP_PLACE_CONFIG as ɵr } from './lib/place/place-config';
41
- export { PlaceHistory as ɵw } from './lib/place/place-history';
40
+ export { PlaceHistory as ɵv } from './lib/place/place-history';
42
41
  export { PlaceRouter as ɵt } from './lib/place/place-router';
43
42
  export { PlaceModule as ɵl } from './lib/place/place.module';
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG9uLWFuZ3VsYXItdWktcG93ZXJ1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJjb29sb24tYW5ndWxhci11aS1wb3dlcnVwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEseXJDQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGFBQWEsSUFBSSxHQUFHLEVBQUMsUUFBUSxJQUFJLEdBQUcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWhGLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzdHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUNqSSxPQUFPLEVBQUMsMkJBQTJCLElBQUksR0FBRyxFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFDbEksT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEdBQUcsRUFBQyxNQUFNLGdHQUFnRyxDQUFDO0FBQ3pKLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUUvSCxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxtQ0FBbUMsSUFBSSxHQUFHLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDakosT0FBTyxFQUFDLGdDQUFnQyxJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ2xILE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDbkcsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ3BJLE9BQU8sRUFBQyw4QkFBOEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRkFBa0YsQ0FBQztBQUN0SSxPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRixPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCB7Q29tcG9uZW50c01vZHVsZSBhcyDJtWV9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50IGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5leHBvcnQge0Fic3RyYWN0SW5wdXRDb21wb25lbnQgYXMgybVnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL2Fic3RyYWN0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQge051bWJlcklucHV0Q29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQge1Bhc3N3b3JkSW5wdXRDb21wb25lbnQgYXMgybVpfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL3Bhc3N3b3JkLWlucHV0L3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQge1NlbGVjdElucHV0Q29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQge1N0cmluZ0lucHV0Q29tcG9uZW50IGFzIMm1aH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9zdHJpbmctaW5wdXQvc3RyaW5nLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQge05vb3BDb21wb25lbnQgYXMgybVrfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL25vb3Avbm9vcC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb21tYW5kRGlyZWN0aXZlIGFzIMm1Yn0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9jb21tYW5kLmRpcmVjdGl2ZSc7XG5leHBvcnQge0RpcmVjdGl2ZXNNb2R1bGUgYXMgybVhfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcbmV4cG9ydCB7Rm9jdXNCaW5kaW5nRGlyZWN0aXZlIGFzIMm1Y30gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb2N1cy1iaW5kaW5nLmRpcmVjdGl2ZSc7XG5leHBvcnQge0Fic3RyYWN0QWN0aXZpdHkgYXMgybViZX0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWJzdHJhY3QtYWN0aXZpdHknO1xuZXhwb3J0IHtBQ1RJVklUWV9EQVRBIGFzIMm1YmYsQWN0aXZpdHkgYXMgybViZ30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHknO1xuZXhwb3J0IHtBbGVydCBhcyDJtWJrfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9hbGVydCc7XG5leHBvcnQge0FjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50IGFzIMm1YmJ9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0IHtBY3Rpdml0eU91dGxldENvbXBvbmVudCBhcyDJtWJjfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCB7QWxlcnREaWFsb2dDb21wb25lbnQgYXMgybVian0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbmZpcm1UaGVuRGlhbG9nQ29tcG9uZW50IGFzIMm1Yml9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvY29uZmlybS10aGVuLWRpYWxvZy9jb25maXJtLXRoZW4tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCBhcyDJtWJkfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0IHtJbnBsYWNlSW50ZXJhY3Rpb25Db250ZXh0Q29tcG9uZW50IGFzIMm1Ym19IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0L2lucGxhY2UtaW50ZXJhY3Rpb24tY29udGV4dC5jb21wb25lbnQnO1xuZXhwb3J0IHtJbnRlcmFjdGlvbk91dGxldENvbXBvbmVudCBhcyDJtWJsfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2ludGVyYWN0aW9uLW91dGxldC9pbnRlcmFjdGlvbi1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybSBhcyDJtWJofSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb25maXJtJztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0IGFzIMm1dn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5leHBvcnQge0ludGVyYWN0aW9uTW9kdWxlIGFzIMm1YmF9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLm1vZHVsZSc7XG5leHBvcnQge0RJQUxPR19JTlRFUkFDVElPTl9TRVJWSUNFX0RFRkFVTFRTIGFzIMm1Ym4sRGlhbG9nSW50ZXJhY3Rpb25TZXJ2aWNlIGFzIMm1Ym99IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL2RpYWxvZy1pbnRlcmFjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7QWJzdHJhY3RQbGFjZU5hdmlnYXRpb25Db21wb25lbnQgYXMgybV5fSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL2Fic3RyYWN0LXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7QnVzeU92ZXJsYXlDb21wb25lbnQgYXMgybVufSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL2J1c3ktb3ZlcmxheS9idXN5LW92ZXJsYXkuY29tcG9uZW50JztcbmV4cG9ydCB7RW1wdHlTdGF0ZUNvbXBvbmVudCBhcyDJtW19IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmV4cG9ydCB7TGlzdFBsYWNlTmF2Q29tcG9uZW50IGFzIMm1en0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9saXN0LXBsYWNlLW5hdi9saXN0LXBsYWNlLW5hdi5jb21wb25lbnQnO1xuZXhwb3J0IHtQbGFjZU91dGxldENvbXBvbmVudCBhcyDJtW99IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTiBhcyDJtXEsbGVmdFJpZ2h0UGxhY2VBbmltYXRpb24gYXMgybVwfSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9yb3V0ZS1hbmltYXRpb25zJztcbmV4cG9ydCB7VGFiYmVkUGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50IGFzIMm1eH0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy90YWJiZWQtcGxhY2UtbmF2aWdhdGlvbi90YWJiZWQtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtOYXZpZ2F0aW9uU2Vzc2lvbiBhcyDJtXV9IGZyb20gJy4vbGliL3BsYWNlL25hdmlnYXRpb24tc2Vzc2lvbic7XG5leHBvcnQge0FVUF9QTEFDRV9DT05GSUcgYXMgybVyLFBsYWNlQ29uZmlnIGFzIMm1c30gZnJvbSAnLi9saWIvcGxhY2UvcGxhY2UtY29uZmlnJztcbmV4cG9ydCB7UGxhY2VIaXN0b3J5IGFzIMm1d30gZnJvbSAnLi9saWIvcGxhY2UvcGxhY2UtaGlzdG9yeSc7XG5leHBvcnQge1BsYWNlUm91dGVyIGFzIMm1dH0gZnJvbSAnLi9saWIvcGxhY2UvcGxhY2Utcm91dGVyJztcbmV4cG9ydCB7UGxhY2VNb2R1bGUgYXMgybVsfSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS5tb2R1bGUnOyJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG9uLWFuZ3VsYXItdWktcG93ZXJ1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJjb29sb24tYW5ndWxhci11aS1wb3dlcnVwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEseXJDQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGFBQWEsSUFBSSxHQUFHLEVBQUMsUUFBUSxJQUFJLEdBQUcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWhGLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUMvSCxPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzdHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUNqSSxPQUFPLEVBQUMsMkJBQTJCLElBQUksR0FBRyxFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFDbEksT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEdBQUcsRUFBQyxNQUFNLGdHQUFnRyxDQUFDO0FBQ3pKLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUUvSCxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxtQ0FBbUMsSUFBSSxHQUFHLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDakosT0FBTyxFQUFDLGdDQUFnQyxJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ2xILE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDbkcsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ3BJLE9BQU8sRUFBQyw4QkFBOEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRkFBa0YsQ0FBQztBQUN0SSxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtDb21wb25lbnRzTW9kdWxlIGFzIMm1ZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZSc7XG5leHBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnQgYXMgybVkfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmV4cG9ydCB7QWJzdHJhY3RJbnB1dENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7TnVtYmVySW5wdXRDb21wb25lbnQgYXMgybVmfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7UGFzc3dvcmRJbnB1dENvbXBvbmVudCBhcyDJtWl9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7U2VsZWN0SW5wdXRDb21wb25lbnQgYXMgybVqfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7U3RyaW5nSW5wdXRDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL3N0cmluZy1pbnB1dC9zdHJpbmctaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7Tm9vcENvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm9vcC9ub29wLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbW1hbmREaXJlY3RpdmUgYXMgybVifSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2NvbW1hbmQuZGlyZWN0aXZlJztcbmV4cG9ydCB7RGlyZWN0aXZlc01vZHVsZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuZXhwb3J0IHtGb2N1c0JpbmRpbmdEaXJlY3RpdmUgYXMgybVjfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2ZvY3VzLWJpbmRpbmcuZGlyZWN0aXZlJztcbmV4cG9ydCB7QWJzdHJhY3RBY3Rpdml0eSBhcyDJtWJkfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9hYnN0cmFjdC1hY3Rpdml0eSc7XG5leHBvcnQge0FDVElWSVRZX0RBVEEgYXMgybViZSxBY3Rpdml0eSBhcyDJtWJmfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9hY3Rpdml0eSc7XG5leHBvcnQge0FsZXJ0IGFzIMm1Ymp9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2FsZXJ0JztcbmV4cG9ydCB7QWN0aXZpdHlDb250YWluZXJDb21wb25lbnQgYXMgybViYX0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQge0FjdGl2aXR5T3V0bGV0Q29tcG9uZW50IGFzIMm1YmJ9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktb3V0bGV0L2FjdGl2aXR5LW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtBbGVydERpYWxvZ0NvbXBvbmVudCBhcyDJtWJpfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybVRoZW5EaWFsb2dDb21wb25lbnQgYXMgybViaH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZGlhbG9nL2NvbmZpcm0tdGhlbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IGFzIMm1YmN9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge0lucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRDb21wb25lbnQgYXMgybVibH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9pbnBsYWNlLWludGVyYWN0aW9uLWNvbnRleHQvaW5wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQge0ludGVyYWN0aW9uT3V0bGV0Q29tcG9uZW50IGFzIMm1Ymt9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvaW50ZXJhY3Rpb24tb3V0bGV0L2ludGVyYWN0aW9uLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb25maXJtIGFzIMm1Ymd9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbmZpcm0nO1xuZXhwb3J0IHtJbnRlcmFjdGlvbkNvbnRleHQgYXMgybV1fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Nb2R1bGUgYXMgybV6fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi5tb2R1bGUnO1xuZXhwb3J0IHtESUFMT0dfSU5URVJBQ1RJT05fU0VSVklDRV9ERUZBVUxUUyBhcyDJtWJtLERpYWxvZ0ludGVyYWN0aW9uU2VydmljZSBhcyDJtWJufSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5leHBvcnQge0Fic3RyYWN0UGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50IGFzIMm1eH0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9hYnN0cmFjdC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge0J1c3lPdmVybGF5Q29tcG9uZW50IGFzIMm1bn0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudCc7XG5leHBvcnQge0VtcHR5U3RhdGVDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5leHBvcnQge0xpc3RQbGFjZU5hdkNvbXBvbmVudCBhcyDJtXl9IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvbGlzdC1wbGFjZS1uYXYvbGlzdC1wbGFjZS1uYXYuY29tcG9uZW50JztcbmV4cG9ydCB7UGxhY2VPdXRsZXRDb21wb25lbnQgYXMgybVvfSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCB7TEVGVF9SSUdIVF9QTEFDRV9BTklNQVRJT04gYXMgybVxLGxlZnRSaWdodFBsYWNlQW5pbWF0aW9uIGFzIMm1cH0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcm91dGUtYW5pbWF0aW9ucyc7XG5leHBvcnQge1RhYmJlZFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCBhcyDJtXd9IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7QVVQX1BMQUNFX0NPTkZJRyBhcyDJtXIsUGxhY2VDb25maWcgYXMgybVzfSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS1jb25maWcnO1xuZXhwb3J0IHtQbGFjZUhpc3RvcnkgYXMgybV2fSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS1oaXN0b3J5JztcbmV4cG9ydCB7UGxhY2VSb3V0ZXIgYXMgybV0fSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS1yb3V0ZXInO1xuZXhwb3J0IHtQbGFjZU1vZHVsZSBhcyDJtWx9IGZyb20gJy4vbGliL3BsYWNlL3BsYWNlLm1vZHVsZSc7Il19
@@ -3,8 +3,6 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
- import { Injectable } from '@angular/core';
7
- import { InteractionContext } from '../interaction/interaction-context';
8
6
  /**
9
7
  * @abstract
10
8
  */
@@ -175,8 +173,8 @@ if (false) {
175
173
  Internal.prototype.isExternal;
176
174
  }
177
175
  var Factory = /** @class */ (function () {
178
- function Factory(appModelInteractionContext) {
179
- this.appModelInteractionContext = appModelInteractionContext;
176
+ function Factory(interactionContext) {
177
+ this.interactionContext = interactionContext;
180
178
  }
181
179
  /**
182
180
  * @param {?} visit
@@ -187,7 +185,7 @@ if (false) {
187
185
  * @return {?}
188
186
  */
189
187
  function (visit) {
190
- return new Internal(visit, this.appModelInteractionContext);
188
+ return new Internal(visit, this.interactionContext);
191
189
  };
192
190
  /**
193
191
  * @param {?} firstTimeRoute
@@ -198,23 +196,14 @@ if (false) {
198
196
  * @return {?}
199
197
  */
200
198
  function (firstTimeRoute) {
201
- return new External(firstTimeRoute, this.appModelInteractionContext);
199
+ return new External(firstTimeRoute, this.interactionContext);
202
200
  };
203
- Factory.decorators = [
204
- { type: Injectable, args: [{
205
- providedIn: 'root'
206
- },] },
207
- ];
208
- /** @nocollapse */
209
- Factory.ctorParameters = function () { return [
210
- { type: InteractionContext }
211
- ]; };
212
201
  return Factory;
213
202
  }());
214
203
  NavigationSession.Factory = Factory;
215
204
  if (false) {
216
205
  /** @type {?} */
217
- Factory.prototype.appModelInteractionContext;
206
+ Factory.prototype.interactionContext;
218
207
  }
219
208
  var ComponentDeactivationHandler = /** @class */ (function () {
220
209
  function ComponentDeactivationHandler(component, appModelInteractionContext, primary) {
@@ -361,4 +350,4 @@ if (false) {
361
350
  ComponentDeactivationHandler.prototype.primary;
362
351
  }
363
352
  })(NavigationSession || (NavigationSession = {}));
364
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFNeEU7Ozs7SUFXRSwyQkFBK0IsZUFBd0IsRUFBbUIsMEJBQThDO1FBQXpGLG9CQUFlLEdBQWYsZUFBZSxDQUFTO1FBQW1CLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBb0I7UUFUaEgscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUV4QyxZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFLNUMsa0NBQTZCLEdBQUcsSUFBSSxHQUFHLEVBQWtFLENBQUM7UUFHaEgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0RSxDQUFDOzs7OztJQUVELHNDQUFVOzs7O0lBQVYsVUFBVyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7Ozs7SUFFRCx1Q0FBVzs7OztJQUFYLFVBQVksUUFBeUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7Ozs7SUFFSyx5Q0FBYTs7Ozs7SUFBbkIsVUFBb0IsU0FBeUIsRUFBRSxTQUFnQzs7Ozs7Z0JBRXpFLE9BQU8sR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDTixnQkFB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cm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpc3Bvc2FibGUgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHQgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi9wbGFjZS1yb3V0ZXInO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuL3Zpc2l0JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIHtcblxuICBwcml2YXRlIF9hbHJlYWR5QWNjZXB0ZWQ6IFBsYWNlQ29tcG9uZW50W10gPSBbXTtcblxuICBwcml2YXRlIF92aXNpdHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXQ+KCk7XG4gIHByaXZhdGUgX3BvcFN0YXRlUmV0dXJuVXJsOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNFeHRlcm5hbDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGlhbG9nT3Blbk9uU3RhcnQ6IGJvb2xlYW47XG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBOYXZpZ2F0aW9uU2Vzc2lvbi5Db21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyPigpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJzdE5hdmlnYXRpb246IGJvb2xlYW4sIHByaXZhdGUgcmVhZG9ubHkgYXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIHRoaXMuZGlhbG9nT3Blbk9uU3RhcnQgPSB0aGlzLmFwcE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCk7XG4gIH1cblxuICBzdG9yZVZpc2l0KHZpc2l0OiBWaXNpdCkge1xuICAgIHRoaXMuX3Zpc2l0cy5zZXQodmlzaXQucGxhY2VEZWZpbml0aW9uLCB2aXNpdCk7XG4gIH1cblxuICBnZXRWaXNpdEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2l0cy5nZXQocGxhY2VEZWYpO1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBuZXh0U3RhdGU6IFBsYWNlUm91dGVyLlVybEhlbHBlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgIGxldCBoYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5nZXQoY29tcG9uZW50KTtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbGUgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgaGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uU2Vzc2lvbi5Db21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyKGNvbXBvbmVudCwgdGhpcy5hcHBNb2RhbEludGVyYWN0aW9uQ29udGV4dCwgaXNQcmltYXJ5SGFuZGxlcik7XG4gICAgICB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIGhhbmRsZXIpO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci5jYW5EZWFjdGl2YXRlKG5leHRTdGF0ZSk7XG4gIH1cblxuICBzZXRQb3BzdGF0ZVJldHVyblVybCh1cmw6IHN0cmluZykge1xuICAgIHRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsID0gdXJsO1xuICB9XG5cbiAgZ2V0IGlzUG9wU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fcG9wU3RhdGVSZXR1cm5Vcmw7XG4gIH1cblxuICBnZXQgcG9wU3RhdGVSZXR1cm5VcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsO1xuICB9XG5cbiAgZ2V0VmlzaXRzKCk6IFZpc2l0W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0cy52YWx1ZXMoKSk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG5cbiAgY2xhc3MgRXh0ZXJuYWwgZXh0ZW5kcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgcmVhZG9ubHkgaXNFeHRlcm5hbCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpc0ZpcnN0VGltZTogYm9vbGVhbiwgYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgc3VwZXIoaXNGaXJzdFRpbWUsIGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBjbGFzcyBJbnRlcm5hbCBleHRlbmRzIE5hdmlnYXRpb25TZXNzaW9uIHtcbiAgICByZWFkb25seSBpc0V4dGVybmFsID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcih2aXNpdDogVmlzaXQsIGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHN1cGVyKGZhbHNlLCBhcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgICB0aGlzLnN0b3JlVmlzaXQodmlzaXQpO1xuICAgIH1cbiAgfVxuXG5cbiAgQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xuICB9KVxuICBleHBvcnQgY2xhc3MgRmFjdG9yeSB7XG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIH1cblxuICAgIGNyZWF0ZUludGVybmFsKHZpc2l0OiBWaXNpdCk6IE5hdmlnYXRpb25TZXNzaW9uIHtcbiAgICAgIHJldHVybiBuZXcgSW50ZXJuYWwodmlzaXQsIHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgIH1cblxuICAgIGNyZWF0ZUV4dGVybmFsKGZpcnN0VGltZVJvdXRlOiBib29sZWFuKTogTmF2aWdhdGlvblNlc3Npb24ge1xuICAgICAgcmV0dXJuIG5ldyBFeHRlcm5hbChmaXJzdFRpbWVSb3V0ZSwgdGhpcy5hcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIENvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIge1xuXG4gICAgcHJpdmF0ZSBhbHJlYWR5QWNjZXB0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIHJlYWRvbmx5IHByaW1hcnk6Ym9vbGVhbikge1xuICAgICAgLy8gc3VwZXIoKTtcbiAgICB9XG5cbiAgICBhc3luYyBjYW5EZWFjdGl2YXRlKG5leHRTdGF0ZTogUGxhY2VSb3V0ZXIuVXJsSGVscGVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICBjb25zb2xlLmxvZyhgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LmNhbkRlYWN0aXZhdGVgLCB7Y29tcG9uZW50OnRoaXMuY29tcG9uZW50fSk7XG4gICAgICBpZiAodGhpcy5hbHJlYWR5QWNjZXB0ZWQpIHtcbiAgICAgICAgLy8gV2UnbGwgZ2V0IGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB0aGVyZSdzIGFueSBwYXJhbWV0ZXIgc2FuaXRpc2F0aW9uIHNvXG4gICAgICAgIC8vIHdlIGFsd2F5cyByZXR1cm4gdHJ1ZSBpZiB3ZSBhY2NlcHRlZCBvbiBhIHByZXZpb3VzIGN5Y2xlIG9mIHRoZSBjdXJyZW50XG4gICAgICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbi5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIGlmICh0aGlzLnByaW1hcnkgJiYgdGhpcy5hcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgLy8gV2UgY2hlY2sgdGhlIGdsb2JhbCBpbnRlcmFjdGlvbiBmaXJzdFxuICAgICAgICAgIGF3YWl0IHRoaXMuY2FuY2VsQ3VycmVudEFjdGl2aXR5T2YodGhpcy5hcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hbHJlYWR5QWNjZXB0ZWQgPSBhd2FpdCB0aGlzLmNhbkRlYWN0aXZhdGVDb21wb25lbnQobmV4dFN0YXRlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hbHJlYWR5QWNjZXB0ZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNhbkRlYWN0aXZhdGVDb21wb25lbnQobmV4dFN0YXRlOiBQbGFjZVJvdXRlci5VcmxIZWxwZXIpIHtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGNvbXBvbmVudCBoYXMgYW4gYWN0aXZlIGludGVyYWN0aW9uLiAgVGhpcyB3aWxsIGhhbmRsZVxuICAgICAgLy8gYW4gaW5wbGFjZSBpbnRlcmFjdGlvbiBjb250ZXh0c1xuICAgICAgY29uc3QgaGFzQ3VzdG9tSW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0ICYmXG4gICAgICAgICF0aGlzLmlzQXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQodGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0KSAmJlxuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKTtcblxuICAgICAgaWYgKGhhc0N1c3RvbUludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgIHRoaXMuY2FuY2VsQ3VycmVudEFjdGl2aXR5T2YodGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0xlYXZpbmdDdXJyZW50UGxhY2UobmV4dFN0YXRlKSAmJiB0aGlzLmNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKSB7XG4gICAgICAgIC8vIE5vIGludGVyYWN0aW9uIGluIHByb2dyZXNzLCBzbyBhc2sgdGhlIGNvbXBvbmVudCAuXG4gICAgICAgIC8vIFRoaXMgbWF5IHN0YXJ0IGFuIGludGVyYWN0aW9uLCBoZW5jZSBjaGVja2luZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBiZWZvcmUgbm93LiBJLmUuIGlmIHRoZSBwbGFjZSBwb3BzIHVwIHRoZSBkaWFsb2csIGFuZFxuICAgICAgICAvLyB0aGUgdXNlciBjbGlja3MgYmFjayBhZ2Fpbiwgd2UnbGwgcmUtZW50ZXIgaGVyZSBhbmQgZ28gYmFuZyB3aGVuIHRoZSBjb21wb25lbnQgdHJpZXMgdG8gb3BlbiBhbm90aGVyIGRpYWxvZy5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlzQXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0ID09PSBpbnRlcmFjdGlvbkNvbnRleHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNhbmNlbEN1cnJlbnRBY3Rpdml0eU9mKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICBjb25zdCBhY3Rpdml0eSA9IGF3YWl0IGludGVyYWN0aW9uQ29udGV4dC5nZXRDdXJyZW50QWN0aXZpdHkoKTtcbiAgICAgIGNvbnNvbGUubG9nKCdjYW5jZWxsaW5nJywgeyBhY3Rpdml0eSB9KTtcbiAgICAgIGFjdGl2aXR5LmNhbmNlbChudWxsKTtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBpc0xlYXZpbmdDdXJyZW50UGxhY2UobmV4dFN0YXRlOiBQbGFjZVJvdXRlci5VcmxIZWxwZXIpIHtcbiAgICAgIHJldHVybiAhbmV4dFN0YXRlLmluY2x1ZGVzUGF0aE9mKHRoaXMuY29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbik7XG4gICAgfVxuICB9XG5cbn1cblxuIl19
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQU9BOzs7O0lBV0UsMkJBQStCLGVBQXdCLEVBQW1CLDBCQUE4QztRQUF6RixvQkFBZSxHQUFmLGVBQWUsQ0FBUztRQUFtQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQW9CO1FBVGhILHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFeEMsWUFBTyxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBSzVDLGtDQUE2QixHQUFHLElBQUksR0FBRyxFQUFrRSxDQUFDO1FBR2hILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEUsQ0FBQzs7Ozs7SUFFRCxzQ0FBVTs7OztJQUFWLFVBQVcsS0FBWTtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7Ozs7O0lBRUQsdUNBQVc7Ozs7SUFBWCxVQUFZLFFBQXlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Ozs7O0lBRUsseUNBQWE7Ozs7O0lBQW5CLFVBQW9CLFNBQXlCLEVBQUUsU0FBZ0M7Ozs7O2dCQUV6RSxPQUFPLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ04sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksS0FBSyxDQUFDO29CQUN0RSxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyw0QkFBNEIs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SEFBOEg7d0JBQzlILCtHQUErRzt3QkFDL0csc0JBQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBQztxQkFDdkM7b0JBQ0Qsc0JBQU8sSUFBSSxFQUFDOzs7U0FDYjs7Ozs7UUFFRCxtRUFBNEI7Ozs7UUFBNUIsVUFBNkIsa0JBQXNDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixLQUFLLGtCQUFrQixDQUFDO1FBQ2hFLENBQUM7Ozs7OztRQUVlLDhEQUF1Qjs7Ozs7UUFBdkMsVUFBd0Msa0JBQXNDOzs7OztnQ0FDM0QscUJBQU0sa0JBQWtCLENBQUMsa0JBQWtCLEVBQUUsRUFBQTs7NEJBQXhELFFBQVEsR0FBRyxTQUE2Qzs0QkFDOUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLFVBQUEsRUFBRSxDQUFDLENBQUM7NEJBQ3hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7O1NBQ3ZCOzs7Ozs7UUFHUyw0REFBcUI7Ozs7O1FBQS9CLFVBQWdDLFNBQWdDO1lBQzlELE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNILG1DQUFDO0lBQUQsQ0FBQyxBQWpFRCxJQWlFQztJQWpFWSw4Q0FBNEIsK0JBaUV4QyxDQUFBOzs7Ozs7UUEvREMsdURBQWdDOztRQUVwQixpREFBa0M7O1FBQUUsa0VBQXVEOztRQUFFLCtDQUF5Qjs7QUErRHRJLENBQUMsRUFuR2dCLGlCQUFpQixLQUFqQixpQkFBaUIsUUFtR2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQbGFjZVJvdXRlciB9IGZyb20gJy4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi92aXNpdCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG5cbiAgcHJpdmF0ZSBfYWxyZWFkeUFjY2VwdGVkOiBQbGFjZUNvbXBvbmVudFtdID0gW107XG5cbiAgcHJpdmF0ZSBfdmlzaXRzID0gbmV3IE1hcDxQbGFjZURlZmluaXRpb24sIFZpc2l0PigpO1xuICBwcml2YXRlIF9wb3BTdGF0ZVJldHVyblVybDogc3RyaW5nO1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzRXh0ZXJuYWw6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRpYWxvZ09wZW5PblN0YXJ0OiBib29sZWFuO1xuICBwcml2YXRlIGNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzID0gbmV3IE1hcDxQbGFjZUNvbXBvbmVudCwgTmF2aWdhdGlvblNlc3Npb24uQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcj4oKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyc3ROYXZpZ2F0aW9uOiBib29sZWFuLCBwcml2YXRlIHJlYWRvbmx5IGFwcE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICB0aGlzLmRpYWxvZ09wZW5PblN0YXJ0ID0gdGhpcy5hcHBNb2RhbEludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpO1xuICB9XG5cbiAgc3RvcmVWaXNpdCh2aXNpdDogVmlzaXQpIHtcbiAgICB0aGlzLl92aXNpdHMuc2V0KHZpc2l0LnBsYWNlRGVmaW5pdGlvbiwgdmlzaXQpO1xuICB9XG5cbiAgZ2V0VmlzaXRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLl92aXNpdHMuZ2V0KHBsYWNlRGVmKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgbmV4dFN0YXRlOiBQbGFjZVJvdXRlci5VcmxIZWxwZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBsb29rdXAgdGhlIGhhbmRsZXIgYW5kIGNyZWF0ZSBpdCBpZiB3ZSd2ZSBub3Qgc2VlbiBpdCB5ZXRcbiAgICBsZXQgaGFuZGxlciA9IHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuZ2V0KGNvbXBvbmVudCk7XG4gICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICBjb25zdCBpc1ByaW1hcnlIYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5zaXplID09PSAwOyAvLyBvbmx5IHByaW1hcnkgaGFuZGxlciBjYW5jZWxlIHRoZSBhcHAgbW9kZWwgaW50ZXJhdGlvbnNcbiAgICAgIGhhbmRsZXIgPSBuZXcgTmF2aWdhdGlvblNlc3Npb24uQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcihjb21wb25lbnQsIHRoaXMuYXBwTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQsIGlzUHJpbWFyeUhhbmRsZXIpO1xuICAgICAgdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5zZXQoY29tcG9uZW50LCBoYW5kbGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIGhhbmRsZXIuY2FuRGVhY3RpdmF0ZShuZXh0U3RhdGUpO1xuICB9XG5cbiAgc2V0UG9wc3RhdGVSZXR1cm5VcmwodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wb3BTdGF0ZVJldHVyblVybCA9IHVybDtcbiAgfVxuXG4gIGdldCBpc1BvcFN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3BvcFN0YXRlUmV0dXJuVXJsO1xuICB9XG5cbiAgZ2V0IHBvcFN0YXRlUmV0dXJuVXJsKCkge1xuICAgIHJldHVybiB0aGlzLl9wb3BTdGF0ZVJldHVyblVybDtcbiAgfVxuXG4gIGdldFZpc2l0cygpOiBWaXNpdFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl92aXNpdHMudmFsdWVzKCkpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgTmF2aWdhdGlvblNlc3Npb24ge1xuXG4gIGNsYXNzIEV4dGVybmFsIGV4dGVuZHMgTmF2aWdhdGlvblNlc3Npb24ge1xuICAgIHJlYWRvbmx5IGlzRXh0ZXJuYWwgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaXNGaXJzdFRpbWU6IGJvb2xlYW4sIGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHN1cGVyKGlzRmlyc3RUaW1lLCBhcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgY2xhc3MgSW50ZXJuYWwgZXh0ZW5kcyBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgcmVhZG9ubHkgaXNFeHRlcm5hbCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IodmlzaXQ6IFZpc2l0LCBhcHBNb2RlbEludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICBzdXBlcihmYWxzZSwgYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgdGhpcy5zdG9yZVZpc2l0KHZpc2l0KTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgRmFjdG9yeSB7XG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICB9XG5cbiAgICBjcmVhdGVJbnRlcm5hbCh2aXNpdDogVmlzaXQpOiBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgICByZXR1cm4gbmV3IEludGVybmFsKHZpc2l0LCB0aGlzLmludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuXG4gICAgY3JlYXRlRXh0ZXJuYWwoZmlyc3RUaW1lUm91dGU6IGJvb2xlYW4pOiBOYXZpZ2F0aW9uU2Vzc2lvbiB7XG4gICAgICByZXR1cm4gbmV3IEV4dGVybmFsKGZpcnN0VGltZVJvdXRlLCB0aGlzLmludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIENvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIge1xuXG4gICAgcHJpdmF0ZSBhbHJlYWR5QWNjZXB0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IGFwcE1vZGVsSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIHJlYWRvbmx5IHByaW1hcnk6IGJvb2xlYW4pIHtcbiAgICAgIC8vIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY2FuRGVhY3RpdmF0ZShuZXh0U3RhdGU6IFBsYWNlUm91dGVyLlVybEhlbHBlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgY29uc29sZS5sb2coYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfS5jYW5EZWFjdGl2YXRlYCwgeyBjb21wb25lbnQ6IHRoaXMuY29tcG9uZW50IH0pO1xuICAgICAgaWYgKHRoaXMuYWxyZWFkeUFjY2VwdGVkKSB7XG4gICAgICAgIC8vIFdlJ2xsIGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaWYgdGhlcmUncyBhbnkgcGFyYW1ldGVyIHNhbml0aXNhdGlvbiBzb1xuICAgICAgICAvLyB3ZSBhbHdheXMgcmV0dXJuIHRydWUgaWYgd2UgYWNjZXB0ZWQgb24gYSBwcmV2aW91cyBjeWNsZSBvZiB0aGUgY3VycmVudFxuICAgICAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcblxuICAgICAgICBpZiAodGhpcy5wcmltYXJ5ICYmIHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKSkge1xuICAgICAgICAgIC8vIFdlIGNoZWNrIHRoZSBnbG9iYWwgaW50ZXJhY3Rpb24gZmlyc3RcbiAgICAgICAgICBhd2FpdCB0aGlzLmNhbmNlbEN1cnJlbnRBY3Rpdml0eU9mKHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWxyZWFkeUFjY2VwdGVkID0gYXdhaXQgdGhpcy5jYW5EZWFjdGl2YXRlQ29tcG9uZW50KG5leHRTdGF0ZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWxyZWFkeUFjY2VwdGVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBjYW5EZWFjdGl2YXRlQ29tcG9uZW50KG5leHRTdGF0ZTogUGxhY2VSb3V0ZXIuVXJsSGVscGVyKSB7XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGFjdGl2ZSBpbnRlcmFjdGlvbi4gIFRoaXMgd2lsbCBoYW5kbGVcbiAgICAgIC8vIGFuIGlucGxhY2UgaW50ZXJhY3Rpb24gY29udGV4dHNcbiAgICAgIGNvbnN0IGhhc0N1c3RvbUludGVyYWN0aW9uQ29udGV4dCA9IHRoaXMuY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dCAmJlxuICAgICAgICAhdGhpcy5pc0FwcE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0KHRoaXMuY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dCkgJiZcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCk7XG5cbiAgICAgIGlmIChoYXNDdXN0b21JbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jYW5jZWxDdXJyZW50QWN0aXZpdHlPZih0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzTGVhdmluZ0N1cnJlbnRQbGFjZShuZXh0U3RhdGUpICYmIHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUpIHtcbiAgICAgICAgLy8gTm8gaW50ZXJhY3Rpb24gaW4gcHJvZ3Jlc3MsIHNvIGFzayB0aGUgY29tcG9uZW50IC5cbiAgICAgICAgLy8gVGhpcyBtYXkgc3RhcnQgYW4gaW50ZXJhY3Rpb24sIGhlbmNlIGNoZWNraW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGJlZm9yZSBub3cuIEkuZS4gaWYgdGhlIHBsYWNlIHBvcHMgdXAgdGhlIGRpYWxvZywgYW5kXG4gICAgICAgIC8vIHRoZSB1c2VyIGNsaWNrcyBiYWNrIGFnYWluLCB3ZSdsbCByZS1lbnRlciBoZXJlIGFuZCBnbyBiYW5nIHdoZW4gdGhlIGNvbXBvbmVudCB0cmllcyB0byBvcGVuIGFub3RoZXIgZGlhbG9nLlxuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaXNBcHBNb2RhbEludGVyYWN0aW9uQ29udGV4dChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBwTW9kZWxJbnRlcmFjdGlvbkNvbnRleHQgPT09IGludGVyYWN0aW9uQ29udGV4dDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgY2FuY2VsQ3VycmVudEFjdGl2aXR5T2YoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGFjdGl2aXR5ID0gYXdhaXQgaW50ZXJhY3Rpb25Db250ZXh0LmdldEN1cnJlbnRBY3Rpdml0eSgpO1xuICAgICAgY29uc29sZS5sb2coJ2NhbmNlbGxpbmcnLCB7IGFjdGl2aXR5IH0pO1xuICAgICAgYWN0aXZpdHkuY2FuY2VsKG51bGwpO1xuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGlzTGVhdmluZ0N1cnJlbnRQbGFjZShuZXh0U3RhdGU6IFBsYWNlUm91dGVyLlVybEhlbHBlcikge1xuICAgICAgcmV0dXJuICFuZXh0U3RhdGUuaW5jbHVkZXNQYXRoT2YodGhpcy5jb21wb25lbnQucGxhY2VEZWZpbml0aW9uKTtcbiAgICB9XG4gIH1cblxufVxuXG4iXX0=