@bizdoc/core 1.10.3 → 1.10.5

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 (164) hide show
  1. package/esm2020/lib/browse/browse-items.component.mjs +2 -2
  2. package/esm2020/lib/compose/compose.mobile.component.mjs +2 -2
  3. package/esm2020/lib/compose/compose.pane.component.mjs +2 -2
  4. package/esm2020/lib/core/translate.service.mjs +4 -1
  5. package/esm2020/lib/core/translations.mjs +3 -3
  6. package/esm2020/lib/cube/accum/accum.component.mjs +2 -6
  7. package/esm2020/lib/cube/chart/chart.component.mjs +2 -6
  8. package/esm2020/lib/cube/cube.service.mjs +11 -4
  9. package/esm2020/lib/cube/explore/explore-items.component.mjs +2 -6
  10. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +16 -19
  11. package/esm2020/lib/cube/pivot/pivot.component.mjs +2 -6
  12. package/esm2020/lib/dashboard/recents/recents.widget.mjs +16 -15
  13. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  14. package/fesm2015/bizdoc-core.mjs +151 -156
  15. package/fesm2015/bizdoc-core.mjs.map +1 -1
  16. package/fesm2020/bizdoc-core.mjs +151 -156
  17. package/fesm2020/bizdoc-core.mjs.map +1 -1
  18. package/lib/cube/cube.service.d.ts +1 -0
  19. package/lib/cube/grid/spreadsheet.component.d.ts +0 -1
  20. package/lib/dashboard/recents/recents.widget.d.ts +2 -1
  21. package/package.json +1 -1
  22. package/assets/dayjs/locale/af.js +0 -1
  23. package/assets/dayjs/locale/am.js +0 -1
  24. package/assets/dayjs/locale/ar-dz.js +0 -1
  25. package/assets/dayjs/locale/ar-iq.js +0 -1
  26. package/assets/dayjs/locale/ar-kw.js +0 -1
  27. package/assets/dayjs/locale/ar-ly.js +0 -1
  28. package/assets/dayjs/locale/ar-ma.js +0 -1
  29. package/assets/dayjs/locale/ar-sa.js +0 -1
  30. package/assets/dayjs/locale/ar-tn.js +0 -1
  31. package/assets/dayjs/locale/ar.js +0 -1
  32. package/assets/dayjs/locale/az.js +0 -1
  33. package/assets/dayjs/locale/be.js +0 -1
  34. package/assets/dayjs/locale/bg.js +0 -1
  35. package/assets/dayjs/locale/bi.js +0 -1
  36. package/assets/dayjs/locale/bm.js +0 -1
  37. package/assets/dayjs/locale/bn.js +0 -1
  38. package/assets/dayjs/locale/bo.js +0 -1
  39. package/assets/dayjs/locale/br.js +0 -1
  40. package/assets/dayjs/locale/bs.js +0 -1
  41. package/assets/dayjs/locale/ca.js +0 -1
  42. package/assets/dayjs/locale/cs.js +0 -1
  43. package/assets/dayjs/locale/cv.js +0 -1
  44. package/assets/dayjs/locale/cy.js +0 -1
  45. package/assets/dayjs/locale/da.js +0 -1
  46. package/assets/dayjs/locale/de-at.js +0 -1
  47. package/assets/dayjs/locale/de-ch.js +0 -1
  48. package/assets/dayjs/locale/de.js +0 -1
  49. package/assets/dayjs/locale/dv.js +0 -1
  50. package/assets/dayjs/locale/el.js +0 -1
  51. package/assets/dayjs/locale/en-au.js +0 -1
  52. package/assets/dayjs/locale/en-ca.js +0 -1
  53. package/assets/dayjs/locale/en-gb.js +0 -1
  54. package/assets/dayjs/locale/en-ie.js +0 -1
  55. package/assets/dayjs/locale/en-il.js +0 -1
  56. package/assets/dayjs/locale/en-in.js +0 -1
  57. package/assets/dayjs/locale/en-nz.js +0 -1
  58. package/assets/dayjs/locale/en-sg.js +0 -1
  59. package/assets/dayjs/locale/en-tt.js +0 -1
  60. package/assets/dayjs/locale/en.js +0 -1
  61. package/assets/dayjs/locale/eo.js +0 -1
  62. package/assets/dayjs/locale/es-do.js +0 -1
  63. package/assets/dayjs/locale/es-mx.js +0 -1
  64. package/assets/dayjs/locale/es-pr.js +0 -1
  65. package/assets/dayjs/locale/es-us.js +0 -1
  66. package/assets/dayjs/locale/es.js +0 -1
  67. package/assets/dayjs/locale/et.js +0 -1
  68. package/assets/dayjs/locale/eu.js +0 -1
  69. package/assets/dayjs/locale/fa.js +0 -1
  70. package/assets/dayjs/locale/fi.js +0 -1
  71. package/assets/dayjs/locale/fo.js +0 -1
  72. package/assets/dayjs/locale/fr-ca.js +0 -1
  73. package/assets/dayjs/locale/fr-ch.js +0 -1
  74. package/assets/dayjs/locale/fr.js +0 -1
  75. package/assets/dayjs/locale/fy.js +0 -1
  76. package/assets/dayjs/locale/ga.js +0 -1
  77. package/assets/dayjs/locale/gd.js +0 -1
  78. package/assets/dayjs/locale/gl.js +0 -1
  79. package/assets/dayjs/locale/gom-latn.js +0 -1
  80. package/assets/dayjs/locale/gu.js +0 -1
  81. package/assets/dayjs/locale/he.js +0 -1
  82. package/assets/dayjs/locale/hi.js +0 -1
  83. package/assets/dayjs/locale/hr.js +0 -1
  84. package/assets/dayjs/locale/ht.js +0 -1
  85. package/assets/dayjs/locale/hu.js +0 -1
  86. package/assets/dayjs/locale/hy-am.js +0 -1
  87. package/assets/dayjs/locale/id.js +0 -1
  88. package/assets/dayjs/locale/index.d.ts +0 -11
  89. package/assets/dayjs/locale/is.js +0 -1
  90. package/assets/dayjs/locale/it-ch.js +0 -1
  91. package/assets/dayjs/locale/it.js +0 -1
  92. package/assets/dayjs/locale/ja.js +0 -1
  93. package/assets/dayjs/locale/jv.js +0 -1
  94. package/assets/dayjs/locale/ka.js +0 -1
  95. package/assets/dayjs/locale/kk.js +0 -1
  96. package/assets/dayjs/locale/km.js +0 -1
  97. package/assets/dayjs/locale/kn.js +0 -1
  98. package/assets/dayjs/locale/ko.js +0 -1
  99. package/assets/dayjs/locale/ku.js +0 -1
  100. package/assets/dayjs/locale/ky.js +0 -1
  101. package/assets/dayjs/locale/lb.js +0 -1
  102. package/assets/dayjs/locale/lo.js +0 -1
  103. package/assets/dayjs/locale/lt.js +0 -1
  104. package/assets/dayjs/locale/lv.js +0 -1
  105. package/assets/dayjs/locale/me.js +0 -1
  106. package/assets/dayjs/locale/mi.js +0 -1
  107. package/assets/dayjs/locale/mk.js +0 -1
  108. package/assets/dayjs/locale/ml.js +0 -1
  109. package/assets/dayjs/locale/mn.js +0 -1
  110. package/assets/dayjs/locale/mr.js +0 -1
  111. package/assets/dayjs/locale/ms-my.js +0 -1
  112. package/assets/dayjs/locale/ms.js +0 -1
  113. package/assets/dayjs/locale/mt.js +0 -1
  114. package/assets/dayjs/locale/my.js +0 -1
  115. package/assets/dayjs/locale/nb.js +0 -1
  116. package/assets/dayjs/locale/ne.js +0 -1
  117. package/assets/dayjs/locale/nl-be.js +0 -1
  118. package/assets/dayjs/locale/nl.js +0 -1
  119. package/assets/dayjs/locale/nn.js +0 -1
  120. package/assets/dayjs/locale/oc-lnc.js +0 -1
  121. package/assets/dayjs/locale/pa-in.js +0 -1
  122. package/assets/dayjs/locale/pl.js +0 -1
  123. package/assets/dayjs/locale/pt-br.js +0 -1
  124. package/assets/dayjs/locale/pt.js +0 -1
  125. package/assets/dayjs/locale/ro.js +0 -1
  126. package/assets/dayjs/locale/ru.js +0 -1
  127. package/assets/dayjs/locale/rw.js +0 -1
  128. package/assets/dayjs/locale/sd.js +0 -1
  129. package/assets/dayjs/locale/se.js +0 -1
  130. package/assets/dayjs/locale/si.js +0 -1
  131. package/assets/dayjs/locale/sk.js +0 -1
  132. package/assets/dayjs/locale/sl.js +0 -1
  133. package/assets/dayjs/locale/sq.js +0 -1
  134. package/assets/dayjs/locale/sr-cyrl.js +0 -1
  135. package/assets/dayjs/locale/sr.js +0 -1
  136. package/assets/dayjs/locale/ss.js +0 -1
  137. package/assets/dayjs/locale/sv-fi.js +0 -1
  138. package/assets/dayjs/locale/sv.js +0 -1
  139. package/assets/dayjs/locale/sw.js +0 -1
  140. package/assets/dayjs/locale/ta.js +0 -1
  141. package/assets/dayjs/locale/te.js +0 -1
  142. package/assets/dayjs/locale/tet.js +0 -1
  143. package/assets/dayjs/locale/tg.js +0 -1
  144. package/assets/dayjs/locale/th.js +0 -1
  145. package/assets/dayjs/locale/tk.js +0 -1
  146. package/assets/dayjs/locale/tl-ph.js +0 -1
  147. package/assets/dayjs/locale/tlh.js +0 -1
  148. package/assets/dayjs/locale/tr.js +0 -1
  149. package/assets/dayjs/locale/types.d.ts +0 -33
  150. package/assets/dayjs/locale/tzl.js +0 -1
  151. package/assets/dayjs/locale/tzm-latn.js +0 -1
  152. package/assets/dayjs/locale/tzm.js +0 -1
  153. package/assets/dayjs/locale/ug-cn.js +0 -1
  154. package/assets/dayjs/locale/uk.js +0 -1
  155. package/assets/dayjs/locale/ur.js +0 -1
  156. package/assets/dayjs/locale/uz-latn.js +0 -1
  157. package/assets/dayjs/locale/uz.js +0 -1
  158. package/assets/dayjs/locale/vi.js +0 -1
  159. package/assets/dayjs/locale/x-pseudo.js +0 -1
  160. package/assets/dayjs/locale/yo.js +0 -1
  161. package/assets/dayjs/locale/zh-cn.js +0 -1
  162. package/assets/dayjs/locale/zh-hk.js +0 -1
  163. package/assets/dayjs/locale/zh-tw.js +0 -1
  164. package/assets/dayjs/locale/zh.js +0 -1
@@ -11,17 +11,18 @@ import * as i0 from "@angular/core";
11
11
  import * as i1 from "../../core/router";
12
12
  import * as i2 from "../../core/mailbox.service";
13
13
  import * as i3 from "../widget-ref";
14
- import * as i4 from "@angular/material/progress-bar";
15
- import * as i5 from "@angular/material/table";
16
- import * as i6 from "@angular/material/button";
17
- import * as i7 from "@angular/material/icon";
18
- import * as i8 from "@angular/common";
19
- import * as i9 from "../../core/animated-icon/animated-icon.directive";
20
- import * as i10 from "../../core/popup/tooltip.directive";
21
- import * as i11 from "../../core/pipes/translate.pipe";
22
- import * as i12 from "../../core/pipes/state.pipe";
14
+ import * as i4 from "../../core/session.service";
15
+ import * as i5 from "@angular/material/progress-bar";
16
+ import * as i6 from "@angular/material/table";
17
+ import * as i7 from "@angular/material/button";
18
+ import * as i8 from "@angular/material/icon";
19
+ import * as i9 from "@angular/common";
20
+ import * as i10 from "../../core/animated-icon/animated-icon.directive";
21
+ import * as i11 from "../../core/popup/tooltip.directive";
22
+ import * as i12 from "../../core/pipes/translate.pipe";
23
+ import * as i13 from "../../core/pipes/state.pipe";
23
24
  let RecentsWidget = class RecentsWidget {
24
- constructor(_router, _service, ref, config) {
25
+ constructor(_router, _service, ref, session, config) {
25
26
  this._router = _router;
26
27
  this._service = _service;
27
28
  this.loading = true;
@@ -31,7 +32,7 @@ let RecentsWidget = class RecentsWidget {
31
32
  this._loading = new Subject();
32
33
  ref.resize.subscribe(d => this.height = `${d.height}px`);
33
34
  this._loading.pipe(debounceTime(200)).subscribe(ok => this.loading = ok);
34
- this.enableAnalysis = config.analysis !== false;
35
+ this.enableAnalysis = config.analysis !== false && session.profile.views.length > 0;
35
36
  }
36
37
  ngOnInit() {
37
38
  this._service.changed.pipe(takeUntil(this._destroy)).
@@ -71,8 +72,8 @@ let RecentsWidget = class RecentsWidget {
71
72
  this._loading.complete();
72
73
  }
73
74
  };
74
- RecentsWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: RecentsWidget, deps: [{ token: i1.RouterImpl }, { token: i2.MailboxService }, { token: i3.WidgetRef }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
75
- RecentsWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: RecentsWidget, selector: "ng-component", host: { properties: { "style.height": "this.height" } }, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"number\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Number' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\"> <a (click)=\"open(item)\">#{{item.number}}</a> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subject\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Subject' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\" class=\"text\"> {{item.subject}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Status' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\"> {{item.stateId | state }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"option\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"view(item, $event)\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\" *ngIf=\"enableAnalysis\" matAnimate=\"rotate\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"open(item)\" [bizdocTooltip]=\"'Open' | translate\" [attr.aria-label]=\"'Open' | translate\" class=\"tool\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row @item *matRowDef=\"let row; columns: columns;\"></tr>\r\n</table>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n", ":host ::ng-deep tr .tool{opacity:.1}:host ::ng-deep tr:hover .tool{opacity:1}\n"], components: [{ type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i5.MatCellDef, selector: "[matCellDef]" }, { type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.MatIconAnimate, selector: "[matAnimate]" }, { type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "translate": i11.TranslatePipe, "state": i12.StatePipe }, animations: [
75
+ RecentsWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: RecentsWidget, deps: [{ token: i1.RouterImpl }, { token: i2.MailboxService }, { token: i3.WidgetRef }, { token: i4.SessionService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
76
+ RecentsWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: RecentsWidget, selector: "ng-component", host: { properties: { "style.height": "this.height" } }, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"number\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Number' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\"> <a (click)=\"open(item)\">#{{item.number}}</a> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subject\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Subject' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\" class=\"text\"> {{item.subject}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Status' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\"> {{item.stateId | state }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"option\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"view(item, $event)\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\" *ngIf=\"enableAnalysis\" matAnimate=\"rotate\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"open(item)\" [bizdocTooltip]=\"'Open' | translate\" [attr.aria-label]=\"'Open' | translate\" class=\"tool\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row @item *matRowDef=\"let row; columns: columns;\"></tr>\r\n</table>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n", ":host ::ng-deep tr .tool{opacity:.1}:host ::ng-deep tr:hover .tool{opacity:1}\n"], components: [{ type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i6.MatCellDef, selector: "[matCellDef]" }, { type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.MatIconAnimate, selector: "[matAnimate]" }, { type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "translate": i12.TranslatePipe, "state": i13.StatePipe }, animations: [
76
77
  listAnimation,
77
78
  itemAnimation
78
79
  ] });
@@ -89,11 +90,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
89
90
  listAnimation,
90
91
  itemAnimation
91
92
  ], template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"number\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Number' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\"> <a (click)=\"open(item)\">#{{item.number}}</a> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subject\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Subject' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\" class=\"text\"> {{item.subject}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Status' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let item\"> {{item.stateId | state }} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"option\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"view(item, $event)\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\" *ngIf=\"enableAnalysis\" matAnimate=\"rotate\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"open(item)\" [bizdocTooltip]=\"'Open' | translate\" [attr.aria-label]=\"'Open' | translate\" class=\"tool\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row @item *matRowDef=\"let row; columns: columns;\"></tr>\r\n</table>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n", ":host ::ng-deep tr .tool{opacity:.1}:host ::ng-deep tr:hover .tool{opacity:1}\n"] }]
92
- }], ctorParameters: function () { return [{ type: i1.RouterImpl }, { type: i2.MailboxService }, { type: i3.WidgetRef }, { type: undefined, decorators: [{
93
+ }], ctorParameters: function () { return [{ type: i1.RouterImpl }, { type: i2.MailboxService }, { type: i3.WidgetRef }, { type: i4.SessionService }, { type: undefined, decorators: [{
93
94
  type: Inject,
94
95
  args: [BIZDOC_CONFIG]
95
96
  }] }]; }, propDecorators: { height: [{
96
97
  type: HostBinding,
97
98
  args: ['style.height']
98
99
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZW50cy53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Rhc2hib2FyZC9yZWNlbnRzL3JlY2VudHMud2lkZ2V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9kYXNoYm9hcmQvcmVjZW50cy9yZWNlbnRzLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBY3RFLGFBQWEsU0FBYixhQUFhO0lBVXhCLFlBQ1UsT0FBbUIsRUFDbkIsUUFBd0IsRUFDaEMsR0FBYyxFQUNTLE1BQW9CO1FBSG5DLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFWbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUdOLFdBQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRTNCLFlBQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEs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LElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDNUQsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNGLENBQUE7MEdBeERZLGFBQWEsbUdBY2QsYUFBYTs4RkFkWixhQUFhLDZHQ3hCMUIsbW9EQTRCQSwrbEVEYmM7UUFDVixhQUFhO1FBQ2IsYUFBYTtLQUNkO0FBTVUsYUFBYTtJQUp6QixNQUFNLENBQUM7UUFDTixRQUFRLEVBQUUsZ0JBQWdCO0tBQzNCLENBQUM7SUFDRiwyQkFBMkI7R0FDZCxhQUFhLENBd0R6QjtTQXhEWSxhQUFhOzJGQUFiLGFBQWE7a0JBWnpCLFNBQVM7aUNBR0k7d0JBQ1YsYUFBYTt3QkFDYixhQUFhO3FCQUNkOzswQkFvQkUsTUFBTTsyQkFBQyxhQUFhOzRDQVZ2QixNQUFNO3NCQURMLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBsaXN0QW5pbWF0aW9uLCBpdGVtQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IFdpZGdldFJlZiB9IGZyb20gJy4uL3dpZGdldC1yZWYnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQml6RG9jQ29uZmlnLCBCSVpET0NfQ09ORklHLCBPcGVuUG9saWN5IH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gJy4uLy4uL2NvcmUvcm91dGVyJztcclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2VudHMud2lkZ2V0Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi9fdGFibGUud2lkZ2V0LnNjc3MnLCAnLi9yZWNlbnRzLndpZGdldC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgbGlzdEFuaW1hdGlvbixcclxuICAgIGl0ZW1BbmltYXRpb25cclxuICBdXHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXJlY2VudHMnXHJcbn0pXHJcbi8qKiBwZXJmb3JtYW5jZSBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUmVjZW50c1dpZGdldCBpbXBsZW1lbnRzIFdpZGdldENvbXBvbmVudDxNYWlsSW5mb1tdPiwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxNYWlsSW5mbz47XHJcbiAgbG9hZGluZyA9IHRydWU7XHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHJlYWRvbmx5IGVuYWJsZUFuYWx5c2lzOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBbJ251bWJlcicsICdzdWJqZWN0JywgJ3N0YXRlJywgJ29wdGlvbiddO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmcgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogTWFpbGJveFNlcnZpY2UsXHJcbiAgICByZWY6IFdpZGdldFJlZixcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgY29uZmlnOiBCaXpEb2NDb25maWcpIHtcclxuICAgIHJlZi5yZXNpemUuc3Vic2NyaWJlKGQgPT4gdGhpcy5oZWlnaHQgPSBgJHtkLmhlaWdodH1weGApO1xyXG4gICAgdGhpcy5fbG9hZGluZy5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUob2sgPT4gdGhpcy5sb2FkaW5nID0gb2spO1xyXG4gICAgdGhpcy5lbmFibGVBbmFseXNpcyA9IGNvbmZpZy5hbmFseXNpcyAhPT0gZmFsc2U7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VydmljZS5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gbS5pZCk7XHJcbiAgICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXRlbSwgbSk7XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5yZW1vdmUoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnNwbGljZSgwLCAwLCBtKTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gJyc7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZWFyY2gudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKTtcclxuICB9XHJcbiAgb25CaW5kKGRhdGE6IE1haWxJbmZvW10pIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8TWFpbEluZm8+KGRhdGEpO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25hdmlnYXRlKGl0ZW06IE1haWxJbmZvLCBjb21tYW5kczogc3RyaW5nW10sIGV4dHJhPykge1xyXG4gICAgdGhpcy5fbG9hZGluZy5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5fc2VydmljZS5nZXQoaXRlbS5pZCkuXHJcbiAgICAgIHN1YnNjcmliZShpID0+IHtcclxuICAgICAgICB0aGlzLl9sb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIGl0ZW0uaWQuZW5jb2RlSWQoKSwgLi4uY29tbWFuZHNdLCB7IC4uLmV4dHJhLCBzdGF0ZTogeyBpdGVtOiBpIH0gfSk7XHJcbiAgICAgIH0sICgpID0+IHRoaXMuX2xvYWRpbmcubmV4dChmYWxzZSkpO1xyXG4gIH1cclxuICBvcGVuKGl0ZW06IE1haWxJbmZvKSB7XHJcbiAgICB0aGlzLl9uYXZpZ2F0ZShpdGVtLCBbXSwgeyBwb2xpY3k6IE9wZW5Qb2xpY3kuQ2xlYXIgfSk7XHJcbiAgfVxyXG4gIHZpZXcoaXRlbTogTWFpbEluZm8sIGV2dDogRXZlbnQpIHtcclxuICAgIHRoaXMuX25hdmlnYXRlKGl0ZW0sIFsndmlld3MnXSwgeyBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiIH0pO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fbG9hZGluZy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgTWFpbEluZm8ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgZm9ybUlkOiBzdHJpbmc7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG59XHJcbiIsIjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJxdWVyeVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImxvYWRpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MFwiIEBsaXN0PlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibnVtYmVyXCI+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7eydOdW1iZXInIHwgdHJhbnNsYXRlfX0gPC90aD5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+IDxhIChjbGljayk9XCJvcGVuKGl0ZW0pXCI+I3t7aXRlbS5udW1iZXJ9fTwvYT4gPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdWJqZWN0XCI+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7eydTdWJqZWN0JyB8IHRyYW5zbGF0ZX19IDwvdGg+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwidGV4dFwiPiB7e2l0ZW0uc3ViamVjdH19IDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhdGVcIj5cclxuICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7J1N0YXR1cycgfCB0cmFuc2xhdGV9fSA8L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj4ge3tpdGVtLnN0YXRlSWQgfCBzdGF0ZSB9fSA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm9wdGlvblwiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gPC90aD5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ2aWV3KGl0ZW0sICRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInVmlldycgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidWaWV3JyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwidG9vbFwiICpuZ0lmPVwiZW5hYmxlQW5hbHlzaXNcIiBtYXRBbmltYXRlPVwicm90YXRlXCI+PG1hdC1pY29uPmRhdGFfdXNhZ2U8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib3BlbihpdGVtKVwiIFtiaXpkb2NUb29sdGlwXT1cIidPcGVuJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09wZW4nIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+PG1hdC1pY29uPm1vcmVfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5zOyBzdGlja3k6IHRydWVcIj48L3RyPlxyXG4gIDx0ciBtYXQtcm93IEBpdGVtICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBjb2x1bW5zO1wiPjwvdHI+XHJcbjwvdGFibGU+XHJcbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZW50cy53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2Rhc2hib2FyZC9yZWNlbnRzL3JlY2VudHMud2lkZ2V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9kYXNoYm9hcmQvcmVjZW50cy9yZWNlbnRzLndpZGdldC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQWV0RSxhQUFhLFNBQWIsYUFBYTtJQVV4QixZQUNVLE9BQW1CLEVBQ25CLFFBQXdCLEVBQ2hDLEdBQWMsRUFDZCxPQUF1QixFQUNBLE1BQW9CO1FBSm5DLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFWbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUdOLFdBQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRTNCLFlBQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBT2pELEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLEtBQUssSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1osTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0QsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFnQjtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQVcsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUNPLFNBQVMsQ0FBQyxJQUFjLEVBQUUsUUFBa0IsRUFBRSxLQUFNO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQWM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUFJLENBQUMsSUFBYyxFQUFFLEdBQVU7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM1RCxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YsQ0FBQTswR0F6RFksYUFBYSxpSUFlZCxhQUFhOzhGQWZaLGFBQWEsNkdDekIxQixtb0RBNEJBLGdtRURaYztRQUNWLGFBQWE7UUFDYixhQUFhO0tBQ2Q7QUFNVSxhQUFhO0lBSnpCLE1BQU0sQ0FBQztRQUNOLFFBQVEsRUFBRSxnQkFBZ0I7S0FDM0IsQ0FBQztJQUNGLDJCQUEyQjtHQUNkLGFBQWEsQ0F5RHpCO1NBekRZLGFBQWE7MkZBQWIsYUFBYTtrQkFaekIsU0FBUztpQ0FHSTt3QkFDVixhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7OzBCQXFCRSxNQUFNOzJCQUFDLGFBQWE7NENBWHZCLE1BQU07c0JBREwsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgSG9zdEJpbmRpbmcsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IGxpc3RBbmltYXRpb24sIGl0ZW1BbmltYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSAnLi4vd2lkZ2V0LXJlZic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi4vLi4vY29yZS9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2VudHMud2lkZ2V0Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi9fdGFibGUud2lkZ2V0LnNjc3MnLCAnLi9yZWNlbnRzLndpZGdldC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgbGlzdEFuaW1hdGlvbixcclxuICAgIGl0ZW1BbmltYXRpb25cclxuICBdXHJcbn0pXHJcbkBCaXpEb2Moe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXJlY2VudHMnXHJcbn0pXHJcbi8qKiBwZXJmb3JtYW5jZSBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUmVjZW50c1dpZGdldCBpbXBsZW1lbnRzIFdpZGdldENvbXBvbmVudDxNYWlsSW5mb1tdPiwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxNYWlsSW5mbz47XHJcbiAgbG9hZGluZyA9IHRydWU7XHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHJlYWRvbmx5IGVuYWJsZUFuYWx5c2lzOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IGNvbHVtbnMgPSBbJ251bWJlcicsICdzdWJqZWN0JywgJ3N0YXRlJywgJ29wdGlvbiddO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmcgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogTWFpbGJveFNlcnZpY2UsXHJcbiAgICByZWY6IFdpZGdldFJlZixcclxuICAgIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgcmVmLnJlc2l6ZS5zdWJzY3JpYmUoZCA9PiB0aGlzLmhlaWdodCA9IGAke2QuaGVpZ2h0fXB4YCk7XHJcbiAgICB0aGlzLl9sb2FkaW5nLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZShvayA9PiB0aGlzLmxvYWRpbmcgPSBvayk7XHJcbiAgICB0aGlzLmVuYWJsZUFuYWx5c2lzID0gY29uZmlnLmFuYWx5c2lzICE9PSBmYWxzZSAmJiBzZXNzaW9uLnByb2ZpbGUudmlld3MubGVuZ3RoID4gMDtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmQoaSA9PiBpLmlkID09PSBtLmlkKTtcclxuICAgICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihpdGVtLCBtKTtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnJlbW92ZShpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEuc3BsaWNlKDAsIDAsIG0pO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSAnJztcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpO1xyXG4gIH1cclxuICBvbkJpbmQoZGF0YTogTWFpbEluZm9bXSkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxNYWlsSW5mbz4oZGF0YSk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbmF2aWdhdGUoaXRlbTogTWFpbEluZm8sIGNvbW1hbmRzOiBzdHJpbmdbXSwgZXh0cmE/KSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmdldChpdGVtLmlkKS5cclxuICAgICAgc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2xvYWRpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgaXRlbS5pZC5lbmNvZGVJZCgpLCAuLi5jb21tYW5kc10sIHsgLi4uZXh0cmEsIHN0YXRlOiB7IGl0ZW06IGkgfSB9KTtcclxuICAgICAgfSwgKCkgPT4gdGhpcy5fbG9hZGluZy5uZXh0KGZhbHNlKSk7XHJcbiAgfVxyXG4gIG9wZW4oaXRlbTogTWFpbEluZm8pIHtcclxuICAgIHRoaXMuX25hdmlnYXRlKGl0ZW0sIFtdLCB7IHBvbGljeTogT3BlblBvbGljeS5DbGVhciB9KTtcclxuICB9XHJcbiAgdmlldyhpdGVtOiBNYWlsSW5mbywgZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fbmF2aWdhdGUoaXRlbSwgWyd2aWV3cyddLCB7IHBvbGljeTogT3BlblBvbGljeS5UYWIgfSk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9sb2FkaW5nLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBNYWlsSW5mbyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBmb3JtSWQ6IHN0cmluZztcclxuICBudW1iZXI/OiBzdHJpbmc7XHJcbiAgc3ViamVjdD86IHN0cmluZztcclxuICBzdGF0ZUlkOiBzdHJpbmc7XHJcbn1cclxuIiwiPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cInF1ZXJ5XCIgW3N0eWxlLnZpc2liaWxpdHldPVwibG9hZGluZyA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXowXCIgQGxpc3Q+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJudW1iZXJcIj5cclxuICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7J051bWJlcicgfCB0cmFuc2xhdGV9fSA8L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj4gPGEgKGNsaWNrKT1cIm9wZW4oaXRlbSlcIj4je3tpdGVtLm51bWJlcn19PC9hPiA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN1YmplY3RcIj5cclxuICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7J1N1YmplY3QnIHwgdHJhbnNsYXRlfX0gPC90aD5cclxuICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJ0ZXh0XCI+IHt7aXRlbS5zdWJqZWN0fX0gPC90ZD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdGF0ZVwiPlxyXG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3snU3RhdHVzJyB8IHRyYW5zbGF0ZX19IDwvdGg+XHJcbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPiB7e2l0ZW0uc3RhdGVJZCB8IHN0YXRlIH19IDwvdGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib3B0aW9uXCI+XHJcbiAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiA8L3RoPlxyXG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInZpZXcoaXRlbSwgJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidWaWV3JyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ZpZXcnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCIgKm5nSWY9XCJlbmFibGVBbmFseXNpc1wiIG1hdEFuaW1hdGU9XCJyb3RhdGVcIj48bWF0LWljb24+ZGF0YV91c2FnZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvcGVuKGl0ZW0pXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ09wZW4nIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInT3BlbicgfCB0cmFuc2xhdGVcIiBjbGFzcz1cInRvb2xcIj48bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L3RkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbnM7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XHJcbiAgPHRyIG1hdC1yb3cgQGl0ZW0gKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbnM7XCI+PC90cj5cclxuPC90YWJsZT5cclxuIl19
@@ -177,8 +177,8 @@ let UsageChartComponent = class UsageChartComponent extends UsageReportBase {
177
177
  onExport(title) {
178
178
  const numberFormat = this._cube.currencyCode ?
179
179
  getCurrencySymbol(this._cube.currencyCode, 'narrow') +
180
- getLocaleNumberFormat(this._session.locale, NumberFormatStyle.Currency)
181
- : getLocaleNumberFormat(this._session.locale, NumberFormatStyle.Decimal), columns = this._cube.axes.filter(a => this._options.series.indexOf(a.name) > -1), rows = [{
180
+ getLocaleNumberFormat(this._session.language, NumberFormatStyle.Currency)
181
+ : getLocaleNumberFormat(this._session.language, NumberFormatStyle.Decimal), columns = this._cube.axes.filter(a => this._options.series.indexOf(a.name) > -1), rows = [{
182
182
  index: 1,
183
183
  cells: columns.map((c, i) => ({
184
184
  index: i + 1, value: c.title,
@@ -357,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
357
357
  }
358
358
  }]
359
359
  }], ctorParameters: function () { return [{ type: i1.ReportRef }, { type: i2.DatasourceService }, { type: i3.CubeService }, { type: i4.SessionService }, { type: i5.RouterImpl }, { type: i6.PromptService }, { type: i0.ElementRef }, { type: i7.Directionality }, { type: i8.TranslateService }]; } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQXVDLFNBQVMsRUFBZSxNQUFNLG1DQUFtQyxDQUFDO0FBSWhILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU0vQyxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBS3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTlGOztLQUVLO0lBWUcsbUJBQW1CLFNBQW5CLG1CQUFvQixTQUFRLGVBQXdCO0lBUTFELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQUUsSUFBdUIsRUFBRSxPQUFvQixFQUFFLE9BQXVCLEVBQy9HLE1BQWtCLEVBQ2xCLEVBQWlCLEVBQ1QsV0FBdUIsRUFDL0IsR0FBbUIsRUFBRSxTQUEyQjtRQUNoRCxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFDN0MsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUhk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LENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLEtBQWE7UUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNGLENBQUE7Z0hBdlZPLG1CQUFtQjtvR0FBbkIsbUJBQW1CLCtIQVZmLEVBQUU7QUFVTixtQkFBbUI7SUFKMUIsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLG9CQUFvQjtLQUMvQixDQUFDO0dBRU0sbUJBQW1CLENBdVYxQjtTQXZWTyxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFYMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLElBQUk7d0JBQ1osT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBDaGFydFNlcmllc1R5cGUsIERpc3BsYXlPcHRpb25Nb2RlbCwgUGl2b3RWaWV3LCBFeGNlbEV4cG9ydCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwsIFNvcnRNb2RlbCwgRmllbGRPcHRpb25zTW9kZWwsIEZvcm1hdFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2RhdGFzb3VyY2VzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvY2hhcnRzZXR0aW5ncy1tb2RlbCc7XHJcbmltcG9ydCB7IENoYXJ0LCBJUG9pbnRFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJdGVtLCBVc2FnZU9wdGlvbnMsIFVzYWdlUmVwb3J0QmFzZSB9IGZyb20gXCIuL3VzYWdlLWJhc2VcIjtcclxuaW1wb3J0IHsgUmVwb3J0UmVmIH0gZnJvbSBcIi4uL3JlcG9ydC1yZWZcIjtcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2RlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEZPTlRfRkFNSUxZIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29sb3JzXCI7XHJcbmltcG9ydCB7IFJvdXRlckltcGwgfSBmcm9tIFwiLi4vLi4vY29yZS9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL2NlbGwnO1xyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy9jb2x1bW4nO1xyXG5pbXBvcnQgeyBnZXRDdXJyZW5jeVN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0LCBOdW1iZXJGb3JtYXRTdHlsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8qKlxyXG4gKiBjdWJlIHVzYWdlXHJcbiAqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICAnW2Rpcl0nOiAnZGlyJ1xyXG4gIH1cclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY2hhcnQtdXNhZ2UnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFVzYWdlQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBVc2FnZVJlcG9ydEJhc2U8T3B0aW9ucz4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IGRpciA9IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uO1xyXG4gIHBpdm90OiBQaXZvdFZpZXc7XHJcbiAgZGF0YVNvdXJjZVNldHRpbmdzOiBEYXRhU291cmNlU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBkaXNwbGF5T3B0aW9uOiBEaXNwbGF5T3B0aW9uTW9kZWwgPSB7XHJcbiAgICB2aWV3OiAnQ2hhcnQnXHJcbiAgfTtcclxuICBjaGFydFNldHRpbmdzOiBDaGFydFNldHRpbmdzTW9kZWw7XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKHJlcG9ydFJlZjogUmVwb3J0UmVmPE9wdGlvbnM+LCB0eXBlOiBEYXRhc291cmNlU2VydmljZSwgc2VydmljZTogQ3ViZVNlcnZpY2UsIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgZGlyOiBEaXJlY3Rpb25hbGl0eSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihyZXBvcnRSZWYsIHR5cGUsIHNlcnZpY2UsIHNlc3Npb24sIHJvdXRlcixcclxuICAgICAgc2IsIGRpciwgdHJhbnNsYXRlKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy5jaGFydFNldHRpbmdzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MucGFsZXR0ZXMgPSB0aGlzLl9wYWxldHRlcygpO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RlZmF1bHRzKCk7XHJcbiAgfVxyXG4gIC8qKiBzZXQgZGVmYXVsdHMgKi9cclxuICBwcml2YXRlIF9kZWZhdWx0cygpIHtcclxuICAgIGNvbnN0IHsgY2hhcnRUeXBlIH0gPSB0aGlzLl9yZXBvcnRSZWYub3B0aW9ucztcclxuICAgIGNvbnN0IGxpbmUgPSBjaGFydFR5cGUgPT09ICdMaW5lJyB8fCBjaGFydFR5cGUgPT09ICdTcGxpbmUnO1xyXG4gICAgdGhpcy5jaGFydFNldHRpbmdzID0ge1xyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgem9vbVNldHRpbmdzOiB7XHJcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgICAgICBtb2RlOiAnWFknLFxyXG4gICAgICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBjcm9zc2hhaXI6IHtcclxuICAgICAgICBlbmFibGU6IGxpbmUsXHJcbiAgICAgICAgbGluZToge1xyXG4gICAgICAgICAgd2lkdGg6IDFcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNoYXJ0U2VyaWVzOiB7XHJcbiAgICAgICAgcGFsZXR0ZXM6IHRoaXMuX3BhbGV0dGVzKCksXHJcbiAgICAgICAgdHlwZTogY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgIC8vd2lkdGg6IDIsXHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgICAgbWFya2VyOiB7IGhlaWdodDogMTAsIHdpZHRoOiAxMCwgc2hhcGU6ICdQZW50YWdvbicsIHZpc2libGU6IGxpbmUgfSxcclxuICAgICAgfSxcclxuICAgICAgZW5hYmxlRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjaGFydEFyZWE6IHtcclxuICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aGVtZTogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgICBsZWdlbmRTZXR0aW5nczoge1xyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzSW52ZXJzZWQ6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZVxyXG4gICAgICB9LFxyXG4gICAgICB0b29sdGlwOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHN1YlRpdGxlU3R5bGU6IHtcclxuICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICB9LFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyb3NzaGFpclRvb2x0aXA6IHsgZW5hYmxlOiBsaW5lIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGZvcm1hdFNldHRpbmdzOiBGb3JtYXRTZXR0aW5nc01vZGVsW10gPSBbe1xyXG4gICAgICBuYW1lOiAndmFsdWUnLCBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzLFxyXG4gICAgICAvL21pbmltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5Q29kZVxyXG4gICAgfV07XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5fc2VyaWVzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZVxyXG4gICAgICB9IGFzIEZpZWxkT3B0aW9uc01vZGVsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyA9IHtcclxuICAgICAgY29sdW1uczogW3tcclxuICAgICAgICBuYW1lOiAndHlwZSdcclxuICAgICAgfV0sXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgICAgICAgICBjYXB0aW9uOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZSxcclxuICAgICAgc29ydFNldHRpbmdzOiB0aGlzLl9zZXJpZXMubWFwKHMgPT4geyByZXR1cm4geyBuYW1lOiBgXyR7cy5uYW1lfWAgfSBhcyBTb3J0TW9kZWwgfSksXHJcbiAgICAgIGV4cGFuZEFsbDogdGhpcy5fY29sbGFwc2UgfHwgZmFsc2UsXHJcbiAgICAgIGZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBkYXRhU291cmNlOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFt0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpXS5cclxuICAgICAgY29uY2F0KHRoaXMuX2luZGljZXMubWFwKChfLCBpKSA9PlxyXG4gICAgICAgIHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgzMDAgKyAzMDAgKiBpIGFzIE1hdGVyaWFsTW9kZSkpKTtcclxuICB9XHJcblxyXG4gIGRhdGFCb3VuZChhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGl2b3QuY2hhcnQucG9pbnRDbGljayA9IHRoaXMucG9pbnRDbGljay5iaW5kKHRoaXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gcmVzdWx0XHJcbiAgICovXHJcbiAgb25EYXRhKHJlc3VsdDogSXRlbVtdKSB7XHJcbiAgICB0aGlzLl9kZWNvcmF0ZShyZXN1bHQpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLmRhdGFTb3VyY2UgPSByIGFzIGFueTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCA9IG5ldyBQaXZvdFZpZXcoe1xyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIGRhdGFCb3VuZDogdGhpcy5kYXRhQm91bmQuYmluZCh0aGlzKSxcclxuICAgICAgY2hhcnRTZXR0aW5nczogdGhpcy5jaGFydFNldHRpbmdzLFxyXG4gICAgICBkaXNwbGF5T3B0aW9uOiB0aGlzLmRpc3BsYXlPcHRpb24sXHJcbiAgICAgIGRhdGFTb3VyY2VTZXR0aW5nczogdGhpcy5kYXRhU291cmNlU2V0dGluZ3MsXHJcbiAgICAgIHNwaW5uZXJUZW1wbGF0ZTogJycsXHJcbiAgICAgIGFsbG93Q29uZGl0aW9uYWxGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBhbGxvd0V4Y2VsRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmNoYXJ0KSB7XHJcbiAgICAgIC8vdGhpcy5waXZvdC5jaGFydC5oZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgICAgdGhpcy5waXZvdC5jaGFydC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkV4cG9ydCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlLCAnbmFycm93JykgK1xyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sb2NhbGUsIE51bWJlckZvcm1hdFN0eWxlLkN1cnJlbmN5KVxyXG4gICAgICA6IGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxvY2FsZSwgTnVtYmVyRm9ybWF0U3R5bGUuRGVjaW1hbCksXHJcbiAgICAgIGNvbHVtbnMgPSB0aGlzLl9jdWJlLmF4ZXMuZmlsdGVyKGEgPT4gdGhpcy5fb3B0aW9ucy5zZXJpZXMuaW5kZXhPZihhLm5hbWUpID4gLTEpLFxyXG4gICAgICByb3dzID0gW3tcclxuICAgICAgICBpbmRleDogMSxcclxuICAgICAgICBjZWxsczogY29sdW1ucy5tYXAoKGMsIGkpID0+ICh7XHJcbiAgICAgICAgICBpbmRleDogaSArIDEsIHZhbHVlOiBjLnRpdGxlLFxyXG4gICAgICAgICAgY2VsbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGFzIENlbGwpKVxyXG4gICAgICB9XSBhcyBSb3dbXTtcclxuICAgIHJvd3NbMF0uY2VsbHMucHVzaCh7XHJcbiAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIDEsXHJcbiAgICAgIHZhbHVlOiB0aGlzLl9jdWJlLnlBeGlzID8gdGhpcy5fY3ViZS55QXhpcy50aXRsZSA6XHJcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnVmFsdWUnKSxcclxuICAgICAgY2VsbFN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKCh4LCBpKSA9PlxyXG4gICAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIGkgKyAyLFxyXG4gICAgICAgIHZhbHVlOiB4LnRpdGxlLFxyXG4gICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKChyLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGxzID0gY29sdW1ucy5tYXAoKGMsIGopID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogcltjLm5hbWVdLFxyXG4gICAgICAgICAgY2VsbFN0eWxlOiB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBDZWxsO1xyXG4gICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIGNlbGxzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIDEsXHJcbiAgICAgICAgY2VsbFN0eWxlOiB7XHJcbiAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHZhbHVlOiByWyd2YWx1ZSddXHJcbiAgICAgIH0gYXMgQ2VsbCk7XHJcbiAgICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKCh4LCBpKSA9PlxyXG4gICAgICAgIGNlbGxzLnB1c2goe1xyXG4gICAgICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyBpICsgMixcclxuICAgICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0J1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlOiByW3gubmFtZV1cclxuICAgICAgICB9IGFzIENlbGwpXHJcbiAgICAgICk7XHJcbiAgICAgIHJvd3MucHVzaChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpbmRleDogaSArIDIsXHJcbiAgICAgICAgICBjZWxsc1xyXG4gICAgICAgIH0gYXMgUm93KVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAge1xyXG4gICAgICAgIHdvcmtzaGVldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLl9zZXNzaW9uLmludmVyc2UsXHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NoZWV0TicsIDEpLFxyXG4gICAgICAgICAgICBjb2x1bW5zOiBbLi4uY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpXHJcbiAgICAgICAgICAgICAgLCB7IGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIDEgfSxcclxuICAgICAgICAgICAgLi4uKHRoaXMuX2luZGljZXMgPyB0aGlzLl9pbmRpY2VzLm1hcCgoXywgaSkgPT4gKHtcclxuICAgICAgICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyBpICsgMlxyXG4gICAgICAgICAgICB9KSkgOiBbXSlcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgcm93c1xyXG4gICAgICAgICAgfSBhcyBXb3Jrc2hlZXRcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICAneGxzeCdcclxuICAgICk7XHJcbiAgICBib29rLnNhdmUoYCR7dGl0bGV9Lnhsc3hgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWRkcyBkYXRhIHNvdXJjZSBkZXNjcmlwdGlvbiB0byBpdGVtIGtleXMsIGFuZCBub3JtYWxpemVzIGluZGljZXMuXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKHJlc3VsdDogSXRlbVtdKTogT2JzZXJ2YWJsZTx7fVtdPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgICByZXN1bHQuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsID0gcm93W2EubmFtZV0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuX3R5cGUuZ2V0KGEuZGF0YVR5cGUsIHZhbCkuXHJcbiAgICAgICAgICAgIHBpcGUodGFwKCh2OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IHZhbDtcclxuICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IHYgfHwgdmFsO1xyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG9ic2VydmFibGVzLmxlbmd0aClcclxuICAgICAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShtYXAoKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZGF0YToge31bXSA9IFtdO1xyXG4gICAgICAgICAgcmVzdWx0LmZvckVhY2goYmFzZVJvdyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYmFzZVJvdy51c2FnZTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICBjb25zdCByb3cgPSB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLl95VGl0bGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy5fc2VyaWVzLmZvckVhY2goYSA9PiB7XHJcbiAgICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IGJhc2VSb3dbYF8ke2EubmFtZX1gXTtcclxuICAgICAgICAgICAgICAgIHJvd1thLm5hbWVdID0gYmFzZVJvd1thLm5hbWVdO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuX2luZGljZXMuZm9yRWFjaChpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VSb3dbaS5uYW1lXTtcclxuICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0eXBlOiBpLnRpdGxlLCB2YWx1ZSB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWVzLmZvckVhY2goYSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJvd1tgXyR7YS5uYW1lfWBdID0gYmFzZVJvd1tgXyR7YS5uYW1lfWBdO1xyXG4gICAgICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IGJhc2VSb3dbYS5uYW1lXTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKHJvdyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfSkpLlxyXG4gICAgICAgICAgc3Vic2NyaWJlKHIgPT5cclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHIpLCBlID0+IG9ic2VydmUuZXJyb3IoZSkpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb2JzZXJ2ZS5uZXh0KFtdKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZVxyXG4gICAqL1xyXG4gIHBvaW50Q2xpY2soZTogSVBvaW50RXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCB7IHBvaW50OiB7IHgsIHlWYWx1ZSB9LCBzZXJpZXM6IHsgbmFtZTogdGl0bGUgfSB9ID0gZTtcclxuICAgIGlmICh5VmFsdWUgPT09IDApIHtcclxuICAgICAgZS5jYW5jZWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBhbnk7IH0gPSB0aGlzLl9heGVzKHggYXMgc3RyaW5nKTtcclxuICAgIHN1cGVyLmJyb3dzZShheGVzLCB0aXRsZSA9PT0gdGhpcy5feVRpdGxlID8gbnVsbCA6IHRoaXMuX2luZGV4TmFtZSh0aXRsZSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGF4ZXMgZnJvbSBzZXJpZXMgbGFiZWxcclxuICAgKiBAcGFyYW0gbGFiZWxcclxuICAgKi9cclxuICBwcml2YXRlIF9heGVzKGxhYmVsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGF4ZXM6IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpOyB9ID0ge307XHJcbiAgICBsYWJlbC5zcGxpdCgnIC0gJykuZm9yRWFjaCgoeCwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgZWxlbWVudCA9IHRoaXMuX2RhdGEuZmluZChlID0+IGVbY29sdW1uXSA9PT0geCk7XHJcbiAgICAgIGF4ZXNbY29sdW1uXSA9IGVsZW1lbnQgPyBlbGVtZW50W2BfJHtjb2x1bW59YF0gOiB4O1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXhlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHJldmVyc2UgZW5naW5lZXJpbmcgaW5kZXggbmFtZSBmcm9tIHRpdGxlXHJcbiAgICogQHBhcmFtIHRpdGxlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaW5kZXhOYW1lKHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9pbmRpY2VzLmZpbmQoaSA9PiBpLnRpdGxlID09PSB0aXRsZSk7XHJcbiAgICByZXR1cm4gaW5kZXgubmFtZTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE9wdGlvbnMgZXh0ZW5kcyBVc2FnZU9wdGlvbnMge1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0U2VyaWVzVHlwZTtcclxufVxyXG4iXX0=
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQXVDLFNBQVMsRUFBZSxNQUFNLG1DQUFtQyxDQUFDO0FBSWhILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU0vQyxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUduRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBS3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTlGOztLQUVLO0lBWUcsbUJBQW1CLFNBQW5CLG1CQUFvQixTQUFRLGVBQXdCO0lBUTFELE9BQU87SUFDUCxZQUFZLFNBQTZCLEVBQUUsSUFBdUIsRUFBRSxPQUFvQixFQUFFLE9BQXVCLEVBQy9HLE1BQWtCLEVBQ2xCLEVBQWlCLEVBQ1QsV0FBdUIsRUFDL0IsR0FBbUIsRUFBRSxTQUEyQjtRQUNoRCxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFDN0MsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUhk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LENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLEtBQWE7UUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNGLENBQUE7Z0hBdlZPLG1CQUFtQjtvR0FBbkIsbUJBQW1CLCtIQVZmLEVBQUU7QUFVTixtQkFBbUI7SUFKMUIsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLG9CQUFvQjtLQUMvQixDQUFDO0dBRU0sbUJBQW1CLENBdVYxQjtTQXZWTyxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFYMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLElBQUk7d0JBQ1osT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBDaGFydFNlcmllc1R5cGUsIERpc3BsYXlPcHRpb25Nb2RlbCwgUGl2b3RWaWV3LCBFeGNlbEV4cG9ydCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwsIFNvcnRNb2RlbCwgRmllbGRPcHRpb25zTW9kZWwsIEZvcm1hdFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlldy9zcmMvcGl2b3R2aWV3L21vZGVsL2RhdGFzb3VyY2VzZXR0aW5ncy1tb2RlbFwiO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvY2hhcnRzZXR0aW5ncy1tb2RlbCc7XHJcbmltcG9ydCB7IENoYXJ0LCBJUG9pbnRFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJdGVtLCBVc2FnZU9wdGlvbnMsIFVzYWdlUmVwb3J0QmFzZSB9IGZyb20gXCIuL3VzYWdlLWJhc2VcIjtcclxuaW1wb3J0IHsgUmVwb3J0UmVmIH0gZnJvbSBcIi4uL3JlcG9ydC1yZWZcIjtcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2RlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEZPTlRfRkFNSUxZIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29sb3JzXCI7XHJcbmltcG9ydCB7IFJvdXRlckltcGwgfSBmcm9tIFwiLi4vLi4vY29yZS9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL2NlbGwnO1xyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0L3NyYy9jb2x1bW4nO1xyXG5pbXBvcnQgeyBnZXRDdXJyZW5jeVN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0LCBOdW1iZXJGb3JtYXRTdHlsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8qKlxyXG4gKiBjdWJlIHVzYWdlXHJcbiAqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICAnW2Rpcl0nOiAnZGlyJ1xyXG4gIH1cclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY2hhcnQtdXNhZ2UnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFVzYWdlQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBVc2FnZVJlcG9ydEJhc2U8T3B0aW9ucz4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IGRpciA9IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uO1xyXG4gIHBpdm90OiBQaXZvdFZpZXc7XHJcbiAgZGF0YVNvdXJjZVNldHRpbmdzOiBEYXRhU291cmNlU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBkaXNwbGF5T3B0aW9uOiBEaXNwbGF5T3B0aW9uTW9kZWwgPSB7XHJcbiAgICB2aWV3OiAnQ2hhcnQnXHJcbiAgfTtcclxuICBjaGFydFNldHRpbmdzOiBDaGFydFNldHRpbmdzTW9kZWw7XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKHJlcG9ydFJlZjogUmVwb3J0UmVmPE9wdGlvbnM+LCB0eXBlOiBEYXRhc291cmNlU2VydmljZSwgc2VydmljZTogQ3ViZVNlcnZpY2UsIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgZGlyOiBEaXJlY3Rpb25hbGl0eSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihyZXBvcnRSZWYsIHR5cGUsIHNlcnZpY2UsIHNlc3Npb24sIHJvdXRlcixcclxuICAgICAgc2IsIGRpciwgdHJhbnNsYXRlKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy5jaGFydFNldHRpbmdzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MucGFsZXR0ZXMgPSB0aGlzLl9wYWxldHRlcygpO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RlZmF1bHRzKCk7XHJcbiAgfVxyXG4gIC8qKiBzZXQgZGVmYXVsdHMgKi9cclxuICBwcml2YXRlIF9kZWZhdWx0cygpIHtcclxuICAgIGNvbnN0IHsgY2hhcnRUeXBlIH0gPSB0aGlzLl9yZXBvcnRSZWYub3B0aW9ucztcclxuICAgIGNvbnN0IGxpbmUgPSBjaGFydFR5cGUgPT09ICdMaW5lJyB8fCBjaGFydFR5cGUgPT09ICdTcGxpbmUnO1xyXG4gICAgdGhpcy5jaGFydFNldHRpbmdzID0ge1xyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgem9vbVNldHRpbmdzOiB7XHJcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgICAgICBtb2RlOiAnWFknLFxyXG4gICAgICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBjcm9zc2hhaXI6IHtcclxuICAgICAgICBlbmFibGU6IGxpbmUsXHJcbiAgICAgICAgbGluZToge1xyXG4gICAgICAgICAgd2lkdGg6IDFcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNoYXJ0U2VyaWVzOiB7XHJcbiAgICAgICAgcGFsZXR0ZXM6IHRoaXMuX3BhbGV0dGVzKCksXHJcbiAgICAgICAgdHlwZTogY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgIC8vd2lkdGg6IDIsXHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgICAgbWFya2VyOiB7IGhlaWdodDogMTAsIHdpZHRoOiAxMCwgc2hhcGU6ICdQZW50YWdvbicsIHZpc2libGU6IGxpbmUgfSxcclxuICAgICAgfSxcclxuICAgICAgZW5hYmxlRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjaGFydEFyZWE6IHtcclxuICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aGVtZTogdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgICBsZWdlbmRTZXR0aW5nczoge1xyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzSW52ZXJzZWQ6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZVxyXG4gICAgICB9LFxyXG4gICAgICB0b29sdGlwOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHN1YlRpdGxlU3R5bGU6IHtcclxuICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICB9LFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyb3NzaGFpclRvb2x0aXA6IHsgZW5hYmxlOiBsaW5lIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGZvcm1hdFNldHRpbmdzOiBGb3JtYXRTZXR0aW5nc01vZGVsW10gPSBbe1xyXG4gICAgICBuYW1lOiAndmFsdWUnLCBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ0MnIDogJ04nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzLFxyXG4gICAgICAvL21pbmltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5Q29kZVxyXG4gICAgfV07XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5fc2VyaWVzLm1hcChhID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBhLm5hbWUsXHJcbiAgICAgICAgY2FwdGlvbjogYS50aXRsZVxyXG4gICAgICB9IGFzIEZpZWxkT3B0aW9uc01vZGVsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyA9IHtcclxuICAgICAgY29sdW1uczogW3tcclxuICAgICAgICBuYW1lOiAndHlwZSdcclxuICAgICAgfV0sXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgICAgICAgICBjYXB0aW9uOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZSxcclxuICAgICAgc29ydFNldHRpbmdzOiB0aGlzLl9zZXJpZXMubWFwKHMgPT4geyByZXR1cm4geyBuYW1lOiBgXyR7cy5uYW1lfWAgfSBhcyBTb3J0TW9kZWwgfSksXHJcbiAgICAgIGV4cGFuZEFsbDogdGhpcy5fY29sbGFwc2UgfHwgZmFsc2UsXHJcbiAgICAgIGZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBkYXRhU291cmNlOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFt0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpXS5cclxuICAgICAgY29uY2F0KHRoaXMuX2luZGljZXMubWFwKChfLCBpKSA9PlxyXG4gICAgICAgIHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgzMDAgKyAzMDAgKiBpIGFzIE1hdGVyaWFsTW9kZSkpKTtcclxuICB9XHJcblxyXG4gIGRhdGFCb3VuZChhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGl2b3QuY2hhcnQucG9pbnRDbGljayA9IHRoaXMucG9pbnRDbGljay5iaW5kKHRoaXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gcmVzdWx0XHJcbiAgICovXHJcbiAgb25EYXRhKHJlc3VsdDogSXRlbVtdKSB7XHJcbiAgICB0aGlzLl9kZWNvcmF0ZShyZXN1bHQpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLmRhdGFTb3VyY2UgPSByIGFzIGFueTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCA9IG5ldyBQaXZvdFZpZXcoe1xyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIGRhdGFCb3VuZDogdGhpcy5kYXRhQm91bmQuYmluZCh0aGlzKSxcclxuICAgICAgY2hhcnRTZXR0aW5nczogdGhpcy5jaGFydFNldHRpbmdzLFxyXG4gICAgICBkaXNwbGF5T3B0aW9uOiB0aGlzLmRpc3BsYXlPcHRpb24sXHJcbiAgICAgIGRhdGFTb3VyY2VTZXR0aW5nczogdGhpcy5kYXRhU291cmNlU2V0dGluZ3MsXHJcbiAgICAgIHNwaW5uZXJUZW1wbGF0ZTogJycsXHJcbiAgICAgIGFsbG93Q29uZGl0aW9uYWxGb3JtYXR0aW5nOiB0cnVlLFxyXG4gICAgICBhbGxvd0V4Y2VsRXhwb3J0OiB0cnVlLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmNoYXJ0KSB7XHJcbiAgICAgIC8vdGhpcy5waXZvdC5jaGFydC5oZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgICAgdGhpcy5waXZvdC5jaGFydC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkV4cG9ydCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlLCAnbmFycm93JykgK1xyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSwgTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3kpXHJcbiAgICAgIDogZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwpLFxyXG4gICAgICBjb2x1bW5zID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IHRoaXMuX29wdGlvbnMuc2VyaWVzLmluZGV4T2YoYS5uYW1lKSA+IC0xKSxcclxuICAgICAgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHM6IGNvbHVtbnMubWFwKChjLCBpKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAxLCB2YWx1ZTogYy50aXRsZSxcclxuICAgICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBDZWxsKSlcclxuICAgICAgfV0gYXMgUm93W107XHJcbiAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICB2YWx1ZTogdGhpcy5fY3ViZS55QXhpcyA/IHRoaXMuX2N1YmUueUF4aXMudGl0bGUgOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgcm93c1swXS5jZWxscy5wdXNoKHtcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyBpICsgMixcclxuICAgICAgICB2YWx1ZTogeC50aXRsZSxcclxuICAgICAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0pKTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgociwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IGNvbHVtbnMubWFwKChjLCBqKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGluZGV4OiBqICsgMSwgdmFsdWU6IHJbYy5uYW1lXSxcclxuICAgICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICAgIGNlbGxTdHlsZToge1xyXG4gICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgaEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2YWx1ZTogclsndmFsdWUnXVxyXG4gICAgICB9IGFzIENlbGwpO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDIsXHJcbiAgICAgICAgICBjZWxsU3R5bGU6IHtcclxuICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB2YWx1ZTogclt4Lm5hbWVdXHJcbiAgICAgICAgfSBhcyBDZWxsKVxyXG4gICAgICApO1xyXG4gICAgICByb3dzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgY2VsbHNcclxuICAgICAgICB9IGFzIFJvdylcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogWy4uLmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAgICwgeyBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxIH0sXHJcbiAgICAgICAgICAgIC4uLih0aGlzLl9pbmRpY2VzID8gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDJcclxuICAgICAgICAgICAgfSkpIDogW10pXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgZGF0YSBzb3VyY2UgZGVzY3JpcHRpb24gdG8gaXRlbSBrZXlzLCBhbmQgbm9ybWFsaXplcyBpbmRpY2VzLlxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShyZXN1bHQ6IEl0ZW1bXSk6IE9ic2VydmFibGU8e31bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9IHJvd1thLm5hbWVdIGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCB2YWwpLlxyXG4gICAgICAgICAgICBwaXBlKHRhcCgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSB2YWw7XHJcbiAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSB2IHx8IHZhbDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRhdGE6IHt9W10gPSBbXTtcclxuICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKGJhc2VSb3cgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VSb3cudXNhZ2U7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5feVRpdGxlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBiYXNlUm93W2BfJHthLm5hbWV9YF07XHJcbiAgICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IGJhc2VSb3dbYS5uYW1lXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBkYXRhLnB1c2gocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBiYXNlUm93W2kubmFtZV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdHlwZTogaS50aXRsZSwgdmFsdWUgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IGJhc2VSb3dbYF8ke2EubmFtZX1gXTtcclxuICAgICAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSBiYXNlUm93W2EubmFtZV07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pKS5cclxuICAgICAgICAgIHN1YnNjcmliZShyID0+XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIG9ic2VydmUubmV4dChbXSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGVcclxuICAgKi9cclxuICBwb2ludENsaWNrKGU6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBwb2ludDogeyB4LCB5VmFsdWUgfSwgc2VyaWVzOiB7IG5hbWU6IHRpdGxlIH0gfSA9IGU7XHJcbiAgICBpZiAoeVZhbHVlID09PSAwKSB7XHJcbiAgICAgIGUuY2FuY2VsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55OyB9ID0gdGhpcy5fYXhlcyh4IGFzIHN0cmluZyk7XHJcbiAgICBzdXBlci5icm93c2UoYXhlcywgdGl0bGUgPT09IHRoaXMuX3lUaXRsZSA/IG51bGwgOiB0aGlzLl9pbmRleE5hbWUodGl0bGUpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV2ZXJzZSBlbmdpbmVlcmluZyBheGVzIGZyb20gc2VyaWVzIGxhYmVsXHJcbiAgICogQHBhcmFtIGxhYmVsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYXhlcyhsYWJlbDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTsgfSA9IHt9O1xyXG4gICAgbGFiZWwuc3BsaXQoJyAtICcpLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5kYXRhU291cmNlU2V0dGluZ3Mucm93c1tpXS5uYW1lLFxyXG4gICAgICAgIGVsZW1lbnQgPSB0aGlzLl9kYXRhLmZpbmQoZSA9PiBlW2NvbHVtbl0gPT09IHgpO1xyXG4gICAgICBheGVzW2NvbHVtbl0gPSBlbGVtZW50ID8gZWxlbWVudFtgXyR7Y29sdW1ufWBdIDogeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGF4ZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGluZGV4IG5hbWUgZnJvbSB0aXRsZVxyXG4gICAqIEBwYXJhbSB0aXRsZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2luZGV4TmFtZSh0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5faW5kaWNlcy5maW5kKGkgPT4gaS50aXRsZSA9PT0gdGl0bGUpO1xyXG4gICAgcmV0dXJuIGluZGV4Lm5hbWU7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5waXZvdCAmJiB0aGlzLnBpdm90LmRlc3Ryb3koKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBPcHRpb25zIGV4dGVuZHMgVXNhZ2VPcHRpb25zIHtcclxuICBjaGFydFR5cGU/OiBDaGFydFNlcmllc1R5cGU7XHJcbn1cclxuIl19