@tuki-io/tuki-widgets 0.0.158 → 0.0.161

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 (95) hide show
  1. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
  2. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
  3. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
  4. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
  5. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
  6. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +17 -17
  7. package/esm2020/user-creation/public-api.mjs +13 -0
  8. package/esm2020/user-creation/src/shared/material.module.mjs +76 -0
  9. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +10 -0
  10. package/esm2020/user-creation/src/shared/shared.module.mjs +33 -0
  11. package/esm2020/user-creation/src/user-creation.module.mjs +58 -0
  12. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +23 -0
  13. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.mjs +19 -0
  14. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +20 -0
  15. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +34 -0
  16. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +192 -0
  17. package/esm2020/user-creation/tuki-io-tuki-widgets-user-creation.mjs +5 -0
  18. package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
  19. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  20. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +22 -12
  21. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
  22. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +36 -26
  23. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  24. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
  25. package/esm2020/user-device-manage/src/services/api.service.mjs +1 -1
  26. package/esm2020/user-device-manage/src/services/dns.service.mjs +34 -2
  27. package/esm2020/user-device-manage/src/services/line.service.mjs +4 -4
  28. package/esm2020/user-device-manage/src/services/user.service.mjs +68 -47
  29. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +1 -1
  30. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
  31. package/esm2020/user-manage/src/app.constants.mjs +1 -1
  32. package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
  33. package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
  34. package/esm2020/user-manage/src/classes/line.mjs +1 -1
  35. package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
  36. package/esm2020/user-manage/src/classes/simplified-user.mjs +1 -1
  37. package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
  38. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
  39. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  40. package/esm2020/user-manage/src/services/api.service.mjs +1 -1
  41. package/esm2020/user-manage/src/services/user.service.mjs +1 -1
  42. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +4 -6
  43. package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
  44. package/esm2020/user-manage/src/user-manage.module.mjs +1 -1
  45. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
  46. package/esm2020/users-list/src/app.constants.mjs +1 -1
  47. package/esm2020/users-list/src/classes/move-user.mjs +1 -1
  48. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +9 -3
  49. package/esm2020/users-list/src/services/dns.service.mjs +2 -2
  50. package/esm2020/users-list/src/services/user.service.mjs +1 -1
  51. package/esm2020/users-list/src/users-list.component.mjs +9 -3
  52. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
  53. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  54. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  55. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  56. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  57. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +429 -0
  58. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -0
  59. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +317 -249
  60. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  61. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +13 -15
  62. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  63. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +19 -7
  64. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  65. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  66. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  67. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  68. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  69. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +440 -0
  70. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -0
  71. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +320 -251
  72. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  73. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +13 -15
  74. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  75. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +19 -7
  76. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  77. package/package.json +9 -1
  78. package/user-creation/index.d.ts +5 -0
  79. package/user-creation/public-api.d.ts +2 -0
  80. package/user-creation/src/shared/material.module.d.ts +15 -0
  81. package/user-creation/src/shared/services/user-creation-api.service.d.ts +5 -0
  82. package/user-creation/src/shared/shared.module.d.ts +10 -0
  83. package/user-creation/src/user-creation.module.d.ts +15 -0
  84. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +8 -0
  85. package/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.d.ts +11 -0
  86. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +8 -0
  87. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +11 -0
  88. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +81 -0
  89. package/user-device-manage/src/classes/deviceProfile.d.ts +9 -0
  90. package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +6 -2
  91. package/user-device-manage/src/device-manage-widget.component.d.ts +7 -3
  92. package/user-device-manage/src/services/dns.service.d.ts +4 -0
  93. package/user-device-manage/src/services/user.service.d.ts +20 -18
  94. package/users-list/src/components/table-toolbar/table-toolbar.component.d.ts +3 -1
  95. package/users-list/src/users-list.component.d.ts +3 -1
@@ -5,6 +5,7 @@ export class TableToolbarComponent {
5
5
  constructor() {
6
6
  this.searchChange = new EventEmitter();
7
7
  this.searchByType = new EventEmitter();
8
+ this.addUser = new EventEmitter();
8
9
  }
9
10
  onSearchInputChange(event) {
10
11
  const value = event.target.value.trim().toLowerCase() || '';
@@ -16,17 +17,22 @@ export class TableToolbarComponent {
16
17
  const value = event.target.value;
17
18
  this.searchByType.emit(value);
18
19
  }
20
+ onAddUser() {
21
+ this.addUser.emit();
22
+ }
19
23
  }
20
24
  TableToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- TableToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableToolbarComponent, selector: "tk-users-table-toolbar", inputs: { totalUsersCount: "totalUsersCount" }, outputs: { searchChange: "searchChange", searchByType: "searchByType" }, ngImport: i0, template: "<header style=\"margin-bottom: 1rem;\">\r\n <div style=\"display: flex; align-items: center; justify-content: space-between;\">\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px;\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px;\">\r\n <input (input)=\"onSearchInputChange($event)\" type=\"text\" placeholder=\"Search by display name, email\" style=\"width: 100%; height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 12px 6px 44px; border: 1px solid #00000080; background: #fff; color: #222; outline: none; box-sizing: border-box; min-width: 280px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">search</i>\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Filter Select -->\r\n <div style=\"display: flex; align-items: center; position: relative; width: fit-content; min-width: 200px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">filter_list</i>\r\n </span>\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 44px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Location Select -->\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\"\r\n (change)=\"onTypeChange($event)\">\r\n <option value=\"null\" disabled selected hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Dedicated Instance</option>\r\n <option value=\"WEBEX\">Multi-Tenant</option>\r\n <option value=\"ONPREM\">On Prem</option>\r\n </select>\r\n <span style=\"margin-left: 8px; color: #757575; font-size: 1rem; white-space: nowrap;\">{{ totalUsersCount }} users</span>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem;\">\r\n <button class=\"btn si\">\r\n Send invitations\r\n </button>\r\n <button class=\"btn mu\">\r\n Manage users\r\n </button>\r\n </div>\r\n </div>\r\n</header>", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
25
+ TableToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableToolbarComponent, selector: "tk-users-table-toolbar", inputs: { totalUsersCount: "totalUsersCount" }, outputs: { searchChange: "searchChange", searchByType: "searchByType", addUser: "addUser" }, ngImport: i0, template: "<header style=\"margin-bottom: 1rem;\">\r\n <div style=\"display: flex; align-items: center; justify-content: space-between;\">\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px;\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px;\">\r\n <input (input)=\"onSearchInputChange($event)\" type=\"text\" placeholder=\"Search by display name, email\" style=\"width: 100%; height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 12px 6px 44px; border: 1px solid #00000080; background: #fff; color: #222; outline: none; box-sizing: border-box; min-width: 280px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">search</i>\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Filter Select -->\r\n <div style=\"display: flex; align-items: center; position: relative; width: fit-content; min-width: 200px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">filter_list</i>\r\n </span>\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 44px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Location Select -->\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\"\r\n (change)=\"onTypeChange($event)\">\r\n <option value=\"null\" disabled selected hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Dedicated Instance</option>\r\n <option value=\"WEBEX\">Multi-Tenant</option>\r\n <option value=\"ONPREM\">On Prem</option>\r\n </select>\r\n <span style=\"margin-left: 8px; color: #757575; font-size: 1rem; white-space: nowrap;\">{{ totalUsersCount }} users</span>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem;\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">\r\n Add user\r\n </button>\r\n </div>\r\n </div>\r\n</header>", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
22
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableToolbarComponent, decorators: [{
23
27
  type: Component,
24
- args: [{ selector: 'tk-users-table-toolbar', template: "<header style=\"margin-bottom: 1rem;\">\r\n <div style=\"display: flex; align-items: center; justify-content: space-between;\">\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px;\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px;\">\r\n <input (input)=\"onSearchInputChange($event)\" type=\"text\" placeholder=\"Search by display name, email\" style=\"width: 100%; height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 12px 6px 44px; border: 1px solid #00000080; background: #fff; color: #222; outline: none; box-sizing: border-box; min-width: 280px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">search</i>\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Filter Select -->\r\n <div style=\"display: flex; align-items: center; position: relative; width: fit-content; min-width: 200px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">filter_list</i>\r\n </span>\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 44px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Location Select -->\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\"\r\n (change)=\"onTypeChange($event)\">\r\n <option value=\"null\" disabled selected hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Dedicated Instance</option>\r\n <option value=\"WEBEX\">Multi-Tenant</option>\r\n <option value=\"ONPREM\">On Prem</option>\r\n </select>\r\n <span style=\"margin-left: 8px; color: #757575; font-size: 1rem; white-space: nowrap;\">{{ totalUsersCount }} users</span>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem;\">\r\n <button class=\"btn si\">\r\n Send invitations\r\n </button>\r\n <button class=\"btn mu\">\r\n Manage users\r\n </button>\r\n </div>\r\n </div>\r\n</header>", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"] }]
28
+ args: [{ selector: 'tk-users-table-toolbar', template: "<header style=\"margin-bottom: 1rem;\">\r\n <div style=\"display: flex; align-items: center; justify-content: space-between;\">\r\n <div class=\"collection-header-left\">\r\n <div style=\"display: flex; align-items: center; gap: 12px;\">\r\n <!-- Search Input -->\r\n <div style=\"position: relative; width: fit-content; min-width: 200px;\">\r\n <input (input)=\"onSearchInputChange($event)\" type=\"text\" placeholder=\"Search by display name, email\" style=\"width: 100%; height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 12px 6px 44px; border: 1px solid #00000080; background: #fff; color: #222; outline: none; box-sizing: border-box; min-width: 280px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">search</i>\r\n </span>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Filter Select -->\r\n <div style=\"display: flex; align-items: center; position: relative; width: fit-content; min-width: 200px;\">\r\n <span style=\"position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #757575; font-size: 18px; font-weight: normal; pointer-events: none;\">\r\n <i class=\"material-icons\" style=\"font-size: 18px; font-weight: normal;\">filter_list</i>\r\n </span>\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 44px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Filter</option>\r\n </select>\r\n </div>\r\n <span style=\"margin: 0 4px; color: #757575; font-size: 1rem;\">or</span>\r\n <!-- Location Select -->\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\">\r\n <option>Select a Location</option>\r\n </select>\r\n\r\n <select style=\"height: 34px; border-radius: .5rem; font-size: 16px; padding: 6px 32px 6px 12px; border: 1px solid #00000080; background: #fff; min-width: 200px; width: fit-content; color: #222; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg fill=\\'%23757575\\' height=\\'20\\' viewBox=\\'0 0 24 24\\' width=\\'20\\' xmlns=\\'http://www.w3.org/2000/svg\\'><path d=\\'M7 10l5 5 5-5z\\'/></svg>'); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px 20px;\"\r\n (change)=\"onTypeChange($event)\">\r\n <option value=\"null\" disabled selected hidden>Select type</option>\r\n <option value=\"\">All</option>\r\n <option value=\"CUCM\">Dedicated Instance</option>\r\n <option value=\"WEBEX\">Multi-Tenant</option>\r\n <option value=\"ONPREM\">On Prem</option>\r\n </select>\r\n <span style=\"margin-left: 8px; color: #757575; font-size: 1rem; white-space: nowrap;\">{{ totalUsersCount }} users</span>\r\n </div>\r\n </div>\r\n <div style=\"display: flex; gap: 1rem;\">\r\n <button class=\"btn mu\" (click)=\"onAddUser()\">\r\n Add user\r\n </button>\r\n </div>\r\n </div>\r\n</header>", styles: [".btn{position:relative;display:inline-flex;gap:6px;align-items:center;justify-content:center;overflow:hidden!important;width:min-content;max-width:100%;padding:0rem .75rem;border:1px solid transparent;border-radius:6.25rem;font-weight:500;font-size:14px;text-overflow:ellipsis;white-space:nowrap;transition:all .1s cubic-bezier(.25,.1,.25,1);height:2rem;cursor:pointer}.btn:hover{background-color:#0000000d}.si{border-color:#0000004d;background-color:#0000;color:#000000f2}.mu{color:#fff;background-color:#000000f2}.mu:hover{background-color:#232323e6!important}\n"] }]
25
29
  }], propDecorators: { totalUsersCount: [{
26
30
  type: Input
27
31
  }], searchChange: [{
28
32
  type: Output
29
33
  }], searchByType: [{
30
34
  type: Output
35
+ }], addUser: [{
36
+ type: Output
31
37
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvY29tcG9uZW50cy90YWJsZS10b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL2NvbXBvbmVudHMvdGFibGUtdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBT3VCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0tBaUJ6RTtJQWJHLG1CQUFtQixDQUFDLEtBQVk7UUFDNUIsTUFBTSxLQUFLLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUVsRixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBWTtRQUM1QixNQUFNLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBNEIsQ0FBQyxLQUF3QixDQUFDO1FBRTNFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O21IQW5CUSxxQkFBcUI7dUdBQXJCLHFCQUFxQix1TENUbEMsaTNJQStDUzs0RkR0Q0kscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLHdCQUF3Qjs4QkFLekIsZUFBZTtzQkFBdkIsS0FBSztnQkFDYSxZQUFZO3NCQUE5QixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFVTRVJfVFlQRVNfVFlQRSB9IGZyb20gXCIuLi8uLi9hcHAuY29uc3RhbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGstdXNlcnMtdGFibGUtdG9vbGJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS10b29sYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlVG9vbGJhckNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSB0b3RhbFVzZXJzQ291bnQhOiBudW1iZXI7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VhcmNoQnlUeXBlID0gbmV3IEV2ZW50RW1pdHRlcjxVU0VSX1RZUEVTX1RZUEU+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSB0aW1lcklkITogbnVtYmVyOyBcclxuXHJcbiAgICBvblNlYXJjaElucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSB8fCAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudGltZXJJZCkgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHZhbHVlKSwgMTUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVHlwZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIFVTRVJfVFlQRVNfVFlQRTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWFyY2hCeVR5cGUuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcbn0iLCI8aGVhZGVyIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMXJlbTtcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDtcIj5cclxuICAgICAgICAgIDwhLS0gU2VhcmNoIElucHV0IC0tPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IGZpdC1jb250ZW50OyBtaW4td2lkdGg6IDIwMHB4O1wiPlxyXG4gICAgICAgICAgICA8aW5wdXQgKGlucHV0KT1cIm9uU2VhcmNoSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZGlzcGxheSBuYW1lLCBlbWFpbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMzRweDsgYm9yZGVyLXJhZGl1czogLjVyZW07IGZvbnQtc2l6ZTogMTZweDsgcGFkZGluZzogNnB4IDEycHggNnB4IDQ0cHg7IGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA4MDsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMyMjI7IG91dGxpbmU6IG5vbmU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IG1pbi13aWR0aDogMjgwcHg7XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMnB4OyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBjb2xvcjogIzc1NzU3NTsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogbm9ybWFsOyBwb2ludGVyLWV2ZW50czogbm9uZTtcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7XCI+c2VhcmNoPC9pPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luOiAwIDRweDsgY29sb3I6ICM3NTc1NzU7IGZvbnQtc2l6ZTogMXJlbTtcIj5vcjwvc3Bhbj5cclxuICAgICAgICAgIDwhLS0gRmlsdGVyIFNlbGVjdCAtLT5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiBmaXQtY29udGVudDsgbWluLXdpZHRoOiAyMDBweDtcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEycHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHBvaW50ZXItZXZlbnRzOiBub25lO1wiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDtcIj5maWx0ZXJfbGlzdDwvaT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c2VsZWN0IHN0eWxlPVwiaGVpZ2h0OiAzNHB4OyBib3JkZXItcmFkaXVzOiAuNXJlbTsgZm9udC1zaXplOiAxNnB4OyBwYWRkaW5nOiA2cHggMzJweCA2cHggNDRweDsgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDgwOyBiYWNrZ3JvdW5kOiAjZmZmOyBtaW4td2lkdGg6IDIwMHB4OyB3aWR0aDogZml0LWNvbnRlbnQ7IGNvbG9yOiAjMjIyOyBhcHBlYXJhbmNlOiBub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC1tb3otYXBwZWFyYW5jZTogbm9uZTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIGZpbGw9XFwnJTIzNzU3NTc1XFwnIGhlaWdodD1cXCcyMFxcJyB2aWV3Qm94PVxcJzAgMCAyNCAyNFxcJyB3aWR0aD1cXCcyMFxcJyB4bWxucz1cXCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcJz48cGF0aCBkPVxcJ003IDEwbDUgNSA1LTV6XFwnLz48L3N2Zz4nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTJweCBjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1wiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24+RmlsdGVyPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbjogMCA0cHg7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDFyZW07XCI+b3I8L3NwYW4+XHJcbiAgICAgICAgICA8IS0tIExvY2F0aW9uIFNlbGVjdCAtLT5cclxuICAgICAgICAgIDxzZWxlY3Qgc3R5bGU9XCJoZWlnaHQ6IDM0cHg7IGJvcmRlci1yYWRpdXM6IC41cmVtOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7IGJhY2tncm91bmQ6ICNmZmY7IG1pbi13aWR0aDogMjAwcHg7IHdpZHRoOiBmaXQtY29udGVudDsgY29sb3I6ICMyMjI7IGFwcGVhcmFuY2U6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiBub25lOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgZmlsbD1cXCclMjM3NTc1NzVcXCcgaGVpZ2h0PVxcJzIwXFwnIHZpZXdCb3g9XFwnMCAwIDI0IDI0XFwnIHdpZHRoPVxcJzIwXFwnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnPjxwYXRoIGQ9XFwnTTcgMTBsNSA1IDUtNXpcXCcvPjwvc3ZnPicpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24+U2VsZWN0IGEgTG9jYXRpb248L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDxzZWxlY3Qgc3R5bGU9XCJoZWlnaHQ6IDM0cHg7IGJvcmRlci1yYWRpdXM6IC41cmVtOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7IGJhY2tncm91bmQ6ICNmZmY7IG1pbi13aWR0aDogMjAwcHg7IHdpZHRoOiBmaXQtY29udGVudDsgY29sb3I6ICMyMjI7IGFwcGVhcmFuY2U6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiBub25lOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgZmlsbD1cXCclMjM3NTc1NzVcXCcgaGVpZ2h0PVxcJzIwXFwnIHZpZXdCb3g9XFwnMCAwIDI0IDI0XFwnIHdpZHRoPVxcJzIwXFwnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnPjxwYXRoIGQ9XFwnTTcgMTBsNSA1IDUtNXpcXCcvPjwvc3ZnPicpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvblR5cGVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibnVsbFwiIGRpc2FibGVkIHNlbGVjdGVkIGhpZGRlbj5TZWxlY3QgdHlwZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+QWxsPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDVUNNXCI+RGVkaWNhdGVkIEluc3RhbmNlPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJXRUJFWFwiPk11bHRpLVRlbmFudDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiT05QUkVNXCI+T24gUHJlbTwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA4cHg7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDFyZW07IHdoaXRlLXNwYWNlOiBub3dyYXA7XCI+e3sgdG90YWxVc2Vyc0NvdW50IH19IHVzZXJzPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTtcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHNpXCI+XHJcbiAgICAgICAgICBTZW5kIGludml0YXRpb25zXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtdVwiPlxyXG4gICAgICAgICAgTWFuYWdlIHVzZXJzXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvaGVhZGVyPiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvY29tcG9uZW50cy90YWJsZS10b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL2NvbXBvbmVudHMvdGFibGUtdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBT3VCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ25ELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBcUJ6RDtJQWpCRyxtQkFBbUIsQ0FBQyxLQUFZO1FBQzVCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFbEYsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQVk7UUFDNUIsTUFBTSxLQUFLLEdBQUksS0FBSyxDQUFDLE1BQTRCLENBQUMsS0FBd0IsQ0FBQztRQUUzRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7bUhBeEJRLHFCQUFxQjt1R0FBckIscUJBQXFCLDJNQ1RsQyw2eUlBNENTOzRGRG5DSSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksd0JBQXdCOzhCQUt6QixlQUFlO3NCQUF2QixLQUFLO2dCQUNhLFlBQVk7c0JBQTlCLE1BQU07Z0JBQ1ksWUFBWTtzQkFBOUIsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVU0VSX1RZUEVTX1RZUEUgfSBmcm9tIFwiLi4vLi4vYXBwLmNvbnN0YW50c1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RrLXVzZXJzLXRhYmxlLXRvb2xiYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtdG9vbGJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVRvb2xiYXJDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgdG90YWxVc2Vyc0NvdW50ITogbnVtYmVyO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlYXJjaEJ5VHlwZSA9IG5ldyBFdmVudEVtaXR0ZXI8VVNFUl9UWVBFU19UWVBFPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGFkZFVzZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSB0aW1lcklkITogbnVtYmVyOyBcclxuXHJcbiAgICBvblNlYXJjaElucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSB8fCAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudGltZXJJZCkgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHZhbHVlKSwgMTUwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVHlwZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIFVTRVJfVFlQRVNfVFlQRTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWFyY2hCeVR5cGUuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25BZGRVc2VyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRkVXNlci5lbWl0KCk7XHJcbiAgICB9XHJcbn0iLCI8aGVhZGVyIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMXJlbTtcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDtcIj5cclxuICAgICAgICAgIDwhLS0gU2VhcmNoIElucHV0IC0tPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IGZpdC1jb250ZW50OyBtaW4td2lkdGg6IDIwMHB4O1wiPlxyXG4gICAgICAgICAgICA8aW5wdXQgKGlucHV0KT1cIm9uU2VhcmNoSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgZGlzcGxheSBuYW1lLCBlbWFpbFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMzRweDsgYm9yZGVyLXJhZGl1czogLjVyZW07IGZvbnQtc2l6ZTogMTZweDsgcGFkZGluZzogNnB4IDEycHggNnB4IDQ0cHg7IGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA4MDsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMyMjI7IG91dGxpbmU6IG5vbmU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IG1pbi13aWR0aDogMjgwcHg7XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMnB4OyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBjb2xvcjogIzc1NzU3NTsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogbm9ybWFsOyBwb2ludGVyLWV2ZW50czogbm9uZTtcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7XCI+c2VhcmNoPC9pPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwibWFyZ2luOiAwIDRweDsgY29sb3I6ICM3NTc1NzU7IGZvbnQtc2l6ZTogMXJlbTtcIj5vcjwvc3Bhbj5cclxuICAgICAgICAgIDwhLS0gRmlsdGVyIFNlbGVjdCAtLT5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiBmaXQtY29udGVudDsgbWluLXdpZHRoOiAyMDBweDtcIj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEycHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHBvaW50ZXItZXZlbnRzOiBub25lO1wiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDtcIj5maWx0ZXJfbGlzdDwvaT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c2VsZWN0IHN0eWxlPVwiaGVpZ2h0OiAzNHB4OyBib3JkZXItcmFkaXVzOiAuNXJlbTsgZm9udC1zaXplOiAxNnB4OyBwYWRkaW5nOiA2cHggMzJweCA2cHggNDRweDsgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDgwOyBiYWNrZ3JvdW5kOiAjZmZmOyBtaW4td2lkdGg6IDIwMHB4OyB3aWR0aDogZml0LWNvbnRlbnQ7IGNvbG9yOiAjMjIyOyBhcHBlYXJhbmNlOiBub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC1tb3otYXBwZWFyYW5jZTogbm9uZTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIGZpbGw9XFwnJTIzNzU3NTc1XFwnIGhlaWdodD1cXCcyMFxcJyB2aWV3Qm94PVxcJzAgMCAyNCAyNFxcJyB3aWR0aD1cXCcyMFxcJyB4bWxucz1cXCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcJz48cGF0aCBkPVxcJ003IDEwbDUgNSA1LTV6XFwnLz48L3N2Zz4nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTJweCBjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1wiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24+RmlsdGVyPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbjogMCA0cHg7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDFyZW07XCI+b3I8L3NwYW4+XHJcbiAgICAgICAgICA8IS0tIExvY2F0aW9uIFNlbGVjdCAtLT5cclxuICAgICAgICAgIDxzZWxlY3Qgc3R5bGU9XCJoZWlnaHQ6IDM0cHg7IGJvcmRlci1yYWRpdXM6IC41cmVtOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7IGJhY2tncm91bmQ6ICNmZmY7IG1pbi13aWR0aDogMjAwcHg7IHdpZHRoOiBmaXQtY29udGVudDsgY29sb3I6ICMyMjI7IGFwcGVhcmFuY2U6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiBub25lOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgZmlsbD1cXCclMjM3NTc1NzVcXCcgaGVpZ2h0PVxcJzIwXFwnIHZpZXdCb3g9XFwnMCAwIDI0IDI0XFwnIHdpZHRoPVxcJzIwXFwnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnPjxwYXRoIGQ9XFwnTTcgMTBsNSA1IDUtNXpcXCcvPjwvc3ZnPicpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24+U2VsZWN0IGEgTG9jYXRpb248L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDxzZWxlY3Qgc3R5bGU9XCJoZWlnaHQ6IDM0cHg7IGJvcmRlci1yYWRpdXM6IC41cmVtOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDZweCAzMnB4IDZweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwODA7IGJhY2tncm91bmQ6ICNmZmY7IG1pbi13aWR0aDogMjAwcHg7IHdpZHRoOiBmaXQtY29udGVudDsgY29sb3I6ICMyMjI7IGFwcGVhcmFuY2U6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiBub25lOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgZmlsbD1cXCclMjM3NTc1NzVcXCcgaGVpZ2h0PVxcJzIwXFwnIHZpZXdCb3g9XFwnMCAwIDI0IDI0XFwnIHdpZHRoPVxcJzIwXFwnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnPjxwYXRoIGQ9XFwnTTcgMTBsNSA1IDUtNXpcXCcvPjwvc3ZnPicpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyMHB4IDIwcHg7XCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvblR5cGVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibnVsbFwiIGRpc2FibGVkIHNlbGVjdGVkIGhpZGRlbj5TZWxlY3QgdHlwZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+QWxsPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDVUNNXCI+RGVkaWNhdGVkIEluc3RhbmNlPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJXRUJFWFwiPk11bHRpLVRlbmFudDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiT05QUkVNXCI+T24gUHJlbTwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA4cHg7IGNvbG9yOiAjNzU3NTc1OyBmb250LXNpemU6IDFyZW07IHdoaXRlLXNwYWNlOiBub3dyYXA7XCI+e3sgdG90YWxVc2Vyc0NvdW50IH19IHVzZXJzPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTtcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIG11XCIgKGNsaWNrKT1cIm9uQWRkVXNlcigpXCI+XHJcbiAgICAgICAgICBBZGQgdXNlclxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2hlYWRlcj4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { API } from '../app.constants';
3
3
  import { map } from 'rxjs/operators';
4
- import * as Big from 'big.js';
4
+ import Big from 'big.js';
5
5
  import { Observable } from 'rxjs';
6
6
  import { DnRangeType } from '../classes/line';
7
7
  import * as i0 from "@angular/core";
@@ -117,4 +117,4 @@ DnsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
117
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService, decorators: [{
118
118
  type: Injectable
119
119
  }], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }]; } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvZG5zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUlsRixNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTjFDLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixpQkFBWSxHQUFhLEVBQUUsQ0FBQztJQU81QixDQUFDO0lBQ00sY0FBYyxDQUFDLE1BQWMsRUFBRSxjQUFzQixFQUFFLFFBQWtCLEVBQUUsSUFBYSxFQUFFLFFBQWlCO1FBQ2hILGFBQWE7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDakQsT0FBTyxJQUFJLFVBQVUsQ0FBTSxRQUFRLENBQUMsRUFBRTtnQkFDcEMsYUFBYTtnQkFDYixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsOEJBQThCLEdBQUcsRUFB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QUFDLENBQUMsQ0FBQzthQUN2QztZQUNELE9BQU8sWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzdELE1BQU0sTUFBTSxHQUFHO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixVQUFVLEVBQUUsUUFBUTtTQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUM7YUFDdkksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hCLElBQUksTUFBTSxFQUFFLE1BQU0sRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakU7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7d0dBbkhVLFVBQVU7NEdBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIEJpZyBmcm9tICdiaWcuanMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwaVdlYmV4U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwaS13ZWJleC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXZhaWxhYmxlUGhvbmVOdW1iZXJSYW5nZUludGVyZmFjZSwgRG5SYW5nZVR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL2xpbmUnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERuc1NlcnZpY2Uge1xyXG4gIGF2YWlsYWJsZU51bWJlcnMgPSB7fTtcclxuICBhdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG4hOiBhbnk7XHJcbiAgcGhvbmVOdW1iZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpV2ViZXhTZXJ2aWNlOiBBcGlXZWJleFNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG4gIHB1YmxpYyBnZXROdW1iZXJSYW5nZShzaXRlSWQ6IHN0cmluZywgcm91dGVQYXJ0aXRpb246IHN0cmluZywgd2l0aGRpZHM/OiBib29sZWFuLCBmcm9tPzogc3RyaW5nLCBwYWdlU2l6ZT86IG51bWJlcik6IGFueSB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBpZiAodGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXT8ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmVyID0+IHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLmF2YWlsYWJsZU51bWJlcnNbcm91dGVQYXJ0aXRpb25dKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG4gPSB7fTtcclxuICAgIHBhZ2VTaXplID0gcGFnZVNpemUgPyBwYWdlU2l6ZSA6IDIwO1xyXG4gICAgY29uc3QgcGFyYW1zID0ge2RudHlwZTogRG5SYW5nZVR5cGUuZXh0ZW5zaW9uLCByb3V0ZXBhcnRpdGlvbjogcm91dGVQYXJ0aXRpb24sIHNpemU6IHBhZ2VTaXplLCBwYWdlOiAwfTtcclxuICAgIGlmICh3aXRoZGlkcykge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHBhcmFtc1snd2l0aGRpZHMnXSA9ICd0cnVlJztcclxuICAgIH1cclxuICAgIGlmIChmcm9tKSB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgcGFyYW1zWydmcm9tJ10gPSBmcm9tO1xyXG4gICAgfVxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXSA9IHRoaXMuYXZhaWxhYmxlTnVtYmVyc1tyb3V0ZVBhcnRpdGlvbl0gfHwgW107XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuQVZBSUxBQkxFX0ROX0lOX1JBTkdFUy5yZXBsYWNlKCc6c2l0ZUlkJywgc2l0ZUlkKSwgcGFyYW1zKVxyXG4gICAgICAucGlwZShtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXMuYXZhaWxhYmxlTnVtYmVyTGlzdC5mb3JFYWNoKChhdmFpbGFibGVOdW1iZXI6IEF2YWlsYWJsZVBob25lTnVtYmVyUmFuZ2VJbnRlcmZhY2UpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRBdmFpbGFibGVEaWRNYXBwZWRUb0RuKGF2YWlsYWJsZU51bWJlcik7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXSA9IFsuLi50aGlzLmF2YWlsYWJsZU51bWJlcnNbcm91dGVQYXJ0aXRpb25dLCAuLi50aGlzLmdldFVud3JhcE51bWJlclJhbmdlKGF2YWlsYWJsZU51bWJlcildO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIGZhbHNlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QXZhaWxhYmxlRGlkTWFwcGVkVG9EbihhdmFpbGFibGVOdW1iZXI6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGF2YWlsYWJsZU51bWJlci51blVzZWROdW1iZXJzV2l0aERpZHMgJiYgYXZhaWxhYmxlTnVtYmVyLnVuVXNlZE51bWJlcnNXaXRoRGlkcy5sZW5ndGgpIHtcclxuXHJcbiAgICAgIGF2YWlsYWJsZU51bWJlci51blVzZWROdW1iZXJzV2l0aERpZHMuZm9yRWFjaCgobnVtYmVyV2l0aERpZHM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRuID0gbnVtYmVyV2l0aERpZHNbJ3VuVXNlZE51bWJlciddO1xyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXSA9IFt7fV07XHJcbiAgICAgICAgaWYgKG51bWJlcldpdGhEaWRzWyd0cmFuc2xhdGlvblBhdHRlcm5MaXN0J10gJiYgbnVtYmVyV2l0aERpZHNbJ3RyYW5zbGF0aW9uUGF0dGVybkxpc3QnXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl0gPSBudW1iZXJXaXRoRGlkc1sndHJhbnNsYXRpb25QYXR0ZXJuTGlzdCddO1xyXG4gICAgICAgICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWydtYXBwZWREaWRzJ10gPSBbe31dO1xyXG4gICAgICAgICAgaWYgKG51bWJlcldpdGhEaWRzWydtYXBwZWREaWRzJ10gJiYgbnVtYmVyV2l0aERpZHNbJ21hcHBlZERpZHMnXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddID0gbnVtYmVyV2l0aERpZHNbJ21hcHBlZERpZHMnXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWyd2bSddID0gbnVtYmVyV2l0aERpZHNbJ3ZtJ107XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVud3JhcE51bWJlclJhbmdlKGF2YWlsYWJsZU51bWJlcjogYW55KTogc3RyaW5nW10ge1xyXG4gICAgbGV0IHVud3JhcE51bWJlclJhbmdlID0gdGhpcy51bndyYXBOdW1iZXJSYW5nZShhdmFpbGFibGVOdW1iZXIucGhvbmVOdW1iZXJSYW5nZS5mcm9tLCBhdmFpbGFibGVOdW1iZXIucGhvbmVOdW1iZXJSYW5nZS50bylcclxuICAgICAgLm1hcCgodW53cmFwcGVkTnVtYmVyOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBkbiA9IGF2YWlsYWJsZU51bWJlci5waG9uZU51bWJlclJhbmdlLnByZWZpeCArIHVud3JhcHBlZE51bWJlcjtcclxuICAgICAgICBsZXQgc3RyID0gZG47XHJcbiAgICAgICAgaWYgKHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXSAmJiB0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddICYmIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgc3RyICs9ICcgICAgICAgIERJRDogICcgKyAodGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWydtYXBwZWREaWRzJ10ubGVuZ3RoID4gMSA/ICdtdWx0aXBsZScgOlxyXG4gICAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddWzBdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl1bMF1bJ3ZtJ10pIHtcclxuICAgICAgICAgICAgc3RyICs9ICcgICAgICAgIEluIFVzZSAtIFZNJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgICAgfSk7XHJcbiAgICB1bndyYXBOdW1iZXJSYW5nZSA9IHVud3JhcE51bWJlclJhbmdlLmZpbHRlcigodW53cmFwcGVkTnVtYmVyOiBzdHJpbmcpID0+ICFhdmFpbGFibGVOdW1iZXIudXNlZE51bWJlcnMuaW5jbHVkZXModW53cmFwcGVkTnVtYmVyKSk7XHJcbiAgICByZXR1cm4gdW53cmFwTnVtYmVyUmFuZ2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdW53cmFwTnVtYmVyUmFuZ2Uoc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCByZWdFeHAgPSAvKF4wKykvO1xyXG4gICAgbGV0IGxlYWRpbmdaZXJvcyA9ICcnO1xyXG4gICAgY29uc3QgbWF0Y2hlcyA9IHN0YXJ0Lm1hdGNoKHJlZ0V4cCk7XHJcbiAgICBpZiAobWF0Y2hlcykge1xyXG4gICAgICBsZWFkaW5nWmVyb3MgPSBtYXRjaGVzWzFdO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RhcnROdW1lcmljID0gbmV3IEJpZyhzdGFydCk7XHJcbiAgICBjb25zdCBlbmROdW1lcmljID0gbmV3IEJpZyhlbmQpO1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDogKGVuZE51bWVyaWMubWludXMoc3RhcnROdW1lcmljKS5wbHVzKG5ldyBCaWcoMSkpLnRvRml4ZWQoMCkpfSwgKHYsIGspID0+IHtcclxuICAgICAgY29uc3QgbnVtYmVyID0gU3RyaW5nKHN0YXJ0TnVtZXJpYy5wbHVzKG5ldyBCaWcoaykpLnRvRml4ZWQoMCkpO1xyXG4gICAgICBpZiAoKGxlYWRpbmdaZXJvcyArIG51bWJlcikubGVuZ3RoID4gc3RhcnQubGVuZ3RoKSB7XHJcbiAgICAgICAgbGVhZGluZ1plcm9zID0gbGVhZGluZ1plcm9zLnN1YnN0cigxKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbGVhZGluZ1plcm9zICsgbnVtYmVyO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hQaG9uZU51bWJlcnMoY3VzdG9tZXJJZDogbnVtYmVyLCBsb2NhdGlvbklkOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICAgIG51bWJlclR5cGU6ICdOVU1CRVInXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmZldGNoKEFQSS5QSE9ORV9OVU1CRVJTLnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKS5yZXBsYWNlKCc6bG9jYXRpb25JZCcsIGxvY2F0aW9uSWQpLCBwYXJhbXMpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0Py5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMucGhvbmVOdW1iZXJzID0gcmVzdWx0Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLnBob25lTnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSkpO1xyXG4gIH1cclxufVxyXG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvZG5zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQztBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBc0MsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFJbEYsTUFBTSxPQUFPLFVBQVU7SUFLckIsWUFDVSxVQUFzQixFQUN0QixlQUFnQztRQURoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQU4xQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsaUJBQVksR0FBYSxFQUFFLENBQUM7SUFPNUIsQ0FBQztJQUNNLGNBQWMsQ0FBQyxNQUFjLEVBQUUsY0FBc0IsRUFBRSxRQUFrQixFQUFFLElBQWEsRUFBRSxRQUFpQjtRQUNoSCxhQUFhO1FBQ2IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQ2pELE9BQU8sSUFBSSxVQUFVLENBQU0sUUFBUSxDQUFDLEVBQUU7Z0JBQ3BDLGFBQWE7Z0JBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEVBQUUsQ0FB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QUFDLENBQUM7YUFDdkM7WUFDRCxPQUFPLFlBQVksR0FBRyxNQUFNLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUM3RCxNQUFNLE1BQU0sR0FBRztZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsVUFBVSxFQUFFLFFBQVE7U0FDckIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDO2FBQ3ZJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN4QixJQUFJLE1BQU0sRUFBRSxNQUFNLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2pFO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7O3dHQW5IVSxVQUFVOzRHQUFWLFVBQVU7NEZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uL2FwcC5jb25zdGFudHMnO1xuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IEJpZyBmcm9tICdiaWcuanMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBpV2ViZXhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBpLXdlYmV4LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXZhaWxhYmxlUGhvbmVOdW1iZXJSYW5nZUludGVyZmFjZSwgRG5SYW5nZVR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL2xpbmUnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEbnNTZXJ2aWNlIHtcbiAgYXZhaWxhYmxlTnVtYmVycyA9IHt9O1xuICBhdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG4hOiBhbnk7XG4gIHBob25lTnVtYmVyczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGlXZWJleFNlcnZpY2U6IEFwaVdlYmV4U2VydmljZVxuICApIHtcblxuICB9XG4gIHB1YmxpYyBnZXROdW1iZXJSYW5nZShzaXRlSWQ6IHN0cmluZywgcm91dGVQYXJ0aXRpb246IHN0cmluZywgd2l0aGRpZHM/OiBib29sZWFuLCBmcm9tPzogc3RyaW5nLCBwYWdlU2l6ZT86IG51bWJlcik6IGFueSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh0aGlzLmF2YWlsYWJsZU51bWJlcnNbcm91dGVQYXJ0aXRpb25dPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmVyID0+IHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvYnNlcnZlci5uZXh0KHRoaXMuYXZhaWxhYmxlTnVtYmVyc1tyb3V0ZVBhcnRpdGlvbl0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG4gPSB7fTtcbiAgICBwYWdlU2l6ZSA9IHBhZ2VTaXplID8gcGFnZVNpemUgOiAyMDtcbiAgICBjb25zdCBwYXJhbXMgPSB7ZG50eXBlOiBEblJhbmdlVHlwZS5leHRlbnNpb24sIHJvdXRlcGFydGl0aW9uOiByb3V0ZVBhcnRpdGlvbiwgc2l6ZTogcGFnZVNpemUsIHBhZ2U6IDB9O1xuICAgIGlmICh3aXRoZGlkcykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcGFyYW1zWyd3aXRoZGlkcyddID0gJ3RydWUnO1xuICAgIH1cbiAgICBpZiAoZnJvbSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcGFyYW1zWydmcm9tJ10gPSBmcm9tO1xuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXSA9IHRoaXMuYXZhaWxhYmxlTnVtYmVyc1tyb3V0ZVBhcnRpdGlvbl0gfHwgW107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5BVkFJTEFCTEVfRE5fSU5fUkFOR0VTLnJlcGxhY2UoJzpzaXRlSWQnLCBzaXRlSWQpLCBwYXJhbXMpXG4gICAgICAucGlwZShtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgcmVzLmF2YWlsYWJsZU51bWJlckxpc3QuZm9yRWFjaCgoYXZhaWxhYmxlTnVtYmVyOiBBdmFpbGFibGVQaG9uZU51bWJlclJhbmdlSW50ZXJmYWNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldEF2YWlsYWJsZURpZE1hcHBlZFRvRG4oYXZhaWxhYmxlTnVtYmVyKTtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlTnVtYmVyc1tyb3V0ZVBhcnRpdGlvbl0gPSBbLi4udGhpcy5hdmFpbGFibGVOdW1iZXJzW3JvdXRlUGFydGl0aW9uXSwgLi4udGhpcy5nZXRVbndyYXBOdW1iZXJSYW5nZShhdmFpbGFibGVOdW1iZXIpXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgZmFsc2UpKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBdmFpbGFibGVEaWRNYXBwZWRUb0RuKGF2YWlsYWJsZU51bWJlcjogYW55KTogdm9pZCB7XG4gICAgaWYgKGF2YWlsYWJsZU51bWJlci51blVzZWROdW1iZXJzV2l0aERpZHMgJiYgYXZhaWxhYmxlTnVtYmVyLnVuVXNlZE51bWJlcnNXaXRoRGlkcy5sZW5ndGgpIHtcblxuICAgICAgYXZhaWxhYmxlTnVtYmVyLnVuVXNlZE51bWJlcnNXaXRoRGlkcy5mb3JFYWNoKChudW1iZXJXaXRoRGlkczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGRuID0gbnVtYmVyV2l0aERpZHNbJ3VuVXNlZE51bWJlciddO1xuICAgICAgICB0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl0gPSBbe31dO1xuICAgICAgICBpZiAobnVtYmVyV2l0aERpZHNbJ3RyYW5zbGF0aW9uUGF0dGVybkxpc3QnXSAmJiBudW1iZXJXaXRoRGlkc1sndHJhbnNsYXRpb25QYXR0ZXJuTGlzdCddLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl0gPSBudW1iZXJXaXRoRGlkc1sndHJhbnNsYXRpb25QYXR0ZXJuTGlzdCddO1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddID0gW3t9XTtcbiAgICAgICAgICBpZiAobnVtYmVyV2l0aERpZHNbJ21hcHBlZERpZHMnXSAmJiBudW1iZXJXaXRoRGlkc1snbWFwcGVkRGlkcyddLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlRGlkUGF0dGVybnNNYXBwZWRUb0RuW2RuXVswXVsnbWFwcGVkRGlkcyddID0gbnVtYmVyV2l0aERpZHNbJ21hcHBlZERpZHMnXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWyd2bSddID0gbnVtYmVyV2l0aERpZHNbJ3ZtJ107XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VW53cmFwTnVtYmVyUmFuZ2UoYXZhaWxhYmxlTnVtYmVyOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgbGV0IHVud3JhcE51bWJlclJhbmdlID0gdGhpcy51bndyYXBOdW1iZXJSYW5nZShhdmFpbGFibGVOdW1iZXIucGhvbmVOdW1iZXJSYW5nZS5mcm9tLCBhdmFpbGFibGVOdW1iZXIucGhvbmVOdW1iZXJSYW5nZS50bylcbiAgICAgIC5tYXAoKHVud3JhcHBlZE51bWJlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGRuID0gYXZhaWxhYmxlTnVtYmVyLnBob25lTnVtYmVyUmFuZ2UucHJlZml4ICsgdW53cmFwcGVkTnVtYmVyO1xuICAgICAgICBsZXQgc3RyID0gZG47XG4gICAgICAgIGlmICh0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl0gJiYgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAodGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWydtYXBwZWREaWRzJ10gJiYgdGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWydtYXBwZWREaWRzJ10ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3RyICs9ICcgICAgICAgIERJRDogICcgKyAodGhpcy5hdmFpbGFibGVEaWRQYXR0ZXJuc01hcHBlZFRvRG5bZG5dWzBdWydtYXBwZWREaWRzJ10ubGVuZ3RoID4gMSA/ICdtdWx0aXBsZScgOlxuICAgICAgICAgICAgICB0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl1bMF1bJ21hcHBlZERpZHMnXVswXSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmF2YWlsYWJsZURpZFBhdHRlcm5zTWFwcGVkVG9Ebltkbl1bMF1bJ3ZtJ10pIHtcbiAgICAgICAgICAgIHN0ciArPSAnICAgICAgICBJbiBVc2UgLSBWTSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgICB9KTtcbiAgICB1bndyYXBOdW1iZXJSYW5nZSA9IHVud3JhcE51bWJlclJhbmdlLmZpbHRlcigodW53cmFwcGVkTnVtYmVyOiBzdHJpbmcpID0+ICFhdmFpbGFibGVOdW1iZXIudXNlZE51bWJlcnMuaW5jbHVkZXModW53cmFwcGVkTnVtYmVyKSk7XG4gICAgcmV0dXJuIHVud3JhcE51bWJlclJhbmdlO1xuICB9XG5cbiAgcHVibGljIHVud3JhcE51bWJlclJhbmdlKHN0YXJ0OiBzdHJpbmcsIGVuZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlZ0V4cCA9IC8oXjArKS87XG4gICAgbGV0IGxlYWRpbmdaZXJvcyA9ICcnO1xuICAgIGNvbnN0IG1hdGNoZXMgPSBzdGFydC5tYXRjaChyZWdFeHApO1xuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICBsZWFkaW5nWmVyb3MgPSBtYXRjaGVzWzFdO1xuICAgIH1cbiAgICBjb25zdCBzdGFydE51bWVyaWMgPSBuZXcgQmlnKHN0YXJ0KTtcbiAgICBjb25zdCBlbmROdW1lcmljID0gbmV3IEJpZyhlbmQpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7bGVuZ3RoOiAoZW5kTnVtZXJpYy5taW51cyhzdGFydE51bWVyaWMpLnBsdXMobmV3IEJpZygxKSkudG9GaXhlZCgwKSl9LCAodiwgaykgPT4ge1xuICAgICAgY29uc3QgbnVtYmVyID0gU3RyaW5nKHN0YXJ0TnVtZXJpYy5wbHVzKG5ldyBCaWcoaykpLnRvRml4ZWQoMCkpO1xuICAgICAgaWYgKChsZWFkaW5nWmVyb3MgKyBudW1iZXIpLmxlbmd0aCA+IHN0YXJ0Lmxlbmd0aCkge1xuICAgICAgICBsZWFkaW5nWmVyb3MgPSBsZWFkaW5nWmVyb3Muc3Vic3RyKDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxlYWRpbmdaZXJvcyArIG51bWJlcjtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaFBob25lTnVtYmVycyhjdXN0b21lcklkOiBudW1iZXIsIGxvY2F0aW9uSWQ6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgYXZhaWxhYmxlOiB0cnVlLFxuICAgICAgbnVtYmVyVHlwZTogJ05VTUJFUidcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5mZXRjaChBUEkuUEhPTkVfTlVNQkVSUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSkucmVwbGFjZSgnOmxvY2F0aW9uSWQnLCBsb2NhdGlvbklkKSwgcGFyYW1zKVxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0Py5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnBob25lTnVtYmVycyA9IHJlc3VsdC5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5waG9uZU51bWJlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pKTtcbiAgfVxufVxuIl19
@@ -157,4 +157,4 @@ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
157
157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
158
158
  type: Injectable
159
159
  }], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }]; } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBd0IsbUNBQW1DLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFbkgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUt0RCxNQUFNLE9BQU8sV0FBVztJQVl0QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBYjFDLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFHekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFekIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7SUFPMUQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2xE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LENBQUM7UUFDdEIsdUNBQXVDO0lBQzNDLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUN6RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILHVDQUF1QztJQUMzQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQWtCLEVBQUUsS0FBYTtRQUNuRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7O3lHQTlLVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZvcmtKb2luLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNpbXBsaWZpZWRVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9zaW1saWZpZWQtdXNlcic7XHJcbmltcG9ydCB7IEFQSSwgQ1VTVE9NRVJfREVTVElOQVRJT04sIENVU1RPTUVSX0RFU1RJTkFUSU9OX01JR1RBVElPTl9UWVBFLCBVU0VSX1RZUEVTX1RZUEUgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMaXN0VXNlciB9IGZyb20gJy4uL2NsYXNzZXMvdXNlci1saXN0JztcclxuaW1wb3J0IHsgQXBpV2ViZXhTZXJ2aWNlIH0gZnJvbSAnLi9hcGktd2ViZXguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBzaXRlSWQ6IG51bWJlciA9IC0xO1xyXG4gIHVzZXJJZDogc3RyaW5nID0gJyc7XHJcbiAgdXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XHJcbiAgaGFzRXhpc3RlZFVzZXJJZCA9IGZhbHNlO1xyXG4gIHVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcclxuICBvcmlnaW5Vc2VyITogU2ltcGxpZmllZFVzZXI7XHJcbiAgbW92ZVVzZXJQZW5kaW5nID0gZmFsc2U7XHJcbiAgdXNlck1vdmVkJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgcHVibGljIHVzZXJUeXBlU2VsZWN0ZWQkID0gbmV3IFN1YmplY3Q8VVNFUl9UWVBFU19UWVBFPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpV2ViZXhTZXJ2aWNlOiBBcGlXZWJleFNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2l0ZUlkKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoVXNlclRva2VuKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZyk6IGFueSB7XHJcbiAgICB0aGlzLnNpdGVJZCA9IHNpdGVJZDtcclxuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9UT0tFTi5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodXNlcklkKSkpKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSBPYmplY3Qua2V5cyhyZXN1bHQpWzBdO1xyXG4gICAgICAgIHRoaXMuc2V0U2ltcGxpZmllZFVzZXIoT2JqZWN0LnZhbHVlcyhyZXN1bHQpWzBdLCB0b2tlbik7XHJcbiAgICAgIH0pKVxyXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVVzZXJGaWVsZHMoYm9keTogYW55KTogYW55IHtcclxuICAgIGlmICghdGhpcy51c2VySWQgfHwgIXRoaXMuc2l0ZUlkIHx8ICF0aGlzLnVzZXI/LnRva2VuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuVVBEQVRFX1VTRVJfRklFTERTLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dG9rZW4nLCB0aGlzLnVzZXIudG9rZW4pLCBib2R5KVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW92ZVVzZXJUb01UKGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xyXG4gICAgLy8gcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcclxuICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcclxuICAgIC8vXHJcbiAgICAvLyAgIH0sIDEwMDApO1xyXG4gICAgLy8gfSk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChBUEkuTU9WRV9VU0VSLCB0aGlzLmdldE1vdmVVc2VyQm9keShjdXN0b21lcklkLCB1c2VyKSlcclxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVc2VyVG9ESShjdXN0b21lcklkOiBhbnksIHVzZXI6IExpc3RVc2VyKTogYW55IHtcclxuICAgIC8vIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPihvYnNlcnZlciA9PiB7XHJcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XHJcbiAgICAvL1xyXG4gICAgLy8gICB9LCAxMDAwKTtcclxuICAgIC8vIH0pO1xyXG4gICAgY29uc3QgVVJMID0gQVBJLlJFVkVSVF9XRUJFWF9VU0VSLnJlcGxhY2UoJzpjdXN0b21lcklkJywgY3VzdG9tZXJJZCkucmVwbGFjZSgnOndlYmV4VVVJRCcsIFN0cmluZyh1c2VyLndlYmV4VVVJRCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QoVVJMLCB0aGlzLmdldE1vdmVVc2VyQm9keShjdXN0b21lcklkLCB1c2VyKSlcclxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjdXN0b21lcklkOiBjdXN0b21lcklkLFxyXG4gICAgICBlbnRpdGllczoge1xyXG4gICAgICAgIFBFUlNPTjogW3tjdWNtSWQ6IHVzZXIuY3VjbUlkLCBlbnRpdHlJZDogdXNlci51c2VyaWR9XVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZVVzZXIoc2l0ZUlkOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZGVsZXRlKEFQSS5ERUxFVEVfVVNFUi5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmV0Y2hVc2VyQnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnVzZXJJZEV4aXN0UGVuZGluZyA9IHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5VU0VSX0JZX0lELnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudChpZCkpKSlcclxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGVyc2lzdENhY2hlQ2hhbmdlcygpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZXhjbHVkZURldmljZUV4dHJhT3B0aW9uczogdHJ1ZVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLnByb2Nlc3NVc2VyQ2hhbmdlc1RvQ2FjaGUoKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5QRVJTSVNUX1VTRVJfQ0FDSEUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlci50b2tlbiksIHt9LCBwYXJhbXMpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8gLnBpcGUobWFwKCh1c2VyKSA9PiB7XHJcbiAgICAgICAgICAvLyAgIC8vIHRoaXMuc2V0VXNlcih1c2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcclxuICAgICAgICAgIC8vICAgdGhpcy51c2VyLmhhc01vZGlmaWVkQ2FjaGUgPSBmYWxzZTtcclxuICAgICAgICAgIC8vIH0pKVxyXG4gICAgICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcm9jZXNzVXNlckNoYW5nZXNUb0NhY2hlKCk6IGFueSB7XHJcbiAgICBjb25zdCBjYWxscyA9IFtdO1xyXG4gICAgY29uc3QgYm9keSA9IFV0aWxzU2VydmljZS5kaWZmKHRoaXMub3JpZ2luVXNlci5nZXRTYXZhYmxlRGF0YSgpLCB0aGlzLnVzZXIuZ2V0U2F2YWJsZURhdGEoKSwgJ3VzZXInKTtcclxuICAgIGlmIChib2R5KSB7XHJcbiAgICAgIGNhbGxzLnB1c2godGhpcy51cGRhdGVVc2VyRmllbGRzKGJvZHkpKTtcclxuICAgIH1cclxuICAgIGlmICghY2FsbHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy51c2VyKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4oY2FsbHMpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2VzOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBBcGlVc2VyUmVzcG9uc2VcclxuICAgICAgICB0aGlzLmhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzKTtcclxuICAgICAgfSkpXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXMoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMudXNlci5lcXVhbCh0aGlzLm9yaWdpblVzZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNpbXBsaWZpZWRVc2VyKHVzZXI6IGFueSwgdG9rZW4/OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlciA9IG5ldyBTaW1wbGlmaWVkVXNlcih1c2VyKTtcclxuICAgIGNvbnN0IGNvcGllZFVzZXIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcclxuICAgIHRoaXMub3JpZ2luVXNlciA9IG5ldyBTaW1wbGlmaWVkVXNlcihjb3BpZWRVc2VyKTtcclxuICAgIHRoaXMudXNlci50b2tlbiA9IHRoaXMudXNlci50b2tlbiB8fCB0b2tlbjtcclxuICAgIHRoaXMub3JpZ2luVXNlci50b2tlbiA9IHRoaXMub3JpZ2luVXNlci50b2tlbiB8fCB0b2tlbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU2F2ZVVzZXJSZXNwb25zZShyZXNwb25zZXM6IGFueSkge1xyXG4gICAgaWYgKCFyZXNwb25zZXM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBsZW4gPSByZXNwb25zZXMubGVuZ3RoLCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgaWYgKHJlc3BvbnNlc1tpXSAmJiByZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyKSB7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRVc2VyKHJlc3BvbnNlc1tpXS5jdXJyZW50VXBkYXRlZFVzZXIsIGZhbHNlLCB0aGlzLnVzZXIudG9rZW4pO1xyXG4gICAgICAgIHRoaXMudXNlci5oYXNNb2RpZmllZENhY2hlID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmlnZ2VyRmlybXdhcmVVcGdyYWRlKFxyXG4gICAgY3VzdG9tZXJJZDogbnVtYmVyLFxyXG4gICAgbWlncmF0aW9uRm9ybUlkOiBudW1iZXIgfCBudWxsLFxyXG4gICAgZGV2aWNlTWFwOiBSZWNvcmQ8bnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+LFxyXG4gICAgY3VzdG9tZXJUeXBlOiBrZXlvZiB0eXBlb2YgQ1VTVE9NRVJfREVTVElOQVRJT05cclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgbWlncmF0aW9uVHlwZSA9IENVU1RPTUVSX0RFU1RJTkFUSU9OX01JR1RBVElPTl9UWVBFW2N1c3RvbWVyVHlwZV0udG9VcHBlckNhc2UoKTtcclxuICAgIGNvbnN0IHVybCA9IEFQSS5UUklHR0VSX0ZJUk1XQVJFX01JR1JBVElPTlxyXG4gICAgICAucmVwbGFjZSgnOm1pZ3JhdGlvblR5cGUnLCBtaWdyYXRpb25UeXBlKVxyXG4gICAgICAucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBTdHJpbmcoY3VzdG9tZXJJZCkpXHJcbiAgICAgIC5yZXBsYWNlKCc6bWlncmF0aW9uRm9ybUlkJywgU3RyaW5nKG1pZ3JhdGlvbkZvcm1JZCkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgLnBvc3QodXJsLCBkZXZpY2VNYXApO1xyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXZlcnRNaWdyYXRpb24oY3VzdG9tZXJJZDogbnVtYmVyLCBwZXJzb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuUkVWRVJULnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKS5yZXBsYWNlKCc6cGVyc29uSWQnLCBwZXJzb25JZCksIHt9KTtcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3dhcFN0YXR1c2VzKGN1c3RvbWVySWQ6IG51bWJlciwgZW1haWw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wdXQoQVBJLlNXQVBfU1RBVFVTRVMucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBTdHJpbmcoY3VzdG9tZXJJZCkpLCBudWxsLCB7IGVtYWlsIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBd0IsbUNBQW1DLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFbkgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUt0RCxNQUFNLE9BQU8sV0FBVztJQVl0QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBYjFDLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFHekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFekIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7SUFPMUQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2xE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LENBQUM7UUFDdEIsdUNBQXVDO0lBQzNDLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUN6RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILHVDQUF1QztJQUMzQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQWtCLEVBQUUsS0FBYTtRQUNuRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7O3lHQTlLVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBmb3JrSm9pbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3NpbWxpZmllZC11c2VyJztcbmltcG9ydCB7IEFQSSwgQ1VTVE9NRVJfREVTVElOQVRJT04sIENVU1RPTUVSX0RFU1RJTkFUSU9OX01JR1RBVElPTl9UWVBFLCBVU0VSX1RZUEVTX1RZUEUgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlzdFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItbGlzdCc7XG5pbXBvcnQgeyBBcGlXZWJleFNlcnZpY2UgfSBmcm9tICcuL2FwaS13ZWJleC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0e1xuICBzaXRlSWQ6IG51bWJlciA9IC0xO1xuICB1c2VySWQ6IHN0cmluZyA9ICcnO1xuICB1c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcbiAgaGFzRXhpc3RlZFVzZXJJZCA9IGZhbHNlO1xuICB1c2VyITogU2ltcGxpZmllZFVzZXI7XG4gIG9yaWdpblVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcbiAgbW92ZVVzZXJQZW5kaW5nID0gZmFsc2U7XG4gIHVzZXJNb3ZlZCQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHVibGljIHVzZXJUeXBlU2VsZWN0ZWQkID0gbmV3IFN1YmplY3Q8VVNFUl9UWVBFU19UWVBFPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcbiAgICBwcml2YXRlIGFwaVdlYmV4U2VydmljZTogQXBpV2ViZXhTZXJ2aWNlXG4gICkge1xuXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNpdGVJZClcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaFVzZXJUb2tlbihzaXRlSWQ6IG51bWJlciwgdXNlcklkOiBzdHJpbmcpOiBhbnkge1xuICAgIHRoaXMuc2l0ZUlkID0gc2l0ZUlkO1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBPYmplY3Qua2V5cyhyZXN1bHQpWzBdO1xuICAgICAgICB0aGlzLnNldFNpbXBsaWZpZWRVc2VyKE9iamVjdC52YWx1ZXMocmVzdWx0KVswXSwgdG9rZW4pO1xuICAgICAgfSkpXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVVzZXJGaWVsZHMoYm9keTogYW55KTogYW55IHtcbiAgICBpZiAoIXRoaXMudXNlcklkIHx8ICF0aGlzLnNpdGVJZCB8fCAhdGhpcy51c2VyPy50b2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9VU0VSX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyLnRva2VuKSwgYm9keSlcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVXNlclRvTVQoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XG4gICAgLy8gcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgIC8vXG4gICAgLy8gICB9LCAxMDAwKTtcbiAgICAvLyB9KTtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChBUEkuTU9WRV9VU0VSLCB0aGlzLmdldE1vdmVVc2VyQm9keShjdXN0b21lcklkLCB1c2VyKSlcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVXNlclRvREkoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XG4gICAgLy8gcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgIC8vXG4gICAgLy8gICB9LCAxMDAwKTtcbiAgICAvLyB9KTtcbiAgICBjb25zdCBVUkwgPSBBUEkuUkVWRVJUX1dFQkVYX1VTRVIucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBjdXN0b21lcklkKS5yZXBsYWNlKCc6d2ViZXhVVUlEJywgU3RyaW5nKHVzZXIud2ViZXhVVUlEKSk7XG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QoVVJMLCB0aGlzLmdldE1vdmVVc2VyQm9keShjdXN0b21lcklkLCB1c2VyKSlcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW92ZVVzZXJCb2R5KGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21lcklkOiBjdXN0b21lcklkLFxuICAgICAgZW50aXRpZXM6IHtcbiAgICAgICAgUEVSU09OOiBbe2N1Y21JZDogdXNlci5jdWNtSWQsIGVudGl0eUlkOiB1c2VyLnVzZXJpZH1dXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVVc2VyKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5kZWxldGUoQVBJLkRFTEVURV9VU0VSLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcoc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodXNlcklkKSkpKVxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hVc2VyQnlJZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfQllfSUQucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpKVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMudXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgcGVyc2lzdENhY2hlQ2hhbmdlcygpIHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBleGNsdWRlRGV2aWNlRXh0cmFPcHRpb25zOiB0cnVlXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzVXNlckNoYW5nZXNUb0NhY2hlKClcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5QRVJTSVNUX1VTRVJfQ0FDSEUucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp0b2tlbicsIHRoaXMudXNlci50b2tlbiksIHt9LCBwYXJhbXMpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG5cbiAgICAgICAgICB9KVxuICAgICAgICAgIC8vIC5waXBlKG1hcCgodXNlcikgPT4ge1xuICAgICAgICAgIC8vICAgLy8gdGhpcy5zZXRVc2VyKHVzZXIsIGZhbHNlLCB0aGlzLnVzZXIudG9rZW4pO1xuICAgICAgICAgIC8vICAgdGhpcy51c2VyLmhhc01vZGlmaWVkQ2FjaGUgPSBmYWxzZTtcbiAgICAgICAgICAvLyB9KSlcbiAgICAgICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzVXNlckNoYW5nZXNUb0NhY2hlKCk6IGFueSB7XG4gICAgY29uc3QgY2FsbHMgPSBbXTtcbiAgICBjb25zdCBib2R5ID0gVXRpbHNTZXJ2aWNlLmRpZmYodGhpcy5vcmlnaW5Vc2VyLmdldFNhdmFibGVEYXRhKCksIHRoaXMudXNlci5nZXRTYXZhYmxlRGF0YSgpLCAndXNlcicpO1xuICAgIGlmIChib2R5KSB7XG4gICAgICBjYWxscy5wdXNoKHRoaXMudXBkYXRlVXNlckZpZWxkcyhib2R5KSk7XG4gICAgfVxuICAgIGlmICghY2FsbHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMudXNlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKGNhbGxzKVxuICAgICAgLnBpcGUobWFwKChyZXNwb25zZXM6IGFueSkgPT4ge1xuICAgICAgICAvLyBBcGlVc2VyUmVzcG9uc2VcbiAgICAgICAgdGhpcy5oYW5kbGVTYXZlVXNlclJlc3BvbnNlKHJlc3BvbnNlcyk7XG4gICAgICB9KSlcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcblxuICB9XG5cbiAgcHVibGljIGhhc1Vuc2F2ZWRDaGFuZ2VzKCkge1xuICAgIHJldHVybiAhdGhpcy51c2VyLmVxdWFsKHRoaXMub3JpZ2luVXNlcik7XG4gIH1cblxuICBwdWJsaWMgc2V0U2ltcGxpZmllZFVzZXIodXNlcjogYW55LCB0b2tlbj86IGFueSk6IHZvaWQge1xuICAgIHRoaXMudXNlciA9IG5ldyBTaW1wbGlmaWVkVXNlcih1c2VyKTtcbiAgICBjb25zdCBjb3BpZWRVc2VyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1c2VyKSk7XG4gICAgdGhpcy5vcmlnaW5Vc2VyID0gbmV3IFNpbXBsaWZpZWRVc2VyKGNvcGllZFVzZXIpO1xuICAgIHRoaXMudXNlci50b2tlbiA9IHRoaXMudXNlci50b2tlbiB8fCB0b2tlbjtcbiAgICB0aGlzLm9yaWdpblVzZXIudG9rZW4gPSB0aGlzLm9yaWdpblVzZXIudG9rZW4gfHwgdG9rZW47XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzOiBhbnkpIHtcbiAgICBpZiAoIXJlc3BvbnNlcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGxlbiA9IHJlc3BvbnNlcy5sZW5ndGgsIGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHJlc3BvbnNlc1tpXSAmJiByZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyKSB7XG4gICAgICAgIC8vIHRoaXMuc2V0VXNlcihyZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcbiAgICAgICAgdGhpcy51c2VyLmhhc01vZGlmaWVkQ2FjaGUgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyaWdnZXJGaXJtd2FyZVVwZ3JhZGUoXG4gICAgY3VzdG9tZXJJZDogbnVtYmVyLFxuICAgIG1pZ3JhdGlvbkZvcm1JZDogbnVtYmVyIHwgbnVsbCxcbiAgICBkZXZpY2VNYXA6IFJlY29yZDxudW1iZXIsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4sXG4gICAgY3VzdG9tZXJUeXBlOiBrZXlvZiB0eXBlb2YgQ1VTVE9NRVJfREVTVElOQVRJT05cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBtaWdyYXRpb25UeXBlID0gQ1VTVE9NRVJfREVTVElOQVRJT05fTUlHVEFUSU9OX1RZUEVbY3VzdG9tZXJUeXBlXS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IHVybCA9IEFQSS5UUklHR0VSX0ZJUk1XQVJFX01JR1JBVElPTlxuICAgICAgLnJlcGxhY2UoJzptaWdyYXRpb25UeXBlJywgbWlncmF0aW9uVHlwZSlcbiAgICAgIC5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSlcbiAgICAgIC5yZXBsYWNlKCc6bWlncmF0aW9uRm9ybUlkJywgU3RyaW5nKG1pZ3JhdGlvbkZvcm1JZCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3QodXJsLCBkZXZpY2VNYXApO1xuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgcmV2ZXJ0TWlncmF0aW9uKGN1c3RvbWVySWQ6IG51bWJlciwgcGVyc29uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5SRVZFUlQucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBTdHJpbmcoY3VzdG9tZXJJZCkpLnJlcGxhY2UoJzpwZXJzb25JZCcsIHBlcnNvbklkKSwge30pO1xuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgc3dhcFN0YXR1c2VzKGN1c3RvbWVySWQ6IG51bWJlciwgZW1haWw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucHV0KEFQSS5TV0FQX1NUQVRVU0VTLnJlcGxhY2UoJzpjdXN0b21lcklkJywgU3RyaW5nKGN1c3RvbWVySWQpKSwgbnVsbCwgeyBlbWFpbCB9KTtcbiAgfVxufVxuIl19