@elderbyte/ngx-starter 13.7.7 → 13.8.1
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.
- package/esm2020/lib/common/data/data-context/data-context-builder.mjs +4 -3
- package/esm2020/lib/common/templates/template-slot-manager.mjs +34 -6
- package/esm2020/lib/common/utils/filter-util.mjs +11 -2
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +5 -3
- package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +17 -13
- package/esm2020/lib/components/navigation/toolbar/toolbar-column-position.mjs +1 -1
- package/esm2020/lib/components/select/elder-select/elder-select.component.mjs +2 -17
- package/esm2020/lib/components/select/elder-select-base.mjs +2 -1
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +13 -4
- package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
- package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +1 -1
- package/fesm2015/elderbyte-ngx-starter.mjs +122 -83
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +121 -83
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/templates/template-slot-manager.d.ts +13 -1
- package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +13 -10
- package/lib/components/navigation/toolbar/toolbar-column-position.d.ts +9 -1
- package/lib/components/select/elder-select/elder-select.component.d.ts +0 -11
- package/lib/components/select/multi/elder-multi-select-base.d.ts +6 -0
- package/lib/components/shell/shell/elder-shell.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -235,6 +235,7 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
235
235
|
ElderSelectFirstUtil.trySelectFirst(this);
|
|
236
236
|
}
|
|
237
237
|
updateValueByEntity(entity) {
|
|
238
|
+
this._entity$.next(entity);
|
|
238
239
|
this.updateValue(this.entityToValue(entity));
|
|
239
240
|
}
|
|
240
241
|
/***************************************************************************
|
|
@@ -346,22 +347,6 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
346
347
|
}
|
|
347
348
|
super.writeToControl(value);
|
|
348
349
|
}
|
|
349
|
-
/**
|
|
350
|
-
* @description
|
|
351
|
-
* Writes a new value to the element.
|
|
352
|
-
*
|
|
353
|
-
* This method is called by the forms API to write to the view when programmatic
|
|
354
|
-
* changes from model to view are requested.
|
|
355
|
-
*
|
|
356
|
-
* @param value The new value for the element
|
|
357
|
-
*/
|
|
358
|
-
writeValue(value) {
|
|
359
|
-
// this.logger.debug('ElderSelectBase.writeValue(): Current value-id ' + this._valueId + ', new value: ', value);
|
|
360
|
-
super.writeValue(value);
|
|
361
|
-
}
|
|
362
|
-
isNullOrEmpty(value) {
|
|
363
|
-
return (value == null || value === '');
|
|
364
|
-
}
|
|
365
350
|
}
|
|
366
351
|
ElderSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ElderSelectComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
367
352
|
ElderSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: ElderSelectComponent, selector: "elder-select", inputs: { nullDisplay: "nullDisplay", autocomplete: "autocomplete", allowNull: "allowNull", entity: "entity", entityId: "entityId", hintProperty: "hintProperty", hintPropertyResolver: "hintPropertyResolver" }, outputs: { entityIdChange: "entityIdChange", entityIdUpdated: "entityIdUpdated", entityChange: "entityChange", entityUpdated: "entityUpdated" }, providers: [
|
|
@@ -403,4 +388,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
403
388
|
}], hintPropertyResolver: [{
|
|
404
389
|
type: Input
|
|
405
390
|
}] } });
|
|
406
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2VsZGVyLXNlbGVjdC9lbGRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDL0YsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUNMLEdBQUcsRUFDSCxTQUFTLEVBQ1QsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQTZCLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFDbkYsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBRW5ILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFckUsTUFBTSxhQUFh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biAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCwgZm9yd2FyZFJlZixcbiAgSW5wdXQsIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2J1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvdGVtcGxhdGUtY29tcG9zaXRlLWNvbnRyb2wnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCwgc2tpcCwgZmlsdGVyLCBzdGFydFdpdGgsIHdpdGhMYXRlc3RGcm9tLCBzd2l0Y2hNYXAsIHRha2UsIHRpbWVvdXQsIGNhdGNoRXJyb3Jcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZVRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge0VMREVSX1NFTEVDVF9CQVNFLCBFbGRlclNlbGVjdEJhc2UsIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUsIFRleHRSZXNvbHZlckZufSBmcm9tICcuLi9lbGRlci1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0lFbGRlckVudGl0eVZhbHVlQWNjZXNzb3J9IGZyb20gJy4uL2VsZGVyLWVudGl0eS12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQge0VsZGVyU2VsZWN0Rmlyc3RVdGlsfSBmcm9tICcuLi9hdXRvL2VsZGVyLXNlbGVjdC1maXJzdC11dGlsJztcblxuY2xhc3MgRW50aXR5Q29udGV4dDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGludFRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZ1xuICApIHtcbiAgfVxufVxuXG5cbi8qKlxuICogVGhlIGVsZGVyLXNlbGVjdCBjb250cm9sIGFsbG93cyB0byBzZWxlY3QgYSBzaW5nbGVcbiAqIGVudGl0eS5cbiAqXG4gKiBQcmltYXJ5IGZvY3VzIGlzIG9uIGVhc3kgdXNhZ2UgZm9yIGNvbW1vbiBzY2VuYXJpb3M6XG4gKlxuICogLSBJbnRlZ3JhdGVkIGludG8gYW5ndWxhciBmb3JtcyBhbmQgdmFsaWRhdGlvblxuICogLSBTdXBwb3J0IGVudGl0eSBpZCBoYW5kbGluZywgaW5wdXQgLyBvdXRwdXQgaXMgdGhlIGVudGl0eSBpZCB2cyBmdWxsIHZhbHVlLlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRUxERVJfU0VMRUNUX0JBU0UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlclNlbGVjdENvbXBvbmVudClcbiAgICB9LFxuICAgIC4uLmJ1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzKEVsZGVyU2VsZWN0Q29tcG9uZW50KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2VsZWN0Q29tcG9uZW50PFRFbnRpdHkgPSBhbnksIFRJZCA9IGFueSwgVFZhbHVlID0gVEVudGl0eSB8IFRJZD5cbiAgZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+XG4gIGltcGxlbWVudHMgSUVsZGVyRW50aXR5VmFsdWVBY2Nlc3NvcjxURW50aXR5LCBUSWQ+LCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGludFByb3BlcnR5UmVzb2x2ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZXh0UmVzb2x2ZXJGbj4oKHZhbHVlOiBURW50aXR5KSA9PiBudWxsKTtcblxuICBwcml2YXRlIF9hbGxvd051bGwgPSBmYWxzZTtcblxuICAvKipcbiAgICogU3RyaW5nIHRvIGRpc3BsYXkgZm9yIHRoZSAnbm90aGluZycgLyBudWxsIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG51bGxEaXNwbGF5ID0gJy0nO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5SWRDaGFuZ2U6IE9ic2VydmFibGU8VElkPjtcblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHktaWQgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5SWRVcGRhdGVkOiBPYnNlcnZhYmxlPFRJZD47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlDaGFuZ2U6IE9ic2VydmFibGU8VEVudGl0eT47XG5cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gZW50aXR5IGNoYW5nZSwgYnV0IGVtaXRzIG9ubHkgd2hlbiB0aGUgdXNlclxuICAgKiBoYXMgdXBkYXRlZCB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eVVwZGF0ZWQ6IE9ic2VydmFibGU8VEVudGl0eT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW50aXR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VEVudGl0eT4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIF9hdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5V3JhcHBlZCQ6IE9ic2VydmFibGU8RW50aXR5Q29udGV4dDxURW50aXR5Pj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dFRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHJpdmF0ZSBlbnRpdHlDb250ZXh0OiBFbnRpdHlDb250ZXh0PFRFbnRpdHk+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgc3VwZXIoem9uZSk7XG5cbiAgICB0aGlzLmVudGl0eUlkQ2hhbmdlID0gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZSh2KSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdHlDaGFuZ2UgPSB0aGlzLl9lbnRpdHkkLnBpcGUoXG4gICAgICBza2lwKDEpIC8vIFNraXAgdGhlIGluaXRpYWwgb3IgY3VycmVudCB2YWx1ZVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0eUlkVXBkYXRlZCA9IHRoaXMudmFsdWVVcGRhdGVkLnBpcGUoXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZSh2YWx1ZSkpXG4gICAgKTtcblxuICAgIHRoaXMuZW50aXR5VXBkYXRlZCA9IHRoaXMuZW50aXR5SWRVcGRhdGVkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZW50aXR5SWQgPT4gdGhpcy5hd2FpdEVudGl0eVdpdGhJZChlbnRpdHlJZCwgdGhpcy50aW1lb3V0QWZ0ZXJNcykpLFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBhd2FpdEVudGl0eVdpdGhJZCAtPiB0aW1lZCBvdXQgYWZ0ZXI6ICR7dGhpcy50aW1lb3V0QWZ0ZXJNc31gLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0eVdyYXBwZWQkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5fZW50aXR5JCxcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciQsXG4gICAgICAgIHRoaXMuaGludFByb3BlcnR5UmVzb2x2ZXIkXG4gICAgICBdXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWUsIGRQUiwgaFBSXSkgPT4gbmV3IEVudGl0eUNvbnRleHQ8VEVudGl0eT4odmFsdWUsIGhQUih2YWx1ZSksIGRQUih2YWx1ZSkpKVxuICAgICk7XG5cbiAgICB0aGlzLmlucHV0VGV4dCQgPSB0aGlzLmVudGl0eVdyYXBwZWQkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgdGFwKHZhbHVlQ29udGV4dCA9PiB0aGlzLmVudGl0eUNvbnRleHQgPSB2YWx1ZUNvbnRleHQpLFxuICAgICAgbWFwKHZhbHVlQ29udGV4dCA9PiB7XG4gICAgICAgIGlmICh2YWx1ZUNvbnRleHQudmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWVDb250ZXh0LmRpc3BsYXlUZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB0aGlzLmF1dG9DbGVhblVwKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQmVoYXZpb3VyIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGF1dG9jb21wbGV0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF1dG9jb21wbGV0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgJ25vdGhpbmcnIC8gbnVsbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxsb3dOdWxsKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX2FsbG93TnVsbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWwpO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGxvd051bGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93TnVsbDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KGVudGl0eTogVEVudGl0eSkge1xuICAgIHRoaXMuX2VudGl0eSQubmV4dChlbnRpdHkpO1xuICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKFxuICAgICAgdGhpcy5lbnRpdHlUb1ZhbHVlKGVudGl0eSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHkoKTogVEVudGl0eSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGVudGl0eSBhcyBvYnNlcnZhYmxlIHN0cmVhbS4gKEJlaGF2aW91clN1YmplY3QpXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVudGl0eSQoKTogT2JzZXJ2YWJsZTxURW50aXR5PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eUlkKGlkOiBUSWQpIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKDxhbnk+aWQgYXMgVFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdHlCeUlkKGlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0eUlkKCk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhpbnRQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5oaW50UHJvcGVydHlSZXNvbHZlciA9ICh2YWx1ZSA9PiB0aGlzLnByb3BlcnR5U3RyaW5nVmFsdWUodmFsdWUsIHByb3BlcnR5KSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhpbnRQcm9wZXJ0eVJlc29sdmVyKHJlc29sdmVyOiBUZXh0UmVzb2x2ZXJGbikge1xuICAgIHRoaXMuaGludFByb3BlcnR5UmVzb2x2ZXIkLm5leHQocmVzb2x2ZXIpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uSW5wdXRCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAodGhpcy5lbnRpdHlDb250ZXh0LnZhbHVlKSB7XG4gICAgICBpbnB1dC52YWx1ZSA9IHRoaXMuZW50aXR5Q29udGV4dC5kaXNwbGF5VGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXQudmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0VudGl0eVNlbGVjdGVkKG9wdGlvbikpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKG9wdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBpc09wdGlvbkhpZGRlbkludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3B0aW9uSGlkZGVuRm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25IaWRkZW5GbihvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuXG4gIHB1YmxpYyB0b2dnbGVQYW5lbChhdXRvVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xuICAgIGlmIChhdXRvVHJpZ2dlci5hdXRvY29tcGxldGUuaXNPcGVuKSB7XG4gICAgICBhdXRvVHJpZ2dlci5jbG9zZVBhbmVsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdSZXF1ZXN0aW5nIHRvIG9wZW4gYXV0by1jb21wbGV0ZSBwYW5lbC4uLicsIGF1dG9UcmlnZ2VyKTtcbiAgICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25zRGMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zRGMuc3RhcnQodGhpcy5zb3J0cywgdGhpcy5maWx0ZXJzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEQyEnLCBlcnIpO1xuICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihlcnIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXV0b1RyaWdnZXIub3BlblBhbmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXRDbGlja2VkKGF1dG9UcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyKTogdm9pZCB7XG5cbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1Zygnb25JbnB1dENsaWNrZWQsIGxvY2tlZDogJyArIHRoaXMuaXNMb2NrZWQgKyAnLCBhdXRvY29tcGxldGU6ICcgKyB0aGlzLmF1dG9jb21wbGV0ZSwgYXV0b1RyaWdnZXIpO1xuICAgIGlmICh0aGlzLmlzTG9ja2VkIHx8IHRoaXMuYXV0b2NvbXBsZXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlUGFuZWwoYXV0b1RyaWdnZXIpO1xuICB9XG5cbiAgcHVibGljIG9uT3B0aW9uU2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRW50aXR5U2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZSkpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKG51bGwpOyAvLyBIQUNLOiBFbnN1cmUgd2UgdHJpZ2dlciB2aWV3IHJlZHJhd1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdHkoc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3BlblNlbGVjdGlvblBvcHVwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblBvcHVwKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblBvcHVwLmNob29zZShcbiAgICAgICAgdGhpcy5maWx0ZXJzLFxuICAgICAgICB0aGlzLnNvcnRzXG4gICAgICApLnN1YnNjcmliZShcbiAgICAgICAgKHNlbGVjdGlvbjogVEVudGl0eVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXR5KHNlbGVjdGlvblswXSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0NhbnQgb3BlbiBzZWxlY3Rpb24gYnJvd3NlciBwb3B1cCwgc2luY2UgW1NlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmVdIHdhcyBub3QgZm91bmQhJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZm9yY2VSZWxvYWRGaXJzdCgpIHtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDsgLy8gdmFsdWVJZCBpcyBzZXQgdG8gbnVsbCBhdXRvbWF0aWNhbGx5XG4gICAgRWxkZXJTZWxlY3RGaXJzdFV0aWwudHJ5U2VsZWN0Rmlyc3QodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmFsdWVCeUVudGl0eShlbnRpdHk6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgdGhpcy5lbnRpdHlUb1ZhbHVlKGVudGl0eSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IEltcGxlbWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBzdWdnZXN0aW9ucyBkYXRhLWNvbnRleHQgaGFzIGNoYW5nZWRcbiAgICovXG4gIHByb3RlY3RlZCBvblN1Z2dlc3Rpb25zRGNDaGFuZ2VkKGRhdGE6IElEYXRhQ29udGV4dDxURW50aXR5Pik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdHlCeUlkKHRoaXMuZW50aXR5SWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCB2YWx1ZXNFcXVhbHMoYTogVFZhbHVlLCBiOiBUVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZShhKSA9PT0gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZShiKTtcbiAgfVxuXG4gIHByaXZhdGUgYXdhaXRFbnRpdHlXaXRoSWQoZW50aXR5SWQ6IFRJZCwgdGltZW91dE1zOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRFbnRpdHk+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgICBmaWx0ZXIoZW50aXR5ID0+IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KSA9PT0gZW50aXR5SWQpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHRpbWVvdXQodGltZW91dE1zKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzRW50aXR5U2VsZWN0ZWQoZW50aXR5OiBURW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KSA9PT0gdGhpcy5lbnRpdHlJZDtcbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5SWRGcm9tVmFsdWUodmFsdWU6IFRWYWx1ZSk6IFRJZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICByZXR1cm4gPGFueT52YWx1ZSBhcyBUSWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5O1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEVudGl0eUJ5SWQoaWQ6IFRJZCk6IHZvaWQge1xuXG4gICAgY29uc3QgY3VycmVudEVudGl0eSA9IHRoaXMuZW50aXR5O1xuICAgIGlmIChjdXJyZW50RW50aXR5ICYmIHRoaXMuZ2V0RW50aXR5SWQoY3VycmVudEVudGl0eSkgPT09IGlkKSB7XG4gICAgICByZXR1cm47IC8vIEVudGl0eSBhbHJlYWR5IGxvYWRlZFxuICAgIH1cblxuICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoY3VycmVudEVudGl0eSAhPT0gbnVsbCAmJiBjdXJyZW50RW50aXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5lbnRpdHkgPSBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zdWdnZXN0aW9uc0RjKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5maW5kSW5EYXRhQ29udGV4dChpZCk7XG4gICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgIHRoaXMuZW50aXR5ID0gZXhpc3Rpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkRW50aXR5QnlJZChpZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byBzZWxlY3QgdmFsdWUgYnkgSWQ6ICcgKyBpZCArICcgLSBEYXRhQ29udGV4dCBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEVudGl0eUJ5SWQoaWQ6IFRJZCk6IHZvaWQge1xuICAgIHRoaXMuc3VnZ2VzdGlvbnNEYy5kYXRhU291cmNlLmZpbmRCeUlkKDxhbnk+aWQpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBlbnRpdHkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkZWQgbWlzc2luZyBlbnRpdHkgYnkgaWQgJyArIGlkICsgJzonLCBlbnRpdHkpO1xuICAgICAgICAgIHRoaXMuZW50aXR5ID0gZW50aXR5O1xuICAgICAgICB9LFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBlbnRpdHkgYnkgaWQgJyArIGlkLCBlcnIpO1xuICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihlcnIpKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEluRGF0YUNvbnRleHQoaWQ6IFRJZCk6IFRFbnRpdHkgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zdWdnZXN0aW9uc0RjLnNuYXBzaG90LmRhdGFcbiAgICAgIC5maW5kKHYgPT4gdGhpcy5nZXRFbnRpdHlJZCh2KSA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICAgIHJldHVybiA8YW55PmlkIGFzIFRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxhbnk+ZW50aXR5IGFzIFRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgaW52b2tlZCBhZnRlciBhIHZhbHVlIGhhcyBiZWVuIHdyaXR0ZW4gdG8gdGhpcyBjb250cm9sLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIHdyaXRlVG9Db250cm9sKHZhbHVlOiBUVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eUlkID0gPGFueT52YWx1ZSBhcyBUSWQ7XG4gICAgICAvLyBWYWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHkgaWQsIGVuc3VyZSB3ZSBzZWxlY3QgZW50aXR5IGJ5IGlkXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGlkOiAnICsgZW50aXR5SWQsIHZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXR5QnlJZChlbnRpdHlJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSwgZW5zdXJlIGVudGl0eSBpcyB1cGRhdGVkXG4gICAgICBjb25zdCBjdXJyZW50RW50aXR5ID0gdGhpcy5lbnRpdHk7XG4gICAgICBjb25zdCBuZXdFbnRpdHkgPSA8YW55PnZhbHVlIGFzIFRFbnRpdHk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eTogJyArIEpTT04uc3RyaW5naWZ5KG5ld0VudGl0eSksIHZhbHVlKTtcbiAgICAgIGlmICghdGhpcy5pc0VxdWFsKGN1cnJlbnRFbnRpdHksIG5ld0VudGl0eSkpIHtcbiAgICAgICAgdGhpcy5fZW50aXR5JC5uZXh0KG5ld0VudGl0eSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdJZ25vcmVkIHdyaXR0ZW4gZW50aXR5IGFzIGl0IGlzIGFscmVhZHkgc2V0IHRvIGVudGl0eSQhJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLndyaXRlVG9Db250cm9sKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBlbGVtZW50LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIGZvcm1zIEFQSSB0byB3cml0ZSB0byB0aGUgdmlldyB3aGVuIHByb2dyYW1tYXRpY1xuICAgKiBjaGFuZ2VzIGZyb20gbW9kZWwgdG8gdmlldyBhcmUgcmVxdWVzdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBUVmFsdWUpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRWxkZXJTZWxlY3RCYXNlLndyaXRlVmFsdWUoKTogQ3VycmVudCB2YWx1ZS1pZCAnICsgdGhpcy5fdmFsdWVJZCArICcsIG5ldyB2YWx1ZTogJywgdmFsdWUpO1xuICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc051bGxPckVtcHR5KHZhbHVlOiBUVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHZhbHVlID09IG51bGwgfHwgKDxhbnk+dmFsdWUpID09PSAnJyk7XG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiKGVudGl0eVdyYXBwZWQkIHwgYXN5bmMpIGFzIGVudGl0eVdyYXBwZXJcIiBmeEZsZXhcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLXN0ZC1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuPlxuXG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuXG5cbiAgPG5nLWNvbnRhaW5lciBtYXRQcmVmaXggKm5nSWY9XCIobWVyZ2VkU3RhdGUkIHwgYXN5bmMpIGFzIHN0YXRlXCI+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCIgZGlzYWJsZWRcbiAgICAgICAgICAgICAgY2xhc3M9XCJsZWFkaW5nLWljb24gcHJlZml4LXBhZGRpbmcgbm9zZWxlY3RcIlxuICAgICAgICAgICAgICBbY2xhc3MubG9hZGluZ109XCJzdGF0ZS5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cInN0YXRlPy5lcnJvciA/ICd3YXJuJyA6IGNvbG9yXCI+XG4gICAgICB7e2ljb259fVxuICAgIDwvbWF0LWljb24+XG5cblxuICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFpY29uICYmIHN0YXRlPy5lcnJvclwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibGVhZGluZy1pY29uIHByZWZpeC1wYWRkaW5nIG5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCI+XG4gICAgICB3YXJuaW5nXG4gICAgPC9tYXQtaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBBIGR5bmFtaWMgaW5wdXQgLS0+XG4gIDxpbnB1dFxuICAgIG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgZnhGbGV4PVwiZ3Jvd1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCAhYXV0b2NvbXBsZXRlXCJcbiAgICBbbmFtZV09XCJuYW1lICsgJy1pbm5lci1pbnB1dCdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgW21hdEF1dG9jb21wbGV0ZV0gI2F1dG9UcmlnZ2VyPVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiXG4gICAgW2VsZGVyRWxkZXJBdXRvY29tcGxldGVdPVwiZWxkZXJBdXRvXCIgW3F1ZXJ5RmlsdGVyXT1cInF1ZXJ5RmlsdGVyXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIFtzb3J0c109XCJzb3J0c1wiXG4gICAgZWxkZXJTZWxlY3RPblRhYlxuICAgIFtjbGFzcy5zZWxlY3RdPVwiIWF1dG9jb21wbGV0ZVwiIChjbGljayk9XCJvbklucHV0Q2xpY2tlZChhdXRvVHJpZ2dlcilcIlxuICAgIFtuZ01vZGVsXT1cImlucHV0VGV4dCQgfCBhc3luY1wiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZSwgdXBkYXRlT246ICdzdWJtaXQnfVwiXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gID5cblxuICA8IS0tIFRoaXMgYnJlYWtzIHN0dWZmOiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkIHwgYXN5bmNcIiAtLT5cblxuICA8ZWxkZXItYXV0b2NvbXBsZXRlXG4gICAgI2VsZGVyQXV0bz1cImVsZGVyQXV0b2NvbXBsZXRlXCJcbiAgICBbc3VnZ2VzdGlvbnNEY109XCJzdWdnZXN0aW9uc0RjJCB8IGFzeW5jXCJcbiAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICBbZW5hYmxlZF09XCJhdXRvY29tcGxldGVcIlxuICAgIFtkaXNwbGF5UHJvcGVydHlSZXNvbHZlcl09XCJkaXNwbGF5UHJvcGVydHlSZXNvbHZlciQgfCBhc3luY1wiXG4gICAgW2lzT3B0aW9uRGlzYWJsZWRGbl09XCJpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGblwiXG4gICAgW2lzT3B0aW9uSGlkZGVuRm5dPVwiaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuXCJcbiAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25PcHRpb25TZWxlY3RlZCgkYW55KCRldmVudCkpXCJcbiAgPjwvZWxkZXItYXV0b2NvbXBsZXRlPlxuXG5cbiAgPG5nLWNvbnRhaW5lciBtYXRTdWZmaXg+XG5cbiAgICA8bWF0LWljb25cbiAgICAgICpuZ0lmPVwiIWF1dG9jb21wbGV0ZVwiIGNsYXNzPVwic2VsZWN0LWFycm93IG5vc2VsZWN0XCJcbiAgICAgIChjbGljayk9XCJvbklucHV0Q2xpY2tlZChhdXRvVHJpZ2dlcilcIj5cbiAgICAgIGFycm93X2Ryb3BfZG93blxuICAgIDwvbWF0LWljb24+XG5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uUG9wdXAgJiYgKCFlbnRpdHlXcmFwcGVyLnZhbHVlIHx8ICFhbGxvd051bGwpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblNlbGVjdGlvblBvcHVwKCRldmVudClcIiBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICAgIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cImVudGl0eVdyYXBwZXIudmFsdWUgJiYgYWxsb3dOdWxsXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJDbGVhclwiXG4gICAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxtYXQtaGludCAqbmdJZj1cImVudGl0eVdyYXBwZXIuaGludFRleHRcIj57e2VudGl0eVdyYXBwZXIuaGludFRleHR9fTwvbWF0LWhpbnQ+XG5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cblxuXG4iXX0=
|
|
391
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2VsZGVyLXNlbGVjdC9lbGRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDL0YsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUNMLEdBQUcsRUFDSCxTQUFTLEVBQ1QsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQTZCLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFDbkYsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBRW5ILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFckUsTUFBTSxhQUFh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SUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseURBQXlELENBQUMsQ0FBQzthQUM3RTtTQUNGO1FBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOztpSEF2YVUsb0JBQW9CO3FHQUFwQixvQkFBb0IsMFlBUnBCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7U0FDcEQ7UUFDRCxHQUFHLDZCQUE2QixDQUFDLG9CQUFvQixDQUFDO0tBQ3ZELGlEQ3RESCwyL0ZBNkZBOzJGRHJDYSxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDO3lCQUNwRDt3QkFDRCxHQUFHLDZCQUE2QixzQkFBc0I7cUJBQ3ZEOzZGQXNCTSxXQUFXO3NCQURqQixLQUFLO2dCQUlVLGNBQWM7c0JBRDdCLE1BQU07Z0JBUVMsZUFBZTtzQkFEOUIsTUFBTTtnQkFJUyxZQUFZO3NCQUQzQixNQUFNO2dCQVFTLGFBQWE7c0JBRDVCLE1BQU07Z0JBNEZJLFlBQVk7c0JBRHRCLEtBQUs7Z0JBYUssU0FBUztzQkFEbkIsS0FBSztnQkFnQkssTUFBTTtzQkFEaEIsS0FBSztnQkFvQkssUUFBUTtzQkFEbEIsS0FBSztnQkFjSyxZQUFZO3NCQUR0QixLQUFLO2dCQU1LLG9CQUFvQjtzQkFEOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIGZvcndhcmRSZWYsXG4gIElucHV0LCBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVyc30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL3RlbXBsYXRlLWNvbXBvc2l0ZS1jb250cm9sJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtJRGF0YUNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIG1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsIHNraXAsIGZpbHRlciwgc3RhcnRXaXRoLCB3aXRoTGF0ZXN0RnJvbSwgc3dpdGNoTWFwLCB0YWtlLCB0aW1lb3V0LCBjYXRjaEVycm9yXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVUcmlnZ2VyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtFTERFUl9TRUxFQ1RfQkFTRSwgRWxkZXJTZWxlY3RCYXNlLCBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLCBUZXh0UmVzb2x2ZXJGbn0gZnJvbSAnLi4vZWxkZXItc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtJRWxkZXJFbnRpdHlWYWx1ZUFjY2Vzc29yfSBmcm9tICcuLi9lbGRlci1lbnRpdHktdmFsdWUtYWNjZXNzb3InO1xuaW1wb3J0IHtFbGRlclNlbGVjdEZpcnN0VXRpbH0gZnJvbSAnLi4vYXV0by9lbGRlci1zZWxlY3QtZmlyc3QtdXRpbCc7XG5cbmNsYXNzIEVudGl0eUNvbnRleHQ8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IGhpbnRUZXh0OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlUZXh0OiBzdHJpbmdcbiAgKSB7XG4gIH1cbn1cblxuXG4vKipcbiAqIFRoZSBlbGRlci1zZWxlY3QgY29udHJvbCBhbGxvd3MgdG8gc2VsZWN0IGEgc2luZ2xlXG4gKiBlbnRpdHkuXG4gKlxuICogUHJpbWFyeSBmb2N1cyBpcyBvbiBlYXN5IHVzYWdlIGZvciBjb21tb24gc2NlbmFyaW9zOlxuICpcbiAqIC0gSW50ZWdyYXRlZCBpbnRvIGFuZ3VsYXIgZm9ybXMgYW5kIHZhbGlkYXRpb25cbiAqIC0gU3VwcG9ydCBlbnRpdHkgaWQgaGFuZGxpbmcsIGlucHV0IC8gb3V0cHV0IGlzIHRoZSBlbnRpdHkgaWQgdnMgZnVsbCB2YWx1ZS5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX1NFTEVDVF9CQVNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWxkZXJTZWxlY3RDb21wb25lbnQpXG4gICAgfSxcbiAgICAuLi5idWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVycyhFbGRlclNlbGVjdENvbXBvbmVudClcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlbGVjdENvbXBvbmVudDxURW50aXR5ID0gYW55LCBUSWQgPSBhbnksIFRWYWx1ZSA9IFRFbnRpdHkgfCBUSWQ+XG4gIGV4dGVuZHMgRWxkZXJTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlPlxuICBpbXBsZW1lbnRzIElFbGRlckVudGl0eVZhbHVlQWNjZXNzb3I8VEVudGl0eSwgVElkPiwgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGhpbnRQcm9wZXJ0eVJlc29sdmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGV4dFJlc29sdmVyRm4+KCh2YWx1ZTogVEVudGl0eSkgPT4gbnVsbCk7XG5cbiAgcHJpdmF0ZSBfYWxsb3dOdWxsID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFN0cmluZyB0byBkaXNwbGF5IGZvciB0aGUgJ25vdGhpbmcnIC8gbnVsbCB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBudWxsRGlzcGxheSA9ICctJztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkQ2hhbmdlOiBPYnNlcnZhYmxlPFRJZD47XG5cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gZW50aXR5LWlkIGNoYW5nZSwgYnV0IGVtaXRzIG9ubHkgd2hlbiB0aGUgdXNlclxuICAgKiBoYXMgdXBkYXRlZCB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkVXBkYXRlZDogT2JzZXJ2YWJsZTxUSWQ+O1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5Q2hhbmdlOiBPYnNlcnZhYmxlPFRFbnRpdHk+O1xuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGVudGl0eSBjaGFuZ2UsIGJ1dCBlbWl0cyBvbmx5IHdoZW4gdGhlIHVzZXJcbiAgICogaGFzIHVwZGF0ZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlVcGRhdGVkOiBPYnNlcnZhYmxlPFRFbnRpdHk+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRFbnRpdHk+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBfYXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eVdyYXBwZWQkOiBPYnNlcnZhYmxlPEVudGl0eUNvbnRleHQ8VEVudGl0eT4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRUZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHByaXZhdGUgZW50aXR5Q29udGV4dDogRW50aXR5Q29udGV4dDxURW50aXR5PjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICB6b25lOiBOZ1pvbmUsXG4gICkge1xuICAgIHN1cGVyKHpvbmUpO1xuXG4gICAgdGhpcy5lbnRpdHlJZENoYW5nZSA9IHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcCh2ID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodikpXG4gICAgKTtcblxuICAgIHRoaXMuZW50aXR5Q2hhbmdlID0gdGhpcy5fZW50aXR5JC5waXBlKFxuICAgICAgc2tpcCgxKSAvLyBTa2lwIHRoZSBpbml0aWFsIG9yIGN1cnJlbnQgdmFsdWVcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdHlJZFVwZGF0ZWQgPSB0aGlzLnZhbHVlVXBkYXRlZC5waXBlKFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodmFsdWUpKVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0eVVwZGF0ZWQgPSB0aGlzLmVudGl0eUlkVXBkYXRlZC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGVudGl0eUlkID0+IHRoaXMuYXdhaXRFbnRpdHlXaXRoSWQoZW50aXR5SWQsIHRoaXMudGltZW91dEFmdGVyTXMpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihgYXdhaXRFbnRpdHlXaXRoSWQgLT4gdGltZWQgb3V0IGFmdGVyOiAke3RoaXMudGltZW91dEFmdGVyTXN9YCwgZXJyKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdHlXcmFwcGVkJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuX2VudGl0eSQsXG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLFxuICAgICAgICB0aGlzLmhpbnRQcm9wZXJ0eVJlc29sdmVyJFxuICAgICAgXVxuICAgICkucGlwZShcbiAgICAgIG1hcCgoW3ZhbHVlLCBkUFIsIGhQUl0pID0+IG5ldyBFbnRpdHlDb250ZXh0PFRFbnRpdHk+KHZhbHVlLCBoUFIodmFsdWUpLCBkUFIodmFsdWUpKSlcbiAgICApO1xuXG4gICAgdGhpcy5pbnB1dFRleHQkID0gdGhpcy5lbnRpdHlXcmFwcGVkJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgIHRhcCh2YWx1ZUNvbnRleHQgPT4gdGhpcy5lbnRpdHlDb250ZXh0ID0gdmFsdWVDb250ZXh0KSxcbiAgICAgIG1hcCh2YWx1ZUNvbnRleHQgPT4ge1xuICAgICAgICBpZiAodmFsdWVDb250ZXh0LnZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlQ29udGV4dC5kaXNwbGF5VGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEJlaGF2aW91ciBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhdXRvY29tcGxldGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hdXRvY29tcGxldGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBhdXRvY29tcGxldGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9jb21wbGV0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0ICdub3RoaW5nJyAvIG51bGwuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFsbG93TnVsbCh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hbGxvd051bGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxsb3dOdWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hbGxvd051bGw7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eShlbnRpdHk6IFRFbnRpdHkpIHtcbiAgICB0aGlzLl9lbnRpdHkkLm5leHQoZW50aXR5KTtcbiAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChcbiAgICAgIHRoaXMuZW50aXR5VG9WYWx1ZShlbnRpdHkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5KCk6IFRFbnRpdHkge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBlbnRpdHkgYXMgb2JzZXJ2YWJsZSBzdHJlYW0uIChCZWhhdmlvdXJTdWJqZWN0KVxuICAgKi9cbiAgcHVibGljIGdldCBlbnRpdHkkKCk6IE9ic2VydmFibGU8VEVudGl0eT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHlJZChpZDogVElkKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbCg8YW55PmlkIGFzIFRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXR5QnlJZChpZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZCgpOiBUSWQge1xuICAgIHJldHVybiB0aGlzLmVudGl0eUlkRnJvbVZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBoaW50UHJvcGVydHkocHJvcGVydHk6IHN0cmluZykge1xuICAgIHRoaXMuaGludFByb3BlcnR5UmVzb2x2ZXIgPSAodmFsdWUgPT4gdGhpcy5wcm9wZXJ0eVN0cmluZ1ZhbHVlKHZhbHVlLCBwcm9wZXJ0eSkpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBoaW50UHJvcGVydHlSZXNvbHZlcihyZXNvbHZlcjogVGV4dFJlc29sdmVyRm4pIHtcbiAgICB0aGlzLmhpbnRQcm9wZXJ0eVJlc29sdmVyJC5uZXh0KHJlc29sdmVyKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbklucHV0Qmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuZW50aXR5Q29udGV4dC52YWx1ZSkge1xuICAgICAgaW5wdXQudmFsdWUgPSB0aGlzLmVudGl0eUNvbnRleHQuZGlzcGxheVRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0LnZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNFbnRpdHlTZWxlY3RlZChvcHRpb24pKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbihvcHRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkhpZGRlbkZuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uSGlkZGVuRm4ob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cblxuICBwdWJsaWMgdG9nZ2xlUGFuZWwoYXV0b1RyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpOiB2b2lkIHtcbiAgICBpZiAoYXV0b1RyaWdnZXIuYXV0b2NvbXBsZXRlLmlzT3Blbikge1xuICAgICAgYXV0b1RyaWdnZXIuY2xvc2VQYW5lbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnUmVxdWVzdGluZyB0byBvcGVuIGF1dG8tY29tcGxldGUgcGFuZWwuLi4nLCBhdXRvVHJpZ2dlcik7XG4gICAgICBpZiAodGhpcy5zdWdnZXN0aW9uc0RjKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5zdWdnZXN0aW9uc0RjLnN0YXJ0KHRoaXMuc29ydHMsIHRoaXMuZmlsdGVycyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgREMhJywgZXJyKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZXJyKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF1dG9UcmlnZ2VyLm9wZW5QYW5lbCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Q2xpY2tlZChhdXRvVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xuXG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ29uSW5wdXRDbGlja2VkLCBsb2NrZWQ6ICcgKyB0aGlzLmlzTG9ja2VkICsgJywgYXV0b2NvbXBsZXRlOiAnICsgdGhpcy5hdXRvY29tcGxldGUsIGF1dG9UcmlnZ2VyKTtcbiAgICBpZiAodGhpcy5pc0xvY2tlZCB8fCB0aGlzLmF1dG9jb21wbGV0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZVBhbmVsKGF1dG9UcmlnZ2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk9wdGlvblNlbGVjdGVkKHNlbGVjdGVkVmFsdWU6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0VudGl0eVNlbGVjdGVkKHNlbGVjdGVkVmFsdWUpKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChudWxsKTsgLy8gSEFDSzogRW5zdXJlIHdlIHRyaWdnZXIgdmlldyByZWRyYXdcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXR5KHNlbGVjdGVkVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG9wZW5TZWxlY3Rpb25Qb3B1cChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Qb3B1cCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Qb3B1cC5jaG9vc2UoXG4gICAgICAgIHRoaXMuZmlsdGVycyxcbiAgICAgICAgdGhpcy5zb3J0c1xuICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgIChzZWxlY3Rpb246IFRFbnRpdHlbXSkgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVCeUVudGl0eShzZWxlY3Rpb25bMF0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdDYW50IG9wZW4gc2VsZWN0aW9uIGJyb3dzZXIgcG9wdXAsIHNpbmNlIFtTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlXSB3YXMgbm90IGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICB9XG5cbiAgcHVibGljIGZvcmNlUmVsb2FkRmlyc3QoKSB7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7IC8vIHZhbHVlSWQgaXMgc2V0IHRvIG51bGwgYXV0b21hdGljYWxseVxuICAgIEVsZGVyU2VsZWN0Rmlyc3RVdGlsLnRyeVNlbGVjdEZpcnN0KHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlQnlFbnRpdHkoZW50aXR5OiBURW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy5fZW50aXR5JC5uZXh0KGVudGl0eSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIHRoaXMuZW50aXR5VG9WYWx1ZShlbnRpdHkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBYnN0cmFjdCBJbXBsZW1lbnRhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc3VnZ2VzdGlvbnMgZGF0YS1jb250ZXh0IGhhcyBjaGFuZ2VkXG4gICAqL1xuICBwcm90ZWN0ZWQgb25TdWdnZXN0aW9uc0RjQ2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXR5QnlJZCh0aGlzLmVudGl0eUlkKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IFRWYWx1ZSwgYjogVFZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5SWRGcm9tVmFsdWUoYSkgPT09IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUoYik7XG4gIH1cblxuICBwcml2YXRlIGF3YWl0RW50aXR5V2l0aElkKGVudGl0eUlkOiBUSWQsIHRpbWVvdXRNczogbnVtYmVyKTogT2JzZXJ2YWJsZTxURW50aXR5PiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5JC5waXBlKFxuICAgICAgZmlsdGVyKGVudGl0eSA9PiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSkgPT09IGVudGl0eUlkKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0aW1lb3V0KHRpbWVvdXRNcylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VudGl0eVNlbGVjdGVkKGVudGl0eTogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSkgPT09IHRoaXMuZW50aXR5SWQ7XG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkRnJvbVZhbHVlKHZhbHVlOiBUVmFsdWUpOiBUSWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgcmV0dXJuIDxhbnk+dmFsdWUgYXMgVElkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSAoPGFueT52YWx1ZSkgYXMgVEVudGl0eTtcbiAgICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdHlCeUlkKGlkOiBUSWQpOiB2b2lkIHtcblxuICAgIGNvbnN0IGN1cnJlbnRFbnRpdHkgPSB0aGlzLmVudGl0eTtcbiAgICBpZiAoY3VycmVudEVudGl0eSAmJiB0aGlzLmdldEVudGl0eUlkKGN1cnJlbnRFbnRpdHkpID09PSBpZCkge1xuICAgICAgcmV0dXJuOyAvLyBFbnRpdHkgYWxyZWFkeSBsb2FkZWRcbiAgICB9XG5cbiAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGN1cnJlbnRFbnRpdHkgIT09IG51bGwgJiYgY3VycmVudEVudGl0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuZW50aXR5ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnNEYykge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuZmluZEluRGF0YUNvbnRleHQoaWQpO1xuICAgICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgICB0aGlzLmVudGl0eSA9IGV4aXN0aW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9hZEVudGl0eUJ5SWQoaWQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gc2VsZWN0IHZhbHVlIGJ5IElkOiAnICsgaWQgKyAnIC0gRGF0YUNvbnRleHQgbm90IGF2YWlsYWJsZS4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFbnRpdHlCeUlkKGlkOiBUSWQpOiB2b2lkIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zRGMuZGF0YVNvdXJjZS5maW5kQnlJZCg8YW55PmlkKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgZW50aXR5ID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTG9hZGVkIG1pc3NpbmcgZW50aXR5IGJ5IGlkICcgKyBpZCArICc6JywgZW50aXR5KTtcbiAgICAgICAgICB0aGlzLmVudGl0eSA9IGVudGl0eTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIGxvYWQgZW50aXR5IGJ5IGlkICcgKyBpZCwgZXJyKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZXJyKSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRJbkRhdGFDb250ZXh0KGlkOiBUSWQpOiBURW50aXR5IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc3VnZ2VzdGlvbnNEYy5zbmFwc2hvdC5kYXRhXG4gICAgICAuZmluZCh2ID0+IHRoaXMuZ2V0RW50aXR5SWQodikgPT09IGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5VG9WYWx1ZShlbnRpdHk6IFRFbnRpdHkpOiBUVmFsdWUge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgY29uc3QgaWQgPSB0aGlzLmdldEVudGl0eUlkKGVudGl0eSk7XG4gICAgICByZXR1cm4gPGFueT5pZCBhcyBUVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8YW55PmVudGl0eSBhcyBUVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYWZ0ZXIgYSB2YWx1ZSBoYXMgYmVlbiB3cml0dGVuIHRvIHRoaXMgY29udHJvbC5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCB3cml0ZVRvQ29udHJvbCh2YWx1ZTogVFZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBlbnRpdHlJZCA9IDxhbnk+dmFsdWUgYXMgVElkO1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5IGlkLCBlbnN1cmUgd2Ugc2VsZWN0IGVudGl0eSBieSBpZFxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBpZDogJyArIGVudGl0eUlkLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0eUJ5SWQoZW50aXR5SWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBWYWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHksIGVuc3VyZSBlbnRpdHkgaXMgdXBkYXRlZFxuICAgICAgY29uc3QgY3VycmVudEVudGl0eSA9IHRoaXMuZW50aXR5O1xuICAgICAgY29uc3QgbmV3RW50aXR5ID0gPGFueT52YWx1ZSBhcyBURW50aXR5O1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHk6ICcgKyBKU09OLnN0cmluZ2lmeShuZXdFbnRpdHkpLCB2YWx1ZSk7XG4gICAgICBpZiAoIXRoaXMuaXNFcXVhbChjdXJyZW50RW50aXR5LCBuZXdFbnRpdHkpKSB7XG4gICAgICAgIHRoaXMuX2VudGl0eSQubmV4dChuZXdFbnRpdHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignSWdub3JlZCB3cml0dGVuIGVudGl0eSBhcyBpdCBpcyBhbHJlYWR5IHNldCB0byBlbnRpdHkkIScpO1xuICAgICAgfVxuICAgIH1cbiAgICBzdXBlci53cml0ZVRvQ29udHJvbCh2YWx1ZSk7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIihlbnRpdHlXcmFwcGVkJCB8IGFzeW5jKSBhcyBlbnRpdHlXcmFwcGVyXCIgZnhGbGV4XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1zdGQtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbj5cblxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cblxuXG4gIDxuZy1jb250YWluZXIgbWF0UHJlZml4ICpuZ0lmPVwiKG1lcmdlZFN0YXRlJCB8IGFzeW5jKSBhcyBzdGF0ZVwiPlxuXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiIGRpc2FibGVkXG4gICAgICAgICAgICAgIGNsYXNzPVwibGVhZGluZy1pY29uIHByZWZpeC1wYWRkaW5nIG5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmxvYWRpbmddPVwic3RhdGUubG9hZGluZ1wiXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJzdGF0ZT8uZXJyb3IgPyAnd2FybicgOiBjb2xvclwiPlxuICAgICAge3tpY29ufX1cbiAgICA8L21hdC1pY29uPlxuXG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCIhaWNvbiAmJiBzdGF0ZT8uZXJyb3JcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxlYWRpbmctaWNvbiBwcmVmaXgtcGFkZGluZyBub3NlbGVjdFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiPlxuICAgICAgd2FybmluZ1xuICAgIDwvbWF0LWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gQSBkeW5hbWljIGlucHV0IC0tPlxuICA8aW5wdXRcbiAgICBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGZ4RmxleD1cImdyb3dcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgIWF1dG9jb21wbGV0ZVwiXG4gICAgW25hbWVdPVwibmFtZSArICctaW5uZXItaW5wdXQnXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxuICAgIFttYXRBdXRvY29tcGxldGVdICNhdXRvVHJpZ2dlcj1cIm1hdEF1dG9jb21wbGV0ZVRyaWdnZXJcIlxuICAgIFtlbGRlckVsZGVyQXV0b2NvbXBsZXRlXT1cImVsZGVyQXV0b1wiIFtxdWVyeUZpbHRlcl09XCJxdWVyeUZpbHRlclwiIFtmaWx0ZXJzXT1cImZpbHRlcnNcIiBbc29ydHNdPVwic29ydHNcIlxuICAgIGVsZGVyU2VsZWN0T25UYWJcbiAgICBbY2xhc3Muc2VsZWN0XT1cIiFhdXRvY29tcGxldGVcIiAoY2xpY2spPVwib25JbnB1dENsaWNrZWQoYXV0b1RyaWdnZXIpXCJcbiAgICBbbmdNb2RlbF09XCJpbnB1dFRleHQkIHwgYXN5bmNcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWUsIHVwZGF0ZU9uOiAnc3VibWl0J31cIlxuICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICA+XG5cbiAgPCEtLSBUaGlzIGJyZWFrcyBzdHVmZjogW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCIgLS0+XG5cbiAgPGVsZGVyLWF1dG9jb21wbGV0ZVxuICAgICNlbGRlckF1dG89XCJlbGRlckF1dG9jb21wbGV0ZVwiXG4gICAgW3N1Z2dlc3Rpb25zRGNdPVwic3VnZ2VzdGlvbnNEYyQgfCBhc3luY1wiXG4gICAgW3ZhbHVlVGVtcGxhdGVdPVwidmFsdWVUZW1wbGF0ZVwiXG4gICAgW2VuYWJsZWRdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICBbZGlzcGxheVByb3BlcnR5UmVzb2x2ZXJdPVwiZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkIHwgYXN5bmNcIlxuICAgIFtpc09wdGlvbkRpc2FibGVkRm5dPVwiaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm5cIlxuICAgIFtpc09wdGlvbkhpZGRlbkZuXT1cImlzT3B0aW9uSGlkZGVuSW50ZXJuYWxGblwiXG4gICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uT3B0aW9uU2VsZWN0ZWQoJGFueSgkZXZlbnQpKVwiXG4gID48L2VsZGVyLWF1dG9jb21wbGV0ZT5cblxuXG4gIDxuZy1jb250YWluZXIgbWF0U3VmZml4PlxuXG4gICAgPG1hdC1pY29uXG4gICAgICAqbmdJZj1cIiFhdXRvY29tcGxldGVcIiBjbGFzcz1cInNlbGVjdC1hcnJvdyBub3NlbGVjdFwiXG4gICAgICAoY2xpY2spPVwib25JbnB1dENsaWNrZWQoYXV0b1RyaWdnZXIpXCI+XG4gICAgICBhcnJvd19kcm9wX2Rvd25cbiAgICA8L21hdC1pY29uPlxuXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvblBvcHVwICYmICghZW50aXR5V3JhcHBlci52YWx1ZSB8fCAhYWxsb3dOdWxsKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiXG4gICAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCJlbnRpdHlXcmFwcGVyLnZhbHVlICYmIGFsbG93TnVsbFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKCRldmVudClcIiBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgICAgICAgICAgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJlbnRpdHlXcmFwcGVyLmhpbnRUZXh0XCI+e3tlbnRpdHlXcmFwcGVyLmhpbnRUZXh0fX08L21hdC1oaW50PlxuXG48L21hdC1mb3JtLWZpZWxkPlxuXG5cblxuIl19
|
|
@@ -132,6 +132,7 @@ export class ElderSelectBase extends FormFieldBaseComponent {
|
|
|
132
132
|
this.autoCleanUp();
|
|
133
133
|
if (data instanceof Array) {
|
|
134
134
|
this.suggestionsDc = DataContextBuilder.start()
|
|
135
|
+
.localSort()
|
|
135
136
|
.buildLocal(data); // Memory leak
|
|
136
137
|
this.suggestionsDc.start();
|
|
137
138
|
}
|
|
@@ -254,4 +255,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
254
255
|
}], valueTemplate: [{
|
|
255
256
|
type: Input
|
|
256
257
|
}] } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9lbGRlci1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFHdkYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFckYsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNNUQsTUFBTSxPQUFPLHlCQUF5QjtJQXlCcEMsWUFDa0IsSUFBYSxFQUNiLE9BQWdCLEVBQ2hCLEtBQWE7UUFGYixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBRS9CLENBQUM7SUE1Qk0s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Q0FBQyxDQUFDO1NBQy9CO1FBRUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs7NEdBelBtQixlQUFlO2dHQUFmLGVBQWUsd2NBNkNyQix5QkFBeUIsMkJBQVMsV0FBVyw0RUFJN0MsNEJBQTRCOzJGQWpEdEIsZUFBZTtrQkFGcEMsU0FBUzs2RkF5QkQsT0FBTztzQkFEYixLQUFLO2dCQVlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBS25FLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsNEJBQTRCO2dCQUluQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQXVDSyxTQUFTO3NCQURuQixLQUFLO2dCQWFLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBTUssdUJBQXVCO3NCQURqQyxLQUFLO2dCQU1LLE9BQU87c0JBRGpCLEtBQUs7Z0JBVUssVUFBVTtzQkFEcEIsS0FBSztnQkFRSyxJQUFJO3NCQURkLEtBQUs7Z0JBNkJLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtRmllbGRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21tb24vZm9ybXMvZm9ybS1maWVsZC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7SURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7SURhdGFTb3VyY2V9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtEYXRhQ29udGV4dEJ1aWxkZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQtYnVpbGRlcic7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvc29ydCc7XG5pbXBvcnQge0VsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItc2VsZWN0LXZhbHVlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmV9IGZyb20gJy4vcG9wdXAvc2VsZWN0aW9uLW1vZGVsLXBvcHVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0U3RhdHVzfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LXN0YXR1cyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7cnVuSW5ab25lfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMvbmctem9uZS11dGlscyc7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlci1jb250ZXh0JztcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5leHBvcnQgdHlwZSBUZXh0UmVzb2x2ZXJGbiA9ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG5cblxuXG5leHBvcnQgY2xhc3MgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB7XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0YUNvbnRleHQoZGNTdGF0ZTogRGF0YUNvbnRleHRTdGF0dXMpOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlIHtcbiAgICBpZiAoZGNTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm4gRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5sb2FkaW5nKCk7XG4gICAgfSBlbHNlIGlmIChkY1N0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihkY1N0YXRlLmVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuaWRsZSgpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIHN0YXRpYyBpZGxlKCk6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSh0cnVlLCBmYWxzZSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGxvYWRpbmcoKTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlKGZhbHNlLCB0cnVlLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXJyb3IoZXJyb3I6IHN0cmluZyk6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZShmYWxzZSwgZmFsc2UsIGVycm9yKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBpZGxlOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBlcnJvcjogc3RyaW5nXG4gICkge1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBFTERFUl9TRUxFQ1RfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbGRlclNlbGVjdEJhc2U8YW55LCBhbnksIGFueT4+KCdFbGRlclNlbGVjdEJhc2UnKTtcblxuXG4vKipcbiAqIEJhc2UgY29tcG9uZW50IGZvciBFbGRlciBTZWxlY3Rpb24gQ29udHJvbHMuXG4gKlxuICogIEVsZGVyIFNlbGVjdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICpcbiAqIEBwYXJhbSBUSUQgRW50aXR5IElkIFR5cGVcbiAqIEBwYXJhbSBUIEVudGl0eSBUeXBlXG4gKiBAcGFyYW0gVFZhbHVlIFZhbHVlIGJhY2tpbmcgdGhlIGNvbnRyb2wuIENhbiBiZSB0aGUgZW50aXR5LCB0aGUgaWQgb3Igc29tZXRoaW5nIGVsc2UuXG4gKi9cbkBEaXJlY3RpdmUoKVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+IGV4dGVuZHMgRm9ybUZpZWxkQmFzZUNvbXBvbmVudDxUVmFsdWU+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKTtcblxuICBwcml2YXRlIF92YWx1ZUFzSWQ6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIHRpbWVvdXRBZnRlck1zID0gNTAwMDtcblxuICAvKipcbiAgICogRGVmaW5lIGlmIGVsZGVyLXNlbGVjdCBzaG91bGQgY2xlYW4gdXAgdGhlXG4gICAqIGRhdGEtY29udGV4dCByZXNvdXJjZXMgZm9yIHlvdS5cbiAgICpcbiAgICogSW4gbW9yZSBhZHZhbmNlZCBzY2VuYXJpb3Mgd2hlcmUgeW91IHBsYW4gdG8gcmV1c2UgdGhlIHNhbWUgZGF0YS1jb250ZXh0XG4gICAqIHNldCB0aGlzIHRvIGZhbHNlIGFuZCByZWxlYXNlIHRoZSByZXNvdXJjZXMgeW91cnNlbGYuIChkYXRhQ29udGV4dC5jbG9zZSlcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjbGVhblVwID0gdHJ1ZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZXh0UmVzb2x2ZXJGbj4oKHZhbHVlOiBURW50aXR5KSA9PiB0aGlzLnByb3BlcnR5U3RyaW5nVmFsdWUodmFsdWUsIG51bGwpKTtcblxuICAvKiogVW5kZXJseWluZyBkYXRhIGNvbnRleHQuICovXG4gIHB1YmxpYyByZWFkb25seSBzdWdnZXN0aW9uc0RjJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SURhdGFDb250ZXh0PFRFbnRpdHk+PihudWxsKTtcblxuICAvKipcbiAgICogUGFnZSBzaXplLiAoVXNlZCBmb3IgaW5maW5pdGUgc2Nyb2xsaW5nIGNodW5rcylcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlU2l6ZSA9IDEwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBxdWVyeUZpbHRlciA9ICdxdWVyeSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNvcnRzOiBTb3J0W10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIG9wdGlvbiB0ZW1wbGF0ZSB0byBjdXN0b21pemUgdGhlIHVpIGxvb2suXG4gICAqL1xuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHZhbHVlVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfdmFsdWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKFNlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWxlY3Rpb25Qb3B1cDogU2VsZWN0aW9uTW9kZWxQb3B1cERpcmVjdGl2ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNPcHRpb25EaXNhYmxlZEZuOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc09wdGlvbkhpZGRlbkZuOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGU+KEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuaWRsZSgpKTtcbiAgcHVibGljIHJlYWRvbmx5IG1lcmdlZFN0YXRlJDogT2JzZXJ2YWJsZTxFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlPjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lOiBOZ1pvbmUsXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLm1lcmdlZFN0YXRlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdWdnZXN0aW9uc0RjJC5waXBlKGZpbHRlcihkYyA9PiAhIWRjKSwgc3dpdGNoTWFwKGRjID0+IGRjLnN0YXR1cykpLFxuICAgICAgdGhpcy5zdGF0ZSRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZGNTdGF0ZSwgc3RhdGVdKSA9PiB7XG4gICAgICAgIGlmIChkY1N0YXRlLmlkbGUpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZnJvbURhdGFDb250ZXh0KGRjU3RhdGUpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHJ1bkluWm9uZSh0aGlzLnpvbmUpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0lkKHZhbHVlQXNJZDogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZhbHVlQXNJZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZUFzSWQpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZUFzSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydHkgdXNlZCB0byBkaXNwbGF5IHRoZSB2YWx1ZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciA9ICh2YWx1ZSA9PiB0aGlzLnByb3BlcnR5U3RyaW5nVmFsdWUodmFsdWUsIHByb3BlcnR5KSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyKHJlc29sdmVyOiBUZXh0UmVzb2x2ZXJGbikge1xuICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLm5leHQocmVzb2x2ZXIpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhU291cmNlKHNvdXJjZTogSURhdGFTb3VyY2U8VEVudGl0eT4pIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zRGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQ8VEVudGl0eT4oKVxuICAgICAgLnBhZ2VTaXplKHRoaXMucGFnZVNpemUpXG4gICAgICAuYnVpbGQoc291cmNlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBBcnJheTxURW50aXR5PiB8IElEYXRhQ29udGV4dDxURW50aXR5Pikge1xuXG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuXG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgdGhpcy5zdWdnZXN0aW9uc0RjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFRFbnRpdHk+KClcbiAgICAgICAgLmJ1aWxkTG9jYWwoZGF0YSk7IC8vIE1lbW9yeSBsZWFrXG4gICAgICB0aGlzLnN1Z2dlc3Rpb25zRGMuc3RhcnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhpcy5zdWdnZXN0aW9uc0RjID0gZGF0YTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3VnZ2VzdGlvbnNEYyA9IERhdGFDb250ZXh0QnVpbGRlci5zdGFydDxURW50aXR5PigpLmJ1aWxkRW1wdHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IHN1Z2dlc3Rpb25zRGMoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KSB7XG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuICAgIHRoaXMuc3VnZ2VzdGlvbnNEYyQubmV4dChkYXRhKTtcbiAgICB0aGlzLm9uU3VnZ2VzdGlvbnNEY0NoYW5nZWQoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN1Z2dlc3Rpb25zRGMoKTogSURhdGFDb250ZXh0PFRFbnRpdHk+IHtcbiAgICByZXR1cm4gdGhpcy5zdWdnZXN0aW9uc0RjJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZVRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fdmFsdWVUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZVRlbXBsYXRlIHx8IHRoaXMudmFsdWVUZW1wbGF0ZVF1ZXJ5O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyPzogRmlsdGVyKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsdGVyQ29udGV4dC51cGRhdGVGaWx0ZXIodXBkYXRlZEZpbHRlcik7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmlsdGVycyh1cGRhdGVkRmlsdGVycz86IEZpbHRlcltdKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsdGVyQ29udGV4dC51cGRhdGVGaWx0ZXJzKHVwZGF0ZWRGaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlRmlsdGVycyhuZXdGaWx0ZXJzPzogRmlsdGVyW10pIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0LnJlcGxhY2VGaWx0ZXJzKG5ld0ZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyRmlsdGVycygpOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0LmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU3RhdGUoc3RhdGU6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHN0YXRlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBYnN0cmFjdCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc3VnZ2VzdGlvbnMgZGF0YS1jb250ZXh0IGhhcyBjaGFuZ2VkXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb25TdWdnZXN0aW9uc0RjQ2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlJZChlbnRpdHk6IFRFbnRpdHkpOiBUSWQge1xuICAgIHJldHVybiB0aGlzLnN1Z2dlc3Rpb25zRGM/LmRhdGFTb3VyY2U/LmdldElkKGVudGl0eSkgfHwgZW50aXR5O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRXF1YWwoYTogVEVudGl0eSwgYjogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmIChhID09PSBiKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNFbXB0eShhKSAmJiB0aGlzLmlzRW1wdHkoYikpIHsgLy8gSEFDSzogSGFuZGxlIGVtcHR5IHN0cmluZyBhcyB1bmRlZmluZWQuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoYSkgPT09IHRoaXMuZ2V0RW50aXR5SWQoYik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFbXB0eShhOiBURW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChhID09PSBudWxsIHx8IGEgPT09IHVuZGVmaW5lZCB8fCA8YW55PmEgPT09ICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBjbGVhbiB1cCBvZiB0aGUgY3VycmVudCBkYXRhIGNvbnRleHQgaWYgYXV0byBjbGVhbiB1cCBpcyBlbmFibGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGF1dG9DbGVhblVwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsZWFuVXAgJiYgdGhpcy5zdWdnZXN0aW9uc0RjKSB7XG4gICAgICB0aGlzLl9sb2dnZXIuZGVidWcoJ1JlbGVhc2luZyBEYXRhQ29udGV4dCByZXNvdXJjZXMgdG8gcHJldmVudCBtZW1vcnkgbGVhay4gW2NsZWFuVXBdPVwidHJ1ZVwiJyk7XG4gICAgICB0aGlzLnN1Z2dlc3Rpb25zRGMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJvcGVydHlTdHJpbmdWYWx1ZSh2YWx1ZTogVEVudGl0eSwgcHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIHJldHVybiAoPGFueT52YWx1ZSlbcHJvcGVydHldO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG59XG4iXX0=
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9lbGRlci1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFHdkYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFckYsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNNUQsTUFBTSxPQUFPLHlCQUF5QjtJQXlCcEMsWUFDa0IsSUFBYSxFQUNiLE9BQWdCLEVBQ2hCLEtBQWE7UUFGYixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBRS9CLENBQUM7SUE1Qk0s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LEtBQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQjtRQUVELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7OzRHQTFQbUIsZUFBZTtnR0FBZixlQUFlLHdjQTZDckIseUJBQXlCLDJCQUFTLFdBQVcsNEVBSTdDLDRCQUE0QjsyRkFqRHRCLGVBQWU7a0JBRnBDLFNBQVM7NkZBeUJELE9BQU87c0JBRGIsS0FBSztnQkFZQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBT0Msa0JBQWtCO3NCQUR4QixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUtuRSxjQUFjO3NCQURwQixZQUFZO3VCQUFDLDRCQUE0QjtnQkFJbkMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkF1Q0ssU0FBUztzQkFEbkIsS0FBSztnQkFhSyxlQUFlO3NCQUR6QixLQUFLO2dCQU1LLHVCQUF1QjtzQkFEakMsS0FBSztnQkFNSyxPQUFPO3NCQURqQixLQUFLO2dCQVVLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBUUssSUFBSTtzQkFEZCxLQUFLO2dCQThCSyxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBOZ1pvbmUsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUZpZWxkQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29tbW9uL2Zvcm1zL2Zvcm0tZmllbGQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RGF0YUNvbnRleHRCdWlsZGVyfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXInO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL3NvcnQnO1xuaW1wb3J0IHtFbGRlclNlbGVjdFZhbHVlRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXNlbGVjdC12YWx1ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlfSBmcm9tICcuL3BvcHVwL3NlbGVjdGlvbi1tb2RlbC1wb3B1cC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1zdGF0dXMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3J1bkluWm9uZX0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzL25nLXpvbmUtdXRpbHMnO1xuaW1wb3J0IHtGaWx0ZXJDb250ZXh0fSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge2NvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuZXhwb3J0IHR5cGUgVGV4dFJlc29sdmVyRm4gPSAodmFsdWU6IGFueSkgPT4gc3RyaW5nO1xuXG5cblxuZXhwb3J0IGNsYXNzIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURhdGFDb250ZXh0KGRjU3RhdGU6IERhdGFDb250ZXh0U3RhdHVzKTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB7XG4gICAgaWYgKGRjU3RhdGUubG9hZGluZykge1xuICAgICAgcmV0dXJuIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUubG9hZGluZygpO1xuICAgIH0gZWxzZSBpZiAoZGNTdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZGNTdGF0ZS5lcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmlkbGUoKTtcbiAgICB9XG4gIH1cblxuXG4gIHB1YmxpYyBzdGF0aWMgaWRsZSgpOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlIHtcbiAgICByZXR1cm4gbmV3IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUodHJ1ZSwgZmFsc2UsIG51bGwpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBsb2FkaW5nKCk6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZShmYWxzZSwgdHJ1ZSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGVycm9yKGVycm9yOiBzdHJpbmcpOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlIHtcbiAgICByZXR1cm4gbmV3IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUoZmFsc2UsIGZhbHNlLCBlcnJvcik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWRsZTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZzogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXJyb3I6IHN0cmluZ1xuICApIHtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRUxERVJfU0VMRUNUX0JBU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48RWxkZXJTZWxlY3RCYXNlPGFueSwgYW55LCBhbnk+PignRWxkZXJTZWxlY3RCYXNlJyk7XG5cblxuLyoqXG4gKiBCYXNlIGNvbXBvbmVudCBmb3IgRWxkZXIgU2VsZWN0aW9uIENvbnRyb2xzLlxuICpcbiAqICBFbGRlciBTZWxlY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYWJzdHJhY3QgY29uY2VwdDpcbiAqXG4gKiAtIFN1Z2dlc3Rpb24tTW9kZWw6IEEgRGF0YVNvdXJjZSBhbmQgZGVyaXZlZCBEYXRhQ29udGV4dCBmb3IgdGhlIChhdXRvLWNvbXBsZXRlKSBzdWdnZXN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gVElEIEVudGl0eSBJZCBUeXBlXG4gKiBAcGFyYW0gVCBFbnRpdHkgVHlwZVxuICogQHBhcmFtIFRWYWx1ZSBWYWx1ZSBiYWNraW5nIHRoZSBjb250cm9sLiBDYW4gYmUgdGhlIGVudGl0eSwgdGhlIGlkIG9yIHNvbWV0aGluZyBlbHNlLlxuICovXG5ARGlyZWN0aXZlKClcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWxkZXJTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlPiBleHRlbmRzIEZvcm1GaWVsZEJhc2VDb21wb25lbnQ8VFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyQ29udGV4dCA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVBc0lkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCB0aW1lb3V0QWZ0ZXJNcyA9IDUwMDA7XG5cbiAgLyoqXG4gICAqIERlZmluZSBpZiBlbGRlci1zZWxlY3Qgc2hvdWxkIGNsZWFuIHVwIHRoZVxuICAgKiBkYXRhLWNvbnRleHQgcmVzb3VyY2VzIGZvciB5b3UuXG4gICAqXG4gICAqIEluIG1vcmUgYWR2YW5jZWQgc2NlbmFyaW9zIHdoZXJlIHlvdSBwbGFuIHRvIHJldXNlIHRoZSBzYW1lIGRhdGEtY29udGV4dFxuICAgKiBzZXQgdGhpcyB0byBmYWxzZSBhbmQgcmVsZWFzZSB0aGUgcmVzb3VyY2VzIHlvdXJzZWxmLiAoZGF0YUNvbnRleHQuY2xvc2UpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2xlYW5VcCA9IHRydWU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGV4dFJlc29sdmVyRm4+KCh2YWx1ZTogVEVudGl0eSkgPT4gdGhpcy5wcm9wZXJ0eVN0cmluZ1ZhbHVlKHZhbHVlLCBudWxsKSk7XG5cbiAgLyoqIFVuZGVybHlpbmcgZGF0YSBjb250ZXh0LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3VnZ2VzdGlvbnNEYyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXRhQ29udGV4dDxURW50aXR5Pj4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFBhZ2Ugc2l6ZS4gKFVzZWQgZm9yIGluZmluaXRlIHNjcm9sbGluZyBjaHVua3MpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZVNpemUgPSAxMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcXVlcnlGaWx0ZXIgPSAncXVlcnknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzb3J0czogU29ydFtdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb24gdGVtcGxhdGUgdG8gY3VzdG9taXplIHRoZSB1aSBsb29rLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdFZhbHVlRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyB2YWx1ZVRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgX3ZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlKVxuICBwdWJsaWMgc2VsZWN0aW9uUG9wdXA6IFNlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzT3B0aW9uRGlzYWJsZWRGbjogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNPcHRpb25IaWRkZW5GbjogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbjtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlPihFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmlkbGUoKSk7XG4gIHB1YmxpYyByZWFkb25seSBtZXJnZWRTdGF0ZSQ6IE9ic2VydmFibGU8RWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lLFxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5tZXJnZWRTdGF0ZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNEYyQucGlwZShmaWx0ZXIoZGMgPT4gISFkYyksIHN3aXRjaE1hcChkYyA9PiBkYy5zdGF0dXMpKSxcbiAgICAgIHRoaXMuc3RhdGUkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RjU3RhdGUsIHN0YXRlXSkgPT4ge1xuICAgICAgICBpZiAoZGNTdGF0ZS5pZGxlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmZyb21EYXRhQ29udGV4dChkY1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBydW5JblpvbmUodGhpcy56b25lKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlQXNJZCh2YWx1ZUFzSWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92YWx1ZUFzSWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWVBc0lkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWVBc0lkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZUFzSWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IHVzZWQgdG8gZGlzcGxheSB0aGUgdmFsdWVzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5UHJvcGVydHkocHJvcGVydHk6IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIgPSAodmFsdWUgPT4gdGhpcy5wcm9wZXJ0eVN0cmluZ1ZhbHVlKHZhbHVlLCBwcm9wZXJ0eSkpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5UHJvcGVydHlSZXNvbHZlcihyZXNvbHZlcjogVGV4dFJlc29sdmVyRm4pIHtcbiAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJC5uZXh0KHJlc29sdmVyKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMucmVwbGFjZUZpbHRlcnMoZmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250ZXh0LmZpbHRlcnNTbmFwc2hvdDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YVNvdXJjZShzb3VyY2U6IElEYXRhU291cmNlPFRFbnRpdHk+KSB7XG4gICAgdGhpcy5zdWdnZXN0aW9uc0RjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFRFbnRpdHk+KClcbiAgICAgIC5wYWdlU2l6ZSh0aGlzLnBhZ2VTaXplKVxuICAgICAgLmJ1aWxkKHNvdXJjZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEoZGF0YTogQXJyYXk8VEVudGl0eT4gfCBJRGF0YUNvbnRleHQ8VEVudGl0eT4pIHtcblxuICAgIHRoaXMuYXV0b0NsZWFuVXAoKTtcblxuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNEYyA9IERhdGFDb250ZXh0QnVpbGRlci5zdGFydDxURW50aXR5PigpXG4gICAgICAgIC5sb2NhbFNvcnQoKVxuICAgICAgICAuYnVpbGRMb2NhbChkYXRhKTsgLy8gTWVtb3J5IGxlYWtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNEYy5zdGFydCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zRGMgPSBkYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdWdnZXN0aW9uc0RjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFRFbnRpdHk+KCkuYnVpbGRFbXB0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgc3VnZ2VzdGlvbnNEYyhkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pIHtcbiAgICB0aGlzLmF1dG9DbGVhblVwKCk7XG4gICAgdGhpcy5zdWdnZXN0aW9uc0RjJC5uZXh0KGRhdGEpO1xuICAgIHRoaXMub25TdWdnZXN0aW9uc0RjQ2hhbmdlZChkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3VnZ2VzdGlvbnNEYygpOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4ge1xuICAgIHJldHVybiB0aGlzLnN1Z2dlc3Rpb25zRGMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl92YWx1ZVRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlVGVtcGxhdGUgfHwgdGhpcy52YWx1ZVRlbXBsYXRlUXVlcnk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdXBkYXRlRmlsdGVyKHVwZGF0ZWRGaWx0ZXI/OiBGaWx0ZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWx0ZXJzKHVwZGF0ZWRGaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnModXBkYXRlZEZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIHJlcGxhY2VGaWx0ZXJzKG5ld0ZpbHRlcnM/OiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQucmVwbGFjZUZpbHRlcnMobmV3RmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJGaWx0ZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBzdWdnZXN0aW9ucyBkYXRhLWNvbnRleHQgaGFzIGNoYW5nZWRcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvblN1Z2dlc3Rpb25zRGNDaGFuZ2VkKGRhdGE6IElEYXRhQ29udGV4dDxURW50aXR5Pik6IHZvaWQ7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVybmFsIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eUlkKGVudGl0eTogVEVudGl0eSk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuc3VnZ2VzdGlvbnNEYz8uZGF0YVNvdXJjZT8uZ2V0SWQoZW50aXR5KSB8fCBlbnRpdHk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFcXVhbChhOiBURW50aXR5LCBiOiBURW50aXR5KTogYm9vbGVhbiB7XG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0VtcHR5KGEpICYmIHRoaXMuaXNFbXB0eShiKSkgeyAvLyBIQUNLOiBIYW5kbGUgZW1wdHkgc3RyaW5nIGFzIHVuZGVmaW5lZC5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChhKSA9PT0gdGhpcy5nZXRFbnRpdHlJZChiKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0VtcHR5KGE6IFRFbnRpdHkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGEgPT09IG51bGwgfHwgYSA9PT0gdW5kZWZpbmVkIHx8IDxhbnk+YSA9PT0gJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGNsZWFuIHVwIG9mIHRoZSBjdXJyZW50IGRhdGEgY29udGV4dCBpZiBhdXRvIGNsZWFuIHVwIGlzIGVuYWJsZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0b0NsZWFuVXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xlYW5VcCAmJiB0aGlzLnN1Z2dlc3Rpb25zRGMpIHtcbiAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnUmVsZWFzaW5nIERhdGFDb250ZXh0IHJlc291cmNlcyB0byBwcmV2ZW50IG1lbW9yeSBsZWFrLiBbY2xlYW5VcF09XCJ0cnVlXCInKTtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNEYy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcm9wZXJ0eVN0cmluZ1ZhbHVlKHZhbHVlOiBURW50aXR5LCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgcmV0dXJuICg8YW55PnZhbHVlKVtwcm9wZXJ0eV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { Directive, Input, Output } from '@angular/core';
|
|
|
2
2
|
import { ElderSelectBase, ElderSelectComponentState } from '../elder-select-base';
|
|
3
3
|
import { BehaviorSubject, EMPTY, of } from 'rxjs';
|
|
4
4
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
5
|
-
import { catchError, filter, map, switchMap, take, timeout } from 'rxjs/operators';
|
|
5
|
+
import { catchError, filter, map, switchMap, take, tap, timeout } from 'rxjs/operators';
|
|
6
6
|
import { Sets } from '../../../common/sets';
|
|
7
7
|
import { CollectionUtil } from '../../../common/utils/collection-util';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
@@ -33,13 +33,22 @@ export class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
33
33
|
this.entities$ = new BehaviorSubject([]);
|
|
34
34
|
this.entityIdsChange = this.valueChange.pipe(map(values => this.entityIdsFromValues(values)));
|
|
35
35
|
this.entityIdsUpdated = this.valueUpdated.pipe(map(values => this.entityIdsFromValues(values)));
|
|
36
|
-
this.entitiesUpdated = this.entityIdsUpdated.pipe(switchMap(
|
|
36
|
+
this.entitiesUpdated = this.entityIdsUpdated.pipe(tap(entityIds => this.logger.debug('Awaiting entities with ids', entityIds)), switchMap(entityIds => this.awaitEntitiesWithId(entityIds, this.timeoutAfterMs)), catchError(err => {
|
|
37
37
|
this.logger.warn(`awaitEntitiesWithId -> timed out after: ${this.timeoutAfterMs}`, err);
|
|
38
38
|
return EMPTY;
|
|
39
39
|
}));
|
|
40
40
|
}
|
|
41
41
|
awaitEntitiesWithId(entityIds, timeoutMs) {
|
|
42
|
-
return this.entities$.pipe(filter(entities => this.equalIds(this.getEntityIds(entities), entityIds)), take(1), timeout(timeoutMs));
|
|
42
|
+
return this.entities$.pipe(tap(entities => this.logger.debug('Got entities for ids' + entityIds, entities)), filter(entities => this.equalIds(this.getEntityIds(entities), entityIds)), take(1), timeout(timeoutMs));
|
|
43
|
+
}
|
|
44
|
+
/***************************************************************************
|
|
45
|
+
* *
|
|
46
|
+
* Properties *
|
|
47
|
+
* *
|
|
48
|
+
**************************************************************************/
|
|
49
|
+
updateValueByEntities(entities) {
|
|
50
|
+
this.entities$.next(entities);
|
|
51
|
+
this.updateValue(this.entitiesToValues(entities));
|
|
43
52
|
}
|
|
44
53
|
/***************************************************************************
|
|
45
54
|
* *
|
|
@@ -214,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
214
223
|
}], entityIds: [{
|
|
215
224
|
type: Input
|
|
216
225
|
}] } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQWlCLEtBQUssRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7O0FBR3JFOzs7Ozs7OztHQVFHO0FBRUgsa0RBQWtEO0FBQ2xELE1BQU0sT0FBZ0Isb0JBQTJDLFNBQVEsZUFBdUM7SUE2QjlHOzs7O2dGQUk0RTtJQUU1RSxZQUNFLElBQVk7UUFFWixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFwQ2Q7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFZLEVBQUUsQ0FBQyxDQUFDO1FBOEJoRSxJQUFJLENBQUMsZUFBZSxH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QUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQzs7aUhBclBtQixvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUZ6QyxTQUFTOzZGQWVRLGVBQWU7c0JBRDlCLE1BQU07Z0JBUVMsZ0JBQWdCO3NCQUQvQixNQUFNO2dCQVFTLGVBQWU7c0JBRDlCLE1BQU07Z0JBOENJLFFBQVE7c0JBRGxCLEtBQUs7Z0JBYUssU0FBUztzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgTmdab25lLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbGRlclNlbGVjdEJhc2UsIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGV9IGZyb20gJy4uL2VsZGVyLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7SURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRpbWVvdXR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2V0c30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NldHMnO1xuaW1wb3J0IHtDb2xsZWN0aW9uVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL2NvbGxlY3Rpb24tdXRpbCc7XG5cblxuLyoqXG4gKiBCYXNlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBvZiBlbGRlci1tdWx0aS1zZWxlY3QuXG4gKlxuICogTXVsdGkgU2VsZWN0IGhhcyB0aGUgZm9sbG93aW5nIGFic3RyYWN0IGNvbmNlcHQ6XG4gKlxuICogLSBTdWdnZXN0aW9uLU1vZGVsOiBBIERhdGFTb3VyY2UgYW5kIGRlcml2ZWQgRGF0YUNvbnRleHQgZm9yIHRoZSAoYXV0by1jb21wbGV0ZSkgc3VnZ2VzdGlvbnMuXG4gKiAtIFRoZSBiYWNraW5nIFZhbHVlIGlzIGEgbGlzdCBvZiB0aGUgY3VycmVudCBzZWxlY3RlZCBlbnRpdGllcy4gVFtdXG4gKlxuICovXG5ARGlyZWN0aXZlKClcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+IGV4dGVuZHMgRWxkZXJTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlW10+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0aWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPihbXSk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZHNDaGFuZ2U6IE9ic2VydmFibGU8VElkW10+O1xuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGVudGl0eS1pZCBjaGFuZ2UsIGJ1dCBlbWl0cyBvbmx5IHdoZW4gdGhlIHVzZXJcbiAgICogaGFzIHVwZGF0ZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZHNVcGRhdGVkOiBPYnNlcnZhYmxlPFRJZFtdPjtcblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHkgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNVcGRhdGVkOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICBzdXBlcih6b25lKTtcblxuICAgIHRoaXMuZW50aXR5SWRzQ2hhbmdlID0gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdHlJZHNVcGRhdGVkID0gdGhpcy52YWx1ZVVwZGF0ZWQucGlwZShcbiAgICAgIG1hcCh2YWx1ZXMgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpXG4gICAgKTtcblxuICAgIHRoaXMuZW50aXRpZXNVcGRhdGVkID0gdGhpcy5lbnRpdHlJZHNVcGRhdGVkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZW50aXR5SWQgPT4gdGhpcy5hd2FpdEVudGl0aWVzV2l0aElkKGVudGl0eUlkLCB0aGlzLnRpbWVvdXRBZnRlck1zKSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYGF3YWl0RW50aXRpZXNXaXRoSWQgLT4gdGltZWQgb3V0IGFmdGVyOiAke3RoaXMudGltZW91dEFmdGVyTXN9YCwgZXJyKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhd2FpdEVudGl0aWVzV2l0aElkKGVudGl0eUlkczogVElkW10sIHRpbWVvdXRNczogbnVtYmVyKTogT2JzZXJ2YWJsZTxURW50aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdGllcyQucGlwZShcbiAgICAgIGZpbHRlcihlbnRpdGllcyA9PiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzKSwgZW50aXR5SWRzKSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGltZW91dCh0aW1lb3V0TXMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSkge1xuICAgIHRoaXMuZW50aXRpZXMkLm5leHQoZW50aXRpZXMpO1xuICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKFxuICAgICAgdGhpcy5lbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0aWVzKCk6IFRFbnRpdHlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXRpZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eUlkcyhpZHM6IFRJZFtdKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbCg8YW55PmlkcyBhcyBUVmFsdWVbXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhpZHMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5SWRzKCk6IFRJZFtdIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVybmFsIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIG9uU3VnZ2VzdGlvbnNEY0NoYW5nZWQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHModGhpcy5lbnRpdHlJZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGFmdGVyIGEgdmFsdWUgaGFzIGJlZW4gd3JpdHRlbiB0byB0aGlzIGNvbnRyb2wuXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgd3JpdGVUb0NvbnRyb2wodmFsdWU6IFRWYWx1ZVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBlbnRpdHlJZHMgPSA8YW55PnZhbHVlIGFzIFRJZFtdO1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5IGlkcywgZW5zdXJlIHdlIHNlbGVjdCBlbnRpdHkgYnkgaWRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgaWRzOiAnICsgZW50aXR5SWRzLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHMoZW50aXR5SWRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5LCBlbnN1cmUgZW50aXR5IGlzIHVwZGF0ZWRcbiAgICAgIGNvbnN0IGN1cnJlbnRFbnRpdGllcyA9IHRoaXMuZW50aXRpZXM7XG4gICAgICBjb25zdCBuZXdFbnRpdGllcyA9IDxhbnk+dmFsdWUgYXMgVEVudGl0eVtdO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdGllcyAoc2l6ZSk6ICcgKyBuZXdFbnRpdGllcz8ubGVuZ3RoLCB2YWx1ZSk7XG4gICAgICBpZiAoIXRoaXMuZXF1YWxFbnRpdGllcyhjdXJyZW50RW50aXRpZXMsIG5ld0VudGl0aWVzKSkge1xuICAgICAgICB0aGlzLmVudGl0aWVzJC5uZXh0KG5ld0VudGl0aWVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0lnbm9yZWQgd3JpdHRlbiBlbnRpdGllcyBhcyB0aGV5IGFyZSBhbHJlYWR5IHNldCB0byBlbnRpdGllcyQhJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLndyaXRlVG9Db250cm9sKHZhbHVlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXM6IFRWYWx1ZVtdKTogVElkW10gfCBudWxsIHtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodikpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5SWRGcm9tVmFsdWUodmFsdWU6IFRWYWx1ZSk6IFRJZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICByZXR1cm4gPGFueT52YWx1ZSBhcyBUSWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5O1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRWYWx1ZVtdIHwgbnVsbCB7XG4gICAgaWYgKGVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKGUgPT4gdGhpcy5lbnRpdHlUb1ZhbHVlKGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVudGl0eVRvVmFsdWUoZW50aXR5OiBURW50aXR5KTogVFZhbHVlIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGlkID0gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpO1xuICAgICAgcmV0dXJuIDxhbnk+aWQgYXMgVFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPGFueT5lbnRpdHkgYXMgVFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW50aXR5SWRzKHZhbHVlczogVEVudGl0eVtdIHwgbnVsbCk6IFRJZFtdIHtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IHRoaXMuZ2V0RW50aXR5SWQodikpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZXF1YWxJZHMoaWRzQTogVElkW10sIGlkc0I6IFRJZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFNldHMuZXF1YWxDb250ZW50KGlkc0EsIGlkc0IpO1xuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbEVudGl0aWVzKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQSksIHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQikpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdGllc0J5SWRzKGlkczogVElkW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzO1xuICAgIHRoaXMubG9nZ2VyLmluZm8oJ3NlbGVjdEVudGl0aWVzQnlJZHM6IGlkcycgKyBpZHMgKyAnLCBjdXJyZW50IGVudGl0aWVzOicsIGN1cnJlbnRFbnRpdGllcyk7XG4gICAgaWYgKGN1cnJlbnRFbnRpdGllcyAmJiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGN1cnJlbnRFbnRpdGllcyksIGlkcykpIHtcbiAgICAgIHJldHVybjsgLy8gRW50aXRpZXMgYWxyZWFkeSBsb2FkZWRcbiAgICB9XG5cbiAgICBpZiAoIUNvbGxlY3Rpb25VdGlsLmhhc0VsZW1lbnRzKGlkcykpIHtcbiAgICAgIGlmIChDb2xsZWN0aW9uVXRpbC5oYXNFbGVtZW50cyhjdXJyZW50RW50aXRpZXMpKSB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKFtdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnNEYykge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuZmluZEluRGF0YUNvbnRleHQoaWRzKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ0lkcyA9IGlkcy5maWx0ZXIoaWQgPT4gIWV4aXN0aW5nLmhhcyhpZCkpO1xuICAgICAgICBjb25zdCB2YWx1ZUxvYWRSZXF1ZXN0JCA9IG1pc3NpbmdJZHMubGVuZ3RoID4gMCA/IHRoaXMubG9hZEVudGl0eUJ5SWRzKG1pc3NpbmdJZHMpIDogb2YobmV3IE1hcCgpKTtcblxuICAgICAgICB2YWx1ZUxvYWRSZXF1ZXN0JC5waXBlKFxuICAgICAgICAgIG1hcChsb2FkZWQgPT4ge1xuICAgICAgICAgICAgbG9hZGVkLmZvckVhY2goKHYsIGspID0+IGV4aXN0aW5nLnNldChrLCB2KSk7XG4gICAgICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgbWFwKGFsbFZhbHVlc01hcCA9PiBBcnJheS5mcm9tKGFsbFZhbHVlc01hcC52YWx1ZXMoKSkpIC8vIFRPRE8gU29ydD9cbiAgICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgZW50aXRpZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbnRpdGllcyA9IGVudGl0aWVzO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byBzZWxlY3QgdmFsdWUgYnkgSWRzOiAnICsgaWRzICsgJyAtIERhdGFDb250ZXh0IG5vdCBhdmFpbGFibGUuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRW50aXR5QnlJZHMoaWRzOiBUSWRbXSk6IE9ic2VydmFibGU8TWFwPFRJZCwgVEVudGl0eT4+IHtcbiAgICByZXR1cm4gdGhpcy5zdWdnZXN0aW9uc0RjLmRhdGFTb3VyY2UuZmluZEJ5SWRzKGlkcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHZhbHVlcyBieSBpZHMgJyArIGlkcywgZXJyKTtcbiAgICAgICAgdGhpcy51cGRhdGVTdGF0ZShFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmVycm9yKGVycikpO1xuICAgICAgICByZXR1cm4gb2YoPFRFbnRpdHlbXT5bXSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCh2YWx1ZXMgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTG9hZGVkIGVudGl0aWVzIGJ5IGlkOicsIHZhbHVlcyk7XG4gICAgICAgIGNvbnN0IHZhbHVlTWFwID0gbmV3IE1hcDxUSWQsIFRFbnRpdHk+KCk7XG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKHYgPT4gdmFsdWVNYXAuc2V0KHRoaXMuZ2V0RW50aXR5SWQodiksIHYpKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlTWFwO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kSW5EYXRhQ29udGV4dChpZHM6IFRJZFtdKTogTWFwPFRJZCwgVEVudGl0eT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nVmFsdWVzID0gbmV3IE1hcDxUSWQsIFRFbnRpdHk+KCk7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuc3VnZ2VzdGlvbnNEYy5zbmFwc2hvdC5kYXRhO1xuICAgICAgY29uc3QgcmVxdWlyZWRJZHMgPSBuZXcgU2V0KGlkcyk7XG4gICAgICBkYXRhXG4gICAgICAgIC5maWx0ZXIoZCA9PiByZXF1aXJlZElkcy5oYXModGhpcy5nZXRFbnRpdHlJZChkKSkpXG4gICAgICAgIC5mb3JFYWNoKGQgPT4gZXhpc3RpbmdWYWx1ZXMuc2V0KHRoaXMuZ2V0RW50aXR5SWQoZCksIGQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nVmFsdWVzO1xuICB9XG5cblxufVxuIl19
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQWlCLEtBQUssRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVDQUF1QyxDQUFDOztBQUdyRTs7Ozs7Ozs7R0FRRztBQUVILGtEQUFrRDtBQUNsRCxNQUFNLE9BQWdCLG9CQUEyQyxTQUFRLGVBQXVDO0lBNkI5Rzs7OztnRkFJNEU7SUFFNUUsWUFDRSxJQUFZO1FBRVosS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBcENkOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBWSxFQUFFLENBQUMsQ0FBQztRQThCaEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ2hELENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUNoRCxDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUM1RSxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUNoRixVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQ0FBMkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3hGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxTQUFnQixFQUFFLFNBQWlCO1FBQzdELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixHQUFHLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUNoRixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFDekUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUscUJBQXFCLENBQUMsUUFBbUI7UUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csUUFBUSxDQUFDLFFBQW1CO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsQ0FDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ1csU0FBUyxDQUFDLEdBQVU7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBTSxHQUFlLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVsRSxzQkFBc0IsQ0FBQyxJQUEyQjtRQUMxRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxjQUFjLENBQUMsS0FBZTtRQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsTUFBTSxTQUFTLEdBQVEsS0FBYyxDQUFDO1lBQ3RDLGlFQUFpRTtZQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCx3REFBd0Q7WUFDeEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN0QyxNQUFNLFdBQVcsR0FBUSxLQUFrQixDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHdEQUF3RCxHQUFHLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxFQUFFO2dCQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO2FBQ3BGO1NBQ0Y7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsbUJBQW1CLENBQUMsTUFBZ0I7UUFDMUMsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQWE7UUFDckMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQVksS0FBWSxDQUFDO1NBQzFCO2FBQU07WUFDTCxNQUFNLE1BQU0sR0FBUyxLQUFpQixDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUFtQjtRQUMxQyxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFlO1FBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLE9BQVksRUFBWSxDQUFDO1NBQzFCO2FBQU07WUFDTCxPQUFZLE1BQWdCLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQXdCO1FBQzNDLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVcsRUFBRSxJQUFXO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxTQUFvQixFQUFFLFNBQW9CO1FBQzlELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU8sbUJBQW1CLENBQUMsR0FBVTtRQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEdBQUcsR0FBRyxxQkFBcUIsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1RixJQUFJLGVBQWUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDN0UsT0FBTyxDQUFDLDBCQUEwQjtTQUNuQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdCO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBRW5HLGlCQUFpQixDQUFDLElBQUksQ0FDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWE7aUJBQ3JFLENBQUMsU0FBUyxDQUNULFFBQVEsQ0FBQyxFQUFFO29CQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUMzQixDQUFDLENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLEdBQUcsR0FBRywrQkFBK0IsQ0FBQyxDQUFDO2FBQzdGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLEdBQVU7UUFDaEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN0RCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RCxPQUFPLEVBQUUsQ0FBWSxFQUFFLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztZQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxHQUFVO1FBQ2xDLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO1FBQy9DLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzlDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLElBQUk7aUJBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQzs7aUhBcFFtQixvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUZ6QyxTQUFTOzZGQWVRLGVBQWU7c0JBRDlCLE1BQU07Z0JBUVMsZ0JBQWdCO3NCQUQvQixNQUFNO2dCQVFTLGVBQWU7c0JBRDlCLE1BQU07Z0JBNkRJLFFBQVE7c0JBRGxCLEtBQUs7Z0JBYUssU0FBUztzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgTmdab25lLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbGRlclNlbGVjdEJhc2UsIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGV9IGZyb20gJy4uL2VsZGVyLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7SURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCwgdGltZW91dH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTZXRzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vc2V0cyc7XG5pbXBvcnQge0NvbGxlY3Rpb25VdGlsfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvY29sbGVjdGlvbi11dGlsJztcblxuXG4vKipcbiAqIEJhc2UgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG9mIGVsZGVyLW11bHRpLXNlbGVjdC5cbiAqXG4gKiBNdWx0aSBTZWxlY3QgaGFzIHRoZSBmb2xsb3dpbmcgYWJzdHJhY3QgY29uY2VwdDpcbiAqXG4gKiAtIFN1Z2dlc3Rpb24tTW9kZWw6IEEgRGF0YVNvdXJjZSBhbmQgZGVyaXZlZCBEYXRhQ29udGV4dCBmb3IgdGhlIChhdXRvLWNvbXBsZXRlKSBzdWdnZXN0aW9ucy5cbiAqIC0gVGhlIGJhY2tpbmcgVmFsdWUgaXMgYSBsaXN0IG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIGVudGl0aWVzLiBUW11cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT4gZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWVbXT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXRpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxURW50aXR5W10+KFtdKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkc0NoYW5nZTogT2JzZXJ2YWJsZTxUSWRbXT47XG5cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gZW50aXR5LWlkIGNoYW5nZSwgYnV0IGVtaXRzIG9ubHkgd2hlbiB0aGUgdXNlclxuICAgKiBoYXMgdXBkYXRlZCB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkc1VwZGF0ZWQ6IE9ic2VydmFibGU8VElkW10+O1xuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGVudGl0eSBjaGFuZ2UsIGJ1dCBlbWl0cyBvbmx5IHdoZW4gdGhlIHVzZXJcbiAgICogaGFzIHVwZGF0ZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdGllc1VwZGF0ZWQ6IE9ic2VydmFibGU8VEVudGl0eVtdPjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgem9uZTogTmdab25lXG4gICkge1xuICAgIHN1cGVyKHpvbmUpO1xuXG4gICAgdGhpcy5lbnRpdHlJZHNDaGFuZ2UgPSB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAodmFsdWVzID0+IHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXMpKVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0eUlkc1VwZGF0ZWQgPSB0aGlzLnZhbHVlVXBkYXRlZC5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdGllc1VwZGF0ZWQgPSB0aGlzLmVudGl0eUlkc1VwZGF0ZWQucGlwZShcbiAgICAgIHRhcChlbnRpdHlJZHMgPT4gdGhpcy5sb2dnZXIuZGVidWcoJ0F3YWl0aW5nIGVudGl0aWVzIHdpdGggaWRzJywgZW50aXR5SWRzKSksXG4gICAgICBzd2l0Y2hNYXAoZW50aXR5SWRzID0+IHRoaXMuYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHMsIHRoaXMudGltZW91dEFmdGVyTXMpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihgYXdhaXRFbnRpdGllc1dpdGhJZCAtPiB0aW1lZCBvdXQgYWZ0ZXI6ICR7dGhpcy50aW1lb3V0QWZ0ZXJNc31gLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGF3YWl0RW50aXRpZXNXaXRoSWQoZW50aXR5SWRzOiBUSWRbXSwgdGltZW91dE1zOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0aWVzJC5waXBlKFxuICAgICAgdGFwKGVudGl0aWVzID0+IHRoaXMubG9nZ2VyLmRlYnVnKCdHb3QgZW50aXRpZXMgZm9yIGlkcycgKyBlbnRpdHlJZHMsIGVudGl0aWVzKSksXG4gICAgICBmaWx0ZXIoZW50aXRpZXMgPT4gdGhpcy5lcXVhbElkcyh0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllcyksIGVudGl0eUlkcykpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHRpbWVvdXQodGltZW91dE1zKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdXBkYXRlVmFsdWVCeUVudGl0aWVzKGVudGl0aWVzOiBURW50aXR5W10pOiB2b2lkIHtcbiAgICB0aGlzLmVudGl0aWVzJC5uZXh0KGVudGl0aWVzKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgdGhpcy5lbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0aWVzKGVudGl0aWVzOiBURW50aXR5W10pIHtcbiAgICB0aGlzLmVudGl0aWVzJC5uZXh0KGVudGl0aWVzKTtcbiAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChcbiAgICAgIHRoaXMuZW50aXRpZXNUb1ZhbHVlcyhlbnRpdGllcylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdGllcygpOiBURW50aXR5W10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0aWVzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHlJZHMoaWRzOiBUSWRbXSkge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoPGFueT5pZHMgYXMgVFZhbHVlW10pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHMoaWRzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0eUlkcygpOiBUSWRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBvblN1Z2dlc3Rpb25zRGNDaGFuZ2VkKGRhdGE6IElEYXRhQ29udGV4dDxURW50aXR5Pik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdGllc0J5SWRzKHRoaXMuZW50aXR5SWRzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgaW52b2tlZCBhZnRlciBhIHZhbHVlIGhhcyBiZWVuIHdyaXR0ZW4gdG8gdGhpcyBjb250cm9sLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIHdyaXRlVG9Db250cm9sKHZhbHVlOiBUVmFsdWVbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgY29uc3QgZW50aXR5SWRzID0gPGFueT52YWx1ZSBhcyBUSWRbXTtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSBpZHMsIGVuc3VyZSB3ZSBzZWxlY3QgZW50aXR5IGJ5IGlkXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGlkczogJyArIGVudGl0eUlkcywgdmFsdWUpO1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdGllc0J5SWRzKGVudGl0eUlkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSwgZW5zdXJlIGVudGl0eSBpcyB1cGRhdGVkXG4gICAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzO1xuICAgICAgY29uc3QgbmV3RW50aXRpZXMgPSA8YW55PnZhbHVlIGFzIFRFbnRpdHlbXTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXRpZXMgKHNpemUpOiAnICsgbmV3RW50aXRpZXM/Lmxlbmd0aCwgdmFsdWUpO1xuICAgICAgaWYgKCF0aGlzLmVxdWFsRW50aXRpZXMoY3VycmVudEVudGl0aWVzLCBuZXdFbnRpdGllcykpIHtcbiAgICAgICAgdGhpcy5lbnRpdGllcyQubmV4dChuZXdFbnRpdGllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdJZ25vcmVkIHdyaXR0ZW4gZW50aXRpZXMgYXMgdGhleSBhcmUgYWxyZWFkeSBzZXQgdG8gZW50aXRpZXMkIScpO1xuICAgICAgfVxuICAgIH1cbiAgICBzdXBlci53cml0ZVRvQ29udHJvbCh2YWx1ZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzOiBUVmFsdWVbXSk6IFRJZFtdIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodiA9PiB0aGlzLmVudGl0eUlkRnJvbVZhbHVlKHYpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkRnJvbVZhbHVlKHZhbHVlOiBUVmFsdWUpOiBUSWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgcmV0dXJuIDxhbnk+dmFsdWUgYXMgVElkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSAoPGFueT52YWx1ZSkgYXMgVEVudGl0eTtcbiAgICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzOiBURW50aXR5W10pOiBUVmFsdWVbXSB8IG51bGwge1xuICAgIGlmIChlbnRpdGllcykge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcChlID0+IHRoaXMuZW50aXR5VG9WYWx1ZShlKSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICAgIHJldHVybiA8YW55PmlkIGFzIFRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxhbnk+ZW50aXR5IGFzIFRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUlkcyh2YWx1ZXM6IFRFbnRpdHlbXSB8IG51bGwpOiBUSWRbXSB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodiA9PiB0aGlzLmdldEVudGl0eUlkKHYpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVxdWFsSWRzKGlkc0E6IFRJZFtdLCBpZHNCOiBUSWRbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTZXRzLmVxdWFsQ29udGVudChpZHNBLCBpZHNCKTtcbiAgfVxuXG4gIHByaXZhdGUgZXF1YWxFbnRpdGllcyhlbnRpdGllc0E6IFRFbnRpdHlbXSwgZW50aXRpZXNCOiBURW50aXR5W10pIHtcbiAgICByZXR1cm4gdGhpcy5lcXVhbElkcyh0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0EpLCB0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0IpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0RW50aXRpZXNCeUlkcyhpZHM6IFRJZFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEVudGl0aWVzID0gdGhpcy5lbnRpdGllcztcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdzZWxlY3RFbnRpdGllc0J5SWRzOiBpZHMnICsgaWRzICsgJywgY3VycmVudCBlbnRpdGllczonLCBjdXJyZW50RW50aXRpZXMpO1xuICAgIGlmIChjdXJyZW50RW50aXRpZXMgJiYgdGhpcy5lcXVhbElkcyh0aGlzLmdldEVudGl0eUlkcyhjdXJyZW50RW50aXRpZXMpLCBpZHMpKSB7XG4gICAgICByZXR1cm47IC8vIEVudGl0aWVzIGFscmVhZHkgbG9hZGVkXG4gICAgfVxuXG4gICAgaWYgKCFDb2xsZWN0aW9uVXRpbC5oYXNFbGVtZW50cyhpZHMpKSB7XG4gICAgICBpZiAoQ29sbGVjdGlvblV0aWwuaGFzRWxlbWVudHMoY3VycmVudEVudGl0aWVzKSkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChbXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25zRGMpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmZpbmRJbkRhdGFDb250ZXh0KGlkcyk7XG4gICAgICAgIGNvbnN0IG1pc3NpbmdJZHMgPSBpZHMuZmlsdGVyKGlkID0+ICFleGlzdGluZy5oYXMoaWQpKTtcbiAgICAgICAgY29uc3QgdmFsdWVMb2FkUmVxdWVzdCQgPSBtaXNzaW5nSWRzLmxlbmd0aCA+IDAgPyB0aGlzLmxvYWRFbnRpdHlCeUlkcyhtaXNzaW5nSWRzKSA6IG9mKG5ldyBNYXAoKSk7XG5cbiAgICAgICAgdmFsdWVMb2FkUmVxdWVzdCQucGlwZShcbiAgICAgICAgICBtYXAobG9hZGVkID0+IHtcbiAgICAgICAgICAgIGxvYWRlZC5mb3JFYWNoKCh2LCBrKSA9PiBleGlzdGluZy5zZXQoaywgdikpO1xuICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcChhbGxWYWx1ZXNNYXAgPT4gQXJyYXkuZnJvbShhbGxWYWx1ZXNNYXAudmFsdWVzKCkpKSAvLyBUT0RPIFNvcnQ/XG4gICAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAgIGVudGl0aWVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW50aXRpZXMgPSBlbnRpdGllcztcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gc2VsZWN0IHZhbHVlIGJ5IElkczogJyArIGlkcyArICcgLSBEYXRhQ29udGV4dCBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEVudGl0eUJ5SWRzKGlkczogVElkW10pOiBPYnNlcnZhYmxlPE1hcDxUSWQsIFRFbnRpdHk+PiB7XG4gICAgcmV0dXJuIHRoaXMuc3VnZ2VzdGlvbnNEYy5kYXRhU291cmNlLmZpbmRCeUlkcyhpZHMpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCB2YWx1ZXMgYnkgaWRzICcgKyBpZHMsIGVycik7XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihlcnIpKTtcbiAgICAgICAgcmV0dXJuIG9mKDxURW50aXR5W10+W10pO1xuICAgICAgfSksXG4gICAgICBtYXAodmFsdWVzID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xvYWRlZCBlbnRpdGllcyBieSBpZDonLCB2YWx1ZXMpO1xuICAgICAgICBjb25zdCB2YWx1ZU1hcCA9IG5ldyBNYXA8VElkLCBURW50aXR5PigpO1xuICAgICAgICB2YWx1ZXMuZm9yRWFjaCh2ID0+IHZhbHVlTWFwLnNldCh0aGlzLmdldEVudGl0eUlkKHYpLCB2KSk7XG4gICAgICAgIHJldHVybiB2YWx1ZU1hcDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEluRGF0YUNvbnRleHQoaWRzOiBUSWRbXSk6IE1hcDxUSWQsIFRFbnRpdHk+IHtcbiAgICBjb25zdCBleGlzdGluZ1ZhbHVlcyA9IG5ldyBNYXA8VElkLCBURW50aXR5PigpO1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnN1Z2dlc3Rpb25zRGMuc25hcHNob3QuZGF0YTtcbiAgICAgIGNvbnN0IHJlcXVpcmVkSWRzID0gbmV3IFNldChpZHMpO1xuICAgICAgZGF0YVxuICAgICAgICAuZmlsdGVyKGQgPT4gcmVxdWlyZWRJZHMuaGFzKHRoaXMuZ2V0RW50aXR5SWQoZCkpKVxuICAgICAgICAuZm9yRWFjaChkID0+IGV4aXN0aW5nVmFsdWVzLnNldCh0aGlzLmdldEVudGl0eUlkKGQpLCBkKSk7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZ1ZhbHVlcztcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -117,7 +117,7 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
117
117
|
}
|
|
118
118
|
addLabels(labels) {
|
|
119
119
|
const current = this.entities ? this.entities : [];
|
|
120
|
-
this.
|
|
120
|
+
this.updateValueByEntities([...current, ...labels]);
|
|
121
121
|
}
|
|
122
122
|
addLabel(label) {
|
|
123
123
|
this.addLabels([label]);
|
|
@@ -125,7 +125,7 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
125
125
|
removeLabel(toRemove) {
|
|
126
126
|
const remaining = this.entities
|
|
127
127
|
.filter(l => !this.isEqual(l, toRemove));
|
|
128
|
-
this.
|
|
128
|
+
this.updateValueByEntities(remaining);
|
|
129
129
|
}
|
|
130
130
|
/***************************************************************************
|
|
131
131
|
* *
|
|
@@ -167,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
167
167
|
}], chipColorResolver: [{
|
|
168
168
|
type: Input
|
|
169
169
|
}] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLHVCQUF1QixFQUFVLFNBQVMsRUFBYyxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7Ozs7Ozs7QUFFbEcsTUFBTSxVQUFVO0lBQ2QsWUFDa0IsS0FBUSxFQUNSLFdBQW1CLEVBQ25CLEtBQW1CLEVBQ25CLFVBQW1CO1FBSG5CLFVBQUssR0FBTCxLQUFLLENBQUc7UUFDUixnQkFB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Q0FBQzs7MkhBM0tVLDhCQUE4QjsrR0FBOUIsOEJBQThCLGlLQUY5Qiw2QkFBNkIsQ0FBQyw4QkFBOEIsQ0FBQyx5RUE0QjFELHdCQUF3QiwyQkFBUyxXQUFXLDZLQ3RENUQsMjlFQTBFQTsyRkQ5Q2EsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyw2QkFBNkIsZ0NBQWdDOzZGQXNCakUsV0FBVztzQkFEakIsS0FBSztnQkFLRSxZQUFZO3NCQURuQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBSWhDLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztnQkF1RDlELFlBQVk7c0JBRHRCLEtBQUs7Z0JBYUssaUJBQWlCO3NCQUQzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE5nWm9uZSwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBJbnB1dCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyTXVsdGlTZWxlY3RCYXNlfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9jb2xvcic7XG5pbXBvcnQge1RleHRSZXNvbHZlckZufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtY2hpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVyc30gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2Zvcm1zL3RlbXBsYXRlLWNvbXBvc2l0ZS1jb250cm9sJztcblxuY2xhc3MgU2VsZWN0Q2hpcDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sb3I6IFRoZW1lUGFsZXR0ZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVtb3ZlYWJsZTogYm9vbGVhblxuICApIHtcbiAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogYnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnMoRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50KVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQ8VElkID0gYW55LCBURW50aXR5ID0gYW55LCBUVmFsdWUgPSBhbnk+XG4gIGV4dGVuZHMgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+XG4gIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdENoaXBzJDogT2JzZXJ2YWJsZTxTZWxlY3RDaGlwPFRFbnRpdHk+W10+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcENvbG9yUmVzb2x2ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlPigodmFsdWU6IFRFbnRpdHkpID0+IHVuZGVmaW5lZCk7XG5cblxuICBwdWJsaWMgc2VsZWN0YWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93UmVtb3ZlID0gdHJ1ZTtcblxuXG4gIEBWaWV3Q2hpbGQoJ2NoaXBJbnB1dCcsIHtzdGF0aWM6IGZhbHNlfSlcbiAgcHJpdmF0ZSBpbnB1dENvbnRyb2w6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSlcbiAgcHVibGljIGNoaXBUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIF9jaGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoem9uZSk7XG4gICAgdGhpcy5zZWxlY3RDaGlwcyQgPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgW1xuICAgICAgICB0aGlzLmVudGl0aWVzJCxcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciQsXG4gICAgICAgIHRoaXMuY2hpcENvbG9yUmVzb2x2ZXIkXG4gICAgICBdXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWVzLCBkUFIsIGNDUl0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICAgIHJldHVybiB2YWx1ZXMubWFwKFxuICAgICAgICAgICAgdiA9PiBuZXcgU2VsZWN0Q2hpcDxURW50aXR5PihcbiAgICAgICAgICAgICAgdixcbiAgICAgICAgICAgICAgZFBSKHYpLFxuICAgICAgICAgICAgICBjQ1IodiksXG4gICAgICAgICAgICAgIHRoaXMuYWxsb3dSZW1vdmVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiA8U2VsZWN0Q2hpcDxURW50aXR5PltdPltdO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX2NoaXBUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBUZW1wbGF0ZSB8fCB0aGlzLmNoaXBUZW1wbGF0ZVF1ZXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgY29sb3Igb2YgYSBnaXZlbiBsYWJlbCBvYmplY3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBDb2xvclJlc29sdmVyKGZuOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjaGlwQ29sb3JSZXNvbHZlciBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuY2hpcENvbG9yUmVzb2x2ZXIkLm5leHQoZm4pO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGbigpOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKG9wdGlvbjogVEVudGl0eSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbihvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uSGlkZGVuSW50ZXJuYWxGbigpOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKG9wdGlvbjogVEVudGl0eSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNBbHJlYWR5UHJlc2VudChvcHRpb24pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcHRpb25IaWRkZW5Gbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkhpZGRlbkZuKG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbk9wdGlvblNlbGVjdGVkKHNlbGVjdGVkVmFsdWU6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICBpZiAoc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICB0aGlzLmFkZExhYmVsKHNlbGVjdGVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRMYWJlbHMobGFiZWxzOiBURW50aXR5W10pIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5lbnRpdGllcyA/IHRoaXMuZW50aXRpZXMgOiBbXTtcbiAgICB0aGlzLmVudGl0aWVzID0gWy4uLmN1cnJlbnQsIC4uLmxhYmVsc107XG4gIH1cblxuICBwdWJsaWMgYWRkTGFiZWwobGFiZWw6IGFueSkge1xuICAgIHRoaXMuYWRkTGFiZWxzKFtsYWJlbF0pO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUxhYmVsKHRvUmVtb3ZlOiBURW50aXR5KTogdm9pZCB7XG4gICAgY29uc3QgcmVtYWluaW5nID0gdGhpcy5lbnRpdGllc1xuICAgICAgLmZpbHRlcihsID0+ICF0aGlzLmlzRXF1YWwobCwgdG9SZW1vdmUpKTtcbiAgICB0aGlzLmVudGl0aWVzID0gcmVtYWluaW5nO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBpc0FscmVhZHlQcmVzZW50KHF1ZXJ5VmFsdWU6IFRFbnRpdHkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5lbnRpdGllcykge1xuICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuc29tZSh2ID0+IHRoaXMuaXNFcXVhbCh2LCBxdWVyeVZhbHVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0SW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRDb250cm9sKSB7XG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdGYWlsZWQgdG8gcmVzZXQgaW5wdXRDb250cm9sIHNpbmNlIGl0IHdhcyBub3QgZm91bmQhJyk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIihzZWxlY3RDaGlwcyQgfCBhc3luYykgYXMgY2hpcFZhbHVlc1wiIGZ4RmxleFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItc3RkLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4+XG5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbCB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG5cblxuICA8bmctY29udGFpbmVyIG1hdFByZWZpeCAqbmdJZj1cIihtZXJnZWRTdGF0ZSQgfCBhc3luYykgYXMgc3RhdGVcIj5cblxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIiBkaXNhYmxlZFxuICAgICAgICAgICAgICBjbGFzcz1cImxlYWRpbmctaWNvbiBwcmVmaXgtcGFkZGluZyBub3NlbGVjdFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICAgICAgICBbY29sb3JdPVwic3RhdGU/LmVycm9yID8gJ3dhcm4nIDogY29sb3JcIj5cbiAgICAgIHt7aWNvbn19XG4gICAgPC9tYXQtaWNvbj5cblxuXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiIWljb24gJiYgc3RhdGU/LmVycm9yXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsZWFkaW5nLWljb24gcHJlZml4LXBhZGRpbmcgbm9zZWxlY3RcIlxuICAgICAgICAgICAgICBjb2xvcj1cIndhcm5cIj5cbiAgICAgIHdhcm5pbmdcbiAgICA8L21hdC1pY29uPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIEEgZHluYW1pYyBpbnB1dCAtLT5cblxuICA8bWF0LWNoaXAtbGlzdCBzZWxlY3RhYmxlICNjaGlwcz5cbiAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGNoaXBNb2RlbCBvZiBjaGlwVmFsdWVzXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJub3NlbGVjdFwiXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJjaGlwTW9kZWwuY29sb3JcIiBzZWxlY3RhYmxlIHNlbGVjdGVkXG4gICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwiY2hpcE1vZGVsLnJlbW92ZWFibGVcIlxuICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVMYWJlbChjaGlwTW9kZWwudmFsdWUpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpcFRlbXBsYXRlIHx8IHNpbXBsZUNoaXBUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY2hpcE1vZGVsfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZSAqbmdJZj1cImNoaXBNb2RlbC5yZW1vdmVhYmxlXCI+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L21hdC1jaGlwPlxuXG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgW25hbWVdPVwibmFtZSArICctbXVsdGktY2hpcHMtaW5uZXItaW5wdXQnXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiXG4gICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdXG4gICAgICAgICAgIFtlbGRlckVsZGVyQXV0b2NvbXBsZXRlXT1cImVsZGVyQXV0b1wiIFtxdWVyeUZpbHRlcl09XCJxdWVyeUZpbHRlclwiIFtmaWx0ZXJzXT1cImZpbHRlcnNcIiBbc29ydHNdPVwic29ydHNcIlxuICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAjY2hpcElucHV0PlxuICA8L21hdC1jaGlwLWxpc3Q+XG5cbiAgPGVsZGVyLWF1dG9jb21wbGV0ZVxuICAgICNlbGRlckF1dG89XCJlbGRlckF1dG9jb21wbGV0ZVwiXG4gICAgW3N1Z2dlc3Rpb25zRGNdPVwic3VnZ2VzdGlvbnNEYyQgfCBhc3luY1wiXG4gICAgW3ZhbHVlVGVtcGxhdGVdPVwidmFsdWVUZW1wbGF0ZVwiXG4gICAgW2Rpc3BsYXlQcm9wZXJ0eVJlc29sdmVyXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCJcbiAgICBbaXNPcHRpb25EaXNhYmxlZEZuXT1cImlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuXCJcbiAgICBbaXNPcHRpb25IaWRkZW5Gbl09XCJpc09wdGlvbkhpZGRlbkludGVybmFsRm5cIlxuICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbk9wdGlvblNlbGVjdGVkKCRhbnkoJGV2ZW50KSlcIlxuICA+PC9lbGRlci1hdXRvY29tcGxldGU+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwiaGludFwiPnt7aGludCB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cblxuPC9tYXQtZm9ybS1maWVsZD5cblxuXG48bmctdGVtcGxhdGUgI3NpbXBsZUNoaXBUZW1wbGF0ZSBsZXQtY2hpcE1vZGVsPlxuICB7e2NoaXBNb2RlbC5kaXNwbGF5VGV4dH19XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLHVCQUF1QixFQUFVLFNBQVMsRUFBYyxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7Ozs7Ozs7QUFFbEcsTUFBTSxVQUFVO0lBQ2QsWUFDa0IsS0FBUSxFQUNSLFdBQW1CLEVBQ25CLEtBQW1CLEVBQ25CLFVBQW1CO1FBSG5CLFVBQUssR0FBTCxLQUFLLENBQUc7UUFDUixnQkFB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QUM7U0FDeEU7SUFDSCxDQUFDOzsySEEzS1UsOEJBQThCOytHQUE5Qiw4QkFBOEIsaUtBRjlCLDZCQUE2QixDQUFDLDhCQUE4QixDQUFDLHlFQTRCMUQsd0JBQXdCLDJCQUFTLFdBQVcsNktDdEQ1RCwyOUVBMEVBOzJGRDlDYSw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLDZCQUE2QixnQ0FBZ0M7NkZBc0JqRSxXQUFXO3NCQURqQixLQUFLO2dCQUtFLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFJaEMsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLHdCQUF3QixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQXVEOUQsWUFBWTtzQkFEdEIsS0FBSztnQkFhSyxpQkFBaUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgTmdab25lLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIElucHV0LCBDb250ZW50Q2hpbGQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJNdWx0aVNlbGVjdEJhc2V9IGZyb20gJy4uL2VsZGVyLW11bHRpLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9jb21tb24tYmVoYXZpb3JzL2NvbG9yJztcbmltcG9ydCB7VGV4dFJlc29sdmVyRm59IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbGRlclNlbGVjdENoaXBEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge2J1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZm9ybXMvdGVtcGxhdGUtY29tcG9zaXRlLWNvbnRyb2wnO1xuXG5jbGFzcyBTZWxlY3RDaGlwPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvcjogVGhlbWVQYWxldHRlLFxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdmVhYmxlOiBib29sZWFuXG4gICkge1xuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVycyhFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQpXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudDxUSWQgPSBhbnksIFRFbnRpdHkgPSBhbnksIFRWYWx1ZSA9IGFueT5cbiAgZXh0ZW5kcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT5cbiAgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0Q2hpcHMkOiBPYnNlcnZhYmxlPFNlbGVjdENoaXA8VEVudGl0eT5bXT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwQ29sb3JSZXNvbHZlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PChvMTogYW55KSA9PiBUaGVtZVBhbGV0dGU+KCh2YWx1ZTogVEVudGl0eSkgPT4gdW5kZWZpbmVkKTtcblxuXG4gIHB1YmxpYyBzZWxlY3RhYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dSZW1vdmUgPSB0cnVlO1xuXG5cbiAgQFZpZXdDaGlsZCgnY2hpcElucHV0Jywge3N0YXRpYzogZmFsc2V9KVxuICBwcml2YXRlIGlucHV0Q29udHJvbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q2hpcERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgY2hpcFRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgX2NoaXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgICBzdXBlcih6b25lKTtcbiAgICB0aGlzLnNlbGVjdENoaXBzJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuZW50aXRpZXMkLFxuICAgICAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCxcbiAgICAgICAgdGhpcy5jaGlwQ29sb3JSZXNvbHZlciRcbiAgICAgIF1cbiAgICApLnBpcGUoXG4gICAgICBtYXAoKFt2YWx1ZXMsIGRQUiwgY0NSXSkgPT4ge1xuICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlcy5tYXAoXG4gICAgICAgICAgICB2ID0+IG5ldyBTZWxlY3RDaGlwPFRFbnRpdHk+KFxuICAgICAgICAgICAgICB2LFxuICAgICAgICAgICAgICBkUFIodiksXG4gICAgICAgICAgICAgIGNDUih2KSxcbiAgICAgICAgICAgICAgdGhpcy5hbGxvd1JlbW92ZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIDxTZWxlY3RDaGlwPFRFbnRpdHk+W10+W107XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fY2hpcFRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcFRlbXBsYXRlIHx8IHRoaXMuY2hpcFRlbXBsYXRlUXVlcnk7XG4gIH1cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSBjb2xvciBvZiBhIGdpdmVuIGxhYmVsIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcENvbG9yUmVzb2x2ZXIoZm46IChvMTogYW55KSA9PiBUaGVtZVBhbGV0dGUpIHtcbiAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoaXBDb2xvclJlc29sdmVyIG11c3QgYmUgYSBmdW5jdGlvbiEnKTtcbiAgICB9XG4gICAgdGhpcy5jaGlwQ29sb3JSZXNvbHZlciQubmV4dChmbik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkRm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0FscmVhZHlQcmVzZW50KG9wdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkhpZGRlbkZuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uSGlkZGVuRm4ob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uT3B0aW9uU2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGlmIChzZWxlY3RlZFZhbHVlKSB7XG4gICAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICAgIHRoaXMuYWRkTGFiZWwoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExhYmVscyhsYWJlbHM6IFRFbnRpdHlbXSkge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmVudGl0aWVzID8gdGhpcy5lbnRpdGllcyA6IFtdO1xuICAgIHRoaXMudXBkYXRlVmFsdWVCeUVudGl0aWVzKFsuLi5jdXJyZW50LCAuLi5sYWJlbHNdKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRMYWJlbChsYWJlbDogYW55KSB7XG4gICAgdGhpcy5hZGRMYWJlbHMoW2xhYmVsXSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlTGFiZWwodG9SZW1vdmU6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICBjb25zdCByZW1haW5pbmcgPSB0aGlzLmVudGl0aWVzXG4gICAgICAuZmlsdGVyKGwgPT4gIXRoaXMuaXNFcXVhbChsLCB0b1JlbW92ZSkpO1xuICAgIHRoaXMudXBkYXRlVmFsdWVCeUVudGl0aWVzKHJlbWFpbmluZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGlzQWxyZWFkeVByZXNlbnQocXVlcnlWYWx1ZTogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbnRpdGllcy5zb21lKHYgPT4gdGhpcy5pc0VxdWFsKHYsIHF1ZXJ5VmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRJbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENvbnRyb2wpIHtcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoJ0ZhaWxlZCB0byByZXNldCBpbnB1dENvbnRyb2wgc2luY2UgaXQgd2FzIG5vdCBmb3VuZCEnKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiKHNlbGVjdENoaXBzJCB8IGFzeW5jKSBhcyBjaGlwVmFsdWVzXCIgZnhGbGV4XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1zdGQtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgICAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbj5cblxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cblxuXG4gIDxuZy1jb250YWluZXIgbWF0UHJlZml4ICpuZ0lmPVwiKG1lcmdlZFN0YXRlJCB8IGFzeW5jKSBhcyBzdGF0ZVwiPlxuXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiIGRpc2FibGVkXG4gICAgICAgICAgICAgIGNsYXNzPVwibGVhZGluZy1pY29uIHByZWZpeC1wYWRkaW5nIG5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmxvYWRpbmddPVwic3RhdGUubG9hZGluZ1wiXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJzdGF0ZT8uZXJyb3IgPyAnd2FybicgOiBjb2xvclwiPlxuICAgICAge3tpY29ufX1cbiAgICA8L21hdC1pY29uPlxuXG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCIhaWNvbiAmJiBzdGF0ZT8uZXJyb3JcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxlYWRpbmctaWNvbiBwcmVmaXgtcGFkZGluZyBub3NlbGVjdFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiPlxuICAgICAgd2FybmluZ1xuICAgIDwvbWF0LWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gQSBkeW5hbWljIGlucHV0IC0tPlxuXG4gIDxtYXQtY2hpcC1saXN0IHNlbGVjdGFibGUgI2NoaXBzPlxuICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgY2hpcE1vZGVsIG9mIGNoaXBWYWx1ZXNcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cImNoaXBNb2RlbC5jb2xvclwiIHNlbGVjdGFibGUgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJjaGlwTW9kZWwucmVtb3ZlYWJsZVwiXG4gICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZUxhYmVsKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGlwVGVtcGxhdGUgfHwgc2ltcGxlQ2hpcFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlICpuZ0lmPVwiY2hpcE1vZGVsLnJlbW92ZWFibGVcIj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvbWF0LWNoaXA+XG5cbiAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJy1tdWx0aS1jaGlwcy1pbm5lci1pbnB1dCdcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBzXCJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV1cbiAgICAgICAgICAgW2VsZGVyRWxkZXJBdXRvY29tcGxldGVdPVwiZWxkZXJBdXRvXCIgW3F1ZXJ5RmlsdGVyXT1cInF1ZXJ5RmlsdGVyXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIFtzb3J0c109XCJzb3J0c1wiXG4gICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICNjaGlwSW5wdXQ+XG4gIDwvbWF0LWNoaXAtbGlzdD5cblxuICA8ZWxkZXItYXV0b2NvbXBsZXRlXG4gICAgI2VsZGVyQXV0bz1cImVsZGVyQXV0b2NvbXBsZXRlXCJcbiAgICBbc3VnZ2VzdGlvbnNEY109XCJzdWdnZXN0aW9uc0RjJCB8IGFzeW5jXCJcbiAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICBbZGlzcGxheVByb3BlcnR5UmVzb2x2ZXJdPVwiZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkIHwgYXN5bmNcIlxuICAgIFtpc09wdGlvbkRpc2FibGVkRm5dPVwiaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm5cIlxuICAgIFtpc09wdGlvbkhpZGRlbkZuXT1cImlzT3B0aW9uSGlkZGVuSW50ZXJuYWxGblwiXG4gICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uT3B0aW9uU2VsZWN0ZWQoJGFueSgkZXZlbnQpKVwiXG4gID48L2VsZGVyLWF1dG9jb21wbGV0ZT5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJoaW50XCI+e3toaW50IHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxuXG48L21hdC1mb3JtLWZpZWxkPlxuXG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlQ2hpcFRlbXBsYXRlIGxldC1jaGlwTW9kZWw+XG4gIHt7Y2hpcE1vZGVsLmRpc3BsYXlUZXh0fX1cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
|