@eui/components 15.3.5 → 15.3.6-snapshot-1686600876843

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/docs/components/EuiMenuItemComponent.html +1 -1
  2. package/docs/components/EuiTabsComponent.html +81 -0
  3. package/docs/components/EuiTreeComponent.html +21 -1
  4. package/docs/dependencies.html +2 -2
  5. package/docs/directives/EuiNgSelectOptionDirective.html +79 -0
  6. package/docs/directives/EuiSelectControlValueAccessor.html +13 -1
  7. package/docs/js/menu-wc.js +3 -3
  8. package/docs/js/menu-wc_es5.js +1 -1
  9. package/docs/js/search/search_index.js +2 -2
  10. package/docs/miscellaneous/functions.html +81 -1
  11. package/esm2020/eui-button/eui-button.component.mjs +2 -2
  12. package/esm2020/eui-dropdown/eui-dropdown.component.mjs +4 -4
  13. package/esm2020/eui-menu/eui-menu-item.component.mjs +4 -4
  14. package/esm2020/eui-select/eui-select-control.directive.mjs +8 -4
  15. package/esm2020/eui-select/eui-select-option.directive.mjs +29 -2
  16. package/esm2020/eui-tabs/eui-tabs.component.mjs +44 -30
  17. package/esm2020/eui-tree/eui-tree.component.mjs +11 -4
  18. package/esm2020/eui-tree/eui-tree.model.mjs +1 -1
  19. package/eui-select/eui-select-control.directive.d.ts +3 -2
  20. package/eui-select/eui-select-control.directive.d.ts.map +1 -1
  21. package/eui-select/eui-select-option.directive.d.ts +7 -1
  22. package/eui-select/eui-select-option.directive.d.ts.map +1 -1
  23. package/eui-tabs/eui-tabs.component.d.ts +4 -1
  24. package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
  25. package/eui-tree/eui-tree.component.d.ts +6 -3
  26. package/eui-tree/eui-tree.component.d.ts.map +1 -1
  27. package/eui-tree/eui-tree.model.d.ts +1 -1
  28. package/eui-tree/eui-tree.model.d.ts.map +1 -1
  29. package/fesm2015/eui-components-eui-button.mjs +2 -2
  30. package/fesm2015/eui-components-eui-button.mjs.map +1 -1
  31. package/fesm2015/eui-components-eui-dropdown.mjs +3 -3
  32. package/fesm2015/eui-components-eui-dropdown.mjs.map +1 -1
  33. package/fesm2015/eui-components-eui-menu.mjs +3 -3
  34. package/fesm2015/eui-components-eui-menu.mjs.map +1 -1
  35. package/fesm2015/eui-components-eui-select.mjs +41 -10
  36. package/fesm2015/eui-components-eui-select.mjs.map +1 -1
  37. package/fesm2015/eui-components-eui-tabs.mjs +43 -29
  38. package/fesm2015/eui-components-eui-tabs.mjs.map +1 -1
  39. package/fesm2015/eui-components-eui-tree.mjs +10 -3
  40. package/fesm2015/eui-components-eui-tree.mjs.map +1 -1
  41. package/fesm2020/eui-components-eui-button.mjs +2 -2
  42. package/fesm2020/eui-components-eui-button.mjs.map +1 -1
  43. package/fesm2020/eui-components-eui-dropdown.mjs +3 -3
  44. package/fesm2020/eui-components-eui-dropdown.mjs.map +1 -1
  45. package/fesm2020/eui-components-eui-menu.mjs +3 -3
  46. package/fesm2020/eui-components-eui-menu.mjs.map +1 -1
  47. package/fesm2020/eui-components-eui-select.mjs +41 -10
  48. package/fesm2020/eui-components-eui-select.mjs.map +1 -1
  49. package/fesm2020/eui-components-eui-tabs.mjs +43 -29
  50. package/fesm2020/eui-components-eui-tabs.mjs.map +1 -1
  51. package/fesm2020/eui-components-eui-tree.mjs +10 -3
  52. package/fesm2020/eui-components-eui-tree.mjs.map +1 -1
  53. package/package.json +2 -2
@@ -61,6 +61,9 @@
61
61
  <tr>
62
62
  <td class="col-md-4">
63
63
  <ul class="index-list">
64
+ <li>
65
+ <a href="#_buildValueString" title="packages/eui/packages/components/eui-select/eui-select-option.directive.ts" ><b>_buildValueString</b>&nbsp;&nbsp;&nbsp;(packages/.../eui-select-option.directive.ts)</a>
66
+ </li>
64
67
  <li>
65
68
  <a href="#_buildValueString" title="packages/eui/packages/components/eui-select/utils.ts" ><b>_buildValueString</b>&nbsp;&nbsp;&nbsp;(packages/.../utils.ts)</a>
66
69
  </li>
@@ -200,7 +203,84 @@
200
203
  </table>
201
204
  </section>
202
205
 
203
- <h3>packages/eui/packages/components/eui-select/utils.ts</h3>
206
+ <h3>packages/eui/packages/components/eui-select/eui-select-option.directive.ts</h3>
207
+ <section>
208
+ <h3></h3> <table class="table table-sm table-bordered">
209
+ <tbody>
210
+ <tr>
211
+ <td class="col-md-4">
212
+ <a name="_buildValueString"></a>
213
+ <span class="name">
214
+ <span ><b>_buildValueString</b></span>
215
+ <a href="#_buildValueString"><span class="icon ion-ios-link"></span></a>
216
+ </span>
217
+ </td>
218
+ </tr>
219
+ <tr>
220
+ <td class="col-md-4">
221
+ <code>_buildValueString(id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, value: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
222
+ </td>
223
+ </tr>
224
+
225
+
226
+
227
+
228
+ <tr>
229
+ <td class="col-md-4">
230
+
231
+ <div class="io-description">
232
+ <b>Parameters :</b>
233
+
234
+ <table class="params">
235
+ <thead>
236
+ <tr>
237
+ <td>Name</td>
238
+ <td>Type</td>
239
+ <td>Optional</td>
240
+ </tr>
241
+ </thead>
242
+ <tbody>
243
+ <tr>
244
+ <td>id</td>
245
+ <td>
246
+ <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
247
+ </td>
248
+
249
+ <td>
250
+ No
251
+ </td>
252
+
253
+
254
+ </tr>
255
+ <tr>
256
+ <td>value</td>
257
+ <td>
258
+ <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
259
+ </td>
260
+
261
+ <td>
262
+ No
263
+ </td>
264
+
265
+
266
+ </tr>
267
+ </tbody>
268
+ </table>
269
+ </div>
270
+ <div>
271
+ </div>
272
+ <div class="io-description">
273
+ <b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
274
+
275
+ </div>
276
+ <div class="io-description">
277
+
278
+ </div>
279
+ </td>
280
+ </tr>
281
+ </tbody>
282
+ </table>
283
+ </section> <h3>packages/eui/packages/components/eui-select/utils.ts</h3>
204
284
  <section>
205
285
  <h3></h3> <table class="table table-sm table-bordered">
206
286
  <tbody>
@@ -81,10 +81,10 @@ export class EuiButtonComponent extends BaseDirective {
81
81
  }
82
82
  }
83
83
  /** @nocollapse */ EuiButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: EuiButtonComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
84
- /** @nocollapse */ EuiButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: { e2eAttr: "e2eAttr", id: "id", euiBasicButton: "euiBasicButton", euiButtonCall: "euiButtonCall", euiBlockButton: "euiBlockButton", isLoading: "isLoading", euiIconButton: "euiIconButton", euiLineWrap: "euiLineWrap" }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<span class=\"eui-button__container\">\n <span *ngIf=\"isLoading\" class=\"eui-button__loading-icon\">\n <eui-icon [isLoading]=\"true\"></eui-icon>\n </span>\n <ng-content></ng-content>\n</span>\n", styles: ["button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:none}.eui-button{font: 400 1rem/1.25rem arial,sans-serif;align-items:center;background-color:var(--eui-base-color-white);background-image:none;border:none;border-radius:var(--eui-base-border-radius);box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:var(--eui-base-font-size);justify-content:center;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));min-width:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));outline:none;padding:calc(var(--eui-base-spacing-s) - 1px) var(--eui-base-spacing-m);text-transform:none;transition:none;vertical-align:middle;white-space:nowrap}.eui-button:active,.eui-button.active,.eui-button:focus{z-index:1;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button .eui-button__container{align-items:center;display:inline-flex;position:relative}.eui-button .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading){margin-right:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading):not(.eui-button--icon-only),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading):not(.eui-button--icon-only){margin-left:0}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading){margin-left:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading):not(.eui-button--icon-only){margin-right:0}.eui-button .eui-button__container .eui-label+.eui-badge{margin-left:var(--eui-base-spacing-s);max-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));font-size:var(--eui-base-font-size-s)}.eui-button .eui-button__container .eui-label+.eui-icon{margin-left:var(--eui-base-spacing-s)}.eui-button--icon-only{padding:calc(var(--eui-base-spacing-xs) - 1px)}.eui-button .eui-button__loading-icon{align-items:center;display:inline-flex}.eui-button .eui-button__loading-icon .eui-icon.eui-icon--loading{margin-right:var(--eui-base-spacing-xl)}.eui-button-fixed{bottom:var(--eui-base-spacing-3xl);position:fixed;right:var(--eui-base-spacing-xl);z-index:calc(var(--eui-base-z-index-btn-floating) + 1)}.eui-button-floating{align-items:center;border-radius:100%;display:inline-flex;height:var(--eui-base-spacing-3xl);overflow:hidden;padding:0;position:relative;transform:translateY(35%);transition:.3s;vertical-align:middle;width:var(--eui-base-spacing-3xl);z-index:1;box-shadow:var(--eui-base-shadow-2)}.eui-button-floating:hover{cursor:pointer;box-shadow:var(--eui-base-shadow-3)}.eui-button-floating .eui-icon{display:inline-block;font-size:var(--eui-base-font-size-3xl);text-align:center;width:inherit}.eui-button-floating:before{border-radius:0}a.eui-button{text-decoration:none}a.eui-button:hover,a.eui-button:focus,a.eui-button:active{text-decoration:none}a.eui-button.eui-button--primary:hover,a.eui-button.eui-button--info:hover,a.eui-button.eui-button--success:hover,a.eui-button.eui-button--danger:hover{color:var(--eui-base-color-white)}a.eui-button.eui-button--accent:hover,a.eui-button.eui-button--secondary:hover,a.eui-button.eui-button--warning:hover{color:var(--eui-base-color-text)}.eui-button__expand-trigger{border-top:1px solid var(--eui-base-color-grey-15);cursor:pointer;display:flex;justify-content:center;width:100%;z-index:1;margin-bottom:var(--eui-base-spacing-l)}.eui-button__expand-trigger:hover .eui-button--expand-toggle{box-shadow:var(--eui-base-shadow-3)}.eui-button__expand-trigger--collapsed{margin-top:var(--eui-base-spacing-s)}.eui-button__expand-trigger .eui-label+.eui-icon,.eui-button__expand-trigger .eui-icon+.eui-label{margin-left:var(--eui-base-spacing-s)}.eui-split-button{align-items:center;display:inline-flex;position:relative}.eui-split-button--disabled,.eui-split-button:disabled{pointer-events:none}.eui-split-button button{border-radius:var(--eui-base-border-radius) 0 0 var(--eui-base-border-radius);cursor:pointer}.eui-split-button .eui-dropdown button{border-radius:0 var(--eui-base-border-radius) var(--eui-base-border-radius) 0;margin-left:-1px}.eui-dropdown-button{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center;position:relative}.eui-dropdown-button--disabled,.eui-dropdown-button:disabled{pointer-events:none}.eui-button--size-xs{height:calc(1.7505 * var(--eui-base-spacing-m));min-height:calc(1.7505 * var(--eui-base-spacing-m));min-width:calc(1.7505 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-xs .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-xs .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-xs.eui-button--icon-only{padding:0}.eui-button--size-s{height:calc(2 * var(--eui-base-spacing-m));min-height:calc(2 * var(--eui-base-spacing-m));min-width:calc(2 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-s .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-s .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-s.eui-button--icon-only{padding:0}.eui-button--size-m .eui-button__container{font-size:var(--eui-base-font-size)}.eui-button--size-m .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-l{height:calc(3.25 * var(--eui-base-spacing-m));min-height:calc(3.25 * var(--eui-base-spacing-m));min-width:calc(3.25 * var(--eui-base-spacing-m))}.eui-button--size-l .eui-button__container{font-size:var(--eui-base-font-size-l)}.eui-button--size-l .eui-button__container .eui-label+.eui-badge{max-height:inherit}.eui-button--size-l .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-2xl)}.eui-button .eui-icon-svg--size-l{height:1.5rem;width:1.5rem}.eui-button .eui-icon-svg--size-m{height:1.25rem;width:1.25rem}.eui-button .eui-icon-svg--size-s{height:1rem;width:1rem}.eui-button{border:1px solid var(--eui-base-color-grey-100);color:var(--eui-base-color-grey-100)}.eui-button:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--primary{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--primary:hover{background-color:var(--eui-base-color-primary-110)}.eui-button--primary--darker{background-color:var(--eui-base-color-primary-120);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary--darker:hover{background-color:var(--eui-base-color-primary-130)}.eui-button--secondary{background-color:var(--eui-base-color-grey-15);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-grey-75);fill:var(--eui-base-grey-75)}.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--secondary--darker{background-color:var(--eui-base-color-grey-25);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary--darker:hover{background-color:var(--eui-base-color-grey-50)}.eui-button--info{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--info:hover{background-color:var(--eui-base-color-info-110)}.eui-button--info--darker{background-color:var(--eui-base-color-info-120);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info--darker:hover{background-color:var(--eui-base-color-info-130)}.eui-button--success{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--success:hover{background-color:var(--eui-base-color-success-110)}.eui-button--success--darker{background-color:var(--eui-base-color-success-120);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success--darker:hover{background-color:var(--eui-base-color-success-130)}.eui-button--warning{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--warning:hover{background-color:var(--eui-base-color-warning-110)}.eui-button--warning--darker{background-color:var(--eui-base-color-warning-120);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning--darker:hover{background-color:var(--eui-base-color-warning-130)}.eui-button--danger{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--danger:hover{background-color:var(--eui-base-color-danger-110)}.eui-button--danger--darker{background-color:var(--eui-base-color-danger-120);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger--darker:hover{background-color:var(--eui-base-color-danger-130)}.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--basic{background-color:transparent;border:1px solid transparent}.eui-button--basic:active,.eui-button--basic:focus,.eui-button--basic:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--basic.eui-button--primary{color:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary:active,.eui-button--basic.eui-button--primary:focus,.eui-button--basic.eui-button--primary:hover{background-color:var(--eui-base-color-primary-10)}.eui-button--basic.eui-button--secondary{color:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary:active,.eui-button--basic.eui-button--secondary:focus,.eui-button--basic.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-10)}.eui-button--basic.eui-button--info{color:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info:active,.eui-button--basic.eui-button--info:focus,.eui-button--basic.eui-button--info:hover{background-color:var(--eui-base-color-info-10)}.eui-button--basic.eui-button--success{color:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success:active,.eui-button--basic.eui-button--success:focus,.eui-button--basic.eui-button--success:hover{background-color:var(--eui-base-color-success-10)}.eui-button--basic.eui-button--warning{color:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning:active,.eui-button--basic.eui-button--warning:focus,.eui-button--basic.eui-button--warning:hover{background-color:var(--eui-base-color-warning-10)}.eui-button--basic.eui-button--danger{color:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger:active,.eui-button--basic.eui-button--danger:focus,.eui-button--basic.eui-button--danger:hover{background-color:var(--eui-base-color-danger-10)}.eui-button--outline{background-color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary{border-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary:active,.eui-button--outline.eui-button--primary:focus,.eui-button--outline.eui-button--primary:hover{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary:active .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--secondary{border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary:active,.eui-button--outline.eui-button--secondary:focus,.eui-button--outline.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--outline.eui-button--info{border-color:var(--eui-base-color-info-100);color:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info:active,.eui-button--outline.eui-button--info:focus,.eui-button--outline.eui-button--info:hover{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--info:active .eui-icon-svg>svg,.eui-button--outline.eui-button--info:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--info:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--success{border-color:var(--eui-base-color-success-100);color:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success:active,.eui-button--outline.eui-button--success:focus,.eui-button--outline.eui-button--success:hover{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--success:active .eui-icon-svg>svg,.eui-button--outline.eui-button--success:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--success:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--warning{border-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning:active,.eui-button--outline.eui-button--warning:focus,.eui-button--outline.eui-button--warning:hover{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--warning:active .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:hover .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--danger{border-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger:active,.eui-button--outline.eui-button--danger:focus,.eui-button--outline.eui-button--danger:hover{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--danger:active .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--accent{border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active,.eui-button--outline.eui-button--accent:focus,.eui-button--outline.eui-button--accent:hover{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:hover .eui-icon-svg>svg{fill:var(--eui-base-color-black)}.eui-button--accent{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--accent:hover{background-color:var(--eui-base-color-accent-110)}.eui-button--rounded{border-radius:50%}.eui-button--rounded:active,.eui-button--rounded:focus{border-radius:50%;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button--responsive{position:relative;width:100%}.eui-button--responsive .eui-button__container{overflow:hidden}.eui-button--responsive .eui-button__container>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-button--responsive .eui-button__container .eui-icon{overflow:visible}.eui-button--block{display:block;width:100%}.eui-button--line-wrap{line-height:var(--eui-base-line-height);padding:var(--eui-base-spacing-s);white-space:normal}.eui-button--expand-toggle{background:var(--eui-base-color-white);border-color:transparent;border-radius:0 0 var(--eui-base-spacing-xs) var(--eui-base-spacing-xs);min-height:var(--eui-base-spacing-m);padding:0 var(--eui-base-spacing-xl);box-shadow:var(--eui-base-shadow-1)}.eui-button--expand-toggle:hover,.eui-button--expand-toggle:focus{box-shadow:var(--eui-base-shadow-3)}.eui-button--expand-toggle .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-l)}.eui-button.disabled,.eui-button:disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
84
+ /** @nocollapse */ EuiButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: { e2eAttr: "e2eAttr", id: "id", euiBasicButton: "euiBasicButton", euiButtonCall: "euiButtonCall", euiBlockButton: "euiBlockButton", isLoading: "isLoading", euiIconButton: "euiIconButton", euiLineWrap: "euiLineWrap" }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<span class=\"eui-button__container\">\n <span *ngIf=\"isLoading\" class=\"eui-button__loading-icon\">\n <eui-icon [isLoading]=\"true\"></eui-icon>\n </span>\n <ng-content></ng-content>\n</span>\n", styles: ["button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:none}.eui-button{font: 400 1rem/1.25rem arial,sans-serif;align-items:center;background-color:var(--eui-base-color-white);background-image:none;border:none;border-radius:var(--eui-base-border-radius);box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:var(--eui-base-font-size);justify-content:center;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));min-width:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));outline:none;padding:calc(var(--eui-base-spacing-s) - 1px) var(--eui-base-spacing-m);text-transform:none;transition:none;vertical-align:middle;white-space:nowrap}.eui-button:active,.eui-button.active,.eui-button:focus{z-index:1;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button .eui-button__container{align-items:center;display:inline-flex;position:relative}.eui-button .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading){margin-right:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading):not(.eui-button--icon-only),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading):not(.eui-button--icon-only){margin-left:0}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading){margin-left:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading):not(.eui-button--icon-only){margin-right:0}.eui-button .eui-button__container .eui-label+.eui-badge{margin-left:var(--eui-base-spacing-s);max-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));font-size:var(--eui-base-font-size-s)}.eui-button .eui-button__container .eui-label+.eui-icon{margin-left:var(--eui-base-spacing-s)}.eui-button--icon-only{padding:calc(var(--eui-base-spacing-xs) - 1px)}.eui-button .eui-button__loading-icon{align-items:center;display:inline-flex}.eui-button .eui-button__loading-icon .eui-icon.eui-icon--loading{margin-right:var(--eui-base-spacing-xl)}.eui-button-fixed{bottom:var(--eui-base-spacing-3xl);position:fixed;right:var(--eui-base-spacing-xl);z-index:calc(var(--eui-base-z-index-btn-floating) + 1)}.eui-button-floating{align-items:center;border-radius:100%;display:inline-flex;height:var(--eui-base-spacing-3xl);overflow:hidden;padding:0;position:relative;transform:translateY(35%);transition:.3s;vertical-align:middle;width:var(--eui-base-spacing-3xl);z-index:1;box-shadow:var(--eui-base-shadow-2)}.eui-button-floating:hover{cursor:pointer;box-shadow:var(--eui-base-shadow-3)}.eui-button-floating .eui-icon{display:inline-block;font-size:var(--eui-base-font-size-3xl);text-align:center;width:inherit}.eui-button-floating:before{border-radius:0}a.eui-button{text-decoration:none}a.eui-button:hover,a.eui-button:focus,a.eui-button:active{text-decoration:none}a.eui-button.eui-button--primary:hover,a.eui-button.eui-button--info:hover,a.eui-button.eui-button--success:hover,a.eui-button.eui-button--danger:hover{color:var(--eui-base-color-white)}a.eui-button.eui-button--accent:hover,a.eui-button.eui-button--secondary:hover,a.eui-button.eui-button--warning:hover{color:var(--eui-base-color-text)}.eui-button__expand-trigger{border-top:1px solid var(--eui-base-color-grey-15);cursor:pointer;display:flex;justify-content:center;width:100%;z-index:1;margin-bottom:var(--eui-base-spacing-l)}.eui-button__expand-trigger:hover .eui-button--expand-toggle{box-shadow:var(--eui-base-shadow-3)}.eui-button__expand-trigger--collapsed{margin-top:var(--eui-base-spacing-s)}.eui-button__expand-trigger .eui-label+.eui-icon,.eui-button__expand-trigger .eui-icon+.eui-label{margin-left:var(--eui-base-spacing-s)}.eui-split-button{align-items:center;display:inline-flex;position:relative}.eui-split-button--disabled,.eui-split-button:disabled{pointer-events:none}.eui-split-button button{border-radius:var(--eui-base-border-radius) 0 0 var(--eui-base-border-radius);cursor:pointer}.eui-split-button .eui-dropdown button{border-radius:0 var(--eui-base-border-radius) var(--eui-base-border-radius) 0;margin-left:-1px}.eui-dropdown-button{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center;position:relative}.eui-dropdown-button--disabled,.eui-dropdown-button:disabled{pointer-events:none}.eui-button--size-xs{height:calc(1.7505 * var(--eui-base-spacing-m));min-height:calc(1.7505 * var(--eui-base-spacing-m));min-width:calc(1.7505 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-xs .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-xs .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-xs.eui-button--icon-only{padding:0}.eui-button--size-s{height:calc(2 * var(--eui-base-spacing-m));min-height:calc(2 * var(--eui-base-spacing-m));min-width:calc(2 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-s .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-s .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-s.eui-button--icon-only{padding:0}.eui-button--size-m .eui-button__container{font-size:var(--eui-base-font-size)}.eui-button--size-m .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-l{height:calc(3.25 * var(--eui-base-spacing-m));min-height:calc(3.25 * var(--eui-base-spacing-m));min-width:calc(3.25 * var(--eui-base-spacing-m))}.eui-button--size-l .eui-button__container{font-size:var(--eui-base-font-size-l)}.eui-button--size-l .eui-button__container .eui-label+.eui-badge{max-height:inherit}.eui-button--size-l .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-2xl)}.eui-button .eui-icon-svg--size-l{height:1.5rem;width:1.5rem}.eui-button .eui-icon-svg--size-m{height:1.25rem;width:1.25rem}.eui-button .eui-icon-svg--size-s{height:1rem;width:1rem}.eui-button{border:1px solid var(--eui-base-color-grey-100);color:var(--eui-base-color-grey-100)}.eui-button:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--primary{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--primary:hover{background-color:var(--eui-base-color-primary-110)}.eui-button--primary--darker{background-color:var(--eui-base-color-primary-120);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary--darker:hover{background-color:var(--eui-base-color-primary-130)}.eui-button--secondary{background-color:var(--eui-base-color-grey-15);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-grey-75);fill:var(--eui-base-grey-75)}.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--secondary--darker{background-color:var(--eui-base-color-grey-25);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary--darker:hover{background-color:var(--eui-base-color-grey-50)}.eui-button--info{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--info:hover{background-color:var(--eui-base-color-info-110)}.eui-button--info--darker{background-color:var(--eui-base-color-info-120);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info--darker:hover{background-color:var(--eui-base-color-info-130)}.eui-button--success{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--success:hover{background-color:var(--eui-base-color-success-110)}.eui-button--success--darker{background-color:var(--eui-base-color-success-120);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success--darker:hover{background-color:var(--eui-base-color-success-130)}.eui-button--warning{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--warning:hover{background-color:var(--eui-base-color-warning-110)}.eui-button--warning--darker{background-color:var(--eui-base-color-warning-120);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning--darker:hover{background-color:var(--eui-base-color-warning-130)}.eui-button--danger{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--danger:hover{background-color:var(--eui-base-color-danger-110)}.eui-button--danger--darker{background-color:var(--eui-base-color-danger-120);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger--darker:hover{background-color:var(--eui-base-color-danger-130)}.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--basic{background-color:transparent;border:1px solid transparent}.eui-button--basic:active,.eui-button--basic:focus,.eui-button--basic:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--basic.eui-button--primary{color:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary:active,.eui-button--basic.eui-button--primary:focus,.eui-button--basic.eui-button--primary:hover{background-color:var(--eui-base-color-primary-10)}.eui-button--basic.eui-button--secondary{color:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary:active,.eui-button--basic.eui-button--secondary:focus,.eui-button--basic.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-10)}.eui-button--basic.eui-button--info{color:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info:active,.eui-button--basic.eui-button--info:focus,.eui-button--basic.eui-button--info:hover{background-color:var(--eui-base-color-info-10)}.eui-button--basic.eui-button--success{color:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success:active,.eui-button--basic.eui-button--success:focus,.eui-button--basic.eui-button--success:hover{background-color:var(--eui-base-color-success-10)}.eui-button--basic.eui-button--warning{color:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning:active,.eui-button--basic.eui-button--warning:focus,.eui-button--basic.eui-button--warning:hover{background-color:var(--eui-base-color-warning-10)}.eui-button--basic.eui-button--danger{color:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger:active,.eui-button--basic.eui-button--danger:focus,.eui-button--basic.eui-button--danger:hover{background-color:var(--eui-base-color-danger-10)}.eui-button--outline{background-color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary{border-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary:active,.eui-button--outline.eui-button--primary:focus,.eui-button--outline.eui-button--primary:hover{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary:active .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--secondary{border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary:active,.eui-button--outline.eui-button--secondary:focus,.eui-button--outline.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--outline.eui-button--info{border-color:var(--eui-base-color-info-100);color:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info:active,.eui-button--outline.eui-button--info:focus,.eui-button--outline.eui-button--info:hover{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--info:active .eui-icon-svg>svg,.eui-button--outline.eui-button--info:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--info:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--success{border-color:var(--eui-base-color-success-100);color:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success:active,.eui-button--outline.eui-button--success:focus,.eui-button--outline.eui-button--success:hover{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--success:active .eui-icon-svg>svg,.eui-button--outline.eui-button--success:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--success:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--warning{border-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning:active,.eui-button--outline.eui-button--warning:focus,.eui-button--outline.eui-button--warning:hover{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--warning:active .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:hover .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--danger{border-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger:active,.eui-button--outline.eui-button--danger:focus,.eui-button--outline.eui-button--danger:hover{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--danger:active .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--accent{border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active,.eui-button--outline.eui-button--accent:focus,.eui-button--outline.eui-button--accent:hover{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:hover .eui-icon-svg>svg{fill:var(--eui-base-color-black)}.eui-button--accent{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--accent:hover{background-color:var(--eui-base-color-accent-110)}.eui-button--rounded{border-radius:50%}.eui-button--rounded:active,.eui-button--rounded:focus{border-radius:50%;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button--responsive{display:grid;position:relative;width:100%}.eui-button--responsive .eui-button__container{overflow:hidden}.eui-button--responsive .eui-button__container>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-button--responsive .eui-button__container .eui-icon{overflow:visible}.eui-button--block{display:block;width:100%}.eui-button--line-wrap{line-height:var(--eui-base-line-height);padding:var(--eui-base-spacing-s);white-space:normal}.eui-button--expand-toggle{background:var(--eui-base-color-white);border-color:transparent;border-radius:0 0 var(--eui-base-spacing-xs) var(--eui-base-spacing-xs);min-height:var(--eui-base-spacing-m);padding:0 var(--eui-base-spacing-xl);box-shadow:var(--eui-base-shadow-1)}.eui-button--expand-toggle:hover,.eui-button--expand-toggle:focus{box-shadow:var(--eui-base-shadow-3)}.eui-button--expand-toggle .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-l)}.eui-button.disabled,.eui-button:disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: EuiButtonComponent, decorators: [{
86
86
  type: Component,
87
- args: [{ selector: 'button[euiButton], a[euiButton]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<span class=\"eui-button__container\">\n <span *ngIf=\"isLoading\" class=\"eui-button__loading-icon\">\n <eui-icon [isLoading]=\"true\"></eui-icon>\n </span>\n <ng-content></ng-content>\n</span>\n", styles: ["button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:none}.eui-button{font: 400 1rem/1.25rem arial,sans-serif;align-items:center;background-color:var(--eui-base-color-white);background-image:none;border:none;border-radius:var(--eui-base-border-radius);box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:var(--eui-base-font-size);justify-content:center;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));min-width:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));outline:none;padding:calc(var(--eui-base-spacing-s) - 1px) var(--eui-base-spacing-m);text-transform:none;transition:none;vertical-align:middle;white-space:nowrap}.eui-button:active,.eui-button.active,.eui-button:focus{z-index:1;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button .eui-button__container{align-items:center;display:inline-flex;position:relative}.eui-button .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading){margin-right:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading):not(.eui-button--icon-only),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading):not(.eui-button--icon-only){margin-left:0}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading){margin-left:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading):not(.eui-button--icon-only){margin-right:0}.eui-button .eui-button__container .eui-label+.eui-badge{margin-left:var(--eui-base-spacing-s);max-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));font-size:var(--eui-base-font-size-s)}.eui-button .eui-button__container .eui-label+.eui-icon{margin-left:var(--eui-base-spacing-s)}.eui-button--icon-only{padding:calc(var(--eui-base-spacing-xs) - 1px)}.eui-button .eui-button__loading-icon{align-items:center;display:inline-flex}.eui-button .eui-button__loading-icon .eui-icon.eui-icon--loading{margin-right:var(--eui-base-spacing-xl)}.eui-button-fixed{bottom:var(--eui-base-spacing-3xl);position:fixed;right:var(--eui-base-spacing-xl);z-index:calc(var(--eui-base-z-index-btn-floating) + 1)}.eui-button-floating{align-items:center;border-radius:100%;display:inline-flex;height:var(--eui-base-spacing-3xl);overflow:hidden;padding:0;position:relative;transform:translateY(35%);transition:.3s;vertical-align:middle;width:var(--eui-base-spacing-3xl);z-index:1;box-shadow:var(--eui-base-shadow-2)}.eui-button-floating:hover{cursor:pointer;box-shadow:var(--eui-base-shadow-3)}.eui-button-floating .eui-icon{display:inline-block;font-size:var(--eui-base-font-size-3xl);text-align:center;width:inherit}.eui-button-floating:before{border-radius:0}a.eui-button{text-decoration:none}a.eui-button:hover,a.eui-button:focus,a.eui-button:active{text-decoration:none}a.eui-button.eui-button--primary:hover,a.eui-button.eui-button--info:hover,a.eui-button.eui-button--success:hover,a.eui-button.eui-button--danger:hover{color:var(--eui-base-color-white)}a.eui-button.eui-button--accent:hover,a.eui-button.eui-button--secondary:hover,a.eui-button.eui-button--warning:hover{color:var(--eui-base-color-text)}.eui-button__expand-trigger{border-top:1px solid var(--eui-base-color-grey-15);cursor:pointer;display:flex;justify-content:center;width:100%;z-index:1;margin-bottom:var(--eui-base-spacing-l)}.eui-button__expand-trigger:hover .eui-button--expand-toggle{box-shadow:var(--eui-base-shadow-3)}.eui-button__expand-trigger--collapsed{margin-top:var(--eui-base-spacing-s)}.eui-button__expand-trigger .eui-label+.eui-icon,.eui-button__expand-trigger .eui-icon+.eui-label{margin-left:var(--eui-base-spacing-s)}.eui-split-button{align-items:center;display:inline-flex;position:relative}.eui-split-button--disabled,.eui-split-button:disabled{pointer-events:none}.eui-split-button button{border-radius:var(--eui-base-border-radius) 0 0 var(--eui-base-border-radius);cursor:pointer}.eui-split-button .eui-dropdown button{border-radius:0 var(--eui-base-border-radius) var(--eui-base-border-radius) 0;margin-left:-1px}.eui-dropdown-button{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center;position:relative}.eui-dropdown-button--disabled,.eui-dropdown-button:disabled{pointer-events:none}.eui-button--size-xs{height:calc(1.7505 * var(--eui-base-spacing-m));min-height:calc(1.7505 * var(--eui-base-spacing-m));min-width:calc(1.7505 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-xs .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-xs .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-xs.eui-button--icon-only{padding:0}.eui-button--size-s{height:calc(2 * var(--eui-base-spacing-m));min-height:calc(2 * var(--eui-base-spacing-m));min-width:calc(2 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-s .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-s .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-s.eui-button--icon-only{padding:0}.eui-button--size-m .eui-button__container{font-size:var(--eui-base-font-size)}.eui-button--size-m .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-l{height:calc(3.25 * var(--eui-base-spacing-m));min-height:calc(3.25 * var(--eui-base-spacing-m));min-width:calc(3.25 * var(--eui-base-spacing-m))}.eui-button--size-l .eui-button__container{font-size:var(--eui-base-font-size-l)}.eui-button--size-l .eui-button__container .eui-label+.eui-badge{max-height:inherit}.eui-button--size-l .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-2xl)}.eui-button .eui-icon-svg--size-l{height:1.5rem;width:1.5rem}.eui-button .eui-icon-svg--size-m{height:1.25rem;width:1.25rem}.eui-button .eui-icon-svg--size-s{height:1rem;width:1rem}.eui-button{border:1px solid var(--eui-base-color-grey-100);color:var(--eui-base-color-grey-100)}.eui-button:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--primary{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--primary:hover{background-color:var(--eui-base-color-primary-110)}.eui-button--primary--darker{background-color:var(--eui-base-color-primary-120);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary--darker:hover{background-color:var(--eui-base-color-primary-130)}.eui-button--secondary{background-color:var(--eui-base-color-grey-15);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-grey-75);fill:var(--eui-base-grey-75)}.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--secondary--darker{background-color:var(--eui-base-color-grey-25);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary--darker:hover{background-color:var(--eui-base-color-grey-50)}.eui-button--info{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--info:hover{background-color:var(--eui-base-color-info-110)}.eui-button--info--darker{background-color:var(--eui-base-color-info-120);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info--darker:hover{background-color:var(--eui-base-color-info-130)}.eui-button--success{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--success:hover{background-color:var(--eui-base-color-success-110)}.eui-button--success--darker{background-color:var(--eui-base-color-success-120);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success--darker:hover{background-color:var(--eui-base-color-success-130)}.eui-button--warning{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--warning:hover{background-color:var(--eui-base-color-warning-110)}.eui-button--warning--darker{background-color:var(--eui-base-color-warning-120);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning--darker:hover{background-color:var(--eui-base-color-warning-130)}.eui-button--danger{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--danger:hover{background-color:var(--eui-base-color-danger-110)}.eui-button--danger--darker{background-color:var(--eui-base-color-danger-120);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger--darker:hover{background-color:var(--eui-base-color-danger-130)}.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--basic{background-color:transparent;border:1px solid transparent}.eui-button--basic:active,.eui-button--basic:focus,.eui-button--basic:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--basic.eui-button--primary{color:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary:active,.eui-button--basic.eui-button--primary:focus,.eui-button--basic.eui-button--primary:hover{background-color:var(--eui-base-color-primary-10)}.eui-button--basic.eui-button--secondary{color:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary:active,.eui-button--basic.eui-button--secondary:focus,.eui-button--basic.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-10)}.eui-button--basic.eui-button--info{color:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info:active,.eui-button--basic.eui-button--info:focus,.eui-button--basic.eui-button--info:hover{background-color:var(--eui-base-color-info-10)}.eui-button--basic.eui-button--success{color:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success:active,.eui-button--basic.eui-button--success:focus,.eui-button--basic.eui-button--success:hover{background-color:var(--eui-base-color-success-10)}.eui-button--basic.eui-button--warning{color:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning:active,.eui-button--basic.eui-button--warning:focus,.eui-button--basic.eui-button--warning:hover{background-color:var(--eui-base-color-warning-10)}.eui-button--basic.eui-button--danger{color:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger:active,.eui-button--basic.eui-button--danger:focus,.eui-button--basic.eui-button--danger:hover{background-color:var(--eui-base-color-danger-10)}.eui-button--outline{background-color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary{border-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary:active,.eui-button--outline.eui-button--primary:focus,.eui-button--outline.eui-button--primary:hover{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary:active .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--secondary{border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary:active,.eui-button--outline.eui-button--secondary:focus,.eui-button--outline.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--outline.eui-button--info{border-color:var(--eui-base-color-info-100);color:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info:active,.eui-button--outline.eui-button--info:focus,.eui-button--outline.eui-button--info:hover{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--info:active .eui-icon-svg>svg,.eui-button--outline.eui-button--info:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--info:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--success{border-color:var(--eui-base-color-success-100);color:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success:active,.eui-button--outline.eui-button--success:focus,.eui-button--outline.eui-button--success:hover{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--success:active .eui-icon-svg>svg,.eui-button--outline.eui-button--success:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--success:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--warning{border-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning:active,.eui-button--outline.eui-button--warning:focus,.eui-button--outline.eui-button--warning:hover{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--warning:active .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:hover .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--danger{border-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger:active,.eui-button--outline.eui-button--danger:focus,.eui-button--outline.eui-button--danger:hover{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--danger:active .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--accent{border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active,.eui-button--outline.eui-button--accent:focus,.eui-button--outline.eui-button--accent:hover{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:hover .eui-icon-svg>svg{fill:var(--eui-base-color-black)}.eui-button--accent{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--accent:hover{background-color:var(--eui-base-color-accent-110)}.eui-button--rounded{border-radius:50%}.eui-button--rounded:active,.eui-button--rounded:focus{border-radius:50%;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button--responsive{position:relative;width:100%}.eui-button--responsive .eui-button__container{overflow:hidden}.eui-button--responsive .eui-button__container>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-button--responsive .eui-button__container .eui-icon{overflow:visible}.eui-button--block{display:block;width:100%}.eui-button--line-wrap{line-height:var(--eui-base-line-height);padding:var(--eui-base-spacing-s);white-space:normal}.eui-button--expand-toggle{background:var(--eui-base-color-white);border-color:transparent;border-radius:0 0 var(--eui-base-spacing-xs) var(--eui-base-spacing-xs);min-height:var(--eui-base-spacing-m);padding:0 var(--eui-base-spacing-xl);box-shadow:var(--eui-base-shadow-1)}.eui-button--expand-toggle:hover,.eui-button--expand-toggle:focus{box-shadow:var(--eui-base-shadow-3)}.eui-button--expand-toggle .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-l)}.eui-button.disabled,.eui-button:disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity)}\n"] }]
87
+ args: [{ selector: 'button[euiButton], a[euiButton]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<span class=\"eui-button__container\">\n <span *ngIf=\"isLoading\" class=\"eui-button__loading-icon\">\n <eui-icon [isLoading]=\"true\"></eui-icon>\n </span>\n <ng-content></ng-content>\n</span>\n", styles: ["button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:none}.eui-button{font: 400 1rem/1.25rem arial,sans-serif;align-items:center;background-color:var(--eui-base-color-white);background-image:none;border:none;border-radius:var(--eui-base-border-radius);box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:var(--eui-base-font-size);justify-content:center;min-height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));min-width:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs));outline:none;padding:calc(var(--eui-base-spacing-s) - 1px) var(--eui-base-spacing-m);text-transform:none;transition:none;vertical-align:middle;white-space:nowrap}.eui-button:active,.eui-button.active,.eui-button:focus{z-index:1;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button .eui-button__container{align-items:center;display:inline-flex;position:relative}.eui-button .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading){margin-right:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:first-child:not(.eui-icon--loading):not(.eui-button--icon-only),.eui-button .eui-button__container>.eui-icon:not(.eui-icon--loading):not(.eui-button--icon-only){margin-left:0}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading){margin-left:var(--eui-base-spacing-xs)}.eui-button .eui-button__container .eui-icon:last-child:not(.eui-icon--loading):not(.eui-button--icon-only){margin-right:0}.eui-button .eui-button__container .eui-label+.eui-badge{margin-left:var(--eui-base-spacing-s);max-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));font-size:var(--eui-base-font-size-s)}.eui-button .eui-button__container .eui-label+.eui-icon{margin-left:var(--eui-base-spacing-s)}.eui-button--icon-only{padding:calc(var(--eui-base-spacing-xs) - 1px)}.eui-button .eui-button__loading-icon{align-items:center;display:inline-flex}.eui-button .eui-button__loading-icon .eui-icon.eui-icon--loading{margin-right:var(--eui-base-spacing-xl)}.eui-button-fixed{bottom:var(--eui-base-spacing-3xl);position:fixed;right:var(--eui-base-spacing-xl);z-index:calc(var(--eui-base-z-index-btn-floating) + 1)}.eui-button-floating{align-items:center;border-radius:100%;display:inline-flex;height:var(--eui-base-spacing-3xl);overflow:hidden;padding:0;position:relative;transform:translateY(35%);transition:.3s;vertical-align:middle;width:var(--eui-base-spacing-3xl);z-index:1;box-shadow:var(--eui-base-shadow-2)}.eui-button-floating:hover{cursor:pointer;box-shadow:var(--eui-base-shadow-3)}.eui-button-floating .eui-icon{display:inline-block;font-size:var(--eui-base-font-size-3xl);text-align:center;width:inherit}.eui-button-floating:before{border-radius:0}a.eui-button{text-decoration:none}a.eui-button:hover,a.eui-button:focus,a.eui-button:active{text-decoration:none}a.eui-button.eui-button--primary:hover,a.eui-button.eui-button--info:hover,a.eui-button.eui-button--success:hover,a.eui-button.eui-button--danger:hover{color:var(--eui-base-color-white)}a.eui-button.eui-button--accent:hover,a.eui-button.eui-button--secondary:hover,a.eui-button.eui-button--warning:hover{color:var(--eui-base-color-text)}.eui-button__expand-trigger{border-top:1px solid var(--eui-base-color-grey-15);cursor:pointer;display:flex;justify-content:center;width:100%;z-index:1;margin-bottom:var(--eui-base-spacing-l)}.eui-button__expand-trigger:hover .eui-button--expand-toggle{box-shadow:var(--eui-base-shadow-3)}.eui-button__expand-trigger--collapsed{margin-top:var(--eui-base-spacing-s)}.eui-button__expand-trigger .eui-label+.eui-icon,.eui-button__expand-trigger .eui-icon+.eui-label{margin-left:var(--eui-base-spacing-s)}.eui-split-button{align-items:center;display:inline-flex;position:relative}.eui-split-button--disabled,.eui-split-button:disabled{pointer-events:none}.eui-split-button button{border-radius:var(--eui-base-border-radius) 0 0 var(--eui-base-border-radius);cursor:pointer}.eui-split-button .eui-dropdown button{border-radius:0 var(--eui-base-border-radius) var(--eui-base-border-radius) 0;margin-left:-1px}.eui-dropdown-button{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center;position:relative}.eui-dropdown-button--disabled,.eui-dropdown-button:disabled{pointer-events:none}.eui-button--size-xs{height:calc(1.7505 * var(--eui-base-spacing-m));min-height:calc(1.7505 * var(--eui-base-spacing-m));min-width:calc(1.7505 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-xs .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-xs .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-xs.eui-button--icon-only{padding:0}.eui-button--size-s{height:calc(2 * var(--eui-base-spacing-m));min-height:calc(2 * var(--eui-base-spacing-m));min-width:calc(2 * var(--eui-base-spacing-m));padding:0 var(--eui-base-spacing-s)}.eui-button--size-s .eui-button__container{font-size:var(--eui-base-font-size-s)}.eui-button--size-s .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-s.eui-button--icon-only{padding:0}.eui-button--size-m .eui-button__container{font-size:var(--eui-base-font-size)}.eui-button--size-m .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-xl)}.eui-button--size-l{height:calc(3.25 * var(--eui-base-spacing-m));min-height:calc(3.25 * var(--eui-base-spacing-m));min-width:calc(3.25 * var(--eui-base-spacing-m))}.eui-button--size-l .eui-button__container{font-size:var(--eui-base-font-size-l)}.eui-button--size-l .eui-button__container .eui-label+.eui-badge{max-height:inherit}.eui-button--size-l .eui-button__container .eui-icon{font-size:var(--eui-base-font-size-2xl)}.eui-button .eui-icon-svg--size-l{height:1.5rem;width:1.5rem}.eui-button .eui-icon-svg--size-m{height:1.25rem;width:1.25rem}.eui-button .eui-icon-svg--size-s{height:1rem;width:1rem}.eui-button{border:1px solid var(--eui-base-color-grey-100);color:var(--eui-base-color-grey-100)}.eui-button:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--primary{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--primary:hover{background-color:var(--eui-base-color-primary-110)}.eui-button--primary--darker{background-color:var(--eui-base-color-primary-120);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--primary--darker:hover{background-color:var(--eui-base-color-primary-130)}.eui-button--secondary{background-color:var(--eui-base-color-grey-15);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-grey-75);fill:var(--eui-base-grey-75)}.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--secondary--darker{background-color:var(--eui-base-color-grey-25);border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-100)}.eui-button--secondary--darker:hover{background-color:var(--eui-base-color-grey-50)}.eui-button--info{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--info:hover{background-color:var(--eui-base-color-info-110)}.eui-button--info--darker{background-color:var(--eui-base-color-info-120);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--info--darker:hover{background-color:var(--eui-base-color-info-130)}.eui-button--success{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--success:hover{background-color:var(--eui-base-color-success-110)}.eui-button--success--darker{background-color:var(--eui-base-color-success-120);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--success--darker:hover{background-color:var(--eui-base-color-success-130)}.eui-button--warning{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--warning:hover{background-color:var(--eui-base-color-warning-110)}.eui-button--warning--darker{background-color:var(--eui-base-color-warning-120);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--warning--darker:hover{background-color:var(--eui-base-color-warning-130)}.eui-button--danger{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--danger:hover{background-color:var(--eui-base-color-danger-110)}.eui-button--danger--darker{background-color:var(--eui-base-color-danger-120);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--danger--darker:hover{background-color:var(--eui-base-color-danger-130)}.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--basic{background-color:transparent;border:1px solid transparent}.eui-button--basic:active,.eui-button--basic:focus,.eui-button--basic:hover{background-color:var(--eui-base-color-grey-5)}.eui-button--basic.eui-button--primary{color:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--basic.eui-button--primary:active,.eui-button--basic.eui-button--primary:focus,.eui-button--basic.eui-button--primary:hover{background-color:var(--eui-base-color-primary-10)}.eui-button--basic.eui-button--secondary{color:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--basic.eui-button--secondary:active,.eui-button--basic.eui-button--secondary:focus,.eui-button--basic.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-10)}.eui-button--basic.eui-button--info{color:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--basic.eui-button--info:active,.eui-button--basic.eui-button--info:focus,.eui-button--basic.eui-button--info:hover{background-color:var(--eui-base-color-info-10)}.eui-button--basic.eui-button--success{color:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--basic.eui-button--success:active,.eui-button--basic.eui-button--success:focus,.eui-button--basic.eui-button--success:hover{background-color:var(--eui-base-color-success-10)}.eui-button--basic.eui-button--warning{color:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--basic.eui-button--warning:active,.eui-button--basic.eui-button--warning:focus,.eui-button--basic.eui-button--warning:hover{background-color:var(--eui-base-color-warning-10)}.eui-button--basic.eui-button--danger{color:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--basic.eui-button--danger:active,.eui-button--basic.eui-button--danger:focus,.eui-button--basic.eui-button--danger:hover{background-color:var(--eui-base-color-danger-10)}.eui-button--outline{background-color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary{border-color:var(--eui-base-color-primary-100);color:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary .eui-icon-svg>svg{color:var(--eui-base-color-primary-100);fill:var(--eui-base-color-primary-100)}.eui-button--outline.eui-button--primary:active,.eui-button--outline.eui-button--primary:focus,.eui-button--outline.eui-button--primary:hover{background-color:var(--eui-base-color-primary-100);border-color:var(--eui-base-color-primary-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--primary:active .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--primary:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--secondary{border-color:var(--eui-base-color-grey-50);color:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary .eui-icon-svg>svg{color:var(--eui-base-color-grey-75);fill:var(--eui-base-color-grey-75)}.eui-button--outline.eui-button--secondary:active,.eui-button--outline.eui-button--secondary:focus,.eui-button--outline.eui-button--secondary:hover{background-color:var(--eui-base-color-grey-25)}.eui-button--outline.eui-button--info{border-color:var(--eui-base-color-info-100);color:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info .eui-icon-svg>svg{color:var(--eui-base-color-info-100);fill:var(--eui-base-color-info-100)}.eui-button--outline.eui-button--info:active,.eui-button--outline.eui-button--info:focus,.eui-button--outline.eui-button--info:hover{background-color:var(--eui-base-color-info-100);border-color:var(--eui-base-color-info-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--info:active .eui-icon-svg>svg,.eui-button--outline.eui-button--info:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--info:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--success{border-color:var(--eui-base-color-success-100);color:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success .eui-icon-svg>svg{color:var(--eui-base-color-success-100);fill:var(--eui-base-color-success-100)}.eui-button--outline.eui-button--success:active,.eui-button--outline.eui-button--success:focus,.eui-button--outline.eui-button--success:hover{background-color:var(--eui-base-color-success-100);border-color:var(--eui-base-color-success-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--success:active .eui-icon-svg>svg,.eui-button--outline.eui-button--success:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--success:hover .eui-icon-svg>svg{fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--warning{border-color:var(--eui-base-color-warning-100);color:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning .eui-icon-svg>svg{color:var(--eui-base-color-warning-140);fill:var(--eui-base-color-warning-140)}.eui-button--outline.eui-button--warning:active,.eui-button--outline.eui-button--warning:focus,.eui-button--outline.eui-button--warning:hover{background-color:var(--eui-base-color-warning-100);border-color:var(--eui-base-color-warning-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--warning:active .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--warning:hover .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--danger{border-color:var(--eui-base-color-danger-100);color:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger .eui-icon-svg>svg{color:var(--eui-base-color-danger-100);fill:var(--eui-base-color-danger-100)}.eui-button--outline.eui-button--danger:active,.eui-button--outline.eui-button--danger:focus,.eui-button--outline.eui-button--danger:hover{background-color:var(--eui-base-color-danger-100);border-color:var(--eui-base-color-danger-120);color:var(--eui-base-color-white)}.eui-button--outline.eui-button--danger:active .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--danger:hover .eui-icon-svg>svg{color:var(--eui-base-color-white);fill:var(--eui-base-color-white)}.eui-button--outline.eui-button--accent{border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent .eui-icon-svg>svg{color:var(--eui-base-color-black);fill:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active,.eui-button--outline.eui-button--accent:focus,.eui-button--outline.eui-button--accent:hover{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--outline.eui-button--accent:active .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:focus .eui-icon-svg>svg,.eui-button--outline.eui-button--accent:hover .eui-icon-svg>svg{fill:var(--eui-base-color-black)}.eui-button--accent{background-color:var(--eui-base-color-accent-100);border-color:var(--eui-base-color-accent-120);color:var(--eui-base-color-black)}.eui-button--accent:hover{background-color:var(--eui-base-color-accent-110)}.eui-button--rounded{border-radius:50%}.eui-button--rounded:active,.eui-button--rounded:focus{border-radius:50%;border-color:var(--eui-base-color-accessible-focus)!important;box-shadow:inset 0 0 0 1px var(--eui-base-color-accessible-focus),inset 0 0 0 2px var(--eui-base-color-grey-5);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.eui-button--responsive{display:grid;position:relative;width:100%}.eui-button--responsive .eui-button__container{overflow:hidden}.eui-button--responsive .eui-button__container>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-button--responsive .eui-button__container .eui-icon{overflow:visible}.eui-button--block{display:block;width:100%}.eui-button--line-wrap{line-height:var(--eui-base-line-height);padding:var(--eui-base-spacing-s);white-space:normal}.eui-button--expand-toggle{background:var(--eui-base-color-white);border-color:transparent;border-radius:0 0 var(--eui-base-spacing-xs) var(--eui-base-spacing-xs);min-height:var(--eui-base-spacing-m);padding:0 var(--eui-base-spacing-xl);box-shadow:var(--eui-base-shadow-1)}.eui-button--expand-toggle:hover,.eui-button--expand-toggle:focus{box-shadow:var(--eui-base-shadow-3)}.eui-button--expand-toggle .eui-icon{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-l)}.eui-button.disabled,.eui-button:disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity)}\n"] }]
88
88
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { cssClasses: [{
89
89
  type: HostBinding,
90
90
  args: ['class']
@@ -188,9 +188,9 @@ export class EuiDropdownComponent extends BaseDirective {
188
188
  this.activeDescendantKeyManager.activeItem.subDropdown.overlayRef.detachBackdrop();
189
189
  this.keydownListenerSubscription.unsubscribe();
190
190
  }
191
- if (this.isLabelUpdatedFromSelectedItem) {
192
- this.triggerRef.nativeElement.querySelector('button').innerText =
193
- euiDropdownItem.elementRef.nativeElement.innerText;
191
+ const labelElement = this.triggerRef.nativeElement.querySelector('button .eui-label');
192
+ if (this.isLabelUpdatedFromSelectedItem && labelElement) {
193
+ labelElement.innerText = euiDropdownItem.elementRef.nativeElement.innerText;
194
194
  }
195
195
  });
196
196
  }
@@ -368,4 +368,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
368
368
  type: HostBinding,
369
369
  args: ['class']
370
370
  }] } });
371
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kcm9wZG93bi9ldWktZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRyb3Bkb3duL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFLTCxTQUFTLEVBRVQsZUFBZSxHQUdsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVILHNCQUFzQixHQU16QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQWlCLE1BQU0sbUJBQW1CLENBQUM7QUFFOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFVdkYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFtRG5ELFlBQ1ksT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxlQUFtQztRQUUzQyxLQUFLLEVBQUUsQ0FBQztRQUxBLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENB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QW9CLCthQVFaLHdCQUF3QixrU0NuRDdDLHVtQkFpQkEsK3NERHNCZ0IsQ0FBQyxTQUFTLENBQUM7MkZBSWQsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNJLGNBQWMsY0FHWixDQUFDLFNBQVMsQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzZMQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFOEIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFDVCxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQzJDLGdCQUFnQjtzQkFBakYsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBTzVELHNCQUFzQjtzQkFEekIsS0FBSztnQkFJTyxxQkFBcUI7c0JBQWpDLEtBQUs7Z0JBSUYsOEJBQThCO3NCQURqQyxLQUFLO2dCQUtGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBc0JGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENka1Njcm9sbGFibGUsXG4gICAgQ29ubmVjdGlvblBvc2l0aW9uUGFpcixcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luLFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheVJlZixcbiAgICBTY3JvbGxEaXNwYXRjaGVyLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciwgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuXG5pbXBvcnQgeyBvcGVuQ2xvc2UgfSBmcm9tICcuL2FuaW1hdGlvbnMvb3Blbi1jbG9zZSc7XG5pbXBvcnQgeyBFdWlEcm9wZG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLWl0ZW0vZXVpLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEV1aURyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vZXVpLWRyb3Bkb3duLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktZHJvcGRvd24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtvcGVuQ2xvc2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aURyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1kcm9wZG93bic7XG4gICAgQElucHV0KCkgdGFiSW5kZXggPSAtMTtcbiAgICBASW5wdXQoKSB3aWR0aCA9ICdhdXRvJztcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCcgPSAnYm90dG9tJztcblxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUG9ydGFsQ29udGVudCcpIHRlbXBsYXRlUG9ydGFsQ29udGVudDogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gICAgQFZpZXdDaGlsZCgndHJpZ2dlclJlZicpIHRyaWdnZXJSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGV1aURyb3Bkb3duSXRlbXM6IFF1ZXJ5TGlzdDxIaWdobGlnaHRhYmxlICYgRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50PjtcblxuICAgIHB1YmxpYyB0cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IHRydWU7XG4gICAgcHVibGljIHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudDtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNEcm9wRG93blJpZ2h0QWxpZ25lZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzRHJvcERvd25SaWdodEFsaWduZWQ7IH1cbiAgICBzZXQgaXNEcm9wRG93blJpZ2h0QWxpZ25lZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzRHJvcERvd25SaWdodEFsaWduZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNEcm9wRG93blJpZ2h0QWxpZ25lZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCBpc0Nsb3NlZE9uQ2xpY2tJbnNpZGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Nsb3NlZE9uQ2xpY2tJbnNpZGU7IH1cbiAgICBzZXQgaXNDbG9zZWRPbkNsaWNrSW5zaWRlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNDbG9zZWRPbkNsaWNrSW5zaWRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzQ2xvc2VkT25DbGlja0luc2lkZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtOyB9XG4gICAgc2V0IGlzTGFiZWxVcGRhdGVkRnJvbVNlbGVjdGVkSXRlbSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzTGFiZWxVcGRhdGVkRnJvbVNlbGVjdGVkSXRlbSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7fVxuICAgIHByaXZhdGUgX2lzTGFiZWxVcGRhdGVkRnJvbVNlbGVjdGVkSXRlbSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRXhwYW5kT25Ib3ZlcigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzRXhwYW5kT25Ib3ZlcjsgfVxuICAgIHNldCBpc0V4cGFuZE9uSG92ZXIodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc0V4cGFuZE9uSG92ZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO31cbiAgICBwcml2YXRlIF9pc0V4cGFuZE9uSG92ZXIgPSBmYWxzZTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG5cbiAgICBwcml2YXRlIG9yaWdpblg6ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInID0gJ3N0YXJ0JztcbiAgICBwcml2YXRlIG9yaWdpblk6ICd0b3AnIHwgJ2JvdHRvbScgfCAnY2VudGVyJyA9ICdib3R0b20nO1xuICAgIHByaXZhdGUgb3ZlcmxheVg6ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInID0gJ3N0YXJ0JztcbiAgICBwcml2YXRlIG92ZXJsYXlZOiAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcicgPSAndG9wJztcbiAgICBwcml2YXRlIHRlbXBsYXRlUG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDxhbnk+O1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGlzT3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBrZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAgIHByaXZhdGUgYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJDaGFuZ2VTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBhY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8RXVpRHJvcGRvd25JdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIG9yaWdpbjogSFRNTEVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS1kcm9wZG93bicpXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICBwcml2YXRlIGRyb3Bkb3duU2VydmljZTogRXVpRHJvcGRvd25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVBvcnRhbENvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAgICAgICBldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBldWktZHJvcGRvd24gaXMgb3Blbi5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktZHJvcGRvd24gI2Ryb3Bkb3duPlxuICAgICAqICAgICAgPG15LWNvbXBvbmVudCAqbmdJZj1cImRyb3Bkb3duLmlzT3BlblwiPjwvbXktY29tcG9uZW50PlxuICAgICAqIDwvZXVpLWRyb3Bkb3duPlxuICAgICAqIGBgYFxuICAgICAqIEByZXR1cm5zIEEgYm9vbGVhbiB3aXRoIHZhbHVlIGB0cnVlYCB3aGVuIG9wZW4sIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbiQudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVHJpZ2dlckNsaWNrZWQoZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJy5kaXNhYmxlZCcpICYmXG4gICAgICAgICAgICAhKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKCc6ZGlzYWJsZWQnKSAmJlxuICAgICAgICAgICAgIXRoaXMuaXNPcGVuXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Nsb3NlZE9uQ2xpY2tJbnNpZGUgJiYgIXRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW4gYSBkcm9wZG93blxuICAgICAqXG4gICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gb2YgdGhlIGRyb3Bkb3duIHBvc2l0aW9uXG4gICAgICovXG4gICAgcHVibGljIG9wZW5Ecm9wZG93bihvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1RyaWdnZXJGb2N1c2FibGVPbkNsb3NlKG9yaWdpbikpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luLmNsb3Nlc3QoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknKSB8fCAodGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbi5jbG9zZXN0KCdhJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMudHJhcEZvY3VzQXV0b0NhcHR1cmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uID0gdGhpcy5zY3JvbGxEaXNwYXRjaGVyXG4gICAgICAgICAgICAgICAgLmFuY2VzdG9yU2Nyb2xsZWQodGhpcy5vcmlnaW4pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDZGtTY3JvbGxhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUodGhpcy5vcmlnaW4sIGV2ZW50ID8gZXZlbnQuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQgOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oeyBzY3JvbGxUaHJvdHRsZTogMTAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdldWktZHJvcGRvd25fX2JhY2tkcm9wJyxcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzOiAnZXVpLWRyb3Bkb3duX19wYW5lbCcsXG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgICAgICBzY3JvbGxTdHJhdGVneSxcbiAgICAgICAgICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMudGVtcGxhdGVQb3J0YWwpO1xuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgICAub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgICAuYmFja2Ryb3BDbGljaygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5rZXlkb3duRXZlbnRzKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoa2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5rZXk/LnRvTG93ZXJDYXNlKCkgPT09ICdlc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zLnRvQXJyYXkoKS5mb3JFYWNoKChldWlEcm9wZG93bkl0ZW0sIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNFeHBhbmRPbkhvdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbnNbaV0gPSBmcm9tRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW91c2VlbnRlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzID0gKHN1YkRyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bj8ub3ZlcmxheVJlZj8uX291dHNpZGVQb2ludGVyRXZlbnRzLm5leHQoZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkRyb3Bkb3duPy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bi5ldWlEcm9wZG93bkl0ZW1zLnRvQXJyYXkoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzKHMuc3ViRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtSGF2aW5nU3ViRHJvcGRvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyhldWlEcm9wZG93bkl0ZW1IYXZpbmdTdWJEcm9wZG93bi5zdWJEcm9wZG93bik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbnNbaV0gPSBmcm9tRXZlbnQoZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24nKS5pbm5lclRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLmV1aURyb3Bkb3duSXRlbXMpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoSG9tZUFuZEVuZCh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVLZXlib2FyZEhhbmRsZXJTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuaXNEcm9wZG93bk9wZW4uZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VEcm9wZG93bihyZWN1cnNpdmVseSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbi5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWN1cnNpdmVseSAmJiB0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5pc0Ryb3Bkb3duT3Blbi5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlS2V5Ym9hcmRIYW5kbGVyU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRPbkhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5tb3VzZWVudGVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5jbGljaygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNyZWF0ZUtleWJvYXJkSGFuZGxlclN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRPbkhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0ubW91c2VlbnRlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmVudERyb3Bkb3duKHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duID0gcGFyZW50RHJvcGRvd247XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAncmlnaHQnO1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNEcm9wZG93bkl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldWlEcm9wZG93bkl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm9yaWdpbiBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgICAgICAgICAgICAgIHsgb3JpZ2luWDogdGhpcy5vcmlnaW5YLCBvcmlnaW5ZOiB0aGlzLm9yaWdpblkgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBvdmVybGF5WDogdGhpcy5vdmVybGF5WCwgb3ZlcmxheVk6IHRoaXMub3ZlcmxheVkgfVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWaXNpYmxlKG9yaWdpbjogSFRNTEVsZW1lbnQsIHNjcm9sbGFibGVQYXJlbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG9yaWdpblkgPSAob3JpZ2luIGFzIGFueSkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudFkgPSBNYXRoLmFicyhzY3JvbGxhYmxlUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkpO1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0ID0gc2Nyb2xsYWJsZVBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSA1MDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKG9yaWdpblkgPiAwICYmIG9yaWdpblkgPCBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0KSB8fFxuICAgICAgICAgICAgKG9yaWdpblkgLSBzY3JvbGxhYmxlUGFyZW50WSA+IDAgJiYgb3JpZ2luWSA8IHNjcm9sbGFibGVQYXJlbnRZICsgc2Nyb2xsYWJsZVBhcmVudEhlaWdodClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVHJpZ2dlckZvY3VzYWJsZU9uQ2xvc2Uob3JpZ2luOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gb3JpZ2luLm1hdGNoZXMoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknKSB8fCBvcmlnaW4ubWF0Y2hlcygnYScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5ZID0gJ3RvcCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ2JvdHRvbSc7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJvcERvd25SaWdodEFsaWduZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblggPSAnZW5kJztcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ2VuZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdlbmQnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdzdGFydCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ2NlbnRlcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblkgPSAnYm90dG9tJztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAndG9wJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcm9wRG93blJpZ2h0QWxpZ25lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdlbmQnO1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVggPSAnZW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblggPSAnc3RhcnQnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdlbmQnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WSA9ICdjZW50ZXInO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjdHJpZ2dlclJlZiBjbGFzcz1cImV1aS1kcm9wZG93bl9fdHJpZ2dlci1jb250YWluZXJcIiAoY2xpY2spPVwib25UcmlnZ2VyQ2xpY2tlZCgkZXZlbnQpXCIgKGtleWRvd24uZW50ZXIpPVwib25UcmlnZ2VyQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVQb3J0YWxDb250ZW50PlxuICAgIDxkaXZcbiAgICAgICAgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIlxuICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgIFtAb3BlbkNsb3NlXT1cImlzT3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgICAgY2RrVHJhcEZvY3VzXG4gICAgICAgIGNsYXNzPVwiZXVpLWRyb3Bkb3duX19wYW5lbC1jb250YWluZXJcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1kcm9wZG93bi1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
371
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kcm9wZG93bi9ldWktZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRyb3Bkb3duL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFLTCxTQUFTLEVBRVQsZUFBZSxHQUdsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVILHNCQUFzQixHQU16QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQWlCLE1BQU0sbUJBQW1CLENBQUM7QUFFOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFVdkYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFtRG5ELFlBQ1ksT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxlQUFtQztRQUUzQyxLQUFLLEVBQUUsQ0FBQztRQUxBLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENB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QztTQUM1QjtJQUNMLENBQUM7O29JQTdYUSxvQkFBb0I7d0hBQXBCLG9CQUFvQiwrYUFRWix3QkFBd0Isa1NDbkQ3Qyx1bUJBaUJBLCtzRERzQmdCLENBQUMsU0FBUyxDQUFDOzJGQUlkLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDSSxjQUFjLGNBR1osQ0FBQyxTQUFTLENBQUMsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs2TEFHNUIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRThCLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBQ1QsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUMyQyxnQkFBZ0I7c0JBQWpGLGVBQWU7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQU81RCxzQkFBc0I7c0JBRHpCLEtBQUs7Z0JBSU8scUJBQXFCO3NCQUFqQyxLQUFLO2dCQUlGLDhCQUE4QjtzQkFEakMsS0FBSztnQkFLRixlQUFlO3NCQURsQixLQUFLO2dCQXNCRixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBDZGtTY3JvbGxhYmxlLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbixcbiAgICBPdmVybGF5LFxuICAgIE92ZXJsYXlSZWYsXG4gICAgU2Nyb2xsRGlzcGF0Y2hlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIsIEhpZ2hsaWdodGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IEJhc2VEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcblxuaW1wb3J0IHsgb3BlbkNsb3NlIH0gZnJvbSAnLi9hbmltYXRpb25zL29wZW4tY2xvc2UnO1xuaW1wb3J0IHsgRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bi1pdGVtL2V1aS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlEcm9wZG93blNlcnZpY2UgfSBmcm9tICcuL2V1aS1kcm9wZG93bi5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbb3BlbkNsb3NlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktZHJvcGRvd24nO1xuICAgIEBJbnB1dCgpIHRhYkluZGV4ID0gLTE7XG4gICAgQElucHV0KCkgd2lkdGggPSAnYXV0byc7XG4gICAgQElucHV0KCkgcG9zaXRpb246ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnID0gJ2JvdHRvbSc7XG5cbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVBvcnRhbENvbnRlbnQnKSB0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAgIEBWaWV3Q2hpbGQoJ3RyaWdnZXJSZWYnKSB0cmlnZ2VyUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBAQ29udGVudENoaWxkcmVuKEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBldWlEcm9wZG93bkl0ZW1zOiBRdWVyeUxpc3Q8SGlnaGxpZ2h0YWJsZSAmIEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudD47XG5cbiAgICBwdWJsaWMgdHJhcEZvY3VzQXV0b0NhcHR1cmUgPSB0cnVlO1xuICAgIHB1YmxpYyBwYXJlbnREcm9wZG93bjogRXVpRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBwcmV0dGllci9wcmV0dGllciAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRHJvcERvd25SaWdodEFsaWduZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Ryb3BEb3duUmlnaHRBbGlnbmVkOyB9XG4gICAgc2V0IGlzRHJvcERvd25SaWdodEFsaWduZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc0Ryb3BEb3duUmlnaHRBbGlnbmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzRHJvcERvd25SaWdodEFsaWduZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgaXNDbG9zZWRPbkNsaWNrSW5zaWRlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNDbG9zZWRPbkNsaWNrSW5zaWRlOyB9XG4gICAgc2V0IGlzQ2xvc2VkT25DbGlja0luc2lkZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzQ2xvc2VkT25DbGlja0luc2lkZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0Nsb3NlZE9uQ2xpY2tJbnNpZGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzTGFiZWxVcGRhdGVkRnJvbVNlbGVjdGVkSXRlbSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzTGFiZWxVcGRhdGVkRnJvbVNlbGVjdGVkSXRlbTsgfVxuICAgIHNldCBpc0xhYmVsVXBkYXRlZEZyb21TZWxlY3RlZEl0ZW0odmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc0xhYmVsVXBkYXRlZEZyb21TZWxlY3RlZEl0ZW0gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO31cbiAgICBwcml2YXRlIF9pc0xhYmVsVXBkYXRlZEZyb21TZWxlY3RlZEl0ZW0gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0V4cGFuZE9uSG92ZXIoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0V4cGFuZE9uSG92ZXI7IH1cbiAgICBzZXQgaXNFeHBhbmRPbkhvdmVyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNFeHBhbmRPbkhvdmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTt9XG4gICAgcHJpdmF0ZSBfaXNFeHBhbmRPbkhvdmVyID0gZmFsc2U7XG4gICAgLyogZXNsaW50LWVuYWJsZSBwcmV0dGllci9wcmV0dGllciAqL1xuXG4gICAgcHJpdmF0ZSBvcmlnaW5YOiAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJyA9ICdzdGFydCc7XG4gICAgcHJpdmF0ZSBvcmlnaW5ZOiAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcicgPSAnYm90dG9tJztcbiAgICBwcml2YXRlIG92ZXJsYXlYOiAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJyA9ICdzdGFydCc7XG4gICAgcHJpdmF0ZSBvdmVybGF5WTogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInID0gJ3RvcCc7XG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVBvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PjtcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBpc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUga2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgICBwcml2YXRlIGFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyQ2hhbmdlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI6IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBvcmlnaW46IEhUTUxFbGVtZW50O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdldWktZHJvcGRvd24nKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgcHJpdmF0ZSBkcm9wZG93blNlcnZpY2U6IEV1aURyb3Bkb3duU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVQb3J0YWxDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZXVpLWRyb3Bkb3duIGlzIG9wZW4uXG4gICAgICpcbiAgICAgKiBAdXNhZ2VOb3Rlc1xuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZXVpLWRyb3Bkb3duICNkcm9wZG93bj5cbiAgICAgKiAgICAgIDxteS1jb21wb25lbnQgKm5nSWY9XCJkcm9wZG93bi5pc09wZW5cIj48L215LWNvbXBvbmVudD5cbiAgICAgKiA8L2V1aS1kcm9wZG93bj5cbiAgICAgKiBgYGBcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gd2l0aCB2YWx1ZSBgdHJ1ZWAgd2hlbiBvcGVuLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW4kLnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRyaWdnZXJDbGlja2VkKGU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKCcuZGlzYWJsZWQnKSAmJlxuICAgICAgICAgICAgIShlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignOmRpc2FibGVkJykgJiZcbiAgICAgICAgICAgICF0aGlzLmlzT3BlblxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDbG9zZWRPbkNsaWNrSW5zaWRlICYmICF0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgZHJvcGRvd25cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIG9mIHRoZSBkcm9wZG93biBwb3NpdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuRHJvcGRvd24ob3JpZ2luOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcblxuICAgICAgICBpZiAoIXRoaXMuaXNUcmlnZ2VyRm9jdXNhYmxlT25DbG9zZShvcmlnaW4pKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbi5jbG9zZXN0KCdidXR0b246bm90KFtkaXNhYmxlZF0pJykgfHwgKHRoaXMudHJpZ2dlclJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMub3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW4uY2xvc2VzdCgnYScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMub3JpZ2luKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbiA9IHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclxuICAgICAgICAgICAgICAgIC5hbmNlc3RvclNjcm9sbGVkKHRoaXMub3JpZ2luKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2RrU2Nyb2xsYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKHRoaXMub3JpZ2luLCBldmVudCA/IGV2ZW50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50IDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHsgc2Nyb2xsVGhyb3R0bGU6IDEwIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnZXVpLWRyb3Bkb3duX19iYWNrZHJvcCcsXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzczogJ2V1aS1kcm9wZG93bl9fcGFuZWwnLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0aGlzLnRlbXBsYXRlUG9ydGFsKTtcblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLm91dHNpZGVQb2ludGVyRXZlbnRzKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgICAgICAgICAua2V5ZG93bkV2ZW50cygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQua2V5Py50b0xvd2VyQ2FzZSgpID09PSAnZXNjYXBlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRHJvcGRvd25JdGVtcykge1xuICAgICAgICAgICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtcy50b0FycmF5KCkuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRXhwYW5kT25Ib3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zW2ldID0gZnJvbUV2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vdXNlZW50ZXInXG4gICAgICAgICAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShldWlEcm9wZG93bkl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duLnNldFBhcmVudERyb3Bkb3duKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24ub3ZlcmxheVJlZi5kZXRhY2hCYWNrZHJvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyA9IChzdWJEcm9wZG93bjogRXVpRHJvcGRvd25Db21wb25lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViRHJvcGRvd24/Lm92ZXJsYXlSZWY/Ll9vdXRzaWRlUG9pbnRlckV2ZW50cy5uZXh0KGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJEcm9wZG93bj8uaGFzRHJvcGRvd25JdGVtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViRHJvcGRvd24uZXVpRHJvcGRvd25JdGVtcy50b0FycmF5KCkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyhzLnN1YkRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pc0FjdGl2ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbUhhdmluZ1N1YkRyb3Bkb3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyT3V0c2lkZVBvaW50ZXJFdmVudHMoZXVpRHJvcGRvd25JdGVtSGF2aW5nU3ViRHJvcGRvd24uc3ViRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zW2ldID0gZnJvbUV2ZW50KGV1aURyb3Bkb3duSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShldWlEcm9wZG93bkl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24ub3ZlcmxheVJlZi5kZXRhY2hCYWNrZHJvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsRWxlbWVudCA9IHRoaXMudHJpZ2dlclJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbiAuZXVpLWxhYmVsJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGFiZWxVcGRhdGVkRnJvbVNlbGVjdGVkSXRlbSAmJiBsYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYWJlbEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dCA9IGV1aURyb3Bkb3duSXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLmV1aURyb3Bkb3duSXRlbXMpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoSG9tZUFuZEVuZCh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVLZXlib2FyZEhhbmRsZXJTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuaXNEcm9wZG93bk9wZW4uZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VEcm9wZG93bihyZWN1cnNpdmVseSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbi5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWN1cnNpdmVseSAmJiB0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5pc0Ryb3Bkb3duT3Blbi5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlS2V5Ym9hcmRIYW5kbGVyU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRPbkhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5tb3VzZWVudGVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5jbGljaygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNyZWF0ZUtleWJvYXJkSGFuZGxlclN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRPbkhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0ubW91c2VlbnRlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmVudERyb3Bkb3duKHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duID0gcGFyZW50RHJvcGRvd247XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAncmlnaHQnO1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNEcm9wZG93bkl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldWlEcm9wZG93bkl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm9yaWdpbiBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4pXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgICAgICAgICAgICAgIHsgb3JpZ2luWDogdGhpcy5vcmlnaW5YLCBvcmlnaW5ZOiB0aGlzLm9yaWdpblkgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBvdmVybGF5WDogdGhpcy5vdmVybGF5WCwgb3ZlcmxheVk6IHRoaXMub3ZlcmxheVkgfVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWaXNpYmxlKG9yaWdpbjogSFRNTEVsZW1lbnQsIHNjcm9sbGFibGVQYXJlbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG9yaWdpblkgPSAob3JpZ2luIGFzIGFueSkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVBhcmVudFkgPSBNYXRoLmFicyhzY3JvbGxhYmxlUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkpO1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0ID0gc2Nyb2xsYWJsZVBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSA1MDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKG9yaWdpblkgPiAwICYmIG9yaWdpblkgPCBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0KSB8fFxuICAgICAgICAgICAgKG9yaWdpblkgLSBzY3JvbGxhYmxlUGFyZW50WSA+IDAgJiYgb3JpZ2luWSA8IHNjcm9sbGFibGVQYXJlbnRZICsgc2Nyb2xsYWJsZVBhcmVudEhlaWdodClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVHJpZ2dlckZvY3VzYWJsZU9uQ2xvc2Uob3JpZ2luOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gb3JpZ2luLm1hdGNoZXMoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknKSB8fCBvcmlnaW4ubWF0Y2hlcygnYScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5ZID0gJ3RvcCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ2JvdHRvbSc7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJvcERvd25SaWdodEFsaWduZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblggPSAnZW5kJztcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ2VuZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdlbmQnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdzdGFydCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ2NlbnRlcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblkgPSAnYm90dG9tJztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAndG9wJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcm9wRG93blJpZ2h0QWxpZ25lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdlbmQnO1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVggPSAnZW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblggPSAnc3RhcnQnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdlbmQnO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WSA9ICdjZW50ZXInO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjdHJpZ2dlclJlZiBjbGFzcz1cImV1aS1kcm9wZG93bl9fdHJpZ2dlci1jb250YWluZXJcIiAoY2xpY2spPVwib25UcmlnZ2VyQ2xpY2tlZCgkZXZlbnQpXCIgKGtleWRvd24uZW50ZXIpPVwib25UcmlnZ2VyQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVQb3J0YWxDb250ZW50PlxuICAgIDxkaXZcbiAgICAgICAgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIlxuICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgIFtAb3BlbkNsb3NlXT1cImlzT3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgICAgY2RrVHJhcEZvY3VzXG4gICAgICAgIGNsYXNzPVwiZXVpLWRyb3Bkb3duX19wYW5lbC1jb250YWluZXJcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICAgICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1kcm9wZG93bi1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==