@eui/components 15.2.0-snapshot-1675877365299 → 15.2.0
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/docs/dependencies.html +2 -2
- package/docs/directives/InputDirective.html +1 -13
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +12 -12
- package/esm2020/eui-input-checkbox/eui-input-checkbox.component.mjs +2 -2
- package/esm2020/eui-input-number/eui-input-number.component.mjs +2 -2
- package/esm2020/eui-input-radio/eui-input-radio.component.mjs +2 -2
- package/esm2020/eui-input-text/eui-input-text.component.mjs +2 -2
- package/esm2020/shared/input.directive.mjs +8 -11
- package/fesm2015/eui-components-eui-input-checkbox.mjs +1 -1
- package/fesm2015/eui-components-eui-input-checkbox.mjs.map +1 -1
- package/fesm2015/eui-components-eui-input-number.mjs +1 -1
- package/fesm2015/eui-components-eui-input-number.mjs.map +1 -1
- package/fesm2015/eui-components-eui-input-radio.mjs +1 -1
- package/fesm2015/eui-components-eui-input-radio.mjs.map +1 -1
- package/fesm2015/eui-components-eui-input-text.mjs +1 -1
- package/fesm2015/eui-components-eui-input-text.mjs.map +1 -1
- package/fesm2015/eui-components-shared.mjs +7 -12
- package/fesm2015/eui-components-shared.mjs.map +1 -1
- package/fesm2020/eui-components-eui-input-checkbox.mjs +1 -1
- package/fesm2020/eui-components-eui-input-checkbox.mjs.map +1 -1
- package/fesm2020/eui-components-eui-input-number.mjs +1 -1
- package/fesm2020/eui-components-eui-input-number.mjs.map +1 -1
- package/fesm2020/eui-components-eui-input-radio.mjs +1 -1
- package/fesm2020/eui-components-eui-input-radio.mjs.map +1 -1
- package/fesm2020/eui-components-eui-input-text.mjs +1 -1
- package/fesm2020/eui-components-eui-input-text.mjs.map +1 -1
- package/fesm2020/eui-components-shared.mjs +7 -10
- package/fesm2020/eui-components-shared.mjs.map +1 -1
- package/package.json +2 -2
- package/shared/input.directive.d.ts +3 -3
- package/shared/input.directive.d.ts.map +1 -1
|
@@ -218,10 +218,10 @@
|
|
|
218
218
|
<a href="#MONTH_YEAR_FORMAT" title="packages/eui/packages/components/legacy/ux-datepicker/ux-date-formats.module.ts" ><b>MONTH_YEAR_FORMAT</b> (packages/.../ux-date-formats.module.ts)</a>
|
|
219
219
|
</li>
|
|
220
220
|
<li>
|
|
221
|
-
<a href="#noop" title="packages/eui/packages/components/legacy/ux-dropdown-
|
|
221
|
+
<a href="#noop" title="packages/eui/packages/components/legacy/ux-dropdown-tree/ux-dropdown-tree.component.ts" ><b>noop</b> (packages/.../ux-dropdown-tree.component.ts)</a>
|
|
222
222
|
</li>
|
|
223
223
|
<li>
|
|
224
|
-
<a href="#noop" title="packages/eui/packages/components/legacy/ux-dropdown-
|
|
224
|
+
<a href="#noop" title="packages/eui/packages/components/legacy/ux-dropdown-button/ux-dropdown-button.component.ts" ><b>noop</b> (packages/.../ux-dropdown-button.component.ts)</a>
|
|
225
225
|
</li>
|
|
226
226
|
<li>
|
|
227
227
|
<a href="#noop" title="packages/eui/packages/components/legacy/ux-switch/ux-switch.component.ts" ><b>noop</b> (packages/.../ux-switch.component.ts)</a>
|
|
@@ -2456,7 +2456,7 @@
|
|
|
2456
2456
|
</tbody>
|
|
2457
2457
|
</table>
|
|
2458
2458
|
</section>
|
|
2459
|
-
<h3>packages/eui/packages/components/legacy/ux-dropdown-
|
|
2459
|
+
<h3>packages/eui/packages/components/legacy/ux-dropdown-tree/ux-dropdown-tree.component.ts</h3>
|
|
2460
2460
|
<section>
|
|
2461
2461
|
<h3></h3> <table class="table table-sm table-bordered">
|
|
2462
2462
|
<tbody>
|
|
@@ -2482,10 +2482,10 @@
|
|
|
2482
2482
|
<tbody>
|
|
2483
2483
|
<tr>
|
|
2484
2484
|
<td class="col-md-4">
|
|
2485
|
-
<a name="
|
|
2485
|
+
<a name="UX_DROPDOWN_TREE_FORM_VALUE_ACCESSOR"></a>
|
|
2486
2486
|
<span class="name">
|
|
2487
|
-
<span ><b>
|
|
2488
|
-
<a href="#
|
|
2487
|
+
<span ><b>UX_DROPDOWN_TREE_FORM_VALUE_ACCESSOR</b></span>
|
|
2488
|
+
<a href="#UX_DROPDOWN_TREE_FORM_VALUE_ACCESSOR"><span class="icon ion-ios-link"></span></a>
|
|
2489
2489
|
</span>
|
|
2490
2490
|
</td>
|
|
2491
2491
|
</tr>
|
|
@@ -2499,7 +2499,7 @@
|
|
|
2499
2499
|
<td class="col-md-4">
|
|
2500
2500
|
<i>Default value : </i><code>{
|
|
2501
2501
|
provide: NG_VALUE_ACCESSOR,
|
|
2502
|
-
useExisting: forwardRef(() =>
|
|
2502
|
+
useExisting: forwardRef(() => UxDropdownTreeComponent),
|
|
2503
2503
|
multi: true,
|
|
2504
2504
|
}</code>
|
|
2505
2505
|
</td>
|
|
@@ -2509,7 +2509,7 @@
|
|
|
2509
2509
|
</tbody>
|
|
2510
2510
|
</table>
|
|
2511
2511
|
</section>
|
|
2512
|
-
<h3>packages/eui/packages/components/legacy/ux-dropdown-
|
|
2512
|
+
<h3>packages/eui/packages/components/legacy/ux-dropdown-button/ux-dropdown-button.component.ts</h3>
|
|
2513
2513
|
<section>
|
|
2514
2514
|
<h3></h3> <table class="table table-sm table-bordered">
|
|
2515
2515
|
<tbody>
|
|
@@ -2535,10 +2535,10 @@
|
|
|
2535
2535
|
<tbody>
|
|
2536
2536
|
<tr>
|
|
2537
2537
|
<td class="col-md-4">
|
|
2538
|
-
<a name="
|
|
2538
|
+
<a name="UX_DROPDOWN_BUTTON_VALUE_ACCESSOR"></a>
|
|
2539
2539
|
<span class="name">
|
|
2540
|
-
<span ><b>
|
|
2541
|
-
<a href="#
|
|
2540
|
+
<span ><b>UX_DROPDOWN_BUTTON_VALUE_ACCESSOR</b></span>
|
|
2541
|
+
<a href="#UX_DROPDOWN_BUTTON_VALUE_ACCESSOR"><span class="icon ion-ios-link"></span></a>
|
|
2542
2542
|
</span>
|
|
2543
2543
|
</td>
|
|
2544
2544
|
</tr>
|
|
@@ -2552,7 +2552,7 @@
|
|
|
2552
2552
|
<td class="col-md-4">
|
|
2553
2553
|
<i>Default value : </i><code>{
|
|
2554
2554
|
provide: NG_VALUE_ACCESSOR,
|
|
2555
|
-
useExisting: forwardRef(() =>
|
|
2555
|
+
useExisting: forwardRef(() => UxDropdownButtonComponent),
|
|
2556
2556
|
multi: true,
|
|
2557
2557
|
}</code>
|
|
2558
2558
|
</td>
|
|
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@angular/forms";
|
|
6
6
|
export class EuiInputCheckboxComponent extends InputDirective {
|
|
7
7
|
constructor(ngControl, _elementRef, _renderer, _cd, viewContainerRef, injector) {
|
|
8
|
-
super(_elementRef, _renderer,
|
|
8
|
+
super(_elementRef, _renderer, injector);
|
|
9
9
|
this.ngControl = ngControl;
|
|
10
10
|
this._elementRef = _elementRef;
|
|
11
11
|
this._renderer = _renderer;
|
|
@@ -180,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
180
180
|
type: HostListener,
|
|
181
181
|
args: ['keydown.space', ['$event']]
|
|
182
182
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1jaGVja2JveC9ldWktaW5wdXQtY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEVBR0osWUFBWSxFQUVaLFNBQVMsRUFDVCxpQkFBaUIsRUFHakIsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDOzs7QUFTNUUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGNBQWM7SUFxRXpELFlBQ2tDLFNBQW9CLEVBQ3hDLFdBQXlDLEVBQ3pDLFNBQW9CLEVBQ3RCLEdBQXNCLEVBQ3RCLGdCQUFrQyxFQUMxQyxRQUFrQjtRQUVsQixLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFQckIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBOEI7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckU5QyxxRUFBcUU7UUFDbEQsd0JBQW1CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFvQ3hELFNBQUksR0FBRyxVQUFVLENBQUM7UUF5QjlDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBa0ZyQixhQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQVEsRUFBRTtZQUM3QiwrQkFBK0I7UUFDbkMsQ0FBQyxDQUFDO1FBQ1EsV0FBTSxHQUFHLENBQUMsQ0FBQyxFQUFRLEVB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QUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5qZWN0b3IsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnaW5wdXRbZXVpSW5wdXRDaGVja0JveF0nLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlJbnB1dENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gW3RoaXMuZ2V0Q3NzQ2xhc3NlcygnZXVpLWlucHV0LWNoZWNrYm94JyksIHRoaXMuX2lzSW52YWxpZCA/IGBldWktaW5wdXQtY2hlY2tib3gtLWludmFsaWRgIDogJyddLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrYm94IGBpbmRldGVybWluYXRlYCB2YWx1ZSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBpbmRldGVybWluYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBpbmRldGVybWluYXRlLiBUaGlzIGlzIGFsc28ga25vd24gYXMgXCJtaXhlZFwiIG1vZGUgYW5kIGNhbiBiZSB1c2VkIHRvXG4gICAgICogcmVwcmVzZW50IGEgY2hlY2tib3ggd2l0aCB0aHJlZSBzdGF0ZXMsIGUuZy4gYSBjaGVja2JveCB0aGF0IHJlcHJlc2VudHMgYSBuZXN0ZWQgbGlzdCBvZlxuICAgICAqIGNoZWNrYWJsZSBpdGVtcy4gTm90ZSB0aGF0IHdoZW5ldmVyIGNoZWNrYm94IGlzIG1hbnVhbGx5IGNsaWNrZWQsIGluZGV0ZXJtaW5hdGUgaXMgaW1tZWRpYXRlbHlcbiAgICAgKiBzZXQgdG8gZmFsc2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luZGV0ZXJtaW5hdGU7XG4gICAgfVxuICAgIHNldCBpbmRldGVybWluYXRlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICBjb25zdCBjaGFuZ2VkID0gdmFsdWUgIT0gdGhpcy5faW5kZXRlcm1pbmF0ZTtcbiAgICAgICAgdGhpcy5faW5kZXRlcm1pbmF0ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZUNoYW5nZS5lbWl0KHRoaXMuX2luZGV0ZXJtaW5hdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGlzSW52YWxpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSW52YWxpZCB8fCBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgaXNJbnZhbGlkKHN0YXRlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZXRJbnZhbGlkKHN0YXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2lzSW52YWxpZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIHByb3RlY3RlZCB0eXBlID0gJ2NoZWNrYm94JztcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5jaGVja2VkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkgPyB0cnVlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY2hlY2tlZDogYm9vbGVhbjtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlkKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0SWRBdHRyaWJ1dGUodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZztcbiAgICBwcml2YXRlIF9pbmRldGVybWluYXRlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcm90ZWN0ZWQgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfcmVuZGVyZXIsIG5nQ29udHJvbCwgaW5qZWN0b3IpO1xuXG4gICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gaWQgYXR0cmlidXRlIHNldCBvbmVcbiAgICAgICAgaWYgKCF0aGlzLl9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRJZEF0dHJpYnV0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVnaXN0ZXIgY29udHJvbCB2YWx1ZUFjY2Vzc29yXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICAvLyBpbiBjYXNlIGNvbnRyb2wgdmFsdWUgaXMgbnVsbCBzZXQgdGhlIGRlZmF1bHQgb25lIChpc0NoZWNrZWQpIGFuZCBzeW5jIENvbnRyb2wgU3RhdGVcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5zZXRWYWx1ZSh0aGlzLl9jaGVja2VkLCB7IGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XG4gICAgICAgICAgICAvLyBjaGFuZ2luZyBNb2RlbCBFeHByZXNzaW9uIGFmdGVyIHZpZXcgY2hlY2tlZCwgc28gZGV0ZWN0IGNoYW5nZXNcbiAgICAgICAgICAgIC8vIFRPRE86IGNoZWNrIHdoeSBhbHRob3VnaCBpdCdzIGNoZWNrZWQgLmNoZWNrZWQgcmV0dXJucyBmYWxzZVxuICAgICAgICAgICAgLy8gdGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodGhpcy5fY2hlY2tlZCk7XG4gICAgICAgICAgICAvLyB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snY2hlY2tlZCddKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlc1snY2hlY2tlZCddPy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gdGhpcz8ubmdDb250cm9sPy5jb250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrZWQgPSBjdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSBjdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGVja2VkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KG9iaikgPyB0cnVlIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMuX2NoZWNrZWQgPyB0cnVlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQmx1ciA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQudGFyZ2V0LmNoZWNrZWQnXSlcbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2VkKGNoZWNrZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShjaGVja2VkKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25TcGFjZVByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNoYW5nZSA9IChfKTogdm9pZCA9PiB7XG4gICAgICAgIC8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi9cbiAgICB9O1xuICAgIHByb3RlY3RlZCBvbkJsdXIgPSAoXyk6IHZvaWQgPT4ge1xuICAgICAgICAvKiBOb3RoaW5nIHRvIGJlIERvbmUgc28gZmFyICovXG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBzZXRJbnZhbGlkKHN0YXRlPzogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgaXQncyBjb250cm9sbGVkIGJ5IE5nQ29udHJvbCBvdmVycmlkZVxuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCA6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBvZiB0aGUgY2hlY2tib3guIFRoaXMgaXMgYWxzbyBrbm93biBhcyBcIm1peGVkXCIgbW9kZSBhbmQgY2FuIGJlIHVzZWQgdG9cbiAgICAgKiByZXByZXNlbnQgYSBjaGVja2JveCB3aXRoIHRocmVlIHN0YXRlcywgZS5nLiBhIGNoZWNrYm94IHRoYXQgcmVwcmVzZW50cyBhIG5lc3RlZCBsaXN0IG9mXG4gICAgICogY2hlY2thYmxlIGl0ZW1zLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zeW5jSW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkO1xuICAgICAgICAgICAgaWYgKCFjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1jaGVja2JveC9ldWktaW5wdXQtY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEVBR0osWUFBWSxFQUVaLFNBQVMsRUFDVCxpQkFBaUIsRUFHakIsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDOzs7QUFTNUUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGNBQWM7SUFxRXpELFlBQ2tDLFNBQW9CLEVBQ3hDLFdBQXlDLEVBQ3pDLFNBQW9CLEVBQ3RCLEdBQXNCLEVBQ3RCLGdCQUFrQyxFQUMxQyxRQUFrQjtRQUVsQixLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQVBWLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDeEMsZ0JBQVcsR0FBWCxXQUFXLENBQThCO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXJFOUMscUVBQXFFO1FBQ2xELHdCQUFtQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBb0N4RCxTQUFJLEdBQUcsVUFBVSxDQUFDO1FBeUI5QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQWtGckIsYUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFRLEVBQUU7WUFDN0IsK0JBQStCO1FBQ25DLENBQUMsQ0FBQztRQUNRLFdBQU0sR0FBRyxDQUFDLENBQUMsRUFBUSxFQUFFO1lBQzNCLCtC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QVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEluamVjdG9yLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lucHV0W2V1aUlucHV0Q2hlY2tCb3hdJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpSW5wdXRDaGVja2JveENvbXBvbmVudCBleHRlbmRzIElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmdldENzc0NsYXNzZXMoJ2V1aS1pbnB1dC1jaGVja2JveCcpLCB0aGlzLl9pc0ludmFsaWQgPyBgZXVpLWlucHV0LWNoZWNrYm94LS1pbnZhbGlkYCA6ICcnXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjaGVja2JveCBgaW5kZXRlcm1pbmF0ZWAgdmFsdWUgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgaW5kZXRlcm1pbmF0ZS4gVGhpcyBpcyBhbHNvIGtub3duIGFzIFwibWl4ZWRcIiBtb2RlIGFuZCBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlcHJlc2VudCBhIGNoZWNrYm94IHdpdGggdGhyZWUgc3RhdGVzLCBlLmcuIGEgY2hlY2tib3ggdGhhdCByZXByZXNlbnRzIGEgbmVzdGVkIGxpc3Qgb2ZcbiAgICAgKiBjaGVja2FibGUgaXRlbXMuIE5vdGUgdGhhdCB3aGVuZXZlciBjaGVja2JveCBpcyBtYW51YWxseSBjbGlja2VkLCBpbmRldGVybWluYXRlIGlzIGltbWVkaWF0ZWx5XG4gICAgICogc2V0IHRvIGZhbHNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGluZGV0ZXJtaW5hdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmRldGVybWluYXRlO1xuICAgIH1cbiAgICBzZXQgaW5kZXRlcm1pbmF0ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgY29uc3QgY2hhbmdlZCA9IHZhbHVlICE9IHRoaXMuX2luZGV0ZXJtaW5hdGU7XG4gICAgICAgIHRoaXMuX2luZGV0ZXJtaW5hdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLl9pbmRldGVybWluYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N5bmNJbmRldGVybWluYXRlKHRoaXMuX2luZGV0ZXJtaW5hdGUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzSW52YWxpZChzdGF0ZTogYW55KSB7XG4gICAgICAgIHRoaXMuc2V0SW52YWxpZChzdGF0ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9pc0ludmFsaWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmc7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnR5cGUnKSBwcm90ZWN0ZWQgdHlwZSA9ICdjaGVja2JveCc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY2hlY2tlZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgY2hlY2tlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2NoZWNrZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpID8gdHJ1ZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrZWQ6IGJvb2xlYW47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnNldElkQXR0cmlidXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2lkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX3JlbmRlcmVyLCBpbmplY3Rvcik7XG5cbiAgICAgICAgLy8gaWYgdGhlcmUncyBubyBpZCBhdHRyaWJ1dGUgc2V0IG9uZVxuICAgICAgICBpZiAoIXRoaXMuX2lkKSB7XG4gICAgICAgICAgICB0aGlzLnNldElkQXR0cmlidXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZWdpc3RlciBjb250cm9sIHZhbHVlQWNjZXNzb3JcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIC8vIGluIGNhc2UgY29udHJvbCB2YWx1ZSBpcyBudWxsIHNldCB0aGUgZGVmYXVsdCBvbmUgKGlzQ2hlY2tlZCkgYW5kIHN5bmMgQ29udHJvbCBTdGF0ZVxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKHRoaXMuX2NoZWNrZWQsIHsgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIC8vIGNoYW5naW5nIE1vZGVsIEV4cHJlc3Npb24gYWZ0ZXIgdmlldyBjaGVja2VkLCBzbyBkZXRlY3QgY2hhbmdlc1xuICAgICAgICAgICAgLy8gVE9ETzogY2hlY2sgd2h5IGFsdGhvdWdoIGl0J3MgY2hlY2tlZCAuY2hlY2tlZCByZXR1cm5zIGZhbHNlXG4gICAgICAgICAgICAvLyB0aGlzLm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSh0aGlzLl9jaGVja2VkKTtcbiAgICAgICAgICAgIC8vIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydjaGVja2VkJ10pIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWydjaGVja2VkJ10/LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9PSB0aGlzPy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tlZCA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkob2JqKSA/IHRydWUgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdGhpcy5fY2hlY2tlZCA/IHRydWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25CbHVyID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQuY2hlY2tlZCddKVxuICAgIHByb3RlY3RlZCBvbkNoYW5nZWQoY2hlY2tlZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKGNoZWNrZWQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc3BhY2UnLCBbJyRldmVudCddKVxuICAgIHByb3RlY3RlZCBvblNwYWNlUHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gKF8pOiB2b2lkID0+IHtcbiAgICAgICAgLyogTm90aGluZyB0byBiZSBEb25lIHNvIGZhciAqL1xuICAgIH07XG4gICAgcHJvdGVjdGVkIG9uQmx1ciA9IChfKTogdm9pZCA9PiB7XG4gICAgICAgIC8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi9cbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHNldEludmFsaWQoc3RhdGU/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gaW4gY2FzZSBpdCdzIGNvbnRyb2xsZWQgYnkgTmdDb250cm9sIG92ZXJyaWRlXG4gICAgICAgIHRoaXMuX2lzSW52YWxpZCA9IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBpbmRldGVybWluYXRlIHN0YXRlIG9mIHRoZSBjaGVja2JveC4gVGhpcyBpcyBhbHNvIGtub3duIGFzIFwibWl4ZWRcIiBtb2RlIGFuZCBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlcHJlc2VudCBhIGNoZWNrYm94IHdpdGggdGhyZWUgc3RhdGVzLCBlLmcuIGEgY2hlY2tib3ggdGhhdCByZXByZXNlbnRzIGEgbmVzdGVkIGxpc3Qgb2ZcbiAgICAgKiBjaGVja2FibGUgaXRlbXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3N5bmNJbmRldGVybWluYXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja2VkID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoZWNrZWQ7XG4gICAgICAgICAgICBpZiAoIWNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -10,7 +10,7 @@ import * as i2 from "@eui/core";
|
|
|
10
10
|
import * as i3 from "@eui/components/directives";
|
|
11
11
|
export class EuiInputNumberComponent extends InputDirective {
|
|
12
12
|
constructor(control, _elementRef, _renderer, cd, localeService, locale_id, injector) {
|
|
13
|
-
super(_elementRef, _renderer,
|
|
13
|
+
super(_elementRef, _renderer, injector);
|
|
14
14
|
this.control = control;
|
|
15
15
|
this._elementRef = _elementRef;
|
|
16
16
|
this._renderer = _renderer;
|
|
@@ -603,4 +603,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
603
603
|
type: HostListener,
|
|
604
604
|
args: ['focusout', ['$event']]
|
|
605
605
|
}] } });
|
|
606
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktaW5wdXQtbnVtYmVyL2V1aS1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFFTixTQUFTLEVBR1QsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBS0wsSUFBSSxFQUVKLGlCQUFpQixHQUVwQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQTZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0csT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBd0N4RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQXVHdkQsWUFDa0MsT0FBa0IsRUFDdEMsV0FBdUIsRUFDdkIsU0FBb0IsRUFDdEIsRUFBcUIsRUFDVCxhQUE0QixFQUNyQixTQUFpQixFQUM1QyxRQUFrQjtRQUVsQixLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFSbkIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ1Qsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQXJCWixTQUFJLEdBQUcsWUFBWSxDQUFD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QUs7Z0JBU0YsT0FBTztzQkFEVixLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFRRyxVQUFVO3NCQUFsQixLQUFLO2dCQUM4QixJQUFJO3NCQUF2QyxXQUFXO3VCQUFDLFdBQVc7Z0JBQ2YsS0FBSztzQkFBYixLQUFLO2dCQXlKTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCdkIsU0FBUztzQkFEbEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkN6QixVQUFVO3NCQURuQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgT3B0aW9uYWwsXG4gICAgTE9DQUxFX0lELFxuICAgIEluamVjdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEluamVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlLCBMb2NhbGVTdGF0ZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5LCBCb29sZWFuSW5wdXQsIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IHR5cGUgQ2xlYXZlT3B0aW9ucyB9IGZyb20gJ2NsZWF2ZS5qcy9vcHRpb25zJztcbmltcG9ydCBDbGVhdmUgZnJvbSAnY2xlYXZlLmpzJztcbmltcG9ydCB7IENsZWF2ZUV2ZW50T25DaGFuZ2UgfSBmcm9tICcuL21vZGVscy9jbGVhdmUtZXZlbnQtb25jaGFuZ2UubW9kZWwnO1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IGdldExvY2FsZU51bWJlclN5bWJvbCwgTnVtYmVyU3ltYm9sIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEV1aUNsZWFyYWJsZURpcmVjdGl2ZSwgRXVpTG9hZGluZ0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcblxuaW50ZXJmYWNlIENsZWF2ZUluc3RhbmNlIGV4dGVuZHMgQ2xlYXZlIHtcbiAgICBpbml0U3dhcEhpZGRlbklucHV0PzogKCkgPT4gdm9pZDtcbiAgICBpbml0TnVtZXJhbEZvcm1hdHRlcj86ICgpID0+IHZvaWQ7XG4gICAgaW5pdFRpbWVGb3JtYXR0ZXI/OiAoKSA9PiB2b2lkO1xuICAgIGluaXREYXRlRm9ybWF0dGVyPzogKCkgPT4gdm9pZDtcbiAgICBpbml0UGhvbmVGb3JtYXR0ZXI/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZUNyZWRpdENhcmRQcm9wc0J5VmFsdWU/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZVZhbHVlU3RhdGU/OiAoKSA9PiB2b2lkO1xuICAgIGNhbGxPblZhbHVlQ2hhbmdlZD86ICgpID0+IHZvaWQ7XG4gICAgb25DaGFuZ2U/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkN1dD86IChldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICAgIG9uRm9jdXM/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkNvcHk/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbktleURvd24/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkNoYW5nZUxpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25LZXlEb3duTGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkZvY3VzTGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkN1dExpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25Db3B5TGlzdGVuZXI/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lucHV0W2V1aUlucHV0TnVtYmVyXTpub3QoW2V1aUlucHV0Q2hlY2tCb3hdKScsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBFdWlDbGVhcmFibGVEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsnZXVpQ2xlYXJhYmxlJywgJ3JlYWRvbmx5J10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogRXVpTG9hZGluZ0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydldWlMb2FkaW5nJywgJ3JlYWRvbmx5J10sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpSW5wdXROdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgY2FuIGJlIGVudGVyZWQuIEJsb2NrcyB1c2VyJ3MgaW5wdXQgaWYgbm90IGluIHJhbmdlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgcHVibGljIHNldCBtaW4odmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgICAgIHRoaXMuX21pbiA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gbnVtYmVyIGNhbiBiZSBlbnRlcmVkLiBCbG9ja3MgdXNlcidzIGlucHV0IGlmIG5vdCBpbiByYW5nZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbWF4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9tYXggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiBBZGRzIGxlYWRpbmcgemVybyB0byBhIG51bWJlci4gRm9ybWF0dGluZyB3aWxsIG5vdCB3b3JrLlxuICAgICAqICAgICAgZS5nLiB3aXRoIGxlYWRpbmdaZXJvPTMgaW5wdXQgbnVtYmVyIDUgPT4gMDA1XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGxlYWRpbmdaZXJvKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZWFkaW5nWmVybztcbiAgICB9XG4gICAgcHVibGljIHNldCBsZWFkaW5nWmVybyh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbGVhZGluZ1plcm8gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzSW52YWxpZChzdGF0ZTogYW55KSB7XG4gICAgICAgIHRoaXMuc2V0SW52YWxpZChzdGF0ZSk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS1pbnB1dC1udW1iZXInKSwgdGhpcy5faXNJbnZhbGlkID8gYGV1aS1pbnB1dC1udW1iZXItLWludmFsaWRgIDogJyddLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgLyoqIGhvdyBtYW55IGRpZ2l0cyBmb3IgdGhlIGRlY2ltYWwgcGFydCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZyYWN0aW9uRGlnaXRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mcmFjdGlvbkRpZ2l0cztcbiAgICB9XG4gICAgc2V0IGZyYWN0aW9uRGlnaXRzKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9mcmFjdGlvbkRpZ2l0cyA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgLyoqIGhvdyBtYW55IGRpZ2l0cyBmb3IgdGhlIGludGVnZXIgcGFydCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpZ2l0cygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlnaXRzO1xuICAgIH1cbiAgICBzZXQgZGlnaXRzKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9kaWdpdHMgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZpbGxGcmFjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGxGcmFjdGlvbjtcbiAgICB9XG4gICAgc2V0IGZpbGxGcmFjdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZpbGxGcmFjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiByb3VuZHMgYSBudW1iZXIgd2l0aCBtb3JlIHRoYW4gdHdvIGRlY2ltYWxzIFVQICovXG4gICAgQElucHV0KClcbiAgICBnZXQgcm91bmRVcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91bmRVcDtcbiAgICB9XG4gICAgc2V0IHJvdW5kVXAodmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgICAgIHRoaXMuX3JvdW5kVXAgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNJbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIGRvZXMgbm90IGZvcm1hdCB0aGUgYW5kIGRvIGEgdGhvdXNhbmQgZ3JvdXBpbmcgb2YgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgbm9Gb3JtYXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub0Zvcm1hdDtcbiAgICB9XG4gICAgc2V0IG5vRm9ybWF0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbm9Gb3JtYXQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX25vRm9ybWF0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIHByb3RlY3RlZCB0eXBlID0gJ2V1aS1udW1iZXInO1xuICAgIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9yb3VuZFVwOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfbWluOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfbWF4OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIF9sZWFkaW5nWmVybyA9IDA7XG4gICAgLyoqIGhvbGRzIGluc3RhbmNlIG9mIGNsZWF2ZSAqL1xuICAgIHByaXZhdGUgY2xlYXZlSW5zdGFuY2U6IENsZWF2ZUluc3RhbmNlO1xuICAgIC8qKiBvcHRpb25zIGZvciB0aGUgQ2xlYXZlIGluc3RhbmNlICovXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBDbGVhdmVPcHRpb25zO1xuICAgIHByaXZhdGUgX2ZyYWN0aW9uRGlnaXRzID0gMDtcbiAgICBwcml2YXRlIF9kaWdpdHM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9maWxsRnJhY3Rpb246IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcm90ZWN0ZWQgY29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICAgICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlX2lkOiBzdHJpbmcsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX3JlbmRlcmVyLCBjb250cm9sLCBpbmplY3Rvcik7XG5cbiAgICAgICAgLy8gc2V0IGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICBudW1lcmFsOiB0cnVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICAvLyBzZXQgY29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluc3RhbnRpYXRlIGNsZWF2ZVxuICAgICAgICB0aGlzLmluaXRDbGVhdmUoKTtcblxuICAgICAgICAvLyBzdWJzY3JpYmUgdG8gbG9jYWxpemF0aW9uIHNlcnZpY2UgYW5kIGxpc3RlbiBmb3IgbG9jYWxlIGNoYW5nZS4gRGUtY29uc3RydWN0aW9uIG9mIGxvY2FsZSBzaG91bGQgaGFwcGVuIGhlcmUhXG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZT8uZ2V0U3RhdGUoKS5zdWJzY3JpYmUoKHN0YXRlOiBMb2NhbGVTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5nZXRDbGVhdmVPcHRzQmFzZWRPbkxvY2FsZShzdGF0ZT8uaWQpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG9wdGlvbnMgb24gdGhlIGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKHRydWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyb290Q2xhc3NOYW1lJywgJ2V1aS1pbnB1dC1udW1iZXInKTtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICd2YWx1ZScpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdmcmFjdGlvbkRpZ2l0cycpKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbnVtZXJhbERlY2ltYWxTY2FsZTogdGhpcy5mcmFjdGlvbkRpZ2l0cyB9O1xuICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ25vRm9ybWF0JykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCBudW1lcmFsVGhvdXNhbmRzR3JvdXBTdHlsZTogdGhpcy5ub0Zvcm1hdCA/ICdub25lJyA6ICd0aG91c2FuZCcgfTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdmaWxsRnJhY3Rpb24nKSAmJiB0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5RnJhY3Rpb25GaWxsKHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ2RpZ2l0cycpKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbnVtZXJhbEludGVnZXJTY2FsZTogdGhpcy5kaWdpdHMgfTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdtaW4nKSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXNbJ21pbiddLmN1cnJlbnRWYWx1ZSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGFrZSBjYXJlIG9mIHRoZSBzaWduIHN5bWJvbFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKE1hdGguYWJzKE51bWJlcih0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpKS50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY2hhbmdlcywgJ3JvdW5kVXAnKSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXNbJ3JvdW5kVXAnXS5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIG51bWJlciA9IHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShudW1iZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIC8vIGRlc3Ryb3kgY2xlYXZlIGluc3RhbmNlXG4gICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiBhbnkgPSAoXykgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sICYmIChfICE9PSBudWxsIHx8IF8gIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIC8vIHBhcnNlIG51bWJlclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBOdW1iZXIoXyk7XG4gICAgICAgICAgICAvLyBydW4gb24gbmV4dCBNaWNyb1Rhc2sgdG8gYXZvaWQgTkcwMTAwIGVycm9yIFRPRE86IGRlZXBlciBpbnZlc3RpZ2F0aW9uXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuY29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSh2YWx1ZSkpO1xuICAgICAgICAgICAgLy8gaW4gY2FzZSBjb250cm9sIGlzIEZvcm1Db250cm9sXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wuc2V0VmFsdWUoaXNOYU4odmFsdWUpID8gbnVsbCA6IHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UsIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIHRoZSBudW1iZXIgZm9yIGNsZWF2ZSBpbnN0YW5jZSBhbmQgZGl2IGVsZW1lbnQgKHJlYWQgb25seSBtb2RlKVxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbCB0aGUgbnVtYmVyIGZvcm1hdHRlZCBvciBub3RcbiAgICAgKi9cbiAgICB3cml0ZVZhbHVlKHZhbDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWxsRnJhY3Rpb24gJiYgdmFsICE9PSAnJyAmJiB2YWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RnJhY3Rpb25GaWxsKHZhbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyByZXRyaWV2ZSBmb3JtYXR0ZWQgdmFsdWUgKGJhc2VkIG9uIG9wdGlvbnMpIGFuZCBzZXQgdGhlIG51bWJlciB0byB0aGUgbW9kZWxcbiAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUobnVtYmVyKTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8uY29udHJvbC5zZXRWYWx1ZShpc05hTihudW1iZXIpID8gbnVsbCA6IG51bWJlciwgeyBlbWl0RXZlbnQ6IGZhbHNlLCBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSlcbiAgICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkge1xuICAgICAgICAvLyBnZXQgdGhlIHZhbHVlIGZyb20gY2xpcGJvYXJkXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LmNsaXBib2FyZERhdGEgfHwgd2luZG93WydjbGlwYm9hcmREYXRhJ10pLmdldERhdGEoJ3RleHQnKTtcbiAgICAgICAgLy8gaW4gY2FzZSByb3VuZCBVUCBpcyBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLl9yb3VuZFVwID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIGNsb25lIG9mIGNsZWF2ZUluc3RhbmNlXG4gICAgICAgICAgICBjb25zdCBjbG9uZUluc3RhbmNlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUoZGl2LCB7IC4uLnRoaXMub3B0aW9ucywgbnVtZXJhbERlY2ltYWxTY2FsZTogOCB9KTtcbiAgICAgICAgICAgIGNsb25lSW5zdGFuY2Uuc2V0UmF3VmFsdWUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBsZXQgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQoY2xvbmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIG51bWJlciA9IHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKTtcbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKG51bWJlci50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBpbiB0aGUgZnV0dXJlIGhvdyBjYW4gdGhpcyBiZSBhdm9pZGVkXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShudW1iZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgaXQncyBhIHNpbmdsZSBzeW1ib2wgYW5kIG5vdCBTcGVjaWFsIGxpa2UgKEN0cmwsIGJhY2tzcGFjZSBldGMpXG4gICAgICAgIGlmIChlPy5rZXkubGVuZ3RoIDw9IDEgJiYgIWUuY3RybEtleSAmJiAhZS5hbHRLZXkgJiYgIWUubWV0YUtleSkge1xuICAgICAgICAgICAgLy8gc3RvcCBldmVudCBwcm9wYWdhdGlvbiBpZiBrZXkgcHJlc3NlZCBpcyBub3QgYSBudW1iZXIgb3IgbG9jYWxlIGNoYXJhY3RlciBvciBtaW51cyBzaWduXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgTnVtYmVyLmlzTmFOKE51bWJlci5wYXJzZUludChlLmtleSwgMTApKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaXNNaW51c0FsbG93ZWQoZS5rZXkpICYmXG4gICAgICAgICAgICAgICAgZS5rZXkgIT09IGdldExvY2FsZU51bWJlclN5bWJvbCh0aGlzLmxvY2FsZVNlcnZpY2U/LmN1cnJlbnRMb2NhbGUgfHwgdGhpcy5sb2NhbGVfaWQsIE51bWJlclN5bWJvbC5EZWNpbWFsKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgLy8gc3RvcCBldmVudCBwcm9wYWdhdGlvbiBpZiBrZXkgcHJlc3NlZCBleGNlZWRzIHRoZSBtaW4vbWF4IHZhbHVlIHJhbmdlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNOYU4oTnVtYmVyLnBhcnNlSW50KGUua2V5LCAxMCkpICYmIHRoaXMuaXNPdXRTaWRlUmFuZ2UoZSkpIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc091dFNpZGVSYW5nZShlKSkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcHJvdGVjdCBkZWNpbWFsIHN5bWJvbCBkZWxldGlvbiBpbiBjYXNlIGZpbGxGcmFjdGlvbiBpcyBvblxuICAgICAgICBpZiAoZS5rZXkgPT09ICdEZWxldGUnIHx8IGUua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uIG9mIGNhcmV0XG4gICAgICAgICAgICBjb25zdCBwb3MgPSBlbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgLy8gZ2V0IGNoYXJhY3RlciBhYm91dCB0byBiZSBkZWxldGVkXG4gICAgICAgICAgICBjb25zdCBjaGFyID0gZWxlbWVudC52YWx1ZS5jaGFyQXQocG9zIC0gMSk7XG4gICAgICAgICAgICAvLyBpbiBjYXNlIHRoZSBjaGFyIGlzIHRoZSBkZWNpbWFsIHN5bWJvbCBwcmV2ZW50IGRlbGV0aW9uIGFuZCBtb3ZlIGNhcmV0IGluIGZyb250XG4gICAgICAgICAgICBpZiAoY2hhciA9PT0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKHRoaXMubG9jYWxlU2VydmljZT8uY3VycmVudExvY2FsZSB8fCB0aGlzLmxvY2FsZV9pZCwgTnVtYmVyU3ltYm9sLkRlY2ltYWwpKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShwb3MgLSAxLCBwb3MgLSAxKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc091dFNpZGVSYW5nZShlKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvbid0IGFsbG93IGluc2VydGlvbiB0aGF0IHdpbGwgcHV0IG51bWJlciBvdXQgb2YgcmFuZ2VcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25Gb2N1c291dChlOiBFdmVudCkge1xuICAgICAgICAvLyBpbiBjYXNlIGZpbGxGcmFjdGlvbiBmZWF0dXJlIGlzIG9uIGFuZCB0aGVyZSdzIG5vIGludGVnZXIgcGFydCBhZGQgbGVhZGluZyAwXG4gICAgICAgIGlmICh0aGlzLmZpbGxGcmFjdGlvbiAmJiB0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkubWF0Y2goL15cXC5bMC05XSsvZykpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUoJzAnICsgdGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluIGNhc2Ugcm91bmQgVVAgaXMgZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5fcm91bmRVcCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKS50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRJbnZhbGlkKHN0YXRlPzogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgaXQncyBjb250cm9sbGVkIGJ5IE5nQ29udHJvbCBvdmVycmlkZVxuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCA6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG5cbiAgICAgICAgLy8gc2V0IEJhc2VEaXJlY3RpdmUgQXR0cmlidXRlXG4gICAgICAgIHN1cGVyLmV1aURhbmdlciA9IHRoaXMuX2lzSW52YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAT3ZlcnJpZGUgc2V0UGxhY2Vob2xkZXIgc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUgb2YgSW5wdXREaXJlY3RpdmVcbiAgICAgKiBVcGRhdGVzIHRoZSBwbGFjZWhvbGRlciB2YWx1ZSBiYXNlZCBvbiBjdXJyZW50IG51bWJlciBmb3JtYXQgYW5kIGdpdmVuIHZhbHVlLlxuICAgICAqIElmIHZhbHVlIHBhc3NlZCBjb250YWlucyBjaGFyYWN0ZXJzIGl0IGRvZXNuJ3QgZm9ybWF0IHBsYWNlaG9sZGVyLlxuICAgICAqICovXG4gICAgcHJvdGVjdGVkIHNldFBsYWNlaG9sZGVyQXR0cmlidXRlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgPSA5OTk5OTkuOTk5OSk6IHZvaWQge1xuICAgICAgICAvLyBpZiB2YWx1ZSBpcyBhIG51bWJlciwgZm9ybWF0IHRoZSB2YWx1ZSBiYXNlZCBvbiBjdXJyZW50IG51bWJlciBmb3JtYXRcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIGNsb25lIG9mIGNsZWF2ZUluc3RhbmNlXG4gICAgICAgICAgICBjb25zdCBjbG9uZUluc3RhbmNlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUoZGl2LCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgLy8gQkVXQVJFOiBieSB0aGUgdGltZSB5b3VyIHNldFJhd1ZhbHVlIGNsZWF2ZSBvcHRpb25zIGhhdmUgY2hhbmdlZCB0aHVzIG51bWJlciBmb3JtYXR0aW5nXG4gICAgICAgICAgICBjbG9uZUluc3RhbmNlLnNldFJhd1ZhbHVlKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgLy8gc2V0IHRoZSB2YWx1ZSB3aXRoIGN1cnJlbnQgZm9ybWF0IGFzIHBsYWNlaG9sZGVyXG4gICAgICAgICAgICBzdXBlci5zZXRQbGFjZWhvbGRlckF0dHJpYnV0ZShjbG9uZUluc3RhbmNlLmdldEZvcm1hdHRlZFZhbHVlKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFBsYWNlaG9sZGVyQXR0cmlidXRlKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICBzdXBlci5zZXRQbGFjZWhvbGRlckF0dHJpYnV0ZSh2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGluc3RhbnRpYXRlIENsZWF2ZS5qc1xuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdENsZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gY2hhbmdlIHRoZSBjbGVhdmUgcHJvdG90eXBlIGZ1bmN0aW9uIHRvIGludGVyY2VwdCBvbkN1dCBjYWxsYmFja1xuICAgICAgICAvLyBhbmQgYWxsb3cgYmFzZWQgb24gdGhlIGV2ZW50IGJ1YmJsaW5nIGFuZCBkaXNhYmxlZCBzdGF0ZVxuICAgICAgICAvLyBUSVA6IGNoYW5nZSBiZWhhdmlvciBvZiBvbkN1dCB0byBzdG9wIGluIGNhc2UgYnViYmxlIGlzIGNhbmNlbGVkXG4gICAgICAgIC8vIFRPRE86IFNlZSByZWxldmFudCBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vbm9zaXIvY2xlYXZlLmpzL2lzc3Vlcy82NzVcbiAgICAgICAgY29uc3QgX29uQ3V0ID0gQ2xlYXZlLnByb3RvdHlwZVsnb25DdXQnXTtcbiAgICAgICAgQ2xlYXZlLnByb3RvdHlwZVsnb25DdXQnXSA9IGZ1bmN0aW9uIChlOiBFdmVudCkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWludmFsaWQtdGhpc1xuICAgICAgICAgICAgaWYgKCFlLmNhbmNlbEJ1YmJsZSAmJiAhdGhpcy5lbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWludmFsaWQtdGhpc1xuICAgICAgICAgICAgICAgIF9vbkN1dC5jYWxsKHRoaXMsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGluIGNhc2Ugb3B0aW9ucyBpcyB1bmRlZmluZWRcbiAgICAgICAgY29uc3Qgb3B0czogQ2xlYXZlT3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zIH07XG5cbiAgICAgICAgLy8gc2V0IHRoZSBvblZhbHVlIGNoYW5nZSBsaXN0ZW5lciB0byBrZWVwIHRoZSB2YWx1ZSBhdCByZWFkT25seSBlbGVtZW50IGluIHN5bmNcbiAgICAgICAgb3B0cy5vblZhbHVlQ2hhbmdlZCA9IHRoaXMub25WYWx1ZUNoYW5nZWQuYmluZCh0aGlzKTtcblxuICAgICAgICAvLyBpbiBjYXNlIHJvdW5kIFVQIGlzIGVuYWJsZWRcbiAgICAgICAgaWYgKHRoaXMuX3JvdW5kVXAgPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIucGFyc2VGbG9hdCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kZWNpbWFsQWRqdXN0KG51bWJlciwgdGhpcy5yb3VuZFVwICogLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3JlYXRlIHRoZSBDbGVhdmUgaW5zdGFuY2Ugd2l0aCB0aGUgbmV3IG9yIHVwZGF0ZWQgb3B0aW9uc1xuICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlID0gbmV3IENsZWF2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIG9wdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGNsZWF2ZSBvcHRpb25zIGJ5IGRlc3Ryb3lpbmcgdGhlIGN1cnJlbnQgaW5zdGFuY2UgYW5kIGNyZWF0aW5nIGFub3RoZXIgb25lIHdoaWxlIGtlZXBpbmcgdGhlIHByZXZpb3VzXG4gICAgICogdmFsdWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVPcHRpb25zKGxvY2FsZVVwZGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgLy8gdGhlIHZhbHVlIGJlZm9yZSBkZXN0cm95aW5nIGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKTtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBDbGVhdmUgaW5zdGFuY2Ugd2l0aCB0aGUgbmV3IG9yIHVwZGF0ZWQgb3B0aW9uc1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5wcm9wZXJ0aWVzID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuY2xlYXZlSW5zdGFuY2UucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgaW5pdFZhbHVlOiBwcmV2aW91c1ZhbHVlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gaW5pdCBudW1iZXIgZm9ybWF0dGVyIHdpdGggdXBkYXRlZCBvcHRpb25zXG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLmluaXROdW1lcmFsRm9ybWF0dGVyKCk7XG5cbiAgICAgICAgICAgIC8vIEluIGNhc2UgcHJldmlvdXMgc2V0dGluZ3Mgd2hlcmUgbnVtZXJhbERlY2ltYWxNYXJrPScuJyB3aXRoIHZhbHVlIDEwMDAuOTkgYW5kIHRoZXkgY2hhbmdlZCB0b1xuICAgICAgICAgICAgLy8gbnVtZXJhbERlY2ltYWxNYXJrPScsJzsgc2V0IGluaXRWYWx1ZSB0byAxMDAwLjk5IG9yIGV2ZW4gMTAwMCw5OSB3aWxsIG5vdCBiZSByZWZsZWN0ZWQgYW5kIGNsZWF2ZSB3aWxsXG4gICAgICAgICAgICAvLyByZW1vdmUgdGhlIGRlY2ltYWwgcGFydC4gU2V0IG9mIHRoZSB2YWx1ZSBhZnRlciBpbml0aWFsaXphdGlvbiBjYXVzZXMgcmVmb3JtYXQgb2YgbnVtYmVyIGFuZCB3b3Jrcy5cbiAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUocHJldmlvdXNWYWx1ZSk7XG5cbiAgICAgICAgICAgIC8vIHBhcnNlIG51bWJlclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5wYXJzZU51bWJlcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXIgfHwgdW5kZWZpbmVkLCBsb2NhbGVVcGRhdGVkKTtcbiAgICAgICAgICAgIC8vIHNldCBwbGFjZWhvbGRlciBpbiBjYXNlIG5vbmUgaXMgcHJvdmlkZWRcbiAgICAgICAgICAgIHRoaXMuc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIG9mIHRoZSBDbGVhdmUgaW5zdGFuY2UgdGhhdCBpcyBpbnZva2VkIHdoZW4gdmFsdWUgaXMgY2hhbmdlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCB0eXBlIG9mIENsZWF2ZUV2ZW50T25DaGFuZ2VcbiAgICAgKi9cbiAgICBwcml2YXRlIG9uVmFsdWVDaGFuZ2VkKGV2ZW50OiBDbGVhdmVFdmVudE9uQ2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudDtcblxuICAgICAgICBpZiAodGhpcy5maWxsRnJhY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlGcmFjdGlvbkZpbGwodGFyZ2V0LnJhd1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKE51bWJlci5wYXJzZUZsb2F0KHRhcmdldC5yYXdWYWx1ZSkpO1xuICAgICAgICAvLyBmaWxsIGxlYWRpbmcgemVyb1xuICAgICAgICBpZiAodGhpcy5sZWFkaW5nWmVybykge1xuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMubGVhZGluZ1plcm8gPiB0aGlzLmRpZ2l0cyAmJiB0aGlzLmRpZ2l0cyA+IDAgPyB0aGlzLmRpZ2l0cyA6IHRoaXMubGVhZGluZ1plcm87XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnBhZFplcm8oZXZlbnQudGFyZ2V0LnJhd1ZhbHVlLCBzaXplKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJlc3BvbnNpYmxlIHRvIGV4dHJhY3QgYWxsIGxvY2FsZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gYnVpbGQgQ2xlYXZlT3B0aW9ucyByZWxhdGVkIHRvIG51bWJlciBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBsb2NhbGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENsZWF2ZU9wdHNCYXNlZE9uTG9jYWxlKGlkOiBzdHJpbmcpOiBDbGVhdmVPcHRpb25zIHtcbiAgICAgICAgaWYgKCFpZCB8fCBpZCA9PT0gJycpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTG9jYWxlIGlkIGNhbm5vdCBiZSBlbXB0eSBvciB1bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRzOiBDbGVhdmVPcHRpb25zID0ge1xuICAgICAgICAgICAgbnVtZXJhbDogdHJ1ZSxcbiAgICAgICAgICAgIGRlbGltaXRlcjogZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGlkLCBOdW1iZXJTeW1ib2wuR3JvdXApLFxuICAgICAgICAgICAgbnVtZXJhbERlY2ltYWxNYXJrOiBnZXRMb2NhbGVOdW1iZXJTeW1ib2woaWQsIE51bWJlclN5bWJvbC5EZWNpbWFsKSxcbiAgICAgICAgICAgIG51bWVyYWxEZWNpbWFsU2NhbGU6IHRoaXMuZnJhY3Rpb25EaWdpdHMsXG4gICAgICAgICAgICBudW1lcmFsSW50ZWdlclNjYWxlOiB0aGlzLmRpZ2l0cyxcbiAgICAgICAgICAgIG51bWVyYWxUaG91c2FuZHNHcm91cFN0eWxlOiB0aGlzLm5vRm9ybWF0ID8gJ25vbmUnIDogJ3Rob3VzYW5kJywgLy8gVE9ETzogaW1wbGVtZW50IGJhc2VkIG9uIGxvY2FsZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB7IC4uLnRoaXMub3B0aW9ucywgLi4ub3B0cyB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGZpbGwgb2YgZGVjaW1hbCBwYXJ0IHdpdGggemVyb3MgaW4gY2FzZSBkZWNpbWFsIHBhcnQgb2YgZ2l2ZW4gbnVtYmVyIGhhc1xuICAgICAqIHNpemUgbGVzcyB0aGFuIHRoZSBtYXggZnJhY3Rpb24gZGlnaXRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG51bWJlclxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcHBseUZyYWN0aW9uRmlsbChudW1iZXI6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBpZiBmaWxsIGZyYWN0aW9uIGlzIGVuYWJsZWQgYW5kIHRoZXJlJ3MgY2xlYXZlIGluc3RhbmNlXG4gICAgICAgIGlmICh0aGlzLmZpbGxGcmFjdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXI/LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gJycgfHwgIW51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0RlY2ltYWwgPSBudW1iZXIuc3BsaXQoJy4nKS5sZW5ndGggPiAxO1xuICAgICAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlcmUncyBhbHJlYWR5IGRlY2ltYWwgcG9pbnQgaW4gbnVtYmVyXG4gICAgICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbFNpemUgPSBudW1iZXIuc3BsaXQoJy4nKVsxXS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHNpemUgb2YgZGVjaW1hbCBwYXJ0IG9mIG51bWJlciBpcyBsZXNzIHRoYW4gdGhlIG1heCBmcmFjdGlvbiBkaWdpdHNcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlY2ltYWxTaXplIDwgdGhpcy5fZnJhY3Rpb25EaWdpdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlciArIG5ldyBBcnJheSh0aGlzLl9mcmFjdGlvbkRpZ2l0cyAtIGRlY2ltYWxTaXplKS5maWxsKDApLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIHRoZXJlJ3Mgbm90LCBmb3JjZSBpdCBieSBmaWxsaW5nIGl0IGFzIG11Y2ggemVybyBhcyB0aGUgZnJhY3Rpb24gZGlnaXRzXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZyYWN0aW9uRGlnaXRzID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBgJHtudW1iZXJ9LiR7bmV3IEFycmF5KHRoaXMuX2ZyYWN0aW9uRGlnaXRzKS5maWxsKDApLmpvaW4oJycpfWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyBhIGdpdmVuIGZvcm1hdHRlZCBudW1iZXIgYW5kIHJldHVybnMgaXQgYXMgYSBudW1iZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIGZvcm1hdHRlZCBudW1iZXIgeW91IHdhbnQgdG8gcGFyc2UgZS5nLiAxMTEsODg4LjIyXG4gICAgICogQHBhcmFtIGN1cnJlbnRMb2NhbGVTdGF0ZSBVc2UgcHJldmlvdXMgbG9jYWxlIHN0YXRlIHRvIHBhcnNlIHRoZSB2YWx1ZS4gQnkgZGVmYXVsdCwgaXMgZmFsc2VcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcGFyc2VOdW1iZXIodmFsdWU6IHN0cmluZywgdXNlclByZXZMb2NhbGVTdGF0ZTogYm9vbGVhbiA9IGZhbHNlKTogbnVtYmVyIHtcbiAgICAgICAgLy8gbG9jYWxlIHN0YXRlXG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IHVzZXJQcmV2TG9jYWxlU3RhdGUgPyB0aGlzLmxvY2FsZVNlcnZpY2U/LnByZXZpb3VzTG9jYWxlIDogdGhpcy5sb2NhbGVTZXJ2aWNlPy5jdXJyZW50TG9jYWxlIHx8IHRoaXMubG9jYWxlX2lkO1xuICAgICAgICAvLyBnZXQgZGVjaW1hbCBhbmQgZ3JvdXAgc3ltYm9sc1xuICAgICAgICBjb25zdCBkZWNpbWFsU3ltYm9sID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLkRlY2ltYWwpO1xuICAgICAgICBjb25zdCBncm91cFN5bWJvbCA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIE51bWJlclN5bWJvbC5Hcm91cCk7XG4gICAgICAgIC8vIHJlcGxhY2Ugc3ltYm9scyB0byBwYXJzZSBudW1iZXJcbiAgICAgICAgY29uc3QgcGFyc2VkTnVtYmVyID0gdmFsdWU/LnNwbGl0KGdyb3VwU3ltYm9sKS5qb2luKCcnKS5zcGxpdChkZWNpbWFsU3ltYm9sKS5qb2luKCcuJyk7XG4gICAgICAgIHJldHVybiBOdW1iZXIucGFyc2VGbG9hdChwYXJzZWROdW1iZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhZCBsZWFkaW5nIHplcm8gdG8gdGhlIG51bWJlclxuICAgICAqXG4gICAgICogQHBhcmFtIG51bSBUaGUgbnVtYmVyIHRvIGFkZCBsZWFkaW5nIHplcm8gdG9cbiAgICAgKiBAcGFyYW0gc2l6ZSBOdW1iZXIgb2YgbnVtYmVyJ3MgbGVhZGluZyB6ZXJvXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHBhZFplcm8obnVtLCBzaXplKSB7XG4gICAgICAgIG51bSA9IG51bS50b1N0cmluZygpO1xuICAgICAgICAvLyBnZXQgaW50ZWdlciBhbmQgZGVjaW1hbCBwYXJ0XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgICAgbGV0IFtpbnRlZ2VyLCBkZWNpbWFsXSA9IG51bS5zcGxpdCgnLicpO1xuICAgICAgICB3aGlsZSAoaW50ZWdlci5sZW5ndGggPCBzaXplKSB7XG4gICAgICAgICAgICBpbnRlZ2VyID0gJzAnICsgaW50ZWdlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjaW1hbCA/IGAke2ludGVnZXJ9LiR7ZGVjaW1hbH1gIDogaW50ZWdlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGVja3Mgd2hldGhlciB0aGUgbWluIHN5bWJvbCBpcyBhbGxvd2VkLiBJdCBpcyBhbGxvd2VkIHdoZW4gbWludXMgc3ltYm9sXG4gICAgICogcHJvdmlkZWQgYW5kIG1pbiBpbnB1dCBpcyB1bmRlZmluZWQgb3IgbWluIHByb3ZpZGVkIGFuZCBpcyBuZWdhdGl2ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSBzdHJpbmcgY29taW5nIGZyb20gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlzTWludXNBbGxvd2VkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5taW4gfHwgdGhpcy5taW4gPCAwID8ga2V5ICE9PSAnLScgOiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNoZWNrIHdoZXRoZXIgdGhlIGtleSBlbnRlcmVkIGlzIGluc2lkZSB0aGUgbWluIGFuZFxuICAgICAqIG1heCByYW5nZS4gUmV0dXJucyB0cnVlIGlmIGl0J3Mgb3V0IG9mIHJhbmdlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGUgQSBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgaXNPdXRTaWRlUmFuZ2UoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBnZXQgY2FyZXQgcG9zaXRpb25cbiAgICAgICAgY29uc3QgcG9zID0gZS50YXJnZXRbJ3NlbGVjdGlvblN0YXJ0J107XG4gICAgICAgIC8vIGdldCBjYXJldCBwb3NpdGlvbiAoaW4gY2FzZSB0aGVyZSdzIHRleHQgc2VsZWN0ZWQpXG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IGUudGFyZ2V0WydzZWxlY3Rpb25FbmQnXTtcbiAgICAgICAgLy8gZ2V0IGN1cnJlbnQgdmFsdWUgKGZvcm1hdHRlZClcbiAgICAgICAgbGV0IHZhbHVlID0gZS50YXJnZXRbJ3ZhbHVlJ107XG4gICAgICAgIC8vIHJlbW92ZSBrZXkgZnJvbSB2YWx1ZVxuICAgICAgICBpZiAoZS5rZXkgPT09ICdEZWxldGUnIHx8IGUua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlcmUncyBzZWxlY3Rpb24gb2YgdGV4dCB0byBiZSByZW1vdmVkXG4gICAgICAgICAgICBpZiAocG9zICE9PSBlbmRQb3MpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGUudGFyZ2V0Wyd2YWx1ZSddLnN1YnN0cmluZygwLCBwb3MpICsgZS50YXJnZXRbJ3ZhbHVlJ10uc3Vic3RyaW5nKGVuZFBvcywgZS50YXJnZXRbJ3ZhbHVlJ10ubGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBlLnRhcmdldFsndmFsdWUnXS5zdWJzdHJpbmcoMCwgcG9zIC0gMSkgKyBlLnRhcmdldFsndmFsdWUnXS5zdWJzdHJpbmcoZW5kUG9zLCBlLnRhcmdldFsndmFsdWUnXS5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gYWRkIGtleSB0byB0aGUgdmFsdWVcbiAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlLnNsaWNlKDAsIHBvcyksIGUua2V5LCB2YWx1ZS5zbGljZShlbmRQb3MpXS5qb2luKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBhIENsZWF2ZSBpbnN0YW5jZSB0byBleHRyYWN0IHRoZSBudW1iZXIgZnJvbSBmb3JtYXR0ZWQgdmFsdWVcbiAgICAgICAgY29uc3QgY2xlYXZlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSwgeyAuLi50aGlzLm9wdGlvbnMgfSk7XG4gICAgICAgIGNsZWF2ZS5zZXRSYXdWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG51bWJlciA9IE51bWJlcihjbGVhdmUuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgIC8vIGRlc3Ryb3kgY2xlYXZlIGluc3RhbmNlXG4gICAgICAgIGNsZWF2ZS5kZXN0cm95KCk7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA+IG51bWJlciB8fCB0aGlzLm1heCA8IG51bWJlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWNpbWFsIGFkanVzdG1lbnQgb2YgYSBudW1iZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gIHZhbHVlIFRoZSBudW1iZXIuXG4gICAgICogQHBhcmFtIGV4cCAgIFRoZSBleHBvbmVudCAodGhlIDEwIGxvZ2FyaXRobSBvZiB0aGUgYWRqdXN0bWVudCBiYXNlKS5cbiAgICAgKiBAcmV0dXJucyBUaGUgYWRqdXN0ZWQgdmFsdWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZWNpbWFsQWRqdXN0KHZhbHVlOiBudW1iZXIsIGV4cDogbnVtYmVyKSB7XG4gICAgICAgIC8vIElmIHRoZSBleHAgaXMgdW5kZWZpbmVkIG9yIHplcm8uLi5cbiAgICAgICAgaWYgKHR5cGVvZiBleHAgPT09ICd1bmRlZmluZWQnIHx8ICtleHAgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgZXhwID0gK2V4cDtcbiAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIG5vdCBhIG51bWJlciBvciB0aGUgZXhwIGlzIG5vdCBhbiBpbnRlZ2VyLi4uXG4gICAgICAgIGlmIChpc05hTih2YWx1ZSkgfHwgISh0eXBlb2YgZXhwID09PSAnbnVtYmVyJyAmJiBleHAgJSAxID09PSAwKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICAvLyBTaGlmdFxuICAgICAgICBsZXQgY2xlYW5lZCA9IHZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJ2UnKTtcbiAgICAgICAgdmFsdWUgPSBNYXRoLnJvdW5kKCsoY2xlYW5lZFswXSArICdlJyArIChjbGVhbmVkWzFdID8gK2NsZWFuZWRbMV0gLSBleHAgOiAtZXhwKSkpO1xuICAgICAgICAvLyBTaGlmdCBiYWNrXG4gICAgICAgIGNsZWFuZWQgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCdlJyk7XG4gICAgICAgIHJldHVybiArKGNsZWFuZWRbMF0gKyAnZScgKyAoY2xlYW5lZFsxXSA/ICtjbGVhbmVkWzFdICsgZXhwIDogZXhwKSk7XG4gICAgfVxufVxuIl19
|
|
606
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LW51bWJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktaW5wdXQtbnVtYmVyL2V1aS1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFFTixTQUFTLEVBR1QsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBS0wsSUFBSSxFQUVKLGlCQUFpQixHQUVwQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQTZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0csT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBd0N4RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQXVHdkQsWUFDa0MsT0FBa0IsRUFDdEMsV0FBdUIsRUFDdkIsU0FBb0IsRUFDdEIsRUFBcUIsRUFDVCxhQUE0QixFQUNyQixTQUFpQixFQUM1QyxRQUFrQjtRQUVsQixLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQVJWLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNULGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFyQlosU0FBSSxHQUFHLFlBQVksQ0FBQztRQU1oRCxpQkFB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QU87c0JBRFYsS0FBSztnQkFZRixRQUFRO3NCQURYLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDOEIsSUFBSTtzQkFBdkMsV0FBVzt1QkFBQyxXQUFXO2dCQUNmLEtBQUs7c0JBQWIsS0FBSztnQkF5Sk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF1QnZCLFNBQVM7c0JBRGxCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJDekIsVUFBVTtzQkFEbkIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIE9wdGlvbmFsLFxuICAgIExPQ0FMRV9JRCxcbiAgICBJbmplY3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbmplY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSwgTG9jYWxlU3RhdGUgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyB0eXBlIENsZWF2ZU9wdGlvbnMgfSBmcm9tICdjbGVhdmUuanMvb3B0aW9ucyc7XG5pbXBvcnQgQ2xlYXZlIGZyb20gJ2NsZWF2ZS5qcyc7XG5pbXBvcnQgeyBDbGVhdmVFdmVudE9uQ2hhbmdlIH0gZnJvbSAnLi9tb2RlbHMvY2xlYXZlLWV2ZW50LW9uY2hhbmdlLm1vZGVsJztcbmltcG9ydCB7IElucHV0RGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBnZXRMb2NhbGVOdW1iZXJTeW1ib2wsIE51bWJlclN5bWJvbCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFdWlDbGVhcmFibGVEaXJlY3RpdmUsIEV1aUxvYWRpbmdEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZGlyZWN0aXZlcyc7XG5cbmludGVyZmFjZSBDbGVhdmVJbnN0YW5jZSBleHRlbmRzIENsZWF2ZSB7XG4gICAgaW5pdFN3YXBIaWRkZW5JbnB1dD86ICgpID0+IHZvaWQ7XG4gICAgaW5pdE51bWVyYWxGb3JtYXR0ZXI/OiAoKSA9PiB2b2lkO1xuICAgIGluaXRUaW1lRm9ybWF0dGVyPzogKCkgPT4gdm9pZDtcbiAgICBpbml0RGF0ZUZvcm1hdHRlcj86ICgpID0+IHZvaWQ7XG4gICAgaW5pdFBob25lRm9ybWF0dGVyPzogKCkgPT4gdm9pZDtcbiAgICB1cGRhdGVDcmVkaXRDYXJkUHJvcHNCeVZhbHVlPzogKCkgPT4gdm9pZDtcbiAgICB1cGRhdGVWYWx1ZVN0YXRlPzogKCkgPT4gdm9pZDtcbiAgICBjYWxsT25WYWx1ZUNoYW5nZWQ/OiAoKSA9PiB2b2lkO1xuICAgIG9uQ2hhbmdlPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25DdXQ/OiAoZXZlbnQ/OiBFdmVudCkgPT4gdm9pZDtcbiAgICBvbkZvY3VzPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25Db3B5PzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25LZXlEb3duPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25DaGFuZ2VMaXN0ZW5lcj86IChldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICAgIG9uS2V5RG93bkxpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25Gb2N1c0xpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gICAgb25DdXRMaXN0ZW5lcj86IChldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICAgIG9uQ29weUxpc3RlbmVyPzogKGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdpbnB1dFtldWlJbnB1dE51bWJlcl06bm90KFtldWlJbnB1dENoZWNrQm94XSknLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogRXVpQ2xlYXJhYmxlRGlyZWN0aXZlLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ2V1aUNsZWFyYWJsZScsICdyZWFkb25seSddLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEV1aUxvYWRpbmdEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsnZXVpTG9hZGluZycsICdyZWFkb25seSddLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aUlucHV0TnVtYmVyQ29tcG9uZW50IGV4dGVuZHMgSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjaywgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gbnVtYmVyIGNhbiBiZSBlbnRlcmVkLiBCbG9ja3MgdXNlcidzIGlucHV0IGlmIG5vdCBpbiByYW5nZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9taW47XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbWluKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9taW4gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBjYW4gYmUgZW50ZXJlZC4gQmxvY2tzIHVzZXIncyBpbnB1dCBpZiBub3QgaW4gcmFuZ2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4O1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IG1heCh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbWF4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICAvKiogQWRkcyBsZWFkaW5nIHplcm8gdG8gYSBudW1iZXIuIEZvcm1hdHRpbmcgd2lsbCBub3Qgd29yay5cbiAgICAgKiAgICAgIGUuZy4gd2l0aCBsZWFkaW5nWmVybz0zIGlucHV0IG51bWJlciA1ID0+IDAwNVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsZWFkaW5nWmVybygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGVhZGluZ1plcm87XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgbGVhZGluZ1plcm8odmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgICAgIHRoaXMuX2xlYWRpbmdaZXJvID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgaXNJbnZhbGlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpc0ludmFsaWQoc3RhdGU6IGFueSkge1xuICAgICAgICB0aGlzLnNldEludmFsaWQoc3RhdGUpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdldWktaW5wdXQtbnVtYmVyJyksIHRoaXMuX2lzSW52YWxpZCA/IGBldWktaW5wdXQtbnVtYmVyLS1pbnZhbGlkYCA6ICcnXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIC8qKiBob3cgbWFueSBkaWdpdHMgZm9yIHRoZSBkZWNpbWFsIHBhcnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBmcmFjdGlvbkRpZ2l0cygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZnJhY3Rpb25EaWdpdHM7XG4gICAgfVxuICAgIHNldCBmcmFjdGlvbkRpZ2l0cyh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZnJhY3Rpb25EaWdpdHMgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiBob3cgbWFueSBkaWdpdHMgZm9yIHRoZSBpbnRlZ2VyIHBhcnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBkaWdpdHMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpZ2l0cztcbiAgICB9XG4gICAgc2V0IGRpZ2l0cyh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZGlnaXRzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBmaWxsRnJhY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxsRnJhY3Rpb247XG4gICAgfVxuICAgIHNldCBmaWxsRnJhY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9maWxsRnJhY3Rpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICAvKiogcm91bmRzIGEgbnVtYmVyIHdpdGggbW9yZSB0aGFuIHR3byBkZWNpbWFscyBVUCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHJvdW5kVXAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdW5kVXA7XG4gICAgfVxuICAgIHNldCByb3VuZFVwKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9yb3VuZFVwID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2lzSW52YWxpZDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBkb2VzIG5vdCBmb3JtYXQgdGhlIGFuZCBkbyBhIHRob3VzYW5kIGdyb3VwaW5nIG9mIG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG5vRm9ybWF0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9Gb3JtYXQ7XG4gICAgfVxuICAgIHNldCBub0Zvcm1hdCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX25vRm9ybWF0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9ub0Zvcm1hdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmc7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnR5cGUnKSBwcm90ZWN0ZWQgdHlwZSA9ICdldWktbnVtYmVyJztcbiAgICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfcm91bmRVcDogbnVtYmVyO1xuICAgIHByaXZhdGUgX21pbjogbnVtYmVyO1xuICAgIHByaXZhdGUgX21heDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBfbGVhZGluZ1plcm8gPSAwO1xuICAgIC8qKiBob2xkcyBpbnN0YW5jZSBvZiBjbGVhdmUgKi9cbiAgICBwcml2YXRlIGNsZWF2ZUluc3RhbmNlOiBDbGVhdmVJbnN0YW5jZTtcbiAgICAvKiogb3B0aW9ucyBmb3IgdGhlIENsZWF2ZSBpbnN0YW5jZSAqL1xuICAgIHByaXZhdGUgb3B0aW9uczogQ2xlYXZlT3B0aW9ucztcbiAgICBwcml2YXRlIF9mcmFjdGlvbkRpZ2l0cyA9IDA7XG4gICAgcHJpdmF0ZSBfZGlnaXRzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZmlsbEZyYWN0aW9uOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIGNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZV9pZDogc3RyaW5nLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgaW5qZWN0b3IpO1xuXG4gICAgICAgIC8vIHNldCBkZWZhdWx0IG9wdGlvbnNcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgbnVtZXJhbDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgLy8gc2V0IGNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgICAvLyBpbnN0YW50aWF0ZSBjbGVhdmVcbiAgICAgICAgdGhpcy5pbml0Q2xlYXZlKCk7XG5cbiAgICAgICAgLy8gc3Vic2NyaWJlIHRvIGxvY2FsaXphdGlvbiBzZXJ2aWNlIGFuZCBsaXN0ZW4gZm9yIGxvY2FsZSBjaGFuZ2UuIERlLWNvbnN0cnVjdGlvbiBvZiBsb2NhbGUgc2hvdWxkIGhhcHBlbiBoZXJlIVxuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2U/LmdldFN0YXRlKCkuc3Vic2NyaWJlKChzdGF0ZTogTG9jYWxlU3RhdGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZ2V0Q2xlYXZlT3B0c0Jhc2VkT25Mb2NhbGUoc3RhdGU/LmlkKTtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBvcHRpb25zIG9uIHRoZSBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAncm9vdENsYXNzTmFtZScsICdldWktaW5wdXQtbnVtYmVyJyk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAndmFsdWUnKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnZnJhY3Rpb25EaWdpdHMnKSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG51bWVyYWxEZWNpbWFsU2NhbGU6IHRoaXMuZnJhY3Rpb25EaWdpdHMgfTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdub0Zvcm1hdCcpKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbnVtZXJhbFRob3VzYW5kc0dyb3VwU3R5bGU6IHRoaXMubm9Gb3JtYXQgPyAnbm9uZScgOiAndGhvdXNhbmQnIH07XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnZmlsbEZyYWN0aW9uJykgJiYgdGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5hcHBseUZyYWN0aW9uRmlsbCh0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdkaWdpdHMnKSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG51bWVyYWxJbnRlZ2VyU2NhbGU6IHRoaXMuZGlnaXRzIH07XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjaGFuZ2VzLCAnbWluJykpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzWydtaW4nXS5jdXJyZW50VmFsdWUgPj0gMCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRha2UgY2FyZSBvZiB0aGUgc2lnbiBzeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShNYXRoLmFicyhOdW1iZXIodGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpKSkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNoYW5nZXMsICdyb3VuZFVwJykpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzWydyb3VuZFVwJ10uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudW1iZXIgPSBOdW1iZXIucGFyc2VGbG9hdCh0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSB0aGlzLmRlY2ltYWxBZGp1c3QobnVtYmVyLCB0aGlzLnJvdW5kVXAgKiAtMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUobnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICAvLyBkZXN0cm95IGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZTogYW55ID0gKF8pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCAmJiAoXyAhPT0gbnVsbCB8fCBfICE9PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAvLyBwYXJzZSBudW1iZXJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTnVtYmVyKF8pO1xuICAgICAgICAgICAgLy8gcnVuIG9uIG5leHQgTWljcm9UYXNrIHRvIGF2b2lkIE5HMDEwMCBlcnJvciBUT0RPOiBkZWVwZXIgaW52ZXN0aWdhdGlvblxuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLmNvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodmFsdWUpKTtcbiAgICAgICAgICAgIC8vIGluIGNhc2UgY29udHJvbCBpcyBGb3JtQ29udHJvbFxuICAgICAgICAgICAgdGhpcy5jb250cm9sPy5jb250cm9sLnNldFZhbHVlKGlzTmFOKHZhbHVlKSA/IG51bGwgOiB2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlLCBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wuaW52YWxpZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogc2V0cyB0aGUgbnVtYmVyIGZvciBjbGVhdmUgaW5zdGFuY2UgYW5kIGRpdiBlbGVtZW50IChyZWFkIG9ubHkgbW9kZSlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWwgdGhlIG51bWJlciBmb3JtYXR0ZWQgb3Igbm90XG4gICAgICovXG4gICAgd3JpdGVWYWx1ZSh2YWw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbGVhdmVJbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmlsbEZyYWN0aW9uICYmIHZhbCAhPT0gJycgJiYgdmFsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseUZyYWN0aW9uRmlsbCh2YWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUodmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcmV0cmlldmUgZm9ybWF0dGVkIHZhbHVlIChiYXNlZCBvbiBvcHRpb25zKSBhbmQgc2V0IHRoZSBudW1iZXIgdG8gdGhlIG1vZGVsXG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIucGFyc2VGbG9hdCh0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnZpZXdUb01vZGVsVXBkYXRlKG51bWJlcik7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wuc2V0VmFsdWUoaXNOYU4obnVtYmVyKSA/IG51bGwgOiBudW1iZXIsIHsgZW1pdEV2ZW50OiBmYWxzZSwgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSBmcm9tIGNsaXBib2FyZFxuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC5jbGlwYm9hcmREYXRhIHx8IHdpbmRvd1snY2xpcGJvYXJkRGF0YSddKS5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgICAgIC8vIGluIGNhc2Ugcm91bmQgVVAgaXMgZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5fcm91bmRVcCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgICAgICAvLyBjcmVhdGUgYSBjbG9uZSBvZiBjbGVhdmVJbnN0YW5jZVxuICAgICAgICAgICAgY29uc3QgY2xvbmVJbnN0YW5jZTogQ2xlYXZlSW5zdGFuY2UgPSBuZXcgQ2xlYXZlKGRpdiwgeyAuLi50aGlzLm9wdGlvbnMsIG51bWVyYWxEZWNpbWFsU2NhbGU6IDggfSk7XG4gICAgICAgICAgICBjbG9uZUluc3RhbmNlLnNldFJhd1ZhbHVlKHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgbGV0IG51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KGNsb25lSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgICAgICBudW1iZXIgPSB0aGlzLmRlY2ltYWxBZGp1c3QobnVtYmVyLCB0aGlzLnJvdW5kVXAgKiAtMSk7XG4gICAgICAgICAgICBpZiAoIU51bWJlci5pc05hTihudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZShudW1iZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgaW4gdGhlIGZ1dHVyZSBob3cgY2FuIHRoaXMgYmUgYXZvaWRlZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUobnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHJvdGVjdGVkIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIGl0J3MgYSBzaW5nbGUgc3ltYm9sIGFuZCBub3QgU3BlY2lhbCBsaWtlIChDdHJsLCBiYWNrc3BhY2UgZXRjKVxuICAgICAgICBpZiAoZT8ua2V5Lmxlbmd0aCA8PSAxICYmICFlLmN0cmxLZXkgJiYgIWUuYWx0S2V5ICYmICFlLm1ldGFLZXkpIHtcbiAgICAgICAgICAgIC8vIHN0b3AgZXZlbnQgcHJvcGFnYXRpb24gaWYga2V5IHByZXNzZWQgaXMgbm90IGEgbnVtYmVyIG9yIGxvY2FsZSBjaGFyYWN0ZXIgb3IgbWludXMgc2lnblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIE51bWJlci5pc05hTihOdW1iZXIucGFyc2VJbnQoZS5rZXksIDEwKSkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzTWludXNBbGxvd2VkKGUua2V5KSAmJlxuICAgICAgICAgICAgICAgIGUua2V5ICE9PSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wodGhpcy5sb2NhbGVTZXJ2aWNlPy5jdXJyZW50TG9jYWxlIHx8IHRoaXMubG9jYWxlX2lkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIHN0b3AgZXZlbnQgcHJvcGFnYXRpb24gaWYga2V5IHByZXNzZWQgZXhjZWVkcyB0aGUgbWluL21heCB2YWx1ZSByYW5nZVxuICAgICAgICAgICAgfSBlbHNlIGlmICghTnVtYmVyLmlzTmFOKE51bWJlci5wYXJzZUludChlLmtleSwgMTApKSAmJiB0aGlzLmlzT3V0U2lkZVJhbmdlKGUpKSB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNPdXRTaWRlUmFuZ2UoZSkpIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHByb3RlY3QgZGVjaW1hbCBzeW1ib2wgZGVsZXRpb24gaW4gY2FzZSBmaWxsRnJhY3Rpb24gaXMgb25cbiAgICAgICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJyB8fCBlLmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAvLyBwb3NpdGlvbiBvZiBjYXJldFxuICAgICAgICAgICAgY29uc3QgcG9zID0gZWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgIC8vIGdldCBjaGFyYWN0ZXIgYWJvdXQgdG8gYmUgZGVsZXRlZFxuICAgICAgICAgICAgY29uc3QgY2hhciA9IGVsZW1lbnQudmFsdWUuY2hhckF0KHBvcyAtIDEpO1xuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgY2hhciBpcyB0aGUgZGVjaW1hbCBzeW1ib2wgcHJldmVudCBkZWxldGlvbiBhbmQgbW92ZSBjYXJldCBpbiBmcm9udFxuICAgICAgICAgICAgaWYgKGNoYXIgPT09IGdldExvY2FsZU51bWJlclN5bWJvbCh0aGlzLmxvY2FsZVNlcnZpY2U/LmN1cnJlbnRMb2NhbGUgfHwgdGhpcy5sb2NhbGVfaWQsIE51bWJlclN5bWJvbC5EZWNpbWFsKSkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zIC0gMSwgcG9zIC0gMSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNPdXRTaWRlUmFuZ2UoZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBkb24ndCBhbGxvdyBpbnNlcnRpb24gdGhhdCB3aWxsIHB1dCBudW1iZXIgb3V0IG9mIHJhbmdlXG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNvdXQoZTogRXZlbnQpIHtcbiAgICAgICAgLy8gaW4gY2FzZSBmaWxsRnJhY3Rpb24gZmVhdHVyZSBpcyBvbiBhbmQgdGhlcmUncyBubyBpbnRlZ2VyIHBhcnQgYWRkIGxlYWRpbmcgMFxuICAgICAgICBpZiAodGhpcy5maWxsRnJhY3Rpb24gJiYgdGhpcy5jbGVhdmVJbnN0YW5jZS5nZXRSYXdWYWx1ZSgpLm1hdGNoKC9eXFwuWzAtOV0rL2cpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKCcwJyArIHRoaXMuY2xlYXZlSW5zdGFuY2UuZ2V0UmF3VmFsdWUoKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbiBjYXNlIHJvdW5kIFVQIGlzIGVuYWJsZWRcbiAgICAgICAgaWYgKHRoaXMuX3JvdW5kVXAgPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIucGFyc2VGbG9hdCh0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5zZXRSYXdWYWx1ZSh0aGlzLmRlY2ltYWxBZGp1c3QobnVtYmVyLCB0aGlzLnJvdW5kVXAgKiAtMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0SW52YWxpZChzdGF0ZT86IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBpbiBjYXNlIGl0J3MgY29udHJvbGxlZCBieSBOZ0NvbnRyb2wgb3ZlcnJpZGVcbiAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQgOiBjb2VyY2VCb29sZWFuUHJvcGVydHkoc3RhdGUpO1xuXG4gICAgICAgIC8vIHNldCBCYXNlRGlyZWN0aXZlIEF0dHJpYnV0ZVxuICAgICAgICBzdXBlci5ldWlEYW5nZXIgPSB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQE92ZXJyaWRlIHNldFBsYWNlaG9sZGVyIHNldFBsYWNlaG9sZGVyQXR0cmlidXRlIG9mIElucHV0RGlyZWN0aXZlXG4gICAgICogVXBkYXRlcyB0aGUgcGxhY2Vob2xkZXIgdmFsdWUgYmFzZWQgb24gY3VycmVudCBudW1iZXIgZm9ybWF0IGFuZCBnaXZlbiB2YWx1ZS5cbiAgICAgKiBJZiB2YWx1ZSBwYXNzZWQgY29udGFpbnMgY2hhcmFjdGVycyBpdCBkb2Vzbid0IGZvcm1hdCBwbGFjZWhvbGRlci5cbiAgICAgKiAqL1xuICAgIHByb3RlY3RlZCBzZXRQbGFjZWhvbGRlckF0dHJpYnV0ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gOTk5OTk5Ljk5OTkpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgdmFsdWUgaXMgYSBudW1iZXIsIGZvcm1hdCB0aGUgdmFsdWUgYmFzZWQgb24gY3VycmVudCBudW1iZXIgZm9ybWF0XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgICAgICAvLyBjcmVhdGUgYSBjbG9uZSBvZiBjbGVhdmVJbnN0YW5jZVxuICAgICAgICAgICAgY29uc3QgY2xvbmVJbnN0YW5jZTogQ2xlYXZlSW5zdGFuY2UgPSBuZXcgQ2xlYXZlKGRpdiwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgICAgIC8vIEJFV0FSRTogYnkgdGhlIHRpbWUgeW91ciBzZXRSYXdWYWx1ZSBjbGVhdmUgb3B0aW9ucyBoYXZlIGNoYW5nZWQgdGh1cyBudW1iZXIgZm9ybWF0dGluZ1xuICAgICAgICAgICAgY2xvbmVJbnN0YW5jZS5zZXRSYXdWYWx1ZSh2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgICAgIC8vIHNldCB0aGUgdmFsdWUgd2l0aCBjdXJyZW50IGZvcm1hdCBhcyBwbGFjZWhvbGRlclxuICAgICAgICAgICAgc3VwZXIuc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUoY2xvbmVJbnN0YW5jZS5nZXRGb3JtYXR0ZWRWYWx1ZSgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBzdXBlci5zZXRQbGFjZWhvbGRlckF0dHJpYnV0ZSh2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgc3VwZXIuc2V0UGxhY2Vob2xkZXJBdHRyaWJ1dGUodmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpbnN0YW50aWF0ZSBDbGVhdmUuanNcbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRDbGVhdmUoKTogdm9pZCB7XG4gICAgICAgIC8vIGNoYW5nZSB0aGUgY2xlYXZlIHByb3RvdHlwZSBmdW5jdGlvbiB0byBpbnRlcmNlcHQgb25DdXQgY2FsbGJhY2tcbiAgICAgICAgLy8gYW5kIGFsbG93IGJhc2VkIG9uIHRoZSBldmVudCBidWJibGluZyBhbmQgZGlzYWJsZWQgc3RhdGVcbiAgICAgICAgLy8gVElQOiBjaGFuZ2UgYmVoYXZpb3Igb2Ygb25DdXQgdG8gc3RvcCBpbiBjYXNlIGJ1YmJsZSBpcyBjYW5jZWxlZFxuICAgICAgICAvLyBUT0RPOiBTZWUgcmVsZXZhbnQgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL25vc2lyL2NsZWF2ZS5qcy9pc3N1ZXMvNjc1XG4gICAgICAgIGNvbnN0IF9vbkN1dCA9IENsZWF2ZS5wcm90b3R5cGVbJ29uQ3V0J107XG4gICAgICAgIENsZWF2ZS5wcm90b3R5cGVbJ29uQ3V0J10gPSBmdW5jdGlvbiAoZTogRXZlbnQpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pbnZhbGlkLXRoaXNcbiAgICAgICAgICAgIGlmICghZS5jYW5jZWxCdWJibGUgJiYgIXRoaXMuZWxlbWVudC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pbnZhbGlkLXRoaXNcbiAgICAgICAgICAgICAgICBfb25DdXQuY2FsbCh0aGlzLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBpbiBjYXNlIG9wdGlvbnMgaXMgdW5kZWZpbmVkXG4gICAgICAgIGNvbnN0IG9wdHM6IENsZWF2ZU9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucyB9O1xuXG4gICAgICAgIC8vIHNldCB0aGUgb25WYWx1ZSBjaGFuZ2UgbGlzdGVuZXIgdG8ga2VlcCB0aGUgdmFsdWUgYXQgcmVhZE9ubHkgZWxlbWVudCBpbiBzeW5jXG4gICAgICAgIG9wdHMub25WYWx1ZUNoYW5nZWQgPSB0aGlzLm9uVmFsdWVDaGFuZ2VkLmJpbmQodGhpcyk7XG5cbiAgICAgICAgLy8gaW4gY2FzZSByb3VuZCBVUCBpcyBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLl9yb3VuZFVwID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGVjaW1hbEFkanVzdChudW1iZXIsIHRoaXMucm91bmRVcCAqIC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSB0aGUgQ2xlYXZlIGluc3RhbmNlIHdpdGggdGhlIG5ldyBvciB1cGRhdGVkIG9wdGlvbnNcbiAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBvcHRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBjbGVhdmUgb3B0aW9ucyBieSBkZXN0cm95aW5nIHRoZSBjdXJyZW50IGluc3RhbmNlIGFuZCBjcmVhdGluZyBhbm90aGVyIG9uZSB3aGlsZSBrZWVwaW5nIHRoZSBwcmV2aW91c1xuICAgICAqIHZhbHVlLlxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlT3B0aW9ucyhsb2NhbGVVcGRhdGVkOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xlYXZlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBiZWZvcmUgZGVzdHJveWluZyBjbGVhdmUgaW5zdGFuY2VcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLmNsZWF2ZUluc3RhbmNlLmdldFJhd1ZhbHVlKCk7XG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgQ2xlYXZlIGluc3RhbmNlIHdpdGggdGhlIG5ldyBvciB1cGRhdGVkIG9wdGlvbnNcbiAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2UucHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmNsZWF2ZUluc3RhbmNlLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGluaXRWYWx1ZTogcHJldmlvdXNWYWx1ZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIGluaXQgbnVtYmVyIGZvcm1hdHRlciB3aXRoIHVwZGF0ZWQgb3B0aW9uc1xuICAgICAgICAgICAgdGhpcy5jbGVhdmVJbnN0YW5jZS5pbml0TnVtZXJhbEZvcm1hdHRlcigpO1xuXG4gICAgICAgICAgICAvLyBJbiBjYXNlIHByZXZpb3VzIHNldHRpbmdzIHdoZXJlIG51bWVyYWxEZWNpbWFsTWFyaz0nLicgd2l0aCB2YWx1ZSAxMDAwLjk5IGFuZCB0aGV5IGNoYW5nZWQgdG9cbiAgICAgICAgICAgIC8vIG51bWVyYWxEZWNpbWFsTWFyaz0nLCc7IHNldCBpbml0VmFsdWUgdG8gMTAwMC45OSBvciBldmVuIDEwMDAsOTkgd2lsbCBub3QgYmUgcmVmbGVjdGVkIGFuZCBjbGVhdmUgd2lsbFxuICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBkZWNpbWFsIHBhcnQuIFNldCBvZiB0aGUgdmFsdWUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gY2F1c2VzIHJlZm9ybWF0IG9mIG51bWJlciBhbmQgd29ya3MuXG4gICAgICAgICAgICB0aGlzLmNsZWF2ZUluc3RhbmNlLnNldFJhd1ZhbHVlKHByZXZpb3VzVmFsdWUpO1xuXG4gICAgICAgICAgICAvLyBwYXJzZSBudW1iZXJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IHRoaXMucGFyc2VOdW1iZXIodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBsYWNlaG9sZGVyIHx8IHVuZGVmaW5lZCwgbG9jYWxlVXBkYXRlZCk7XG4gICAgICAgICAgICAvLyBzZXQgcGxhY2Vob2xkZXIgaW4gY2FzZSBub25lIGlzIHByb3ZpZGVkXG4gICAgICAgICAgICB0aGlzLnNldFBsYWNlaG9sZGVyQXR0cmlidXRlKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiBvZiB0aGUgQ2xlYXZlIGluc3RhbmNlIHRoYXQgaXMgaW52b2tlZCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgdHlwZSBvZiBDbGVhdmVFdmVudE9uQ2hhbmdlXG4gICAgICovXG4gICAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlZChldmVudDogQ2xlYXZlRXZlbnRPbkNoYW5nZSkge1xuICAgICAgICBjb25zdCB7IHRhcmdldCB9ID0gZXZlbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsbEZyYWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5RnJhY3Rpb25GaWxsKHRhcmdldC5yYXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZShOdW1iZXIucGFyc2VGbG9hdCh0YXJnZXQucmF3VmFsdWUpKTtcbiAgICAgICAgLy8gZmlsbCBsZWFkaW5nIHplcm9cbiAgICAgICAgaWYgKHRoaXMubGVhZGluZ1plcm8pIHtcbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLmxlYWRpbmdaZXJvID4gdGhpcy5kaWdpdHMgJiYgdGhpcy5kaWdpdHMgPiAwID8gdGhpcy5kaWdpdHMgOiB0aGlzLmxlYWRpbmdaZXJvO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5wYWRaZXJvKGV2ZW50LnRhcmdldC5yYXdWYWx1ZSwgc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXNwb25zaWJsZSB0byBleHRyYWN0IGFsbCBsb2NhbGUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIGJ1aWxkIENsZWF2ZU9wdGlvbnMgcmVsYXRlZCB0byBudW1iZXIgZm9ybWF0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbG9jYWxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDbGVhdmVPcHRzQmFzZWRPbkxvY2FsZShpZDogc3RyaW5nKTogQ2xlYXZlT3B0aW9ucyB7XG4gICAgICAgIGlmICghaWQgfHwgaWQgPT09ICcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsZSBpZCBjYW5ub3QgYmUgZW1wdHkgb3IgdW5kZWZpbmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0czogQ2xlYXZlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG51bWVyYWw6IHRydWUsXG4gICAgICAgICAgICBkZWxpbWl0ZXI6IGdldExvY2FsZU51bWJlclN5bWJvbChpZCwgTnVtYmVyU3ltYm9sLkdyb3VwKSxcbiAgICAgICAgICAgIG51bWVyYWxEZWNpbWFsTWFyazogZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGlkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbCksXG4gICAgICAgICAgICBudW1lcmFsRGVjaW1hbFNjYWxlOiB0aGlzLmZyYWN0aW9uRGlnaXRzLFxuICAgICAgICAgICAgbnVtZXJhbEludGVnZXJTY2FsZTogdGhpcy5kaWdpdHMsXG4gICAgICAgICAgICBudW1lcmFsVGhvdXNhbmRzR3JvdXBTdHlsZTogdGhpcy5ub0Zvcm1hdCA/ICdub25lJyA6ICd0aG91c2FuZCcsIC8vIFRPRE86IGltcGxlbWVudCBiYXNlZCBvbiBsb2NhbGVcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4geyAuLi50aGlzLm9wdGlvbnMsIC4uLm9wdHMgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIHRoZSBmaWxsIG9mIGRlY2ltYWwgcGFydCB3aXRoIHplcm9zIGluIGNhc2UgZGVjaW1hbCBwYXJ0IG9mIGdpdmVuIG51bWJlciBoYXNcbiAgICAgKiBzaXplIGxlc3MgdGhhbiB0aGUgbWF4IGZyYWN0aW9uIGRpZ2l0cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBudW1iZXJcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgYXBwbHlGcmFjdGlvbkZpbGwobnVtYmVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgZmlsbCBmcmFjdGlvbiBpcyBlbmFibGVkIGFuZCB0aGVyZSdzIGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICBpZiAodGhpcy5maWxsRnJhY3Rpb24pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyPy50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09ICcnIHx8ICFudW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNEZWNpbWFsID0gbnVtYmVyLnNwbGl0KCcuJykubGVuZ3RoID4gMTtcbiAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIHRoZXJlJ3MgYWxyZWFkeSBkZWNpbWFsIHBvaW50IGluIG51bWJlclxuICAgICAgICAgICAgICAgIGlmIChoYXNEZWNpbWFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxTaXplID0gbnVtYmVyLnNwbGl0KCcuJylbMV0ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiBzaXplIG9mIGRlY2ltYWwgcGFydCBvZiBudW1iZXIgaXMgbGVzcyB0aGFuIHRoZSBtYXggZnJhY3Rpb24gZGlnaXRzXG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWNpbWFsU2l6ZSA8IHRoaXMuX2ZyYWN0aW9uRGlnaXRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIgKyBuZXcgQXJyYXkodGhpcy5fZnJhY3Rpb25EaWdpdHMgLSBkZWNpbWFsU2l6ZSkuZmlsbCgwKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGVyZSdzIG5vdCwgZm9yY2UgaXQgYnkgZmlsbGluZyBpdCBhcyBtdWNoIHplcm8gYXMgdGhlIGZyYWN0aW9uIGRpZ2l0c1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5mcmFjdGlvbkRpZ2l0cyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gYCR7bnVtYmVyfS4ke25ldyBBcnJheSh0aGlzLl9mcmFjdGlvbkRpZ2l0cykuZmlsbCgwKS5qb2luKCcnKX1gO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXZlSW5zdGFuY2Uuc2V0UmF3VmFsdWUobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgYSBnaXZlbiBmb3JtYXR0ZWQgbnVtYmVyIGFuZCByZXR1cm5zIGl0IGFzIGEgbnVtYmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBmb3JtYXR0ZWQgbnVtYmVyIHlvdSB3YW50IHRvIHBhcnNlIGUuZy4gMTExLDg4OC4yMlxuICAgICAqIEBwYXJhbSBjdXJyZW50TG9jYWxlU3RhdGUgVXNlIHByZXZpb3VzIGxvY2FsZSBzdGF0ZSB0byBwYXJzZSB0aGUgdmFsdWUuIEJ5IGRlZmF1bHQsIGlzIGZhbHNlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHBhcnNlTnVtYmVyKHZhbHVlOiBzdHJpbmcsIHVzZXJQcmV2TG9jYWxlU3RhdGU6IGJvb2xlYW4gPSBmYWxzZSk6IG51bWJlciB7XG4gICAgICAgIC8vIGxvY2FsZSBzdGF0ZVxuICAgICAgICBjb25zdCBsb2NhbGUgPSB1c2VyUHJldkxvY2FsZVN0YXRlID8gdGhpcy5sb2NhbGVTZXJ2aWNlPy5wcmV2aW91c0xvY2FsZSA6IHRoaXMubG9jYWxlU2VydmljZT8uY3VycmVudExvY2FsZSB8fCB0aGlzLmxvY2FsZV9pZDtcbiAgICAgICAgLy8gZ2V0IGRlY2ltYWwgYW5kIGdyb3VwIHN5bWJvbHNcbiAgICAgICAgY29uc3QgZGVjaW1hbFN5bWJvbCA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIE51bWJlclN5bWJvbC5EZWNpbWFsKTtcbiAgICAgICAgY29uc3QgZ3JvdXBTeW1ib2wgPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuR3JvdXApO1xuICAgICAgICAvLyByZXBsYWNlIHN5bWJvbHMgdG8gcGFyc2UgbnVtYmVyXG4gICAgICAgIGNvbnN0IHBhcnNlZE51bWJlciA9IHZhbHVlPy5zcGxpdChncm91cFN5bWJvbCkuam9pbignJykuc3BsaXQoZGVjaW1hbFN5bWJvbCkuam9pbignLicpO1xuICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQocGFyc2VkTnVtYmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWQgbGVhZGluZyB6ZXJvIHRvIHRoZSBudW1iZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBudW0gVGhlIG51bWJlciB0byBhZGQgbGVhZGluZyB6ZXJvIHRvXG4gICAgICogQHBhcmFtIHNpemUgTnVtYmVyIG9mIG51bWJlcidzIGxlYWRpbmcgemVyb1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYWRaZXJvKG51bSwgc2l6ZSkge1xuICAgICAgICBudW0gPSBudW0udG9TdHJpbmcoKTtcbiAgICAgICAgLy8gZ2V0IGludGVnZXIgYW5kIGRlY2ltYWwgcGFydFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgICAgIGxldCBbaW50ZWdlciwgZGVjaW1hbF0gPSBudW0uc3BsaXQoJy4nKTtcbiAgICAgICAgd2hpbGUgKGludGVnZXIubGVuZ3RoIDwgc2l6ZSkge1xuICAgICAgICAgICAgaW50ZWdlciA9ICcwJyArIGludGVnZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY2ltYWwgPyBgJHtpbnRlZ2VyfS4ke2RlY2ltYWx9YCA6IGludGVnZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2hlY2tzIHdoZXRoZXIgdGhlIG1pbiBzeW1ib2wgaXMgYWxsb3dlZC4gSXQgaXMgYWxsb3dlZCB3aGVuIG1pbnVzIHN5bWJvbFxuICAgICAqIHByb3ZpZGVkIGFuZCBtaW4gaW5wdXQgaXMgdW5kZWZpbmVkIG9yIG1pbiBwcm92aWRlZCBhbmQgaXMgbmVnYXRpdmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgc3RyaW5nIGNvbWluZyBmcm9tIGFuIGV2ZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBpc01pbnVzQWxsb3dlZChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubWluIHx8IHRoaXMubWluIDwgMCA/IGtleSAhPT0gJy0nIDogdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGVjayB3aGV0aGVyIHRoZSBrZXkgZW50ZXJlZCBpcyBpbnNpZGUgdGhlIG1pbiBhbmRcbiAgICAgKiBtYXggcmFuZ2UuIFJldHVybnMgdHJ1ZSBpZiBpdCdzIG91dCBvZiByYW5nZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlIEEga2V5Ym9hcmQgZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlzT3V0U2lkZVJhbmdlKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmNsZWF2ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGNhcmV0IHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHBvcyA9IGUudGFyZ2V0WydzZWxlY3Rpb25TdGFydCddO1xuICAgICAgICAvLyBnZXQgY2FyZXQgcG9zaXRpb24gKGluIGNhc2UgdGhlcmUncyB0ZXh0IHNlbGVjdGVkKVxuICAgICAgICBjb25zdCBlbmRQb3MgPSBlLnRhcmdldFsnc2VsZWN0aW9uRW5kJ107XG4gICAgICAgIC8vIGdldCBjdXJyZW50IHZhbHVlIChmb3JtYXR0ZWQpXG4gICAgICAgIGxldCB2YWx1ZSA9IGUudGFyZ2V0Wyd2YWx1ZSddO1xuICAgICAgICAvLyByZW1vdmUga2V5IGZyb20gdmFsdWVcbiAgICAgICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJyB8fCBlLmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZXJlJ3Mgc2VsZWN0aW9uIG9mIHRleHQgdG8gYmUgcmVtb3ZlZFxuICAgICAgICAgICAgaWYgKHBvcyAhPT0gZW5kUG9zKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBlLnRhcmdldFsndmFsdWUnXS5zdWJzdHJpbmcoMCwgcG9zKSArIGUudGFyZ2V0Wyd2YWx1ZSddLnN1YnN0cmluZyhlbmRQb3MsIGUudGFyZ2V0Wyd2YWx1ZSddLmxlbmd0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZS50YXJnZXRbJ3ZhbHVlJ10uc3Vic3RyaW5nKDAsIHBvcyAtIDEpICsgZS50YXJnZXRbJ3ZhbHVlJ10uc3Vic3RyaW5nKGVuZFBvcywgZS50YXJnZXRbJ3ZhbHVlJ10ubGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGFkZCBrZXkgdG8gdGhlIHZhbHVlXG4gICAgICAgICAgICB2YWx1ZSA9IFt2YWx1ZS5zbGljZSgwLCBwb3MpLCBlLmtleSwgdmFsdWUuc2xpY2UoZW5kUG9zKV0uam9pbignJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjcmVhdGUgYSBDbGVhdmUgaW5zdGFuY2UgdG8gZXh0cmFjdCB0aGUgbnVtYmVyIGZyb20gZm9ybWF0dGVkIHZhbHVlXG4gICAgICAgIGNvbnN0IGNsZWF2ZTogQ2xlYXZlSW5zdGFuY2UgPSBuZXcgQ2xlYXZlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JyksIHsgLi4udGhpcy5vcHRpb25zIH0pO1xuICAgICAgICBjbGVhdmUuc2V0UmF3VmFsdWUodmFsdWUpO1xuICAgICAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIoY2xlYXZlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICAvLyBkZXN0cm95IGNsZWF2ZSBpbnN0YW5jZVxuICAgICAgICBjbGVhdmUuZGVzdHJveSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5taW4gPiBudW1iZXIgfHwgdGhpcy5tYXggPCBudW1iZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVjaW1hbCBhZGp1c3RtZW50IG9mIGEgbnVtYmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtICB2YWx1ZSBUaGUgbnVtYmVyLlxuICAgICAqIEBwYXJhbSBleHAgICBUaGUgZXhwb25lbnQgKHRoZSAxMCBsb2dhcml0aG0gb2YgdGhlIGFkanVzdG1lbnQgYmFzZSkuXG4gICAgICogQHJldHVybnMgVGhlIGFkanVzdGVkIHZhbHVlLlxuICAgICAqL1xuICAgIHByaXZhdGUgZGVjaW1hbEFkanVzdCh2YWx1ZTogbnVtYmVyLCBleHA6IG51bWJlcikge1xuICAgICAgICAvLyBJZiB0aGUgZXhwIGlzIHVuZGVmaW5lZCBvciB6ZXJvLi4uXG4gICAgICAgIGlmICh0eXBlb2YgZXhwID09PSAndW5kZWZpbmVkJyB8fCArZXhwID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XG4gICAgICAgIGV4cCA9ICtleHA7XG4gICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBub3QgYSBudW1iZXIgb3IgdGhlIGV4cCBpcyBub3QgYW4gaW50ZWdlci4uLlxuICAgICAgICBpZiAoaXNOYU4odmFsdWUpIHx8ICEodHlwZW9mIGV4cCA9PT0gJ251bWJlcicgJiYgZXhwICUgMSA9PT0gMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2hpZnRcbiAgICAgICAgbGV0IGNsZWFuZWQgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCdlJyk7XG4gICAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCgrKGNsZWFuZWRbMF0gKyAnZScgKyAoY2xlYW5lZFsxXSA/ICtjbGVhbmVkWzFdIC0gZXhwIDogLWV4cCkpKTtcbiAgICAgICAgLy8gU2hpZnQgYmFja1xuICAgICAgICBjbGVhbmVkID0gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnZScpO1xuICAgICAgICByZXR1cm4gKyhjbGVhbmVkWzBdICsgJ2UnICsgKGNsZWFuZWRbMV0gPyArY2xlYW5lZFsxXSArIGV4cCA6IGV4cCkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@angular/forms";
|
|
6
6
|
export class EuiInputRadioComponent extends InputDirective {
|
|
7
7
|
constructor(ngControl, viewContainerRef, _elementRef, _renderer, _cd, injector) {
|
|
8
|
-
super(_elementRef, _renderer,
|
|
8
|
+
super(_elementRef, _renderer, injector);
|
|
9
9
|
this.ngControl = ngControl;
|
|
10
10
|
this.viewContainerRef = viewContainerRef;
|
|
11
11
|
this._elementRef = _elementRef;
|
|
@@ -180,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
180
180
|
type: HostListener,
|
|
181
181
|
args: ['keydown.space', ['$event']]
|
|
182
182
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1yYWRpby9ldWktaW5wdXQtcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEVBSUosU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEdBR2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBUzVFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUFjO0lBOEN0RCxZQUNrQyxTQUFvQixFQUMxQyxnQkFBa0MsRUFDaEMsV0FBeUMsRUFDekMsU0FBb0IsRUFDdEIsR0FBc0IsRUFDOUIsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBUHJCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBOEI7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpDRSxTQUFJLEdBQUcsT0FBTyxDQUFDO1FBMkl6QyxhQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QiwrQkFBK0I7UUFDbkMsQ0FBQyxDQUFDO1FBQ1EsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsK0JBQStCO1FBQ25DLENBQUMsQ0FBQztRQTFHRSw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUU5QyxxQ0FB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QUUsaUJBQ0csaUJBQWlCLENBQUMsSUFBSTs7MEJBaURoQyxRQUFROzswQkFBSSxJQUFJO21MQTdDVixTQUFTO3NCQURuQixLQUFLO2dCQVdLLEtBQUs7c0JBRmYsV0FBVzt1QkFBQyxPQUFPOztzQkFDbkIsS0FBSztnQkFPOEIsSUFBSTtzQkFBdkMsV0FBVzt1QkFBQyxXQUFXO2dCQUliLGNBQWM7c0JBRnhCLFdBQVc7dUJBQUMsY0FBYzs7c0JBQzFCLEtBQUs7dUJBQUMsU0FBUztnQkFjWixLQUFLO3NCQURSLEtBQUs7Z0JBc0dJLGdCQUFnQjtzQkFEekIsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBTy9CLGNBQWM7c0JBRHZCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lucHV0W2V1aUlucHV0UmFkaW9dJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpSW5wdXRSYWRpb0NvbXBvbmVudCBleHRlbmRzIElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkIHx8IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNJbnZhbGlkKHN0YXRlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5zZXRJbnZhbGlkKHN0YXRlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9pc0ludmFsaWQ6IGJvb2xlYW47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgY2xhc3MoY3NzQ2xhc3M6IHN0cmluZykge1xuICAgICAgICBzdXBlci5zdHlsZUNsYXNzID0gY3NzQ2xhc3M7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdldWktaW5wdXQtcmFkaW8nKSwgdGhpcy5faXNJbnZhbGlkID8gJ2V1aS1pbnB1dC1yYWRpby0taW52YWxpZCcgOiAnJ10uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnR5cGUnKSBwcm90ZWN0ZWQgdHlwZSA9ICdyYWRpbyc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuY2hlY2tlZCcpXG4gICAgQElucHV0KCdjaGVja2VkJylcbiAgICBwdWJsaWMgZ2V0IGRlZmF1bHRDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdENoZWNrZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZGVmYXVsdENoZWNrZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0Q2hlY2tlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZGVmYXVsdENoZWNrZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5jaGVja2VkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCAhIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcm90ZWN0ZWQgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfcmVuZGVyZXIsIG5nQ29udHJvbCwgaW5qZWN0b3IpO1xuXG4gICAgICAgIC8vIEZpcmVmb3ggZml4OiBzZXQgdHlwZSB0byByYWRpbyBiZWZvcmUgZmlyc3QgbmdEb0NoZWNrIHJ1bnNcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGUgPSAncmFkaW8nO1xuXG4gICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gaWQgYXR0cmlidXRlIHNldCBvbmVcbiAgICAgICAgaWYgKCF0aGlzLl9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRJZEF0dHJpYnV0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVnaXN0ZXIgY29udHJvbCB2YWx1ZUFjY2Vzc29yXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICAvLyBpbiBjYXNlIGNvbnRyb2wgdmFsdWUgaXMgbnVsbCBzZXQgdGhlIGRlZmF1bHQgb25lIChpc0NoZWNrZWQpIGFuZCBzeW5jIENvbnRyb2wgU3RhdGVcbiAgICAgICAgLy8gaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAvLyB0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKCcnLCB7IGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XG4gICAgICAgIC8vIGNoYW5naW5nIE1vZGVsIEV4cHJlc3Npb24gYWZ0ZXIgdmlldyBjaGVja2VkLCBzbyBkZXRlY3QgY2hhbmdlc1xuICAgICAgICAvLyBUT0RPOiBjaGVjayB3aHkgYWx0aG91Z2ggaXQncyBjaGVja2VkIC5jaGVja2VkIHJldHVybnMgZmFsc2VcbiAgICAgICAgLy8gdGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodGhpcy5fY2hlY2tlZCk7XG4gICAgICAgIC8vIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gc3RhdHVzID09PSAnSU5WQUxJRCc7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlEYW5nZXIgPSB0aGlzLmlzSW52YWxpZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICAvLyB3aGVuIHJlYWRvbmx5IGNoYW5nZXMgaGlkZSBvdGhlciByYWRpbyAoaW5wdXQrbGFiZWwpXG4gICAgICAgIGlmIChjaGFuZ2VzWydyZWFkb25seSddKSB7XG4gICAgICAgICAgICAvLyBpbiByZWFkb25seSBoaWRlIGFsbCBpbnB1dCBlbGVtZW50cy5cbiAgICAgICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZXVpLWlucHV0LXJhZGlvLS1oaWRlJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2V1aS1pbnB1dC1yYWRpby0taGlkZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzUmVhZG9ubHkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzWydpc0ludmFsaWQnXSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXNbJ2lzSW52YWxpZCddLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2V1aS1pbnB1dC1yYWRpby0taW52YWxpZCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdldWktaW5wdXQtcmFkaW8tLWludmFsaWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gc2V0IGNoZWNrZWQgc3RhdGUgYmFzZWQgaWYgcmFkaW8gdmFsdWUgbWF0Y2hlcyB0aGUgY29udHJvbCdzIG9uZVxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9PT0gb2JqPy50b1N0cmluZygpO1xuICAgICAgICB0aGlzLnByb2Nlc3NSZWFkb25seSgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgcHJvdGVjdGVkIG9uQ2hlY2tlZENoYW5nZWQodGFyZ2V0KSB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRDaGVja2VkID0gdGFyZ2V0LmNoZWNrZWQ7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGFyZ2V0LnZhbHVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25TcGFjZVByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRJbnZhbGlkKHN0YXRlKTogdm9pZCB7XG4gICAgICAgIC8vIGluIGNhc2UgaXQncyBjb250cm9sbGVkIGJ5IE5nQ29udHJvbCBvdmVycmlkZVxuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCA6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShzdGF0ZSk7XG5cbiAgICAgICAgLy8gc2V0IEJhc2VEaXJlY3RpdmUgQXR0cmlidXRlXG4gICAgICAgIHN1cGVyLmV1aURhbmdlciA9IHRoaXMuX2lzSW52YWxpZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2UgPSAoXykgPT4ge1xuICAgICAgICAvKiBOb3RoaW5nIHRvIGJlIERvbmUgc28gZmFyICovXG4gICAgfTtcbiAgICBwcm90ZWN0ZWQgb25Ub3VjaGVkID0gKF8pID0+IHtcbiAgICAgICAgLyogTm90aGluZyB0byBiZSBEb25lIHNvIGZhciAqL1xuICAgIH07XG5cbiAgICBwcml2YXRlIHByb2Nlc3NSZWFkb25seSgpIHtcbiAgICAgICAgY29uc3Qgbm90UmVuZGVyID0gdGhpcy5fcmVhZG9ubHkgJiYgIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkO1xuICAgICAgICAvLyBjb250cm9sIHRoZSBsYWJlbCB0aGF0IHdpbGwgYmUgcmVuZGVyZWRcbiAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50UmVmID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2Zvcj0ke3RoaXMuX2lkfV1gKTtcbiAgICAgICAgaWYgKGxhYmVsRWxlbWVudFJlZikge1xuICAgICAgICAgICAgaWYgKG5vdFJlbmRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGxhYmVsRWxlbWVudFJlZiwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZShsYWJlbEVsZW1lbnRSZWYsICdkaXNwbGF5Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1yYWRpby9ldWktaW5wdXQtcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFFUixJQUFJLEVBSUosU0FBUyxFQUNULGlCQUFpQixFQUNqQixZQUFZLEdBR2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBUzVFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUFjO0lBOEN0RCxZQUNrQyxTQUFvQixFQUMxQyxnQkFBa0MsRUFDaEMsV0FBeUMsRUFDekMsU0FBb0IsRUFDdEIsR0FBc0IsRUFDOUIsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFQVixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQThCO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqQ0UsU0FBSSxHQUFHLE9BQU8sQ0FBQztRQTJJekMsYUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsK0JBQStCO1FBQ25DLENBQUMsQ0FBQztRQUNRLGNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLCtCQUErQjtRQUNuQyxDQUFDLENBQUM7UUExR0UsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFFOUMscUNBQXFDO1FBQ3JDLElB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QUFpQixDQUFDLElBQUk7OzBCQWlEaEMsUUFBUTs7MEJBQUksSUFBSTttTEE3Q1YsU0FBUztzQkFEbkIsS0FBSztnQkFXSyxLQUFLO3NCQUZmLFdBQVc7dUJBQUMsT0FBTzs7c0JBQ25CLEtBQUs7Z0JBTzhCLElBQUk7c0JBQXZDLFdBQVc7dUJBQUMsV0FBVztnQkFJYixjQUFjO3NCQUZ4QixXQUFXO3VCQUFDLGNBQWM7O3NCQUMxQixLQUFLO3VCQUFDLFNBQVM7Z0JBY1osS0FBSztzQkFEUixLQUFLO2dCQXNHSSxnQkFBZ0I7c0JBRHpCLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQU8vQixjQUFjO3NCQUR2QixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElucHV0RGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdpbnB1dFtldWlJbnB1dFJhZGlvXScsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aUlucHV0UmFkaW9Db21wb25lbnQgZXh0ZW5kcyBJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjaywgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSW52YWxpZCB8fCBudWxsO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzSW52YWxpZChzdGF0ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuc2V0SW52YWxpZChzdGF0ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNJbnZhbGlkOiBib29sZWFuO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGNsYXNzKGNzc0NsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIuc3R5bGVDbGFzcyA9IGNzc0NsYXNzO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZXVpLWlucHV0LXJhZGlvJyksIHRoaXMuX2lzSW52YWxpZCA/ICdldWktaW5wdXQtcmFkaW8tLWludmFsaWQnIDogJyddLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnYXR0ci50eXBlJykgcHJvdGVjdGVkIHR5cGUgPSAncmFkaW8nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmNoZWNrZWQnKVxuICAgIEBJbnB1dCgnY2hlY2tlZCcpXG4gICAgcHVibGljIGdldCBkZWZhdWx0Q2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRDaGVja2VkO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGRlZmF1bHRDaGVja2VkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdENoZWNrZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2RlZmF1bHRDaGVja2VkOiBib29sZWFuO1xuXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgICBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgISF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX3JlbmRlcmVyLCBpbmplY3Rvcik7XG5cbiAgICAgICAgLy8gRmlyZWZveCBmaXg6IHNldCB0eXBlIHRvIHJhZGlvIGJlZm9yZSBmaXJzdCBuZ0RvQ2hlY2sgcnVuc1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudHlwZSA9ICdyYWRpbyc7XG5cbiAgICAgICAgLy8gaWYgdGhlcmUncyBubyBpZCBhdHRyaWJ1dGUgc2V0IG9uZVxuICAgICAgICBpZiAoIXRoaXMuX2lkKSB7XG4gICAgICAgICAgICB0aGlzLnNldElkQXR0cmlidXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZWdpc3RlciBjb250cm9sIHZhbHVlQWNjZXNzb3JcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIC8vIGluIGNhc2UgY29udHJvbCB2YWx1ZSBpcyBudWxsIHNldCB0aGUgZGVmYXVsdCBvbmUgKGlzQ2hlY2tlZCkgYW5kIHN5bmMgQ29udHJvbCBTdGF0ZVxuICAgICAgICAvLyBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIC8vIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsdWUoJycsIHsgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiBmYWxzZSB9KTtcbiAgICAgICAgLy8gY2hhbmdpbmcgTW9kZWwgRXhwcmVzc2lvbiBhZnRlciB2aWV3IGNoZWNrZWQsIHNvIGRldGVjdCBjaGFuZ2VzXG4gICAgICAgIC8vIFRPRE86IGNoZWNrIHdoeSBhbHRob3VnaCBpdCdzIGNoZWNrZWQgLmNoZWNrZWQgcmV0dXJucyBmYWxzZVxuICAgICAgICAvLyB0aGlzLm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSh0aGlzLl9jaGVja2VkKTtcbiAgICAgICAgLy8gdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBzdGF0dXMgPT09ICdJTlZBTElEJztcbiAgICAgICAgICAgICAgICB0aGlzLmV1aURhbmdlciA9IHRoaXMuaXNJbnZhbGlkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gcmVhZG9ubHkgY2hhbmdlcyBoaWRlIG90aGVyIHJhZGlvIChpbnB1dCtsYWJlbClcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3JlYWRvbmx5J10pIHtcbiAgICAgICAgICAgIC8vIGluIHJlYWRvbmx5IGhpZGUgYWxsIGlucHV0IGVsZW1lbnRzLlxuICAgICAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdldWktaW5wdXQtcmFkaW8tLWhpZGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZXVpLWlucHV0LXJhZGlvLS1oaWRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NSZWFkb25seSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXNbJ2lzSW52YWxpZCddKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1snaXNJbnZhbGlkJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZXVpLWlucHV0LXJhZGlvLS1pbnZhbGlkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2V1aS1pbnB1dC1yYWRpby0taW52YWxpZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBzZXQgY2hlY2tlZCBzdGF0ZSBiYXNlZCBpZiByYWRpbyB2YWx1ZSBtYXRjaGVzIHRoZSBjb250cm9sJ3Mgb25lXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID09PSBvYmo/LnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMucHJvY2Vzc1JlYWRvbmx5KCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICBwcm90ZWN0ZWQgb25DaGVja2VkQ2hhbmdlZCh0YXJnZXQpIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdENoZWNrZWQgPSB0YXJnZXQuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0YXJnZXQudmFsdWUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc3BhY2UnLCBbJyRldmVudCddKVxuICAgIHByb3RlY3RlZCBvblNwYWNlUHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEludmFsaWQoc3RhdGUpOiB2b2lkIHtcbiAgICAgICAgLy8gaW4gY2FzZSBpdCdzIGNvbnRyb2xsZWQgYnkgTmdDb250cm9sIG92ZXJyaWRlXG4gICAgICAgIHRoaXMuX2lzSW52YWxpZCA9IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXRlKTtcblxuICAgICAgICAvLyBzZXQgQmFzZURpcmVjdGl2ZSBBdHRyaWJ1dGVcbiAgICAgICAgc3VwZXIuZXVpRGFuZ2VyID0gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNoYW5nZSA9IChfKSA9PiB7XG4gICAgICAgIC8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi9cbiAgICB9O1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQgPSAoXykgPT4ge1xuICAgICAgICAvKiBOb3RoaW5nIHRvIGJlIERvbmUgc28gZmFyICovXG4gICAgfTtcblxuICAgIHByaXZhdGUgcHJvY2Vzc1JlYWRvbmx5KCkge1xuICAgICAgICBjb25zdCBub3RSZW5kZXIgPSB0aGlzLl9yZWFkb25seSAmJiAhdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoZWNrZWQ7XG4gICAgICAgIC8vIGNvbnRyb2wgdGhlIGxhYmVsIHRoYXQgd2lsbCBiZSByZW5kZXJlZFxuICAgICAgICBjb25zdCBsYWJlbEVsZW1lbnRSZWYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZm9yPSR7dGhpcy5faWR9XWApO1xuICAgICAgICBpZiAobGFiZWxFbGVtZW50UmVmKSB7XG4gICAgICAgICAgICBpZiAobm90UmVuZGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUobGFiZWxFbGVtZW50UmVmLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKGxhYmVsRWxlbWVudFJlZiwgJ2Rpc3BsYXknKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -7,7 +7,7 @@ import * as i1 from "@angular/forms";
|
|
|
7
7
|
import * as i2 from "@eui/components/directives";
|
|
8
8
|
export class EuiInputTextComponent extends InputDirective {
|
|
9
9
|
constructor(control, _elementRef, _renderer, injector) {
|
|
10
|
-
super(_elementRef, _renderer,
|
|
10
|
+
super(_elementRef, _renderer, injector);
|
|
11
11
|
this.control = control;
|
|
12
12
|
this._elementRef = _elementRef;
|
|
13
13
|
this._renderer = _renderer;
|
|
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
69
69
|
}], isInvalid: [{
|
|
70
70
|
type: Input
|
|
71
71
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWlucHV0LXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLWlucHV0LXRleHQvZXVpLWlucHV0LXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBR1QsSUFBSSxFQUNKLFdBQVcsRUFFWCxLQUFLLEVBR0wsUUFBUSxFQUVSLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBbUJ4RixNQUFNLE9BQU8scUJBQXNCLFNBQVEsY0FBYztJQW1CckQsWUFDa0MsT0FBa0IsRUFDdEMsV0FBdUIsRUFDdkIsU0FBb0IsRUFDOUIsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFMVixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFJbEMsQ0FBQztJQXpCRCxJQUVXLEtBQUssQ0FBQyxRQUFnQjtRQUM3QixLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBVyxLQUFLO1FBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUNXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBWUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDakU7SUFDTCxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQW9CO1FBQ3JDLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3Ryw4QkFBOEI7UUFDOUIsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3RDLENBQUM7O3FJQWpEUSxxQkFBcUI7eUhBQXJCLHFCQUFxQix5WkFkcEIsRUFBRTsyRkFjSCxxQkFBcUI7a0JBakJqQyxTQUFTOytCQUVJLHFCQUFxQixZQUNyQixFQUFFLGlCQUVHLGlCQUFpQixDQUFDLElBQUksa0JBQ3JCO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSxxQkFBcUI7NEJBQ2hDLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUM7eUJBQ3ZDO3dCQUNEOzRCQUNJLFNBQVMsRUFBRSxtQkFBbUI7NEJBQzlCLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7eUJBQ3JDO3FCQUNKOzswQkFzQkksUUFBUTs7MEJBQUksSUFBSTtvSEFqQlYsS0FBSztzQkFGZixXQUFXO3VCQUFDLE9BQU87O3NCQUNuQixLQUFLO2dCQVNLLFNBQVM7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgU2VsZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRXVpQ2xlYXJhYmxlRGlyZWN0aXZlLCBFdWlMb2FkaW5nRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2RpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnaW5wdXRbZXVpSW5wdXRUZXh0XScsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBFdWlDbGVhcmFibGVEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsnZXVpQ2xlYXJhYmxlJywgJ3JlYWRvbmx5J10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogRXVpTG9hZGluZ0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydldWlMb2FkaW5nJywgJ3JlYWRvbmx5J10sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpSW5wdXRUZXh0Q29tcG9uZW50IGV4dGVuZHMgSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjayB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGNsYXNzKGNzc0NsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIuc3R5bGVDbGFzcyA9IGNzc0NsYXNzO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZXVpLWlucHV0LXRleHQnKSwgdGhpcy5faXNJbnZhbGlkID8gYGV1aS1pbnB1dC10ZXh0LS1pbnZhbGlkYCA6ICcnXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc0ludmFsaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQgfHwgbnVsbDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc0ludmFsaWQoc3RhdGU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLnNldEludmFsaWQoc3RhdGUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2lzSW52YWxpZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByb3RlY3RlZCBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9yZW5kZXJlciwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyb290Q2xhc3NOYW1lJywgJ2V1aS1pbnB1dC10ZXh0Jyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEludmFsaWQoc3RhdGU/OiBCb29sZWFuSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgLy8gaW4gY2FzZSBpdCdzIGNvbnRyb2xsZWQgYnkgTmdDb250cm9sIG92ZXJyaWRlXG4gICAgICAgIHRoaXMuX2lzSW52YWxpZCA9IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkIDogY29lcmNlQm9vbGVhblByb3BlcnR5KHN0YXRlKTtcblxuICAgICAgICAvLyBzZXQgQmFzZURpcmVjdGl2ZSBBdHRyaWJ1dGVcbiAgICAgICAgc3VwZXIuZXVpRGFuZ2VyID0gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cbn1cbiJdfQ==
|