@elderbyte/ngx-starter 14.4.0-beta.12 → 14.4.0-beta.15
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/forms/elder-form-field-control-base.directive.mjs +9 -5
- package/esm2020/lib/components/select/elder-select-base.mjs +6 -5
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +7 -6
- package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +19 -18
- package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +23 -36
- package/fesm2015/elderbyte-ngx-starter.mjs +187 -197
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +187 -197
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/forms/elder-form-field-control-base.directive.d.ts +3 -1
- package/lib/components/select/elder-select-base.d.ts +2 -1
- package/lib/components/select/multi/elder-multi-select-base.d.ts +2 -1
- package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +3 -2
- package/lib/components/select/single/elder-select/elder-select.component.d.ts +6 -9
- package/package.json +1 -1
|
@@ -5,7 +5,8 @@ import { Directive, HostBinding, Input } from '@angular/core';
|
|
|
5
5
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/cdk/a11y";
|
|
8
|
-
import * as i2 from "@
|
|
8
|
+
import * as i2 from "@ngx-translate/core";
|
|
9
|
+
import * as i3 from "@angular/forms";
|
|
9
10
|
/**
|
|
10
11
|
* Base for custom material form field controls.
|
|
11
12
|
* https://material.angular.io/guide/creating-a-custom-form-field-control
|
|
@@ -19,7 +20,7 @@ export class ElderFormFieldControlBase extends ValueAccessorBase {
|
|
|
19
20
|
* Constructor *
|
|
20
21
|
* *
|
|
21
22
|
**************************************************************************/
|
|
22
|
-
constructor(hostRef, controlType, focusMonitor, ngControl) {
|
|
23
|
+
constructor(hostRef, controlType, focusMonitor, translateService, ngControl) {
|
|
23
24
|
super();
|
|
24
25
|
this.hostRef = hostRef;
|
|
25
26
|
this._disabled = false;
|
|
@@ -29,6 +30,7 @@ export class ElderFormFieldControlBase extends ValueAccessorBase {
|
|
|
29
30
|
this.stateChangePusher$ = new Subject();
|
|
30
31
|
this.destroy$ = new Subject();
|
|
31
32
|
this._focusMonitor = focusMonitor;
|
|
33
|
+
this._translate = translateService;
|
|
32
34
|
this.controlType = controlType;
|
|
33
35
|
this.ngControl = ngControl;
|
|
34
36
|
this.id = `elder-control-${this.controlType}-${ElderFormFieldControlBase.nextId++}`;
|
|
@@ -64,7 +66,9 @@ export class ElderFormFieldControlBase extends ValueAccessorBase {
|
|
|
64
66
|
* *
|
|
65
67
|
**************************************************************************/
|
|
66
68
|
set placeholder(value) {
|
|
67
|
-
this.
|
|
69
|
+
this._translate.get(value).subscribe({
|
|
70
|
+
next: translated => this._placeholder = translated
|
|
71
|
+
});
|
|
68
72
|
}
|
|
69
73
|
get placeholder() {
|
|
70
74
|
return this._placeholder;
|
|
@@ -155,7 +159,7 @@ ElderFormFieldControlBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
|
|
|
155
159
|
ElderFormFieldControlBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: ElderFormFieldControlBase, inputs: { placeholder: "placeholder", required: "required", disabled: "disabled", readonly: "readonly" }, host: { properties: { "id": "this.id" } }, usesInheritance: true, ngImport: i0 });
|
|
156
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ElderFormFieldControlBase, decorators: [{
|
|
157
161
|
type: Directive
|
|
158
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.NgControl }]; }, propDecorators: { id: [{
|
|
162
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.NgControl }]; }, propDecorators: { id: [{
|
|
159
163
|
type: HostBinding
|
|
160
164
|
}], placeholder: [{
|
|
161
165
|
type: Input
|
|
@@ -166,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
166
170
|
}], readonly: [{
|
|
167
171
|
type: Input
|
|
168
172
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZm9ybS1maWVsZC1jb250cm9sLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2Zvcm1zL2VsZGVyLWZvcm0tZmllbGQtY29udHJvbC1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsU0FBUyxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQWUscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUcxRTs7Ozs7O0dBTUc7QUFFSCxNQUFNLE9BQWdCLHlCQUNwQixTQUFRLGlCQUFvQjtJQStCNUI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLE9BQW1CLEVBQ3BDLFdBQW1CLEVBQ25CLFlBQTBCLEVBQzFCLFNBQXFCO1FBRXJCLEtBQUssRUFBRSxDQUFDO1FBTFMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQXhCOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNSLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdkMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUF1QmhELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcs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aWVsZENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtWYWx1ZUFjY2Vzc29yQmFzZX0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvci1iYXNlJztcbmltcG9ydCB7bWVyZ2VXaXRoLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsIE5nQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbi8qKlxuICogQmFzZSBmb3IgY3VzdG9tIG1hdGVyaWFsIGZvcm0gZmllbGQgY29udHJvbHMuXG4gKiBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvY3JlYXRpbmctYS1jdXN0b20tZm9ybS1maWVsZC1jb250cm9sXG4gKlxuICogSW1wbGVtZW50b3JzIG11c3QgcHJvdmlkZSB0aGUgTWF0Rm9ybUZpZWxkQ29udHJvbDpcbiAqIHByb3ZpZGVyczogW3twcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogTXlDb29sSW5wdXR9XVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlPFQ+XG4gIGV4dGVuZHMgVmFsdWVBY2Nlc3NvckJhc2U8VD5cbiAgaW1wbGVtZW50cyBNYXRGb3JtRmllbGRDb250cm9sPFQ+LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3I7XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVhZG9ubHkgPSBmYWxzZTtcblxuICBwcml2YXRlIF9mb2N1c2VkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVDaGFuZ2VQdXNoZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZygpIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBudWxsO1xuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZztcblxuICAvLyBUT0RPIC4uLlxuICByZWFkb25seSBhdXRvZmlsbGVkOiBib29sZWFuO1xuICByZWFkb25seSB1c2VyQXJpYURlc2NyaWJlZEJ5OiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmcsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgbmdDb250cm9sPzogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yID0gZm9jdXNNb25pdG9yO1xuICAgIHRoaXMuY29udHJvbFR5cGUgPSBjb250cm9sVHlwZTtcbiAgICB0aGlzLm5nQ29udHJvbCA9IG5nQ29udHJvbDtcbiAgICB0aGlzLmlkID0gYGVsZGVyLWNvbnRyb2wtJHt0aGlzLmNvbnRyb2xUeXBlfS0ke0VsZGVyRm9ybUZpZWxkQ29udHJvbEJhc2UubmV4dElkKyt9YDtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gICAgdGhpcy5pbml0Rm9jdXNNb25pdG9yKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGluaXRGb2N1c01vbml0b3IoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yXG4gICAgICAubW9uaXRvcih0aGlzLmhvc3RSZWYsIHRydWUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApLnN1YnNjcmliZShcbiAgICAgIGZvY3VzT3JpZ2luID0+IHtcbiAgICAgICAgaWYgKGZvY3VzT3JpZ2luKSB7XG4gICAgICAgICAgdGhpcy5vbkZvY3VzSW50ZXJuYWwoKTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgdGhpcy5vbkJsdXJJbnRlcm5hbCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlYWRvbmx5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTG9ja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLl9yZWFkb25seTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVDaGFuZ2VzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlJC5waXBlKFxuICAgICAgbWFwKHggPT4gPGFueT54KSxcbiAgICAgIG1lcmdlV2l0aCh0aGlzLnN0YXRlQ2hhbmdlUHVzaGVyJClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbD8uZGlydHk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB8fCAodGhpcy52YWx1ZSA9PT0gbnVsbCkgfHwgKDxhbnk+dGhpcy52YWx1ZSA9PT0gJycpO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5lbXB0eSB8fCB0aGlzLl9mb2N1c2VkO1xuICB9XG5cbiAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmIChpZHMubGVuZ3RoKSB7XG4gICAgICAvLyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgaWRzLmpvaW4oJyAnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQWJzdHJhY3QgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRm9jdXMgdGhpcyBjb250cm9sLlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBCbHVyIHRoaXMgY29udHJvbC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBibHVyKCk6IHZvaWQ7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVybmFsIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGVtaXRTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlUHVzaGVyJC5uZXh0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgd3JpdGVUb0NvbnRyb2wodmFsdWU6IFQpOiB2b2lkIHsgfVxuXG4gIHByb3RlY3RlZCBvbkZvY3VzSW50ZXJuYWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9mb2N1c2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuZW1pdFN0YXRlQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQmx1ckludGVybmFsKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzZWQgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIC8vIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgLy8gdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLmVtaXRTdGF0ZUNoYW5nZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZm9ybS1maWVsZC1jb250cm9sLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2Zvcm1zL2VsZGVyLWZvcm0tZmllbGQtY29udHJvbC1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsU0FBUyxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQWUscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFJMUU7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFnQix5QkFDcEIsU0FBUSxpQkFBb0I7SUFnQzVCOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixPQUFtQixFQUNwQyxXQUFtQixFQUNuQixZQUEwQixFQUMxQixnQkFBa0MsRUFDbEMsU0FBcUI7UUFFckIsS0FBSyxFQUFFLENBQUM7UUFOUyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBeEI5QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ1IsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQXdCaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsSUFBSSxD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TUEwQnVCLEVBQUU7c0JBQWhDLFdBQVc7Z0JBbUVELFdBQVc7c0JBRHJCLEtBQUs7Z0JBY0ssUUFBUTtzQkFEbEIsS0FBSztnQkFTSyxRQUFRO3NCQURsQixLQUFLO2dCQVNLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01hdEZvcm1GaWVsZENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtWYWx1ZUFjY2Vzc29yQmFzZX0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvci1iYXNlJztcbmltcG9ydCB7bWVyZ2VXaXRoLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsIE5nQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG4vKipcbiAqIEJhc2UgZm9yIGN1c3RvbSBtYXRlcmlhbCBmb3JtIGZpZWxkIGNvbnRyb2xzLlxuICogaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2d1aWRlL2NyZWF0aW5nLWEtY3VzdG9tLWZvcm0tZmllbGQtY29udHJvbFxuICpcbiAqIEltcGxlbWVudG9ycyBtdXN0IHByb3ZpZGUgdGhlIE1hdEZvcm1GaWVsZENvbnRyb2w6XG4gKiBwcm92aWRlcnM6IFt7cHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IE15Q29vbElucHV0fV1cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWxkZXJGb3JtRmllbGRDb250cm9sQmFzZTxUPlxuICBleHRlbmRzIFZhbHVlQWNjZXNzb3JCYXNlPFQ+XG4gIGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxUPiwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yO1xuICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVhZG9ubHkgPSBmYWxzZTtcblxuICBwcml2YXRlIF9mb2N1c2VkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVDaGFuZ2VQdXNoZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZygpIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBudWxsO1xuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZztcblxuICAvLyBUT0RPIC4uLlxuICByZWFkb25seSBhdXRvZmlsbGVkOiBib29sZWFuO1xuICByZWFkb25seSB1c2VyQXJpYURlc2NyaWJlZEJ5OiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmcsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9mb2N1c01vbml0b3IgPSBmb2N1c01vbml0b3I7XG4gICAgdGhpcy5fdHJhbnNsYXRlID0gdHJhbnNsYXRlU2VydmljZTtcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gY29udHJvbFR5cGU7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSBuZ0NvbnRyb2w7XG4gICAgdGhpcy5pZCA9IGBlbGRlci1jb250cm9sLSR7dGhpcy5jb250cm9sVHlwZX0tJHtFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlLm5leHRJZCsrfWA7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuaW5pdEZvY3VzTW9uaXRvcigpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBpbml0Rm9jdXNNb25pdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvclxuICAgICAgLm1vbml0b3IodGhpcy5ob3N0UmVmLCB0cnVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICBmb2N1c09yaWdpbiA9PiB7XG4gICAgICAgIGlmIChmb2N1c09yaWdpbikge1xuICAgICAgICAgIHRoaXMub25Gb2N1c0ludGVybmFsKCk7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIHRoaXMub25CbHVySW50ZXJuYWwoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdHJhbnNsYXRlLmdldCh2YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAge1xuICAgICAgICBuZXh0OiB0cmFuc2xhdGVkID0+IHRoaXMuX3BsYWNlaG9sZGVyID0gdHJhbnNsYXRlZFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZWFkb25seSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0xvY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy5fcmVhZG9ubHk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlQ2hhbmdlcygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSQucGlwZShcbiAgICAgIG1hcCh4ID0+IDxhbnk+eCksXG4gICAgICBtZXJnZVdpdGgodGhpcy5zdGF0ZUNoYW5nZVB1c2hlciQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmludmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2w/LmRpcnR5O1xuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkgfHwgKHRoaXMudmFsdWUgPT09IG51bGwpIHx8ICg8YW55PnRoaXMudmFsdWUgPT09ICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW1wdHkgfHwgdGhpcy5fZm9jdXNlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoaWRzLmxlbmd0aCkge1xuICAgICAgLy8gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScsIGlkcy5qb2luKCcgJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEZvY3VzIHRoaXMgY29udHJvbC5cbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQmx1ciB0aGlzIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmx1cigpOiB2b2lkO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBlbWl0U3RhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZVB1c2hlciQubmV4dCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHdyaXRlVG9Db250cm9sKHZhbHVlOiBUKTogdm9pZCB7IH1cblxuICBwcm90ZWN0ZWQgb25Gb2N1c0ludGVybmFsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZm9jdXNlZCA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRTdGF0ZUNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJsdXJJbnRlcm5hbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c2VkID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIC8vIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5lbWl0U3RhdGVDaGFuZ2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,7 +11,8 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
|
11
11
|
import { ElderFormFieldControlBase } from '../../common/forms/elder-form-field-control-base.directive';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@angular/cdk/a11y";
|
|
14
|
-
import * as i2 from "@
|
|
14
|
+
import * as i2 from "@ngx-translate/core";
|
|
15
|
+
import * as i3 from "@angular/forms";
|
|
15
16
|
export class ElderSelectComponentState {
|
|
16
17
|
constructor(idle, loading, error) {
|
|
17
18
|
this.idle = idle;
|
|
@@ -58,8 +59,8 @@ export class ElderSelectBase extends ElderFormFieldControlBase {
|
|
|
58
59
|
* Constructor *
|
|
59
60
|
* *
|
|
60
61
|
**************************************************************************/
|
|
61
|
-
constructor(zone, hostRef, controlType, focusMonitor, ngControl) {
|
|
62
|
-
super(hostRef, controlType, focusMonitor, ngControl);
|
|
62
|
+
constructor(zone, hostRef, controlType, focusMonitor, translateService, ngControl) {
|
|
63
|
+
super(hostRef, controlType, focusMonitor, translateService, ngControl);
|
|
63
64
|
this.zone = zone;
|
|
64
65
|
/***************************************************************************
|
|
65
66
|
* *
|
|
@@ -243,7 +244,7 @@ ElderSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
243
244
|
ElderSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: ElderSelectBase, inputs: { cleanUp: "cleanUp", pageSize: "pageSize", queryFilter: "queryFilter", sorts: "sorts", icon: "icon", isOptionDisabledFn: "isOptionDisabledFn", isOptionHiddenFn: "isOptionHiddenFn", valueAsId: "valueAsId", displayProperty: "displayProperty", displayPropertyResolver: "displayPropertyResolver", filters: "filters", dataSource: "dataSource", data: "data", valueTemplate: "valueTemplate" }, outputs: { currentClicked: "currentClicked" }, queries: [{ propertyName: "valueTemplateQuery", first: true, predicate: ElderSelectValueDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "selectionPopup", first: true, predicate: SelectionModelPopupDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
244
245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ElderSelectBase, decorators: [{
|
|
245
246
|
type: Directive
|
|
246
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.NgControl }]; }, propDecorators: { cleanUp: [{
|
|
247
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.NgControl }]; }, propDecorators: { cleanUp: [{
|
|
247
248
|
type: Input
|
|
248
249
|
}], pageSize: [{
|
|
249
250
|
type: Input
|
|
@@ -280,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
280
281
|
}], valueTemplate: [{
|
|
281
282
|
type: Input
|
|
282
283
|
}] } });
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9lbGRlci1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUd2RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDREQUE0RCxDQUFDOzs7O0FBUXJHLE1BQU0sT0FBTyx5QkFBeUI7SUF5QnBDLFlBQ2tCLElBQWEsRUFDYixPQUFnQixFQUNoQixLQUFhO1FBRmIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsVUFBSyxHQUFMLEtBQUss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QUMsNEJBQTRCO2dCQUluQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVFVLGNBQWM7c0JBRDdCLE1BQU07Z0JBMkNJLFNBQVM7c0JBRG5CLEtBQUs7Z0JBYUssZUFBZTtzQkFEekIsS0FBSztnQkFNSyx1QkFBdUI7c0JBRGpDLEtBQUs7Z0JBTUssT0FBTztzQkFEakIsS0FBSztnQkFVSyxVQUFVO3NCQURwQixLQUFLO2dCQVFLLElBQUk7c0JBRGQsS0FBSztnQkE4QkssYUFBYTtzQkFEdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udGVudENoaWxkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBOZ1pvbmUsIE91dHB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RGF0YUNvbnRleHRCdWlsZGVyfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXInO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL3NvcnQnO1xuaW1wb3J0IHtFbGRlclNlbGVjdFZhbHVlRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXNlbGVjdC12YWx1ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlfSBmcm9tICcuL3BvcHVwL3NlbGVjdGlvbi1tb2RlbC1wb3B1cC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1zdGF0dXMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3J1bkluWm9uZX0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzL25nLXpvbmUtdXRpbHMnO1xuaW1wb3J0IHtGaWx0ZXJDb250ZXh0fSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlfSBmcm9tICcuLi8uLi9jb21tb24vZm9ybXMvZWxkZXItZm9ybS1maWVsZC1jb250cm9sLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5leHBvcnQgdHlwZSBUZXh0UmVzb2x2ZXJGbiA9ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG5cblxuXG5leHBvcnQgY2xhc3MgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB7XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0YUNvbnRleHQoZGNTdGF0ZTogRGF0YUNvbnRleHRTdGF0dXMpOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlIHtcbiAgICBpZiAoZGNTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm4gRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5sb2FkaW5nKCk7XG4gICAgfSBlbHNlIGlmIChkY1N0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihkY1N0YXRlLmVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuaWRsZSgpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIHN0YXRpYyBpZGxlKCk6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSh0cnVlLCBmYWxzZSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGxvYWRpbmcoKTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlKGZhbHNlLCB0cnVlLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXJyb3IoZXJyb3I6IHN0cmluZyk6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZShmYWxzZSwgZmFsc2UsIGVycm9yKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBpZGxlOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBlcnJvcjogc3RyaW5nXG4gICkge1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBFTERFUl9TRUxFQ1RfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbGRlclNlbGVjdEJhc2U8YW55LCBhbnksIGFueT4+KCdFbGRlclNlbGVjdEJhc2UnKTtcblxuXG4vKipcbiAqIEJhc2UgY29tcG9uZW50IGZvciBFbGRlciBTZWxlY3Rpb24gQ29udHJvbHMuXG4gKlxuICogIEVsZGVyIFNlbGVjdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICpcbiAqIEBwYXJhbSBUSUQgRW50aXR5IElkIFR5cGVcbiAqIEBwYXJhbSBUIEVudGl0eSBUeXBlXG4gKiBAcGFyYW0gVFZhbHVlIFZhbHVlIGJhY2tpbmcgdGhlIGNvbnRyb2wuIENhbiBiZSB0aGUgZW50aXR5LCB0aGUgaWQgb3Igc29tZXRoaW5nIGVsc2UuXG4gKi9cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWxkZXJTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlPiBleHRlbmRzIEVsZGVyRm9ybUZpZWxkQ29udHJvbEJhc2U8VFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyQ29udGV4dCA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVBc0lkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCB0aW1lb3V0QWZ0ZXJNcyA9IDUwMDA7XG5cbiAgLyoqXG4gICAqIERlZmluZSBpZiBlbGRlci1zZWxlY3Qgc2hvdWxkIGNsZWFuIHVwIHRoZVxuICAgKiBkYXRhLWNvbnRleHQgcmVzb3VyY2VzIGZvciB5b3UuXG4gICAqXG4gICAqIEluIG1vcmUgYWR2YW5jZWQgc2NlbmFyaW9zIHdoZXJlIHlvdSBwbGFuIHRvIHJldXNlIHRoZSBzYW1lIGRhdGEtY29udGV4dFxuICAgKiBzZXQgdGhpcyB0byBmYWxzZSBhbmQgcmVsZWFzZSB0aGUgcmVzb3VyY2VzIHlvdXJzZWxmLiAoZGF0YUNvbnRleHQuY2xvc2UpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2xlYW5VcCA9IHRydWU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGV4dFJlc29sdmVyRm4+KCh2YWx1ZTogVEVudGl0eSkgPT4gdGhpcy5wcm9wZXJ0eVN0cmluZ1ZhbHVlKHZhbHVlLCBudWxsKSk7XG5cbiAgLyoqXG4gICAqIEVudGl0eSBEYXRhQ29udGV4dCwgd2hpY2ggaXMgdXNlZFxuICAgKiB0byBzaWRlIGxvYWQgZW50aXRpZXMgYnkgaWQgYW5kIGFsc29cbiAgICogdG8gbG9hZCBzdWdnZXN0aW9ucyB3aGVuIGF1dG8tY29tcGxldGluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkYXRhQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXRhQ29udGV4dDxURW50aXR5Pj4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFBhZ2Ugc2l6ZS4gKFVzZWQgZm9yIGluZmluaXRlIHNjcm9sbGluZyBjaHVua3MpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZVNpemUgPSAxMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcXVlcnlGaWx0ZXIgPSAncXVlcnknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzb3J0czogU29ydFtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wdGlvbiB0ZW1wbGF0ZSB0byBjdXN0b21pemUgdGhlIHVpIGxvb2suXG4gICAqL1xuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHZhbHVlVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfdmFsdWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKFNlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWxlY3Rpb25Qb3B1cDogU2VsZWN0aW9uTW9kZWxQb3B1cERpcmVjdGl2ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNPcHRpb25EaXNhYmxlZEZuOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc09wdGlvbkhpZGRlbkZuOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSB1c2VyIGhhcyBjbGlja2VkIG9uIHRoZSBjdXJyZW50XG4gICAqIHNlbGVjdGVkIGVudGl0eS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRFbnRpdHk+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZT4oRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5pZGxlKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVyZ2VkU3RhdGUkOiBPYnNlcnZhYmxlPEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGU+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSxcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmcsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgbmdDb250cm9sPzogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKGhvc3RSZWYsIGNvbnRyb2xUeXBlLCBmb2N1c01vbml0b3IsIG5nQ29udHJvbCk7XG5cbiAgICB0aGlzLm1lcmdlZFN0YXRlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5kYXRhQ29udGV4dCQucGlwZShmaWx0ZXIoZGMgPT4gISFkYyksIHN3aXRjaE1hcChkYyA9PiBkYy5zdGF0dXMpKSxcbiAgICAgIHRoaXMuc3RhdGUkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RjU3RhdGUsIHN0YXRlXSkgPT4ge1xuICAgICAgICBpZiAoZGNTdGF0ZS5pZGxlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmZyb21EYXRhQ29udGV4dChkY1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBydW5JblpvbmUodGhpcy56b25lKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlQXNJZCh2YWx1ZUFzSWQ6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3ZhbHVlQXNJZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZUFzSWQpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZUFzSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydHkgdXNlZCB0byBkaXNwbGF5IHRoZSB2YWx1ZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciA9ICh2YWx1ZSA9PiB0aGlzLnByb3BlcnR5U3RyaW5nVmFsdWUodmFsdWUsIHByb3BlcnR5KSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyKHJlc29sdmVyOiBUZXh0UmVzb2x2ZXJGbikge1xuICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLm5leHQocmVzb2x2ZXIpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhU291cmNlKHNvdXJjZTogSURhdGFTb3VyY2U8VEVudGl0eT4pIHtcbiAgICB0aGlzLmRhdGFDb250ZXh0ID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFRFbnRpdHk+KClcbiAgICAgIC5wYWdlU2l6ZSh0aGlzLnBhZ2VTaXplKVxuICAgICAgLmJ1aWxkKHNvdXJjZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEoZGF0YTogQXJyYXk8VEVudGl0eT4gfCBJRGF0YUNvbnRleHQ8VEVudGl0eT4pIHtcblxuICAgIHRoaXMuYXV0b0NsZWFuVXAoKTtcblxuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQ8VEVudGl0eT4oKVxuICAgICAgICAubG9jYWxTb3J0KClcbiAgICAgICAgLmJ1aWxkTG9jYWwoZGF0YSk7IC8vIE1lbW9yeSBsZWFrXG4gICAgICB0aGlzLmRhdGFDb250ZXh0LnN0YXJ0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQgPSBkYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dCA9IERhdGFDb250ZXh0QnVpbGRlci5zdGFydDxURW50aXR5PigpLmJ1aWxkRW1wdHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGRhdGFDb250ZXh0KGRhdGE6IElEYXRhQ29udGV4dDxURW50aXR5Pikge1xuICAgIHRoaXMuYXV0b0NsZWFuVXAoKTtcbiAgICB0aGlzLmRhdGFDb250ZXh0JC5uZXh0KGRhdGEpO1xuICAgIHRoaXMub25EYXRhQ29udGV4dENoYW5nZWQoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFDb250ZXh0KCk6IElEYXRhQ29udGV4dDxURW50aXR5PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNvbnRleHQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl92YWx1ZVRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlVGVtcGxhdGUgfHwgdGhpcy52YWx1ZVRlbXBsYXRlUXVlcnk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGVycm9yU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdGF0ZSQuZ2V0VmFsdWUoKS5lcnJvciB8fCBzdXBlci5lcnJvclN0YXRlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uQ3VycmVudENsaWNrZWQoZW50aXR5OiBURW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50Q2xpY2tlZC5lbWl0KGVudGl0eSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmlsdGVyKHVwZGF0ZWRGaWx0ZXI/OiBGaWx0ZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWx0ZXJzKHVwZGF0ZWRGaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnModXBkYXRlZEZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIHJlcGxhY2VGaWx0ZXJzKG5ld0ZpbHRlcnM/OiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQucmVwbGFjZUZpbHRlcnMobmV3RmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJGaWx0ZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xuICAgIHRoaXMuZW1pdFN0YXRlQ2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JTdGF0ZSB8fCAhIXRoaXMuaWNvbiB8fCBzdXBlci5zaG91bGRMYWJlbEZsb2F0O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBzdWdnZXN0aW9ucyBkYXRhLWNvbnRleHQgaGFzIGNoYW5nZWRcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlJZChlbnRpdHk6IFRFbnRpdHkpOiBUSWQge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0Py5kYXRhU291cmNlPy5nZXRJZChlbnRpdHkpIHx8IGVudGl0eTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0VxdWFsKGE6IFRFbnRpdHksIGI6IFRFbnRpdHkpOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRW1wdHkoYSkgJiYgdGhpcy5pc0VtcHR5KGIpKSB7IC8vIEhBQ0s6IEhhbmRsZSBlbXB0eSBzdHJpbmcgYXMgdW5kZWZpbmVkLlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGEpID09PSB0aGlzLmdldEVudGl0eUlkKGIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRW1wdHkoYTogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQgfHwgPGFueT5hID09PSAnJyk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgY2xlYW4gdXAgb2YgdGhlIGN1cnJlbnQgZGF0YSBjb250ZXh0IGlmIGF1dG8gY2xlYW4gdXAgaXMgZW5hYmxlZC5cbiAgICovXG4gIHByb3RlY3RlZCBhdXRvQ2xlYW5VcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGVhblVwICYmIHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnUmVsZWFzaW5nIERhdGFDb250ZXh0IHJlc291cmNlcyB0byBwcmV2ZW50IG1lbW9yeSBsZWFrLiBbY2xlYW5VcF09XCJ0cnVlXCInKTtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJvcGVydHlTdHJpbmdWYWx1ZSh2YWx1ZTogVEVudGl0eSwgcHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIHJldHVybiAoPGFueT52YWx1ZSlbcHJvcGVydHldO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG59XG4iXX0=
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9lbGRlci1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUd2RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRixPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDREQUE0RCxDQUFDOzs7OztBQVNyRyxNQUFNLE9BQU8seUJBQXlCO0lBeUJwQyxZQUNrQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsS0FBYTtRQUZiLFNBQUksR0FBSixJQUFJLENBQVM7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLFVBQUssR0FBTCxLQUFL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QkFLbkUsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBSW5DLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBUVUsY0FBYztzQkFEN0IsTUFBTTtnQkE0Q0ksU0FBUztzQkFEbkIsS0FBSztnQkFhSyxlQUFlO3NCQUR6QixLQUFLO2dCQU1LLHVCQUF1QjtzQkFEakMsS0FBSztnQkFNSyxPQUFPO3NCQURqQixLQUFLO2dCQVVLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBUUssSUFBSTtzQkFEZCxLQUFLO2dCQThCSyxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgT3V0cHV0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7SURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7SURhdGFTb3VyY2V9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtEYXRhQ29udGV4dEJ1aWxkZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQtYnVpbGRlcic7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEvc29ydCc7XG5pbXBvcnQge0VsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItc2VsZWN0LXZhbHVlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmV9IGZyb20gJy4vcG9wdXAvc2VsZWN0aW9uLW1vZGVsLXBvcHVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0U3RhdHVzfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LXN0YXR1cyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7cnVuSW5ab25lfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMvbmctem9uZS11dGlscyc7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlci1jb250ZXh0JztcbmltcG9ydCB7Qm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge0VsZGVyRm9ybUZpZWxkQ29udHJvbEJhc2V9IGZyb20gJy4uLy4uL2NvbW1vbi9mb3Jtcy9lbGRlci1mb3JtLWZpZWxkLWNvbnRyb2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBUZXh0UmVzb2x2ZXJGbiA9ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG5cblxuXG5leHBvcnQgY2xhc3MgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB7XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0YUNvbnRleHQoZGNTdGF0ZTogRGF0YUNvbnRleHRTdGF0dXMpOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlIHtcbiAgICBpZiAoZGNTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm4gRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5sb2FkaW5nKCk7XG4gICAgfSBlbHNlIGlmIChkY1N0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihkY1N0YXRlLmVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuaWRsZSgpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIHN0YXRpYyBpZGxlKCk6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSh0cnVlLCBmYWxzZSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGxvYWRpbmcoKTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlKGZhbHNlLCB0cnVlLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXJyb3IoZXJyb3I6IHN0cmluZyk6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZShmYWxzZSwgZmFsc2UsIGVycm9yKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBpZGxlOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBlcnJvcjogc3RyaW5nXG4gICkge1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBFTERFUl9TRUxFQ1RfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbGRlclNlbGVjdEJhc2U8YW55LCBhbnksIGFueT4+KCdFbGRlclNlbGVjdEJhc2UnKTtcblxuXG4vKipcbiAqIEJhc2UgY29tcG9uZW50IGZvciBFbGRlciBTZWxlY3Rpb24gQ29udHJvbHMuXG4gKlxuICogIEVsZGVyIFNlbGVjdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICpcbiAqIEBwYXJhbSBUSUQgRW50aXR5IElkIFR5cGVcbiAqIEBwYXJhbSBUIEVudGl0eSBUeXBlXG4gKiBAcGFyYW0gVFZhbHVlIFZhbHVlIGJhY2tpbmcgdGhlIGNvbnRyb2wuIENhbiBiZSB0aGUgZW50aXR5LCB0aGUgaWQgb3Igc29tZXRoaW5nIGVsc2UuXG4gKi9cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWxkZXJTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlPiBleHRlbmRzIEVsZGVyRm9ybUZpZWxkQ29udHJvbEJhc2U8VFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyQ29udGV4dCA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVBc0lkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCB0aW1lb3V0QWZ0ZXJNcyA9IDUwMDA7XG5cbiAgLyoqXG4gICAqIERlZmluZSBpZiBlbGRlci1zZWxlY3Qgc2hvdWxkIGNsZWFuIHVwIHRoZVxuICAgKiBkYXRhLWNvbnRleHQgcmVzb3VyY2VzIGZvciB5b3UuXG4gICAqXG4gICAqIEluIG1vcmUgYWR2YW5jZWQgc2NlbmFyaW9zIHdoZXJlIHlvdSBwbGFuIHRvIHJldXNlIHRoZSBzYW1lIGRhdGEtY29udGV4dFxuICAgKiBzZXQgdGhpcyB0byBmYWxzZSBhbmQgcmVsZWFzZSB0aGUgcmVzb3VyY2VzIHlvdXJzZWxmLiAoZGF0YUNvbnRleHQuY2xvc2UpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2xlYW5VcCA9IHRydWU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGV4dFJlc29sdmVyRm4+KCh2YWx1ZTogVEVudGl0eSkgPT4gdGhpcy5wcm9wZXJ0eVN0cmluZ1ZhbHVlKHZhbHVlLCBudWxsKSk7XG5cbiAgLyoqXG4gICAqIEVudGl0eSBEYXRhQ29udGV4dCwgd2hpY2ggaXMgdXNlZFxuICAgKiB0byBzaWRlIGxvYWQgZW50aXRpZXMgYnkgaWQgYW5kIGFsc29cbiAgICogdG8gbG9hZCBzdWdnZXN0aW9ucyB3aGVuIGF1dG8tY29tcGxldGluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkYXRhQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXRhQ29udGV4dDxURW50aXR5Pj4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFBhZ2Ugc2l6ZS4gKFVzZWQgZm9yIGluZmluaXRlIHNjcm9sbGluZyBjaHVua3MpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZVNpemUgPSAxMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcXVlcnlGaWx0ZXIgPSAncXVlcnknO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzb3J0czogU29ydFtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wdGlvbiB0ZW1wbGF0ZSB0byBjdXN0b21pemUgdGhlIHVpIGxvb2suXG4gICAqL1xuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHZhbHVlVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfdmFsdWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKFNlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWxlY3Rpb25Qb3B1cDogU2VsZWN0aW9uTW9kZWxQb3B1cERpcmVjdGl2ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNPcHRpb25EaXNhYmxlZEZuOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc09wdGlvbkhpZGRlbkZuOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSB1c2VyIGhhcyBjbGlja2VkIG9uIHRoZSBjdXJyZW50XG4gICAqIHNlbGVjdGVkIGVudGl0eS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRFbnRpdHk+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZT4oRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5pZGxlKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVyZ2VkU3RhdGUkOiBPYnNlcnZhYmxlPEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGU+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSxcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmcsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoaG9zdFJlZiwgY29udHJvbFR5cGUsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgbmdDb250cm9sKTtcblxuICAgIHRoaXMubWVyZ2VkU3RhdGUkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGFDb250ZXh0JC5waXBlKGZpbHRlcihkYyA9PiAhIWRjKSwgc3dpdGNoTWFwKGRjID0+IGRjLnN0YXR1cykpLFxuICAgICAgdGhpcy5zdGF0ZSRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZGNTdGF0ZSwgc3RhdGVdKSA9PiB7XG4gICAgICAgIGlmIChkY1N0YXRlLmlkbGUpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZnJvbURhdGFDb250ZXh0KGRjU3RhdGUpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHJ1bkluWm9uZSh0aGlzLnpvbmUpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0lkKHZhbHVlQXNJZDogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fdmFsdWVBc0lkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlQXNJZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlQXNJZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVBc0lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGRpc3BsYXkgdGhlIHZhbHVlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheVByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyID0gKHZhbHVlID0+IHRoaXMucHJvcGVydHlTdHJpbmdWYWx1ZSh2YWx1ZSwgcHJvcGVydHkpKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIocmVzb2x2ZXI6IFRleHRSZXNvbHZlckZuKSB7XG4gICAgdGhpcy5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciQubmV4dChyZXNvbHZlcik7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pIHtcbiAgICB0aGlzLnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzKCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ29udGV4dC5maWx0ZXJzU25hcHNob3Q7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2Uoc291cmNlOiBJRGF0YVNvdXJjZTxURW50aXR5Pikge1xuICAgIHRoaXMuZGF0YUNvbnRleHQgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQ8VEVudGl0eT4oKVxuICAgICAgLnBhZ2VTaXplKHRoaXMucGFnZVNpemUpXG4gICAgICAuYnVpbGQoc291cmNlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBBcnJheTxURW50aXR5PiB8IElEYXRhQ29udGV4dDxURW50aXR5Pikge1xuXG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuXG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgdGhpcy5kYXRhQ29udGV4dCA9IERhdGFDb250ZXh0QnVpbGRlci5zdGFydDxURW50aXR5PigpXG4gICAgICAgIC5sb2NhbFNvcnQoKVxuICAgICAgICAuYnVpbGRMb2NhbChkYXRhKTsgLy8gTWVtb3J5IGxlYWtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQuc3RhcnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dCA9IGRhdGE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGFDb250ZXh0ID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFRFbnRpdHk+KCkuYnVpbGRFbXB0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgZGF0YUNvbnRleHQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KSB7XG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuICAgIHRoaXMuZGF0YUNvbnRleHQkLm5leHQoZGF0YSk7XG4gICAgdGhpcy5vbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YUNvbnRleHQoKTogSURhdGFDb250ZXh0PFRFbnRpdHk+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWVUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX3ZhbHVlVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWVUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVUZW1wbGF0ZSB8fCB0aGlzLnZhbHVlVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0YXRlJC5nZXRWYWx1ZSgpLmVycm9yIHx8IHN1cGVyLmVycm9yU3RhdGU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgb25DdXJyZW50Q2xpY2tlZChlbnRpdHk6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRDbGlja2VkLmVtaXQoZW50aXR5KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWx0ZXIodXBkYXRlZEZpbHRlcj86IEZpbHRlcik6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQudXBkYXRlRmlsdGVyKHVwZGF0ZWRGaWx0ZXIpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpbHRlcnModXBkYXRlZEZpbHRlcnM/OiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQudXBkYXRlRmlsdGVycyh1cGRhdGVkRmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZUZpbHRlcnMobmV3RmlsdGVycz86IEZpbHRlcltdKSB7XG4gICAgdGhpcy5fZmlsdGVyQ29udGV4dC5yZXBsYWNlRmlsdGVycyhuZXdGaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckZpbHRlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsdGVyQ29udGV4dC5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSQubmV4dChzdGF0ZSk7XG4gICAgdGhpcy5lbWl0U3RhdGVDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvclN0YXRlIHx8ICEhdGhpcy5pY29uIHx8IHN1cGVyLnNob3VsZExhYmVsRmxvYXQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQWJzdHJhY3QgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogT2NjdXJzIHdoZW4gdGhlIHN1Z2dlc3Rpb25zIGRhdGEtY29udGV4dCBoYXMgY2hhbmdlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9uRGF0YUNvbnRleHRDaGFuZ2VkKGRhdGE6IElEYXRhQ29udGV4dDxURW50aXR5Pik6IHZvaWQ7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVybmFsIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eUlkKGVudGl0eTogVEVudGl0eSk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNvbnRleHQ/LmRhdGFTb3VyY2U/LmdldElkKGVudGl0eSkgfHwgZW50aXR5O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRXF1YWwoYTogVEVudGl0eSwgYjogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmIChhID09PSBiKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNFbXB0eShhKSAmJiB0aGlzLmlzRW1wdHkoYikpIHsgLy8gSEFDSzogSGFuZGxlIGVtcHR5IHN0cmluZyBhcyB1bmRlZmluZWQuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoYSkgPT09IHRoaXMuZ2V0RW50aXR5SWQoYik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFbXB0eShhOiBURW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChhID09PSBudWxsIHx8IGEgPT09IHVuZGVmaW5lZCB8fCA8YW55PmEgPT09ICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBjbGVhbiB1cCBvZiB0aGUgY3VycmVudCBkYXRhIGNvbnRleHQgaWYgYXV0byBjbGVhbiB1cCBpcyBlbmFibGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGF1dG9DbGVhblVwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsZWFuVXAgJiYgdGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdSZWxlYXNpbmcgRGF0YUNvbnRleHQgcmVzb3VyY2VzIHRvIHByZXZlbnQgbWVtb3J5IGxlYWsuIFtjbGVhblVwXT1cInRydWVcIicpO1xuICAgICAgdGhpcy5kYXRhQ29udGV4dC5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcm9wZXJ0eVN0cmluZ1ZhbHVlKHZhbHVlOiBURW50aXR5LCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgcmV0dXJuICg8YW55PnZhbHVlKVtwcm9wZXJ0eV07XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -7,8 +7,9 @@ import { Sets } from '../../../common/sets';
|
|
|
7
7
|
import { SortUtil } from '../../../common/utils/sort-util';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/cdk/a11y";
|
|
10
|
-
import * as i2 from "
|
|
11
|
-
import * as i3 from "
|
|
10
|
+
import * as i2 from "@ngx-translate/core";
|
|
11
|
+
import * as i3 from "../../dialogs/elder-dialog.service";
|
|
12
|
+
import * as i4 from "@angular/forms";
|
|
12
13
|
/**
|
|
13
14
|
* Base component implementation of elder-multi-select.
|
|
14
15
|
*
|
|
@@ -25,8 +26,8 @@ export class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
25
26
|
* Constructor *
|
|
26
27
|
* *
|
|
27
28
|
**************************************************************************/
|
|
28
|
-
constructor(zone, hostRef, controlType, focusMonitor, dialogService, ngControl) {
|
|
29
|
-
super(zone, hostRef, controlType, focusMonitor, ngControl);
|
|
29
|
+
constructor(zone, hostRef, controlType, focusMonitor, translateService, dialogService, ngControl) {
|
|
30
|
+
super(zone, hostRef, controlType, focusMonitor, translateService, ngControl);
|
|
30
31
|
this.dialogService = dialogService;
|
|
31
32
|
/***************************************************************************
|
|
32
33
|
* *
|
|
@@ -335,7 +336,7 @@ ElderMultiSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
|
|
|
335
336
|
ElderMultiSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: ElderMultiSelectBase, inputs: { entitiesSorts: "entitiesSorts", confirmRemoval: "confirmRemoval", entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entitiesChange: "entitiesChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, usesInheritance: true, ngImport: i0 });
|
|
336
337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
|
|
337
338
|
type: Directive
|
|
338
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.
|
|
339
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl }]; }, propDecorators: { entitiesSorts: [{
|
|
339
340
|
type: Input
|
|
340
341
|
}], confirmRemoval: [{
|
|
341
342
|
type: Input
|
|
@@ -352,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
352
353
|
}], entityIds: [{
|
|
353
354
|
type: Input
|
|
354
355
|
}] } });
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBTTFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFJekQ7Ozs7Ozs7O0dBUUc7QUFFSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixvQkFDcEIsU0FBUSxlQUF1QztJQWlEL0M7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsSUFBWSxFQUNaLE9BQW1CLEVBQ25CLFdBQW1CLEVBQ25CLFlBQTBCLEVBQ1QsYUFBaUMsRUFDbEQsU0FBcUI7UUFFckIsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUgxQyxrQkFBYSxHQUFiLGFBQWEsQ0FB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QUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRU8sbUJBQW1CLENBQUMsUUFBbUI7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sWUFBWSxDQUFDLFFBQW1CO1FBQ3RDLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25FLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQy9DLGdFQUFnRTtnQkFDaEUsT0FBTyxNQUFNLENBQUM7YUFDZjtTQUNGO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7aUhBcmFtQixvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUZ6QyxTQUFTOytOQXVCRCxhQUFhO3NCQURuQixLQUFLO2dCQVFDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSVUsZUFBZTtzQkFEOUIsTUFBTTtnQkFJUyxjQUFjO3NCQUQ3QixNQUFNO2dCQVFTLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFRUyxlQUFlO3NCQUQ5QixNQUFNO2dCQXFFSSxRQUFRO3NCQURsQixLQUFLO2dCQWVLLFNBQVM7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nWm9uZSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJTZWxlY3RCYXNlLCBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlfSBmcm9tICcuLi9lbGRlci1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgc2tpcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAsIHRpbWVvdXR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2V0c30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NldHMnO1xuaW1wb3J0IHtDb2xsZWN0aW9uVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL2NvbGxlY3Rpb24tdXRpbCc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGb2N1c01vbml0b3J9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7SUVsZGVyTXVsdGlFbnRpdHlWYWx1ZUFjY2Vzc29yfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvZWxkZXItbXVsdGktZW50aXR5LXZhbHVlLWFjY2Vzc29yJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCc7XG5pbXBvcnQge1NvcnRVdGlsfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvc29ydC11dGlsJztcbmltcG9ydCB7RWxkZXJEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlJztcblxuXG4vKipcbiAqIEJhc2UgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG9mIGVsZGVyLW11bHRpLXNlbGVjdC5cbiAqXG4gKiBNdWx0aSBTZWxlY3QgaGFzIHRoZSBmb2xsb3dpbmcgYWJzdHJhY3QgY29uY2VwdDpcbiAqXG4gKiAtIFN1Z2dlc3Rpb24tTW9kZWw6IEEgRGF0YVNvdXJjZSBhbmQgZGVyaXZlZCBEYXRhQ29udGV4dCBmb3IgdGhlIChhdXRvLWNvbXBsZXRlKSBzdWdnZXN0aW9ucy5cbiAqIC0gVGhlIGJhY2tpbmcgVmFsdWUgaXMgYSBsaXN0IG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIGVudGl0aWVzLiBUW11cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+XG4gIGV4dGVuZHMgRWxkZXJTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlW10+XG4gIGltcGxlbWVudHMgSUVsZGVyTXVsdGlFbnRpdHlWYWx1ZUFjY2Vzc29yPFRFbnRpdHksIFRJZCwgVFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0eUlkcyQ6IE9ic2VydmFibGU8VElkW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbnRpdGllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRFbnRpdHlbXT4oW10pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZW50aXRpZXMgc2hvdWxkIGJlIHNvcnRlZCBsb2NhbGx5LlxuICAgKiBUaGlzIGFmZmVjdHMgaG93IGVudGl0aWVzIGFyZSBkaXNwbGF5ZWQgd2hlbiBtb3JlIHRoYW5cbiAgICogb25lIGlzIHNlbGVjdGVkLCBzdWNoIGFzIGluIGEgY2hpcCBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVudGl0aWVzU29ydHM6IFNvcnRbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCBiZWZvcmUgcmVtb3Zpbmcgc2VsZWN0ZWQgZW50aXRpZXNcbiAgICogdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjb25maXJtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNvbmZpcm1SZW1vdmFsID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZHNDaGFuZ2U6IE9ic2VydmFibGU8VElkW10+O1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNDaGFuZ2U6IE9ic2VydmFibGU8VEVudGl0eVtdPjtcblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHktaWQgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5SWRzVXBkYXRlZDogT2JzZXJ2YWJsZTxUSWRbXT47XG5cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gZW50aXR5IGNoYW5nZSwgYnV0IGVtaXRzIG9ubHkgd2hlbiB0aGUgdXNlclxuICAgKiBoYXMgdXBkYXRlZCB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzVXBkYXRlZDogT2JzZXJ2YWJsZTxURW50aXR5W10+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgaG9zdFJlZjogRWxlbWVudFJlZixcbiAgICBjb250cm9sVHlwZTogc3RyaW5nLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIG5nQ29udHJvbD86IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcih6b25lLCBob3N0UmVmLCBjb250cm9sVHlwZSwgZm9jdXNNb25pdG9yLCBuZ0NvbnRyb2wpO1xuXG4gICAgdGhpcy5lbnRpdHlJZHNDaGFuZ2UgPSB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAodmFsdWVzID0+IHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXMpKVxuICAgICk7XG5cbiAgICB0aGlzLl9lbnRpdHlJZHMkID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICAgIG1hcCh2YWx1ZXMgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpXG4gICAgKTtcblxuICAgIHRoaXMuZW50aXRpZXNDaGFuZ2UgPSB0aGlzLl9lbnRpdGllcyQucGlwZShcbiAgICAgIHNraXAoMSkgLy8gU2tpcCB0aGUgaW5pdGlhbCBvciBjdXJyZW50IHZhbHVlXG4gICAgKTtcblxuICAgIHRoaXMuZW50aXR5SWRzVXBkYXRlZCA9IHRoaXMudmFsdWVVcGRhdGVkLnBpcGUoXG4gICAgICBtYXAodmFsdWVzID0+IHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXMpKVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0aWVzVXBkYXRlZCA9IHRoaXMuZW50aXR5SWRzVXBkYXRlZC5waXBlKFxuICAgICAgdGFwKGVudGl0eUlkcyA9PiB0aGlzLmxvZ2dlci5kZWJ1ZygnQXdhaXRpbmcgZW50aXRpZXMgd2l0aCBpZHMnLCBlbnRpdHlJZHMpKSxcbiAgICAgIHN3aXRjaE1hcChlbnRpdHlJZHMgPT4gdGhpcy5hd2FpdEVudGl0aWVzV2l0aElkKGVudGl0eUlkcywgdGhpcy50aW1lb3V0QWZ0ZXJNcykpLFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBhd2FpdEVudGl0aWVzV2l0aElkIC0+IHRpbWVkIG91dCBhZnRlcjogJHt0aGlzLnRpbWVvdXRBZnRlck1zfWAsIGVycik7XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHM6IFRJZFtdLCB0aW1lb3V0TXM6IG51bWJlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5waXBlKFxuICAgICAgdGFwKGVudGl0aWVzID0+IHRoaXMubG9nZ2VyLmRlYnVnKCdHb3QgZW50aXRpZXMgZm9yIGlkcycgKyBlbnRpdHlJZHMsIGVudGl0aWVzKSksXG4gICAgICBmaWx0ZXIoZW50aXRpZXMgPT4gdGhpcy5lcXVhbElkcyh0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllcyksIGVudGl0eUlkcykpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHRpbWVvdXQodGltZW91dE1zKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGVudGl0aWVzJCgpOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdGllcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0eUlkcyQoKTogT2JzZXJ2YWJsZTxUSWRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlJZHMkO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgaWYoIXRoaXMuZXF1YWxFbnRpdGllcyh0aGlzLmVudGl0aWVzLCBlbnRpdGllcykpIHtcbiAgICAgIGVudGl0aWVzID0gdGhpcy53cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzKTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKFxuICAgICAgICB0aGlzLmVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMoKTogVEVudGl0eVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eUlkcyhpZHM6IFRJZFtdKSB7XG4gICAgaWYoIXRoaXMuZXF1YWxJZHModGhpcy5lbnRpdHlJZHMsIGlkcykpIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbCg8YW55PmlkcyBhcyBUVmFsdWVbXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHMoaWRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0eUlkcygpOiBUSWRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkRpc2FibGVkRm4ob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldCBpc09wdGlvbkhpZGRlbkludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQWxyZWFkeVByZXNlbnQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzT3B0aW9uSGlkZGVuRm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25IaWRkZW5GbihvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdXBkYXRlVmFsdWVCeUVudGl0aWVzKGVudGl0aWVzOiBURW50aXR5W10pOiB2b2lkIHtcbiAgICBlbnRpdGllcyA9IHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllcyk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIHRoaXMuZW50aXRpZXNUb1ZhbHVlcyhlbnRpdGllcylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFwcGVuZEVudGl0aWVzKG5ld0VudGl0aWVzOiBURW50aXR5W10pIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5lbnRpdGllcyA/IHRoaXMuZW50aXRpZXMgOiBbXTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhbLi4uY3VycmVudCwgLi4ubmV3RW50aXRpZXNdKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBlbmRFbnRpdHkobmV3RW50aXR5OiBhbnkpIHtcbiAgICB0aGlzLmFwcGVuZEVudGl0aWVzKFtuZXdFbnRpdHldKTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0UmVtb3ZlRW50aXR5KHRvUmVtb3ZlOiBURW50aXR5LCBza2lwQ29uZmlybT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnJlcXVlc3RSZW1vdmVFbnRpdGllcyhbdG9SZW1vdmVdLCBza2lwQ29uZmlybSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFJlbW92ZUVudGl0aWVzKFxuICAgIHRvUmVtb3ZlOiBURW50aXR5W10sXG4gICAgc2tpcENvbmZpcm0/OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICghc2tpcENvbmZpcm0gJiYgdGhpcy5jb25maXJtUmVtb3ZhbCkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAgIC5zaG93Q29uZmlybSh7XG4gICAgICAgICAgdGl0bGU6ICdkaWFsb2dzLmNvbmZpcm0tZGVsZXRpb24udGl0bGUnLFxuICAgICAgICAgIG1lc3NhZ2U6ICdkaWFsb2dzLmNvbmZpcm0tZGVsZXRpb24ubWVzc2FnZScsXG4gICAgICAgICAgeWVzTm86IHRydWUsXG4gICAgICAgICAgaW50ZXJwb2xhdGVQYXJhbXM6IHtudW1PZkl0ZW1zOiB0b1JlbW92ZS5sZW5ndGh9LFxuICAgICAgICB9KVxuICAgICAgICAuc3Vic2NyaWJlKChjb25maXJtZWQpID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRW50aXRpZXModG9SZW1vdmU6IFRFbnRpdHlbXSk6IHZvaWQge1xuICAgIHRvUmVtb3ZlLmZvckVhY2goZSA9PiB0aGlzLnJlbW92ZUVudGl0eShlKSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRW50aXR5KHRvUmVtb3ZlOiBURW50aXR5KTogdm9pZCB7XG4gICAgY29uc3QgcmVtYWluaW5nID0gdGhpcy5lbnRpdGllc1xuICAgICAgLmZpbHRlcihsID0+ICF0aGlzLmlzRXF1YWwobCwgdG9SZW1vdmUpKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhyZW1haW5pbmcpO1xuICB9XG5cbiAgcHVibGljIG9wZW5TZWxlY3Rpb25Qb3B1cChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Qb3B1cCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Qb3B1cC5jaG9vc2UoXG4gICAgICAgIChlOiBURW50aXR5KSA9PiB0aGlzLmdldEVudGl0eUlkKGUpLFxuICAgICAgICB0aGlzLmVudGl0aWVzLFxuICAgICAgICB0aGlzLmZpbHRlcnMsXG4gICAgICAgIHRoaXMuc29ydHMsXG4gICAgICAgIHRydWVcbiAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAoc2VsZWN0aW9uOiBURW50aXR5W10pID0+IHRoaXMudXBkYXRlVmFsdWVCeUVudGl0aWVzKHNlbGVjdGlvbilcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0NhbnQgb3BlbiBzZWxlY3Rpb24gYnJvd3NlciBwb3B1cCwgc2luY2UgW1NlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmVdIHdhcyBub3QgZm91bmQhJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVudGl0eVRvVmFsdWUoZW50aXR5OiBURW50aXR5KTogVFZhbHVlIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGlkID0gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpO1xuICAgICAgcmV0dXJuIDxhbnk+aWQgYXMgVFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPGFueT5lbnRpdHkgYXMgVFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWx1ZXNFcXVhbHMoYTogVFZhbHVlW10sIGI6IFRWYWx1ZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXF1YWxJZHModGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKGEpLCB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXMoYikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGF0YUNvbnRleHRDaGFuZ2VkKGRhdGE6IElEYXRhQ29udGV4dDxURW50aXR5Pik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdGllc0J5SWRzKHRoaXMuZW50aXR5SWRzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgaW52b2tlZCBhZnRlciBhIHZhbHVlIGhhcyBiZWVuIHdyaXR0ZW4gdG8gdGhpcyBjb250cm9sLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdyaXRlVG9Db250cm9sKHZhbHVlOiBUVmFsdWVbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgY29uc3QgZW50aXR5SWRzID0gPGFueT52YWx1ZSBhcyBUSWRbXTtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSBpZHMsIGVuc3VyZSB3ZSBzZWxlY3QgZW50aXR5IGJ5IGlkXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGlkczogJyArIGVudGl0eUlkcywgdmFsdWUpO1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdGllc0J5SWRzKGVudGl0eUlkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSwgZW5zdXJlIGVudGl0eSBpcyB1cGRhdGVkXG4gICAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzO1xuICAgICAgY29uc3QgbmV3RW50aXRpZXMgPSA8YW55PnZhbHVlIGFzIFRFbnRpdHlbXTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXRpZXMgKHNpemUpOiAnICsgbmV3RW50aXRpZXM/Lmxlbmd0aCwgdmFsdWUpO1xuICAgICAgaWYgKCF0aGlzLmVxdWFsRW50aXRpZXMoY3VycmVudEVudGl0aWVzLCBuZXdFbnRpdGllcykpIHtcbiAgICAgICAgdGhpcy53cml0ZUVudGl0aWVzU29ydGVkKG5ld0VudGl0aWVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0lnbm9yZWQgd3JpdHRlbiBlbnRpdGllcyBhcyB0aGV5IGFyZSBhbHJlYWR5IHNldCB0byBlbnRpdGllcyQhJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLndyaXRlVG9Db250cm9sKHZhbHVlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgcHJpdmF0ZSBpc0FscmVhZHlQcmVzZW50KHF1ZXJ5VmFsdWU6IFRFbnRpdHkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5lbnRpdGllcykge1xuICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuc29tZSh2ID0+IHRoaXMuaXNFcXVhbCh2LCBxdWVyeVZhbHVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzOiBUVmFsdWVbXSk6IFRJZFtdIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodiA9PiB0aGlzLmVudGl0eUlkRnJvbVZhbHVlKHYpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkRnJvbVZhbHVlKHZhbHVlOiBUVmFsdWUpOiBUSWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgcmV0dXJuIDxhbnk+dmFsdWUgYXMgVElkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSAoPGFueT52YWx1ZSkgYXMgVEVudGl0eTtcbiAgICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzOiBURW50aXR5W10pOiBUVmFsdWVbXSB8IG51bGwge1xuICAgIGlmIChlbnRpdGllcykge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcChlID0+IHRoaXMuZW50aXR5VG9WYWx1ZShlKSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnRpdHlJZHModmFsdWVzOiBURW50aXR5W10gfCBudWxsKTogVElkW10ge1xuICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgIHJldHVybiB2YWx1ZXMubWFwKHYgPT4gdGhpcy5nZXRFbnRpdHlJZCh2KSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbElkcyhpZHNBOiBUSWRbXSwgaWRzQjogVElkW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2V0cy5lcXVhbENvbnRlbnQoaWRzQSwgaWRzQik7XG4gIH1cblxuICBwcml2YXRlIGVxdWFsRW50aXRpZXMoZW50aXRpZXNBOiBURW50aXR5W10sIGVudGl0aWVzQjogVEVudGl0eVtdKSB7XG4gICAgcmV0dXJuIHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXNBKSwgdGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXNCKSk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEVudGl0aWVzQnlJZHMoaWRzOiBUSWRbXSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRFbnRpdGllcyA9IHRoaXMuZW50aXRpZXM7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnc2VsZWN0RW50aXRpZXNCeUlkczogaWRzJyArIGlkcyArICcsIGN1cnJlbnQgZW50aXRpZXM6JywgY3VycmVudEVudGl0aWVzKTtcbiAgICBpZiAoY3VycmVudEVudGl0aWVzICYmIHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoY3VycmVudEVudGl0aWVzKSwgaWRzKSkge1xuICAgICAgcmV0dXJuOyAvLyBFbnRpdGllcyBhbHJlYWR5IGxvYWRlZFxuICAgIH1cblxuICAgIHRoaXMuZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGVudGl0aWVzID0+IHRoaXMuZW50aXRpZXMgPSBlbnRpdGllcyxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZXJyKSlcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kT3JMb2FkRW50aXRpZXNCeUlkcyhpZHM6IFRJZFtdKTogT2JzZXJ2YWJsZTxURW50aXR5W10+IHtcbiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgICBpZiAodGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmZpbmRJbkRhdGFDb250ZXh0KGlkcyk7XG4gICAgICBjb25zdCBtaXNzaW5nSWRzID0gaWRzLmZpbHRlcihpZCA9PiAhZXhpc3RpbmcuaGFzKGlkKSk7XG4gICAgICBjb25zdCB2YWx1ZUxvYWRSZXF1ZXN0JCA9IG1pc3NpbmdJZHMubGVuZ3RoID4gMCA/IHRoaXMubG9hZEVudGl0aWVzQnlJZHMobWlzc2luZ0lkcykgOiBvZihuZXcgTWFwKCkpO1xuXG4gICAgICByZXR1cm4gdmFsdWVMb2FkUmVxdWVzdCQucGlwZShcbiAgICAgICAgbWFwKGxvYWRlZCA9PiB7XG4gICAgICAgICAgbG9hZGVkLmZvckVhY2goKHYsIGspID0+IGV4aXN0aW5nLnNldChrLCB2KSk7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKGFsbFZhbHVlc01hcCA9PiBBcnJheS5mcm9tKGFsbFZhbHVlc01hcC52YWx1ZXMoKSkpIC8vIFRPRE8gU29ydD9cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byBzZWxlY3QgdmFsdWUgYnkgSWRzOiAnICsgaWRzICsgJyAtIERhdGFDb250ZXh0IG5vdCBhdmFpbGFibGUuJyk7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRW50aXRpZXNCeUlkcyhpZHM6IFRJZFtdKTogT2JzZXJ2YWJsZTxNYXA8VElkLCBURW50aXR5Pj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0LmRhdGFTb3VyY2UuZmluZEJ5SWRzKGlkcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudGl0aWVzIGJ5IGlkczogJyArIGlkcywgZXJyKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkZWQgZW50aXRpZXMgYnkgaWQ6JywgdmFsdWVzKTtcbiAgICAgICAgY29uc3QgdmFsdWVNYXAgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKTtcbiAgICAgICAgdmFsdWVzLmZvckVhY2godiA9PiB2YWx1ZU1hcC5zZXQodGhpcy5nZXRFbnRpdHlJZCh2KSwgdikpO1xuICAgICAgICByZXR1cm4gdmFsdWVNYXA7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRJbkRhdGFDb250ZXh0KGlkczogVElkW10pOiBNYXA8VElkLCBURW50aXR5PiB7XG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZXMgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKTtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhQ29udGV4dC5zbmFwc2hvdC5kYXRhO1xuICAgICAgY29uc3QgcmVxdWlyZWRJZHMgPSBuZXcgU2V0KGlkcyk7XG4gICAgICBkYXRhXG4gICAgICAgIC5maWx0ZXIoZCA9PiByZXF1aXJlZElkcy5oYXModGhpcy5nZXRFbnRpdHlJZChkKSkpXG4gICAgICAgIC5mb3JFYWNoKGQgPT4gZXhpc3RpbmdWYWx1ZXMuc2V0KHRoaXMuZ2V0RW50aXR5SWQoZCksIGQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nVmFsdWVzO1xuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzOiBURW50aXR5W10pOiBURW50aXR5W10ge1xuICAgIGNvbnN0IHNvcnRlZCA9IHRoaXMuc29ydEVudGl0aWVzKGVudGl0aWVzKTtcbiAgICB0aGlzLl9lbnRpdGllcyQubmV4dChzb3J0ZWQpO1xuICAgIHJldHVybiBzb3J0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHNvcnRFbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKTogVEVudGl0eVtdIHtcbiAgICBpZiAoZW50aXRpZXMgJiYgdGhpcy5lbnRpdGllc1NvcnRzICYmIHRoaXMuZW50aXRpZXNTb3J0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzb3J0ZWQgPSBTb3J0VXRpbC5zb3J0RGF0YShlbnRpdGllcywgdGhpcy5lbnRpdGllc1NvcnRzKTtcbiAgICAgIGlmICghU29ydFV0aWwuZXF1YWxzRXhhY3RSZWZzKGVudGl0aWVzLCBzb3J0ZWQpKSB7XG4gICAgICAgIC8vIE9ubHkgcmV0dXJuIGEgY29weSBvZiB0aGUgYXJyYXkgaWYgYWN0dWFsbHkgc29tZXRoaW5nIGNoYW5nZWRcbiAgICAgICAgcmV0dXJuIHNvcnRlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVudGl0aWVzO1xuICB9XG59XG4iXX0=
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBSzFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBS3pEOzs7Ozs7OztHQVFHO0FBRUgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBZ0Isb0JBQ3BCLFNBQVEsZUFBdUM7SUFpRC9DOzs7O2dGQUk0RTtJQUU1RSxZQUNFLElBQVksRUFDWixPQUFtQixFQUNuQixXQUFtQixFQUNuQixZQUEwQixFQUMxQixnQkFBa0MsRUFDakIsYUFBaUMsRUFDbEQsU0FBcUI7UUFFckIsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FB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SW5wdXQsIE5nWm9uZSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJTZWxlY3RCYXNlLCBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlfSBmcm9tICcuLi9lbGRlci1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgc2tpcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAsIHRpbWVvdXR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2V0c30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NldHMnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0lFbGRlck11bHRpRW50aXR5VmFsdWVBY2Nlc3Nvcn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2VsZGVyLW11bHRpLWVudGl0eS12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL3NvcnQnO1xuaW1wb3J0IHtTb3J0VXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3NvcnQtdXRpbCc7XG5pbXBvcnQge0VsZGVyRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5cbi8qKlxuICogQmFzZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gb2YgZWxkZXItbXVsdGktc2VsZWN0LlxuICpcbiAqIE11bHRpIFNlbGVjdCBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICogLSBUaGUgYmFja2luZyBWYWx1ZSBpcyBhIGxpc3Qgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgZW50aXRpZXMuIFRbXVxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT5cbiAgZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWVbXT5cbiAgaW1wbGVtZW50cyBJRWxkZXJNdWx0aUVudGl0eVZhbHVlQWNjZXNzb3I8VEVudGl0eSwgVElkLCBUVmFsdWU+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW50aXR5SWRzJDogT2JzZXJ2YWJsZTxUSWRbXT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0aWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPihbXSk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBlbnRpdGllcyBzaG91bGQgYmUgc29ydGVkIGxvY2FsbHkuXG4gICAqIFRoaXMgYWZmZWN0cyBob3cgZW50aXRpZXMgYXJlIGRpc3BsYXllZCB3aGVuIG1vcmUgdGhhblxuICAgKiBvbmUgaXMgc2VsZWN0ZWQsIHN1Y2ggYXMgaW4gYSBjaGlwIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZW50aXRpZXNTb3J0czogU29ydFtdID0gW107XG5cbiAgLyoqXG4gICAqIElmIGVuYWJsZWQsIGJlZm9yZSByZW1vdmluZyBzZWxlY3RlZCBlbnRpdGllc1xuICAgKiB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNvbmZpcm0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlybVJlbW92YWwgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkc0NoYW5nZTogT2JzZXJ2YWJsZTxUSWRbXT47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdGllc0NoYW5nZTogT2JzZXJ2YWJsZTxURW50aXR5W10+O1xuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGVudGl0eS1pZCBjaGFuZ2UsIGJ1dCBlbWl0cyBvbmx5IHdoZW4gdGhlIHVzZXJcbiAgICogaGFzIHVwZGF0ZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZHNVcGRhdGVkOiBPYnNlcnZhYmxlPFRJZFtdPjtcblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHkgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNVcGRhdGVkOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmcsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IEVsZGVyRGlhbG9nU2VydmljZSxcbiAgICBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoem9uZSwgaG9zdFJlZiwgY29udHJvbFR5cGUsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgbmdDb250cm9sKTtcblxuICAgIHRoaXMuZW50aXR5SWRzQ2hhbmdlID0gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5fZW50aXR5SWRzJCA9IHRoaXMudmFsdWUkLnBpcGUoXG4gICAgICBtYXAodmFsdWVzID0+IHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXMpKVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0aWVzQ2hhbmdlID0gdGhpcy5fZW50aXRpZXMkLnBpcGUoXG4gICAgICBza2lwKDEpIC8vIFNraXAgdGhlIGluaXRpYWwgb3IgY3VycmVudCB2YWx1ZVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0eUlkc1VwZGF0ZWQgPSB0aGlzLnZhbHVlVXBkYXRlZC5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdGllc1VwZGF0ZWQgPSB0aGlzLmVudGl0eUlkc1VwZGF0ZWQucGlwZShcbiAgICAgIHRhcChlbnRpdHlJZHMgPT4gdGhpcy5sb2dnZXIuZGVidWcoJ0F3YWl0aW5nIGVudGl0aWVzIHdpdGggaWRzJywgZW50aXR5SWRzKSksXG4gICAgICBzd2l0Y2hNYXAoZW50aXR5SWRzID0+IHRoaXMuYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHMsIHRoaXMudGltZW91dEFmdGVyTXMpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihgYXdhaXRFbnRpdGllc1dpdGhJZCAtPiB0aW1lZCBvdXQgYWZ0ZXI6ICR7dGhpcy50aW1lb3V0QWZ0ZXJNc31gLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGF3YWl0RW50aXRpZXNXaXRoSWQoZW50aXR5SWRzOiBUSWRbXSwgdGltZW91dE1zOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdGllcyQucGlwZShcbiAgICAgIHRhcChlbnRpdGllcyA9PiB0aGlzLmxvZ2dlci5kZWJ1ZygnR290IGVudGl0aWVzIGZvciBpZHMnICsgZW50aXR5SWRzLCBlbnRpdGllcykpLFxuICAgICAgZmlsdGVyKGVudGl0aWVzID0+IHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXMpLCBlbnRpdHlJZHMpKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0aW1lb3V0KHRpbWVvdXRNcylcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBlbnRpdGllcyQoKTogT2JzZXJ2YWJsZTxURW50aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMkKCk6IE9ic2VydmFibGU8VElkW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5SWRzJDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSkge1xuICAgIGlmKCF0aGlzLmVxdWFsRW50aXRpZXModGhpcy5lbnRpdGllcywgZW50aXRpZXMpKSB7XG4gICAgICBlbnRpdGllcyA9IHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllcyk7XG4gICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChcbiAgICAgICAgdGhpcy5lbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0aWVzKCk6IFRFbnRpdHlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHlJZHMoaWRzOiBUSWRbXSkge1xuICAgIGlmKCF0aGlzLmVxdWFsSWRzKHRoaXMuZW50aXR5SWRzLCBpZHMpKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoPGFueT5pZHMgYXMgVFZhbHVlW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RFbnRpdGllc0J5SWRzKGlkcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMoKTogVElkW10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkRm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0FscmVhZHlQcmVzZW50KG9wdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkhpZGRlbkZuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uSGlkZGVuRm4ob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlQnlFbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKTogdm9pZCB7XG4gICAgZW50aXRpZXMgPSB0aGlzLndyaXRlRW50aXRpZXNTb3J0ZWQoZW50aXRpZXMpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICB0aGlzLmVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBlbmRFbnRpdGllcyhuZXdFbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZW50aXRpZXMgPyB0aGlzLmVudGl0aWVzIDogW107XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMoWy4uLmN1cnJlbnQsIC4uLm5ld0VudGl0aWVzXSk7XG4gIH1cblxuICBwdWJsaWMgYXBwZW5kRW50aXR5KG5ld0VudGl0eTogYW55KSB7XG4gICAgdGhpcy5hcHBlbmRFbnRpdGllcyhbbmV3RW50aXR5XSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSwgc2tpcENvbmZpcm0/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZXF1ZXN0UmVtb3ZlRW50aXRpZXMoW3RvUmVtb3ZlXSwgc2tpcENvbmZpcm0pO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RSZW1vdmVFbnRpdGllcyhcbiAgICB0b1JlbW92ZTogVEVudGl0eVtdLFxuICAgIHNraXBDb25maXJtPzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAoIXNraXBDb25maXJtICYmIHRoaXMuY29uZmlybVJlbW92YWwpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAuc2hvd0NvbmZpcm0oe1xuICAgICAgICAgIHRpdGxlOiAnZGlhbG9ncy5jb25maXJtLWRlbGV0aW9uLnRpdGxlJyxcbiAgICAgICAgICBtZXNzYWdlOiAnZGlhbG9ncy5jb25maXJtLWRlbGV0aW9uLm1lc3NhZ2UnLFxuICAgICAgICAgIHllc05vOiB0cnVlLFxuICAgICAgICAgIGludGVycG9sYXRlUGFyYW1zOiB7bnVtT2ZJdGVtczogdG9SZW1vdmUubGVuZ3RofSxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29uZmlybWVkKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpcm1lZCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVFbnRpdGllcyh0b1JlbW92ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVFbnRpdGllcyh0b1JlbW92ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlOiBURW50aXR5W10pOiB2b2lkIHtcbiAgICB0b1JlbW92ZS5mb3JFYWNoKGUgPT4gdGhpcy5yZW1vdmVFbnRpdHkoZSkpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IHRoaXMuZW50aXRpZXNcbiAgICAgIC5maWx0ZXIobCA9PiAhdGhpcy5pc0VxdWFsKGwsIHRvUmVtb3ZlKSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMocmVtYWluaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2VsZWN0aW9uUG9wdXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uUG9wdXApIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uUG9wdXAuY2hvb3NlKFxuICAgICAgICAoZTogVEVudGl0eSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSxcbiAgICAgICAgdGhpcy5lbnRpdGllcyxcbiAgICAgICAgdGhpcy5maWx0ZXJzLFxuICAgICAgICB0aGlzLnNvcnRzLFxuICAgICAgICB0cnVlXG4gICAgICApLnN1YnNjcmliZShcbiAgICAgICAgKHNlbGVjdGlvbjogVEVudGl0eVtdKSA9PiB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhzZWxlY3Rpb24pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdDYW50IG9wZW4gc2VsZWN0aW9uIGJyb3dzZXIgcG9wdXAsIHNpbmNlIFtTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlXSB3YXMgbm90IGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICAgIHJldHVybiA8YW55PmlkIGFzIFRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxhbnk+ZW50aXR5IGFzIFRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSW50ZXJuYWwgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVzRXF1YWxzKGE6IFRWYWx1ZVtdLCBiOiBUVmFsdWVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzKHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyhhKSwgdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKGIpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyh0aGlzLmVudGl0eUlkcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYWZ0ZXIgYSB2YWx1ZSBoYXMgYmVlbiB3cml0dGVuIHRvIHRoaXMgY29udHJvbC5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3cml0ZVRvQ29udHJvbCh2YWx1ZTogVFZhbHVlW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eUlkcyA9IDxhbnk+dmFsdWUgYXMgVElkW107XG4gICAgICAvLyBWYWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHkgaWRzLCBlbnN1cmUgd2Ugc2VsZWN0IGVudGl0eSBieSBpZFxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBpZHM6ICcgKyBlbnRpdHlJZHMsIHZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhlbnRpdHlJZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBWYWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHksIGVuc3VyZSBlbnRpdHkgaXMgdXBkYXRlZFxuICAgICAgY29uc3QgY3VycmVudEVudGl0aWVzID0gdGhpcy5lbnRpdGllcztcbiAgICAgIGNvbnN0IG5ld0VudGl0aWVzID0gPGFueT52YWx1ZSBhcyBURW50aXR5W107XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0aWVzIChzaXplKTogJyArIG5ld0VudGl0aWVzPy5sZW5ndGgsIHZhbHVlKTtcbiAgICAgIGlmICghdGhpcy5lcXVhbEVudGl0aWVzKGN1cnJlbnRFbnRpdGllcywgbmV3RW50aXRpZXMpKSB7XG4gICAgICAgIHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChuZXdFbnRpdGllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdJZ25vcmVkIHdyaXR0ZW4gZW50aXRpZXMgYXMgdGhleSBhcmUgYWxyZWFkeSBzZXQgdG8gZW50aXRpZXMkIScpO1xuICAgICAgfVxuICAgIH1cbiAgICBzdXBlci53cml0ZVRvQ29udHJvbCh2YWx1ZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIHByaXZhdGUgaXNBbHJlYWR5UHJlc2VudChxdWVyeVZhbHVlOiBURW50aXR5KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudGl0aWVzLnNvbWUodiA9PiB0aGlzLmlzRXF1YWwodiwgcXVlcnlWYWx1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlczogVFZhbHVlW10pOiBUSWRbXSB8IG51bGwge1xuICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgIHJldHVybiB2YWx1ZXMubWFwKHYgPT4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZSh2KSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHlJZEZyb21WYWx1ZSh2YWx1ZTogVFZhbHVlKTogVElkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHJldHVybiA8YW55PnZhbHVlIGFzIFRJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW50aXR5ID0gKDxhbnk+dmFsdWUpIGFzIFRFbnRpdHk7XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW50aXRpZXNUb1ZhbHVlcyhlbnRpdGllczogVEVudGl0eVtdKTogVFZhbHVlW10gfCBudWxsIHtcbiAgICBpZiAoZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiBlbnRpdGllcy5tYXAoZSA9PiB0aGlzLmVudGl0eVRvVmFsdWUoZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW50aXR5SWRzKHZhbHVlczogVEVudGl0eVtdIHwgbnVsbCk6IFRJZFtdIHtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IHRoaXMuZ2V0RW50aXR5SWQodikpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZXF1YWxJZHMoaWRzQTogVElkW10sIGlkc0I6IFRJZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFNldHMuZXF1YWxDb250ZW50KGlkc0EsIGlkc0IpO1xuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbEVudGl0aWVzKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQSksIHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQikpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdGllc0J5SWRzKGlkczogVElkW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzO1xuICAgIHRoaXMubG9nZ2VyLmluZm8oJ3NlbGVjdEVudGl0aWVzQnlJZHM6IGlkcycgKyBpZHMgKyAnLCBjdXJyZW50IGVudGl0aWVzOicsIGN1cnJlbnRFbnRpdGllcyk7XG4gICAgaWYgKGN1cnJlbnRFbnRpdGllcyAmJiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGN1cnJlbnRFbnRpdGllcyksIGlkcykpIHtcbiAgICAgIHJldHVybjsgLy8gRW50aXRpZXMgYWxyZWFkeSBsb2FkZWRcbiAgICB9XG5cbiAgICB0aGlzLmZpbmRPckxvYWRFbnRpdGllc0J5SWRzKGlkcylcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBlbnRpdGllcyA9PiB0aGlzLmVudGl0aWVzID0gZW50aXRpZXMsXG4gICAgICAgIGVycm9yOiBlcnIgPT4gdGhpcy51cGRhdGVTdGF0ZShFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmVycm9yKGVycikpXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzOiBUSWRbXSk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgaWYgKGlkcy5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5maW5kSW5EYXRhQ29udGV4dChpZHMpO1xuICAgICAgY29uc3QgbWlzc2luZ0lkcyA9IGlkcy5maWx0ZXIoaWQgPT4gIWV4aXN0aW5nLmhhcyhpZCkpO1xuICAgICAgY29uc3QgdmFsdWVMb2FkUmVxdWVzdCQgPSBtaXNzaW5nSWRzLmxlbmd0aCA+IDAgPyB0aGlzLmxvYWRFbnRpdGllc0J5SWRzKG1pc3NpbmdJZHMpIDogb2YobmV3IE1hcCgpKTtcblxuICAgICAgcmV0dXJuIHZhbHVlTG9hZFJlcXVlc3QkLnBpcGUoXG4gICAgICAgIG1hcChsb2FkZWQgPT4ge1xuICAgICAgICAgIGxvYWRlZC5mb3JFYWNoKCh2LCBrKSA9PiBleGlzdGluZy5zZXQoaywgdikpO1xuICAgICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICAgICAgfSksXG4gICAgICAgIG1hcChhbGxWYWx1ZXNNYXAgPT4gQXJyYXkuZnJvbShhbGxWYWx1ZXNNYXAudmFsdWVzKCkpKSAvLyBUT0RPIFNvcnQ/XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gc2VsZWN0IHZhbHVlIGJ5IElkczogJyArIGlkcyArICcgLSBEYXRhQ29udGV4dCBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEVudGl0aWVzQnlJZHMoaWRzOiBUSWRbXSk6IE9ic2VydmFibGU8TWFwPFRJZCwgVEVudGl0eT4+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udGV4dC5kYXRhU291cmNlLmZpbmRCeUlkcyhpZHMpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBlbnRpdGllcyBieSBpZHM6ICcgKyBpZHMsIGVycik7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICB9KSxcbiAgICAgIG1hcCh2YWx1ZXMgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTG9hZGVkIGVudGl0aWVzIGJ5IGlkOicsIHZhbHVlcyk7XG4gICAgICAgIGNvbnN0IHZhbHVlTWFwID0gbmV3IE1hcDxUSWQsIFRFbnRpdHk+KCk7XG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKHYgPT4gdmFsdWVNYXAuc2V0KHRoaXMuZ2V0RW50aXR5SWQodiksIHYpKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlTWFwO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kSW5EYXRhQ29udGV4dChpZHM6IFRJZFtdKTogTWFwPFRJZCwgVEVudGl0eT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nVmFsdWVzID0gbmV3IE1hcDxUSWQsIFRFbnRpdHk+KCk7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YUNvbnRleHQuc25hcHNob3QuZGF0YTtcbiAgICAgIGNvbnN0IHJlcXVpcmVkSWRzID0gbmV3IFNldChpZHMpO1xuICAgICAgZGF0YVxuICAgICAgICAuZmlsdGVyKGQgPT4gcmVxdWlyZWRJZHMuaGFzKHRoaXMuZ2V0RW50aXR5SWQoZCkpKVxuICAgICAgICAuZm9yRWFjaChkID0+IGV4aXN0aW5nVmFsdWVzLnNldCh0aGlzLmdldEVudGl0eUlkKGQpLCBkKSk7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZ1ZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllczogVEVudGl0eVtdKTogVEVudGl0eVtdIHtcbiAgICBjb25zdCBzb3J0ZWQgPSB0aGlzLnNvcnRFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgdGhpcy5fZW50aXRpZXMkLm5leHQoc29ydGVkKTtcbiAgICByZXR1cm4gc29ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0RW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRFbnRpdHlbXSB7XG4gICAgaWYgKGVudGl0aWVzICYmIHRoaXMuZW50aXRpZXNTb3J0cyAmJiB0aGlzLmVudGl0aWVzU29ydHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc29ydGVkID0gU29ydFV0aWwuc29ydERhdGEoZW50aXRpZXMsIHRoaXMuZW50aXRpZXNTb3J0cyk7XG4gICAgICBpZiAoIVNvcnRVdGlsLmVxdWFsc0V4YWN0UmVmcyhlbnRpdGllcywgc29ydGVkKSkge1xuICAgICAgICAvLyBPbmx5IHJldHVybiBhIGNvcHkgb2YgdGhlIGFycmF5IGlmIGFjdHVhbGx5IHNvbWV0aGluZyBjaGFuZ2VkXG4gICAgICAgIHJldHVybiBzb3J0ZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbnRpdGllcztcbiAgfVxufVxuIl19
|