@tuki-io/tuki-widgets 0.0.219-dev.56 → 0.0.219-dev.58

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 (246) hide show
  1. package/README.md +24 -24
  2. package/esm2020/contact-center/cc-import/cc-import.module.mjs +1 -1
  3. package/esm2020/contact-center/cc-import/cc-import.service.mjs +1 -1
  4. package/esm2020/contact-center/cc-import/components/import-contact-center-panel/import-contact-center-panel.component.mjs +3 -3
  5. package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.component.mjs +3 -3
  6. package/esm2020/contact-center/cc-import/components/import-contact-center-wizard/import-contact-center-wizard.types.mjs +1 -1
  7. package/esm2020/contact-center/cc-import/constants/cc-import.constants.mjs +1 -1
  8. package/esm2020/contact-center/cc-import/mock/cc-import.mock.mjs +1 -1
  9. package/esm2020/contact-center/cc-import/types/cc-import.mjs +1 -1
  10. package/esm2020/contact-center/cc-import/types/uccx.mjs +1 -1
  11. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
  12. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
  13. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
  14. package/esm2020/contact-center/public-api.mjs +1 -1
  15. package/esm2020/contact-center/shared/api.endpoints.mjs +1 -1
  16. package/esm2020/contact-center/shared/components/card/card.component.mjs +3 -3
  17. package/esm2020/contact-center/shared/dcp-api.service.mjs +1 -1
  18. package/esm2020/contact-center/shared/shared.module.mjs +1 -1
  19. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
  20. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
  21. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +17 -17
  22. package/esm2020/lib/widgets.component.mjs +9 -9
  23. package/esm2020/lib/widgets.module.mjs +1 -1
  24. package/esm2020/lib/widgets.service.mjs +1 -1
  25. package/esm2020/locations/public-api.mjs +1 -1
  26. package/esm2020/locations/src/app.constants.mjs +1 -1
  27. package/esm2020/locations/src/location-confirm-dialog/location-confirm-dialog.component.mjs +3 -3
  28. package/esm2020/locations/src/locations.component.mjs +3 -3
  29. package/esm2020/locations/src/locations.module.mjs +1 -1
  30. package/esm2020/locations/src/material.module.mjs +1 -1
  31. package/esm2020/locations/src/services/api.service.mjs +1 -1
  32. package/esm2020/locations/src/services/locations.service.mjs +1 -1
  33. package/esm2020/locations/src/types/location.mjs +1 -1
  34. package/esm2020/locations/src/utils/app-loader/app-loader.mjs +3 -3
  35. package/esm2020/meetings/public-api.mjs +1 -1
  36. package/esm2020/meetings/src/app.constants.mjs +1 -1
  37. package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +3 -3
  38. package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +3 -3
  39. package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +3 -3
  40. package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +3 -3
  41. package/esm2020/meetings/src/material.module.mjs +1 -1
  42. package/esm2020/meetings/src/meetings.component.mjs +3 -3
  43. package/esm2020/meetings/src/meetings.module.mjs +1 -1
  44. package/esm2020/meetings/src/services/api.service.mjs +1 -1
  45. package/esm2020/meetings/src/services/live-meetings.service.mjs +1 -1
  46. package/esm2020/meetings/src/services/meeting-spaces.service.mjs +1 -1
  47. package/esm2020/meetings/src/types/live-meeting.mjs +1 -1
  48. package/esm2020/meetings/src/types/meeting-space.mjs +1 -1
  49. package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +3 -3
  50. package/esm2020/public-api.mjs +1 -1
  51. package/esm2020/user-creation/src/app.constants.mjs +1 -1
  52. package/esm2020/user-creation/src/classes/notification.mjs +1 -1
  53. package/esm2020/user-creation/src/classes/site.mjs +1 -1
  54. package/esm2020/user-creation/src/environments/environment.mjs +1 -1
  55. package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +1 -1
  56. package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +3 -3
  57. package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +1 -1
  58. package/esm2020/user-creation/src/shared/services/notification.service.mjs +1 -1
  59. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +1 -1
  60. package/esm2020/user-creation/src/shared/services/utils.mjs +1 -1
  61. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +3 -3
  62. package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +1 -1
  63. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +1 -1
  64. package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +1 -1
  65. package/esm2020/user-creation/src/utils/device-name-validation.mjs +1 -1
  66. package/esm2020/user-creation/src/utils/model.mjs +1 -1
  67. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +1 -1
  68. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +3 -3
  69. package/esm2020/user-device-manage/public-api.mjs +1 -1
  70. package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
  71. package/esm2020/user-device-manage/src/associate-lines/associate-lines.component.mjs +3 -3
  72. package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
  73. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  74. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +1 -1
  75. package/esm2020/user-device-manage/src/classes/line-association.mjs +1 -1
  76. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +1 -1
  77. package/esm2020/user-device-manage/src/classes/line-directory.mjs +1 -1
  78. package/esm2020/user-device-manage/src/classes/line.mjs +1 -1
  79. package/esm2020/user-device-manage/src/classes/notification.mjs +1 -1
  80. package/esm2020/user-device-manage/src/classes/recording-options.mjs +1 -1
  81. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  82. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +1 -1
  83. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +1 -1
  84. package/esm2020/user-device-manage/src/classes/types.mjs +1 -1
  85. package/esm2020/user-device-manage/src/common-functions.mjs +1 -1
  86. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +3 -3
  87. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +3 -3
  88. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +3 -3
  89. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +3 -3
  90. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +1 -1
  91. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
  92. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +3 -3
  93. package/esm2020/user-device-manage/src/device-settings/device-settings.component.mjs +3 -3
  94. package/esm2020/user-device-manage/src/environments/environment.mjs +1 -1
  95. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +1 -1
  96. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  97. package/esm2020/user-device-manage/src/line-key-config/line-key-config.component.mjs +3 -3
  98. package/esm2020/user-device-manage/src/material.module.mjs +1 -1
  99. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +3 -3
  100. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
  101. package/esm2020/user-device-manage/src/services/api.service.mjs +1 -1
  102. package/esm2020/user-device-manage/src/services/device.service.mjs +1 -1
  103. package/esm2020/user-device-manage/src/services/dns.service.mjs +1 -1
  104. package/esm2020/user-device-manage/src/services/line.service.mjs +1 -1
  105. package/esm2020/user-device-manage/src/services/notification.service.mjs +1 -1
  106. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  107. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +1 -1
  108. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +1 -1
  109. package/esm2020/user-device-manage/src/services/user.service.mjs +1 -1
  110. package/esm2020/user-device-manage/src/services/utils.service.mjs +1 -1
  111. package/esm2020/user-device-manage/src/services/validation.service.mjs +1 -1
  112. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
  113. package/esm2020/user-manage/public-api.mjs +1 -1
  114. package/esm2020/user-manage/src/app.constants.mjs +2 -1
  115. package/esm2020/user-manage/src/classes/device.mjs +1 -1
  116. package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
  117. package/esm2020/user-manage/src/classes/line-association.mjs +1 -1
  118. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +1 -1
  119. package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
  120. package/esm2020/user-manage/src/classes/line.mjs +1 -1
  121. package/esm2020/user-manage/src/classes/notification.mjs +1 -1
  122. package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
  123. package/esm2020/user-manage/src/classes/recording-options.mjs +1 -1
  124. package/esm2020/user-manage/src/classes/simplified-user.mjs +15 -2
  125. package/esm2020/user-manage/src/classes/table-data.mjs +1 -1
  126. package/esm2020/user-manage/src/classes/translation-pattern.mjs +1 -1
  127. package/esm2020/user-manage/src/classes/user-list.mjs +1 -1
  128. package/esm2020/user-manage/src/common-functions.mjs +1 -1
  129. package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
  130. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
  131. package/esm2020/user-manage/src/environments/environment.mjs +1 -1
  132. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +1 -1
  133. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +9 -5
  134. package/esm2020/user-manage/src/material.module.mjs +14 -7
  135. package/esm2020/user-manage/src/notifications/notification.component.mjs +3 -3
  136. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +1 -1
  137. package/esm2020/user-manage/src/services/api.service.mjs +1 -1
  138. package/esm2020/user-manage/src/services/dcp-api.service.mjs +1 -1
  139. package/esm2020/user-manage/src/services/dns.service.mjs +1 -1
  140. package/esm2020/user-manage/src/services/line.service.mjs +1 -1
  141. package/esm2020/user-manage/src/services/notification.service.mjs +1 -1
  142. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  143. package/esm2020/user-manage/src/services/site-settings.service.mjs +11 -4
  144. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +1 -1
  145. package/esm2020/user-manage/src/services/user.service.mjs +30 -1
  146. package/esm2020/user-manage/src/services/utils.service.mjs +1 -1
  147. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +3 -3
  148. package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
  149. package/esm2020/user-manage/src/user-manage-widget.component.mjs +42 -26
  150. package/esm2020/user-manage/src/user-manage.module.mjs +5 -2
  151. package/esm2020/user-manage/src/user-summary/user-summary.component.mjs +30 -0
  152. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
  153. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +3 -3
  154. package/esm2020/users-list/public-api.mjs +1 -1
  155. package/esm2020/users-list/src/app.constants.mjs +1 -1
  156. package/esm2020/users-list/src/classes/app-location.mjs +1 -1
  157. package/esm2020/users-list/src/classes/device.mjs +1 -1
  158. package/esm2020/users-list/src/classes/line.mjs +1 -1
  159. package/esm2020/users-list/src/classes/move-user.mjs +1 -1
  160. package/esm2020/users-list/src/classes/notification.mjs +1 -1
  161. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  162. package/esm2020/users-list/src/classes/table-data.mjs +1 -1
  163. package/esm2020/users-list/src/classes/user-list.mjs +1 -1
  164. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +3 -3
  165. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +3 -3
  166. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +3 -3
  167. package/esm2020/users-list/src/services/api-webex.service.mjs +1 -1
  168. package/esm2020/users-list/src/services/api.service.mjs +1 -1
  169. package/esm2020/users-list/src/services/dns.service.mjs +1 -1
  170. package/esm2020/users-list/src/services/events-communication.service.mjs +1 -1
  171. package/esm2020/users-list/src/services/notification.service.mjs +1 -1
  172. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +1 -1
  173. package/esm2020/users-list/src/services/site-settings.service.mjs +1 -1
  174. package/esm2020/users-list/src/services/user.service.mjs +1 -1
  175. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +3 -3
  176. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
  177. package/esm2020/users-list/src/utils/common-functions.mjs +1 -1
  178. package/esm2020/users-list/src/utils/notifications/notification.component.mjs +3 -3
  179. package/esm2020/users-list/src/utils/utils.service.mjs +1 -1
  180. package/esm2020/workspaces/public-api.mjs +1 -1
  181. package/esm2020/workspaces/src/app.constants.mjs +1 -1
  182. package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +3 -3
  183. package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +3 -3
  184. package/esm2020/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.mjs +3 -3
  185. package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +3 -3
  186. package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +3 -3
  187. package/esm2020/workspaces/src/material.module.mjs +1 -1
  188. package/esm2020/workspaces/src/services/api-webex.service.mjs +1 -1
  189. package/esm2020/workspaces/src/services/api.service.mjs +1 -1
  190. package/esm2020/workspaces/src/services/workspace-detail.service.mjs +1 -1
  191. package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +1 -1
  192. package/esm2020/workspaces/src/services/workspaces.service.mjs +25 -8
  193. package/esm2020/workspaces/src/types/workspace.mjs +1 -1
  194. package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +3 -3
  195. package/esm2020/workspaces/src/utils/device-icon.mjs +1 -1
  196. package/esm2020/workspaces/src/utils/workspace-name.mjs +1 -1
  197. package/esm2020/workspaces/src/workspaces.component.mjs +9 -9
  198. package/esm2020/workspaces/src/workspaces.module.mjs +1 -1
  199. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +8 -8
  200. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  201. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  202. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  203. package/fesm2015/tuki-io-tuki-widgets-locations.mjs +6 -6
  204. package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -1
  205. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +12 -12
  206. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -1
  207. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +6 -6
  208. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  209. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +24 -24
  210. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  211. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +165 -61
  212. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  213. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +12 -12
  214. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  215. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +45 -27
  216. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
  217. package/fesm2015/tuki-io-tuki-widgets.mjs +8 -8
  218. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -1
  219. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +8 -8
  220. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  221. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  222. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  223. package/fesm2020/tuki-io-tuki-widgets-locations.mjs +6 -6
  224. package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -1
  225. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +12 -12
  226. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -1
  227. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +6 -6
  228. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  229. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +24 -24
  230. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  231. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +155 -55
  232. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  233. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +12 -12
  234. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  235. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +44 -27
  236. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
  237. package/fesm2020/tuki-io-tuki-widgets.mjs +8 -8
  238. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -1
  239. package/package.json +1 -1
  240. package/user-manage/src/app.constants.d.ts +1 -0
  241. package/user-manage/src/classes/simplified-user.d.ts +6 -0
  242. package/user-manage/src/material.module.d.ts +2 -1
  243. package/user-manage/src/services/user.service.d.ts +11 -0
  244. package/user-manage/src/user-manage-widget.component.d.ts +4 -0
  245. package/user-manage/src/user-manage.module.d.ts +9 -8
  246. package/user-manage/src/user-summary/user-summary.component.d.ts +10 -0
@@ -187,10 +187,10 @@ export class DeviceSettingsComponent {
187
187
  }
188
188
  }
189
189
  DeviceSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceSettingsComponent, deps: [{ token: i1.UserService }, { token: i2.APIService }, { token: i3.DeviceService }, { token: i4.SiteSettingsService }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
190
- DeviceSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceSettingsComponent, selector: "app-device-settings", inputs: { token: "token", host: "host", siteId: "siteId", userId: "userId", deviceName: "deviceName" }, outputs: { goBack: "goBack" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\n<div class=\"go-back-box\" (click)=\"onGoBack()\">\n <div class=\"go-back-box-container\">\n <span class=\"app-icon icon-webex-left-arrow\"></span>\n <span class=\"go-back-title\">Device General Info</span>\n </div>\n</div>\n\n<div class=\"device-settings\">\n <div class=\"panel-header\">\n <span class=\"panel-header__title\">Device Settings</span>\n </div>\n\n <div class=\"panel-body\">\n <section class=\"card\">\n <div class=\"header\">\n <span class=\"title\">Details</span>\n </div>\n <div class=\"main-content\">\n <div class=\"detail-row\">\n <div class=\"side\">\n <span class=\"main-value\">{{ device?.name || 'N/A' }}</span>\n <span class=\"extra-info\">Name</span>\n </div>\n <div class=\"side\">\n <span class=\"main-value\">{{ device?.model || 'N/A' }}</span>\n <span class=\"extra-info\">Type</span>\n </div>\n <div class=\"side\">\n <span class=\"main-value\">{{ device?.description || 'N/A' }}</span>\n <span class=\"extra-info\">Device description</span>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"detail-row\">\n <div class=\"side\">\n <span class=\"main-value\">{{ lines }}</span>\n <span class=\"extra-info\">Line</span>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"detail-row flex-column\" style=\"gap: 0.5rem;\">\n <span class=\"text-description\">PLAR service</span>\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"plarService\"></mat-slide-toggle>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Device info</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">Registration status</div>\n <div class=\"input-holder__plain-value text-description\">{{ device?.form?.get('registrationStatus')?.value || 'Unknown' }}</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">IP Address</div>\n <div class=\"input-holder__plain-value text-description\">{{ device?.ipAddress || 'None' }}</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Description</div>\n <input class=\"plain-input\" [formControl]=\"description\">\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Protocol</div>\n <div class=\"input-holder__plain-value text-description\">SIP</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Softkey template</div>\n <div class=\"input-holder__select-wrap\">\n <select class=\"input-holder__select\" name=\"cluster\" [formControl]=\"softkeyTemplate\">\n <option *ngFor=\"let cluster of softKeys\" [value]=\"cluster\">{{ cluster }}</option>\n </select>\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Button template</div>\n <div class=\"input-holder__plain-value text-description\">Standard 8851 SIP</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Location</div>\n <div class=\"input-holder__plain-value text-description\">Paris_ios</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Device pool</div>\n <div class=\"input-holder__select-wrap\">\n <select class=\"input-holder__select\" name=\"devicePool\" [formControl]=\"devicePool\">\n <option *ngFor=\"let pool of devicePools\" [value]=\"pool\">{{ pool }}</option>\n </select>\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Device CSS</div>\n <div class=\"input-holder__select-wrap\">\n <select class=\"input-holder__select\" name=\"deviceCss\" [formControl]=\"deviceCss\">\n <option *ngFor=\"let css of cssOptions\" [value]=\"css\">{{ css }}</option>\n </select>\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\n </div>\n </div>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Firmware version</div>\n <div class=\"input-holder__plain-value text-description\">{{ device?.softwareVersion || 'Unknown' }}</div>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Media Settings</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">Media Resource Group List</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Network Hold MOH Audio Source</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">User Hold MOH Audio Source</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">AAR Settings</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">AAR Calling Search Space</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">AAR Group</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Device Additional Information</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">Common Phone Profile</div>\n <div class=\"input-holder__plain-value text-description\">Standard Common Phone Profile</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">User Locale</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Enable Extension Mobility</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"enableExtensionMobility\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Privacy</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Mobility user ID</div>\n <div class=\"input-holder__plain-value text-description\">Adam.Allen</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Always Use Prime Line</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Geolocation</div>\n <div class=\"input-holder__plain-value text-description\">&nbsp;</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Logged Into Hunt Group</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"loggedIntoHuntGroup\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Remote Device</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteDevice\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Phone Security Profile</div>\n <div class=\"input-holder__plain-value text-description\">Cisco Dual Mode for iPhone - Standard SIP Non-Secure Profile</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Network Locale</div>\n <div class=\"input-holder__plain-value text-description\">China</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Built In Bridge</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Device Mobility Mode</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Use Trusted Relay Point</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Always Use Prime Line for Voice Message</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Ignore Presentation Indicators( internal calls only )</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"ignorePresentationIndicators\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top\">\n <div class=\"input-holder__name\">Hot line Device</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"hotlineDevice\"></mat-slide-toggle>\n </div>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Number Presentation Transformation</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">\n Caller ID For Calls From This Phone\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the caller ID is presented for calls placed from this phone.'\"></i>\n </div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"callerIdForCallsFromThisPhone\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top\">\n <div class=\"input-holder__name\">\n Remote Number\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the remote number is presented for this phone.'\"></i>\n </div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteNumber\"></mat-slide-toggle>\n </div>\n </div>\n </div>\n </section>\n </div>\n\n <div class=\"settings-footer\">\n <div class=\"settings-footer__actions\">\n <button type=\"button\" class=\"btn-outline\" (click)=\"onCancel()\">Cancel</button>\n <button type=\"button\" class=\"btn-filled\" [disabled]=\"!hasChanges\" (click)=\"onSave()\">Save</button>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";*{margin:0}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center;transition:all .15s ease-out}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-left%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:linear-gradient(90deg,#0d56aa,#0d56ab)}.panel-header__title{font-size:1rem;font-weight:500;font-family:Poppins,Poppins,sans-serif;color:#fff}.device-settings{display:flex;flex-direction:column;min-height:100%;background:#F3F6F6;font-family:Poppins,Poppins,sans-serif}.device-settings .panel-body{flex:1;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:3rem}.device-settings .panel-body .card{width:50rem;margin:0 auto;display:flex;flex-direction:column;padding:1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0;font-family:Poppins,Poppins,sans-serif;gap:1.5rem;flex:1}.device-settings .panel-body .card.vertical-card{flex-direction:row}.device-settings .panel-body .card.vertical-card .main-content{gap:0}.device-settings .panel-body .card.vertical-card .main-content .mat-divider{border-top-color:#0003!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder{min-height:2rem;box-sizing:content-box;display:flex;gap:3.25rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top{padding:.75rem 0 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-bottom{padding:0 0 .75rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top-bottom{padding:.75rem 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__name{max-width:150px;width:150px;flex-shrink:0;color:#000000f2;font-size:.875rem;font-weight:400;white-space:normal;overflow-wrap:break-word}.device-settings .panel-body .card.vertical-card .main-content .input-holder input{width:200px;height:21px;padding:4px 12px;box-sizing:content-box;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:8px;font-family:inherit;font-size:.875rem;font-weight:400;color:#000000f2}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:focus{display:flex;align-items:center;color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap{position:relative;display:flex;align-items:center}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select{width:200px;appearance:none;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:6px;font-family:inherit;font-size:.8125rem;color:#000000f2;cursor:pointer;height:21px;padding:4px 12px;box-sizing:content-box}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{outline:none;border-color:#0006}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select-icon{position:absolute;right:.5rem;font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.device-settings .panel-body .card .header{display:flex;align-items:center;justify-content:space-between;align-items:start;width:180px}.device-settings .panel-body .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif;color:#000000f2}.device-settings .panel-body .card .main-content{display:flex;flex-direction:column;min-width:0;gap:1.5rem;flex:1}.device-settings .panel-body .card .main-content .detail-row{display:flex;flex:1;min-width:0;gap:2rem}.device-settings .panel-body .card .main-content .detail-row .side{width:200px;display:flex;flex-direction:column;flex:1;gap:.25rem}.device-settings .panel-body .card .main-content .detail-row .side .main-value{font-weight:400;font-size:.875rem;color:#000000f2}.device-settings .panel-body .card .main-content .detail-row .side .extra-info{font-weight:400;font-size:.75rem;color:#333}.device-settings .panel-body .card .main-content .input-holder{display:grid;grid-template-columns:45% 55%;align-items:center}.device-settings .panel-body .card .main-content .input-holder__name{font-weight:400;font-size:.875rem}.device-settings .panel-body .card .main-content .input-holder__input .mat-form-field{width:100%;max-width:16rem}.device-settings .panel-body .card .main-content .input-holder__input .plain-input{width:100%;max-width:16rem;font-size:.875rem;padding:.5rem 0;border:none;border-bottom:1px solid rgba(0,0,0,.95);background:transparent;outline:none}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem;vertical-align:middle;margin-left:.25rem}.settings-footer{position:sticky;bottom:0;background:#ffffff;border-top:1px solid rgba(0,0,0,.2);padding:1rem 1.5rem}.settings-footer__actions{display:flex;justify-content:flex-end;gap:.75rem;max-width:50rem;margin:0 auto}.btn-outline,.btn-filled{padding:.313rem .75rem;border-radius:50px;font-weight:500;font-size:.875rem;font-family:Poppins,Poppins,sans-serif;cursor:pointer;transition:background-color .1s ease-in-out;white-space:nowrap}.btn-outline{background:#ffffff;border:1px solid rgba(0,0,0,.2);color:#0006}.btn-outline:hover:not(:disabled){background:#f5f5f5}.btn-outline:disabled{color:#babcc5;border-color:#dfe3e7;cursor:not-allowed}.btn-filled{background:rgba(0,0,0,.9490196078);color:#fff;border:1px solid transparent}.btn-filled:hover:not(:disabled){background:#2a2a2a}.btn-filled:disabled{background:#DFE3E7;color:#babcc5;cursor:not-allowed}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-bar{position:relative!important;width:48px!important;height:25px!important;flex-shrink:0!important;border-radius:13px!important;background-color:#ccc!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb{height:20px!important;width:20px!important;position:absolute!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;left:3px!important;top:5px!important;background-color:#fff!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb:after{content:\"\\d7\";font-size:14px!important;color:#8e9fb7!important;line-height:1!important;display:block!important;pointer-events:none!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb{left:calc(100% - 11px)!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb:after{content:\"\\2713\";color:#0d56aa!important;font-weight:700!important;font-size:10px!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-bar{background:#1170cf!important}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.AppLoaderComponent, selector: "app-loader" }] });
190
+ DeviceSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceSettingsComponent, selector: "app-device-settings", inputs: { token: "token", host: "host", siteId: "siteId", userId: "userId", deviceName: "deviceName" }, outputs: { goBack: "goBack" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"go-back-box\" (click)=\"onGoBack()\">\r\n <div class=\"go-back-box-container\">\r\n <span class=\"app-icon icon-webex-left-arrow\"></span>\r\n <span class=\"go-back-title\">Device General Info</span>\r\n </div>\r\n</div>\r\n\r\n<div class=\"device-settings\">\r\n <div class=\"panel-header\">\r\n <span class=\"panel-header__title\">Device Settings</span>\r\n </div>\r\n\r\n <div class=\"panel-body\">\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Details</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ device?.name || 'N/A' }}</span>\r\n <span class=\"extra-info\">Name</span>\r\n </div>\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ device?.model || 'N/A' }}</span>\r\n <span class=\"extra-info\">Type</span>\r\n </div>\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ device?.description || 'N/A' }}</span>\r\n <span class=\"extra-info\">Device description</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ lines }}</span>\r\n <span class=\"extra-info\">Line</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row flex-column\" style=\"gap: 0.5rem;\">\r\n <span class=\"text-description\">PLAR service</span>\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"plarService\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device info</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">Registration status</div>\r\n <div class=\"input-holder__plain-value text-description\">{{ device?.form?.get('registrationStatus')?.value || 'Unknown' }}</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">IP Address</div>\r\n <div class=\"input-holder__plain-value text-description\">{{ device?.ipAddress || 'None' }}</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Description</div>\r\n <input class=\"plain-input\" [formControl]=\"description\">\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Protocol</div>\r\n <div class=\"input-holder__plain-value text-description\">SIP</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Softkey template</div>\r\n <div class=\"input-holder__select-wrap\">\r\n <select class=\"input-holder__select\" name=\"cluster\" [formControl]=\"softkeyTemplate\">\r\n <option *ngFor=\"let cluster of softKeys\" [value]=\"cluster\">{{ cluster }}</option>\r\n </select>\r\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Button template</div>\r\n <div class=\"input-holder__plain-value text-description\">Standard 8851 SIP</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Location</div>\r\n <div class=\"input-holder__plain-value text-description\">Paris_ios</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Device pool</div>\r\n <div class=\"input-holder__select-wrap\">\r\n <select class=\"input-holder__select\" name=\"devicePool\" [formControl]=\"devicePool\">\r\n <option *ngFor=\"let pool of devicePools\" [value]=\"pool\">{{ pool }}</option>\r\n </select>\r\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Device CSS</div>\r\n <div class=\"input-holder__select-wrap\">\r\n <select class=\"input-holder__select\" name=\"deviceCss\" [formControl]=\"deviceCss\">\r\n <option *ngFor=\"let css of cssOptions\" [value]=\"css\">{{ css }}</option>\r\n </select>\r\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"input-holder\">\r\n <div class=\"input-holder__name\">Firmware version</div>\r\n <div class=\"input-holder__plain-value text-description\">{{ device?.softwareVersion || 'Unknown' }}</div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Media Settings</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">Media Resource Group List</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Network Hold MOH Audio Source</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">User Hold MOH Audio Source</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">AAR Settings</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">AAR Calling Search Space</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">AAR Group</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device Additional Information</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">Common Phone Profile</div>\r\n <div class=\"input-holder__plain-value text-description\">Standard Common Phone Profile</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">User Locale</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Enable Extension Mobility</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"enableExtensionMobility\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Privacy</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Mobility user ID</div>\r\n <div class=\"input-holder__plain-value text-description\">Adam.Allen</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Always Use Prime Line</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Geolocation</div>\r\n <div class=\"input-holder__plain-value text-description\">&nbsp;</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Logged Into Hunt Group</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"loggedIntoHuntGroup\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Remote Device</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteDevice\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Phone Security Profile</div>\r\n <div class=\"input-holder__plain-value text-description\">Cisco Dual Mode for iPhone - Standard SIP Non-Secure Profile</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Network Locale</div>\r\n <div class=\"input-holder__plain-value text-description\">China</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Built In Bridge</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Device Mobility Mode</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Use Trusted Relay Point</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Always Use Prime Line for Voice Message</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Ignore Presentation Indicators( internal calls only )</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"ignorePresentationIndicators\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top\">\r\n <div class=\"input-holder__name\">Hot line Device</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"hotlineDevice\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Number Presentation Transformation</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">\r\n Caller ID For Calls From This Phone\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the caller ID is presented for calls placed from this phone.'\"></i>\r\n </div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"callerIdForCallsFromThisPhone\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top\">\r\n <div class=\"input-holder__name\">\r\n Remote Number\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the remote number is presented for this phone.'\"></i>\r\n </div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteNumber\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"settings-footer\">\r\n <div class=\"settings-footer__actions\">\r\n <button type=\"button\" class=\"btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn-filled\" [disabled]=\"!hasChanges\" (click)=\"onSave()\">Save</button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";*{margin:0}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center;transition:all .15s ease-out}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22arrow-left%22%3E%0D%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:linear-gradient(90deg,#0d56aa,#0d56ab)}.panel-header__title{font-size:1rem;font-weight:500;font-family:Poppins,Poppins,sans-serif;color:#fff}.device-settings{display:flex;flex-direction:column;min-height:100%;background:#F3F6F6;font-family:Poppins,Poppins,sans-serif}.device-settings .panel-body{flex:1;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:3rem}.device-settings .panel-body .card{width:50rem;margin:0 auto;display:flex;flex-direction:column;padding:1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0;font-family:Poppins,Poppins,sans-serif;gap:1.5rem;flex:1}.device-settings .panel-body .card.vertical-card{flex-direction:row}.device-settings .panel-body .card.vertical-card .main-content{gap:0}.device-settings .panel-body .card.vertical-card .main-content .mat-divider{border-top-color:#0003!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder{min-height:2rem;box-sizing:content-box;display:flex;gap:3.25rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top{padding:.75rem 0 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-bottom{padding:0 0 .75rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top-bottom{padding:.75rem 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__name{max-width:150px;width:150px;flex-shrink:0;color:#000000f2;font-size:.875rem;font-weight:400;white-space:normal;overflow-wrap:break-word}.device-settings .panel-body .card.vertical-card .main-content .input-holder input{width:200px;height:21px;padding:4px 12px;box-sizing:content-box;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:8px;font-family:inherit;font-size:.875rem;font-weight:400;color:#000000f2}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:focus{display:flex;align-items:center;color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap{position:relative;display:flex;align-items:center}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select{width:200px;appearance:none;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:6px;font-family:inherit;font-size:.8125rem;color:#000000f2;cursor:pointer;height:21px;padding:4px 12px;box-sizing:content-box}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{outline:none;border-color:#0006}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select-icon{position:absolute;right:.5rem;font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.device-settings .panel-body .card .header{display:flex;align-items:center;justify-content:space-between;align-items:start;width:180px}.device-settings .panel-body .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif;color:#000000f2}.device-settings .panel-body .card .main-content{display:flex;flex-direction:column;min-width:0;gap:1.5rem;flex:1}.device-settings .panel-body .card .main-content .detail-row{display:flex;flex:1;min-width:0;gap:2rem}.device-settings .panel-body .card .main-content .detail-row .side{width:200px;display:flex;flex-direction:column;flex:1;gap:.25rem}.device-settings .panel-body .card .main-content .detail-row .side .main-value{font-weight:400;font-size:.875rem;color:#000000f2}.device-settings .panel-body .card .main-content .detail-row .side .extra-info{font-weight:400;font-size:.75rem;color:#333}.device-settings .panel-body .card .main-content .input-holder{display:grid;grid-template-columns:45% 55%;align-items:center}.device-settings .panel-body .card .main-content .input-holder__name{font-weight:400;font-size:.875rem}.device-settings .panel-body .card .main-content .input-holder__input .mat-form-field{width:100%;max-width:16rem}.device-settings .panel-body .card .main-content .input-holder__input .plain-input{width:100%;max-width:16rem;font-size:.875rem;padding:.5rem 0;border:none;border-bottom:1px solid rgba(0,0,0,.95);background:transparent;outline:none}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem;vertical-align:middle;margin-left:.25rem}.settings-footer{position:sticky;bottom:0;background:#ffffff;border-top:1px solid rgba(0,0,0,.2);padding:1rem 1.5rem}.settings-footer__actions{display:flex;justify-content:flex-end;gap:.75rem;max-width:50rem;margin:0 auto}.btn-outline,.btn-filled{padding:.313rem .75rem;border-radius:50px;font-weight:500;font-size:.875rem;font-family:Poppins,Poppins,sans-serif;cursor:pointer;transition:background-color .1s ease-in-out;white-space:nowrap}.btn-outline{background:#ffffff;border:1px solid rgba(0,0,0,.2);color:#0006}.btn-outline:hover:not(:disabled){background:#f5f5f5}.btn-outline:disabled{color:#babcc5;border-color:#dfe3e7;cursor:not-allowed}.btn-filled{background:rgba(0,0,0,.9490196078);color:#fff;border:1px solid transparent}.btn-filled:hover:not(:disabled){background:#2a2a2a}.btn-filled:disabled{background:#DFE3E7;color:#babcc5;cursor:not-allowed}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-bar{position:relative!important;width:48px!important;height:25px!important;flex-shrink:0!important;border-radius:13px!important;background-color:#ccc!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb{height:20px!important;width:20px!important;position:absolute!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;left:3px!important;top:5px!important;background-color:#fff!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb:after{content:\"\\d7\";font-size:14px!important;color:#8e9fb7!important;line-height:1!important;display:block!important;pointer-events:none!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb{left:calc(100% - 11px)!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb:after{content:\"\\2713\";color:#0d56aa!important;font-weight:700!important;font-size:10px!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-bar{background:#1170cf!important}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.AppLoaderComponent, selector: "app-loader" }] });
191
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceSettingsComponent, decorators: [{
192
192
  type: Component,
193
- args: [{ selector: 'app-device-settings', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\n<div class=\"go-back-box\" (click)=\"onGoBack()\">\n <div class=\"go-back-box-container\">\n <span class=\"app-icon icon-webex-left-arrow\"></span>\n <span class=\"go-back-title\">Device General Info</span>\n </div>\n</div>\n\n<div class=\"device-settings\">\n <div class=\"panel-header\">\n <span class=\"panel-header__title\">Device Settings</span>\n </div>\n\n <div class=\"panel-body\">\n <section class=\"card\">\n <div class=\"header\">\n <span class=\"title\">Details</span>\n </div>\n <div class=\"main-content\">\n <div class=\"detail-row\">\n <div class=\"side\">\n <span class=\"main-value\">{{ device?.name || 'N/A' }}</span>\n <span class=\"extra-info\">Name</span>\n </div>\n <div class=\"side\">\n <span class=\"main-value\">{{ device?.model || 'N/A' }}</span>\n <span class=\"extra-info\">Type</span>\n </div>\n <div class=\"side\">\n <span class=\"main-value\">{{ device?.description || 'N/A' }}</span>\n <span class=\"extra-info\">Device description</span>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"detail-row\">\n <div class=\"side\">\n <span class=\"main-value\">{{ lines }}</span>\n <span class=\"extra-info\">Line</span>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"detail-row flex-column\" style=\"gap: 0.5rem;\">\n <span class=\"text-description\">PLAR service</span>\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"plarService\"></mat-slide-toggle>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Device info</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">Registration status</div>\n <div class=\"input-holder__plain-value text-description\">{{ device?.form?.get('registrationStatus')?.value || 'Unknown' }}</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">IP Address</div>\n <div class=\"input-holder__plain-value text-description\">{{ device?.ipAddress || 'None' }}</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Description</div>\n <input class=\"plain-input\" [formControl]=\"description\">\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Protocol</div>\n <div class=\"input-holder__plain-value text-description\">SIP</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Softkey template</div>\n <div class=\"input-holder__select-wrap\">\n <select class=\"input-holder__select\" name=\"cluster\" [formControl]=\"softkeyTemplate\">\n <option *ngFor=\"let cluster of softKeys\" [value]=\"cluster\">{{ cluster }}</option>\n </select>\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Button template</div>\n <div class=\"input-holder__plain-value text-description\">Standard 8851 SIP</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Location</div>\n <div class=\"input-holder__plain-value text-description\">Paris_ios</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Device pool</div>\n <div class=\"input-holder__select-wrap\">\n <select class=\"input-holder__select\" name=\"devicePool\" [formControl]=\"devicePool\">\n <option *ngFor=\"let pool of devicePools\" [value]=\"pool\">{{ pool }}</option>\n </select>\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Device CSS</div>\n <div class=\"input-holder__select-wrap\">\n <select class=\"input-holder__select\" name=\"deviceCss\" [formControl]=\"deviceCss\">\n <option *ngFor=\"let css of cssOptions\" [value]=\"css\">{{ css }}</option>\n </select>\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\n </div>\n </div>\n <div class=\"input-holder\">\n <div class=\"input-holder__name\">Firmware version</div>\n <div class=\"input-holder__plain-value text-description\">{{ device?.softwareVersion || 'Unknown' }}</div>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Media Settings</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">Media Resource Group List</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Network Hold MOH Audio Source</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">User Hold MOH Audio Source</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">AAR Settings</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">AAR Calling Search Space</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">AAR Group</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Device Additional Information</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">Common Phone Profile</div>\n <div class=\"input-holder__plain-value text-description\">Standard Common Phone Profile</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">User Locale</div>\n <div class=\"input-holder__plain-value text-description\">None</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Enable Extension Mobility</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"enableExtensionMobility\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Privacy</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Mobility user ID</div>\n <div class=\"input-holder__plain-value text-description\">Adam.Allen</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Always Use Prime Line</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Geolocation</div>\n <div class=\"input-holder__plain-value text-description\">&nbsp;</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Logged Into Hunt Group</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"loggedIntoHuntGroup\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Remote Device</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteDevice\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Phone Security Profile</div>\n <div class=\"input-holder__plain-value text-description\">Cisco Dual Mode for iPhone - Standard SIP Non-Secure Profile</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Network Locale</div>\n <div class=\"input-holder__plain-value text-description\">China</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Built In Bridge</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Device Mobility Mode</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Use Trusted Relay Point</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Always Use Prime Line for Voice Message</div>\n <div class=\"input-holder__plain-value text-description\">Default</div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top-bottom\">\n <div class=\"input-holder__name\">Ignore Presentation Indicators( internal calls only )</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"ignorePresentationIndicators\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top\">\n <div class=\"input-holder__name\">Hot line Device</div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"hotlineDevice\"></mat-slide-toggle>\n </div>\n </div>\n </div>\n </section>\n\n <section class=\"card vertical-card\">\n <div class=\"header\">\n <span class=\"title\">Number Presentation Transformation</span>\n </div>\n <div class=\"main-content\">\n <div class=\"input-holder input-holder-bottom\">\n <div class=\"input-holder__name\">\n Caller ID For Calls From This Phone\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the caller ID is presented for calls placed from this phone.'\"></i>\n </div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"callerIdForCallsFromThisPhone\"></mat-slide-toggle>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"input-holder input-holder-top\">\n <div class=\"input-holder__name\">\n Remote Number\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the remote number is presented for this phone.'\"></i>\n </div>\n <div class=\"input-holder__input\">\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteNumber\"></mat-slide-toggle>\n </div>\n </div>\n </div>\n </section>\n </div>\n\n <div class=\"settings-footer\">\n <div class=\"settings-footer__actions\">\n <button type=\"button\" class=\"btn-outline\" (click)=\"onCancel()\">Cancel</button>\n <button type=\"button\" class=\"btn-filled\" [disabled]=\"!hasChanges\" (click)=\"onSave()\">Save</button>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";*{margin:0}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center;transition:all .15s ease-out}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg id%3D%22arrow-left%22%3E%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:linear-gradient(90deg,#0d56aa,#0d56ab)}.panel-header__title{font-size:1rem;font-weight:500;font-family:Poppins,Poppins,sans-serif;color:#fff}.device-settings{display:flex;flex-direction:column;min-height:100%;background:#F3F6F6;font-family:Poppins,Poppins,sans-serif}.device-settings .panel-body{flex:1;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:3rem}.device-settings .panel-body .card{width:50rem;margin:0 auto;display:flex;flex-direction:column;padding:1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0;font-family:Poppins,Poppins,sans-serif;gap:1.5rem;flex:1}.device-settings .panel-body .card.vertical-card{flex-direction:row}.device-settings .panel-body .card.vertical-card .main-content{gap:0}.device-settings .panel-body .card.vertical-card .main-content .mat-divider{border-top-color:#0003!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder{min-height:2rem;box-sizing:content-box;display:flex;gap:3.25rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top{padding:.75rem 0 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-bottom{padding:0 0 .75rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top-bottom{padding:.75rem 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__name{max-width:150px;width:150px;flex-shrink:0;color:#000000f2;font-size:.875rem;font-weight:400;white-space:normal;overflow-wrap:break-word}.device-settings .panel-body .card.vertical-card .main-content .input-holder input{width:200px;height:21px;padding:4px 12px;box-sizing:content-box;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:8px;font-family:inherit;font-size:.875rem;font-weight:400;color:#000000f2}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:focus{display:flex;align-items:center;color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap{position:relative;display:flex;align-items:center}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select{width:200px;appearance:none;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:6px;font-family:inherit;font-size:.8125rem;color:#000000f2;cursor:pointer;height:21px;padding:4px 12px;box-sizing:content-box}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{outline:none;border-color:#0006}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select-icon{position:absolute;right:.5rem;font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.device-settings .panel-body .card .header{display:flex;align-items:center;justify-content:space-between;align-items:start;width:180px}.device-settings .panel-body .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif;color:#000000f2}.device-settings .panel-body .card .main-content{display:flex;flex-direction:column;min-width:0;gap:1.5rem;flex:1}.device-settings .panel-body .card .main-content .detail-row{display:flex;flex:1;min-width:0;gap:2rem}.device-settings .panel-body .card .main-content .detail-row .side{width:200px;display:flex;flex-direction:column;flex:1;gap:.25rem}.device-settings .panel-body .card .main-content .detail-row .side .main-value{font-weight:400;font-size:.875rem;color:#000000f2}.device-settings .panel-body .card .main-content .detail-row .side .extra-info{font-weight:400;font-size:.75rem;color:#333}.device-settings .panel-body .card .main-content .input-holder{display:grid;grid-template-columns:45% 55%;align-items:center}.device-settings .panel-body .card .main-content .input-holder__name{font-weight:400;font-size:.875rem}.device-settings .panel-body .card .main-content .input-holder__input .mat-form-field{width:100%;max-width:16rem}.device-settings .panel-body .card .main-content .input-holder__input .plain-input{width:100%;max-width:16rem;font-size:.875rem;padding:.5rem 0;border:none;border-bottom:1px solid rgba(0,0,0,.95);background:transparent;outline:none}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem;vertical-align:middle;margin-left:.25rem}.settings-footer{position:sticky;bottom:0;background:#ffffff;border-top:1px solid rgba(0,0,0,.2);padding:1rem 1.5rem}.settings-footer__actions{display:flex;justify-content:flex-end;gap:.75rem;max-width:50rem;margin:0 auto}.btn-outline,.btn-filled{padding:.313rem .75rem;border-radius:50px;font-weight:500;font-size:.875rem;font-family:Poppins,Poppins,sans-serif;cursor:pointer;transition:background-color .1s ease-in-out;white-space:nowrap}.btn-outline{background:#ffffff;border:1px solid rgba(0,0,0,.2);color:#0006}.btn-outline:hover:not(:disabled){background:#f5f5f5}.btn-outline:disabled{color:#babcc5;border-color:#dfe3e7;cursor:not-allowed}.btn-filled{background:rgba(0,0,0,.9490196078);color:#fff;border:1px solid transparent}.btn-filled:hover:not(:disabled){background:#2a2a2a}.btn-filled:disabled{background:#DFE3E7;color:#babcc5;cursor:not-allowed}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-bar{position:relative!important;width:48px!important;height:25px!important;flex-shrink:0!important;border-radius:13px!important;background-color:#ccc!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb{height:20px!important;width:20px!important;position:absolute!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;left:3px!important;top:5px!important;background-color:#fff!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb:after{content:\"\\d7\";font-size:14px!important;color:#8e9fb7!important;line-height:1!important;display:block!important;pointer-events:none!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb{left:calc(100% - 11px)!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb:after{content:\"\\2713\";color:#0d56aa!important;font-weight:700!important;font-size:10px!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-bar{background:#1170cf!important}\n"] }]
193
+ args: [{ selector: 'app-device-settings', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"go-back-box\" (click)=\"onGoBack()\">\r\n <div class=\"go-back-box-container\">\r\n <span class=\"app-icon icon-webex-left-arrow\"></span>\r\n <span class=\"go-back-title\">Device General Info</span>\r\n </div>\r\n</div>\r\n\r\n<div class=\"device-settings\">\r\n <div class=\"panel-header\">\r\n <span class=\"panel-header__title\">Device Settings</span>\r\n </div>\r\n\r\n <div class=\"panel-body\">\r\n <section class=\"card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Details</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"detail-row\">\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ device?.name || 'N/A' }}</span>\r\n <span class=\"extra-info\">Name</span>\r\n </div>\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ device?.model || 'N/A' }}</span>\r\n <span class=\"extra-info\">Type</span>\r\n </div>\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ device?.description || 'N/A' }}</span>\r\n <span class=\"extra-info\">Device description</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row\">\r\n <div class=\"side\">\r\n <span class=\"main-value\">{{ lines }}</span>\r\n <span class=\"extra-info\">Line</span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"detail-row flex-column\" style=\"gap: 0.5rem;\">\r\n <span class=\"text-description\">PLAR service</span>\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"plarService\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device info</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">Registration status</div>\r\n <div class=\"input-holder__plain-value text-description\">{{ device?.form?.get('registrationStatus')?.value || 'Unknown' }}</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">IP Address</div>\r\n <div class=\"input-holder__plain-value text-description\">{{ device?.ipAddress || 'None' }}</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Description</div>\r\n <input class=\"plain-input\" [formControl]=\"description\">\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Protocol</div>\r\n <div class=\"input-holder__plain-value text-description\">SIP</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Softkey template</div>\r\n <div class=\"input-holder__select-wrap\">\r\n <select class=\"input-holder__select\" name=\"cluster\" [formControl]=\"softkeyTemplate\">\r\n <option *ngFor=\"let cluster of softKeys\" [value]=\"cluster\">{{ cluster }}</option>\r\n </select>\r\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Button template</div>\r\n <div class=\"input-holder__plain-value text-description\">Standard 8851 SIP</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Location</div>\r\n <div class=\"input-holder__plain-value text-description\">Paris_ios</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Device pool</div>\r\n <div class=\"input-holder__select-wrap\">\r\n <select class=\"input-holder__select\" name=\"devicePool\" [formControl]=\"devicePool\">\r\n <option *ngFor=\"let pool of devicePools\" [value]=\"pool\">{{ pool }}</option>\r\n </select>\r\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Device CSS</div>\r\n <div class=\"input-holder__select-wrap\">\r\n <select class=\"input-holder__select\" name=\"deviceCss\" [formControl]=\"deviceCss\">\r\n <option *ngFor=\"let css of cssOptions\" [value]=\"css\">{{ css }}</option>\r\n </select>\r\n <img class=\"input-holder__select-icon\" src=\"assets/icons/arrow-down-bold.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"input-holder\">\r\n <div class=\"input-holder__name\">Firmware version</div>\r\n <div class=\"input-holder__plain-value text-description\">{{ device?.softwareVersion || 'Unknown' }}</div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Media Settings</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">Media Resource Group List</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Network Hold MOH Audio Source</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">User Hold MOH Audio Source</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">AAR Settings</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">AAR Calling Search Space</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">AAR Group</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Device Additional Information</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">Common Phone Profile</div>\r\n <div class=\"input-holder__plain-value text-description\">Standard Common Phone Profile</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">User Locale</div>\r\n <div class=\"input-holder__plain-value text-description\">None</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Enable Extension Mobility</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"enableExtensionMobility\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Privacy</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Mobility user ID</div>\r\n <div class=\"input-holder__plain-value text-description\">Adam.Allen</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Always Use Prime Line</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Geolocation</div>\r\n <div class=\"input-holder__plain-value text-description\">&nbsp;</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Logged Into Hunt Group</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"loggedIntoHuntGroup\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Remote Device</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteDevice\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Phone Security Profile</div>\r\n <div class=\"input-holder__plain-value text-description\">Cisco Dual Mode for iPhone - Standard SIP Non-Secure Profile</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Network Locale</div>\r\n <div class=\"input-holder__plain-value text-description\">China</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Built In Bridge</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Device Mobility Mode</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Use Trusted Relay Point</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Always Use Prime Line for Voice Message</div>\r\n <div class=\"input-holder__plain-value text-description\">Default</div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top-bottom\">\r\n <div class=\"input-holder__name\">Ignore Presentation Indicators( internal calls only )</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"ignorePresentationIndicators\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top\">\r\n <div class=\"input-holder__name\">Hot line Device</div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"hotlineDevice\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"card vertical-card\">\r\n <div class=\"header\">\r\n <span class=\"title\">Number Presentation Transformation</span>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"input-holder input-holder-bottom\">\r\n <div class=\"input-holder__name\">\r\n Caller ID For Calls From This Phone\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the caller ID is presented for calls placed from this phone.'\"></i>\r\n </div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"callerIdForCallsFromThisPhone\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"input-holder input-holder-top\">\r\n <div class=\"input-holder__name\">\r\n Remote Number\r\n <i class=\"icon info-icon rem1\" [matTooltip]=\"'Controls how the remote number is presented for this phone.'\"></i>\r\n </div>\r\n <div class=\"input-holder__input\">\r\n <mat-slide-toggle class=\"custom-toggle\" [formControl]=\"remoteNumber\"></mat-slide-toggle>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"settings-footer\">\r\n <div class=\"settings-footer__actions\">\r\n <button type=\"button\" class=\"btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn-filled\" [disabled]=\"!hasChanges\" (click)=\"onSave()\">Save</button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";*{margin:0}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center;transition:all .15s ease-out}.icon-webex-left-arrow{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22arrow-left%22%3E%0D%3Cpath id%3D%22Vector%22 d%3D%22M5.70746 7.99987L11.3539 2.35352C11.4453 2.25928 11.496 2.13287 11.495 2.00159C11.494 1.8703 11.4414 1.74467 11.3486 1.65183C11.2558 1.55899 11.1301 1.50639 10.9988 1.50539C10.8676 1.50438 10.7411 1.55506 10.6469 1.64647L4.64691 7.64647C4.55316 7.74023 4.50049 7.8674 4.50049 7.99999C4.50049 8.13259 4.55316 8.25975 4.64691 8.35352L10.6469 14.3535C10.6931 14.4011 10.7482 14.439 10.8092 14.4651C10.8702 14.4912 10.9357 14.5049 11.002 14.5054C11.0683 14.5059 11.134 14.4932 11.1954 14.468C11.2567 14.4429 11.3125 14.4058 11.3593 14.3589C11.4062 14.312 11.4433 14.2563 11.4685 14.1949C11.4936 14.1336 11.5063 14.0679 11.5058 14.0016C11.5053 13.9353 11.4916 13.8697 11.4655 13.8088C11.4394 13.7478 11.4015 13.6926 11.3539 13.6465L5.70746 7.99987Z%22 fill%3D%22black%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.go-back-box{background:white;border-bottom:rgba(0,0,0,.2) 1px solid;height:60px;width:100%;line-height:60px;cursor:pointer}.go-back-box-container{width:95%;margin:auto;margin-left:.5rem;display:flex;justify-content:flex-start}.go-back-box-container .icon-webex-left-arrow,.go-back-box-container .go-back-title{display:block;height:60px}.go-back-box-container .go-back-title{line-height:61px}.go-back-title{display:inline-block;margin:0 10px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:linear-gradient(90deg,#0d56aa,#0d56ab)}.panel-header__title{font-size:1rem;font-weight:500;font-family:Poppins,Poppins,sans-serif;color:#fff}.device-settings{display:flex;flex-direction:column;min-height:100%;background:#F3F6F6;font-family:Poppins,Poppins,sans-serif}.device-settings .panel-body{flex:1;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:3rem}.device-settings .panel-body .card{width:50rem;margin:0 auto;display:flex;flex-direction:column;padding:1.5rem;border:1px solid rgba(0,0,0,.2);border-radius:.5rem;background:#ffffff;min-width:0;font-family:Poppins,Poppins,sans-serif;gap:1.5rem;flex:1}.device-settings .panel-body .card.vertical-card{flex-direction:row}.device-settings .panel-body .card.vertical-card .main-content{gap:0}.device-settings .panel-body .card.vertical-card .main-content .mat-divider{border-top-color:#0003!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder{min-height:2rem;box-sizing:content-box;display:flex;gap:3.25rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top{padding:.75rem 0 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-bottom{padding:0 0 .75rem}.device-settings .panel-body .card.vertical-card .main-content .input-holder.input-holder-top-bottom{padding:.75rem 0}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__name{max-width:150px;width:150px;flex-shrink:0;color:#000000f2;font-size:.875rem;font-weight:400;white-space:normal;overflow-wrap:break-word}.device-settings .panel-body .card.vertical-card .main-content .input-holder input{width:200px;height:21px;padding:4px 12px;box-sizing:content-box;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:8px;font-family:inherit;font-size:.875rem;font-weight:400;color:#000000f2}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder input:focus{display:flex;align-items:center;color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap{position:relative;display:flex;align-items:center}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select{width:200px;appearance:none;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;border-radius:6px;font-family:inherit;font-size:.8125rem;color:#000000f2;cursor:pointer;height:21px;padding:4px 12px;box-sizing:content-box}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{outline:none;border-color:#0006}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:hover{background-color:#0000001f!important}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select:focus{color:#000000b3;background:#fff;border:solid .0625rem rgba(0,0,0,.5019607843)!important;cursor:pointer;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;outline:none}.device-settings .panel-body .card.vertical-card .main-content .input-holder .input-holder__select-wrap .input-holder__select-icon{position:absolute;right:.5rem;font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0006;pointer-events:none}.device-settings .panel-body .card .header{display:flex;align-items:center;justify-content:space-between;align-items:start;width:180px}.device-settings .panel-body .card .header .title{font-weight:500;font-size:1rem;font-family:Poppins,Poppins,sans-serif;color:#000000f2}.device-settings .panel-body .card .main-content{display:flex;flex-direction:column;min-width:0;gap:1.5rem;flex:1}.device-settings .panel-body .card .main-content .detail-row{display:flex;flex:1;min-width:0;gap:2rem}.device-settings .panel-body .card .main-content .detail-row .side{width:200px;display:flex;flex-direction:column;flex:1;gap:.25rem}.device-settings .panel-body .card .main-content .detail-row .side .main-value{font-weight:400;font-size:.875rem;color:#000000f2}.device-settings .panel-body .card .main-content .detail-row .side .extra-info{font-weight:400;font-size:.75rem;color:#333}.device-settings .panel-body .card .main-content .input-holder{display:grid;grid-template-columns:45% 55%;align-items:center}.device-settings .panel-body .card .main-content .input-holder__name{font-weight:400;font-size:.875rem}.device-settings .panel-body .card .main-content .input-holder__input .mat-form-field{width:100%;max-width:16rem}.device-settings .panel-body .card .main-content .input-holder__input .plain-input{width:100%;max-width:16rem;font-size:.875rem;padding:.5rem 0;border:none;border-bottom:1px solid rgba(0,0,0,.95);background:transparent;outline:none}.flex-column{display:flex;flex-direction:column}.gap-0_75{gap:.75rem}.text-description{font-size:.875rem;font-weight:400}.icon{background-repeat:no-repeat;background-position:center;display:inline-block;background-size:contain}.info-icon{background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2232%22 height%3D%2232%22 viewBox%3D%220 0 32 32%22%3E%3Cpath d%3D%22M15.75 10.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2M16.75 14.5a.75.75 0 0 0-.75-.75h-2a.75.75 0 0 0 0 1.5h1.25v7H13a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5h-2.25zM2.25 16C2.25 8.406 8.406 2.25 16 2.25S29.75 8.406 29.75 16 23.594 29.75 16 29.75 2.25 23.594 2.25 16M16 3.75C9.235 3.75 3.75 9.235 3.75 16S9.235 28.25 16 28.25 28.25 22.765 28.25 16 22.765 3.75 16 3.75%22%2F%3E%3C%2Fsvg%3E\")}.rem1{height:1rem;width:1rem;vertical-align:middle;margin-left:.25rem}.settings-footer{position:sticky;bottom:0;background:#ffffff;border-top:1px solid rgba(0,0,0,.2);padding:1rem 1.5rem}.settings-footer__actions{display:flex;justify-content:flex-end;gap:.75rem;max-width:50rem;margin:0 auto}.btn-outline,.btn-filled{padding:.313rem .75rem;border-radius:50px;font-weight:500;font-size:.875rem;font-family:Poppins,Poppins,sans-serif;cursor:pointer;transition:background-color .1s ease-in-out;white-space:nowrap}.btn-outline{background:#ffffff;border:1px solid rgba(0,0,0,.2);color:#0006}.btn-outline:hover:not(:disabled){background:#f5f5f5}.btn-outline:disabled{color:#babcc5;border-color:#dfe3e7;cursor:not-allowed}.btn-filled{background:rgba(0,0,0,.9490196078);color:#fff;border:1px solid transparent}.btn-filled:hover:not(:disabled){background:#2a2a2a}.btn-filled:disabled{background:#DFE3E7;color:#babcc5;cursor:not-allowed}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-bar{position:relative!important;width:48px!important;height:25px!important;flex-shrink:0!important;border-radius:13px!important;background-color:#ccc!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb{height:20px!important;width:20px!important;position:absolute!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;left:3px!important;top:5px!important;background-color:#fff!important}::ng-deep .device-settings .custom-toggle .mat-slide-toggle-thumb:after{content:\"\\d7\";font-size:14px!important;color:#8e9fb7!important;line-height:1!important;display:block!important;pointer-events:none!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb{left:calc(100% - 11px)!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-thumb:after{content:\"\\2713\";color:#0d56aa!important;font-weight:700!important;font-size:10px!important}::ng-deep .device-settings .custom-toggle.mat-checked .mat-slide-toggle-bar{background:#1170cf!important}\n"] }]
194
194
  }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.APIService }, { type: i3.DeviceService }, { type: i4.SiteSettingsService }, { type: i5.Router }]; }, propDecorators: { goBack: [{
195
195
  type: Output
196
196
  }], token: [{
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
204
204
  }], deviceName: [{
205
205
  type: Input
206
206
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL2RldmljZS1zZXR0aW5ncy9kZXZpY2Utc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLXNldHRpbmdzL2RldmljZS1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFXekUsTUFBTSxPQUFPLHVCQUF1QjtJQTJDbEMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDO0lBQzFE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LENBQUMsT0FBTyxFQUFFLEFBQUQsRUFBRyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUM7YUFDdkUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3FIQTFNVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixrTUNkcEMsNjJiQXdTQTs0RkQxUmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4TUFLckIsTUFBTTtzQkFBZixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgZm9ya0pvaW4sIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV2aWNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RldmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNpdGVTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zaXRlLXNldHRpbmdzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGV2aWNlLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldmljZS1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RldmljZS1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpIGdvQmFjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhvc3QhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpdGVJZCE6IHN0cmluZztcbiAgQElucHV0KCkgdXNlcklkITogc3RyaW5nO1xuICBASW5wdXQoKSBkZXZpY2VOYW1lITogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgZGF0YVBlbmRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGRldmljZTogYW55ID0gbnVsbDtcbiAgcHVibGljIHNvZnRLZXlzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBwbGFyU2VydmljZSA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbiA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIHB1YmxpYyByZWFkb25seSBzb2Z0a2V5VGVtcGxhdGUgPSBuZXcgRm9ybUNvbnRyb2woJ1N0YW5kYXJkIHVzZXInKTtcbiAgcHVibGljIHJlYWRvbmx5IGRldmljZVBvb2wgPSBuZXcgRm9ybUNvbnRyb2woJ1BhcmlzX3JlZ3VsYXJfRFBfdGVzdCcpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGV2aWNlQ3NzID0gbmV3IEZvcm1Db250cm9sKCdQYXJpc19uYXRpb25hbF9DU1MnKTtcbiAgcHVibGljIHJlYWRvbmx5IGVuYWJsZUV4dGVuc2lvbk1vYmlsaXR5ID0gbmV3IEZvcm1Db250cm9sKHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nZ2VkSW50b0h1bnRHcm91cCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSByZW1vdGVEZXZpY2UgPSBuZXcgRm9ybUNvbnRyb2woZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgaWdub3JlUHJlc2VudGF0aW9uSW5kaWNhdG9ycyA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBob3RsaW5lRGV2aWNlID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGNhbGxlcklkRm9yQ2FsbHNGcm9tVGhpc1Bob25lID0gbmV3IEZvcm1Db250cm9sKHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVtb3RlTnVtYmVyID0gbmV3IEZvcm1Db250cm9sKHRydWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUNvbnRyb2xzOiBGb3JtQ29udHJvbDxhbnk+W10gPSBbXG4gICAgdGhpcy5wbGFyU2VydmljZSxcbiAgICB0aGlzLmRlc2NyaXB0aW9uLFxuICAgIHRoaXMuc29mdGtleVRlbXBsYXRlLFxuICAgIHRoaXMuZGV2aWNlUG9vbCxcbiAgICB0aGlzLmRldmljZUNzcyxcbiAgICB0aGlzLmVuYWJsZUV4dGVuc2lvbk1vYmlsaXR5LFxuICAgIHRoaXMubG9nZ2VkSW50b0h1bnRHcm91cCxcbiAgICB0aGlzLnJlbW90ZURldmljZSxcbiAgICB0aGlzLmlnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnMsXG4gICAgdGhpcy5ob3RsaW5lRGV2aWNlLFxuICAgIHRoaXMuY2FsbGVySWRGb3JDYWxsc0Zyb21UaGlzUGhvbmUsXG4gICAgdGhpcy5yZW1vdGVOdW1iZXIsXG4gIF07XG5cbiAgcHVibGljIGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICBnZXQgbGluZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2U/LmxpbmVzPy5tYXAoKGxpbmU6IGFueSkgPT4gbGluZT8uZXh0ZW5zaW9uIHx8IGxpbmU/Lm51bWJlcikuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyB8ICcpIHx8ICdOL0EnO1xuICB9XG5cbiAgZ2V0IGRldmljZVBvb2xzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3NTZXJ2aWNlLmRldmljZVBvb2xzO1xuICB9XG5cbiAgZ2V0IGNzc09wdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnNpdGVTZXR0aW5nc1NlcnZpY2UuY2FsbGluZ1NlYXJjaFNwYWNlVHlwZXM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcbiAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzaXRlU2V0dGluZ3NTZXJ2aWNlOiBTaXRlU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLnRva2VuID0gdGhpcy50b2tlbjtcbiAgICB0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gdGhpcy5ob3N0O1xuXG4gICAgdGhpcy5mb3JtQ29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IGNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGFzQ2hhbmdlcyA9IHRydWUpKTtcblxuICAgIGlmICh0aGlzLnVzZXJTZXJ2aWNlLnVzZXJEZXZpY2UpIHtcbiAgICAgIHRoaXMuZGV2aWNlID0gdGhpcy51c2VyU2VydmljZS51c2VyRGV2aWNlO1xuICAgICAgdGhpcy5wbGFyU2VydmljZS5zZXRWYWx1ZSghIXRoaXMuZGV2aWNlPy5wbGFyU2VydmljZSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5kZXZpY2U/LmRlc2NyaXB0aW9uIHx8ICcnLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgdGhpcy5zb2Z0a2V5VGVtcGxhdGUuc2V0VmFsdWUodGhpcy5kZXZpY2U/LnNvZnRrZXlUZW1wbGF0ZSB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIHRoaXMuZGV2aWNlUG9vbC5zZXRWYWx1ZSh0aGlzLmRldmljZT8uZGV2aWNlUG9vbE5hbWUgfHwgJycsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLmRldmljZUNzcy5zZXRWYWx1ZSh0aGlzLmRldmljZT8uY2FsbGluZ1NlYXJjaFNwYWNlTmFtZSB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIHRoaXMuZW5hYmxlRXh0ZW5zaW9uTW9iaWxpdHkuc2V0VmFsdWUoISF0aGlzLmRldmljZT8uZW5hYmxlZEV4dGVuc2lvbk1vYmlsaXR5LCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgdGhpcy5sb2dnZWRJbnRvSHVudEdyb3VwLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LmxvZ2dlZEludG9IdW50R3JvdXAsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLnJlbW90ZURldmljZS5zZXRWYWx1ZSghIXRoaXMuZGV2aWNlPy5yZW1vdGVEZXZpY2UsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLmhvdGxpbmVEZXZpY2Uuc2V0VmFsdWUoISF0aGlzLmRldmljZT8uaG90bGluZURldmljZSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIHRoaXMuaWdub3JlUHJlc2VudGF0aW9uSW5kaWNhdG9ycy5zZXRWYWx1ZSghIXRoaXMuZGV2aWNlPy5pZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgdGhpcy5jYWxsZXJJZEZvckNhbGxzRnJvbVRoaXNQaG9uZS5zZXRWYWx1ZSghIXRoaXMuZGV2aWNlPy51c2VEZXZpY2VQb29sQ2dwbkluZ3Jlc3NETiwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIHRoaXMucmVtb3RlTnVtYmVyLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LnJlbW90ZURldmljZSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIHRoaXMuZ2V0U2l0ZVNldHRpbmdzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5nZXREYXRhKCk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XG4gICAgY29uc3QgZGV2aWNlVHlwZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdkZXZpY2VUeXBlJyk7XG4gICAgbGV0IHJlcXVlc3Q7XG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdpc1dlYmV4JykgPT09ICd0cnVlJykge1xuICAgICAgY29uc3QgY3VzdG9tZXJJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXN0b21lcklkJyk7XG4gICAgICBjb25zdCB3ZWJleElkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYmV4VVVJRCcpO1xuICAgICAgcmVxdWVzdCA9IHRoaXMudXNlclNlcnZpY2UuZmV0Y2hXZWJleFVzZXJEZXZpY2UoY3VzdG9tZXJJZCEsIHdlYmV4SWQhLCBkZXZpY2VUeXBlISk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLnVzZXJTZXJ2aWNlLmZldGNoRElVc2VyRGV2aWNlKE51bWJlcih0aGlzLnNpdGVJZCksIHRoaXMudXNlcklkLCBkZXZpY2VUeXBlISk7XG4gICAgfVxuICAgIGZvcmtKb2luKHtcbiAgICAgIGRldmljZTogcmVxdWVzdCxcbiAgICAgIHNvZnRLZXlzOiB0aGlzLnNpdGVTZXR0aW5nc1NlcnZpY2UuZ2V0RGV2aWNlU29mdGtleVRlbXBsYXRlcyhOdW1iZXIodGhpcy5zaXRlSWQpKSxcbiAgICAgIHNpdGVEZWZhdWx0czogdGhpcy5zaXRlU2V0dGluZ3NTZXJ2aWNlLmdldFNpdGVEZWZhdWx0cyhOdW1iZXIodGhpcy5zaXRlSWQpKSxcbiAgICB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHtkZXZpY2UsIHNvZnRLZXlzfSkgPT4ge1xuICAgICAgICB0aGlzLmRldmljZSA9IGRldmljZTtcbiAgICAgICAgdGhpcy5zb2Z0S2V5cyA9IChzb2Z0S2V5cyBhcyBzdHJpbmdbXSkgfHwgW107XG4gICAgICAgIHRoaXMucGxhclNlcnZpY2Uuc2V0VmFsdWUoISF0aGlzLmRldmljZT8ucGxhclNlcnZpY2UsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5kZXZpY2U/LmRlc2NyaXB0aW9uIHx8ICcnLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB0aGlzLnNvZnRrZXlUZW1wbGF0ZS5zZXRWYWx1ZSh0aGlzLmRldmljZT8uc29mdGtleVRlbXBsYXRlIHx8ICcnLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB0aGlzLmRldmljZVBvb2wuc2V0VmFsdWUodGhpcy5kZXZpY2U/LmRldmljZVBvb2xOYW1lIHx8ICcnLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB0aGlzLmRldmljZUNzcy5zZXRWYWx1ZSh0aGlzLmRldmljZT8uY2FsbGluZ1NlYXJjaFNwYWNlTmFtZSB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgdGhpcy5lbmFibGVFeHRlbnNpb25Nb2JpbGl0eS5zZXRWYWx1ZSghIXRoaXMuZGV2aWNlPy5lbmFibGVkRXh0ZW5zaW9uTW9iaWxpdHksIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMubG9nZ2VkSW50b0h1bnRHcm91cC5zZXRWYWx1ZSghIXRoaXMuZGV2aWNlPy5sb2dnZWRJbnRvSHVudEdyb3VwLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgdGhpcy5yZW1vdGVEZXZpY2Uuc2V0VmFsdWUoISF0aGlzLmRldmljZT8ucmVtb3RlRGV2aWNlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgdGhpcy5ob3RsaW5lRGV2aWNlLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LmhvdGxpbmVEZXZpY2UsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLmlnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnMuc2V0VmFsdWUoISF0aGlzLmRldmljZT8uaWdub3JlUHJlc2VudGF0aW9uSW5kaWNhdG9ycywge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgIHRoaXMuY2FsbGVySWRGb3JDYWxsc0Zyb21UaGlzUGhvbmUuc2V0VmFsdWUoISF0aGlzLmRldmljZT8udXNlRGV2aWNlUG9vbENncG5JbmdyZXNzRE4sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLnJlbW90ZU51bWJlci5zZXRWYWx1ZSghIXRoaXMuZGV2aWNlPy5yZW1vdGVEZXZpY2UsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2l0ZVNldHRpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVBlbmRpbmcgPSB0cnVlO1xuICAgIGZvcmtKb2luKHtcbiAgICAgIHNvZnRLZXlzOiB0aGlzLnNpdGVTZXR0aW5nc1NlcnZpY2UuZ2V0RGV2aWNlU29mdGtleVRlbXBsYXRlcyhOdW1iZXIodGhpcy5zaXRlSWQpKSxcbiAgICAgIHNpdGVEZWZhdWx0czogdGhpcy5zaXRlU2V0dGluZ3NTZXJ2aWNlLmdldFNpdGVEZWZhdWx0cyhOdW1iZXIodGhpcy5zaXRlSWQpKSxcbiAgICB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHtzb2Z0S2V5c30pID0+IHRoaXMuc29mdEtleXMgPSAoc29mdEtleXMgYXMgc3RyaW5nW10pIHx8IFtdKTtcbiAgfVxuXG4gIG9uR29CYWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IFtwYXRoXSA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnPycpO1xuICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aC5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKTtcbiAgICBpZiAoc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPT09ICdkZXZpY2Utc2V0dGluZ3MnKSB7XG4gICAgICBzZWdtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycgKyBzZWdtZW50cy5qb2luKCcvJykpO1xuICAgIC8vIHRoaXMuZ29CYWNrLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMub25Hb0JhY2soKTtcbiAgfVxuXG4gIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmdldENoYW5nZWREZXZpY2VGaWVsZHMoKTtcbiAgICBpZiAoIWJvZHkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmhhc0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgIHRoaXMub25Hb0JhY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRldmljZVNlcnZpY2UucHV0RGV2aWNlRmllbGRzKE51bWJlcih0aGlzLnNpdGVJZCksIHRoaXMuZGV2aWNlPy5uYW1lIHx8ICcnLCB0aGlzLnVzZXJTZXJ2aWNlLnVzZXJUb2tlbiwgYm9keSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy51c2VyU2VydmljZS5wZXJzaXN0VXNlckNhY2hlKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZGF0YVBlbmRpbmcgPSBmYWxzZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5oYXNDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Hb0JhY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDaGFuZ2VkRGV2aWNlRmllbGRzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmaWVsZHNNYXA6IEFycmF5PFtGb3JtQ29udHJvbDxhbnk+LCBzdHJpbmcsIGFueV0+ID0gW1xuICAgICAgW3RoaXMucGxhclNlcnZpY2UsICdwbGFyU2VydmljZScsICEhdGhpcy5kZXZpY2U/LnBsYXJTZXJ2aWNlXSxcbiAgICAgIFt0aGlzLmRlc2NyaXB0aW9uLCAnZGVzY3JpcHRpb24nLCB0aGlzLmRldmljZT8uZGVzY3JpcHRpb24gfHwgJyddLFxuICAgICAgW3RoaXMuc29mdGtleVRlbXBsYXRlLCAnc29mdGtleVRlbXBsYXRlJywgdGhpcy5kZXZpY2U/LnNvZnRrZXlUZW1wbGF0ZSB8fCAnJ10sXG4gICAgICBbdGhpcy5kZXZpY2VQb29sLCAnZGV2aWNlUG9vbE5hbWUnLCB0aGlzLmRldmljZT8uZGV2aWNlUG9vbE5hbWUgfHwgJyddLFxuICAgICAgW3RoaXMuZGV2aWNlQ3NzLCAnY2FsbGluZ1NlYXJjaFNwYWNlTmFtZScsIHRoaXMuZGV2aWNlPy5jYWxsaW5nU2VhcmNoU3BhY2VOYW1lIHx8ICcnXSxcbiAgICAgIFt0aGlzLmVuYWJsZUV4dGVuc2lvbk1vYmlsaXR5LCAnZW5hYmxlZEV4dGVuc2lvbk1vYmlsaXR5JywgISF0aGlzLmRldmljZT8uZW5hYmxlZEV4dGVuc2lvbk1vYmlsaXR5XSxcbiAgICAgIFt0aGlzLmxvZ2dlZEludG9IdW50R3JvdXAsICdsb2dnZWRJbnRvSHVudEdyb3VwJywgISF0aGlzLmRldmljZT8ubG9nZ2VkSW50b0h1bnRHcm91cF0sXG4gICAgICBbdGhpcy5yZW1vdGVEZXZpY2UsICdyZW1vdGVEZXZpY2UnLCAhIXRoaXMuZGV2aWNlPy5yZW1vdGVEZXZpY2VdLFxuICAgICAgW3RoaXMuaWdub3JlUHJlc2VudGF0aW9uSW5kaWNhdG9ycywgJ2lnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnMnLCAhIXRoaXMuZGV2aWNlPy5pZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzXSxcbiAgICAgIFt0aGlzLmhvdGxpbmVEZXZpY2UsICdob3RsaW5lRGV2aWNlJywgISF0aGlzLmRldmljZT8uaG90bGluZURldmljZV0sXG4gICAgICBbdGhpcy5jYWxsZXJJZEZvckNhbGxzRnJvbVRoaXNQaG9uZSwgJ3VzZURldmljZVBvb2xDZ3BuSW5ncmVzc0ROJywgISF0aGlzLmRldmljZT8udXNlRGV2aWNlUG9vbENncG5JbmdyZXNzRE5dLFxuICAgIF07XG5cbiAgICByZXR1cm4gZmllbGRzTWFwXG4gICAgICAuZmlsdGVyKChbY29udHJvbCwgLCBvcmlnaW5hbFZhbHVlXSkgPT4gY29udHJvbC52YWx1ZSAhPT0gb3JpZ2luYWxWYWx1ZSlcbiAgICAgIC5tYXAoKFtjb250cm9sLCBmaWVsZF0pID0+IGBkZXZpY2UuJHtmaWVsZH09JHtjb250cm9sLnZhbHVlfWApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8YXBwLWxvYWRlciAqbmdJZj1cImRhdGFQZW5kaW5nXCI+PC9hcHAtbG9hZGVyPlxuPGRpdiBjbGFzcz1cImdvLWJhY2stYm94XCIgKGNsaWNrKT1cIm9uR29CYWNrKClcIj5cbiAgPGRpdiBjbGFzcz1cImdvLWJhY2stYm94LWNvbnRhaW5lclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gaWNvbi13ZWJleC1sZWZ0LWFycm93XCI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZ28tYmFjay10aXRsZVwiPkRldmljZSBHZW5lcmFsIEluZm88L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkZXZpY2Utc2V0dGluZ3NcIj5cbiAgPGRpdiBjbGFzcz1cInBhbmVsLWhlYWRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwicGFuZWwtaGVhZGVyX190aXRsZVwiPkRldmljZSBTZXR0aW5nczwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInBhbmVsLWJvZHlcIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPkRldGFpbHM8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+e3sgZGV2aWNlPy5uYW1lIHx8ICdOL0EnIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+TmFtZTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+e3sgZGV2aWNlPy5tb2RlbCB8fCAnTi9BJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXh0cmEtaW5mb1wiPlR5cGU8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFpbi12YWx1ZVwiPnt7IGRldmljZT8uZGVzY3JpcHRpb24gfHwgJ04vQScgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dHJhLWluZm9cIj5EZXZpY2UgZGVzY3JpcHRpb248L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+e3sgbGluZXMgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dHJhLWluZm9cIj5MaW5lPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJnYXA6IDAuNXJlbTtcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGVzY3JpcHRpb25cIj5QTEFSIHNlcnZpY2U8L3NwYW4+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJjdXN0b20tdG9nZ2xlXCIgW2Zvcm1Db250cm9sXT1cInBsYXJTZXJ2aWNlXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZCB2ZXJ0aWNhbC1jYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj5EZXZpY2UgaW5mbzwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+UmVnaXN0cmF0aW9uIHN0YXR1czwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj57eyBkZXZpY2U/LmZvcm0/LmdldCgncmVnaXN0cmF0aW9uU3RhdHVzJyk/LnZhbHVlIHx8ICdVbmtub3duJyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+SVAgQWRkcmVzczwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj57eyBkZXZpY2U/LmlwQWRkcmVzcyB8fCAnTm9uZScgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkRlc2NyaXB0aW9uPC9kaXY+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwicGxhaW4taW5wdXRcIiBbZm9ybUNvbnRyb2xdPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlByb3RvY29sPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPlNJUDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+U29mdGtleSB0ZW1wbGF0ZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3NlbGVjdC13cmFwXCI+XG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3RcIiBuYW1lPVwiY2x1c3RlclwiIFtmb3JtQ29udHJvbF09XCJzb2Z0a2V5VGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY2x1c3RlciBvZiBzb2Z0S2V5c1wiIFt2YWx1ZV09XCJjbHVzdGVyXCI+e3sgY2x1c3RlciB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3QtaWNvblwiIHNyYz1cImFzc2V0cy9pY29ucy9hcnJvdy1kb3duLWJvbGQuc3ZnXCIgYWx0PVwiXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5CdXR0b24gdGVtcGxhdGU8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+U3RhbmRhcmQgODg1MSBTSVA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkxvY2F0aW9uPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPlBhcmlzX2lvczwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGV2aWNlIHBvb2w8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3Qtd3JhcFwiPlxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImlucHV0LWhvbGRlcl9fc2VsZWN0XCIgbmFtZT1cImRldmljZVBvb2xcIiBbZm9ybUNvbnRyb2xdPVwiZGV2aWNlUG9vbFwiPlxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwb29sIG9mIGRldmljZVBvb2xzXCIgW3ZhbHVlXT1cInBvb2xcIj57eyBwb29sIH19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3NlbGVjdC1pY29uXCIgc3JjPVwiYXNzZXRzL2ljb25zL2Fycm93LWRvd24tYm9sZC5zdmdcIiBhbHQ9XCJcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkRldmljZSBDU1M8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3Qtd3JhcFwiPlxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImlucHV0LWhvbGRlcl9fc2VsZWN0XCIgbmFtZT1cImRldmljZUNzc1wiIFtmb3JtQ29udHJvbF09XCJkZXZpY2VDc3NcIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY3NzIG9mIGNzc09wdGlvbnNcIiBbdmFsdWVdPVwiY3NzXCI+e3sgY3NzIH19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3NlbGVjdC1pY29uXCIgc3JjPVwiYXNzZXRzL2ljb25zL2Fycm93LWRvd24tYm9sZC5zdmdcIiBhbHQ9XCJcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RmlybXdhcmUgdmVyc2lvbjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj57eyBkZXZpY2U/LnNvZnR3YXJlVmVyc2lvbiB8fCAnVW5rbm93bicgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmQgdmVydGljYWwtY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+TWVkaWEgU2V0dGluZ3M8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPk1lZGlhIFJlc291cmNlIEdyb3VwIExpc3Q8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+Tm9uZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TmV0d29yayBIb2xkIE1PSCBBdWRpbyBTb3VyY2U8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+Tm9uZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+VXNlciBIb2xkIE1PSCBBdWRpbyBTb3VyY2U8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+Tm9uZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZCB2ZXJ0aWNhbC1jYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj5BQVIgU2V0dGluZ3M8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkFBUiBDYWxsaW5nIFNlYXJjaCBTcGFjZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5Ob25lPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5BQVIgR3JvdXA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+Tm9uZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmQgdmVydGljYWwtY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+RGV2aWNlIEFkZGl0aW9uYWwgSW5mb3JtYXRpb248L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkNvbW1vbiBQaG9uZSBQcm9maWxlPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPlN0YW5kYXJkIENvbW1vbiBQaG9uZSBQcm9maWxlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Vc2VyIExvY2FsZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5Ob25lPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5FbmFibGUgRXh0ZW5zaW9uIE1vYmlsaXR5PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY3VzdG9tLXRvZ2dsZVwiIFtmb3JtQ29udHJvbF09XCJlbmFibGVFeHRlbnNpb25Nb2JpbGl0eVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlByaXZhY3k8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TW9iaWxpdHkgdXNlciBJRDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5BZGFtLkFsbGVuPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5BbHdheXMgVXNlIFByaW1lIExpbmU8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+R2VvbG9jYXRpb248L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Mb2dnZWQgSW50byBIdW50IEdyb3VwPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY3VzdG9tLXRvZ2dsZVwiIFtmb3JtQ29udHJvbF09XCJsb2dnZWRJbnRvSHVudEdyb3VwXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+UmVtb3RlIERldmljZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cImN1c3RvbS10b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwicmVtb3RlRGV2aWNlXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+UGhvbmUgU2VjdXJpdHkgUHJvZmlsZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5DaXNjbyBEdWFsIE1vZGUgZm9yIGlQaG9uZSAtIFN0YW5kYXJkIFNJUCBOb24tU2VjdXJlIFByb2ZpbGU8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPk5ldHdvcmsgTG9jYWxlPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPkNoaW5hPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5CdWlsdCBJbiBCcmlkZ2U8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGV2aWNlIE1vYmlsaXR5IE1vZGU8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+VXNlIFRydXN0ZWQgUmVsYXkgUG9pbnQ8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+QWx3YXlzIFVzZSBQcmltZSBMaW5lIGZvciBWb2ljZSBNZXNzYWdlPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPkRlZmF1bHQ8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPklnbm9yZSBQcmVzZW50YXRpb24gSW5kaWNhdG9ycyggaW50ZXJuYWwgY2FsbHMgb25seSApPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY3VzdG9tLXRvZ2dsZVwiIFtmb3JtQ29udHJvbF09XCJpZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Ib3QgbGluZSBEZXZpY2U8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJjdXN0b20tdG9nZ2xlXCIgW2Zvcm1Db250cm9sXT1cImhvdGxpbmVEZXZpY2VcIj48L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJjYXJkIHZlcnRpY2FsLWNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPk51bWJlciBQcmVzZW50YXRpb24gVHJhbnNmb3JtYXRpb248L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlxuICAgICAgICAgICAgQ2FsbGVyIElEIEZvciBDYWxscyBGcm9tIFRoaXMgUGhvbmVcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBpbmZvLWljb24gcmVtMVwiIFttYXRUb29sdGlwXT1cIidDb250cm9scyBob3cgdGhlIGNhbGxlciBJRCBpcyBwcmVzZW50ZWQgZm9yIGNhbGxzIHBsYWNlZCBmcm9tIHRoaXMgcGhvbmUuJ1wiPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxuICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJjdXN0b20tdG9nZ2xlXCIgW2Zvcm1Db250cm9sXT1cImNhbGxlcklkRm9yQ2FsbHNGcm9tVGhpc1Bob25lXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5cbiAgICAgICAgICAgIFJlbW90ZSBOdW1iZXJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBpbmZvLWljb24gcmVtMVwiIFttYXRUb29sdGlwXT1cIidDb250cm9scyBob3cgdGhlIHJlbW90ZSBudW1iZXIgaXMgcHJlc2VudGVkIGZvciB0aGlzIHBob25lLidcIj48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cbiAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY3VzdG9tLXRvZ2dsZVwiIFtmb3JtQ29udHJvbF09XCJyZW1vdGVOdW1iZXJcIj48L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtZm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLWZvb3Rlcl9fYWN0aW9uc1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tb3V0bGluZVwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1maWxsZWRcIiBbZGlzYWJsZWRdPVwiIWhhc0NoYW5nZXNcIiAoY2xpY2spPVwib25TYXZlKClcIj5TYXZlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL2RldmljZS1zZXR0aW5ncy9kZXZpY2Utc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItZGV2aWNlLW1hbmFnZS9zcmMvZGV2aWNlLXNldHRpbmdzL2RldmljZS1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFXekUsTUFBTSxPQUFPLHVCQUF1QjtJQTJDbEMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxTQUFTLElBQUksSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDO0lBQzFE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LENBQUMsT0FBTyxFQUFFLEFBQUQsRUFBRyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUM7YUFDdkUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3FIQTFNVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixrTUNkcEMsNjdjQXdTQTs0RkQxUmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4TUFLckIsTUFBTTtzQkFBZixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgZm9ya0pvaW4sIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGV2aWNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RldmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2l0ZVNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NpdGUtc2V0dGluZ3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kZXZpY2Utc2V0dGluZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXZpY2Utc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RldmljZS1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV2aWNlU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpIGdvQmFjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBob3N0ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpdGVJZCE6IHN0cmluZztcclxuICBASW5wdXQoKSB1c2VySWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGV2aWNlTmFtZSE6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIGRhdGFQZW5kaW5nID0gZmFsc2U7XHJcbiAgcHVibGljIGRldmljZTogYW55ID0gbnVsbDtcclxuICBwdWJsaWMgc29mdEtleXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBwbGFyU2VydmljZSA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc29mdGtleVRlbXBsYXRlID0gbmV3IEZvcm1Db250cm9sKCdTdGFuZGFyZCB1c2VyJyk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRldmljZVBvb2wgPSBuZXcgRm9ybUNvbnRyb2woJ1BhcmlzX3JlZ3VsYXJfRFBfdGVzdCcpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZXZpY2VDc3MgPSBuZXcgRm9ybUNvbnRyb2woJ1BhcmlzX25hdGlvbmFsX0NTUycpO1xyXG4gIHB1YmxpYyByZWFkb25seSBlbmFibGVFeHRlbnNpb25Nb2JpbGl0eSA9IG5ldyBGb3JtQ29udHJvbCh0cnVlKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgbG9nZ2VkSW50b0h1bnRHcm91cCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHJlbW90ZURldmljZSA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGlnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnMgPSBuZXcgRm9ybUNvbnRyb2woZmFsc2UpO1xyXG4gIHB1YmxpYyByZWFkb25seSBob3RsaW5lRGV2aWNlID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2FsbGVySWRGb3JDYWxsc0Zyb21UaGlzUGhvbmUgPSBuZXcgRm9ybUNvbnRyb2wodHJ1ZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHJlbW90ZU51bWJlciA9IG5ldyBGb3JtQ29udHJvbCh0cnVlKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtQ29udHJvbHM6IEZvcm1Db250cm9sPGFueT5bXSA9IFtcclxuICAgIHRoaXMucGxhclNlcnZpY2UsXHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgdGhpcy5zb2Z0a2V5VGVtcGxhdGUsXHJcbiAgICB0aGlzLmRldmljZVBvb2wsXHJcbiAgICB0aGlzLmRldmljZUNzcyxcclxuICAgIHRoaXMuZW5hYmxlRXh0ZW5zaW9uTW9iaWxpdHksXHJcbiAgICB0aGlzLmxvZ2dlZEludG9IdW50R3JvdXAsXHJcbiAgICB0aGlzLnJlbW90ZURldmljZSxcclxuICAgIHRoaXMuaWdub3JlUHJlc2VudGF0aW9uSW5kaWNhdG9ycyxcclxuICAgIHRoaXMuaG90bGluZURldmljZSxcclxuICAgIHRoaXMuY2FsbGVySWRGb3JDYWxsc0Zyb21UaGlzUGhvbmUsXHJcbiAgICB0aGlzLnJlbW90ZU51bWJlcixcclxuICBdO1xyXG5cclxuICBwdWJsaWMgaGFzQ2hhbmdlcyA9IGZhbHNlO1xyXG5cclxuICBnZXQgbGluZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRldmljZT8ubGluZXM/Lm1hcCgobGluZTogYW55KSA9PiBsaW5lPy5leHRlbnNpb24gfHwgbGluZT8ubnVtYmVyKS5maWx0ZXIoQm9vbGVhbikuam9pbignIHwgJykgfHwgJ04vQSc7XHJcbiAgfVxyXG5cclxuICBnZXQgZGV2aWNlUG9vbHMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzU2VydmljZS5kZXZpY2VQb29scztcclxuICB9XHJcblxyXG4gIGdldCBjc3NPcHRpb25zKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLnNpdGVTZXR0aW5nc1NlcnZpY2UuY2FsbGluZ1NlYXJjaFNwYWNlVHlwZXM7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRldmljZVNlcnZpY2U6IERldmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNpdGVTZXR0aW5nc1NlcnZpY2U6IFNpdGVTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFwaVVybCA9IHRoaXMuaG9zdDtcclxuXHJcbiAgICB0aGlzLmZvcm1Db250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4gY29udHJvbC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGFzQ2hhbmdlcyA9IHRydWUpKTtcclxuXHJcbiAgICBpZiAodGhpcy51c2VyU2VydmljZS51c2VyRGV2aWNlKSB7XHJcbiAgICAgIHRoaXMuZGV2aWNlID0gdGhpcy51c2VyU2VydmljZS51c2VyRGV2aWNlO1xyXG4gICAgICB0aGlzLnBsYXJTZXJ2aWNlLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LnBsYXJTZXJ2aWNlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICB0aGlzLmRlc2NyaXB0aW9uLnNldFZhbHVlKHRoaXMuZGV2aWNlPy5kZXNjcmlwdGlvbiB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5zb2Z0a2V5VGVtcGxhdGUuc2V0VmFsdWUodGhpcy5kZXZpY2U/LnNvZnRrZXlUZW1wbGF0ZSB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5kZXZpY2VQb29sLnNldFZhbHVlKHRoaXMuZGV2aWNlPy5kZXZpY2VQb29sTmFtZSB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5kZXZpY2VDc3Muc2V0VmFsdWUodGhpcy5kZXZpY2U/LmNhbGxpbmdTZWFyY2hTcGFjZU5hbWUgfHwgJycsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgIHRoaXMuZW5hYmxlRXh0ZW5zaW9uTW9iaWxpdHkuc2V0VmFsdWUoISF0aGlzLmRldmljZT8uZW5hYmxlZEV4dGVuc2lvbk1vYmlsaXR5LCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICB0aGlzLmxvZ2dlZEludG9IdW50R3JvdXAuc2V0VmFsdWUoISF0aGlzLmRldmljZT8ubG9nZ2VkSW50b0h1bnRHcm91cCwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5yZW1vdGVEZXZpY2Uuc2V0VmFsdWUoISF0aGlzLmRldmljZT8ucmVtb3RlRGV2aWNlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICB0aGlzLmhvdGxpbmVEZXZpY2Uuc2V0VmFsdWUoISF0aGlzLmRldmljZT8uaG90bGluZURldmljZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5pZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/Lmlnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnMsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgIHRoaXMuY2FsbGVySWRGb3JDYWxsc0Zyb21UaGlzUGhvbmUuc2V0VmFsdWUoISF0aGlzLmRldmljZT8udXNlRGV2aWNlUG9vbENncG5JbmdyZXNzRE4sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgIHRoaXMucmVtb3RlTnVtYmVyLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LnJlbW90ZURldmljZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5nZXRTaXRlU2V0dGluZ3MoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhUGVuZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBkZXZpY2VUeXBlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2RldmljZVR5cGUnKTtcclxuICAgIGxldCByZXF1ZXN0O1xyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdpc1dlYmV4JykgPT09ICd0cnVlJykge1xyXG4gICAgICBjb25zdCBjdXN0b21lcklkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1c3RvbWVySWQnKTtcclxuICAgICAgY29uc3Qgd2ViZXhJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJleFVVSUQnKTtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMudXNlclNlcnZpY2UuZmV0Y2hXZWJleFVzZXJEZXZpY2UoY3VzdG9tZXJJZCEsIHdlYmV4SWQhLCBkZXZpY2VUeXBlISk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy51c2VyU2VydmljZS5mZXRjaERJVXNlckRldmljZShOdW1iZXIodGhpcy5zaXRlSWQpLCB0aGlzLnVzZXJJZCwgZGV2aWNlVHlwZSEpO1xyXG4gICAgfVxyXG4gICAgZm9ya0pvaW4oe1xyXG4gICAgICBkZXZpY2U6IHJlcXVlc3QsXHJcbiAgICAgIHNvZnRLZXlzOiB0aGlzLnNpdGVTZXR0aW5nc1NlcnZpY2UuZ2V0RGV2aWNlU29mdGtleVRlbXBsYXRlcyhOdW1iZXIodGhpcy5zaXRlSWQpKSxcclxuICAgICAgc2l0ZURlZmF1bHRzOiB0aGlzLnNpdGVTZXR0aW5nc1NlcnZpY2UuZ2V0U2l0ZURlZmF1bHRzKE51bWJlcih0aGlzLnNpdGVJZCkpLFxyXG4gICAgfSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2UpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh7ZGV2aWNlLCBzb2Z0S2V5c30pID0+IHtcclxuICAgICAgICB0aGlzLmRldmljZSA9IGRldmljZTtcclxuICAgICAgICB0aGlzLnNvZnRLZXlzID0gKHNvZnRLZXlzIGFzIHN0cmluZ1tdKSB8fCBbXTtcclxuICAgICAgICB0aGlzLnBsYXJTZXJ2aWNlLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LnBsYXJTZXJ2aWNlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24uc2V0VmFsdWUodGhpcy5kZXZpY2U/LmRlc2NyaXB0aW9uIHx8ICcnLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgIHRoaXMuc29mdGtleVRlbXBsYXRlLnNldFZhbHVlKHRoaXMuZGV2aWNlPy5zb2Z0a2V5VGVtcGxhdGUgfHwgJycsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgICAgdGhpcy5kZXZpY2VQb29sLnNldFZhbHVlKHRoaXMuZGV2aWNlPy5kZXZpY2VQb29sTmFtZSB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB0aGlzLmRldmljZUNzcy5zZXRWYWx1ZSh0aGlzLmRldmljZT8uY2FsbGluZ1NlYXJjaFNwYWNlTmFtZSB8fCAnJywge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB0aGlzLmVuYWJsZUV4dGVuc2lvbk1vYmlsaXR5LnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LmVuYWJsZWRFeHRlbnNpb25Nb2JpbGl0eSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB0aGlzLmxvZ2dlZEludG9IdW50R3JvdXAuc2V0VmFsdWUoISF0aGlzLmRldmljZT8ubG9nZ2VkSW50b0h1bnRHcm91cCwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5yZW1vdGVEZXZpY2Uuc2V0VmFsdWUoISF0aGlzLmRldmljZT8ucmVtb3RlRGV2aWNlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICB0aGlzLmhvdGxpbmVEZXZpY2Uuc2V0VmFsdWUoISF0aGlzLmRldmljZT8uaG90bGluZURldmljZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgdGhpcy5pZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/Lmlnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnMsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgIHRoaXMuY2FsbGVySWRGb3JDYWxsc0Zyb21UaGlzUGhvbmUuc2V0VmFsdWUoISF0aGlzLmRldmljZT8udXNlRGV2aWNlUG9vbENncG5JbmdyZXNzRE4sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgIHRoaXMucmVtb3RlTnVtYmVyLnNldFZhbHVlKCEhdGhpcy5kZXZpY2U/LnJlbW90ZURldmljZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNpdGVTZXR0aW5ncygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YVBlbmRpbmcgPSB0cnVlO1xyXG4gICAgZm9ya0pvaW4oe1xyXG4gICAgICBzb2Z0S2V5czogdGhpcy5zaXRlU2V0dGluZ3NTZXJ2aWNlLmdldERldmljZVNvZnRrZXlUZW1wbGF0ZXMoTnVtYmVyKHRoaXMuc2l0ZUlkKSksXHJcbiAgICAgIHNpdGVEZWZhdWx0czogdGhpcy5zaXRlU2V0dGluZ3NTZXJ2aWNlLmdldFNpdGVEZWZhdWx0cyhOdW1iZXIodGhpcy5zaXRlSWQpKSxcclxuICAgIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kYXRhUGVuZGluZyA9IGZhbHNlKSlcclxuICAgICAgLnN1YnNjcmliZSgoe3NvZnRLZXlzfSkgPT4gdGhpcy5zb2Z0S2V5cyA9IChzb2Z0S2V5cyBhcyBzdHJpbmdbXSkgfHwgW10pO1xyXG4gIH1cclxuXHJcbiAgb25Hb0JhY2soKTogdm9pZCB7XHJcbiAgICBjb25zdCBbcGF0aF0gPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKTtcclxuICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aC5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKTtcclxuICAgIGlmIChzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXSA9PT0gJ2RldmljZS1zZXR0aW5ncycpIHtcclxuICAgICAgc2VnbWVudHMucG9wKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJyArIHNlZ21lbnRzLmpvaW4oJy8nKSk7XHJcbiAgICAvLyB0aGlzLmdvQmFjay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25Hb0JhY2soKTtcclxuICB9XHJcblxyXG4gIG9uU2F2ZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNDaGFuZ2VzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBib2R5ID0gdGhpcy5nZXRDaGFuZ2VkRGV2aWNlRmllbGRzKCk7XHJcbiAgICBpZiAoIWJvZHkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaGFzQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9uR29CYWNrKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGFQZW5kaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZGV2aWNlU2VydmljZS5wdXREZXZpY2VGaWVsZHMoTnVtYmVyKHRoaXMuc2l0ZUlkKSwgdGhpcy5kZXZpY2U/Lm5hbWUgfHwgJycsIHRoaXMudXNlclNlcnZpY2UudXNlclRva2VuLCBib2R5KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy51c2VyU2VydmljZS5wZXJzaXN0VXNlckNhY2hlKCkpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmRhdGFQZW5kaW5nID0gZmFsc2UpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFzQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25Hb0JhY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENoYW5nZWREZXZpY2VGaWVsZHMoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgZmllbGRzTWFwOiBBcnJheTxbRm9ybUNvbnRyb2w8YW55Piwgc3RyaW5nLCBhbnldPiA9IFtcclxuICAgICAgW3RoaXMucGxhclNlcnZpY2UsICdwbGFyU2VydmljZScsICEhdGhpcy5kZXZpY2U/LnBsYXJTZXJ2aWNlXSxcclxuICAgICAgW3RoaXMuZGVzY3JpcHRpb24sICdkZXNjcmlwdGlvbicsIHRoaXMuZGV2aWNlPy5kZXNjcmlwdGlvbiB8fCAnJ10sXHJcbiAgICAgIFt0aGlzLnNvZnRrZXlUZW1wbGF0ZSwgJ3NvZnRrZXlUZW1wbGF0ZScsIHRoaXMuZGV2aWNlPy5zb2Z0a2V5VGVtcGxhdGUgfHwgJyddLFxyXG4gICAgICBbdGhpcy5kZXZpY2VQb29sLCAnZGV2aWNlUG9vbE5hbWUnLCB0aGlzLmRldmljZT8uZGV2aWNlUG9vbE5hbWUgfHwgJyddLFxyXG4gICAgICBbdGhpcy5kZXZpY2VDc3MsICdjYWxsaW5nU2VhcmNoU3BhY2VOYW1lJywgdGhpcy5kZXZpY2U/LmNhbGxpbmdTZWFyY2hTcGFjZU5hbWUgfHwgJyddLFxyXG4gICAgICBbdGhpcy5lbmFibGVFeHRlbnNpb25Nb2JpbGl0eSwgJ2VuYWJsZWRFeHRlbnNpb25Nb2JpbGl0eScsICEhdGhpcy5kZXZpY2U/LmVuYWJsZWRFeHRlbnNpb25Nb2JpbGl0eV0sXHJcbiAgICAgIFt0aGlzLmxvZ2dlZEludG9IdW50R3JvdXAsICdsb2dnZWRJbnRvSHVudEdyb3VwJywgISF0aGlzLmRldmljZT8ubG9nZ2VkSW50b0h1bnRHcm91cF0sXHJcbiAgICAgIFt0aGlzLnJlbW90ZURldmljZSwgJ3JlbW90ZURldmljZScsICEhdGhpcy5kZXZpY2U/LnJlbW90ZURldmljZV0sXHJcbiAgICAgIFt0aGlzLmlnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnMsICdpZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzJywgISF0aGlzLmRldmljZT8uaWdub3JlUHJlc2VudGF0aW9uSW5kaWNhdG9yc10sXHJcbiAgICAgIFt0aGlzLmhvdGxpbmVEZXZpY2UsICdob3RsaW5lRGV2aWNlJywgISF0aGlzLmRldmljZT8uaG90bGluZURldmljZV0sXHJcbiAgICAgIFt0aGlzLmNhbGxlcklkRm9yQ2FsbHNGcm9tVGhpc1Bob25lLCAndXNlRGV2aWNlUG9vbENncG5JbmdyZXNzRE4nLCAhIXRoaXMuZGV2aWNlPy51c2VEZXZpY2VQb29sQ2dwbkluZ3Jlc3NETl0sXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBmaWVsZHNNYXBcclxuICAgICAgLmZpbHRlcigoW2NvbnRyb2wsICwgb3JpZ2luYWxWYWx1ZV0pID0+IGNvbnRyb2wudmFsdWUgIT09IG9yaWdpbmFsVmFsdWUpXHJcbiAgICAgIC5tYXAoKFtjb250cm9sLCBmaWVsZF0pID0+IGBkZXZpY2UuJHtmaWVsZH09JHtjb250cm9sLnZhbHVlfWApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1sb2FkZXIgKm5nSWY9XCJkYXRhUGVuZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuPGRpdiBjbGFzcz1cImdvLWJhY2stYm94XCIgKGNsaWNrKT1cIm9uR29CYWNrKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiZ28tYmFjay1ib3gtY29udGFpbmVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImFwcC1pY29uIGljb24td2ViZXgtbGVmdC1hcnJvd1wiPjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZ28tYmFjay10aXRsZVwiPkRldmljZSBHZW5lcmFsIEluZm88L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImRldmljZS1zZXR0aW5nc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkZXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwicGFuZWwtaGVhZGVyX190aXRsZVwiPkRldmljZSBTZXR0aW5nczwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInBhbmVsLWJvZHlcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPkRldGFpbHM8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFpbi12YWx1ZVwiPnt7IGRldmljZT8ubmFtZSB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+TmFtZTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+e3sgZGV2aWNlPy5tb2RlbCB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+VHlwZTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluLXZhbHVlXCI+e3sgZGV2aWNlPy5kZXNjcmlwdGlvbiB8fCAnTi9BJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRyYS1pbmZvXCI+RGV2aWNlIGRlc2NyaXB0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFpbi12YWx1ZVwiPnt7IGxpbmVzIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dHJhLWluZm9cIj5MaW5lPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3cgZmxleC1jb2x1bW5cIiBzdHlsZT1cImdhcDogMC41cmVtO1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlc2NyaXB0aW9uXCI+UExBUiBzZXJ2aWNlPC9zcGFuPlxyXG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJjdXN0b20tdG9nZ2xlXCIgW2Zvcm1Db250cm9sXT1cInBsYXJTZXJ2aWNlXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmQgdmVydGljYWwtY2FyZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPkRldmljZSBpbmZvPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlJlZ2lzdHJhdGlvbiBzdGF0dXM8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj57eyBkZXZpY2U/LmZvcm0/LmdldCgncmVnaXN0cmF0aW9uU3RhdHVzJyk/LnZhbHVlIHx8ICdVbmtub3duJyB9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5JUCBBZGRyZXNzPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+e3sgZGV2aWNlPy5pcEFkZHJlc3MgfHwgJ05vbmUnIH19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkRlc2NyaXB0aW9uPC9kaXY+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJwbGFpbi1pbnB1dFwiIFtmb3JtQ29udHJvbF09XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Qcm90b2NvbDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPlNJUDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Tb2Z0a2V5IHRlbXBsYXRlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3Qtd3JhcFwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3RcIiBuYW1lPVwiY2x1c3RlclwiIFtmb3JtQ29udHJvbF09XCJzb2Z0a2V5VGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjbHVzdGVyIG9mIHNvZnRLZXlzXCIgW3ZhbHVlXT1cImNsdXN0ZXJcIj57eyBjbHVzdGVyIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3QtaWNvblwiIHNyYz1cImFzc2V0cy9pY29ucy9hcnJvdy1kb3duLWJvbGQuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+QnV0dG9uIHRlbXBsYXRlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+U3RhbmRhcmQgODg1MSBTSVA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TG9jYXRpb248L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5QYXJpc19pb3M8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGV2aWNlIHBvb2w8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3NlbGVjdC13cmFwXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3NlbGVjdFwiIG5hbWU9XCJkZXZpY2VQb29sXCIgW2Zvcm1Db250cm9sXT1cImRldmljZVBvb2xcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwb29sIG9mIGRldmljZVBvb2xzXCIgW3ZhbHVlXT1cInBvb2xcIj57eyBwb29sIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW5wdXQtaG9sZGVyX19zZWxlY3QtaWNvblwiIHNyYz1cImFzc2V0cy9pY29ucy9hcnJvdy1kb3duLWJvbGQuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+RGV2aWNlIENTUzwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fc2VsZWN0LXdyYXBcIj5cclxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImlucHV0LWhvbGRlcl9fc2VsZWN0XCIgbmFtZT1cImRldmljZUNzc1wiIFtmb3JtQ29udHJvbF09XCJkZXZpY2VDc3NcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjc3Mgb2YgY3NzT3B0aW9uc1wiIFt2YWx1ZV09XCJjc3NcIj57eyBjc3MgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3NlbGVjdC1pY29uXCIgc3JjPVwiYXNzZXRzL2ljb25zL2Fycm93LWRvd24tYm9sZC5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5GaXJtd2FyZSB2ZXJzaW9uPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+e3sgZGV2aWNlPy5zb2Z0d2FyZVZlcnNpb24gfHwgJ1Vua25vd24nIH19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZCB2ZXJ0aWNhbC1jYXJkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+TWVkaWEgU2V0dGluZ3M8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TWVkaWEgUmVzb3VyY2UgR3JvdXAgTGlzdDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPk5vbmU8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TmV0d29yayBIb2xkIE1PSCBBdWRpbyBTb3VyY2U8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5Ob25lPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlVzZXIgSG9sZCBNT0ggQXVkaW8gU291cmNlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+Tm9uZTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImNhcmQgdmVydGljYWwtY2FyZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPkFBUiBTZXR0aW5nczwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5BQVIgQ2FsbGluZyBTZWFyY2ggU3BhY2U8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5Ob25lPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkFBUiBHcm91cDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPk5vbmU8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJjYXJkIHZlcnRpY2FsLWNhcmRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj5EZXZpY2UgQWRkaXRpb25hbCBJbmZvcm1hdGlvbjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Db21tb24gUGhvbmUgUHJvZmlsZTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPlN0YW5kYXJkIENvbW1vbiBQaG9uZSBQcm9maWxlPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlVzZXIgTG9jYWxlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+Tm9uZTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5FbmFibGUgRXh0ZW5zaW9uIE1vYmlsaXR5PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxyXG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cImN1c3RvbS10b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwiZW5hYmxlRXh0ZW5zaW9uTW9iaWxpdHlcIj48L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+UHJpdmFjeTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPkRlZmF1bHQ8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TW9iaWxpdHkgdXNlciBJRDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPkFkYW0uQWxsZW48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+QWx3YXlzIFVzZSBQcmltZSBMaW5lPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5HZW9sb2NhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPiZuYnNwOzwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Mb2dnZWQgSW50byBIdW50IEdyb3VwPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxyXG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cImN1c3RvbS10b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwibG9nZ2VkSW50b0h1bnRHcm91cFwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5SZW1vdGUgRGV2aWNlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxyXG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cImN1c3RvbS10b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwicmVtb3RlRGV2aWNlXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPlBob25lIFNlY3VyaXR5IFByb2ZpbGU8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5DaXNjbyBEdWFsIE1vZGUgZm9yIGlQaG9uZSAtIFN0YW5kYXJkIFNJUCBOb24tU2VjdXJlIFByb2ZpbGU8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+TmV0d29yayBMb2NhbGU8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5DaGluYTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5CdWlsdCBJbiBCcmlkZ2U8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX3BsYWluLXZhbHVlIHRleHQtZGVzY3JpcHRpb25cIj5EZWZhdWx0PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlciBpbnB1dC1ob2xkZXItdG9wLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fbmFtZVwiPkRldmljZSBNb2JpbGl0eSBNb2RlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Vc2UgVHJ1c3RlZCBSZWxheSBQb2ludDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9fcGxhaW4tdmFsdWUgdGV4dC1kZXNjcmlwdGlvblwiPkRlZmF1bHQ8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3AtYm90dG9tXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19uYW1lXCI+QWx3YXlzIFVzZSBQcmltZSBMaW5lIGZvciBWb2ljZSBNZXNzYWdlPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19wbGFpbi12YWx1ZSB0ZXh0LWRlc2NyaXB0aW9uXCI+RGVmYXVsdDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXIgaW5wdXQtaG9sZGVyLXRvcC1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5JZ25vcmUgUHJlc2VudGF0aW9uIEluZGljYXRvcnMoIGludGVybmFsIGNhbGxzIG9ubHkgKTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWhvbGRlcl9faW5wdXRcIj5cclxuICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJjdXN0b20tdG9nZ2xlXCIgW2Zvcm1Db250cm9sXT1cImlnbm9yZVByZXNlbnRhdGlvbkluZGljYXRvcnNcIj48L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5Ib3QgbGluZSBEZXZpY2U8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX2lucHV0XCI+XHJcbiAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwiY3VzdG9tLXRvZ2dsZVwiIFtmb3JtQ29udHJvbF09XCJob3RsaW5lRGV2aWNlXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiY2FyZCB2ZXJ0aWNhbC1jYXJkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+TnVtYmVyIFByZXNlbnRhdGlvbiBUcmFuc2Zvcm1hdGlvbjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5cclxuICAgICAgICAgICAgQ2FsbGVyIElEIEZvciBDYWxscyBGcm9tIFRoaXMgUGhvbmVcclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uIGluZm8taWNvbiByZW0xXCIgW21hdFRvb2x0aXBdPVwiJ0NvbnRyb2xzIGhvdyB0aGUgY2FsbGVyIElEIGlzIHByZXNlbnRlZCBmb3IgY2FsbHMgcGxhY2VkIGZyb20gdGhpcyBwaG9uZS4nXCI+PC9pPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxyXG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cImN1c3RvbS10b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwiY2FsbGVySWRGb3JDYWxsc0Zyb21UaGlzUGhvbmVcIj48L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyIGlucHV0LWhvbGRlci10b3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ob2xkZXJfX25hbWVcIj5cclxuICAgICAgICAgICAgUmVtb3RlIE51bWJlclxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb24gaW5mby1pY29uIHJlbTFcIiBbbWF0VG9vbHRpcF09XCInQ29udHJvbHMgaG93IHRoZSByZW1vdGUgbnVtYmVyIGlzIHByZXNlbnRlZCBmb3IgdGhpcyBwaG9uZS4nXCI+PC9pPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtaG9sZGVyX19pbnB1dFwiPlxyXG4gICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cImN1c3RvbS10b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwicmVtb3RlTnVtYmVyXCI+PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtZm9vdGVyX19hY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLW91dGxpbmVcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1maWxsZWRcIiBbZGlzYWJsZWRdPVwiIWhhc0NoYW5nZXNcIiAoY2xpY2spPVwib25TYXZlKClcIj5TYXZlPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -8,4 +8,4 @@ export const environment = {
8
8
  cashArrayLength: 10000,
9
9
  matomoUrl: 'http://192.168.0.136/matomo/',
10
10
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1kZXZpY2UtbWFuYWdlL3NyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLG1DQUFtQztJQUNuQyxNQUFNLEVBQUUsMkJBQTJCO0lBQ25DLHFCQUFxQixFQUFFLEtBQUs7SUFDNUIseUJBQXlCLEVBQUUsS0FBSztJQUNoQyxjQUFjLEVBQUUsTUFBTTtJQUN0QixlQUFlLEVBQUUsS0FBSztJQUN0QixTQUFTLEVBQUUsOEJBQThCO0NBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XG4gIHByb2R1Y3Rpb246IGZhbHNlLFxuICAvLyBhcGlVcmw6ICdodHRwOi8vbG9jYWxob3N0OjQyMDAnLFxuICBhcGlVcmw6ICdodHRwOi8vMTkyLjE2OC4wLjE5MTo4MDgwJyxcbiAgbm90aWZpY2F0aW9uc0xpZmV0aW1lOiAzMDAwMCxcbiAgbG9uZ05vdGlmaWNhdGlvbnNMaWZldGltZTogNDUwMDAsXG4gIGNhc2hDbGVhblRpbWVyOiA5MDAwMDAsXG4gIGNhc2hBcnJheUxlbmd0aDogMTAwMDAsXG4gIG1hdG9tb1VybDogJ2h0dHA6Ly8xOTIuMTY4LjAuMTM2L21hdG9tby8nLFxufTtcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1kZXZpY2UtbWFuYWdlL3NyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLG1DQUFtQztJQUNuQyxNQUFNLEVBQUUsMkJBQTJCO0lBQ25DLHFCQUFxQixFQUFFLEtBQUs7SUFDNUIseUJBQXlCLEVBQUUsS0FBSztJQUNoQyxjQUFjLEVBQUUsTUFBTTtJQUN0QixlQUFlLEVBQUUsS0FBSztJQUN0QixTQUFTLEVBQUUsOEJBQThCO0NBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XHJcbiAgcHJvZHVjdGlvbjogZmFsc2UsXHJcbiAgLy8gYXBpVXJsOiAnaHR0cDovL2xvY2FsaG9zdDo0MjAwJyxcclxuICBhcGlVcmw6ICdodHRwOi8vMTkyLjE2OC4wLjE5MTo4MDgwJyxcclxuICBub3RpZmljYXRpb25zTGlmZXRpbWU6IDMwMDAwLFxyXG4gIGxvbmdOb3RpZmljYXRpb25zTGlmZXRpbWU6IDQ1MDAwLFxyXG4gIGNhc2hDbGVhblRpbWVyOiA5MDAwMDAsXHJcbiAgY2FzaEFycmF5TGVuZ3RoOiAxMDAwMCxcclxuICBtYXRvbW9Vcmw6ICdodHRwOi8vMTkyLjE2OC4wLjEzNi9tYXRvbW8vJyxcclxufTtcclxuIl19
@@ -33,4 +33,4 @@ AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthInterceptor, decorators: [{
34
34
  type: Injectable
35
35
  }], ctorParameters: function () { return []; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL2ludGVyc2VwdG9ycy9hdXRoLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF1RCxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUczQyxNQUFNLE9BQU8sZUFBZTtJQUMxQjtJQUNBLENBQUM7SUFFRCxTQUFTLENBQ1AsT0FBeUIsRUFDekIsSUFBaUI7UUFFakIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEIsVUFBVSxFQUFFO1lBQ1YsdUNBQXVDO2FBQ3hDO1lBQ0MsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFBO1FBRUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxHQUFHLFlBQVksaUJBQWlCLEVBQUU7Z0JBQ3BDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ3RCLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUM3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7cUJBQ3hCO3lCQUFNO3dCQUNMLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO3FCQUN4QztpQkFDRjthQUNGO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OzZHQTNCVSxlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cEV2ZW50LCBIdHRwUmVxdWVzdCwgSHR0cEludGVyY2VwdG9yLCBIdHRwSGFuZGxlciwgSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgaW50ZXJjZXB0KFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgLy8gQXV0aG9yaXphdGlvbjogYmFzaWNBdXRoSGVhZGVyU3RyaW5nXG4gICAgICB9XG4gICAgICAsIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgIH0pXG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgIGlmICh3aW5kb3cuaGlzdG9yeS5sZW5ndGggPCAzKSB7XG4gICAgICAgICAgICBlcnIuZXJyb3IubWVzc2FnZSA9ICcnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnIuZXJyb3IubWVzc2FnZSA9ICdTRVNTSU9OX0lOQUNUSVZFJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgfSkpO1xuICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWRldmljZS1tYW5hZ2Uvc3JjL2ludGVyc2VwdG9ycy9hdXRoLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF1RCxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUczQyxNQUFNLE9BQU8sZUFBZTtJQUMxQjtJQUNBLENBQUM7SUFFRCxTQUFTLENBQ1AsT0FBeUIsRUFDekIsSUFBaUI7UUFFakIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEIsVUFBVSxFQUFFO1lBQ1YsdUNBQXVDO2FBQ3hDO1lBQ0MsZUFBZSxFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFBO1FBRUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxHQUFHLFlBQVksaUJBQWlCLEVBQUU7Z0JBQ3BDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ3RCLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUM3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7cUJBQ3hCO3lCQUFNO3dCQUNMLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO3FCQUN4QztpQkFDRjthQUNGO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OzZHQTNCVSxlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBSZXF1ZXN0LCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Y2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQoXHJcbiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgICAvLyBBdXRob3JpemF0aW9uOiBiYXNpY0F1dGhIZWFkZXJTdHJpbmdcclxuICAgICAgfVxyXG4gICAgICAsIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShjYXRjaEVycm9yKGVyciA9PiB7XHJcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgIGlmICh3aW5kb3cuaGlzdG9yeS5sZW5ndGggPCAzKSB7XHJcbiAgICAgICAgICAgIGVyci5lcnJvci5tZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBlcnIuZXJyb3IubWVzc2FnZSA9ICdTRVNTSU9OX0lOQUNUSVZFJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19