@sapui5/sap.fe.controls 1.138.0 → 1.140.0

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 (65) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/controls/.library +1 -1
  3. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +32 -8
  4. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +42 -9
  5. package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.js +22 -2
  6. package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.ts +34 -1
  7. package/src/sap/fe/controls/easyFilter/utils.js +47 -2
  8. package/src/sap/fe/controls/easyFilter/utils.ts +49 -1
  9. package/src/sap/fe/controls/inlineEdit/InlineEditIndicator.js +1 -2
  10. package/src/sap/fe/controls/inlineEdit/InlineEditIndicator.tsx +0 -1
  11. package/src/sap/fe/controls/library.js +1 -1
  12. package/src/sap/fe/controls/messagebundle.properties +16 -12
  13. package/src/sap/fe/controls/messagebundle_ar.properties +8 -5
  14. package/src/sap/fe/controls/messagebundle_bg.properties +7 -4
  15. package/src/sap/fe/controls/messagebundle_ca.properties +6 -3
  16. package/src/sap/fe/controls/messagebundle_cnr.properties +6 -3
  17. package/src/sap/fe/controls/messagebundle_cs.properties +7 -4
  18. package/src/sap/fe/controls/messagebundle_cy.properties +9 -6
  19. package/src/sap/fe/controls/messagebundle_da.properties +7 -4
  20. package/src/sap/fe/controls/messagebundle_de.properties +7 -4
  21. package/src/sap/fe/controls/messagebundle_el.properties +8 -5
  22. package/src/sap/fe/controls/messagebundle_en.properties +9 -6
  23. package/src/sap/fe/controls/messagebundle_en_GB.properties +9 -6
  24. package/src/sap/fe/controls/messagebundle_en_US_saprigi.properties +9 -6
  25. package/src/sap/fe/controls/messagebundle_es.properties +8 -5
  26. package/src/sap/fe/controls/messagebundle_es_MX.properties +7 -4
  27. package/src/sap/fe/controls/messagebundle_et.properties +5 -2
  28. package/src/sap/fe/controls/messagebundle_fi.properties +7 -4
  29. package/src/sap/fe/controls/messagebundle_fr.properties +7 -4
  30. package/src/sap/fe/controls/messagebundle_fr_CA.properties +5 -2
  31. package/src/sap/fe/controls/messagebundle_hi.properties +7 -4
  32. package/src/sap/fe/controls/messagebundle_hr.properties +8 -5
  33. package/src/sap/fe/controls/messagebundle_hu.properties +7 -4
  34. package/src/sap/fe/controls/messagebundle_id.properties +7 -4
  35. package/src/sap/fe/controls/messagebundle_it.properties +9 -6
  36. package/src/sap/fe/controls/messagebundle_iw.properties +6 -3
  37. package/src/sap/fe/controls/messagebundle_ja.properties +7 -4
  38. package/src/sap/fe/controls/messagebundle_kk.properties +7 -4
  39. package/src/sap/fe/controls/messagebundle_ko.properties +6 -3
  40. package/src/sap/fe/controls/messagebundle_lt.properties +7 -4
  41. package/src/sap/fe/controls/messagebundle_lv.properties +8 -5
  42. package/src/sap/fe/controls/messagebundle_mk.properties +7 -4
  43. package/src/sap/fe/controls/messagebundle_ms.properties +8 -5
  44. package/src/sap/fe/controls/messagebundle_nl.properties +7 -4
  45. package/src/sap/fe/controls/messagebundle_no.properties +6 -3
  46. package/src/sap/fe/controls/messagebundle_pl.properties +7 -4
  47. package/src/sap/fe/controls/messagebundle_pt.properties +7 -4
  48. package/src/sap/fe/controls/messagebundle_pt_PT.properties +7 -4
  49. package/src/sap/fe/controls/messagebundle_ro.properties +8 -5
  50. package/src/sap/fe/controls/messagebundle_ru.properties +6 -3
  51. package/src/sap/fe/controls/messagebundle_sh.properties +6 -3
  52. package/src/sap/fe/controls/messagebundle_sk.properties +6 -3
  53. package/src/sap/fe/controls/messagebundle_sl.properties +8 -5
  54. package/src/sap/fe/controls/messagebundle_sr.properties +6 -3
  55. package/src/sap/fe/controls/messagebundle_sv.properties +6 -3
  56. package/src/sap/fe/controls/messagebundle_th.properties +6 -3
  57. package/src/sap/fe/controls/messagebundle_tr.properties +7 -4
  58. package/src/sap/fe/controls/messagebundle_uk.properties +6 -3
  59. package/src/sap/fe/controls/messagebundle_vi.properties +8 -5
  60. package/src/sap/fe/controls/messagebundle_zh_CN.properties +5 -2
  61. package/src/sap/fe/controls/messagebundle_zh_TW.properties +7 -4
  62. package/src/sap/fe/controls/shortcuts/ShortcutExplanationProvider.js +38 -3
  63. package/src/sap/fe/controls/shortcuts/ShortcutExplanationProvider.tsx +37 -2
  64. package/src/sap/fe/controls/shortcuts/popup/ShortcutTool.js +8 -1
  65. package/src/sap/fe/controls/shortcuts/popup/ShortcutTool.tsx +5 -0
@@ -14,24 +14,27 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
14
14
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=\u041B\u0435\u0433\u043A\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440
15
15
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=\u0417\u0440\u043E\u0431\u0456\u0442\u044C \u043B\u0435\u0433\u043A\u0438\u0439 \u0444\u0456\u043B\u044C\u0442\u0440 \u0443\u0441\u0442\u0430\u043B\u0435\u043D\u043E\u044E \u043E\u043F\u0446\u0456\u0454\u044E \u0444\u0456\u043B\u044C\u0442\u0440\u0443\u0432\u0430\u043D\u043D\u044F.
16
16
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=\u0417\u0430\u043B\u0438\u0448\u0442\u0435 \u043C\u043E\u0457 \u043D\u0435\u0449\u043E\u0434\u0430\u0432\u043D\u0456 \u0437\u0430\u043F\u0438\u0442\u0438 \u0443 \u043B\u0435\u0433\u043A\u043E\u043C\u0443 \u0444\u0456\u043B\u044C\u0442\u0440\u0456 \u043F\u0456\u0434 \u043D\u0430\u0437\u0432\u043E\u044E \u041E\u0441\u0442\u0430\u043D\u043D\u0456 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u0456 \u0437\u0430\u043F\u0438\u0442\u0438.
17
- M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u0412\u0438\u043A\u043E\u043D\u0430\u0439\u0442\u0435 \u0432\u0435\u0434\u0435\u043D\u043D\u044F \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u043A\u0440\u0438\u0442\u0435\u0440\u0456\u0457\u0432 \u0444\u0456\u043B\u044C\u0442\u0440\u0430
17
+ M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u0446\u044C\u043E\u0433\u043E \u043E\u0431\u043E\u0432\u2019\u044F\u0437\u043A\u043E\u0432\u043E\u0433\u043E \u0444\u0456\u043B\u044C\u0442\u0440\u0443.
18
18
  M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F)
19
19
  M_EASY_FILTER_FILTER_SET_AI=\u0424\u0456\u043B\u044C\u0442\u0440\u0438\:
20
20
  M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=\u041F\u0440\u043E\u043F\u043E\u0437\u0438\u0446\u0456\u0457 \u0434\u043B\u044F \u043F\u043E\u0447\u0430\u0442\u043A\u0443
21
21
  M_EASY_FILTER_POPOVER_FAVORITE_TITLE=\u0423\u043B\u044E\u0431\u043B\u0435\u043D\u0456 \u0437\u0430\u043F\u0438\u0442\u0438
22
22
  M_EASY_FILTER_POPOVER_LAST_USED=\u041E\u0441\u0442\u0430\u043D\u043D\u0456 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u0456 \u0437\u0430\u043F\u0438\u0442\u0438
23
23
  M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=\u041D\u0435\u043C\u0430\u0454 \u0443\u043B\u044E\u0431\u043B\u0435\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432
24
- M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u0414\u043E\u0434\u0430\u0439\u0442\u0435 \u0437\u0430\u043F\u0438\u0442\u0438 \u0434\u043E \u0441\u0432\u043E\u0457\u0445 \u0443\u043B\u044E\u0431\u043B\u0435\u043D\u0438\u0445
24
+ M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u0414\u043E\u0434\u0430\u0439\u0442\u0435 \u0437\u0430\u043F\u0438\u0442\u0438 \u0434\u043E \u0441\u0432\u043E\u0457\u0445 \u0443\u043B\u044E\u0431\u043B\u0435\u043D\u0438\u0445.
25
25
  M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=\u0422\u0443\u0442 \u0431\u0443\u0434\u0443\u0442\u044C \u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0456 \u0432\u0430\u0448\u0456 \u043E\u0441\u0442\u0430\u043D\u043D\u0456 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u0456 \u0437\u0430\u043F\u0438\u0442\u0438.
26
26
  M_EASY_FILTER_POPOVER_AI_TITLE=\u0421\u0442\u0432\u043E\u0440\u0435\u043D\u043E \u0437\u0430 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u043E\u044E \u0428\u0406
27
27
  M_EASY_FILTER_POPOVER_AI_TEXT_1=\u0412\u043C\u0456\u0441\u0442 \u0431\u0443\u043B\u043E \u0447\u0430\u0441\u0442\u043A\u043E\u0432\u043E \u0430\u0431\u043E \u043F\u043E\u0432\u043D\u0456\u0441\u0442\u044E \u0437\u0433\u0435\u043D\u0435\u0440\u043E\u0432\u0430\u043D\u043E \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0456\u044F\u043C\u0438 \u0448\u0442\u0443\u0447\u043D\u043E\u0433\u043E \u0456\u043D\u0442\u0435\u043B\u0435\u043A\u0442\u0443 (\u0428\u0406).
28
28
  M_EASY_FILTER_POPOVER_AI_TEXT_2=\u0412\u043C\u0456\u0441\u0442, \u0437\u0433\u0435\u043D\u0435\u0440\u043E\u0432\u0430\u043D\u0438\u0439 \u0428\u0406, \u043C\u043E\u0436\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0435\u0442\u043E\u0447\u043D\u043E\u0441\u0442\u0456 \u0447\u0435\u0440\u0435\u0437 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F \u043A\u0456\u043B\u044C\u043A\u043E\u0445 \u0434\u0436\u0435\u0440\u0435\u043B \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u0457. \u041F\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0438 \u043F\u0435\u0440\u0435\u0434 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F\u043C.
29
29
  M_EASY_FILTER_POPOVER_CLOSE=\u0417\u0430\u043A\u0440\u0438\u0442\u0438
30
- M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=\u0411\u0435\u0437 \u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0445 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432
30
+ M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=\u041D\u0435\u043C\u0430\u0454 \u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0445 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432
31
31
  M_EASY_FILTER_FILLED_STAR=\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0437 \u0443\u043B\u044E\u0431\u043B\u0435\u043D\u0438\u0445
32
32
  M_EASY_FILTER_EMPTY_START=\u0414\u043E\u0434\u0430\u0442\u0438 \u0434\u043E \u0443\u043B\u044E\u0431\u043B\u0435\u043D\u0438\u0445
33
33
  T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0414\u043B\u044F \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0443 \u0434\u043E \u0441\u043F\u0438\u0441\u043A\u0443 \u0443\u043B\u044E\u0431\u043B\u0435\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432 \u0442\u0430 \u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0445 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u0437\u0456 \u0441\u0442\u0440\u0456\u043B\u043A\u043E\u044E \u0432\u043D\u0438\u0437
34
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u0422\u0456\u043B\u044C\u043A\u0438 \u043E\u0434\u043D\u0435 \u043E\u043A\u0440\u0435\u043C\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 \u0437\u0430\u0441\u0442\u043E\u0441\u043E\u0432\u0430\u043D\u0435 \u0434\u043E \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E\: {0}
35
+ M_EASY_FILTER_NON_FILTERABLE=\u0412\u0438 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0444\u0456\u043B\u044C\u0442\u0440\u0443\u0432\u0430\u0442\u0438 \u0437\u0430 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u044E \u0432\u043B\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044E \u0432 \u0446\u044C\u043E\u043C\u0443 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043A\u0443\: {0}
36
+ M_EASY_FILTER_SINGLE_RANGE=\u0417\u0432\u0435\u0440\u043D\u0456\u0442\u044C \u0443\u0432\u0430\u0433\u0443, \u0449\u043E \u0442\u0456\u043B\u044C\u043A\u0438 \u043E\u0434\u043D\u0430 \u0443\u043C\u043E\u0432\u0430 \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 \u0437\u0430\u0441\u0442\u043E\u0441\u043E\u0432\u0430\u043D\u0430 \u0434\u043E \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u0433\u043E\: {0}
37
+ M_EASY_FILTER_HIDDEN_FILTER=\u0412\u0438 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0444\u0456\u043B\u044C\u0442\u0440\u0443\u0432\u0430\u0442\u0438 \u0437\u0430 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u043E\u044E \u0432\u043B\u0430\u0441\u0442\u0438\u0432\u0456\u0441\u0442\u044E \u0432 \u0446\u044C\u043E\u043C\u0443 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043A\u0443\: {0}
35
38
  C_SHORTCUT_TITLE=\u0421\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u043A\u043B\u0430\u0432\u0456\u0448
36
39
  C_SHORTCUT_PLACEHOLDER=\u0417\u043D\u0430\u0439\u0442\u0438 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u043A\u043B\u0430\u0432\u0456\u0448
37
40
  C_SHORTCUT_NODATA=\u041D\u0430\u0432\u0435\u0434\u0456\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430 \u0447\u0430\u0441\u0442\u0438\u043D\u0456 \u0435\u043A\u0440\u0430\u043D\u0430, \u0449\u043E\u0431 \u043F\u043E\u0431\u0430\u0447\u0438\u0442\u0438 \u043A\u043E\u043C\u0431\u0456\u043D\u0430\u0446\u0456\u0457 \u043A\u043B\u0430\u0432\u0456\u0448
@@ -4,7 +4,7 @@ C_HISTORY_CLOSE=\u0110o\u0301ng
4
4
  M_EASY_FILTER_GO=Ti\u00EA\u0301n ha\u0300nh
5
5
  M_EASY_FILTER_PLACEHOLDER=Nh\u1EADp truy v\u1EA5n c\u1EE7a b\u1EA1n b\u1EB1ng ng\u00F4n ng\u1EEF t\u1EF1 nhi\u00EAn \u0111\u1EC3 l\u1ECDc danh s\u00E1ch
6
6
  M_EASY_FILTER_POPOVER_OK=OK
7
- M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=Hi\u1EC3n th\u1ECB t\u1EA5t c\u1EA3 ca\u0301c m\u1EE5c
7
+ M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=Hi\u1EC3n th\u1ECB t\u1EA5t c\u1EA3 m\u1EE5c
8
8
  M_EASY_FILTER_MANDATORY_TOKEN_ITEMS={0} gia\u0301 tri\u0323
9
9
  M_EASY_FILTER_RESET=\u0110\u0103\u0323t la\u0323i b\u00F4\u0323 lo\u0323c
10
10
  M_EASY_FILTER_SELECTED_VALUES_TRUE=Co\u0301
@@ -14,24 +14,27 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
14
14
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=B\u1ED9 l\u1ECDc d\u1EC5 d\u00E0ng
15
15
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=\u0110\u1EB7t b\u1ED9 l\u1ECDc d\u1EC5 d\u00E0ng l\u00E0m t\u00F9y ch\u1ECDn l\u1ECDc m\u1EB7c \u0111\u1ECBnh.
16
16
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Gi\u1EEF c\u00E1c truy v\u1EA5n g\u1EA7n \u0111\u00E2y c\u1EE7a t\u00F4i trong b\u1ED9 l\u1ECDc d\u1EC5 d\u00E0ng trong Truy v\u1EA5n \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng l\u1EA7n cu\u1ED1i.
17
- M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Duy tr\u00EC gi\u00E1 tr\u1ECB cho ti\u00EAu ch\u00ED b\u1ED9 l\u1ECDc
17
+ M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Ch\u1ECDn gi\u00E1 tr\u1ECB cho b\u1ED9 l\u1ECDc b\u1EAFt bu\u1ED9c n\u00E0y.
18
18
  M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Ch\u1ECDn gi\u00E1 tr\u1ECB)
19
19
  M_EASY_FILTER_FILTER_SET_AI=B\u00F4\u0323 lo\u0323c\:
20
20
  M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=\u0110\u1EC1 xu\u1EA5t \u0111\u1EC3 b\u1EA1n b\u1EAFt \u0111\u1EA7u
21
21
  M_EASY_FILTER_POPOVER_FAVORITE_TITLE=C\u00E1c truy v\u1EA5n \u01B0a th\u00EDch
22
22
  M_EASY_FILTER_POPOVER_LAST_USED=C\u00E1c truy v\u1EA5n \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng l\u1EA7n cu\u1ED1i
23
23
  M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=Kh\u00F4ng c\u00F3 truy v\u1EA5n \u01B0a th\u00EDch
24
- M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Th\u00EAm c\u00E1c truy v\u1EA5n v\u00E0o m\u1EE5c \u01B0a th\u00EDch c\u1EE7a b\u1EA1n
24
+ M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Th\u00EAm truy v\u1EA5n v\u00E0o m\u1EE5c \u01B0a th\u00EDch c\u1EE7a b\u1EA1n.
25
25
  M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=Truy v\u1EA5n \u0111\u00E3 s\u1EED d\u1EE5ng l\u1EA7n cu\u1ED1i c\u1EE7a b\u1EA1n s\u1EBD \u0111\u01B0\u1EE3c hi\u1EC3n th\u1ECB \u1EDF \u0111\u00E2y.
26
26
  M_EASY_FILTER_POPOVER_AI_TITLE=\u0110\u01B0\u1EE3c t\u1EA1o b\u1EB1ng AI
27
27
  M_EASY_FILTER_POPOVER_AI_TEXT_1=N\u1ED9i dung \u0111\u01B0\u1EE3c t\u1EA1o m\u1ED9t ph\u1EA7n ho\u1EB7c to\u00E0n b\u1ED9 b\u1EB1ng c\u00F4ng ngh\u1EC7 tr\u00ED tu\u1EC7 nh\u00E2n t\u1EA1o (AI).
28
28
  M_EASY_FILTER_POPOVER_AI_TEXT_2=N\u1ED9i dung do AI t\u1EA1o ra c\u00F3 th\u1EC3 ch\u1EE9a th\u00F4ng tin kh\u00F4ng ch\u00EDnh x\u00E1c do s\u1EED d\u1EE5ng nhi\u1EC1u ngu\u1ED3n th\u00F4ng tin. H\u00E3y x\u00E1c minh k\u1EBFt qu\u1EA3 tr\u01B0\u1EDBc khi s\u1EED d\u1EE5ng.
29
29
  M_EASY_FILTER_POPOVER_CLOSE=\u0110o\u0301ng
30
- M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Kh\u00F4ng c\u00F3 truy v\u1EA5n n\u00E0o \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng l\u1EA7n cu\u1ED1i
30
+ M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Kh\u00F4ng c\u00F3 truy v\u1EA5n \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng l\u1EA7n cu\u1ED1i
31
31
  M_EASY_FILTER_FILLED_STAR=Loa\u0323i bo\u0309 kho\u0309i mu\u0323c \u01B0a thi\u0301ch
32
32
  M_EASY_FILTER_EMPTY_START=Th\u00EAm va\u0300o mu\u0323c \u01B0a thi\u0301ch
33
- T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0110\u1EC3 di chuy\u1EC3n \u0111\u1EBFn danh s\u00E1ch c\u00E1c truy v\u1EA5n \u01B0a th\u00EDch v\u00E0 c\u00E1c truy v\u1EA5n \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng l\u1EA7n cu\u1ED1i v\u00E0 nh\u1EA5n ph\u00EDm ArrowDown
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0110\u1EC3 di chuy\u1EC3n \u0111\u1EBFn danh s\u00E1ch c\u00E1c truy v\u1EA5n \u01B0a th\u00EDch v\u00E0 c\u00E1c truy v\u1EA5n \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng g\u1EA7n \u0111\u00E2y nh\u1EA5t, h\u00E3y nh\u1EA5n ph\u00EDm M\u0169i t\u00EAn xu\u1ED1ng
34
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Ch\u1EC9 c\u00F3 th\u1EC3 \u00E1p d\u1EE5ng m\u1ED9t gi\u00E1 tr\u1ECB duy nh\u1EA5t cho \u0111i\u1EC1u sau \u0111\u00E2y\: {0}
35
+ M_EASY_FILTER_NON_FILTERABLE=B\u1EA1n kh\u00F4ng th\u1EC3 l\u1ECDc thu\u1ED9c t\u00EDnh sau \u0111\u00E2y trong \u1EE9ng d\u1EE5ng n\u00E0y\: {0}
36
+ M_EASY_FILTER_SINGLE_RANGE=L\u01B0u \u00FD r\u1EB1ng ch\u1EC9 c\u00F3 m\u1ED9t \u0111i\u1EC1u ki\u1EC7n duy nh\u1EA5t c\u00F3 th\u1EC3 \u0111\u01B0\u1EE3c \u00E1p d\u1EE5ng cho c\u00E1c m\u1EE5c sau\: {0}
37
+ M_EASY_FILTER_HIDDEN_FILTER=B\u1EA1n kh\u00F4ng th\u1EC3 l\u1ECDc thu\u1ED9c t\u00EDnh sau \u0111\u00E2y trong \u1EE9ng d\u1EE5ng n\u00E0y\: {0}
35
38
  C_SHORTCUT_TITLE=Ph\u00EDm t\u1EAFt
36
39
  C_SHORTCUT_PLACEHOLDER=T\u00ECm ph\u00EDm t\u1EAFt
37
40
  C_SHORTCUT_NODATA=T\u1EADp trung v\u00E0o m\u1ED9t ph\u1EA7n m\u00E0n h\u00ECnh \u0111\u1EC3 xem ph\u00EDm t\u1EAFt
@@ -14,14 +14,14 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
14
14
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=\u7B80\u6613\u8FC7\u6EE4\u5668
15
15
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=\u5C06\u7B80\u6613\u8FC7\u6EE4\u5668\u8BBE\u4E3A\u7F3A\u7701\u8FC7\u6EE4\u9009\u9879\u3002
16
16
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=\u5728\u7B80\u6613\u8FC7\u6EE4\u5668\u7684\u201C\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8BE2\u201D\u4E0B\u4FDD\u7559\u6700\u8FD1\u4F7F\u7528\u7684\u67E5\u8BE2\u3002
17
- M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u7EF4\u62A4\u8FC7\u6EE4\u6761\u4EF6\u7684\u503C
17
+ M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u4E3A\u6B64\u5F3A\u5236\u8FC7\u6EE4\u5668\u9009\u62E9\u503C\u3002
18
18
  M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=\uFF08\u9009\u62E9\u503C\uFF09
19
19
  M_EASY_FILTER_FILTER_SET_AI=\u8FC7\u6EE4\u5668\uFF1A
20
20
  M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=\u521D\u5B66\u5EFA\u8BAE
21
21
  M_EASY_FILTER_POPOVER_FAVORITE_TITLE=\u6536\u85CF\u7684\u67E5\u8BE2
22
22
  M_EASY_FILTER_POPOVER_LAST_USED=\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8BE2
23
23
  M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=\u65E0\u6536\u85CF\u7684\u67E5\u8BE2
24
- M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u5411\u6536\u85CF\u5939\u6DFB\u52A0\u67E5\u8BE2
24
+ M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u5411\u6536\u85CF\u5939\u6DFB\u52A0\u67E5\u8BE2\u3002
25
25
  M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8BE2\u5C06\u663E\u793A\u5728\u6B64\u5904\u3002
26
26
  M_EASY_FILTER_POPOVER_AI_TITLE=\u4F7F\u7528 AI \u521B\u5EFA
27
27
  M_EASY_FILTER_POPOVER_AI_TEXT_1=\u5185\u5BB9\u90E8\u5206\u6216\u5168\u90E8\u7531\u4EBA\u5DE5\u667A\u80FD (AI) \u6280\u672F\u751F\u6210\u3002
@@ -32,6 +32,9 @@ M_EASY_FILTER_FILLED_STAR=\u4ECE\u6536\u85CF\u5939\u79FB\u9664
32
32
  M_EASY_FILTER_EMPTY_START=\u6DFB\u52A0\u5230\u6536\u85CF\u5939
33
33
  T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u8981\u79FB\u52A8\u5230\u6536\u85CF\u7684\u67E5\u8BE2\u548C\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8BE2\u5217\u8868\uFF0C\u8BF7\u6309\u5411\u4E0B\u7BAD\u5934\u952E
34
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u53EA\u80FD\u5BF9\u4EE5\u4E0B\u9879\u76EE\u5E94\u7528\u5355\u4E2A\u503C\uFF1A{0}
35
+ M_EASY_FILTER_NON_FILTERABLE=\u65E0\u6CD5\u5728\u6B64\u5E94\u7528\u7A0B\u5E8F\u4E2D\u5BF9\u4EE5\u4E0B\u5C5E\u6027\u8FDB\u884C\u8FC7\u6EE4\uFF1A{0}
36
+ M_EASY_FILTER_SINGLE_RANGE=\u8BF7\u6CE8\u610F\uFF0C\u53EA\u80FD\u5BF9\u4EE5\u4E0B\u9879\u76EE\u5E94\u7528\u5355\u4E2A\u6761\u4EF6\uFF1A{0}
37
+ M_EASY_FILTER_HIDDEN_FILTER=\u65E0\u6CD5\u5728\u6B64\u5E94\u7528\u7A0B\u5E8F\u4E2D\u5BF9\u4EE5\u4E0B\u5C5E\u6027\u8FDB\u884C\u8FC7\u6EE4\uFF1A{0}
35
38
  C_SHORTCUT_TITLE=\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F
36
39
  C_SHORTCUT_PLACEHOLDER=\u67E5\u627E\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F
37
40
  C_SHORTCUT_NODATA=\u805A\u7126\u4E8E\u90E8\u5206\u5C4F\u5E55\u4EE5\u67E5\u770B\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F
@@ -14,14 +14,14 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
14
14
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=\u7C21\u6613\u7BE9\u9078
15
15
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=\u5C07\u7C21\u6613\u7BE9\u9078\u8A2D\u70BA\u9810\u8A2D\u7BE9\u9078\u9078\u9805\u3002
16
16
  M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=\u5C07\u300C\u6211\u6700\u8FD1\u7684\u67E5\u8A62\u300D\u4FDD\u7559\u5728\u300C\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8A62\u300D\u4E0B\u7684\u7C21\u6613\u7BE9\u9078\u4E2D\u3002
17
- M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u8ACB\u7DAD\u8B77\u7BE9\u9078\u6E96\u5247\u503C
18
- M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(\u9078\u64C7\u503C)
17
+ M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u8ACB\u9078\u64C7\u6B64\u5FC5\u8981\u7BE9\u9078\u5668\u7684\u503C\u3002
18
+ M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(\u8ACB\u9078\u64C7\u503C)
19
19
  M_EASY_FILTER_FILTER_SET_AI=\u7BE9\u9078\uFF1A
20
20
  M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=\u5354\u52A9\u60A8\u958B\u59CB\u7684\u5EFA\u8B70
21
21
  M_EASY_FILTER_POPOVER_FAVORITE_TITLE=\u6700\u611B\u7684\u67E5\u8A62
22
22
  M_EASY_FILTER_POPOVER_LAST_USED=\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8A62
23
23
  M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=\u6C92\u6709\u6700\u611B\u7684\u67E5\u8A62
24
- M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u5C07\u67E5\u8A62\u65B0\u589E\u81F3\u60A8\u7684\u6700\u611B
24
+ M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u8ACB\u5C07\u67E5\u8A62\u65B0\u589E\u81F3\u60A8\u7684\u6700\u611B\u3002
25
25
  M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=\u60A8\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8A62\u5C07\u6703\u5728\u6B64\u8655\u986F\u793A\u3002
26
26
  M_EASY_FILTER_POPOVER_AI_TITLE=\u5DF2\u4F7F\u7528 AI \u5EFA\u7ACB
27
27
  M_EASY_FILTER_POPOVER_AI_TEXT_1=\u672C\u5167\u5BB9\u90E8\u4EFD\u6216\u5168\u90E8\u662F\u7531\u4EBA\u5DE5\u667A\u6167 (AI) \u6280\u8853\u7522\u751F\u3002
@@ -30,8 +30,11 @@ M_EASY_FILTER_POPOVER_CLOSE=\u95DC\u9589
30
30
  M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=\u6C92\u6709\u4E0A\u6B21\u4F7F\u7528\u7684\u67E5\u8A62
31
31
  M_EASY_FILTER_FILLED_STAR=\u81EA\u6700\u611B\u4E2D\u79FB\u9664
32
32
  M_EASY_FILTER_EMPTY_START=\u65B0\u589E\u81F3\u6700\u611B
33
- T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u82E5\u8981\u79FB\u5230\u6700\u611B\u67E5\u8A62\u6E05\u55AE\u548C\u6700\u5F8C\u4F7F\u7528\u7684\u67E5\u8A62\uFF0C\u8ACB\u6309 ArrowDown \u9375
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u82E5\u8981\u79FB\u5230\u6700\u611B\u67E5\u8A62\u6E05\u55AE\u548C\u6700\u5F8C\u4F7F\u7528\u7684\u67E5\u8A62\uFF0C\u8ACB\u6309 [\u5411\u4E0B\u9375]
34
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u53EA\u80FD\u5C07\u4E00\u500B\u55AE\u4E00\u503C\u5957\u7528\u5230\u4E0B\u5217\uFF1A{0}
35
+ M_EASY_FILTER_NON_FILTERABLE=\u60A8\u7121\u6CD5\u5728\u6B64\u61C9\u7528\u7A0B\u5F0F\u4E2D\u7BE9\u9078\u4E0B\u5217\u5C6C\u6027\uFF1A{0}
36
+ M_EASY_FILTER_SINGLE_RANGE=\u8ACB\u6CE8\u610F\uFF0C\u53EA\u80FD\u5C07\u4E00\u500B\u55AE\u4E00\u689D\u4EF6\u5957\u7528\u5230\u4E0B\u5217\uFF1A{0}
37
+ M_EASY_FILTER_HIDDEN_FILTER=\u60A8\u7121\u6CD5\u5728\u6B64\u61C9\u7528\u7A0B\u5F0F\u4E2D\u7BE9\u9078\u4E0B\u5217\u5C6C\u6027\uFF1A{0}
35
38
  C_SHORTCUT_TITLE=\u9375\u76E4\u6377\u5F91
36
39
  C_SHORTCUT_PLACEHOLDER=\u5C0B\u627E\u9375\u76E4\u6377\u5F91
37
40
  C_SHORTCUT_NODATA=\u5C07\u7126\u9EDE\u653E\u5728\u756B\u9762\u4EE5\u67E5\u770B\u9375\u76E4\u6377\u5F91
@@ -13,7 +13,6 @@ sap.ui.define(["sap/base/Log", "sap/base/security/encodeURL", "sap/fe/base/Class
13
13
  /**
14
14
  * Provides a dialog to explain the shortcuts to the user.
15
15
  * This dialog will be registered in the shell user menu and will open as an independent window.
16
- * @experimental
17
16
  */
18
17
  let ShortcutExplanationProvider = (_dec = defineUI5Class("sap.fe.controls.shortcuts.ShortcutExplanationProvider"), _dec(_class = (_ShortcutExplanationProvider = /*#__PURE__*/function (_ManagedObject) {
19
18
  function ShortcutExplanationProvider() {
@@ -35,7 +34,8 @@ sap.ui.define(["sap/base/Log", "sap/base/security/encodeURL", "sap/fe/base/Class
35
34
  if (left + windowWidth > window.screen.availWidth) {
36
35
  left = window.screen.availWidth - windowWidth;
37
36
  }
38
- const theme = Theming.getTheme();
37
+ let theme = Theming.getTheme();
38
+ theme = this._sanitizeTheme(theme);
39
39
  const url = sap.ui.require.toUrl("sap/fe/controls/shortcuts/popup/index.html");
40
40
  const localOrigin = window.location.protocol + "//" + window.location.host;
41
41
  // We pass the theme and the origin to the popup so that it can communicate safely with the parent
@@ -72,6 +72,41 @@ sap.ui.define(["sap/base/Log", "sap/base/security/encodeURL", "sap/fe/base/Class
72
72
  myWin.close();
73
73
  };
74
74
  }
75
+ }
76
+
77
+ /**
78
+ * Sanitizes the theme name to ensure it starts with "sap-".
79
+ * If the theme does not start with "sap-", it tries to get the theme from the computed styles.
80
+ * If it still does not find a valid theme, it defaults to "sap_horizon".
81
+ * This is to ensure that the popup always uses a valid theme.
82
+ * @param theme The theme name to sanitize
83
+ * @returns The sanitized theme name
84
+ * @private
85
+ */;
86
+ _proto._sanitizeTheme = function _sanitizeTheme(theme) {
87
+ if (!theme.startsWith("sap_")) {
88
+ try {
89
+ const computedStyles = getComputedStyle(document.documentElement);
90
+ theme = computedStyles.getPropertyValue("--sapSapThemeId");
91
+ if (!theme) {
92
+ const themeMetadata = computedStyles.getPropertyValue("--sapThemeMetaData-UI5-sap-ui-core");
93
+ if (themeMetadata) {
94
+ const themeMatch = JSON.parse(themeMetadata);
95
+ if (themeMatch && themeMatch.Extends && themeMatch.Extends.length > 0) {
96
+ theme = themeMatch.Extends[0];
97
+ }
98
+ }
99
+ }
100
+ } catch (e) {
101
+ Log.info("Cannot get theme from computed styles", e instanceof Error ? e.message : String(e));
102
+ theme = "sap_horizon";
103
+ }
104
+ if (!theme || !theme.startsWith("sap_")) {
105
+ // Final fallback to sap_horizon
106
+ theme = "sap_horizon";
107
+ }
108
+ }
109
+ return theme;
75
110
  };
76
111
  /**
77
112
  * Creates or returns the instance of the ShortcutExplanationProvider.
@@ -134,4 +169,4 @@ sap.ui.define(["sap/base/Log", "sap/base/security/encodeURL", "sap/fe/base/Class
134
169
  _exports = ShortcutExplanationProvider;
135
170
  return _exports;
136
171
  }, false);
137
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIiwiX01hbmFnZWRPYmplY3QiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9wb3B1cElkeCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRTaGVsbERpYWxvZ0NvbnRlbnQiLCJ3aW5kb3dXaWR0aCIsImxlZnQiLCJ3aW5kb3ciLCJzY3JlZW5MZWZ0Iiwib3V0ZXJXaWR0aCIsInNjcmVlbiIsImF2YWlsV2lkdGgiLCJ0aGVtZSIsIlRoZW1pbmciLCJnZXRUaGVtZSIsInVybCIsInNhcCIsInVpIiwicmVxdWlyZSIsInRvVXJsIiwibG9jYWxPcmlnaW4iLCJsb2NhdGlvbiIsInByb3RvY29sIiwiaG9zdCIsInBhcmFtcyIsImVuY29kZVVSTCIsIm15V2luIiwib3BlbiIsInNjcmVlblRvcCIsImhhbmRsZU1lc3NhZ2VSZWNlaXZlZCIsIm1lc3NhZ2VFdmVudCIsIm9yaWdpbiIsIm1lc3NhZ2VEYXRhIiwiZGF0YSIsInNlcnZpY2UiLCJtZXNzYWdlUG9ydCIsInBvcnRzIiwicG9zdE1lc3NhZ2UiLCJzdGFydHNXaXRoIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9wZW5lciIsImUiLCJMb2ciLCJkZWJ1ZyIsIkVycm9yIiwibWVzc2FnZSIsIlN0cmluZyIsInNldFRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwiaWQiLCJvbnVubG9hZCIsImNsb3NlIiwiZ2V0SW5zdGFuY2UiLCJzaGVsbENvbnRhaW5lciIsInJlc29sdmVDcmVhdGlvbiIsImluc3RhbmNlIiwiaW5zdGFuY2VQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleHRlbnNpb25TZXJ2aWNlIiwiZ2V0U2VydmljZUFzeW5jIiwic2hlbGxIaXN0b3J5UHJvdmlkZXIiLCJyZWdpc3RlclVzZXJBY3Rpb24iLCJlcnJvciIsInVuZGVmaW5lZCIsInNoZWxsRXh0ZW5zaW9uU2VydmljZSIsInJlc291cmNlQnVuZGxlIiwiTGliIiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJzaGVsbEhpc3RvcnlEaWFsb2ciLCJpc0RpYWxvZ0FkZGVkIiwidXNlckFjdGlvbiIsImNyZWF0ZVVzZXJBY3Rpb24iLCJ0ZXh0IiwiZ2V0VGV4dCIsImljb24iLCJJY29uUG9vbCIsImdldEljb25VUkkiLCJwcmVzcyIsImNvbnRyb2xUeXBlIiwic2hvd0ZvckFsbEFwcHMiLCJlcnIiLCJNYW5hZ2VkT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGVuY29kZVVSTCBmcm9tIFwic2FwL2Jhc2Uvc2VjdXJpdHkvZW5jb2RlVVJMXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgSWNvblBvb2wgZnJvbSBcInNhcC91aS9jb3JlL0ljb25Qb29sXCI7XG5pbXBvcnQgTGliIGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBUaGVtaW5nIGZyb20gXCJzYXAvdWkvY29yZS9UaGVtaW5nXCI7XG5pbXBvcnQgdHlwZSBDb250YWluZXIgZnJvbSBcInNhcC91c2hlbGwvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb24gZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvRXh0ZW5zaW9uXCI7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBkaWFsb2cgdG8gZXhwbGFpbiB0aGUgc2hvcnRjdXRzIHRvIHRoZSB1c2VyLlxuICogVGhpcyBkaWFsb2cgd2lsbCBiZSByZWdpc3RlcmVkIGluIHRoZSBzaGVsbCB1c2VyIG1lbnUgYW5kIHdpbGwgb3BlbiBhcyBhbiBpbmRlcGVuZGVudCB3aW5kb3cuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5zaG9ydGN1dHMuU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgZXh0ZW5kcyBNYW5hZ2VkT2JqZWN0IHtcblx0cHJpdmF0ZSBfcG9wdXBJZHggPSAwO1xuXG5cdGdldFNoZWxsRGlhbG9nQ29udGVudCgpOiB2b2lkIHtcblx0XHQvLyBQb3NpdGlvbiB0byB0b3AgcmlnaHQgb2YgdGhlIG1haW4gd2luZG93IGlmIHBvc3NpYmxlXG5cdFx0Y29uc3Qgd2luZG93V2lkdGggPSA2MjA7XG5cdFx0bGV0IGxlZnQgPSB3aW5kb3cuc2NyZWVuTGVmdCArIHdpbmRvdy5vdXRlcldpZHRoO1xuXHRcdGlmIChsZWZ0ICsgd2luZG93V2lkdGggPiB3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGgpIHtcblx0XHRcdGxlZnQgPSB3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGggLSB3aW5kb3dXaWR0aDtcblx0XHR9XG5cdFx0Y29uc3QgdGhlbWUgPSBUaGVtaW5nLmdldFRoZW1lKCk7XG5cdFx0Y29uc3QgdXJsID0gc2FwLnVpLnJlcXVpcmUudG9VcmwoXCJzYXAvZmUvY29udHJvbHMvc2hvcnRjdXRzL3BvcHVwL2luZGV4Lmh0bWxcIik7XG5cdFx0Y29uc3QgbG9jYWxPcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcblx0XHQvLyBXZSBwYXNzIHRoZSB0aGVtZSBhbmQgdGhlIG9yaWdpbiB0byB0aGUgcG9wdXAgc28gdGhhdCBpdCBjYW4gY29tbXVuaWNhdGUgc2FmZWx5IHdpdGggdGhlIHBhcmVudFxuXHRcdGNvbnN0IHBhcmFtcyA9IFwiP3NhcC11aS14eC1zaG9ydGN1dC1vcmlnaW49XCIgKyBlbmNvZGVVUkwobG9jYWxPcmlnaW4pICsgXCImc2FwLXVpLXRoZW1lPVwiICsgdGhlbWU7XG5cdFx0Y29uc3QgbXlXaW4gPSB3aW5kb3cub3Blbihcblx0XHRcdHVybCArIHBhcmFtcyxcblx0XHRcdFwiX2JsYW5rXCIsXG5cdFx0XHRgcG9wdXAsdG9vbGJhcj1ubyxtZW51YmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sd2lkdGg9JHt3aW5kb3dXaWR0aH0saGVpZ2h0PTU1MCx0b3A9JHt3aW5kb3cuc2NyZWVuVG9wfSxsZWZ0PSR7bGVmdH1gXG5cdFx0KTtcblx0XHRpZiAobXlXaW4pIHtcblx0XHRcdGNvbnN0IGhhbmRsZU1lc3NhZ2VSZWNlaXZlZCA9IChtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAobG9jYWxPcmlnaW4gPT09IG1lc3NhZ2VFdmVudC5vcmlnaW4pIHtcblx0XHRcdFx0XHRjb25zdCBtZXNzYWdlRGF0YSA9IG1lc3NhZ2VFdmVudD8uZGF0YTtcblx0XHRcdFx0XHRpZiAobWVzc2FnZURhdGEuc2VydmljZSA9PT0gXCJzYXAudWkuaW50ZXJhY3Rpb24uTWVzc2FnZVBvcnRSZWFkeVwiKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBtZXNzYWdlUG9ydCA9IG1lc3NhZ2VFdmVudC5wb3J0c1swXTsgLy8gUmVtZW1iZXIgdGhlIHBvcnRcblx0XHRcdFx0XHRcdG15V2luLnBvc3RNZXNzYWdlKHsgc2VydmljZTogXCJzYXAudWkuaW50ZXJhY3Rpb24uTWVzc2FnZVBvcnRSZWFkeVwiIH0sIHVybC5zdGFydHNXaXRoKFwiL1wiKSA/IGxvY2FsT3JpZ2luIDogdXJsLCBbXG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2VQb3J0XG5cdFx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVNZXNzYWdlUmVjZWl2ZWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG15V2luLm9wZW5lciA9IG51bGw7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdC8vIFRoaXMgbWlnaHQgZmFpbCB3aGVuIHRoZXJlIGlzIENPUlMgaW52b2x2ZWQgYW55d2F5IGFuZCB3ZSBjYW4ndCBhY2Nlc3MgdGhlIG9wZW5lciBhbnl3YXlcblx0XHRcdFx0TG9nLmRlYnVnKFwiQ2Fubm90IHNldCBvcGVuZXIgdG8gbnVsbFwiLCBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSkpO1xuXHRcdFx0fVxuXG5cdFx0XHRzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcblx0XHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZU1lc3NhZ2VSZWNlaXZlZCk7XG5cdFx0XHRcdHdpbmRvdy5wb3N0TWVzc2FnZShcblx0XHRcdFx0XHR7IGlkOiBcInNhcC5mZS5pbnRlcmFjdGlvbi5Qb3B1cFwiICsgdGhpcy5fcG9wdXBJZHgrKywgc2VydmljZTogXCJzYXAudWkuaW50ZXJhY3Rpb24uUmVxdWVzdE1lc3NhZ2VQb3J0XCIgfSxcblx0XHRcdFx0XHRsb2NhbE9yaWdpblxuXHRcdFx0XHQpO1xuXHRcdFx0fSwgMTUwMCk7IC8vIGdpdmUgYSBiaXQgb2YgdGltZSBmb3IgdGhlIHBvcHVwIHRvIGJlIHJlYWR5XG5cdFx0XHQvLyBXZSBjYW4ndCByZWx5IG9uIHRoZSBvbmxvYWQgb2YgdGhlIHBvcHVwIGJlY2F1c2UgaXQgaXMgbm90IGFsd2F5cyBhdmFpbGJsZSBpbiBDT1JTIHNjZW5hcmlvc1xuXHRcdFx0d2luZG93Lm9udW5sb2FkID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuXHRcdFx0XHRteVdpbi5jbG9zZSgpO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRzdGF0aWMgaW5zdGFuY2VQcm9taXNlOiBQcm9taXNlPFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZD47XG5cblx0c3RhdGljIGluc3RhbmNlOiBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgfCB1bmRlZmluZWQ7XG5cblx0c3RhdGljIGlzRGlhbG9nQWRkZWQgPSBmYWxzZTtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBvciByZXR1cm5zIHRoZSBpbnN0YW5jZSBvZiB0aGUgU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyLlxuXHQgKiBUaGlzIGlzIGEgc2luZ2xldG9uIHRvIGVuc3VyZSB3ZSBvbmx5IGhhdmUgb25lIGluc3RhbmNlIG9mIHRoZSBkaWFsb2cuXG5cdCAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBvZiB0aGUgU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgZ2V0SW5zdGFuY2UoKTogUHJvbWlzZTxTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgfCB1bmRlZmluZWQ+IHtcblx0XHQvLyBUZXN0IHRoZSBzaGVsbCBleGlzdGVuY2UgYW5kIHJlZ2lzdGVyIHRoZSBleHRlbnNpb25cblx0XHRjb25zdCBzaGVsbENvbnRhaW5lciA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIikgYXMgQ29udGFpbmVyIHwgdW5kZWZpbmVkO1xuXHRcdGxldCByZXNvbHZlQ3JlYXRpb246IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuXHRcdHRyeSB7XG5cdFx0XHRpZiAoc2hlbGxDb250YWluZXIgJiYgIXRoaXMuaW5zdGFuY2UpIHtcblx0XHRcdFx0dGhpcy5pbnN0YW5jZVByb21pc2UgPSBuZXcgUHJvbWlzZTxTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgfCB1bmRlZmluZWQ+KChyZXNvbHZlKSA9PiB7XG5cdFx0XHRcdFx0cmVzb2x2ZUNyZWF0aW9uID0gcmVzb2x2ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGNvbnN0IGV4dGVuc2lvblNlcnZpY2UgPSAoYXdhaXQgc2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiRXh0ZW5zaW9uXCIpKSBhcyBFeHRlbnNpb24gfCB1bmRlZmluZWQ7XG5cdFx0XHRcdGlmIChleHRlbnNpb25TZXJ2aWNlKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc2hlbGxIaXN0b3J5UHJvdmlkZXIgPSBhd2FpdCBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIucmVnaXN0ZXJVc2VyQWN0aW9uKGV4dGVuc2lvblNlcnZpY2UpO1xuXHRcdFx0XHRcdHRoaXMuaW5zdGFuY2UgPSBzaGVsbEhpc3RvcnlQcm92aWRlcjtcblx0XHRcdFx0XHRyZXNvbHZlQ3JlYXRpb24hKHNoZWxsSGlzdG9yeVByb3ZpZGVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdExvZy5lcnJvcihcIkNhbm5vdCByZWdpc3RlciBleHRlbnNpb25cIiwgZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpKTtcblx0XHRcdHJlc29sdmVDcmVhdGlvbj8uKHVuZGVmaW5lZCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmluc3RhbmNlUHJvbWlzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIHRoZSB1c2VyIGFjdGlvbiB0byB0aGUgc2hlbGwsIHRoZSBhY3Rpb24gd2lsbCBvcGVuIHRoZSBkaWFsb2cgd2l0aCB0aGUgc2hvcnRjdXRzLlxuXHQgKiBAcGFyYW0gc2hlbGxFeHRlbnNpb25TZXJ2aWNlIFRoZSBleHRlbnNpb24gc2VydmljZSB0byBhZGQgdGhlIHVzZXIgYWN0aW9uIHRvIHRoZSBzaGVsbFxuXHQgKiBAcmV0dXJucyBUaGUgZGlhbG9nIHdpdGggdGhlIHNob3J0Y3V0c1xuXHQgKi9cblx0c3RhdGljIGFzeW5jIHJlZ2lzdGVyVXNlckFjdGlvbihzaGVsbEV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvbik6IFByb21pc2U8U2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIHwgdW5kZWZpbmVkPiB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHJlc291cmNlQnVuZGxlID0gTGliLmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvbnRyb2xzXCIpITtcblxuXHRcdFx0Y29uc3Qgc2hlbGxIaXN0b3J5RGlhbG9nID0gbmV3IFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlcigpO1xuXHRcdFx0aWYgKCF0aGlzLmlzRGlhbG9nQWRkZWQpIHtcblx0XHRcdFx0dGhpcy5pc0RpYWxvZ0FkZGVkID0gdHJ1ZTtcblx0XHRcdFx0Y29uc3QgdXNlckFjdGlvbiA9IGF3YWl0IHNoZWxsRXh0ZW5zaW9uU2VydmljZS5jcmVhdGVVc2VyQWN0aW9uKFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGlkOiBcInNhcHVpNS5zaG9ydGN1dC5leHBsYW5hdGlvbi50cmlnZ2VyXCIsXG5cdFx0XHRcdFx0XHR0ZXh0OiByZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19TSE9SVENVVF9USVRMRVwiKSxcblx0XHRcdFx0XHRcdGljb246IEljb25Qb29sLmdldEljb25VUkkoXCJrZXlib2FyZC1hbmQtbW91c2VcIiksXG5cdFx0XHRcdFx0XHRwcmVzczogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRzaGVsbEhpc3RvcnlEaWFsb2cuZ2V0U2hlbGxEaWFsb2dDb250ZW50KCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRjb250cm9sVHlwZTogXCJzYXAubS5CdXR0b25cIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0KTtcblx0XHRcdFx0dXNlckFjdGlvbi5zaG93Rm9yQWxsQXBwcygpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHNoZWxsSGlzdG9yeURpYWxvZztcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdExvZy5lcnJvcihcIkNhbm5vdCBhZGQgdXNlciBhY3Rpb25cIiwgZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpKTtcblx0XHR9XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0VBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTXFCQSwyQkFBMkIsSUFBQUMsSUFBQSxHQUQvQ0MsY0FBYyxDQUFDLHVEQUF1RCxDQUFDLEVBQUFELElBQUEsQ0FBQUUsTUFBQSxJQUFBQyw0QkFBQSwwQkFBQUMsY0FBQTtJQUFBLFNBQUFMLDRCQUFBO01BQUEsSUFBQU0sS0FBQTtNQUFBLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFDLElBQUEsT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7UUFBQUYsSUFBQSxDQUFBRSxJQUFBLElBQUFKLFNBQUEsQ0FBQUksSUFBQTtNQUFBO01BQUFOLEtBQUEsR0FBQUQsY0FBQSxDQUFBUSxJQUFBLFVBQUFILElBQUE7TUFBQUosS0FBQSxDQUUvRFEsU0FBUyxHQUFHLENBQUM7TUFBQSxPQUFBUixLQUFBO0lBQUE7SUFBQVMsUUFBQSxHQUFBZiwyQkFBQTtJQUFBZ0IsY0FBQSxDQUFBaEIsMkJBQUEsRUFBQUssY0FBQTtJQUFBLElBQUFZLE1BQUEsR0FBQWpCLDJCQUFBLENBQUFrQixTQUFBO0lBQUFELE1BQUEsQ0FFckJFLHFCQUFxQixHQUFyQixTQUFBQSxxQkFBcUJBLENBQUEsRUFBUztNQUM3QjtNQUNBLE1BQU1DLFdBQVcsR0FBRyxHQUFHO01BQ3ZCLElBQUlDLElBQUksR0FBR0MsTUFBTSxDQUFDQyxVQUFVLEdBQUdELE1BQU0sQ0FBQ0UsVUFBVTtNQUNoRCxJQUFJSCxJQUFJLEdBQUdELFdBQVcsR0FBR0UsTUFBTSxDQUFDRyxNQUFNLENBQUNDLFVBQVUsRUFBRTtRQUNsREwsSUFBSSxHQUFHQyxNQUFNLENBQUNHLE1BQU0sQ0FBQ0MsVUFBVSxHQUFH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
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIiwiX01hbmFnZWRPYmplY3QiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9wb3B1cElkeCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRTaGVsbERpYWxvZ0NvbnRlbnQiLCJ3aW5kb3dXaWR0aCIsImxlZnQiLCJ3aW5kb3ciLCJzY3JlZW5MZWZ0Iiwib3V0ZXJXaWR0aCIsInNjcmVlbiIsImF2YWlsV2lkdGgiLCJ0aGVtZSIsIlRoZW1pbmciLCJnZXRUaGVtZSIsIl9zYW5pdGl6ZVRoZW1lIiwidXJsIiwic2FwIiwidWkiLCJyZXF1aXJlIiwidG9VcmwiLCJsb2NhbE9yaWdpbiIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0IiwicGFyYW1zIiwiZW5jb2RlVVJMIiwibXlXaW4iLCJvcGVuIiwic2NyZWVuVG9wIiwiaGFuZGxlTWVzc2FnZVJlY2VpdmVkIiwibWVzc2FnZUV2ZW50Iiwib3JpZ2luIiwibWVzc2FnZURhdGEiLCJkYXRhIiwic2VydmljZSIsIm1lc3NhZ2VQb3J0IiwicG9ydHMiLCJwb3N0TWVzc2FnZSIsInN0YXJ0c1dpdGgiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib3BlbmVyIiwiZSIsIkxvZyIsImRlYnVnIiwiRXJyb3IiLCJtZXNzYWdlIiwiU3RyaW5nIiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJpZCIsIm9udW5sb2FkIiwiY2xvc2UiLCJjb21wdXRlZFN0eWxlcyIsImdldENvbXB1dGVkU3R5bGUiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImdldFByb3BlcnR5VmFsdWUiLCJ0aGVtZU1ldGFkYXRhIiwidGhlbWVNYXRjaCIsIkpTT04iLCJwYXJzZSIsIkV4dGVuZHMiLCJpbmZvIiwiZ2V0SW5zdGFuY2UiLCJzaGVsbENvbnRhaW5lciIsInJlc29sdmVDcmVhdGlvbiIsImluc3RhbmNlIiwiaW5zdGFuY2VQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleHRlbnNpb25TZXJ2aWNlIiwiZ2V0U2VydmljZUFzeW5jIiwic2hlbGxIaXN0b3J5UHJvdmlkZXIiLCJyZWdpc3RlclVzZXJBY3Rpb24iLCJlcnJvciIsInVuZGVmaW5lZCIsInNoZWxsRXh0ZW5zaW9uU2VydmljZSIsInJlc291cmNlQnVuZGxlIiwiTGliIiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJzaGVsbEhpc3RvcnlEaWFsb2ciLCJpc0RpYWxvZ0FkZGVkIiwidXNlckFjdGlvbiIsImNyZWF0ZVVzZXJBY3Rpb24iLCJ0ZXh0IiwiZ2V0VGV4dCIsImljb24iLCJJY29uUG9vbCIsImdldEljb25VUkkiLCJwcmVzcyIsImNvbnRyb2xUeXBlIiwic2hvd0ZvckFsbEFwcHMiLCJlcnIiLCJNYW5hZ2VkT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGVuY29kZVVSTCBmcm9tIFwic2FwL2Jhc2Uvc2VjdXJpdHkvZW5jb2RlVVJMXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgSWNvblBvb2wgZnJvbSBcInNhcC91aS9jb3JlL0ljb25Qb29sXCI7XG5pbXBvcnQgTGliIGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBUaGVtaW5nIGZyb20gXCJzYXAvdWkvY29yZS9UaGVtaW5nXCI7XG5pbXBvcnQgdHlwZSBDb250YWluZXIgZnJvbSBcInNhcC91c2hlbGwvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb24gZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvRXh0ZW5zaW9uXCI7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBkaWFsb2cgdG8gZXhwbGFpbiB0aGUgc2hvcnRjdXRzIHRvIHRoZSB1c2VyLlxuICogVGhpcyBkaWFsb2cgd2lsbCBiZSByZWdpc3RlcmVkIGluIHRoZSBzaGVsbCB1c2VyIG1lbnUgYW5kIHdpbGwgb3BlbiBhcyBhbiBpbmRlcGVuZGVudCB3aW5kb3cuXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5zaG9ydGN1dHMuU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgZXh0ZW5kcyBNYW5hZ2VkT2JqZWN0IHtcblx0cHJpdmF0ZSBfcG9wdXBJZHggPSAwO1xuXG5cdGdldFNoZWxsRGlhbG9nQ29udGVudCgpOiB2b2lkIHtcblx0XHQvLyBQb3NpdGlvbiB0byB0b3AgcmlnaHQgb2YgdGhlIG1haW4gd2luZG93IGlmIHBvc3NpYmxlXG5cdFx0Y29uc3Qgd2luZG93V2lkdGggPSA2MjA7XG5cdFx0bGV0IGxlZnQgPSB3aW5kb3cuc2NyZWVuTGVmdCArIHdpbmRvdy5vdXRlcldpZHRoO1xuXHRcdGlmIChsZWZ0ICsgd2luZG93V2lkdGggPiB3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGgpIHtcblx0XHRcdGxlZnQgPSB3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGggLSB3aW5kb3dXaWR0aDtcblx0XHR9XG5cdFx0bGV0IHRoZW1lID0gVGhlbWluZy5nZXRUaGVtZSgpO1xuXHRcdHRoZW1lID0gdGhpcy5fc2FuaXRpemVUaGVtZSh0aGVtZSk7XG5cdFx0Y29uc3QgdXJsID0gc2FwLnVpLnJlcXVpcmUudG9VcmwoXCJzYXAvZmUvY29udHJvbHMvc2hvcnRjdXRzL3BvcHVwL2luZGV4Lmh0bWxcIik7XG5cdFx0Y29uc3QgbG9jYWxPcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcblx0XHQvLyBXZSBwYXNzIHRoZSB0aGVtZSBhbmQgdGhlIG9yaWdpbiB0byB0aGUgcG9wdXAgc28gdGhhdCBpdCBjYW4gY29tbXVuaWNhdGUgc2FmZWx5IHdpdGggdGhlIHBhcmVudFxuXHRcdGNvbnN0IHBhcmFtcyA9IFwiP3NhcC11aS14eC1zaG9ydGN1dC1vcmlnaW49XCIgKyBlbmNvZGVVUkwobG9jYWxPcmlnaW4pICsgXCImc2FwLXVpLXRoZW1lPVwiICsgdGhlbWU7XG5cdFx0Y29uc3QgbXlXaW4gPSB3aW5kb3cub3Blbihcblx0XHRcdHVybCArIHBhcmFtcyxcblx0XHRcdFwiX2JsYW5rXCIsXG5cdFx0XHRgcG9wdXAsdG9vbGJhcj1ubyxtZW51YmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sd2lkdGg9JHt3aW5kb3dXaWR0aH0saGVpZ2h0PTU1MCx0b3A9JHt3aW5kb3cuc2NyZWVuVG9wfSxsZWZ0PSR7bGVmdH1gXG5cdFx0KTtcblx0XHRpZiAobXlXaW4pIHtcblx0XHRcdGNvbnN0IGhhbmRsZU1lc3NhZ2VSZWNlaXZlZCA9IChtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAobG9jYWxPcmlnaW4gPT09IG1lc3NhZ2VFdmVudC5vcmlnaW4pIHtcblx0XHRcdFx0XHRjb25zdCBtZXNzYWdlRGF0YSA9IG1lc3NhZ2VFdmVudD8uZGF0YTtcblx0XHRcdFx0XHRpZiAobWVzc2FnZURhdGEuc2VydmljZSA9PT0gXCJzYXAudWkuaW50ZXJhY3Rpb24uTWVzc2FnZVBvcnRSZWFkeVwiKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBtZXNzYWdlUG9ydCA9IG1lc3NhZ2VFdmVudC5wb3J0c1swXTsgLy8gUmVtZW1iZXIgdGhlIHBvcnRcblx0XHRcdFx0XHRcdG15V2luLnBvc3RNZXNzYWdlKHsgc2VydmljZTogXCJzYXAudWkuaW50ZXJhY3Rpb24uTWVzc2FnZVBvcnRSZWFkeVwiIH0sIHVybC5zdGFydHNXaXRoKFwiL1wiKSA/IGxvY2FsT3JpZ2luIDogdXJsLCBbXG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2VQb3J0XG5cdFx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVNZXNzYWdlUmVjZWl2ZWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG15V2luLm9wZW5lciA9IG51bGw7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdC8vIFRoaXMgbWlnaHQgZmFpbCB3aGVuIHRoZXJlIGlzIENPUlMgaW52b2x2ZWQgYW55d2F5IGFuZCB3ZSBjYW4ndCBhY2Nlc3MgdGhlIG9wZW5lciBhbnl3YXlcblx0XHRcdFx0TG9nLmRlYnVnKFwiQ2Fubm90IHNldCBvcGVuZXIgdG8gbnVsbFwiLCBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSkpO1xuXHRcdFx0fVxuXG5cdFx0XHRzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcblx0XHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZU1lc3NhZ2VSZWNlaXZlZCk7XG5cdFx0XHRcdHdpbmRvdy5wb3N0TWVzc2FnZShcblx0XHRcdFx0XHR7IGlkOiBcInNhcC5mZS5pbnRlcmFjdGlvbi5Qb3B1cFwiICsgdGhpcy5fcG9wdXBJZHgrKywgc2VydmljZTogXCJzYXAudWkuaW50ZXJhY3Rpb24uUmVxdWVzdE1lc3NhZ2VQb3J0XCIgfSxcblx0XHRcdFx0XHRsb2NhbE9yaWdpblxuXHRcdFx0XHQpO1xuXHRcdFx0fSwgMTUwMCk7IC8vIGdpdmUgYSBiaXQgb2YgdGltZSBmb3IgdGhlIHBvcHVwIHRvIGJlIHJlYWR5XG5cdFx0XHQvLyBXZSBjYW4ndCByZWx5IG9uIHRoZSBvbmxvYWQgb2YgdGhlIHBvcHVwIGJlY2F1c2UgaXQgaXMgbm90IGFsd2F5cyBhdmFpbGJsZSBpbiBDT1JTIHNjZW5hcmlvc1xuXHRcdFx0d2luZG93Lm9udW5sb2FkID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuXHRcdFx0XHRteVdpbi5jbG9zZSgpO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU2FuaXRpemVzIHRoZSB0aGVtZSBuYW1lIHRvIGVuc3VyZSBpdCBzdGFydHMgd2l0aCBcInNhcC1cIi5cblx0ICogSWYgdGhlIHRoZW1lIGRvZXMgbm90IHN0YXJ0IHdpdGggXCJzYXAtXCIsIGl0IHRyaWVzIHRvIGdldCB0aGUgdGhlbWUgZnJvbSB0aGUgY29tcHV0ZWQgc3R5bGVzLlxuXHQgKiBJZiBpdCBzdGlsbCBkb2VzIG5vdCBmaW5kIGEgdmFsaWQgdGhlbWUsIGl0IGRlZmF1bHRzIHRvIFwic2FwX2hvcml6b25cIi5cblx0ICogVGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcG9wdXAgYWx3YXlzIHVzZXMgYSB2YWxpZCB0aGVtZS5cblx0ICogQHBhcmFtIHRoZW1lIFRoZSB0aGVtZSBuYW1lIHRvIHNhbml0aXplXG5cdCAqIEByZXR1cm5zIFRoZSBzYW5pdGl6ZWQgdGhlbWUgbmFtZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBfc2FuaXRpemVUaGVtZSh0aGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoIXRoZW1lLnN0YXJ0c1dpdGgoXCJzYXBfXCIpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBjb21wdXRlZFN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcblx0XHRcdFx0dGhlbWUgPSBjb21wdXRlZFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1zYXBTYXBUaGVtZUlkXCIpO1xuXHRcdFx0XHRpZiAoIXRoZW1lKSB7XG5cdFx0XHRcdFx0Y29uc3QgdGhlbWVNZXRhZGF0YSA9IGNvbXB1dGVkU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoXCItLXNhcFRoZW1lTWV0YURhdGEtVUk1LXNhcC11aS1jb3JlXCIpO1xuXHRcdFx0XHRcdGlmICh0aGVtZU1ldGFkYXRhKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB0aGVtZU1hdGNoID0gSlNPTi5wYXJzZSh0aGVtZU1ldGFkYXRhKTtcblx0XHRcdFx0XHRcdGlmICh0aGVtZU1hdGNoICYmIHRoZW1lTWF0Y2guRXh0ZW5kcyAmJiB0aGVtZU1hdGNoLkV4dGVuZHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0XHR0aGVtZSA9IHRoZW1lTWF0Y2guRXh0ZW5kc1swXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0TG9nLmluZm8oXCJDYW5ub3QgZ2V0IHRoZW1lIGZyb20gY29tcHV0ZWQgc3R5bGVzXCIsIGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSk7XG5cdFx0XHRcdHRoZW1lID0gXCJzYXBfaG9yaXpvblwiO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGVtZSB8fCAhdGhlbWUuc3RhcnRzV2l0aChcInNhcF9cIikpIHtcblx0XHRcdFx0Ly8gRmluYWwgZmFsbGJhY2sgdG8gc2FwX2hvcml6b25cblx0XHRcdFx0dGhlbWUgPSBcInNhcF9ob3Jpem9uXCI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGVtZTtcblx0fVxuXG5cdHN0YXRpYyBpbnN0YW5jZVByb21pc2U6IFByb21pc2U8U2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIHwgdW5kZWZpbmVkPjtcblxuXHRzdGF0aWMgaW5zdGFuY2U6IFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZDtcblxuXHRzdGF0aWMgaXNEaWFsb2dBZGRlZCA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIG9yIHJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIuXG5cdCAqIFRoaXMgaXMgYSBzaW5nbGV0b24gdG8gZW5zdXJlIHdlIG9ubHkgaGF2ZSBvbmUgaW5zdGFuY2Ugb2YgdGhlIGRpYWxvZy5cblx0ICogQHJldHVybnMgVGhlIGluc3RhbmNlIG9mIHRoZSBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXJcblx0ICovXG5cdHN0YXRpYyBhc3luYyBnZXRJbnN0YW5jZSgpOiBQcm9taXNlPFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZD4ge1xuXHRcdC8vIFRlc3QgdGhlIHNoZWxsIGV4aXN0ZW5jZSBhbmQgcmVnaXN0ZXIgdGhlIGV4dGVuc2lvblxuXHRcdGNvbnN0IHNoZWxsQ29udGFpbmVyID0gc2FwLnVpLnJlcXVpcmUoXCJzYXAvdXNoZWxsL0NvbnRhaW5lclwiKSBhcyBDb250YWluZXIgfCB1bmRlZmluZWQ7XG5cdFx0bGV0IHJlc29sdmVDcmVhdGlvbjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cdFx0dHJ5IHtcblx0XHRcdGlmIChzaGVsbENvbnRhaW5lciAmJiAhdGhpcy5pbnN0YW5jZSkge1xuXHRcdFx0XHR0aGlzLmluc3RhbmNlUHJvbWlzZSA9IG5ldyBQcm9taXNlPFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZD4oKHJlc29sdmUpID0+IHtcblx0XHRcdFx0XHRyZXNvbHZlQ3JlYXRpb24gPSByZXNvbHZlO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Y29uc3QgZXh0ZW5zaW9uU2VydmljZSA9IChhd2FpdCBzaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJFeHRlbnNpb25cIikpIGFzIEV4dGVuc2lvbiB8IHVuZGVmaW5lZDtcblx0XHRcdFx0aWYgKGV4dGVuc2lvblNlcnZpY2UpIHtcblx0XHRcdFx0XHRjb25zdCBzaGVsbEhpc3RvcnlQcm92aWRlciA9IGF3YWl0IFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlci5yZWdpc3RlclVzZXJBY3Rpb24oZXh0ZW5zaW9uU2VydmljZSk7XG5cdFx0XHRcdFx0dGhpcy5pbnN0YW5jZSA9IHNoZWxsSGlzdG9yeVByb3ZpZGVyO1xuXHRcdFx0XHRcdHJlc29sdmVDcmVhdGlvbiEoc2hlbGxIaXN0b3J5UHJvdmlkZXIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IHJlZ2lzdGVyIGV4dGVuc2lvblwiLCBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSkpO1xuXHRcdFx0cmVzb2x2ZUNyZWF0aW9uPy4odW5kZWZpbmVkKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuaW5zdGFuY2VQcm9taXNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgdGhlIHVzZXIgYWN0aW9uIHRvIHRoZSBzaGVsbCwgdGhlIGFjdGlvbiB3aWxsIG9wZW4gdGhlIGRpYWxvZyB3aXRoIHRoZSBzaG9ydGN1dHMuXG5cdCAqIEBwYXJhbSBzaGVsbEV4dGVuc2lvblNlcnZpY2UgVGhlIGV4dGVuc2lvbiBzZXJ2aWNlIHRvIGFkZCB0aGUgdXNlciBhY3Rpb24gdG8gdGhlIHNoZWxsXG5cdCAqIEByZXR1cm5zIFRoZSBkaWFsb2cgd2l0aCB0aGUgc2hvcnRjdXRzXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgcmVnaXN0ZXJVc2VyQWN0aW9uKHNoZWxsRXh0ZW5zaW9uU2VydmljZTogRXh0ZW5zaW9uKTogUHJvbWlzZTxTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgfCB1bmRlZmluZWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcmVzb3VyY2VCdW5kbGUgPSBMaWIuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29udHJvbHNcIikhO1xuXG5cdFx0XHRjb25zdCBzaGVsbEhpc3RvcnlEaWFsb2cgPSBuZXcgU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyKCk7XG5cdFx0XHRpZiAoIXRoaXMuaXNEaWFsb2dBZGRlZCkge1xuXHRcdFx0XHR0aGlzLmlzRGlhbG9nQWRkZWQgPSB0cnVlO1xuXHRcdFx0XHRjb25zdCB1c2VyQWN0aW9uID0gYXdhaXQgc2hlbGxFeHRlbnNpb25TZXJ2aWNlLmNyZWF0ZVVzZXJBY3Rpb24oXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0aWQ6IFwic2FwdWk1LnNob3J0Y3V0LmV4cGxhbmF0aW9uLnRyaWdnZXJcIixcblx0XHRcdFx0XHRcdHRleHQ6IHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX1NIT1JUQ1VUX1RJVExFXCIpLFxuXHRcdFx0XHRcdFx0aWNvbjogSWNvblBvb2wuZ2V0SWNvblVSSShcImtleWJvYXJkLWFuZC1tb3VzZVwiKSxcblx0XHRcdFx0XHRcdHByZXNzOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdHNoZWxsSGlzdG9yeURpYWxvZy5nZXRTaGVsbERpYWxvZ0NvbnRlbnQoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGNvbnRyb2xUeXBlOiBcInNhcC5tLkJ1dHRvblwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXHRcdFx0XHR1c2VyQWN0aW9uLnNob3dGb3JBbGxBcHBzKCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gc2hlbGxIaXN0b3J5RGlhbG9nO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IGFkZCB1c2VyIGFjdGlvblwiLCBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycikpO1xuXHRcdH1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7RUFVQTtBQUNBO0FBQ0E7QUFDQTtFQUhBLElBS3FCQSwyQkFBMkIsSUFBQUMsSUFBQSxHQUQvQ0MsY0FBYyxDQUFDLHVEQUF1RCxDQUFDLEVBQUFELElBQUEsQ0FBQUUs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
@@ -11,7 +11,6 @@ import type Extension from "sap/ushell/services/Extension";
11
11
  /**
12
12
  * Provides a dialog to explain the shortcuts to the user.
13
13
  * This dialog will be registered in the shell user menu and will open as an independent window.
14
- * @experimental
15
14
  */
16
15
  @defineUI5Class("sap.fe.controls.shortcuts.ShortcutExplanationProvider")
17
16
  export default class ShortcutExplanationProvider extends ManagedObject {
@@ -24,7 +23,8 @@ export default class ShortcutExplanationProvider extends ManagedObject {
24
23
  if (left + windowWidth > window.screen.availWidth) {
25
24
  left = window.screen.availWidth - windowWidth;
26
25
  }
27
- const theme = Theming.getTheme();
26
+ let theme = Theming.getTheme();
27
+ theme = this._sanitizeTheme(theme);
28
28
  const url = sap.ui.require.toUrl("sap/fe/controls/shortcuts/popup/index.html");
29
29
  const localOrigin = window.location.protocol + "//" + window.location.host;
30
30
  // We pass the theme and the origin to the popup so that it can communicate safely with the parent
@@ -68,6 +68,41 @@ export default class ShortcutExplanationProvider extends ManagedObject {
68
68
  }
69
69
  }
70
70
 
71
+ /**
72
+ * Sanitizes the theme name to ensure it starts with "sap-".
73
+ * If the theme does not start with "sap-", it tries to get the theme from the computed styles.
74
+ * If it still does not find a valid theme, it defaults to "sap_horizon".
75
+ * This is to ensure that the popup always uses a valid theme.
76
+ * @param theme The theme name to sanitize
77
+ * @returns The sanitized theme name
78
+ * @private
79
+ */
80
+ private _sanitizeTheme(theme: string): string {
81
+ if (!theme.startsWith("sap_")) {
82
+ try {
83
+ const computedStyles = getComputedStyle(document.documentElement);
84
+ theme = computedStyles.getPropertyValue("--sapSapThemeId");
85
+ if (!theme) {
86
+ const themeMetadata = computedStyles.getPropertyValue("--sapThemeMetaData-UI5-sap-ui-core");
87
+ if (themeMetadata) {
88
+ const themeMatch = JSON.parse(themeMetadata);
89
+ if (themeMatch && themeMatch.Extends && themeMatch.Extends.length > 0) {
90
+ theme = themeMatch.Extends[0];
91
+ }
92
+ }
93
+ }
94
+ } catch (e) {
95
+ Log.info("Cannot get theme from computed styles", e instanceof Error ? e.message : String(e));
96
+ theme = "sap_horizon";
97
+ }
98
+ if (!theme || !theme.startsWith("sap_")) {
99
+ // Final fallback to sap_horizon
100
+ theme = "sap_horizon";
101
+ }
102
+ }
103
+ return theme;
104
+ }
105
+
71
106
  static instancePromise: Promise<ShortcutExplanationProvider | undefined>;
72
107
 
73
108
  static instance: ShortcutExplanationProvider | undefined;
@@ -95,6 +95,13 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
95
95
  var _proto = ShortcutTool.prototype;
96
96
  _proto.setupPort = function setupPort(messagePort) {
97
97
  messagePort.onmessage = this.onMessageReceived.bind(this);
98
+ // We send a message to stop the display if it is already running
99
+ // and then start it again to ensure we have the latest data.
100
+ // This is to ensure that the popup is always up-to-date with the latest shortcuts
101
+ // and to avoid any potential issues with the display being already running.
102
+ messagePort.postMessage({
103
+ service: "sap.ui.interaction.StopDisplay"
104
+ });
98
105
  messagePort.postMessage({
99
106
  service: "sap.ui.interaction.StartDisplay"
100
107
  });
@@ -226,4 +233,4 @@ sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap
226
233
  _exports = ShortcutTool;
227
234
  return _exports;
228
235
  }, false);
229
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXREb2NzRGV0YWlsIiwiZG9jc1BhdGgiLCJkYXRhIiwic3BsdGlQYXRoIiwic3BsaXQiLCJyZXN1bHQiLCJmb3JFYWNoIiwicGF0aCIsImNvbGxhcHNlRHVwbGljYXRlIiwiZWxlbWVudHMiLCJmaWx0ZXJRdWVyeSIsIm1hcCIsImVsZW1lbnQiLCJsYWJlbCIsIm5vZGVzIiwiZmlsdGVyIiwibm9kZSIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJzb21lIiwiZXhpc3RpbmdOb2RlIiwicHVzaCIsIk9iamVjdCIsImVudHJpZXMiLCJfcmVmIiwibWFwS2V5VG9TeW1ib2wiLCJrZXkiLCJ0cmFuc2xhdGVkS2V5IiwidHJpbSIsIlNob3J0Y3V0VG9vbCIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiZGVmaW5lUmVmZXJlbmNlIiwiX2RlYzMiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tCYXNlIiwiX3RoaXMiLCJjYWxsIiwicmVzb3VyY2VCdW5kbGUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJzdGF0ZSIsInNob3J0Y3V0c1RyZWUiLCJvcmlnaW5hbFRyZWUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImluaXRpYWxGb2N1cyIsIiRzZWFyY2hGaWVsZCIsImN1cnJlbnQiLCJhZGRFdmVudERlbGVnYXRlIiwib25BZnRlclJlbmRlcmluZyIsImZvY3VzIiwid2luZG93IiwibWVzc2FnZVBvcnQiLCJzZXR1cFBvcnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25tZXNzYWdlIiwib25NZXNzYWdlUmVjZWl2ZWQiLCJiaW5kIiwicG9zdE1lc3NhZ2UiLCJzZXJ2aWNlIiwiZSIsInBheWxvYWQiLCJyZXZlcnNlIiwiaW50ZXJhY3Rpb25zIiwic2hvcnRjdXQiLCIkcmVmIiwiZG9jdW1lbnRhdGlvbkludGVyYWN0aW9uIiwiZGVzY3JpcHRpb24iLCJyZXBsYWNlQWxsIiwic2hvcnRjdXRLZXlzIiwia2JkIiwibmFtZSIsImNvbmNhdCIsIm9uU3RhdGVDaGFuZ2UiLCIkdHJlZSIsImV4cGFuZFRvTGV2ZWwiLCJvblNlYXJjaCIsIl9lIiwicXVlcnkiLCJnZXRQYXJhbWV0ZXIiLCJpc1RpdGxlTWF0Y2giLCJpc05vZGVNYXRjaCIsIl9qc3giLCJQYW5lbCIsImhlYWRlclRleHQiLCJnZXRUZXh0Iiwid2lkdGgiLCJjaGlsZHJlbiIsIlNlYXJjaEZpZWxkIiwicmVmIiwicGxhY2Vob2xkZXIiLCJzZWFyY2giLCJUcmVlIiwiaXRlbXMiLCJtb2RlbCIsInBhcmFtZXRlcnMiLCJhcnJheU5hbWVzIiwibm9EYXRhVGV4dCIsIkN1c3RvbVRyZWVJdGVtIiwiX2pzeHMiLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsInJlbmRlclR5cGUiLCJqdXN0aWZ5Q29udGVudCIsIkZvcm1hdHRlZFRleHQiLCJodG1sVGV4dCIsImNsYXNzIiwiZGlyZWN0aW9uIiwiaWQiLCJjb250ZXh0Iiwic2hvcnRjdXRLZXkiLCJnZXRPYmplY3QiLCJzaG9ydEN1dFRleHQiLCJyYXciLCJ0cmFuc2xhdGVkU2hvcnRDdXRUZXh0IiwidHJhbnNsYXRlZCIsInRyYW5zbGF0ZWRTaG9ydEN1dEtleXMiLCJyYXdLZXkiLCJpZHgiLCJMYWJlbCIsInRleHQiLCJsZW5ndGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hvcnRjdXRUb29sLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tCYXNlIGZyb20gXCJzYXAvZmUvYmFzZS9CdWlsZGluZ0Jsb2NrQmFzZVwiO1xuaW1wb3J0IHsgZGVmaW5lUmVmZXJlbmNlLCBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IEN1c3RvbVRyZWVJdGVtIGZyb20gXCJzYXAvbS9DdXN0b21UcmVlSXRlbVwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcInNhcC9tL0ZsZXhCb3hcIjtcbmltcG9ydCBGb3JtYXR0ZWRUZXh0IGZyb20gXCJzYXAvbS9Gb3JtYXR0ZWRUZXh0XCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcInNhcC9tL0xhYmVsXCI7XG5pbXBvcnQgUGFuZWwgZnJvbSBcInNhcC9tL1BhbmVsXCI7XG5pbXBvcnQgdHlwZSB7IFNlYXJjaEZpZWxkJFNlYXJjaEV2ZW50IH0gZnJvbSBcInNhcC9tL1NlYXJjaEZpZWxkXCI7XG5pbXBvcnQgU2VhcmNoRmllbGQgZnJvbSBcInNhcC9tL1NlYXJjaEZpZWxkXCI7XG5pbXBvcnQgVHJlZSBmcm9tIFwic2FwL20vVHJlZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuXG50eXBlIE5hbWVkS2V5Ym9hcmRJbnRlcmFjdGlvbiA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHRkZXNjcmlwdGlvbj86IHN0cmluZztcblx0a2JkOiAoc3RyaW5nIHwgeyByYXc6IHN0cmluZzsgdHJhbnNsYXRlZDogc3RyaW5nIH0pW107XG59O1xudHlwZSBEb2NLZXlib2FyZEludGVyYWN0aW9uID0ge1xuXHRkZXNjcmlwdGlvbjogc3RyaW5nO1xuXHRrYmQ6IChzdHJpbmcgfCB7IHJhdzogc3RyaW5nOyB0cmFuc2xhdGVkOiBzdHJpbmcgfSlbXTtcbn07XG5cbnR5cGUgUmVmS2V5Ym9hcmRJbnRlcmFjdGlvbiA9IHtcblx0JHJlZjogc3RyaW5nO1xufTtcbnR5cGUgS2V5Ym9hcmRFbGVtZW50cyA9IHtcblx0Y2xhc3M6IHN0cmluZztcblx0aWQ6IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0aW50ZXJhY3Rpb25zOiAoTmFtZWRLZXlib2FyZEludGVyYWN0aW9uIHwgUmVmS2V5Ym9hcmRJbnRlcmFjdGlvbilbXTtcbn07XG50eXBlIFNob3J0Y3V0RWxlbWVudCA9IHsgbGFiZWw6IHN0cmluZzsgc2hvcnRjdXRLZXlzOiAoc3RyaW5nIHwgeyByYXc6IHN0cmluZzsgdHJhbnNsYXRlZDogc3RyaW5nIH0pW10gfTtcblxuZnVuY3Rpb24gZ2V0RG9jc0RldGFpbChkb2NzUGF0aDogc3RyaW5nLCBkYXRhOiBvYmplY3QpOiBEb2NLZXlib2FyZEludGVyYWN0aW9uW10gfCB1bmRlZmluZWQge1xuXHRjb25zdCBzcGx0aVBhdGggPSBkb2NzUGF0aC5zcGxpdChcIi9cIik7XG5cdGxldCByZXN1bHQgPSBkYXRhO1xuXHRzcGx0aVBhdGguZm9yRWFjaCgocGF0aCkgPT4ge1xuXHRcdHJlc3VsdCA9IHJlc3VsdFtwYXRoIGFzIGtleW9mIHR5cGVvZiByZXN1bHRdO1xuXHR9KTtcblx0cmV0dXJuIHJlc3VsdCBhcyBEb2NLZXlib2FyZEludGVyYWN0aW9uW10gfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNvbGxhcHNlRHVwbGljYXRlKFxuXHRlbGVtZW50czogeyBsYWJlbDogc3RyaW5nOyBub2RlczogU2hvcnRjdXRFbGVtZW50W10gfVtdLFxuXHRmaWx0ZXJRdWVyeTogc3RyaW5nXG4pOiB7IGxhYmVsOiBzdHJpbmc7IG5vZGVzOiBTaG9ydGN1dEVsZW1lbnRbXSB9W10ge1xuXHRjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIFNob3J0Y3V0RWxlbWVudFtdPiA9IHt9O1xuXHRlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG5cdFx0aWYgKCFtYXBbZWxlbWVudC5sYWJlbF0pIHtcblx0XHRcdG1hcFtlbGVtZW50LmxhYmVsXSA9IFtdO1xuXHRcdH1cblx0XHRlbGVtZW50Lm5vZGVzXG5cdFx0XHQuZmlsdGVyKChub2RlKSA9PiB7XG5cdFx0XHRcdHJldHVybiBub2RlLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyUXVlcnkudG9Mb3dlckNhc2UoKSk7XG5cdFx0XHR9KVxuXHRcdFx0LmZvckVhY2goKG5vZGUpID0+IHtcblx0XHRcdFx0aWYgKCFtYXBbZWxlbWVudC5sYWJlbF0uc29tZSgoZXhpc3RpbmdOb2RlKSA9PiBleGlzdGluZ05vZGUubGFiZWwgPT09IG5vZGUubGFiZWwpKSB7XG5cdFx0XHRcdFx0bWFwW2VsZW1lbnQubGFiZWxdLnB1c2gobm9kZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9KTtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKG1hcCkubWFwKChbbGFiZWwsIG5vZGVzXSkgPT4gKHsgbGFiZWwsIG5vZGVzIH0pKTtcbn1cblxuLyoqXG4gKiBNYXBzIGEga2V5Ym9hcmQga2V5IHRvIGEgc3ltYm9sIGZvciBkaXNwbGF5IHB1cnBvc2VzLlxuICogV2UgbmVlZCB0byBwZXJmb3JtIHRoZSBtYXBwaW5nIGJhc2VkIG9uIHRoZSByYXcga2V5IG5hbWUgYnV0IHJldHVybiB0aGUgdHJhbnNsYXRlZCBrZXkgZm9yIGRpc3BsYXkuXG4gKiBAcGFyYW0ga2V5IFRoZSByYXcga2V5IG5hbWUgKGUuZy4sIFwiQXJyb3dVcFwiLCBcIkN0cmxcIiwgZXRjLilcbiAqIEBwYXJhbSB0cmFuc2xhdGVkS2V5IFRoZSB0cmFuc2xhdGVkIGtleSBuYW1lIGluIHRoZSBwcm9wZXIgbGFuZ3VhZ2VcbiAqIEByZXR1cm5zIFRoZSBzeW1ib2wgdG8gYmUgZGlzcGxheWVkIGZvciB0aGUga2V5XG4gKi9cbmZ1bmN0aW9uIG1hcEtleVRvU3ltYm9sKGtleTogc3RyaW5nLCB0cmFuc2xhdGVkS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRzd2l0Y2ggKGtleS50cmltKCkpIHtcblx0XHRjYXNlIFwiQXJyb3dEb3duXCI6XG5cdFx0XHRyZXR1cm4gXCLihpNcIjtcblx0XHRjYXNlIFwiQXJyb3dVcFwiOlxuXHRcdFx0cmV0dXJuIFwi4oaRXCI7XG5cdFx0Y2FzZSBcIkFycm93TGVmdFwiOlxuXHRcdFx0cmV0dXJuIFwi4oaQXCI7XG5cdFx0Y2FzZSBcIkFycm93UmlnaHRcIjpcblx0XHRcdHJldHVybiBcIuKGklwiO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gdHJhbnNsYXRlZEtleTtcblx0fVxufVxuXG50eXBlIFNob3J0Y3V0VG9vbFN0YXRlID0ge1xuXHRzaG9ydGN1dHNUcmVlOiB7IGxhYmVsOiBzdHJpbmc7IG5vZGVzOiBTaG9ydGN1dEVsZW1lbnRbXSB9W107XG5cdG9yaWdpbmFsVHJlZTogeyBsYWJlbDogc3RyaW5nOyBub2RlczogU2hvcnRjdXRFbGVtZW50W10gfVtdO1xuXHRpbml0aWFsRm9jdXM6IGJvb2xlYW47XG59O1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvbnRyb2xzLnNob3J0Y3V0cy5wb3B1cC5TaG9ydGN1dFRvb2xcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNob3J0Y3V0VG9vbCBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlPFBhbmVsLCBTaG9ydGN1dFRvb2xTdGF0ZT4ge1xuXHRwcml2YXRlIHJlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZSA9IExpYi5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb250cm9sc1wiKSE7XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdCRzZWFyY2hGaWVsZCE6IFJlZjxTZWFyY2hGaWVsZD47XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdCR0cmVlITogUmVmPFRyZWU+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5zdGF0ZS5zaG9ydGN1dHNUcmVlID0gW107XG5cdFx0dGhpcy5zdGF0ZS5vcmlnaW5hbFRyZWUgPSBbXTtcblxuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdHRoaXMuc3RhdGUuaW5pdGlhbEZvY3VzID0gdHJ1ZTtcblx0XHR0aGlzLiRzZWFyY2hGaWVsZC5jdXJyZW50Py5hZGRFdmVudERlbGVnYXRlKHtcblx0XHRcdG9uQWZ0ZXJSZW5kZXJpbmc6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuc3RhdGUuaW5pdGlhbEZvY3VzKSB7XG5cdFx0XHRcdFx0dGhpcy4kc2VhcmNoRmllbGQuY3VycmVudD8uZm9jdXMoKTtcblx0XHRcdFx0XHR0aGlzLnN0YXRlLmluaXRpYWxGb2N1cyA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAoKHdpbmRvdyBhcyB7IG1lc3NhZ2VQb3J0PzogTWVzc2FnZVBvcnQgfSkubWVzc2FnZVBvcnQpIHtcblx0XHRcdHRoaXMuc2V0dXBQb3J0KCh3aW5kb3cgYXMgeyBtZXNzYWdlUG9ydD86IE1lc3NhZ2VQb3J0IH0pLm1lc3NhZ2VQb3J0ISk7XG5cdFx0fVxuXHR9XG5cblx0c2V0dXBQb3J0KG1lc3NhZ2VQb3J0OiBNZXNzYWdlUG9ydCk6IHZvaWQge1xuXHRcdG1lc3NhZ2VQb3J0Lm9ubWVzc2FnZSA9IHRoaXMub25NZXNzYWdlUmVjZWl2ZWQuYmluZCh0aGlzKTtcblx0XHRtZXNzYWdlUG9ydC5wb3N0TWVzc2FnZSh7IHNlcnZpY2U6IFwic2FwLnVpLmludGVyYWN0aW9uLlN0YXJ0RGlzcGxheVwiIH0pO1xuXHR9XG5cblx0b25NZXNzYWdlUmVjZWl2ZWQoZTogTWVzc2FnZUV2ZW50KTogdm9pZCB7XG5cdFx0aWYgKGU/LmRhdGE/LnNlcnZpY2UgPT09IFwic2FwLnVpLmludGVyYWN0aW9uLlVwZGF0ZURpc3BsYXlcIikge1xuXHRcdFx0Y29uc3QgZWxlbWVudHMgPSBlLmRhdGEucGF5bG9hZC5lbGVtZW50cyBhcyBLZXlib2FyZEVsZW1lbnRzW107XG5cdFx0XHRlbGVtZW50cy5yZXZlcnNlKCk7XG5cdFx0XHR0aGlzLnN0YXRlLm9yaWdpbmFsVHJlZSA9IGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBub2RlczogU2hvcnRjdXRFbGVtZW50W10gPSBbXTtcblx0XHRcdFx0ZWxlbWVudC5pbnRlcmFjdGlvbnMuZm9yRWFjaCgoc2hvcnRjdXQpID0+IHtcblx0XHRcdFx0XHRpZiAoKHNob3J0Y3V0IGFzIFJlZktleWJvYXJkSW50ZXJhY3Rpb24pLiRyZWYpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVyYWN0aW9ucyA9IGdldERvY3NEZXRhaWwoKHNob3J0Y3V0IGFzIFJlZktleWJvYXJkSW50ZXJhY3Rpb24pLiRyZWYsIGUuZGF0YS5wYXlsb2FkKTtcblx0XHRcdFx0XHRcdGludGVyYWN0aW9ucz8uZm9yRWFjaCgoZG9jdW1lbnRhdGlvbkludGVyYWN0aW9uKSA9PiB7XG5cdFx0XHRcdFx0XHRcdG5vZGVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBkb2N1bWVudGF0aW9uSW50ZXJhY3Rpb24uZGVzY3JpcHRpb24ucmVwbGFjZUFsbChcIjxrYmRcIiwgXCI8c3Ryb25nXCIpLnJlcGxhY2VBbGwoXCI8L2tiZD5cIiwgXCI8L3N0cm9uZz5cIiksXG5cdFx0XHRcdFx0XHRcdFx0c2hvcnRjdXRLZXlzOiBkb2N1bWVudGF0aW9uSW50ZXJhY3Rpb24ua2JkXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG5vZGVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogKChzaG9ydGN1dCBhcyBOYW1lZEtleWJvYXJkSW50ZXJhY3Rpb24pLmRlc2NyaXB0aW9uID8/IChzaG9ydGN1dCBhcyBOYW1lZEtleWJvYXJkSW50ZXJhY3Rpb24pLm5hbWUpXG5cdFx0XHRcdFx0XHRcdFx0LnJlcGxhY2VBbGwoXCI8a2JkXCIsIFwiPHN0cm9uZ1wiKVxuXHRcdFx0XHRcdFx0XHRcdC5yZXBsYWNlQWxsKFwiPC9rYmQ+XCIsIFwiPC9zdHJvbmc+XCIpLFxuXHRcdFx0XHRcdFx0XHRzaG9ydGN1dEtleXM6IChzaG9ydGN1dCBhcyBOYW1lZEtleWJvYXJkSW50ZXJhY3Rpb24pLmtiZFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRsYWJlbDogZWxlbWVudC5sYWJlbC5yZXBsYWNlQWxsKFwiPGtiZFwiLCBcIjxzdHJvbmdcIikucmVwbGFjZUFsbChcIjwva2JkPlwiLCBcIjwvc3Ryb25nPlwiKSxcblx0XHRcdFx0XHRub2Rlczogbm9kZXNcblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHR0aGlzLnN0YXRlLnNob3J0Y3V0c1RyZWUgPSBjb2xsYXBzZUR1cGxpY2F0ZSh0aGlzLnN0YXRlLm9yaWdpbmFsVHJlZS5jb25jYXQoKSwgXCJcIik7XG5cdH1cblxuXHRvblN0YXRlQ2hhbmdlKCk6IHZvaWQge1xuXHRcdHRoaXMuJHRyZWUuY3VycmVudD8uZXhwYW5kVG9MZXZlbCgxKTtcblx0fVxuXG5cdG9uU2VhcmNoKF9lOiBTZWFyY2hGaWVsZCRTZWFyY2hFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHF1ZXJ5ID0gX2UuZ2V0UGFyYW1ldGVyKFwicXVlcnlcIikgPz8gXCJcIjtcblx0XHR0aGlzLnN0YXRlLnNob3J0Y3V0c1RyZWUgPSBjb2xsYXBzZUR1cGxpY2F0ZShcblx0XHRcdHRoaXMuc3RhdGUub3JpZ2luYWxUcmVlXG5cdFx0XHRcdC5maWx0ZXIoKGVsZW1lbnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBpc1RpdGxlTWF0Y2ggPSBlbGVtZW50LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkudG9Mb3dlckNhc2UoKSk7XG5cdFx0XHRcdFx0Y29uc3QgaXNOb2RlTWF0Y2ggPSBlbGVtZW50Lm5vZGVzLnNvbWUoKG5vZGUpID0+IG5vZGUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeS50b0xvd2VyQ2FzZSgpKSk7XG5cdFx0XHRcdFx0cmV0dXJuIGlzVGl0bGVNYXRjaCB8fCBpc05vZGVNYXRjaDtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNvbmNhdCgpLFxuXHRcdFx0cXVlcnlcblx0XHQpO1xuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBQYW5lbCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxQYW5lbCBoZWFkZXJUZXh0PXt0aGlzLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX1NIT1JUQ1VUX1RJVExFXCIpfSB3aWR0aD1cIjEwMCVcIj5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRjb250ZW50OiBbXG5cdFx0XHRcdFx0XHQ8U2VhcmNoRmllbGRcblx0XHRcdFx0XHRcdFx0cmVmPXt0aGlzLiRzZWFyY2hGaWVsZH1cblx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9e3RoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfU0hPUlRDVVRfUExBQ0VIT0xERVJcIil9XG5cdFx0XHRcdFx0XHRcdHNlYXJjaD17KGUpOiB2b2lkID0+IHRoaXMub25TZWFyY2goZSl9XG5cdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdDxUcmVlXG5cdFx0XHRcdFx0XHRcdHJlZj17dGhpcy4kdHJlZX1cblx0XHRcdFx0XHRcdFx0aXRlbXM9e3sgbW9kZWw6IFwiJGNvbXBvbmVudFN0YXRlXCIsIHBhdGg6IFwiL3Nob3J0Y3V0c1RyZWVcIiwgcGFyYW1ldGVyczogeyBhcnJheU5hbWVzOiBbXCJub2Rlc1wiXSB9IH19XG5cdFx0XHRcdFx0XHRcdG5vRGF0YVRleHQ9e3RoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfU0hPUlRDVVRfTk9EQVRBXCIpfVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHQ8Q3VzdG9tVHJlZUl0ZW0+XG5cdFx0XHRcdFx0XHRcdFx0PEZsZXhCb3ggYWxpZ25JdGVtcz17XCJTdGFydFwifSB3aWR0aD17XCIxMDAlXCJ9IHJlbmRlclR5cGU9e1wiQmFyZVwifSBqdXN0aWZ5Q29udGVudD17XCJTcGFjZUJldHdlZW5cIn0+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Rm9ybWF0dGVkVGV4dCBodG1sVGV4dD17dGhpcy5zdGF0ZS5zaG9ydGN1dHNUcmVlLmxhYmVsfSBjbGFzcz17XCJzYXBGZUNvbnRyb2xzU2hvcmN1dE1GVFwifSAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PEZsZXhCb3hcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVuZGVyVHlwZT17XCJCYXJlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGp1c3RpZnlDb250ZW50PXtcIlNwYWNlQmV0d2VlblwifVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpdGVtcz17XCJ7JGNvbXBvbmVudFN0YXRlPnNob3J0Y3V0S2V5c31cIn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGlyZWN0aW9uPXtcIkNvbHVtblwifVxuXHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGl0ZW1zOiBmdW5jdGlvbiAoaWQ6IHN0cmluZywgY29udGV4dDogQ29udGV4dCk6IExhYmVsIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNob3J0Y3V0S2V5ID0gY29udGV4dC5nZXRPYmplY3QoKSBhcyBzdHJpbmcgfCB7IHJhdzogc3RyaW5nOyB0cmFuc2xhdGVkOiBzdHJpbmcgfTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNob3J0Q3V0VGV4dCA9IHR5cGVvZiBzaG9ydGN1dEtleSA9PT0gXCJzdHJpbmdcIiA/IHNob3J0Y3V0S2V5IDogc2hvcnRjdXRLZXkucmF3O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgdHJhbnNsYXRlZFNob3J0Q3V0VGV4dCA9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiBzaG9ydGN1dEtleSA9PT0gXCJzdHJpbmdcIiA/IHNob3J0Y3V0S2V5IDogc2hvcnRjdXRLZXkudHJhbnNsYXRlZDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNob3J0Y3V0S2V5cyA9IHNob3J0Q3V0VGV4dC5zcGxpdChcIitcIik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCB0cmFuc2xhdGVkU2hvcnRDdXRLZXlzID0gdHJhbnNsYXRlZFNob3J0Q3V0VGV4dC5zcGxpdChcIitcIik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBlbGVtZW50czogQ29udHJvbFtdID0gW107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaG9ydGN1dEtleXMuZm9yRWFjaCgocmF3S2V5OiBzdHJpbmcsIGlkeDogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHRyYW5zbGF0ZWRLZXkgPSB0cmFuc2xhdGVkU2hvcnRDdXRLZXlzW2lkeF0gPz8gcmF3S2V5O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbGVtZW50cy5wdXNoKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxMYWJlbFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dD17bWFwS2V5VG9TeW1ib2wocmF3S2V5LCB0cmFuc2xhdGVkS2V5KX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkVuZCBzYXBGZUNvbnRyb2xzU2hvcnRjdXRLZXlcIn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoaWR4ICE9PSBzaG9ydGN1dEtleXMubGVuZ3RoIC0gMSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsZW1lbnRzLnB1c2goPExhYmVsIHRleHQ9e1wiK1wifSBjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5FbmRcIn0gLz4pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxGbGV4Qm94IGlkPXtpZH0gcmVuZGVyVHlwZT17XCJCYXJlXCJ9IGFsaWduSXRlbXM9e1wiQ2VudGVyXCJ9PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGl0ZW1zOiBlbGVtZW50cyB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHRcdDwvQ3VzdG9tVHJlZUl0ZW0+XG5cdFx0XHRcdFx0XHQ8L1RyZWU+XG5cdFx0XHRcdFx0XVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9QYW5lbD5cblx0XHQpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7RUFxQ0EsU0FBU0EsYUFBYUEsQ0FBQ0MsUUFBZ0IsRUFBRUMsSUFBWSxFQUF3QztJQUM1RixNQUFNQyxTQUFTLEdBQUdGLFFBQVEsQ0FBQ0csS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNyQyxJQUFJQyxNQUFNLEdBQUdILElBQUk7SUFDakJDLFNBQVMsQ0FBQ0csT0FBTyxDQUFFQyxJQUFJLElBQUs7TUFDM0JGLE1BQU0sR0FBR0EsTUFBTSxDQUFDRSxJQUFJLENBQXdCO0lBQzdDLENBQUMsQ0FBQztJQUNGLE9BQU9GLE1BQU07RUFDZDtFQUVBLFNBQVNHLGlCQUFpQkEsQ0FDekJDLFFBQXVELEVBQ3ZEQyxXQUFtQixFQUM2QjtJQUNoRCxN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
236
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXREb2NzRGV0YWlsIiwiZG9jc1BhdGgiLCJkYXRhIiwic3BsdGlQYXRoIiwic3BsaXQiLCJyZXN1bHQiLCJmb3JFYWNoIiwicGF0aCIsImNvbGxhcHNlRHVwbGljYXRlIiwiZWxlbWVudHMiLCJmaWx0ZXJRdWVyeSIsIm1hcCIsImVsZW1lbnQiLCJsYWJlbCIsIm5vZGVzIiwiZmlsdGVyIiwibm9kZSIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJzb21lIiwiZXhpc3RpbmdOb2RlIiwicHVzaCIsIk9iamVjdCIsImVudHJpZXMiLCJfcmVmIiwibWFwS2V5VG9TeW1ib2wiLCJrZXkiLCJ0cmFuc2xhdGVkS2V5IiwidHJpbSIsIlNob3J0Y3V0VG9vbCIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiZGVmaW5lUmVmZXJlbmNlIiwiX2RlYzMiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tCYXNlIiwiX3RoaXMiLCJjYWxsIiwicmVzb3VyY2VCdW5kbGUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJzdGF0ZSIsInNob3J0Y3V0c1RyZWUiLCJvcmlnaW5hbFRyZWUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImluaXRpYWxGb2N1cyIsIiRzZWFyY2hGaWVsZCIsImN1cnJlbnQiLCJhZGRFdmVudERlbGVnYXRlIiwib25BZnRlclJlbmRlcmluZyIsImZvY3VzIiwid2luZG93IiwibWVzc2FnZVBvcnQiLCJzZXR1cFBvcnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25tZXNzYWdlIiwib25NZXNzYWdlUmVjZWl2ZWQiLCJiaW5kIiwicG9zdE1lc3NhZ2UiLCJzZXJ2aWNlIiwiZSIsInBheWxvYWQiLCJyZXZlcnNlIiwiaW50ZXJhY3Rpb25zIiwic2hvcnRjdXQiLCIkcmVmIiwiZG9jdW1lbnRhdGlvbkludGVyYWN0aW9uIiwiZGVzY3JpcHRpb24iLCJyZXBsYWNlQWxsIiwic2hvcnRjdXRLZXlzIiwia2JkIiwibmFtZSIsImNvbmNhdCIsIm9uU3RhdGVDaGFuZ2UiLCIkdHJlZSIsImV4cGFuZFRvTGV2ZWwiLCJvblNlYXJjaCIsIl9lIiwicXVlcnkiLCJnZXRQYXJhbWV0ZXIiLCJpc1RpdGxlTWF0Y2giLCJpc05vZGVNYXRjaCIsIl9qc3giLCJQYW5lbCIsImhlYWRlclRleHQiLCJnZXRUZXh0Iiwid2lkdGgiLCJjaGlsZHJlbiIsIlNlYXJjaEZpZWxkIiwicmVmIiwicGxhY2Vob2xkZXIiLCJzZWFyY2giLCJUcmVlIiwiaXRlbXMiLCJtb2RlbCIsInBhcmFtZXRlcnMiLCJhcnJheU5hbWVzIiwibm9EYXRhVGV4dCIsIkN1c3RvbVRyZWVJdGVtIiwiX2pzeHMiLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsInJlbmRlclR5cGUiLCJqdXN0aWZ5Q29udGVudCIsIkZvcm1hdHRlZFRleHQiLCJodG1sVGV4dCIsImNsYXNzIiwiZGlyZWN0aW9uIiwiaWQiLCJjb250ZXh0Iiwic2hvcnRjdXRLZXkiLCJnZXRPYmplY3QiLCJzaG9ydEN1dFRleHQiLCJyYXciLCJ0cmFuc2xhdGVkU2hvcnRDdXRUZXh0IiwidHJhbnNsYXRlZCIsInRyYW5zbGF0ZWRTaG9ydEN1dEtleXMiLCJyYXdLZXkiLCJpZHgiLCJMYWJlbCIsInRleHQiLCJsZW5ndGgiLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hvcnRjdXRUb29sLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tCYXNlIGZyb20gXCJzYXAvZmUvYmFzZS9CdWlsZGluZ0Jsb2NrQmFzZVwiO1xuaW1wb3J0IHsgZGVmaW5lUmVmZXJlbmNlLCBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IEN1c3RvbVRyZWVJdGVtIGZyb20gXCJzYXAvbS9DdXN0b21UcmVlSXRlbVwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcInNhcC9tL0ZsZXhCb3hcIjtcbmltcG9ydCBGb3JtYXR0ZWRUZXh0IGZyb20gXCJzYXAvbS9Gb3JtYXR0ZWRUZXh0XCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcInNhcC9tL0xhYmVsXCI7XG5pbXBvcnQgUGFuZWwgZnJvbSBcInNhcC9tL1BhbmVsXCI7XG5pbXBvcnQgdHlwZSB7IFNlYXJjaEZpZWxkJFNlYXJjaEV2ZW50IH0gZnJvbSBcInNhcC9tL1NlYXJjaEZpZWxkXCI7XG5pbXBvcnQgU2VhcmNoRmllbGQgZnJvbSBcInNhcC9tL1NlYXJjaEZpZWxkXCI7XG5pbXBvcnQgVHJlZSBmcm9tIFwic2FwL20vVHJlZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuXG50eXBlIE5hbWVkS2V5Ym9hcmRJbnRlcmFjdGlvbiA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHRkZXNjcmlwdGlvbj86IHN0cmluZztcblx0a2JkOiAoc3RyaW5nIHwgeyByYXc6IHN0cmluZzsgdHJhbnNsYXRlZDogc3RyaW5nIH0pW107XG59O1xudHlwZSBEb2NLZXlib2FyZEludGVyYWN0aW9uID0ge1xuXHRkZXNjcmlwdGlvbjogc3RyaW5nO1xuXHRrYmQ6IChzdHJpbmcgfCB7IHJhdzogc3RyaW5nOyB0cmFuc2xhdGVkOiBzdHJpbmcgfSlbXTtcbn07XG5cbnR5cGUgUmVmS2V5Ym9hcmRJbnRlcmFjdGlvbiA9IHtcblx0JHJlZjogc3RyaW5nO1xufTtcbnR5cGUgS2V5Ym9hcmRFbGVtZW50cyA9IHtcblx0Y2xhc3M6IHN0cmluZztcblx0aWQ6IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0aW50ZXJhY3Rpb25zOiAoTmFtZWRLZXlib2FyZEludGVyYWN0aW9uIHwgUmVmS2V5Ym9hcmRJbnRlcmFjdGlvbilbXTtcbn07XG50eXBlIFNob3J0Y3V0RWxlbWVudCA9IHsgbGFiZWw6IHN0cmluZzsgc2hvcnRjdXRLZXlzOiAoc3RyaW5nIHwgeyByYXc6IHN0cmluZzsgdHJhbnNsYXRlZDogc3RyaW5nIH0pW10gfTtcblxuZnVuY3Rpb24gZ2V0RG9jc0RldGFpbChkb2NzUGF0aDogc3RyaW5nLCBkYXRhOiBvYmplY3QpOiBEb2NLZXlib2FyZEludGVyYWN0aW9uW10gfCB1bmRlZmluZWQge1xuXHRjb25zdCBzcGx0aVBhdGggPSBkb2NzUGF0aC5zcGxpdChcIi9cIik7XG5cdGxldCByZXN1bHQgPSBkYXRhO1xuXHRzcGx0aVBhdGguZm9yRWFjaCgocGF0aCkgPT4ge1xuXHRcdHJlc3VsdCA9IHJlc3VsdFtwYXRoIGFzIGtleW9mIHR5cGVvZiByZXN1bHRdO1xuXHR9KTtcblx0cmV0dXJuIHJlc3VsdCBhcyBEb2NLZXlib2FyZEludGVyYWN0aW9uW10gfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGNvbGxhcHNlRHVwbGljYXRlKFxuXHRlbGVtZW50czogeyBsYWJlbDogc3RyaW5nOyBub2RlczogU2hvcnRjdXRFbGVtZW50W10gfVtdLFxuXHRmaWx0ZXJRdWVyeTogc3RyaW5nXG4pOiB7IGxhYmVsOiBzdHJpbmc7IG5vZGVzOiBTaG9ydGN1dEVsZW1lbnRbXSB9W10ge1xuXHRjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIFNob3J0Y3V0RWxlbWVudFtdPiA9IHt9O1xuXHRlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG5cdFx0aWYgKCFtYXBbZWxlbWVudC5sYWJlbF0pIHtcblx0XHRcdG1hcFtlbGVtZW50LmxhYmVsXSA9IFtdO1xuXHRcdH1cblx0XHRlbGVtZW50Lm5vZGVzXG5cdFx0XHQuZmlsdGVyKChub2RlKSA9PiB7XG5cdFx0XHRcdHJldHVybiBub2RlLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyUXVlcnkudG9Mb3dlckNhc2UoKSk7XG5cdFx0XHR9KVxuXHRcdFx0LmZvckVhY2goKG5vZGUpID0+IHtcblx0XHRcdFx0aWYgKCFtYXBbZWxlbWVudC5sYWJlbF0uc29tZSgoZXhpc3RpbmdOb2RlKSA9PiBleGlzdGluZ05vZGUubGFiZWwgPT09IG5vZGUubGFiZWwpKSB7XG5cdFx0XHRcdFx0bWFwW2VsZW1lbnQubGFiZWxdLnB1c2gobm9kZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9KTtcblx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKG1hcCkubWFwKChbbGFiZWwsIG5vZGVzXSkgPT4gKHsgbGFiZWwsIG5vZGVzIH0pKTtcbn1cblxuLyoqXG4gKiBNYXBzIGEga2V5Ym9hcmQga2V5IHRvIGEgc3ltYm9sIGZvciBkaXNwbGF5IHB1cnBvc2VzLlxuICogV2UgbmVlZCB0byBwZXJmb3JtIHRoZSBtYXBwaW5nIGJhc2VkIG9uIHRoZSByYXcga2V5IG5hbWUgYnV0IHJldHVybiB0aGUgdHJhbnNsYXRlZCBrZXkgZm9yIGRpc3BsYXkuXG4gKiBAcGFyYW0ga2V5IFRoZSByYXcga2V5IG5hbWUgKGUuZy4sIFwiQXJyb3dVcFwiLCBcIkN0cmxcIiwgZXRjLilcbiAqIEBwYXJhbSB0cmFuc2xhdGVkS2V5IFRoZSB0cmFuc2xhdGVkIGtleSBuYW1lIGluIHRoZSBwcm9wZXIgbGFuZ3VhZ2VcbiAqIEByZXR1cm5zIFRoZSBzeW1ib2wgdG8gYmUgZGlzcGxheWVkIGZvciB0aGUga2V5XG4gKi9cbmZ1bmN0aW9uIG1hcEtleVRvU3ltYm9sKGtleTogc3RyaW5nLCB0cmFuc2xhdGVkS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRzd2l0Y2ggKGtleS50cmltKCkpIHtcblx0XHRjYXNlIFwiQXJyb3dEb3duXCI6XG5cdFx0XHRyZXR1cm4gXCLihpNcIjtcblx0XHRjYXNlIFwiQXJyb3dVcFwiOlxuXHRcdFx0cmV0dXJuIFwi4oaRXCI7XG5cdFx0Y2FzZSBcIkFycm93TGVmdFwiOlxuXHRcdFx0cmV0dXJuIFwi4oaQXCI7XG5cdFx0Y2FzZSBcIkFycm93UmlnaHRcIjpcblx0XHRcdHJldHVybiBcIuKGklwiO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gdHJhbnNsYXRlZEtleTtcblx0fVxufVxuXG50eXBlIFNob3J0Y3V0VG9vbFN0YXRlID0ge1xuXHRzaG9ydGN1dHNUcmVlOiB7IGxhYmVsOiBzdHJpbmc7IG5vZGVzOiBTaG9ydGN1dEVsZW1lbnRbXSB9W107XG5cdG9yaWdpbmFsVHJlZTogeyBsYWJlbDogc3RyaW5nOyBub2RlczogU2hvcnRjdXRFbGVtZW50W10gfVtdO1xuXHRpbml0aWFsRm9jdXM6IGJvb2xlYW47XG59O1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvbnRyb2xzLnNob3J0Y3V0cy5wb3B1cC5TaG9ydGN1dFRvb2xcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNob3J0Y3V0VG9vbCBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlPFBhbmVsLCBTaG9ydGN1dFRvb2xTdGF0ZT4ge1xuXHRwcml2YXRlIHJlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZSA9IExpYi5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb250cm9sc1wiKSE7XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdCRzZWFyY2hGaWVsZCE6IFJlZjxTZWFyY2hGaWVsZD47XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdCR0cmVlITogUmVmPFRyZWU+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5zdGF0ZS5zaG9ydGN1dHNUcmVlID0gW107XG5cdFx0dGhpcy5zdGF0ZS5vcmlnaW5hbFRyZWUgPSBbXTtcblxuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdHRoaXMuc3RhdGUuaW5pdGlhbEZvY3VzID0gdHJ1ZTtcblx0XHR0aGlzLiRzZWFyY2hGaWVsZC5jdXJyZW50Py5hZGRFdmVudERlbGVnYXRlKHtcblx0XHRcdG9uQWZ0ZXJSZW5kZXJpbmc6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuc3RhdGUuaW5pdGlhbEZvY3VzKSB7XG5cdFx0XHRcdFx0dGhpcy4kc2VhcmNoRmllbGQuY3VycmVudD8uZm9jdXMoKTtcblx0XHRcdFx0XHR0aGlzLnN0YXRlLmluaXRpYWxGb2N1cyA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAoKHdpbmRvdyBhcyB7IG1lc3NhZ2VQb3J0PzogTWVzc2FnZVBvcnQgfSkubWVzc2FnZVBvcnQpIHtcblx0XHRcdHRoaXMuc2V0dXBQb3J0KCh3aW5kb3cgYXMgeyBtZXNzYWdlUG9ydD86IE1lc3NhZ2VQb3J0IH0pLm1lc3NhZ2VQb3J0ISk7XG5cdFx0fVxuXHR9XG5cblx0c2V0dXBQb3J0KG1lc3NhZ2VQb3J0OiBNZXNzYWdlUG9ydCk6IHZvaWQge1xuXHRcdG1lc3NhZ2VQb3J0Lm9ubWVzc2FnZSA9IHRoaXMub25NZXNzYWdlUmVjZWl2ZWQuYmluZCh0aGlzKTtcblx0XHQvLyBXZSBzZW5kIGEgbWVzc2FnZSB0byBzdG9wIHRoZSBkaXNwbGF5IGlmIGl0IGlzIGFscmVhZHkgcnVubmluZ1xuXHRcdC8vIGFuZCB0aGVuIHN0YXJ0IGl0IGFnYWluIHRvIGVuc3VyZSB3ZSBoYXZlIHRoZSBsYXRlc3QgZGF0YS5cblx0XHQvLyBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IHRoZSBwb3B1cCBpcyBhbHdheXMgdXAtdG8tZGF0ZSB3aXRoIHRoZSBsYXRlc3Qgc2hvcnRjdXRzXG5cdFx0Ly8gYW5kIHRvIGF2b2lkIGFueSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdGhlIGRpc3BsYXkgYmVpbmcgYWxyZWFkeSBydW5uaW5nLlxuXHRcdG1lc3NhZ2VQb3J0LnBvc3RNZXNzYWdlKHsgc2VydmljZTogXCJzYXAudWkuaW50ZXJhY3Rpb24uU3RvcERpc3BsYXlcIiB9KTtcblx0XHRtZXNzYWdlUG9ydC5wb3N0TWVzc2FnZSh7IHNlcnZpY2U6IFwic2FwLnVpLmludGVyYWN0aW9uLlN0YXJ0RGlzcGxheVwiIH0pO1xuXHR9XG5cblx0b25NZXNzYWdlUmVjZWl2ZWQoZTogTWVzc2FnZUV2ZW50KTogdm9pZCB7XG5cdFx0aWYgKGU/LmRhdGE/LnNlcnZpY2UgPT09IFwic2FwLnVpLmludGVyYWN0aW9uLlVwZGF0ZURpc3BsYXlcIikge1xuXHRcdFx0Y29uc3QgZWxlbWVudHMgPSBlLmRhdGEucGF5bG9hZC5lbGVtZW50cyBhcyBLZXlib2FyZEVsZW1lbnRzW107XG5cdFx0XHRlbGVtZW50cy5yZXZlcnNlKCk7XG5cdFx0XHR0aGlzLnN0YXRlLm9yaWdpbmFsVHJlZSA9IGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBub2RlczogU2hvcnRjdXRFbGVtZW50W10gPSBbXTtcblx0XHRcdFx0ZWxlbWVudC5pbnRlcmFjdGlvbnMuZm9yRWFjaCgoc2hvcnRjdXQpID0+IHtcblx0XHRcdFx0XHRpZiAoKHNob3J0Y3V0IGFzIFJlZktleWJvYXJkSW50ZXJhY3Rpb24pLiRyZWYpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVyYWN0aW9ucyA9IGdldERvY3NEZXRhaWwoKHNob3J0Y3V0IGFzIFJlZktleWJvYXJkSW50ZXJhY3Rpb24pLiRyZWYsIGUuZGF0YS5wYXlsb2FkKTtcblx0XHRcdFx0XHRcdGludGVyYWN0aW9ucz8uZm9yRWFjaCgoZG9jdW1lbnRhdGlvbkludGVyYWN0aW9uKSA9PiB7XG5cdFx0XHRcdFx0XHRcdG5vZGVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBkb2N1bWVudGF0aW9uSW50ZXJhY3Rpb24uZGVzY3JpcHRpb24ucmVwbGFjZUFsbChcIjxrYmRcIiwgXCI8c3Ryb25nXCIpLnJlcGxhY2VBbGwoXCI8L2tiZD5cIiwgXCI8L3N0cm9uZz5cIiksXG5cdFx0XHRcdFx0XHRcdFx0c2hvcnRjdXRLZXlzOiBkb2N1bWVudGF0aW9uSW50ZXJhY3Rpb24ua2JkXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG5vZGVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRsYWJlbDogKChzaG9ydGN1dCBhcyBOYW1lZEtleWJvYXJkSW50ZXJhY3Rpb24pLmRlc2NyaXB0aW9uID8/IChzaG9ydGN1dCBhcyBOYW1lZEtleWJvYXJkSW50ZXJhY3Rpb24pLm5hbWUpXG5cdFx0XHRcdFx0XHRcdFx0LnJlcGxhY2VBbGwoXCI8a2JkXCIsIFwiPHN0cm9uZ1wiKVxuXHRcdFx0XHRcdFx0XHRcdC5yZXBsYWNlQWxsKFwiPC9rYmQ+XCIsIFwiPC9zdHJvbmc+XCIpLFxuXHRcdFx0XHRcdFx0XHRzaG9ydGN1dEtleXM6IChzaG9ydGN1dCBhcyBOYW1lZEtleWJvYXJkSW50ZXJhY3Rpb24pLmtiZFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRsYWJlbDogZWxlbWVudC5sYWJlbC5yZXBsYWNlQWxsKFwiPGtiZFwiLCBcIjxzdHJvbmdcIikucmVwbGFjZUFsbChcIjwva2JkPlwiLCBcIjwvc3Ryb25nPlwiKSxcblx0XHRcdFx0XHRub2Rlczogbm9kZXNcblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHR0aGlzLnN0YXRlLnNob3J0Y3V0c1RyZWUgPSBjb2xsYXBzZUR1cGxpY2F0ZSh0aGlzLnN0YXRlLm9yaWdpbmFsVHJlZS5jb25jYXQoKSwgXCJcIik7XG5cdH1cblxuXHRvblN0YXRlQ2hhbmdlKCk6IHZvaWQge1xuXHRcdHRoaXMuJHRyZWUuY3VycmVudD8uZXhwYW5kVG9MZXZlbCgxKTtcblx0fVxuXG5cdG9uU2VhcmNoKF9lOiBTZWFyY2hGaWVsZCRTZWFyY2hFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHF1ZXJ5ID0gX2UuZ2V0UGFyYW1ldGVyKFwicXVlcnlcIikgPz8gXCJcIjtcblx0XHR0aGlzLnN0YXRlLnNob3J0Y3V0c1RyZWUgPSBjb2xsYXBzZUR1cGxpY2F0ZShcblx0XHRcdHRoaXMuc3RhdGUub3JpZ2luYWxUcmVlXG5cdFx0XHRcdC5maWx0ZXIoKGVsZW1lbnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBpc1RpdGxlTWF0Y2ggPSBlbGVtZW50LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkudG9Mb3dlckNhc2UoKSk7XG5cdFx0XHRcdFx0Y29uc3QgaXNOb2RlTWF0Y2ggPSBlbGVtZW50Lm5vZGVzLnNvbWUoKG5vZGUpID0+IG5vZGUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeS50b0xvd2VyQ2FzZSgpKSk7XG5cdFx0XHRcdFx0cmV0dXJuIGlzVGl0bGVNYXRjaCB8fCBpc05vZGVNYXRjaDtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNvbmNhdCgpLFxuXHRcdFx0cXVlcnlcblx0XHQpO1xuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBQYW5lbCB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxQYW5lbCBoZWFkZXJUZXh0PXt0aGlzLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX1NIT1JUQ1VUX1RJVExFXCIpfSB3aWR0aD1cIjEwMCVcIj5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRjb250ZW50OiBbXG5cdFx0XHRcdFx0XHQ8U2VhcmNoRmllbGRcblx0XHRcdFx0XHRcdFx0cmVmPXt0aGlzLiRzZWFyY2hGaWVsZH1cblx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9e3RoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfU0hPUlRDVVRfUExBQ0VIT0xERVJcIil9XG5cdFx0XHRcdFx0XHRcdHNlYXJjaD17KGUpOiB2b2lkID0+IHRoaXMub25TZWFyY2goZSl9XG5cdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdDxUcmVlXG5cdFx0XHRcdFx0XHRcdHJlZj17dGhpcy4kdHJlZX1cblx0XHRcdFx0XHRcdFx0aXRlbXM9e3sgbW9kZWw6IFwiJGNvbXBvbmVudFN0YXRlXCIsIHBhdGg6IFwiL3Nob3J0Y3V0c1RyZWVcIiwgcGFyYW1ldGVyczogeyBhcnJheU5hbWVzOiBbXCJub2Rlc1wiXSB9IH19XG5cdFx0XHRcdFx0XHRcdG5vRGF0YVRleHQ9e3RoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfU0hPUlRDVVRfTk9EQVRBXCIpfVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHQ8Q3VzdG9tVHJlZUl0ZW0+XG5cdFx0XHRcdFx0XHRcdFx0PEZsZXhCb3ggYWxpZ25JdGVtcz17XCJTdGFydFwifSB3aWR0aD17XCIxMDAlXCJ9IHJlbmRlclR5cGU9e1wiQmFyZVwifSBqdXN0aWZ5Q29udGVudD17XCJTcGFjZUJldHdlZW5cIn0+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Rm9ybWF0dGVkVGV4dCBodG1sVGV4dD17dGhpcy5zdGF0ZS5zaG9ydGN1dHNUcmVlLmxhYmVsfSBjbGFzcz17XCJzYXBGZUNvbnRyb2xzU2hvcmN1dE1GVFwifSAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PEZsZXhCb3hcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVuZGVyVHlwZT17XCJCYXJlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGp1c3RpZnlDb250ZW50PXtcIlNwYWNlQmV0d2VlblwifVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpdGVtcz17XCJ7JGNvbXBvbmVudFN0YXRlPnNob3J0Y3V0S2V5c31cIn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGlyZWN0aW9uPXtcIkNvbHVtblwifVxuXHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGl0ZW1zOiBmdW5jdGlvbiAoaWQ6IHN0cmluZywgY29udGV4dDogQ29udGV4dCk6IExhYmVsIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNob3J0Y3V0S2V5ID0gY29udGV4dC5nZXRPYmplY3QoKSBhcyBzdHJpbmcgfCB7IHJhdzogc3RyaW5nOyB0cmFuc2xhdGVkOiBzdHJpbmcgfTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNob3J0Q3V0VGV4dCA9IHR5cGVvZiBzaG9ydGN1dEtleSA9PT0gXCJzdHJpbmdcIiA/IHNob3J0Y3V0S2V5IDogc2hvcnRjdXRLZXkucmF3O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgdHJhbnNsYXRlZFNob3J0Q3V0VGV4dCA9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiBzaG9ydGN1dEtleSA9PT0gXCJzdHJpbmdcIiA/IHNob3J0Y3V0S2V5IDogc2hvcnRjdXRLZXkudHJhbnNsYXRlZDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNob3J0Y3V0S2V5cyA9IHNob3J0Q3V0VGV4dC5zcGxpdChcIitcIik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCB0cmFuc2xhdGVkU2hvcnRDdXRLZXlzID0gdHJhbnNsYXRlZFNob3J0Q3V0VGV4dC5zcGxpdChcIitcIik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBlbGVtZW50czogQ29udHJvbFtdID0gW107XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaG9ydGN1dEtleXMuZm9yRWFjaCgocmF3S2V5OiBzdHJpbmcsIGlkeDogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHRyYW5zbGF0ZWRLZXkgPSB0cmFuc2xhdGVkU2hvcnRDdXRLZXlzW2lkeF0gPz8gcmF3S2V5O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbGVtZW50cy5wdXNoKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxMYWJlbFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dD17bWFwS2V5VG9TeW1ib2wocmF3S2V5LCB0cmFuc2xhdGVkS2V5KX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkVuZCBzYXBGZUNvbnRyb2xzU2hvcnRjdXRLZXlcIn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoaWR4ICE9PSBzaG9ydGN1dEtleXMubGVuZ3RoIC0gMSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsZW1lbnRzLnB1c2goPExhYmVsIHRleHQ9e1wiK1wifSBjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5FbmRcIn0gLz4pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxGbGV4Qm94IGlkPXtpZH0gcmVuZGVyVHlwZT17XCJCYXJlXCJ9IGFsaWduSXRlbXM9e1wiQ2VudGVyXCJ9PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGl0ZW1zOiBlbGVtZW50cyB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHRcdDwvQ3VzdG9tVHJlZUl0ZW0+XG5cdFx0XHRcdFx0XHQ8L1RyZWU+XG5cdFx0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
@@ -126,6 +126,11 @@ export default class ShortcutTool extends BuildingBlockBase<Panel, ShortcutToolS
126
126
 
127
127
  setupPort(messagePort: MessagePort): void {
128
128
  messagePort.onmessage = this.onMessageReceived.bind(this);
129
+ // We send a message to stop the display if it is already running
130
+ // and then start it again to ensure we have the latest data.
131
+ // This is to ensure that the popup is always up-to-date with the latest shortcuts
132
+ // and to avoid any potential issues with the display being already running.
133
+ messagePort.postMessage({ service: "sap.ui.interaction.StopDisplay" });
129
134
  messagePort.postMessage({ service: "sap.ui.interaction.StartDisplay" });
130
135
  }
131
136