@tuki-io/tuki-widgets 0.0.219-dev.8 → 0.0.219

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 (189) hide show
  1. package/di2mt/api/api.endpoints.d.ts +3 -0
  2. package/esm2020/di2mt/api/api.endpoints.mjs +4 -1
  3. package/esm2020/locations/public-api.mjs +8 -0
  4. package/esm2020/locations/src/app.constants.mjs +6 -0
  5. package/esm2020/locations/src/locations.component.mjs +215 -0
  6. package/esm2020/locations/src/locations.module.mjs +39 -0
  7. package/esm2020/locations/src/material.module.mjs +48 -0
  8. package/esm2020/locations/src/services/api.service.mjs +67 -0
  9. package/esm2020/locations/src/services/locations.service.mjs +51 -0
  10. package/esm2020/locations/src/types/location.mjs +2 -0
  11. package/esm2020/locations/src/utils/app-loader/app-loader.mjs +14 -0
  12. package/esm2020/locations/tuki-io-tuki-widgets-locations.mjs +5 -0
  13. package/esm2020/meetings/public-api.mjs +8 -0
  14. package/esm2020/meetings/src/app.constants.mjs +9 -0
  15. package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +107 -0
  16. package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +98 -0
  17. package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +110 -0
  18. package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +65 -0
  19. package/esm2020/meetings/src/material.module.mjs +76 -0
  20. package/esm2020/meetings/src/meetings.component.mjs +65 -0
  21. package/esm2020/meetings/src/meetings.module.mjs +51 -0
  22. package/esm2020/meetings/src/services/api.service.mjs +67 -0
  23. package/esm2020/meetings/src/services/live-meetings.service.mjs +178 -0
  24. package/esm2020/meetings/src/services/meeting-spaces.service.mjs +102 -0
  25. package/esm2020/meetings/src/types/live-meeting.mjs +2 -0
  26. package/esm2020/meetings/src/types/meeting-space.mjs +2 -0
  27. package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +14 -0
  28. package/esm2020/meetings/tuki-io-tuki-widgets-meetings.mjs +5 -0
  29. package/esm2020/shared/public-api.mjs +4 -0
  30. package/esm2020/shared/src/ui/material.module.mjs +188 -0
  31. package/esm2020/shared/src/ui/shared.module.mjs +36 -0
  32. package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
  33. package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
  34. package/esm2020/shared/src/ui/ui.module.mjs +37 -0
  35. package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
  36. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
  37. package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
  38. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
  39. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
  40. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +2 -1
  41. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +8 -6
  42. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
  43. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  44. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +1 -4
  45. package/esm2020/user-manage/src/app.constants.mjs +7 -1
  46. package/esm2020/user-manage/src/classes/simplified-user.mjs +5 -3
  47. package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
  48. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
  49. package/esm2020/user-manage/src/material.module.mjs +14 -7
  50. package/esm2020/user-manage/src/services/dcp-api.service.mjs +79 -0
  51. package/esm2020/user-manage/src/services/user.service.mjs +65 -19
  52. package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +12 -7
  53. package/esm2020/user-manage/src/user-manage-widget.component.mjs +55 -20
  54. package/esm2020/user-manage/src/user-manage.module.mjs +10 -3
  55. package/esm2020/users-list/src/app.constants.mjs +2 -1
  56. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  57. package/esm2020/users-list/src/classes/user-list.mjs +2 -1
  58. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
  59. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
  60. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
  61. package/esm2020/users-list/src/users-list.component.mjs +98 -15
  62. package/esm2020/workspaces/public-api.mjs +8 -0
  63. package/esm2020/workspaces/src/app.constants.mjs +15 -0
  64. package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
  65. package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +50 -0
  66. package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +56 -0
  67. package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +114 -0
  68. package/esm2020/workspaces/src/material.module.mjs +83 -0
  69. package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
  70. package/esm2020/workspaces/src/services/api.service.mjs +67 -0
  71. package/esm2020/workspaces/src/services/workspace-detail.service.mjs +54 -0
  72. package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
  73. package/esm2020/workspaces/src/services/workspaces.service.mjs +90 -0
  74. package/esm2020/workspaces/src/types/workspace.mjs +4 -0
  75. package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +14 -0
  76. package/esm2020/workspaces/src/utils/device-icon.mjs +13 -0
  77. package/esm2020/workspaces/src/workspaces.component.mjs +295 -0
  78. package/esm2020/workspaces/src/workspaces.module.mjs +51 -0
  79. package/esm2020/workspaces/tuki-io-tuki-widgets-workspaces.mjs +5 -0
  80. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  81. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  82. package/fesm2015/tuki-io-tuki-widgets-locations.mjs +439 -0
  83. package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  84. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +894 -0
  85. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  86. package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
  87. package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  88. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +111 -32
  89. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  90. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
  91. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  92. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +243 -56
  93. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  94. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +119 -20
  95. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  96. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +958 -0
  97. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  98. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -0
  99. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  100. package/fesm2020/tuki-io-tuki-widgets-locations.mjs +433 -0
  101. package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -0
  102. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +902 -0
  103. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
  104. package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
  105. package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
  106. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +104 -28
  107. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  108. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
  109. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  110. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +239 -55
  111. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  112. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +118 -20
  113. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  114. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +958 -0
  115. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
  116. package/locations/index.d.ts +5 -0
  117. package/locations/public-api.d.ts +2 -0
  118. package/locations/src/app.constants.d.ts +5 -0
  119. package/locations/src/locations.component.d.ts +68 -0
  120. package/locations/src/locations.module.d.ts +12 -0
  121. package/locations/src/material.module.d.ts +11 -0
  122. package/locations/src/services/api.service.d.ts +18 -0
  123. package/locations/src/services/locations.service.d.ts +15 -0
  124. package/locations/src/types/location.d.ts +17 -0
  125. package/locations/src/utils/app-loader/app-loader.d.ts +6 -0
  126. package/meetings/index.d.ts +5 -0
  127. package/meetings/public-api.d.ts +2 -0
  128. package/meetings/src/app.constants.d.ts +8 -0
  129. package/meetings/src/components/live-meetings/live-meeting/live-meeting.component.d.ts +34 -0
  130. package/meetings/src/components/live-meetings/live-meetings.component.d.ts +43 -0
  131. package/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.d.ts +39 -0
  132. package/meetings/src/components/meeting-spaces/meeting-spaces.component.d.ts +27 -0
  133. package/meetings/src/material.module.d.ts +15 -0
  134. package/meetings/src/meetings.component.d.ts +29 -0
  135. package/meetings/src/meetings.module.d.ts +16 -0
  136. package/meetings/src/services/api.service.d.ts +18 -0
  137. package/meetings/src/services/live-meetings.service.d.ts +9 -0
  138. package/meetings/src/services/meeting-spaces.service.d.ts +16 -0
  139. package/meetings/src/types/live-meeting.d.ts +71 -0
  140. package/meetings/src/types/meeting-space.d.ts +52 -0
  141. package/meetings/src/utils/app-loader/app-loader.d.ts +6 -0
  142. package/package.json +33 -1
  143. package/shared/index.d.ts +5 -0
  144. package/shared/public-api.d.ts +3 -0
  145. package/shared/src/ui/material.module.d.ts +28 -0
  146. package/shared/src/ui/shared.module.d.ts +10 -0
  147. package/{user-device-manage/src/shared/tk-page-section/page-section.component.d.ts → shared/src/ui/tk-page-section/tk-page-section.component.d.ts} +1 -1
  148. package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
  149. package/shared/src/ui/ui.module.d.ts +11 -0
  150. package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
  151. package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
  152. package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
  153. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
  154. package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
  155. package/user-device-manage/src/user-device-manage.module.d.ts +9 -10
  156. package/user-manage/src/app.constants.d.ts +6 -0
  157. package/user-manage/src/classes/simplified-user.d.ts +11 -1
  158. package/user-manage/src/device-list/device-list.component.d.ts +2 -0
  159. package/user-manage/src/material.module.d.ts +2 -1
  160. package/user-manage/src/services/dcp-api.service.d.ts +21 -0
  161. package/user-manage/src/services/user.service.d.ts +8 -1
  162. package/user-manage/src/user-calling/user-calling.component.d.ts +3 -2
  163. package/user-manage/src/user-manage-widget.component.d.ts +10 -2
  164. package/user-manage/src/user-manage.module.d.ts +2 -1
  165. package/users-list/src/app.constants.d.ts +1 -0
  166. package/users-list/src/classes/simlified-user.d.ts +1 -1
  167. package/users-list/src/classes/user-list.d.ts +4 -0
  168. package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
  169. package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
  170. package/users-list/src/users-list.component.d.ts +6 -1
  171. package/workspaces/index.d.ts +5 -0
  172. package/workspaces/public-api.d.ts +2 -0
  173. package/workspaces/src/app.constants.d.ts +14 -0
  174. package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
  175. package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +23 -0
  176. package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +20 -0
  177. package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +39 -0
  178. package/workspaces/src/material.module.d.ts +16 -0
  179. package/workspaces/src/services/api-webex.service.d.ts +6 -0
  180. package/workspaces/src/services/api.service.d.ts +18 -0
  181. package/workspaces/src/services/workspace-detail.service.d.ts +8 -0
  182. package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
  183. package/workspaces/src/services/workspaces.service.d.ts +11 -0
  184. package/workspaces/src/types/workspace.d.ts +161 -0
  185. package/workspaces/src/utils/app-loader/app-loader.d.ts +6 -0
  186. package/workspaces/src/utils/device-icon.d.ts +1 -0
  187. package/workspaces/src/workspaces.component.d.ts +71 -0
  188. package/workspaces/src/workspaces.module.d.ts +16 -0
  189. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
@@ -3,9 +3,9 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "../services/user.service";
4
4
  import * as i2 from "../services/dns.service";
5
5
  export class UserCallingComponent {
6
- get form() {
7
- return this.userService?.user?.devices[0] && this.userService?.user?.devices[0].lineAssociations[0].form;
8
- }
6
+ // get form(): FormGroup {
7
+ // return this.userService?.user?.devices[0] && this.userService?.user?.devices[0].lineAssociations[0].form;
8
+ // }
9
9
  get isWebex() {
10
10
  return localStorage.getItem('webexUUID') && localStorage.getItem('webexUUID') !== 'null';
11
11
  }
@@ -28,7 +28,10 @@ export class UserCallingComponent {
28
28
  this.onExtensionChange = new EventEmitter();
29
29
  }
30
30
  ngOnInit() {
31
- // this.getData();
31
+ const primaryLineDevice = this.userService.getPrimaryLineDevice(this.primaryLineDirectoryNumber);
32
+ if (primaryLineDevice) {
33
+ this.form = primaryLineDevice.lineAssociations[0]?.form;
34
+ }
32
35
  }
33
36
  onExtensionLineChange(event) {
34
37
  const value = event.target.value.trim();
@@ -73,15 +76,17 @@ export class UserCallingComponent {
73
76
  }
74
77
  }
75
78
  UserCallingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCallingComponent, deps: [{ token: i1.UserService }, { token: i2.DnsService }], target: i0.ɵɵFactoryTarget.Component });
76
- UserCallingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserCallingComponent, selector: "app-user-calling", inputs: { siteId: "siteId", userId: "userId" }, outputs: { onExtensionChange: "onExtensionChange" }, ngImport: i0, template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] });
79
+ UserCallingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserCallingComponent, selector: "app-user-calling", inputs: { siteId: "siteId", userId: "userId", primaryLineDirectoryNumber: "primaryLineDirectoryNumber" }, outputs: { onExtensionChange: "onExtensionChange" }, ngImport: i0, template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl?.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] });
77
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCallingComponent, decorators: [{
78
81
  type: Component,
79
- args: [{ selector: 'app-user-calling', template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] }]
82
+ args: [{ selector: 'app-user-calling', template: "<!-- NUMBERS BOX -->\r\n<div style=\"display: flex; flex-direction: column; padding: 24px 0; gap: 24px;\">\r\n <div class=\"user-info-box user-details-box\" style=\"display: flex;\">\r\n <h3 class=\"user-box-title\" style=\"width: 180px;\">Numbers</h3>\r\n <div style=\"flex:1; display:flex; flex-direction:column;\">\r\n <!-- Directory numbers section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0;\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Directory numbers</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1; display:flex; flex-direction:column; align-items:flex-start;\">\r\n <!-- Table -->\r\n <table style=\"width:100%; border-collapse:collapse; margin-bottom:16px;\">\r\n <thead>\r\n <tr style=\"background:#ededed;\">\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Type</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Phone number</th>\r\n <th style=\"padding:10px 16px; font-size:13px; font-weight:400; color:#545454; text-align:left; border-bottom:1px solid #e8e8e8;\">Extension</th>\r\n <th style=\"padding:10px 8px; border-bottom:1px solid #e8e8e8; width:30px;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr style=\"background:#fff; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='#fff'\">\r\n <td style=\"padding:12px 16px; border-bottom:1px solid #e8e8e8;\">\r\n <span style=\"display:inline-block; background:#e8f4fc; color:#1170a8; padding:4px 14px; border-radius:14px; font-size:13px; font-weight:400; border:1px solid #b8d9ed;\">Primary</span>\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onExtensionLineChange($event)\"\r\n (keydown.enter)=\"onExtensionLineChange($event)\"\r\n [value]=\"phoneNumberValue\"\r\n autofocus\r\n />\r\n </td>\r\n <td style=\"padding:12px 16px; color:#333; font-size:14px; border-bottom:1px solid #e8e8e8;\">\r\n <div>\r\n <input\r\n class=\"input-text\"\r\n disabled=\"true\"\r\n type=\"text\"\r\n (blur)=\"onDirectoryNumberChange($event)\"\r\n (keydown.enter)=\"onDirectoryNumberChange($event)\"\r\n [value]=\"formControl.value\"\r\n autofocus\r\n />\r\n <!-- <span\r\n [attr.contenteditable]=\"!isWebex\"\r\n (blur)=\"onDirectoryNumberChange($event)\">\r\n {{ formControl?.value }}\r\n </span> -->\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/copy-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </td>\r\n <td style=\"padding:19px 8px; text-align:center; border-bottom:1px solid #e8e8e8; display:flex; align-items:center; justify-content:center; line-height:0;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!-- Add secondary number button -->\r\n <button\r\n disabled\r\n style=\"background:#fff; border:1px solid #c4c4c4; padding:8px 20px; border-radius:18px; font-size:14px; font-weight:400; cursor:not-allowed; color:#333; opacity:0.6;\"\r\n onmouseover=\"this.style.background='#ededed'\"\r\n onmouseout=\"this.style.background='#fff'\">\r\n Add secondary number\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Caller ID section -->\r\n <div style=\"display:flex; align-items:center; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:center;\">\r\n <span>Caller ID</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n <div style=\"flex:1;\"></div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <div style=\"height:1px; background:#e8e8e8; margin:8px 0;\"></div>\r\n\r\n <!-- Emergency callback number section -->\r\n <div style=\"display:flex; align-items:flex-start; padding:16px 0; cursor:pointer;\" onmouseover=\"this.style.background='#fafafa'\" onmouseout=\"this.style.background='transparent'\">\r\n <div style=\"min-width:170px; font-weight:400; font-size:14px; color:#121212; display:flex; align-items:flex-start;\">\r\n <div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>Emergency callback</span>\r\n </div>\r\n <div style=\"display:flex; align-items:center;\">\r\n <span>number</span>\r\n <img style=\"margin-left: .5rem;\" src=\"assets/icons/info-circle-regular.svg\" width=\"16\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"flex:1; display:flex; align-items:flex-start; padding-top:2px;\">\r\n <i class=\"fa fa-times-circle\" style=\"color:#c62828; margin-right:8px; margin-top: 2px; font-size:14px;\"></i>\r\n <span style=\"color:#c62828; font-size:13px; line-height:1.4;\">All calls will be blocked if there's no ECBN, assign a phone number to this user or set the location default ECBN.</span>\r\n </div>\r\n <div style=\"padding-right:8px; display:flex; align-items:center;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" style=\"width:16px; height:16px; color:#222222; transform:rotate(-90deg); transform-origin:center; display:block; margin:0;\" aria-hidden=\"true\">\r\n <path fill=\"currentColor\" d=\"M28.708 9.293a1 1 0 0 0-1.415 0L16 20.586 4.707 9.293a1 1 0 0 0-1.414 1.414l12 12a1 1 0 0 0 1.414 0l12-12a1 1 0 0 0 0-1.414\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- user-calling-extension\r\n *ngIf=\"formControl\"\r\n [siteId]=\"this.siteId\"\r\n [control]=\"formControl\"\r\n [routePartition]=\"this.lineAssociation.directoryNumber.routePartitionName\"\r\n [directoryNumber]=\"this.lineAssociation.directoryNumber.directoryNumber\"\r\n (onChange)=\"onDirectoryNumberChange($event)\">\r\n </app-user-calling-extension> -->\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";#user-calling{height:calc(100vh - 100px)}#user-calling table{margin:10px 0;width:100%}#user-calling th{color:#000;text-align:left;background:#efefef;font-size:14px;font-weight:500;padding:2px 5px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}td .input-text{color:#333;font-size:14px;padding:5px;background:none}td .input-text:not(:focus){border:none}td .input-text:focus{border:.0625rem solid rgba(0,0,0,.5019607843)!important;border-radius:.5rem;color:#000000f2;font-weight:400;font-size:.875rem;max-inline-size:18rem}td .input-text:focus-visible{outline:none}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:gray!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.spinner-container{width:100%;display:flex;justify-content:center;align-items:center}.spinner-container ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#000}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#636363;font-size:14px}.webex-table tr:hover td{background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-tab-group{font-family:Inter,sans-serif}::ng-deep .mat-tab-label{font-weight:500!important;font-size:16px!important;height:auto!important;min-width:auto!important;padding:0!important;opacity:1!important;color:#000!important}::ng-deep .mat-ink-bar{background-color:#000!important;height:3px!important}::ng-deep .mat-tab-labels{gap:30px}\n"] }]
80
83
  }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.DnsService }]; }, propDecorators: { siteId: [{
81
84
  type: Input
82
85
  }], userId: [{
83
86
  type: Input
87
+ }], primaryLineDirectoryNumber: [{
88
+ type: Input
84
89
  }], onExtensionChange: [{
85
90
  type: Output
86
91
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jYWxsaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1jYWxsaW5nL3VzZXItY2FsbGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1tYW5hZ2Uvc3JjL3VzZXItY2FsbGluZy91c2VyLWNhbGxpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWEvRSxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0csQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQWdCLENBQUM7UUFDakUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUks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RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNpbXBsaWZpZWRVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9zaW1wbGlmaWVkLXVzZXInO1xyXG5pbXBvcnQgeyBMaW5lQXNzb2NpYXRpb24gfSBmcm9tICcuLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24nO1xyXG5pbXBvcnQgeyBMaW5lQXNzb2NpYXRpb25JbnRlcmZhY2UgfSBmcm9tICcuLi9jbGFzc2VzL2xpbmUtYXNzb2NpYXRpb24taW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1jYWxsaW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1jYWxsaW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91c2VyLWNhbGxpbmcuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJDYWxsaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBzaXRlSWQhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdXNlcklkITogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBvbkV4dGVuc2lvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIHB1YmxpYyBkYXRhUGVuZGluZyE6IGJvb2xlYW47XHJcblxyXG4gIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXSAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZm9ybTtcclxuICB9XHJcblxyXG4gIGdldCBpc1dlYmV4KCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJleFVVSUQnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2ViZXhVVUlEJykgIT09ICdudWxsJztcclxuICB9XHJcblxyXG4gIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtPy5nZXQoJ2RpcmVjdG9yeU51bWJlcicpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcGhvbmVOdW1iZXJWYWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0gJiYgdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zLmxlbmd0aCAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zWzBdPy5tYXBwZWREaWRzICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHMubGVuZ3RoICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHNbMF07XHJcbiAgfVxyXG5cclxuICBnZXQgbGluZUFzc29jaWF0aW9uKCk6IExpbmVBc3NvY2lhdGlvbiB8IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXIoKTogU2ltcGxpZmllZFVzZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRuc1NlcnZpY2U6IERuc1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5nZXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBvbkV4dGVuc2lvbkxpbmVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUudHJpbSgpO1xyXG4gICAgKHRoaXMudXNlclNlcnZpY2U/LnVzZXIgJiYgdGhpcy51c2VyU2VydmljZT8udXNlcj8ubGluZXMgJiYgdGhpcy51c2VyU2VydmljZT8udXNlcj8ubGluZXNbMF0/Lm1hcHBlZERpZHNbMF0pID8gdGhpcy51c2VyU2VydmljZS51c2VyLmxpbmVzWzBdLm1hcHBlZERpZHNbMF0gPSB2YWx1ZSA6IHZvaWQgMDtcclxuICAgIHRoaXMub25FeHRlbnNpb25DaGFuZ2UubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIG9uRGlyZWN0b3J5TnVtYmVyQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQudHJpbSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmxpbmVBc3NvY2lhdGlvbiAmJiB0aGlzLmxpbmVBc3NvY2lhdGlvbi5kaXJlY3RvcnlOdW1iZXIpIHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXIgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5vbkV4dGVuc2lvbkNoYW5nZS5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlRmllbGQodG9rZW46IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCF0b2tlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAodGhpcy51c2VyU2VydmljZS51c2VyIGFzIGFueSlbdG9rZW5dID0gdGhpcy5mb3JtPy5nZXQodG9rZW4pPy52YWx1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlRWRpdE1vZGUoKSB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIudG9nZ2xlRWRpdE1vZGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NhdmluZ0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnVzZXJTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKCkgfHwgdGhpcy51c2VyU2VydmljZS5oYXNFeGlzdGVkVXNlcklkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlRXh0ZW5zaW9uKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxpbmVBc3NvY2lhdGlvbiAmJiB0aGlzLmxpbmVBc3NvY2lhdGlvbi5kaXJlY3RvcnlOdW1iZXIpIHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXIgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0YSgpIHtcclxuICAgIHRoaXMuZGF0YVBlbmRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kbnNTZXJ2aWNlLmdldE51bWJlclJhbmdlKFN0cmluZyh0aGlzLnNpdGVJZCksIHRoaXMudXNlcklkKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBjb21wbGV0ZTogKHY6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlOiBhbnkpID0+IHRoaXMuZGF0YVBlbmRpbmcgPSBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gICAgTlVNQkVSUyBCT1ggLS0+XHJcbjxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBwYWRkaW5nOiAyNHB4IDA7IGdhcDogMjRweDtcIj5cclxuICA8ZGl2IGNsYXNzPVwidXNlci1pbmZvLWJveCB1c2VyLWRldGFpbHMtYm94XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgPGgzIGNsYXNzPVwidXNlci1ib3gtdGl0bGVcIiBzdHlsZT1cIndpZHRoOiAxODBweDtcIj5OdW1iZXJzPC9oMz5cclxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uO1wiPlxyXG4gICAgICA8IS0tIERpcmVjdG9yeSBudW1iZXJzIHNlY3Rpb24gLS0+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IHBhZGRpbmc6MTZweCAwO1wiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJtaW4td2lkdGg6MTcwcHg7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zaXplOjE0cHg7IGNvbG9yOiMxMjEyMTI7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPlxyXG4gICAgICAgICAgPHNwYW4+RGlyZWN0b3J5IG51bWJlcnM8L3NwYW4+XHJcbiAgICAgICAgICA8aW1nIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC41cmVtO1wiIHNyYz1cImFzc2V0cy9pY29ucy9pbmZvLWNpcmNsZS1yZWd1bGFyLnN2Z1wiIHdpZHRoPVwiMTZcIiBhbHQ9XCJcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDtcIj5cclxuICAgICAgICAgIDwhLS0gVGFibGUgLS0+XHJcbiAgICAgICAgICA8dGFibGUgc3R5bGU9XCJ3aWR0aDoxMDAlOyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IG1hcmdpbi1ib3R0b206MTZweDtcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgIDx0ciBzdHlsZT1cImJhY2tncm91bmQ6I2VkZWRlZDtcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCAxNnB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+VHlwZTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOjEzcHg7IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6IzU0NTQ1NDsgdGV4dC1hbGlnbjpsZWZ0OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4O1wiPlBob25lIG51bWJlcjwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggMTZweDsgZm9udC1zaXplOjEzcHg7IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6IzU0NTQ1NDsgdGV4dC1hbGlnbjpsZWZ0OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4O1wiPkV4dGVuc2lvbjwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJwYWRkaW5nOjEwcHggOHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4OyB3aWR0aDozMHB4O1wiPjwvdGg+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgIDx0ciBzdHlsZT1cImJhY2tncm91bmQ6I2ZmZjsgY3Vyc29yOnBvaW50ZXI7XCIgb25tb3VzZW92ZXI9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmYWZhZmEnXCIgb25tb3VzZW91dD1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2ZmZidcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6MTJweCAxNnB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImRpc3BsYXk6aW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kOiNlOGY0ZmM7IGNvbG9yOiMxMTcwYTg7IHBhZGRpbmc6NHB4IDE0cHg7IGJvcmRlci1yYWRpdXM6MTRweDsgZm9udC1zaXplOjEzcHg7IGZvbnQtd2VpZ2h0OjQwMDsgYm9yZGVyOjFweCBzb2xpZCAjYjhkOWVkO1wiPlByaW1hcnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzoxMnB4IDE2cHg7IGNvbG9yOiMzMzM7IGZvbnQtc2l6ZToxNHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25FeHRlbnNpb25MaW5lQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FeHRlbnNpb25MaW5lQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInBob25lTnVtYmVyVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjEycHggMTZweDsgY29sb3I6IzMzMzsgZm9udC1zaXplOjE0cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LXRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cIm9uRGlyZWN0b3J5TnVtYmVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZm9ybUNvbnRyb2wudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb250ZW50ZWRpdGFibGVdPVwiIWlzV2ViZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgZm9ybUNvbnRyb2wudmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2NvcHktcmVndWxhci5zdmdcIiB3aWR0aD1cIjE2XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6MTlweCA4cHg7IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbGluZS1oZWlnaHQ6MDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIHN0eWxlPVwid2lkdGg6MTZweDsgaGVpZ2h0OjE2cHg7IGNvbG9yOiMyMjIyMjI7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjowO1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTI4LjcwOCA5LjI5M2ExIDEgMCAwIDAtMS40MTUgMEwxNiAyMC41ODYgNC43MDcgOS4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0bDEyIDEyYTEgMSAwIDAgMCAxLjQxNCAwbDEyLTEyYTEgMSAwIDAgMCAwLTEuNDE0XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8IS0tIEFkZCBzZWNvbmRhcnkgbnVtYmVyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2M0YzRjNDsgcGFkZGluZzo4cHggMjBweDsgYm9yZGVyLXJhZGl1czoxOHB4OyBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NDAwOyBjdXJzb3I6bm90LWFsbG93ZWQ7IGNvbG9yOiMzMzM7IG9wYWNpdHk6MC42O1wiXHJcbiAgICAgICAgICAgIG9ubW91c2VvdmVyPVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZWRlZGVkJ1wiXHJcbiAgICAgICAgICAgIG9ubW91c2VvdXQ9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmZmYnXCI+XHJcbiAgICAgICAgICAgIEFkZCBzZWNvbmRhcnkgbnVtYmVyXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OjFweDsgYmFja2dyb3VuZDojZThlOGU4OyBtYXJnaW46OHB4IDA7XCI+PC9kaXY+XHJcblxyXG4gICAgICA8IS0tIENhbGxlciBJRCBzZWN0aW9uIC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6MTZweCAwOyBjdXJzb3I6cG9pbnRlcjtcIiBvbm1vdXNlb3Zlcj1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2ZhZmFmYSdcIiBvbm1vdXNlb3V0PVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPSd0cmFuc3BhcmVudCdcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWluLXdpZHRoOjE3MHB4OyBmb250LXdlaWdodDo0MDA7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojMTIxMjEyOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgIDxzcGFuPkNhbGxlciBJRDwvc3Bhbj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2luZm8tY2lyY2xlLXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6OHB4OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBzdHlsZT1cIndpZHRoOjE2cHg7IGhlaWdodDoxNnB4OyBjb2xvcjojMjIyMjIyOyB0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IHRyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MDtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMjguNzA4IDkuMjkzYTEgMSAwIDAgMC0xLjQxNSAwTDE2IDIwLjU4NiA0LjcwNyA5LjI5M2ExIDEgMCAwIDAtMS40MTQgMS40MTRsMTIgMTJhMSAxIDAgMCAwIDEuNDE0IDBsMTItMTJhMSAxIDAgMCAwIDAtMS40MTRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kOiNlOGU4ZTg7IG1hcmdpbjo4cHggMDtcIj48L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gRW1lcmdlbmN5IGNhbGxiYWNrIG51bWJlciBzZWN0aW9uIC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBwYWRkaW5nOjE2cHggMDsgY3Vyc29yOnBvaW50ZXI7XCIgb25tb3VzZW92ZXI9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmYWZhZmEnXCIgb25tb3VzZW91dD1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0ndHJhbnNwYXJlbnQnXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDoxNzBweDsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXNpemU6MTRweDsgY29sb3I6IzEyMTIxMjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1wiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuPkVtZXJnZW5jeSBjYWxsYmFjazwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj5udW1iZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGltZyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAuNXJlbTtcIiBzcmM9XCJhc3NldHMvaWNvbnMvaW5mby1jaXJjbGUtcmVndWxhci5zdmdcIiB3aWR0aD1cIjE2XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBwYWRkaW5nLXRvcDoycHg7XCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZVwiIHN0eWxlPVwiY29sb3I6I2M2MjgyODsgbWFyZ2luLXJpZ2h0OjhweDsgbWFyZ2luLXRvcDogMnB4OyBmb250LXNpemU6MTRweDtcIj48L2k+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiNjNjI4Mjg7IGZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxLjQ7XCI+QWxsIGNhbGxzIHdpbGwgYmUgYmxvY2tlZCBpZiB0aGVyZSdzIG5vIEVDQk4sIGFzc2lnbiBhIHBob25lIG51bWJlciB0byB0aGlzIHVzZXIgb3Igc2V0IHRoZSBsb2NhdGlvbiBkZWZhdWx0IEVDQk4uPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjhweDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgc3R5bGU9XCJ3aWR0aDoxNnB4OyBoZWlnaHQ6MTZweDsgY29sb3I6IzIyMjIyMjsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjsgZGlzcGxheTpibG9jazsgbWFyZ2luOjA7XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTI4LjcwOCA5LjI5M2ExIDEgMCAwIDAtMS40MTUgMEwxNiAyMC41ODYgNC43MDcgOS4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0bDEyIDEyYTEgMSAwIDAgMCAxLjQxNCAwbDEyLTEyYTEgMSAwIDAgMCAwLTEuNDE0XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSB1c2VyLWNhbGxpbmctZXh0ZW5zaW9uXHJcbiAgICAqbmdJZj1cImZvcm1Db250cm9sXCJcclxuICAgIFtzaXRlSWRdPVwidGhpcy5zaXRlSWRcIlxyXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgICBbcm91dGVQYXJ0aXRpb25dPVwidGhpcy5saW5lQXNzb2NpYXRpb24uZGlyZWN0b3J5TnVtYmVyLnJvdXRlUGFydGl0aW9uTmFtZVwiXHJcbiAgICAgICAgICAgICAgW2RpcmVjdG9yeU51bWJlcl09XCJ0aGlzLmxpbmVBc3NvY2lhdGlvbi5kaXJlY3RvcnlOdW1iZXIuZGlyZWN0b3J5TnVtYmVyXCJcclxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC11c2VyLWNhbGxpbmctZXh0ZW5zaW9uPiAtLT5cclxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jYWxsaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLW1hbmFnZS9zcmMvdXNlci1jYWxsaW5nL3VzZXItY2FsbGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1tYW5hZ2Uvc3JjL3VzZXItY2FsbGluZy91c2VyLWNhbGxpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWEvRSxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLDBCQUEwQjtJQUMxQiw4R0FBOEc7SUFDOUcsSUFBSTtJQUVKLElBQUksT0FBTztRQUNULE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQWdCLENBQUM7UUFDakUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FB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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3NpbXBsaWZpZWQtdXNlcic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbiB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbic7XHJcbmltcG9ydCB7IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB9IGZyb20gJy4uL2NsYXNzZXMvbGluZS1hc3NvY2lhdGlvbi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERuc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kbnMuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWNhbGxpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWNhbGxpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItY2FsbGluZy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckNhbGxpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHNpdGVJZCE6IG51bWJlcjtcclxuICBASW5wdXQoKSB1c2VySWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJpbWFyeUxpbmVEaXJlY3RvcnlOdW1iZXIhOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIG9uRXh0ZW5zaW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgcHVibGljIGRhdGFQZW5kaW5nITogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIC8vIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXSAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZm9ybTtcclxuICAvLyB9XHJcblxyXG4gIGdldCBpc1dlYmV4KCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJleFVVSUQnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2ViZXhVVUlEJykgIT09ICdudWxsJztcclxuICB9XHJcblxyXG4gIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtPy5nZXQoJ2RpcmVjdG9yeU51bWJlcicpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgcGhvbmVOdW1iZXJWYWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0gJiYgdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zLmxlbmd0aCAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zWzBdPy5tYXBwZWREaWRzICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHMubGVuZ3RoICYmIHRoaXMudXNlclNlcnZpY2U/LnVzZXI/LmRldmljZXNbMF0/LmxpbmVBc3NvY2lhdGlvbnNbMF0/Lm1hcHBlZERpZHNbMF07XHJcbiAgfVxyXG5cclxuICBnZXQgbGluZUFzc29jaWF0aW9uKCk6IExpbmVBc3NvY2lhdGlvbiB8IExpbmVBc3NvY2lhdGlvbkludGVyZmFjZSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZT8udXNlcj8uZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXIoKTogU2ltcGxpZmllZFVzZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRuc1NlcnZpY2U6IERuc1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJpbWFyeUxpbmVEZXZpY2UgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldFByaW1hcnlMaW5lRGV2aWNlKHRoaXMucHJpbWFyeUxpbmVEaXJlY3RvcnlOdW1iZXIpO1xyXG4gICAgaWYgKHByaW1hcnlMaW5lRGV2aWNlKSB7XHJcbiAgICAgIHRoaXMuZm9ybSA9IHByaW1hcnlMaW5lRGV2aWNlLmxpbmVBc3NvY2lhdGlvbnNbMF0/LmZvcm07XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIG9uRXh0ZW5zaW9uTGluZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS50cmltKCk7XHJcbiAgICAodGhpcy51c2VyU2VydmljZT8udXNlciAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5saW5lcyAmJiB0aGlzLnVzZXJTZXJ2aWNlPy51c2VyPy5saW5lc1swXT8ubWFwcGVkRGlkc1swXSkgPyB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIubGluZXNbMF0ubWFwcGVkRGlkc1swXSA9IHZhbHVlIDogdm9pZCAwO1xyXG4gICAgdGhpcy5vbkV4dGVuc2lvbkNoYW5nZS5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgb25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dC50cmltKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubGluZUFzc29jaWF0aW9uICYmIHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlciA9IHZhbHVlO1xyXG4gICAgICB0aGlzLm9uRXh0ZW5zaW9uQ2hhbmdlLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VGaWVsZCh0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRva2VuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgICh0aGlzLnVzZXJTZXJ2aWNlLnVzZXIgYXMgYW55KVt0b2tlbl0gPSB0aGlzLmZvcm0/LmdldCh0b2tlbik/LnZhbHVlO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVFZGl0TW9kZSgpIHtcclxuICAgIHRoaXMudXNlclNlcnZpY2UudXNlci50b2dnbGVFZGl0TW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2F2aW5nRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMudXNlclNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMoKSB8fCB0aGlzLnVzZXJTZXJ2aWNlLmhhc0V4aXN0ZWRVc2VySWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VFeHRlbnNpb24odmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGluZUFzc29jaWF0aW9uICYmIHRoaXMubGluZUFzc29jaWF0aW9uLmRpcmVjdG9yeU51bWJlcikge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmRuc1NlcnZpY2UuZ2V0TnVtYmVyUmFuZ2UoU3RyaW5nKHRoaXMuc2l0ZUlkKSwgdGhpcy51c2VySWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIGNvbXBsZXRlOiAodjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGU6IGFueSkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSAgICBOVU1CRVJTIEJPWCAtLT5cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IHBhZGRpbmc6IDI0cHggMDsgZ2FwOiAyNHB4O1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8tYm94IHVzZXItZGV0YWlscy1ib3hcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICA8aDMgY2xhc3M9XCJ1c2VyLWJveC10aXRsZVwiIHN0eWxlPVwid2lkdGg6IDE4MHB4O1wiPk51bWJlcnM8L2gzPlxyXG4gICAgPGRpdiBzdHlsZT1cImZsZXg6MTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XCI+XHJcbiAgICAgIDwhLS0gRGlyZWN0b3J5IG51bWJlcnMgc2VjdGlvbiAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgcGFkZGluZzoxNnB4IDA7XCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDoxNzBweDsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXNpemU6MTRweDsgY29sb3I6IzEyMTIxMjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3Bhbj5EaXJlY3RvcnkgbnVtYmVyczwvc3Bhbj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2luZm8tY2lyY2xlLXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1wiPlxyXG4gICAgICAgICAgPCEtLSBUYWJsZSAtLT5cclxuICAgICAgICAgIDx0YWJsZSBzdHlsZT1cIndpZHRoOjEwMCU7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgbWFyZ2luLWJvdHRvbToxNnB4O1wiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZDojZWRlZGVkO1wiPlxyXG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwicGFkZGluZzoxMHB4IDE2cHg7IGZvbnQtc2l6ZToxM3B4OyBmb250LXdlaWdodDo0MDA7IGNvbG9yOiM1NDU0NTQ7IHRleHQtYWxpZ246bGVmdDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5UeXBlPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCAxNnB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+UGhvbmUgbnVtYmVyPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCAxNnB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBjb2xvcjojNTQ1NDU0OyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+RXh0ZW5zaW9uPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInBhZGRpbmc6MTBweCA4cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7IHdpZHRoOjMwcHg7XCI+PC90aD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZDojZmZmOyBjdXJzb3I6cG9pbnRlcjtcIiBvbm1vdXNlb3Zlcj1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2ZhZmFmYSdcIiBvbm1vdXNlb3V0PVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZmZmJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzoxMnB4IDE2cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6I2U4ZjRmYzsgY29sb3I6IzExNzBhODsgcGFkZGluZzo0cHggMTRweDsgYm9yZGVyLXJhZGl1czoxNHB4OyBmb250LXNpemU6MTNweDsgZm9udC13ZWlnaHQ6NDAwOyBib3JkZXI6MXB4IHNvbGlkICNiOGQ5ZWQ7XCI+UHJpbWFyeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOjEycHggMTZweDsgY29sb3I6IzMzMzsgZm9udC1zaXplOjE0cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlOGU4ZTg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkV4dGVuc2lvbkxpbmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkV4dGVuc2lvbkxpbmVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicGhvbmVOdW1iZXJWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvZm9jdXNcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6MTJweCAxNnB4OyBjb2xvcjojMzMzOyBmb250LXNpemU6MTRweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U4ZThlODtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkRpcmVjdG9yeU51bWJlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtQ29udHJvbC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvZm9jdXNcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbnRlbnRlZGl0YWJsZV09XCIhaXNXZWJleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkRpcmVjdG9yeU51bWJlckNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBmb3JtQ29udHJvbD8udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2NvcHktcmVndWxhci5zdmdcIiB3aWR0aD1cIjE2XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6MTlweCA4cHg7IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZThlOGU4OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbGluZS1oZWlnaHQ6MDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIHN0eWxlPVwid2lkdGg6MTZweDsgaGVpZ2h0OjE2cHg7IGNvbG9yOiMyMjIyMjI7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjowO1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTI4LjcwOCA5LjI5M2ExIDEgMCAwIDAtMS40MTUgMEwxNiAyMC41ODYgNC43MDcgOS4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0bDEyIDEyYTEgMSAwIDAgMCAxLjQxNCAwbDEyLTEyYTEgMSAwIDAgMCAwLTEuNDE0XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8IS0tIEFkZCBzZWNvbmRhcnkgbnVtYmVyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2M0YzRjNDsgcGFkZGluZzo4cHggMjBweDsgYm9yZGVyLXJhZGl1czoxOHB4OyBmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NDAwOyBjdXJzb3I6bm90LWFsbG93ZWQ7IGNvbG9yOiMzMzM7IG9wYWNpdHk6MC42O1wiXHJcbiAgICAgICAgICAgIG9ubW91c2VvdmVyPVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPScjZWRlZGVkJ1wiXHJcbiAgICAgICAgICAgIG9ubW91c2VvdXQ9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmZmYnXCI+XHJcbiAgICAgICAgICAgIEFkZCBzZWNvbmRhcnkgbnVtYmVyXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OjFweDsgYmFja2dyb3VuZDojZThlOGU4OyBtYXJnaW46OHB4IDA7XCI+PC9kaXY+XHJcblxyXG4gICAgICA8IS0tIENhbGxlciBJRCBzZWN0aW9uIC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6MTZweCAwOyBjdXJzb3I6cG9pbnRlcjtcIiBvbm1vdXNlb3Zlcj1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0nI2ZhZmFmYSdcIiBvbm1vdXNlb3V0PVwidGhpcy5zdHlsZS5iYWNrZ3JvdW5kPSd0cmFuc3BhcmVudCdcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWluLXdpZHRoOjE3MHB4OyBmb250LXdlaWdodDo0MDA7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojMTIxMjEyOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgIDxzcGFuPkNhbGxlciBJRDwvc3Bhbj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJtYXJnaW4tbGVmdDogLjVyZW07XCIgc3JjPVwiYXNzZXRzL2ljb25zL2luZm8tY2lyY2xlLXJlZ3VsYXIuc3ZnXCIgd2lkdGg9XCIxNlwiIGFsdD1cIlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6OHB4OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBzdHlsZT1cIndpZHRoOjE2cHg7IGhlaWdodDoxNnB4OyBjb2xvcjojMjIyMjIyOyB0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IHRyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MDtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMjguNzA4IDkuMjkzYTEgMSAwIDAgMC0xLjQxNSAwTDE2IDIwLjU4NiA0LjcwNyA5LjI5M2ExIDEgMCAwIDAtMS40MTQgMS40MTRsMTIgMTJhMSAxIDAgMCAwIDEuNDE0IDBsMTItMTJhMSAxIDAgMCAwIDAtMS40MTRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kOiNlOGU4ZTg7IG1hcmdpbjo4cHggMDtcIj48L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gRW1lcmdlbmN5IGNhbGxiYWNrIG51bWJlciBzZWN0aW9uIC0tPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBwYWRkaW5nOjE2cHggMDsgY3Vyc29yOnBvaW50ZXI7XCIgb25tb3VzZW92ZXI9XCJ0aGlzLnN0eWxlLmJhY2tncm91bmQ9JyNmYWZhZmEnXCIgb25tb3VzZW91dD1cInRoaXMuc3R5bGUuYmFja2dyb3VuZD0ndHJhbnNwYXJlbnQnXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDoxNzBweDsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXNpemU6MTRweDsgY29sb3I6IzEyMTIxMjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1wiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuPkVtZXJnZW5jeSBjYWxsYmFjazwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj5udW1iZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGltZyBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAuNXJlbTtcIiBzcmM9XCJhc3NldHMvaWNvbnMvaW5mby1jaXJjbGUtcmVndWxhci5zdmdcIiB3aWR0aD1cIjE2XCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBwYWRkaW5nLXRvcDoycHg7XCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZVwiIHN0eWxlPVwiY29sb3I6I2M2MjgyODsgbWFyZ2luLXJpZ2h0OjhweDsgbWFyZ2luLXRvcDogMnB4OyBmb250LXNpemU6MTRweDtcIj48L2k+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiNjNjI4Mjg7IGZvbnQtc2l6ZToxM3B4OyBsaW5lLWhlaWdodDoxLjQ7XCI+QWxsIGNhbGxzIHdpbGwgYmUgYmxvY2tlZCBpZiB0aGVyZSdzIG5vIEVDQk4sIGFzc2lnbiBhIHBob25lIG51bWJlciB0byB0aGlzIHVzZXIgb3Igc2V0IHRoZSBsb2NhdGlvbiBkZWZhdWx0IEVDQk4uPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjhweDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgc3R5bGU9XCJ3aWR0aDoxNnB4OyBoZWlnaHQ6MTZweDsgY29sb3I6IzIyMjIyMjsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjsgZGlzcGxheTpibG9jazsgbWFyZ2luOjA7XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTI4LjcwOCA5LjI5M2ExIDEgMCAwIDAtMS40MTUgMEwxNiAyMC41ODYgNC43MDcgOS4yOTNhMSAxIDAgMCAwLTEuNDE0IDEuNDE0bDEyIDEyYTEgMSAwIDAgMCAxLjQxNCAwbDEyLTEyYTEgMSAwIDAgMCAwLTEuNDE0XCIvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSB1c2VyLWNhbGxpbmctZXh0ZW5zaW9uXHJcbiAgICAqbmdJZj1cImZvcm1Db250cm9sXCJcclxuICAgIFtzaXRlSWRdPVwidGhpcy5zaXRlSWRcIlxyXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgICBbcm91dGVQYXJ0aXRpb25dPVwidGhpcy5saW5lQXNzb2NpYXRpb24uZGlyZWN0b3J5TnVtYmVyLnJvdXRlUGFydGl0aW9uTmFtZVwiXHJcbiAgICAgICAgICAgICAgW2RpcmVjdG9yeU51bWJlcl09XCJ0aGlzLmxpbmVBc3NvY2lhdGlvbi5kaXJlY3RvcnlOdW1iZXIuZGlyZWN0b3J5TnVtYmVyXCJcclxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwib25EaXJlY3RvcnlOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC11c2VyLWNhbGxpbmctZXh0ZW5zaW9uPiAtLT5cclxuIl19