vcomply-workflow-engine 3.5.3 → 3.5.4

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 (645) hide show
  1. package/esm2022/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +897 -0
  2. package/esm2022/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.mjs +204 -0
  3. package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +1569 -0
  4. package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +774 -0
  5. package/esm2022/lib/configurations.mjs +6 -0
  6. package/esm2022/lib/confirmation-alert/confirmation-alert.component.mjs +28 -0
  7. package/esm2022/lib/constants/link-responsibility.constants.mjs +9 -0
  8. package/esm2022/lib/constants/time.constants.mjs +3 -0
  9. package/esm2022/lib/create-documents/create-documents.component.mjs +145 -0
  10. package/esm2022/lib/formgroup/cs-checkbox/cs-checkbox.component.mjs +36 -0
  11. package/esm2022/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
  12. package/esm2022/lib/formgroup/cs-radio/cs-radio.component.mjs +34 -0
  13. package/esm2022/lib/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  14. package/esm2022/lib/formgroup/cs-select/cs-select.component.mjs +95 -0
  15. package/esm2022/lib/formgroup/cs-switch/cs-switch.component.mjs +31 -0
  16. package/esm2022/lib/formgroup/formgroup.module.mjs +56 -0
  17. package/esm2022/lib/formgroup/pipes/pascal.pipe.mjs +19 -0
  18. package/esm2022/lib/formgroup/select/cs-option/cs-option.component.mjs +42 -0
  19. package/esm2022/lib/formgroup/select/cs-select/cs-select.component.mjs +106 -0
  20. package/esm2022/lib/formgroup/select/select.module.mjs +21 -0
  21. package/esm2022/lib/formgroup/select/select.service.mjs +48 -0
  22. package/esm2022/lib/interfaces/categoryList.mjs +2 -0
  23. package/esm2022/lib/interfaces/confirmation-alert.mjs +2 -0
  24. package/esm2022/lib/interfaces/issue-data.mjs +2 -0
  25. package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +1212 -0
  26. package/esm2022/lib/more-option/more-option.component.mjs +790 -0
  27. package/esm2022/lib/pipes/data-type.pipe.mjs +16 -0
  28. package/esm2022/lib/pipes/dom-sanitizer.pipe.mjs +24 -0
  29. package/esm2022/lib/pipes/filter.pipe.mjs +24 -0
  30. package/esm2022/lib/pipes/is-read-more.pipe.mjs +21 -0
  31. package/esm2022/lib/pipes/list-mapper.pipe.mjs +21 -0
  32. package/esm2022/lib/pipes/pipes.module.mjs +67 -0
  33. package/esm2022/lib/pipes/search.pipe.mjs +37 -0
  34. package/esm2022/lib/pipes/space-breaker.pipe.mjs +21 -0
  35. package/esm2022/lib/pipes/uncategorized-filter.pipe.mjs +21 -0
  36. package/esm2022/lib/pipes/user-filter.pipe.mjs +30 -0
  37. package/esm2022/lib/services/bulk-upload.service.mjs +44 -0
  38. package/esm2022/lib/services/common.service.mjs +41 -0
  39. package/esm2022/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +265 -0
  40. package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +73 -0
  41. package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +83 -0
  42. package/esm2022/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.mjs +347 -0
  43. package/esm2022/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.mjs +75 -0
  44. package/esm2022/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.mjs +33 -0
  45. package/esm2022/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.mjs +124 -0
  46. package/esm2022/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.mjs +154 -0
  47. package/esm2022/lib/sharedComponents/assessment-editor/components/build/build.module.mjs +111 -0
  48. package/esm2022/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.mjs +37 -0
  49. package/esm2022/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.mjs +74 -0
  50. package/esm2022/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.mjs +18 -0
  51. package/esm2022/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.mjs +37 -0
  52. package/esm2022/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.mjs +15 -0
  53. package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.mjs +14 -0
  54. package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.mjs +14 -0
  55. package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.mjs +37 -0
  56. package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.mjs +14 -0
  57. package/esm2022/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.mjs +14 -0
  58. package/esm2022/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.mjs +14 -0
  59. package/esm2022/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.mjs +28 -0
  60. package/esm2022/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.mjs +14 -0
  61. package/esm2022/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.mjs +56 -0
  62. package/esm2022/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.mjs +14 -0
  63. package/esm2022/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.mjs +179 -0
  64. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/error.mjs +2 -0
  65. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/question.mjs +2 -0
  66. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.mjs +2 -0
  67. package/esm2022/lib/sharedComponents/assessment-editor/components/logic/logic.component.mjs +104 -0
  68. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.mjs +26 -0
  69. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.mjs +14 -0
  70. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.mjs +56 -0
  71. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.mjs +33 -0
  72. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.mjs +17 -0
  73. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.mjs +26 -0
  74. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.mjs +16 -0
  75. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.mjs +101 -0
  76. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.mjs +16 -0
  77. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.mjs +24 -0
  78. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.mjs +14 -0
  79. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.mjs +16 -0
  80. package/esm2022/lib/sharedComponents/assessment-editor/components/move/move.component.mjs +103 -0
  81. package/esm2022/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.mjs +23 -0
  82. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.mjs +22 -0
  83. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.mjs +27 -0
  84. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.mjs +21 -0
  85. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.mjs +17 -0
  86. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.mjs +16 -0
  87. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.mjs +21 -0
  88. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.mjs +16 -0
  89. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.mjs +28 -0
  90. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.mjs +14 -0
  91. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.mjs +49 -0
  92. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.mjs +30 -0
  93. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.mjs +21 -0
  94. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.mjs +17 -0
  95. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.mjs +31 -0
  96. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.mjs +28 -0
  97. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.mjs +28 -0
  98. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.mjs +16 -0
  99. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.mjs +16 -0
  100. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.mjs +16 -0
  101. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.mjs +14 -0
  102. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.mjs +16 -0
  103. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.mjs +78 -0
  104. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview.module.mjs +152 -0
  105. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.mjs +14 -0
  106. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.mjs +14 -0
  107. package/esm2022/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.mjs +19 -0
  108. package/esm2022/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.mjs +252 -0
  109. package/esm2022/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.mjs +35 -0
  110. package/esm2022/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.mjs +61 -0
  111. package/esm2022/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.mjs +163 -0
  112. package/esm2022/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.mjs +118 -0
  113. package/esm2022/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.mjs +23 -0
  114. package/esm2022/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.mjs +97 -0
  115. package/esm2022/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +493 -0
  116. package/esm2022/lib/sharedComponents/assessment-editor/create-assessment.module.mjs +154 -0
  117. package/esm2022/lib/sharedComponents/assessment-editor/services/editor.service.mjs +635 -0
  118. package/esm2022/lib/sharedComponents/assessment-editor/services/result-criteria.service.mjs +48 -0
  119. package/esm2022/lib/sharedComponents/assessment-editor/services/validator.service.mjs +546 -0
  120. package/esm2022/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.mjs +15 -0
  121. package/esm2022/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.mjs +15 -0
  122. package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +207 -0
  123. package/esm2022/lib/sharedComponents/assessment-list/service/assessment.interface.mjs +2 -0
  124. package/esm2022/lib/sharedComponents/assessment-list/service/assessment.service.mjs +31 -0
  125. package/esm2022/lib/sharedComponents/assessment-preview/assessment-preview.module.mjs +113 -0
  126. package/esm2022/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.mjs +33 -0
  127. package/esm2022/lib/sharedComponents/assessment-preview/date-time/date-time.component.mjs +53 -0
  128. package/esm2022/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.mjs +24 -0
  129. package/esm2022/lib/sharedComponents/assessment-preview/device/device.component.mjs +21 -0
  130. package/esm2022/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.mjs +22 -0
  131. package/esm2022/lib/sharedComponents/assessment-preview/page-header/page-header.component.mjs +21 -0
  132. package/esm2022/lib/sharedComponents/assessment-preview/pipes/get-section-order.pipe.mjs +24 -0
  133. package/esm2022/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +62 -0
  134. package/esm2022/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.mjs +22 -0
  135. package/esm2022/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.mjs +22 -0
  136. package/esm2022/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.mjs +33 -0
  137. package/esm2022/lib/sharedComponents/assessment-preview/section-details/section-details.component.mjs +20 -0
  138. package/esm2022/lib/sharedComponents/assessment-preview/select-question/select-question.component.mjs +35 -0
  139. package/esm2022/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.mjs +21 -0
  140. package/esm2022/lib/sharedComponents/assessment-preview/welcome/welcome.component.mjs +17 -0
  141. package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +61 -0
  142. package/esm2022/lib/sharedComponents/audit-category-list/audit-category.model.mjs +2 -0
  143. package/esm2022/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +72 -0
  144. package/esm2022/lib/sharedComponents/bulk-view/bulk-view.component.mjs +75 -0
  145. package/esm2022/lib/sharedComponents/category-list/category-list.component.mjs +84 -0
  146. package/esm2022/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +166 -0
  147. package/esm2022/lib/sharedComponents/checkbox-list/checkbox-list.component.mjs +92 -0
  148. package/esm2022/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +315 -0
  149. package/esm2022/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.mjs +25 -0
  150. package/esm2022/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +149 -0
  151. package/esm2022/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.mjs +48 -0
  152. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +77 -0
  153. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.mjs +14 -0
  154. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +197 -0
  155. package/esm2022/lib/sharedComponents/directive/autofocus.directive.mjs +22 -0
  156. package/esm2022/lib/sharedComponents/directive/conditional-focus.directive.mjs +35 -0
  157. package/esm2022/lib/sharedComponents/directive/drag-drop.directive.mjs +52 -0
  158. package/esm2022/lib/sharedComponents/directive/input-trim.directive.mjs +21 -0
  159. package/esm2022/lib/sharedComponents/directive/scroll-in-view.directive.mjs +35 -0
  160. package/esm2022/lib/sharedComponents/document-section/document-section.component.mjs +184 -0
  161. package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +122 -0
  162. package/esm2022/lib/sharedComponents/floating-bar/floating-bar.module.mjs +20 -0
  163. package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +308 -0
  164. package/esm2022/lib/sharedComponents/framework-list/framework-integration-interfaces.mjs +2 -0
  165. package/esm2022/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.mjs +38 -0
  166. package/esm2022/lib/sharedComponents/framework-list/framework-list.component.mjs +429 -0
  167. package/esm2022/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.mjs +43 -0
  168. package/esm2022/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.mjs +15 -0
  169. package/esm2022/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +95 -0
  170. package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +297 -0
  171. package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +218 -0
  172. package/esm2022/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.mjs +36 -0
  173. package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +303 -0
  174. package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +152 -0
  175. package/esm2022/lib/sharedComponents/frequency/frequency-due-date/due-date.contant.mjs +21 -0
  176. package/esm2022/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +83 -0
  177. package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +199 -0
  178. package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/lifecycl.constant.mjs +12 -0
  179. package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +223 -0
  180. package/esm2022/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +170 -0
  181. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +189 -0
  182. package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +75 -0
  183. package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +214 -0
  184. package/esm2022/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +36 -0
  185. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +253 -0
  186. package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +213 -0
  187. package/esm2022/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +133 -0
  188. package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +200 -0
  189. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +573 -0
  190. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +300 -0
  191. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +216 -0
  192. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.mjs +29 -0
  193. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +296 -0
  194. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +110 -0
  195. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +227 -0
  196. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +213 -0
  197. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +212 -0
  198. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +33 -0
  199. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +128 -0
  200. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +197 -0
  201. package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +259 -0
  202. package/esm2022/lib/sharedComponents/link-program/link-program/link-program.component.mjs +472 -0
  203. package/esm2022/lib/sharedComponents/link-program/link-program/program-list-model.mjs +2 -0
  204. package/esm2022/lib/sharedComponents/link-program/program-integration-interfaces.mjs +2 -0
  205. package/esm2022/lib/sharedComponents/link-program/restapi.service.mjs +149 -0
  206. package/esm2022/lib/sharedComponents/link-program/tooltip-validation.pipe.mjs +28 -0
  207. package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +221 -0
  208. package/esm2022/lib/sharedComponents/list-loader/list-loader.component.mjs +15 -0
  209. package/esm2022/lib/sharedComponents/list-loader/list-loader.module.mjs +18 -0
  210. package/esm2022/lib/sharedComponents/no-data/no-data.component.mjs +36 -0
  211. package/esm2022/lib/sharedComponents/no-data/no-data.module.mjs +18 -0
  212. package/esm2022/lib/sharedComponents/owner-list/owner-list.component.mjs +176 -0
  213. package/esm2022/lib/sharedComponents/pipes/array-filter.pipe.mjs +18 -0
  214. package/esm2022/lib/sharedComponents/pipes/filterPipe.mjs +30 -0
  215. package/esm2022/lib/sharedComponents/pipes/rcTreeToolTip.pipe.mjs +26 -0
  216. package/esm2022/lib/sharedComponents/pipes/short-merge.pipe.mjs +24 -0
  217. package/esm2022/lib/sharedComponents/pipes/spaceTrim.pipe.mjs +18 -0
  218. package/esm2022/lib/sharedComponents/pipes/within-data.pipe.mjs +21 -0
  219. package/esm2022/lib/sharedComponents/policy-access/policy-access.component.mjs +88 -0
  220. package/esm2022/lib/sharedComponents/program-listing/program-list-model.mjs +2 -0
  221. package/esm2022/lib/sharedComponents/program-listing/program-listing.component.mjs +739 -0
  222. package/esm2022/lib/sharedComponents/radio-list/radio-list.component.mjs +82 -0
  223. package/esm2022/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.mjs +14 -0
  224. package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +128 -0
  225. package/esm2022/lib/sharedComponents/responsibility-centers-list/rc-list.module.mjs +40 -0
  226. package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +125 -0
  227. package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +81 -0
  228. package/esm2022/lib/sharedComponents/review-frequency/review-frequency.component.mjs +44 -0
  229. package/esm2022/lib/sharedComponents/risk-classification/risk-classification.component.mjs +102 -0
  230. package/esm2022/lib/sharedComponents/roles-list/roles-list.component.mjs +30 -0
  231. package/esm2022/lib/sharedComponents/select-approvers/select-approvers.component.mjs +78 -0
  232. package/esm2022/lib/sharedComponents/table-card-loader/table-card-loader.component.mjs +15 -0
  233. package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +83 -0
  234. package/esm2022/lib/sharedComponents/v-loader/loader/loader.component.mjs +21 -0
  235. package/esm2022/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.mjs +21 -0
  236. package/esm2022/lib/sharedComponents/v-loader/v-loader.module.mjs +19 -0
  237. package/esm2022/lib/ui-kit/action-dialog/action-dialog.module.mjs +21 -0
  238. package/esm2022/lib/ui-kit/action-dialog/active/active.component.mjs +32 -0
  239. package/esm2022/lib/ui-kit/action-dialog/deactivate/deactivate.component.mjs +33 -0
  240. package/esm2022/lib/ui-kit/action-dialog/delete/delete.component.mjs +26 -0
  241. package/esm2022/lib/ui-kit/action-dialog/duplicate/duplicate.component.mjs +28 -0
  242. package/esm2022/lib/ui-kit/click-outside/click-outside.directive.mjs +29 -0
  243. package/esm2022/lib/ui-kit/click-outside/click-outside.module.mjs +22 -0
  244. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +3 -0
  245. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +14 -0
  246. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
  247. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +88 -0
  248. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -0
  249. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +58 -0
  250. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +16 -0
  251. package/esm2022/lib/ui-kit/directive/directive.module.mjs +24 -0
  252. package/esm2022/lib/ui-kit/directive/stop-propagation.directive.mjs +20 -0
  253. package/esm2022/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.mjs +15 -0
  254. package/esm2022/lib/ui-kit/editor-loader/editor-loader.module.mjs +22 -0
  255. package/esm2022/lib/ui-kit/format-html.pipe.mjs +20 -0
  256. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +29 -0
  257. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +31 -0
  258. package/esm2022/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
  259. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +30 -0
  260. package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  261. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +100 -0
  262. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +32 -0
  263. package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +60 -0
  264. package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -0
  265. package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -0
  266. package/esm2022/lib/ui-kit/line-loader/line-loader.component.mjs +15 -0
  267. package/esm2022/lib/ui-kit/line-loader/line-loader.module.mjs +18 -0
  268. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +45 -0
  269. package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -0
  270. package/esm2022/lib/ui-kit/pagination/pagination/pagination.component.mjs +116 -0
  271. package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +28 -0
  272. package/esm2022/lib/ui-kit/popover/popover-event.directive.mjs +28 -0
  273. package/esm2022/lib/ui-kit/popover/popover-longpress.directive.mjs +44 -0
  274. package/esm2022/lib/ui-kit/popover/popover.component.mjs +138 -0
  275. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +97 -0
  276. package/esm2022/lib/ui-kit/popover/popover.module.mjs +23 -0
  277. package/esm2022/lib/ui-kit/popover/popover.service.mjs +15 -0
  278. package/esm2022/lib/ui-kit/popover-hover/popover-hover.component.mjs +109 -0
  279. package/esm2022/lib/ui-kit/popover-hover/popover-hover.directive.mjs +34 -0
  280. package/esm2022/lib/ui-kit/popover-hover/popover-hover.module.mjs +31 -0
  281. package/esm2022/lib/ui-kit/popover-hover/popover-hover.service.mjs +14 -0
  282. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +43 -0
  283. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -0
  284. package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.mjs +43 -0
  285. package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.mjs +18 -0
  286. package/esm2022/lib/ui-kit/snack-bar/snack-bar.component.mjs +51 -0
  287. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  288. package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -0
  289. package/esm2022/lib/ui-kit/time-picker/constants/constant.mjs +5 -0
  290. package/esm2022/lib/ui-kit/time-picker/time-picker/time-picker.component.mjs +220 -0
  291. package/esm2022/lib/ui-kit/time-picker/time-picker.module.mjs +24 -0
  292. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +156 -0
  293. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -0
  294. package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +831 -0
  295. package/esm2022/lib/workflow/grc-object/grc-object.module.mjs +64 -0
  296. package/esm2022/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.mjs +95 -0
  297. package/esm2022/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.mjs +110 -0
  298. package/esm2022/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.mjs +118 -0
  299. package/esm2022/lib/workflow/shared/components/attributes/attributes.component.mjs +100 -0
  300. package/esm2022/lib/workflow/shared/components/attributes/date-picker/date-picker.component.mjs +116 -0
  301. package/esm2022/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +216 -0
  302. package/esm2022/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.mjs +119 -0
  303. package/esm2022/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +198 -0
  304. package/esm2022/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.mjs +202 -0
  305. package/esm2022/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.mjs +191 -0
  306. package/esm2022/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.mjs +86 -0
  307. package/esm2022/lib/workflow/shared/components/list-popup/list-popup.component.mjs +209 -0
  308. package/esm2022/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +411 -0
  309. package/esm2022/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.mjs +241 -0
  310. package/esm2022/lib/workflow/shared/components/table-card/table-card.component.mjs +32 -0
  311. package/esm2022/lib/workflow/shared/components/text-field/text-field.component.mjs +143 -0
  312. package/esm2022/lib/workflow/shared/components/text-field-icon/text-field-icon.component.mjs +56 -0
  313. package/esm2022/lib/workflow/shared/constants/cdn-link.constant.mjs +11 -0
  314. package/esm2022/lib/workflow/shared/constants/field-text.constant.mjs +17 -0
  315. package/esm2022/lib/workflow/shared/constants/grcObject.constant.mjs +88 -0
  316. package/esm2022/lib/workflow/shared/constants/link-responsibility.constant.mjs +19 -0
  317. package/esm2022/lib/workflow/shared/constants/message.contstant.mjs +5 -0
  318. package/esm2022/lib/workflow/shared/constants/pagination-limits.constant.mjs +6 -0
  319. package/esm2022/lib/workflow/shared/constants/svg-link.constant.mjs +4 -0
  320. package/esm2022/lib/workflow/shared/constants/validation-message.constant.mjs +8 -0
  321. package/esm2022/lib/workflow/shared/interfaces/add-grc.mjs +2 -0
  322. package/esm2022/lib/workflow/shared/services/grc.service.mjs +310 -0
  323. package/esm2022/lib/workflow/shared/workflow-pipes/get-selected-value.pipe.mjs +30 -0
  324. package/esm2022/lib/workflow/shared/workflow-pipes/is-attributes-valid.pipe.mjs +48 -0
  325. package/esm2022/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.mjs +24 -0
  326. package/esm2022/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +32 -0
  327. package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +668 -0
  328. package/esm2022/lib/workflow-assessment/workflow-assessment.component.mjs +254 -0
  329. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +3913 -0
  330. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +734 -0
  331. package/esm2022/lib/workflow-engine.module.mjs +467 -0
  332. package/esm2022/lib/workflow-engine.service.mjs +14 -0
  333. package/esm2022/lib/workflow-interfaces/create-policy-form.mjs +2 -0
  334. package/esm2022/lib/workflow-pagination/workflow-pagination.component.mjs +116 -0
  335. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +1875 -0
  336. package/esm2022/lib/workflow-program/constants.mjs +51 -0
  337. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.mjs +15 -0
  338. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +292 -0
  339. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.mjs +15 -0
  340. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.mjs +43 -0
  341. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.mjs +22 -0
  342. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.mjs +116 -0
  343. package/esm2022/lib/workflow-program/create-program-ui/checkbox/checkbox.component.mjs +39 -0
  344. package/esm2022/lib/workflow-program/create-program-ui/create-program-ui.module.mjs +194 -0
  345. package/esm2022/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.mjs +44 -0
  346. package/esm2022/lib/workflow-program/create-program-ui/custom-field/custom-field.component.mjs +82 -0
  347. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +267 -0
  348. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.mjs +44 -0
  349. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.mjs +15 -0
  350. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.mjs +23 -0
  351. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.mjs +23 -0
  352. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +26 -0
  353. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.mjs +68 -0
  354. package/esm2022/lib/workflow-program/create-program-ui/directives/input-trim.directive.mjs +21 -0
  355. package/esm2022/lib/workflow-program/create-program-ui/file-pill/file-pill.component.mjs +27 -0
  356. package/esm2022/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +106 -0
  357. package/esm2022/lib/workflow-program/create-program-ui/form-field/form-field.component.mjs +16 -0
  358. package/esm2022/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.mjs +30 -0
  359. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +166 -0
  360. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination.module.mjs +28 -0
  361. package/esm2022/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.mjs +16 -0
  362. package/esm2022/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +27 -0
  363. package/esm2022/lib/workflow-program/create-program-ui/pipes/filter.pipe.mjs +30 -0
  364. package/esm2022/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.mjs +16 -0
  365. package/esm2022/lib/workflow-program/create-program-ui/pipes/pager.pipe.mjs +21 -0
  366. package/esm2022/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.mjs +17 -0
  367. package/esm2022/lib/workflow-program/create-program-ui/pipes/search.pipe.mjs +23 -0
  368. package/esm2022/lib/workflow-program/create-program-ui/role-list/loader/loader.component.mjs +15 -0
  369. package/esm2022/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +240 -0
  370. package/esm2022/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.mjs +43 -0
  371. package/esm2022/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.mjs +15 -0
  372. package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +434 -0
  373. package/esm2022/lib/workflow-program/workflow-program.component.mjs +1550 -0
  374. package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +1642 -0
  375. package/esm2022/lib/workflow-services/add-risk.service.mjs +150 -0
  376. package/esm2022/lib/workflow-services/assessment.service.mjs +117 -0
  377. package/esm2022/lib/workflow-services/auth.service.mjs +229 -0
  378. package/esm2022/lib/workflow-services/frequency.service.mjs +173 -0
  379. package/esm2022/lib/workflow-services/log-issue.service.mjs +360 -0
  380. package/esm2022/lib/workflow-services/policy.service.mjs +163 -0
  381. package/esm2022/lib/workflow-services/programs.service.mjs +319 -0
  382. package/esm2022/lib/workflow-services/responsibility.service.mjs +293 -0
  383. package/esm2022/lib/workflow-services/token-decoder.service.mjs +38 -0
  384. package/esm2022/lib/workflow-services/ui-kit.service.mjs +17 -0
  385. package/esm2022/lib/workflow-survey-form/workflow-survey-form.component.mjs +26 -0
  386. package/esm2022/public-api.mjs +8 -0
  387. package/esm2022/vcomply-workflow-engine.mjs +5 -0
  388. package/fesm2022/vcomply-workflow-engine.mjs +44351 -0
  389. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -0
  390. package/lib/add-multiple-responsibility/add-multiple-responsibility.component.d.ts +1 -1
  391. package/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.d.ts +1 -1
  392. package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +1 -1
  393. package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +1 -1
  394. package/lib/confirmation-alert/confirmation-alert.component.d.ts +1 -1
  395. package/lib/create-documents/create-documents.component.d.ts +1 -1
  396. package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
  397. package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
  398. package/lib/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
  399. package/lib/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
  400. package/lib/formgroup/cs-select/cs-select.component.d.ts +1 -1
  401. package/lib/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
  402. package/lib/formgroup/select/cs-option/cs-option.component.d.ts +1 -1
  403. package/lib/formgroup/select/cs-select/cs-select.component.d.ts +1 -1
  404. package/lib/log-an-issue/log-an-issue.component.d.ts +7 -3
  405. package/lib/more-option/more-option.component.d.ts +1 -1
  406. package/lib/services/common.service.d.ts +14 -0
  407. package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +1 -1
  408. package/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.d.ts +1 -1
  409. package/lib/sharedComponents/approval-workflow/approval-workflow.component.d.ts +1 -1
  410. package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.d.ts +1 -1
  411. package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +1 -1
  412. package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.d.ts +1 -1
  413. package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.d.ts +1 -1
  414. package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +1 -1
  415. package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.d.ts +1 -1
  416. package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.d.ts +1 -1
  417. package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.d.ts +1 -1
  418. package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.d.ts +1 -1
  419. package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +1 -1
  420. package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.d.ts +1 -1
  421. package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.d.ts +1 -1
  422. package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.d.ts +1 -1
  423. package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.d.ts +1 -1
  424. package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.d.ts +1 -1
  425. package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.d.ts +1 -1
  426. package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.d.ts +1 -1
  427. package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +1 -1
  428. package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.d.ts +1 -1
  429. package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +1 -1
  430. package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.d.ts +1 -1
  431. package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +1 -1
  432. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.d.ts +1 -1
  433. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.d.ts +1 -1
  434. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.d.ts +7 -3
  435. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.d.ts +1 -1
  436. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +1 -1
  437. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.d.ts +1 -1
  438. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.d.ts +1 -1
  439. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.d.ts +1 -1
  440. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.d.ts +1 -1
  441. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.d.ts +1 -1
  442. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.d.ts +1 -1
  443. package/lib/sharedComponents/assessment-editor/components/move/move.component.d.ts +1 -1
  444. package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.d.ts +1 -1
  445. package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.d.ts +1 -1
  446. package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.d.ts +1 -1
  447. package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.d.ts +8 -5
  448. package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.d.ts +1 -1
  449. package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.d.ts +1 -1
  450. package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.d.ts +1 -1
  451. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.d.ts +1 -1
  452. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.d.ts +1 -1
  453. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.d.ts +1 -1
  454. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.d.ts +1 -1
  455. package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.d.ts +1 -1
  456. package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.d.ts +1 -1
  457. package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.d.ts +1 -1
  458. package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.d.ts +1 -1
  459. package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.d.ts +1 -1
  460. package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +1 -1
  461. package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +1 -1
  462. package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.d.ts +1 -1
  463. package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.d.ts +1 -1
  464. package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.d.ts +1 -1
  465. package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.d.ts +1 -1
  466. package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.d.ts +1 -1
  467. package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.d.ts +1 -1
  468. package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.d.ts +1 -1
  469. package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +1 -1
  470. package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +1 -1
  471. package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.d.ts +1 -1
  472. package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.d.ts +1 -1
  473. package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +1 -1
  474. package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.d.ts +1 -1
  475. package/lib/sharedComponents/assessment-preview/date-time/date-time.component.d.ts +8 -5
  476. package/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.d.ts +1 -1
  477. package/lib/sharedComponents/assessment-preview/device/device.component.d.ts +1 -1
  478. package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.d.ts +1 -1
  479. package/lib/sharedComponents/assessment-preview/page-header/page-header.component.d.ts +1 -1
  480. package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +1 -1
  481. package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.d.ts +1 -1
  482. package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.d.ts +1 -1
  483. package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.d.ts +1 -1
  484. package/lib/sharedComponents/assessment-preview/section-details/section-details.component.d.ts +1 -1
  485. package/lib/sharedComponents/assessment-preview/select-question/select-question.component.d.ts +1 -1
  486. package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.d.ts +1 -1
  487. package/lib/sharedComponents/assessment-preview/welcome/welcome.component.d.ts +1 -1
  488. package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +1 -1
  489. package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +1 -1
  490. package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +1 -1
  491. package/lib/sharedComponents/category-list/category-list.component.d.ts +1 -1
  492. package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +1 -1
  493. package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +1 -1
  494. package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts +1 -1
  495. package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts +1 -1
  496. package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts +6 -2
  497. package/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.d.ts +1 -1
  498. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.d.ts +1 -1
  499. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.d.ts +1 -1
  500. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.d.ts +1 -1
  501. package/lib/sharedComponents/directive/autofocus.directive.d.ts +1 -1
  502. package/lib/sharedComponents/directive/conditional-focus.directive.d.ts +1 -1
  503. package/lib/sharedComponents/directive/drag-drop.directive.d.ts +1 -1
  504. package/lib/sharedComponents/directive/input-trim.directive.d.ts +1 -1
  505. package/lib/sharedComponents/directive/scroll-in-view.directive.d.ts +1 -1
  506. package/lib/sharedComponents/document-section/document-section.component.d.ts +1 -1
  507. package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +1 -1
  508. package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +1 -1
  509. package/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.d.ts +1 -1
  510. package/lib/sharedComponents/framework-list/framework-list.component.d.ts +1 -1
  511. package/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.d.ts +1 -1
  512. package/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.d.ts +1 -1
  513. package/lib/sharedComponents/framework-list/parent-table/parent-table.component.d.ts +1 -1
  514. package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +1 -1
  515. package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +1 -1
  516. package/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.d.ts +1 -1
  517. package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +1 -1
  518. package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +1 -1
  519. package/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.d.ts +1 -1
  520. package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +10 -4
  521. package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +1 -1
  522. package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +1 -1
  523. package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +9 -5
  524. package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
  525. package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +1 -1
  526. package/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.d.ts +1 -1
  527. package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -1
  528. package/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.d.ts +1 -1
  529. package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.d.ts +1 -1
  530. package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +1 -1
  531. package/lib/sharedComponents/frequency/frequency.service.d.ts +1 -0
  532. package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +1 -1
  533. package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +1 -1
  534. package/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.d.ts +1 -1
  535. package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +1 -1
  536. package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +1 -1
  537. package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +1 -1
  538. package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +10 -5
  539. package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +1 -1
  540. package/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.d.ts +1 -1
  541. package/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.d.ts +1 -1
  542. package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +1 -1
  543. package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +1 -1
  544. package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +1 -1
  545. package/lib/sharedComponents/link-responsibility/link-responsibility.component.d.ts +1 -1
  546. package/lib/sharedComponents/list-loader/list-loader.component.d.ts +1 -1
  547. package/lib/sharedComponents/no-data/no-data.component.d.ts +1 -1
  548. package/lib/sharedComponents/owner-list/owner-list.component.d.ts +1 -1
  549. package/lib/sharedComponents/policy-access/policy-access.component.d.ts +1 -1
  550. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +1 -1
  551. package/lib/sharedComponents/radio-list/radio-list.component.d.ts +1 -1
  552. package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.d.ts +1 -1
  553. package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +1 -1
  554. package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +1 -1
  555. package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +1 -1
  556. package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +1 -1
  557. package/lib/sharedComponents/risk-classification/risk-classification.component.d.ts +1 -1
  558. package/lib/sharedComponents/roles-list/roles-list.component.d.ts +1 -1
  559. package/lib/sharedComponents/select-approvers/select-approvers.component.d.ts +1 -1
  560. package/lib/sharedComponents/table-card-loader/table-card-loader.component.d.ts +1 -1
  561. package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +1 -1
  562. package/lib/sharedComponents/v-loader/loader/loader.component.d.ts +1 -1
  563. package/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.d.ts +1 -1
  564. package/lib/ui-kit/action-dialog/active/active.component.d.ts +1 -1
  565. package/lib/ui-kit/action-dialog/deactivate/deactivate.component.d.ts +1 -1
  566. package/lib/ui-kit/action-dialog/delete/delete.component.d.ts +1 -1
  567. package/lib/ui-kit/action-dialog/duplicate/duplicate.component.d.ts +1 -1
  568. package/lib/ui-kit/click-outside/click-outside.directive.d.ts +1 -1
  569. package/lib/ui-kit/dialog/dialog-injector.d.ts +2 -2
  570. package/lib/ui-kit/dialog/dialog.component.d.ts +6 -4
  571. package/lib/ui-kit/dialog/dialog.service.d.ts +3 -3
  572. package/lib/ui-kit/dialog/insertion.directive.d.ts +1 -1
  573. package/lib/ui-kit/directive/stop-propagation.directive.d.ts +1 -1
  574. package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.d.ts +1 -1
  575. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +1 -1
  576. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
  577. package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
  578. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
  579. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
  580. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +1 -1
  581. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
  582. package/lib/ui-kit/line-loader/line-loader.component.d.ts +1 -1
  583. package/lib/ui-kit/no-data/no-data.component.d.ts +1 -1
  584. package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +1 -1
  585. package/lib/ui-kit/popover/popover-event.directive.d.ts +1 -1
  586. package/lib/ui-kit/popover/popover-longpress.directive.d.ts +1 -1
  587. package/lib/ui-kit/popover/popover.component.d.ts +1 -1
  588. package/lib/ui-kit/popover/popover.directive.d.ts +1 -1
  589. package/lib/ui-kit/popover-hover/popover-hover.component.d.ts +1 -1
  590. package/lib/ui-kit/popover-hover/popover-hover.directive.d.ts +1 -1
  591. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +1 -1
  592. package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.d.ts +1 -1
  593. package/lib/ui-kit/snack-bar/snack-bar.component.d.ts +1 -1
  594. package/lib/ui-kit/time-picker/time-picker/time-picker.component.d.ts +1 -1
  595. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +1 -1
  596. package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +1 -1
  597. package/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.d.ts +1 -1
  598. package/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.d.ts +1 -1
  599. package/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.d.ts +1 -1
  600. package/lib/workflow/shared/components/attributes/attributes.component.d.ts +1 -1
  601. package/lib/workflow/shared/components/attributes/date-picker/date-picker.component.d.ts +1 -1
  602. package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +1 -1
  603. package/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.d.ts +1 -1
  604. package/lib/workflow/shared/components/grc-object-list/grc-object-list.component.d.ts +1 -1
  605. package/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.d.ts +1 -1
  606. package/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.d.ts +1 -1
  607. package/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.d.ts +1 -1
  608. package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +1 -1
  609. package/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.d.ts +1 -1
  610. package/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.d.ts +1 -1
  611. package/lib/workflow/shared/components/table-card/table-card.component.d.ts +1 -1
  612. package/lib/workflow/shared/components/text-field/text-field.component.d.ts +1 -1
  613. package/lib/workflow/shared/components/text-field-icon/text-field-icon.component.d.ts +1 -1
  614. package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +1 -1
  615. package/lib/workflow-assessment/workflow-assessment.component.d.ts +1 -1
  616. package/lib/workflow-compliance/workflow-compliance.component.d.ts +1 -1
  617. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -1
  618. package/lib/workflow-pagination/workflow-pagination.component.d.ts +1 -1
  619. package/lib/workflow-policy/workflow-policy.component.d.ts +7 -3
  620. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.d.ts +1 -1
  621. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +1 -1
  622. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.d.ts +1 -1
  623. package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.d.ts +1 -1
  624. package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.d.ts +1 -1
  625. package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.d.ts +1 -1
  626. package/lib/workflow-program/create-program-ui/custom-field/custom-field.component.d.ts +1 -1
  627. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +1 -1
  628. package/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.d.ts +1 -1
  629. package/lib/workflow-program/create-program-ui/directives/input-trim.directive.d.ts +1 -1
  630. package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.d.ts +1 -1
  631. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +1 -1
  632. package/lib/workflow-program/create-program-ui/form-field/form-field.component.d.ts +1 -1
  633. package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +1 -1
  634. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +1 -1
  635. package/lib/workflow-program/create-program-ui/role-list/loader/loader.component.d.ts +1 -1
  636. package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +1 -1
  637. package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.d.ts +1 -1
  638. package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.d.ts +1 -1
  639. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +1 -1
  640. package/lib/workflow-program/workflow-program.component.d.ts +1 -1
  641. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  642. package/lib/workflow-services/auth.service.d.ts +0 -1
  643. package/lib/workflow-services/log-issue.service.d.ts +1 -0
  644. package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +1 -1
  645. package/package.json +5 -12
@@ -0,0 +1,831 @@
1
+ import { Component, EventEmitter } from '@angular/core';
2
+ import { FIELD_TEXT } from '../../shared/constants/field-text.constant';
3
+ import { LINKS } from '../../shared/constants/cdn-link.constant';
4
+ import { VALIDATION_MESSAGE } from '../../shared/constants/validation-message.constant';
5
+ import { GrcService } from '../../shared/services/grc.service';
6
+ import { GRC_TYPE_ARRAY, OTHER_GRC_CARD, OTHER_GRC_TAB_INDEX, SMILEY_BUTTONS, UNCATEGORIZED_LINK_CATEGORY, } from '../../shared/constants/grcObject.constant';
7
+ import { SUCCESS_MESSAGE } from '../../shared/constants/message.contstant';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../shared/services/grc.service";
10
+ import * as i2 from "../../../workflow-services/responsibility.service";
11
+ import * as i3 from "../../../workflow-services/auth.service";
12
+ import * as i4 from "../../../workflow-services/ui-kit.service";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "@angular/forms";
15
+ import * as i7 from "../../shared/components/text-field/text-field.component";
16
+ import * as i8 from "../../shared/components/text-field-icon/text-field-icon.component";
17
+ import * as i9 from "@vcomply/editor";
18
+ import * as i10 from "../../shared/components/list-popup/list-popup.component";
19
+ import * as i11 from "../../../workflow-program/create-program-ui/tab-selector/tab-selector.component";
20
+ import * as i12 from "../../shared/components/edit-mode/edit-mode.component";
21
+ import * as i13 from "../../shared/components/attributes/attributes.component";
22
+ import * as i14 from "../../../ui-kit/smiley-dialog-inline/smiley-dialog-inline.component";
23
+ import * as i15 from "../../../sharedComponents/v-loader/loader-inline/loader-inline.component";
24
+ import * as i16 from "../../shared/workflow-pipes/unique-responsibilities.pipe";
25
+ export class GrcObjectContainerComponent {
26
+ constructor(grcService, apiService, authService, uiKitService) {
27
+ this.grcService = grcService;
28
+ this.apiService = apiService;
29
+ this.authService = authService;
30
+ this.uiKitService = uiKitService;
31
+ this.MODE = 'CREATE';
32
+ this.ID = '';
33
+ this.ALL_TEXT = FIELD_TEXT;
34
+ this.CDN_LINK = LINKS;
35
+ this.VALIDATION_MESSAGE = VALIDATION_MESSAGE;
36
+ this.GRC_TYPE_ARRAY = GRC_TYPE_ARRAY;
37
+ this.EDITOR_CONFIG = GrcService.EDITOR_CONFIG;
38
+ this.otherGRCCard = JSON.parse(JSON.stringify(OTHER_GRC_CARD));
39
+ this.LIST_POPUP = ['RC'];
40
+ this.smileyMessage = SUCCESS_MESSAGE.ADD_GRC_OBJECT;
41
+ this.INPUT_TYPE = {
42
+ name: 'NAME',
43
+ owner: 'OWNER',
44
+ RC: 'RC',
45
+ riskCategory: 'RISK_CATEGORY',
46
+ otherGrcObjects: 'OTHER_GRC_OBJECTS',
47
+ programResponsibility: 'PROGRAM_RESPONSIBILITY',
48
+ };
49
+ this.dialogFields = [
50
+ 'RC',
51
+ 'OWNER',
52
+ 'OTHER_GRC_OBJECTS',
53
+ 'RISK_CATEGORY',
54
+ 'ATTRIBUTES',
55
+ 'PROGRAM_RESPONSIBILITY',
56
+ ];
57
+ this.scrollToBottom = false;
58
+ this.grcType = 0;
59
+ this.disabledIds = [];
60
+ this.openedPopup = '';
61
+ this.isLoading = true;
62
+ this.additionalOption = {
63
+ ATTRIBUTES: false,
64
+ LINK_PROGRAM: false,
65
+ LINK_RISK_CATEGORIES_RISKS: false,
66
+ OTHER_GRC_OBJECTS: false,
67
+ };
68
+ this.grcForm = {
69
+ grcObjectType: false,
70
+ linkProgram: false,
71
+ linkRisk: false,
72
+ otherGrcObjects: false,
73
+ };
74
+ this.showSmiley = false;
75
+ this.actionButtons = SMILEY_BUTTONS;
76
+ this.grcDataWithTypes = {
77
+ assets: [],
78
+ processes: [],
79
+ vendors: [],
80
+ inventory: [],
81
+ };
82
+ this.GRCSelectedTab = 0;
83
+ this.otherGRCTabIndex = OTHER_GRC_TAB_INDEX;
84
+ this.isFormSubmitted = false;
85
+ this.grcNameValidationError = '';
86
+ this.isDuplicateName = false;
87
+ this.detailsLoader = false;
88
+ this.selectedCategories = [];
89
+ this.selectedRisks = [];
90
+ this.otherGRCSearch = '';
91
+ this.grcTabLoader = false;
92
+ this.selectedProgram = [];
93
+ this.selectedResponsibility = [];
94
+ this.populateOption = new EventEmitter();
95
+ this.pickerChanged = new EventEmitter();
96
+ this.closeWorkflow = new EventEmitter();
97
+ this.disconnectRefresh = new EventEmitter();
98
+ this.resetForm = new EventEmitter();
99
+ this.hideElementsFromMoreOptions = new EventEmitter();
100
+ this.hideMoreOption = [];
101
+ }
102
+ ngOnDestroy() {
103
+ this.resetGRCForm();
104
+ }
105
+ ngOnInit() {
106
+ this.grcPayload = JSON.parse(JSON.stringify(this.grcService.GRC_PAYLOAD));
107
+ this.grcPayload.type = this.grcType;
108
+ this.listObject = this.grcService.LIST_OBJECT;
109
+ this._initiateAPI();
110
+ this.getSubscriptionDetails();
111
+ }
112
+ getSubscriptionDetails() {
113
+ this.authService.getSubscriptionDetails().subscribe((res) => {
114
+ if (!res[0]?.risk_flag) {
115
+ this.hideMoreOption.push('LINK_RISK_CATEGORIES_RISKS');
116
+ this.hideElementsFromMoreOptions.emit(this.hideMoreOption);
117
+ }
118
+ });
119
+ }
120
+ populateOptionalFields() {
121
+ const activatedOptions = [];
122
+ for (const key of Object.keys(this.additionalOption)) {
123
+ if (this.additionalOption[key] === true) {
124
+ activatedOptions.push(key);
125
+ }
126
+ }
127
+ this.populateOption.emit(activatedOptions);
128
+ }
129
+ //TODO: implement this
130
+ addMoreInfo(event) {
131
+ switch (event?.code) {
132
+ case 'ATTRIBUTES':
133
+ this.grcForm.grcObjectType = event?.checked;
134
+ break;
135
+ case 'LINK_PROGRAM':
136
+ this.grcForm.linkProgram = event?.checked;
137
+ break;
138
+ case 'LINK_RISK_CATEGORIES_RISKS':
139
+ this.grcForm.linkRisk = event?.checked;
140
+ break;
141
+ case 'OTHER_GRC_OBJECTS':
142
+ this.grcForm.otherGrcObjects = event?.checked;
143
+ break;
144
+ }
145
+ this.scrollToBottom = true;
146
+ }
147
+ //TODO: implement this
148
+ onTextChange(event) {
149
+ this.grcPayload.name = event.trim();
150
+ this.openedPopup = '';
151
+ this.grcNameValidationError = '';
152
+ this.isDuplicateName = false;
153
+ }
154
+ //TODO: implement this
155
+ onPopupOpen(type) {
156
+ switch (type) {
157
+ case 'OWNER':
158
+ case 'RC':
159
+ this.openedPopup = type;
160
+ this.pickerChanged.emit(true);
161
+ break;
162
+ case 'OTHER_GRC_OBJECTS':
163
+ this.openedPopup = type;
164
+ this.getOtherGRCObjects({ rc_ids: '' });
165
+ this.getOtherGRCTabCount({ rc_ids: '' });
166
+ this.pickerChanged.emit(true);
167
+ break;
168
+ case 'RISK_CATEGORY':
169
+ this.openedPopup = type;
170
+ this.authService.previewPanel.next(true);
171
+ this.pickerChanged.emit(true);
172
+ break;
173
+ case 'PROGRAM_RESPONSIBILITY':
174
+ this.openedPopup = type;
175
+ this.authService.previewPanel.next(true);
176
+ this.pickerChanged.emit(true);
177
+ break;
178
+ default:
179
+ }
180
+ }
181
+ onSaveSelectedList(event) {
182
+ this.listObject = event;
183
+ if (this.openedPopup === 'OTHER_GRC_OBJECTS') {
184
+ this.setOtherGRCTypesFormate();
185
+ }
186
+ this.setListPayload(this.openedPopup);
187
+ this.openedPopup = '';
188
+ this.pickerChanged.emit(false);
189
+ this.authService.previewPanel.next(false);
190
+ }
191
+ getAttributeSelection(event) {
192
+ if (event) {
193
+ this.openedPopup = '';
194
+ this.pickerChanged.emit(true);
195
+ }
196
+ else {
197
+ this.openedPopup = '';
198
+ this.pickerChanged.emit(false);
199
+ this.authService.previewPanel.next(false);
200
+ }
201
+ }
202
+ setListPayload(type) {
203
+ if (type === 'OWNER') {
204
+ this.grcPayload.owners = this.listObject.OWNER.selectedData.map((item) => item.member_id);
205
+ }
206
+ if (type === 'RC') {
207
+ let previousRCIds = JSON.parse(JSON.stringify(this.grcPayload.rc_ids));
208
+ this.grcPayload.rc_ids = this.listObject.RC.selectedData.map((item) => item?._id);
209
+ if (!previousRCIds.every((id) => this.grcPayload.rc_ids.includes(id))) {
210
+ this.resetDataOnRCChange();
211
+ }
212
+ }
213
+ if (type === 'OTHER_GRC_OBJECTS') {
214
+ this.grcPayload.linked_GRC_ids =
215
+ this.listObject.OTHER_GRC_OBJECTS.selectedData.map((item) => item._id);
216
+ }
217
+ if (type === 'RISK_CATEGORY') {
218
+ this.grcPayload.risk_category_ids = this.getRiskCategoryPayload(this.listObject?.RISK_CATEGORY?.selectedData);
219
+ }
220
+ if (type === 'PROGRAM_RESPONSIBILITY') {
221
+ this.grcPayload.program_category_ids =
222
+ this.getProgramResponsibilityPayload(this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData);
223
+ }
224
+ }
225
+ onClickOutside() {
226
+ //this.openedPopup = '';
227
+ }
228
+ onEdit(event, subType) {
229
+ this.openedPopup = event;
230
+ if (event === 'OTHER_GRC_OBJECTS') {
231
+ this.GRCSelectedTab = this.otherGRCTabIndex[subType] ?? 0;
232
+ this.getOtherGRCObjects({ type: this.GRCSelectedTab, rc_ids: '' });
233
+ this.getOtherGRCTabCount({ rc_ids: '' });
234
+ }
235
+ if (this.LIST_POPUP.includes(event)) {
236
+ this.pickerChanged.emit(true);
237
+ // this.authService.previewPanel.next(true);
238
+ }
239
+ if (event === 'RISK_CATEGORY' || event === 'PROGRAM_RESPONSIBILITY') {
240
+ this.authService.previewPanel.next(true);
241
+ }
242
+ }
243
+ onRemoveData(event, type) {
244
+ switch (type) {
245
+ case 'RC':
246
+ this.listObject[type].selectedData.splice(event.index, 1);
247
+ this.resetDataOnRCChange();
248
+ break;
249
+ case 'OWNER':
250
+ this.listObject[type].selectedData.splice(event.index, 1);
251
+ break;
252
+ case 'OTHER_GRC_OBJECTS':
253
+ this.removeOtherGRCObjects(event?.data);
254
+ break;
255
+ case 'RISK_CATEGORY':
256
+ this.deleteSelectedRisk(event.data?.CategoryIds[0], event?.data);
257
+ break;
258
+ case 'PROGRAM_RESPONSIBILITY':
259
+ this.deleteSelectedResponsibility(event?.data);
260
+ break;
261
+ }
262
+ this.setListPayload(type);
263
+ }
264
+ changeAttributesType(event) {
265
+ this.grcType = event;
266
+ this.grcPayload.type = event;
267
+ this.setDefaultGRCObjectType();
268
+ }
269
+ _initiateAPI() {
270
+ if (this.MODE === 'EDIT') {
271
+ this.getGRCObjectDetails(this.ID);
272
+ this.smileyMessage = SUCCESS_MESSAGE.UPDATE_GRC_OBJECT;
273
+ }
274
+ else {
275
+ this.detailsLoader = false;
276
+ this._getGRCObjectType();
277
+ this._getOwnerList();
278
+ this._getRCList();
279
+ this.getOtherGRCObjects({ rc_ids: '' });
280
+ // this.getOtherGRCTabCount();
281
+ }
282
+ }
283
+ _getOwnerList() {
284
+ this.listObject.OWNER.isLoading = true;
285
+ this.apiService.getGRCOwnerList().subscribe({
286
+ next: (userList) => this.mapUserList(userList),
287
+ error: (error) => { },
288
+ });
289
+ }
290
+ /**
291
+ * The function `mapUserList` maps the user list data and performs some additional operations on each
292
+ * user object.
293
+ * @param {any} userList - The `userList` parameter is an object that contains a `data` property. The
294
+ * `data` property is an array of user objects.
295
+ */
296
+ mapUserList(userList) {
297
+ this.listObject['OWNER']['data'] = {};
298
+ this.listObject['OWNER'].selectedData = [];
299
+ this.disabledIds = [];
300
+ // Map will get remove once API change
301
+ this.listObject['OWNER']['data']['assigneesList'] = userList?.data.map((user) => {
302
+ user.item_name = user.member_name;
303
+ user.employee_name = user.member_name;
304
+ user.my_member_id = user.member_id;
305
+ user.item_id = user.member_id;
306
+ if (['ADMIN', 'KEY_ADMIN'].includes(user.user_role)) {
307
+ this.disabledIds.push(user.member_id);
308
+ this.listObject['OWNER'].selectedData.push(user);
309
+ }
310
+ return user;
311
+ });
312
+ if (this.MODE === 'EDIT') {
313
+ this.listObject.OWNER.selectedData = this.listObject['OWNER']['data']['assigneesList'].filter((item) => this.grcPayload.owners.includes(item?.member_id));
314
+ this.listObject['OWNER'].disabledIds = [...new Set(this.disabledIds)];
315
+ }
316
+ else {
317
+ this.defaultSelectedUser();
318
+ }
319
+ this.listObject.OWNER.isLoading = false;
320
+ this.checkIsDataLoaded();
321
+ }
322
+ /**
323
+ * The function `defaultSelectedUser()` sets the default selected user based on the current user's role
324
+ * and assigns it to the `OWNER` list object.
325
+ */
326
+ defaultSelectedUser() {
327
+ if (!this.authService.isAdmin() && !this.authService.isKeyAdmin()) {
328
+ const USER = this.listObject['OWNER']['data']['assigneesList'].find((user) => user.member_id === this.authService.getMemberId());
329
+ this.listObject['OWNER'].selectedData.push(USER);
330
+ }
331
+ this.listObject['OWNER']['disabledIds'] = [...this.disabledIds];
332
+ this.grcPayload.owners = this.listObject['OWNER'].selectedData.map((user) => user.member_id);
333
+ }
334
+ _getRCList() {
335
+ this.listObject.RC.isLoading = true;
336
+ this.apiService.getResponsibilityCenterList().subscribe((data) => {
337
+ this.listObject['RC']['data'] = data;
338
+ this.listObject.RC.isLoading = false;
339
+ if (this.MODE === 'EDIT') {
340
+ this.listObject.RC.selectedData = data.filter((item) => this.grcPayload.rc_ids.includes(item?._id));
341
+ }
342
+ this.checkIsDataLoaded();
343
+ });
344
+ }
345
+ _getGRCObjectType() {
346
+ this.apiService.getObjectType().subscribe({
347
+ next: (data) => {
348
+ // this.setLinkRiskTab(data);
349
+ const OBJECT_LABEL = {
350
+ ASSETS: 'Asset',
351
+ PROCESSES: 'Process',
352
+ VENDORS: 'Vendor',
353
+ INVENTORY: 'Inventory',
354
+ };
355
+ this.OBJECT_TYPE = data.map((item, index) => {
356
+ item.value = index;
357
+ item.label = OBJECT_LABEL[item?.label?.toUpperCase()] ?? item?.label;
358
+ return item;
359
+ });
360
+ this.ORIGINAL_GRC_ATTRIBUTES = JSON.parse(JSON.stringify(this.OBJECT_TYPE));
361
+ if (this.MODE === 'EDIT') {
362
+ this.OBJECT_TYPE[this.grcType].attributes =
363
+ this.grcPayload.attributes;
364
+ if (this.grcService.checkAttributesSelected(this.OBJECT_TYPE[this.grcType].attributes)) {
365
+ this.grcForm.grcObjectType = true;
366
+ this.additionalOption.ATTRIBUTES = true;
367
+ this.populateOptionalFields();
368
+ }
369
+ }
370
+ this.setDefaultGRCObjectType();
371
+ this.checkIsDataLoaded();
372
+ },
373
+ error: (error) => { },
374
+ });
375
+ }
376
+ setDefaultGRCObjectType() {
377
+ this.selectedAttributes =
378
+ this.OBJECT_TYPE.find((ele) => ele.value === this.grcType) ??
379
+ this.OBJECT_TYPE[0];
380
+ }
381
+ checkIsDataLoaded() {
382
+ this.isLoading =
383
+ this.listObject.OWNER.isLoading ||
384
+ this.listObject.RC.isLoading ||
385
+ this.listObject.OTHER_GRC_OBJECTS.isLoading ||
386
+ (this.MODE === 'EDIT' && this.detailsLoader);
387
+ }
388
+ getOtherGRCObjects(event) {
389
+ if (this.otherGRCSubscription) {
390
+ this.otherGRCSubscription.unsubscribe();
391
+ }
392
+ if (event?.searchString && this.otherGRCSearch !== event?.searchString) {
393
+ this.getOtherGRCTabCount(event);
394
+ }
395
+ this.otherGRCSearch = event?.searchString ?? '';
396
+ this.listObject.OTHER_GRC_OBJECTS.isLoading = true;
397
+ // event['rc_ids'] = this.listObject?.RC?.selectedData
398
+ // ?.map((rc: any) => rc?._id)
399
+ // .join(',');
400
+ this.otherGRCSubscription = this.grcService
401
+ .getGRCList(event)
402
+ .subscribe((data) => {
403
+ this.listObject.OTHER_GRC_OBJECTS.data = data;
404
+ this.listObject.OTHER_GRC_OBJECTS.isLoading = false;
405
+ if (this.MODE === 'EDIT') {
406
+ // this.listObject.OTHER_GRC_OBJECTS.selectedData = data.filter(
407
+ // (item: any) => this.grcPayload.linked_GRC_ids.includes(item?._id)
408
+ // );
409
+ if (this.grcPayload.linked_GRC_ids?.length) {
410
+ this.grcForm.otherGrcObjects = true;
411
+ this.additionalOption.OTHER_GRC_OBJECTS = true;
412
+ this.populateOptionalFields();
413
+ }
414
+ }
415
+ this.checkIsDataLoaded();
416
+ });
417
+ }
418
+ getOtherGRCTabCount(event) {
419
+ this.grcTabLoader = true;
420
+ // event['rc_ids'] = this.listObject?.RC?.selectedData
421
+ // ?.map((rc: any) => rc?._id)
422
+ // .join(',');
423
+ this.grcService.getGRCTabsCount(event).subscribe((data) => {
424
+ this.grcTabLoader = false;
425
+ this.otherGRCCard[0].count = data?.assets_type_count;
426
+ this.otherGRCCard[1].count = data?.processes_type_count;
427
+ this.otherGRCCard[2].count = data?.vendors_type_count;
428
+ this.otherGRCCard[3].count = data?.inventory_type_count;
429
+ });
430
+ }
431
+ getOtherGRCTabIndex(event, data) { }
432
+ //Populate/Edit GRC Object
433
+ getGRCObjectDetails(grcId) {
434
+ this.apiService.getGRCObjectDetails(grcId).subscribe({
435
+ next: (data) => {
436
+ this.openedPopup = '';
437
+ this.populatePayload(data);
438
+ this.createGRCObject(data?.linkedGrcDetails);
439
+ this.detailsLoader = false;
440
+ this._getRCList();
441
+ this._getOwnerList();
442
+ this._getGRCObjectType();
443
+ this.getOtherGRCObjects({ rc_ids: '' });
444
+ },
445
+ error: (error) => {
446
+ console.error('error', error);
447
+ },
448
+ });
449
+ }
450
+ createGRCObject(data) {
451
+ if (data?.length) {
452
+ this.grcForm.otherGrcObjects = true;
453
+ this.additionalOption.OTHER_GRC_OBJECTS = true;
454
+ let GRCObject = {
455
+ assets: [],
456
+ processes: [],
457
+ vendors: [],
458
+ inventory: [],
459
+ };
460
+ this.listObject.OTHER_GRC_OBJECTS.selectedData = [...new Set(data)];
461
+ const GRC_TYPE = GRC_TYPE_ARRAY;
462
+ data.forEach((item) => {
463
+ GRCObject[GRC_TYPE[item?.type ?? 1]].push(item);
464
+ this.otherGRCCard[item?.type].selectedCount += 1;
465
+ });
466
+ this.grcDataWithTypes = GRCObject;
467
+ this.updateOtherGRCObjectsPayload();
468
+ }
469
+ }
470
+ populatePayload(data) {
471
+ this.grcPayload.name = data?.name;
472
+ this.grcPayload.type = data?.type;
473
+ this.grcPayload.owners = data?.owners;
474
+ this.grcPayload.rc_ids = data?.rc_ids;
475
+ this.grcPayload.linked_GRC_ids = data?.linked_GRC_ids;
476
+ this.grcPayload.risk_category_ids =
477
+ this.populateLinkRisk(data?.risk_category_ids) ?? [];
478
+ this.grcPayload.program_category_ids = data?.program_category_ids?.length
479
+ ? this.populateLinkResponsibility(data?.program_category_ids)
480
+ : [];
481
+ this.grcPayload.attributes = data?.attributes;
482
+ this.grcPayload.state = data?.state;
483
+ this.grcPayload.description = data?.description;
484
+ this.grcPayload.frequency = data?.frequency;
485
+ this.grcPayload.parent_grc_ids = data?.parent_grc_ids;
486
+ this.grcPayload.email_notification_member_ids =
487
+ data?.email_notification_member_ids;
488
+ }
489
+ saveGRCObject() {
490
+ this.isFormSubmitted = true;
491
+ if (this.grcForm.grcObjectType) {
492
+ this.grcPayload.attributes = this.selectedAttributes.attributes;
493
+ }
494
+ if (this.grcService.checkValidation(this.grcPayload, this.grcForm.grcObjectType)) {
495
+ this.isLoading = true;
496
+ this.uiKitService.isLoader = true;
497
+ if (this.MODE === 'EDIT') {
498
+ this.updateGRCObject();
499
+ return;
500
+ }
501
+ let PAYLOAD = JSON.parse(JSON.stringify(this.grcPayload));
502
+ PAYLOAD.owners = this.getOwnersExceptDefault(PAYLOAD.owners);
503
+ this.apiService.addGRCObject(PAYLOAD).subscribe({
504
+ next: (data) => {
505
+ this.showSmiley = true;
506
+ this.setMoreOptionsOnSubmit();
507
+ this.uiKitService.isSmileyOn = true;
508
+ this.addedGRC = data;
509
+ },
510
+ error: (error) => {
511
+ this.isLoading = false;
512
+ console.error('error', error, error.status);
513
+ if (error.status === 409 || error.status === 403) {
514
+ this.isDuplicateName = true;
515
+ this.setMoreOptionsOnSubmit();
516
+ this.mapUserList({
517
+ data: this.listObject.OWNER.data.assigneesList,
518
+ });
519
+ this.grcNameValidationError = VALIDATION_MESSAGE.grc_exists;
520
+ }
521
+ },
522
+ });
523
+ }
524
+ else {
525
+ return;
526
+ }
527
+ }
528
+ resetGRCObject() {
529
+ this.MODE = 'CREATE';
530
+ this.smileyMessage = SUCCESS_MESSAGE.ADD_GRC_OBJECT;
531
+ this.grcPayload = JSON.parse(JSON.stringify(this.grcService.GRC_PAYLOAD));
532
+ this.grcPayload.type = this.grcType;
533
+ this.isFormSubmitted = false;
534
+ this.isDuplicateName = false;
535
+ this.uiKitService.isSmileyOn = false;
536
+ this.hideElementsFromMoreOptions.emit(this.hideMoreOption);
537
+ this.OBJECT_TYPE = JSON.parse(JSON.stringify(this.ORIGINAL_GRC_ATTRIBUTES));
538
+ this.otherGRCCard = JSON.parse(JSON.stringify(OTHER_GRC_CARD));
539
+ this.resetOtherGRCCard();
540
+ this.setDefaultGRCObjectType();
541
+ this.resetGRCDataWithTypes();
542
+ this.resetListObjectSelection();
543
+ this.mapUserList({ data: this.listObject.OWNER.data.assigneesList });
544
+ }
545
+ resetListObjectSelection() {
546
+ this.listObject.OWNER.selectedData = [];
547
+ this.listObject.RC.selectedData = [];
548
+ this.listObject.OTHER_GRC_OBJECTS.selectedData = [];
549
+ this.listObject.RISK_CATEGORY.selectedData = [];
550
+ this.listObject.PROGRAM_RESPONSIBILITY.selectedData = [];
551
+ }
552
+ smileyActions(event) {
553
+ this.showSmiley = false;
554
+ this.isLoading = false;
555
+ if (event === 'addMore') {
556
+ this.resetGRCForm();
557
+ }
558
+ else if (event === 'view') {
559
+ this.resetGRCForm();
560
+ this.viewGRC();
561
+ }
562
+ }
563
+ closeSmiley(event) {
564
+ this.showSmiley = false;
565
+ this.isLoading = false;
566
+ this.uiKitService.isSmileyOn = false;
567
+ this.resetGRCForm();
568
+ this.closeWorkflow.emit({ evt: this.addedGRC, confirm: false });
569
+ }
570
+ resetGRCForm() {
571
+ this.MODE = 'CREATE';
572
+ this.resetGRCObject();
573
+ this.grcForm.otherGrcObjects = false;
574
+ this.grcForm.linkRisk = false;
575
+ this.grcForm.linkProgram = false;
576
+ this.grcForm.grcObjectType = false;
577
+ this.resetForm.emit(true);
578
+ }
579
+ viewGRC() {
580
+ let url;
581
+ this.disconnectRefresh.emit(false);
582
+ if (window.location.host.startsWith('localhost')) {
583
+ url = 'http://' + window.location.host + '/#/manage-grc-objects';
584
+ }
585
+ else {
586
+ url =
587
+ 'https://' +
588
+ window.location.host +
589
+ '/organization/#/manage-grc-objects';
590
+ }
591
+ if (this.MODE !== 'EDIT') {
592
+ window.location.href = url;
593
+ }
594
+ this.resetGRCForm();
595
+ this.closeSmiley('');
596
+ this.closeWorkflow.emit({ evt: this.addedGRC, confirm: false });
597
+ }
598
+ setOtherGRCTypesFormate() {
599
+ const grcTypes = GRC_TYPE_ARRAY;
600
+ this.resetGRCDataWithTypes();
601
+ this.listObject?.OTHER_GRC_OBJECTS?.selectedData?.forEach((item) => {
602
+ this.grcDataWithTypes[grcTypes[item?.type]]?.push(item);
603
+ });
604
+ this.updateOtherGRCObjectsPayload();
605
+ }
606
+ removeOtherGRCObjects(event) {
607
+ const grcTypes = GRC_TYPE_ARRAY;
608
+ this.listObject.OTHER_GRC_OBJECTS.selectedData =
609
+ this.listObject.OTHER_GRC_OBJECTS.selectedData.filter((grc) => grc?._id !== event?._id);
610
+ this.filterOtherGRCData(event, grcTypes[event?.type]);
611
+ this.otherGRCCard[0].selectedCount
612
+ ? (this.otherGRCCard[event?.type].selectedCount -= 1)
613
+ : 0;
614
+ this.updateOtherGRCObjectsPayload();
615
+ }
616
+ filterOtherGRCData(event, type) {
617
+ this.grcDataWithTypes[type] = this.grcDataWithTypes[type]?.filter((grc) => grc?._id !== event?._id);
618
+ }
619
+ resetGRCDataWithTypes() {
620
+ this.grcDataWithTypes = {
621
+ assets: [],
622
+ processes: [],
623
+ vendors: [],
624
+ inventory: [],
625
+ };
626
+ }
627
+ get grcValidationCheck() {
628
+ if (this.isFormSubmitted && !this.grcPayload.name) {
629
+ this.grcNameValidationError = VALIDATION_MESSAGE.grcObjectName;
630
+ }
631
+ return (this.isFormSubmitted && !(this.grcPayload.name || this.isDuplicateName));
632
+ }
633
+ getRiskCategoryPayload(selectedData) {
634
+ const riskCategoryPayload = [];
635
+ this.selectedRisks = [];
636
+ this.selectedCategories = [];
637
+ selectedData.forEach((item) => {
638
+ riskCategoryPayload.push({
639
+ category_id: [item?.category?.category_id ?? []],
640
+ risk_ids: item?.risks?.map((risk) => risk?.RiskId),
641
+ });
642
+ this.selectedRisks?.push(...item?.risks);
643
+ this.selectedCategories.push(item?.category);
644
+ });
645
+ return riskCategoryPayload;
646
+ }
647
+ getProgramResponsibilityPayload(selectedData) {
648
+ const riskResponsibilityPayload = [];
649
+ this.selectedResponsibility = [];
650
+ this.selectedProgram = [];
651
+ selectedData.forEach((item) => {
652
+ const parentId = item?.program?.programId;
653
+ riskResponsibilityPayload.push({
654
+ parentId: parentId,
655
+ category_id: [...item?.category] || [],
656
+ responsibility_ids: item?.responsibility?.map((resp) => resp?.ReportId),
657
+ });
658
+ this.selectedResponsibility?.push(...item?.responsibility);
659
+ this.selectedProgram.push(item?.program);
660
+ });
661
+ return riskResponsibilityPayload;
662
+ }
663
+ updateGRCObject() {
664
+ let PAYLOAD = JSON.parse(JSON.stringify(this.grcPayload));
665
+ PAYLOAD.owners = this.getOwnersExceptDefault(PAYLOAD.owners);
666
+ this.apiService.updateGRCObject(PAYLOAD, this.ID).subscribe({
667
+ next: (data) => {
668
+ this.showSmiley = true;
669
+ this.setMoreOptionsOnSubmit();
670
+ this.uiKitService.isSmileyOn = true;
671
+ this.addedGRC = data;
672
+ },
673
+ error: (error) => {
674
+ this.isLoading = false;
675
+ console.error('error', error, error.status);
676
+ if (error.status === 409) {
677
+ this.isDuplicateName = true;
678
+ this.setMoreOptionsOnSubmit();
679
+ this.grcNameValidationError = VALIDATION_MESSAGE.grc_exists;
680
+ }
681
+ },
682
+ });
683
+ }
684
+ updateOtherGRCObjectsPayload() {
685
+ this.grcPayload.linked_GRC_ids =
686
+ this.listObject.OTHER_GRC_OBJECTS.selectedData.map((item) => item._id);
687
+ }
688
+ deleteSelectedRisk(categoryId, risk) {
689
+ const categoryIndex = this.findCheckedCategoryIndex(categoryId);
690
+ if (categoryIndex !== -1) {
691
+ // Category exists, update risk value
692
+ const riskIndex = this.listObject?.RISK_CATEGORY?.selectedData[categoryIndex]?.risks?.findIndex((item) => item?._id === risk?._id);
693
+ if (riskIndex !== -1) {
694
+ this.listObject?.RISK_CATEGORY?.selectedData[categoryIndex]?.risks.splice(riskIndex, 1);
695
+ }
696
+ if (this.listObject?.RISK_CATEGORY?.selectedData[categoryIndex]?.risks
697
+ ?.length === 0) {
698
+ // Remove category if selectedListData is empty
699
+ this.listObject?.RISK_CATEGORY?.selectedData.splice(categoryIndex, 1);
700
+ }
701
+ }
702
+ this.grcPayload.risk_category_ids = this.getRiskCategoryPayload(this.listObject?.RISK_CATEGORY?.selectedData);
703
+ }
704
+ deleteSelectedResponsibility(responsibility) {
705
+ this.listObject.PROGRAM_RESPONSIBILITY.selectedData =
706
+ this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.map((data) => {
707
+ let filteredResponsibility = data?.responsibility?.filter((resp) => resp?._id !== responsibility?._id);
708
+ return {
709
+ ...data,
710
+ responsibility: filteredResponsibility,
711
+ category: [
712
+ ...(new Set(filteredResponsibility.map((obj) => data?.category)?.flat()) || []),
713
+ ],
714
+ };
715
+ });
716
+ this.listObject.PROGRAM_RESPONSIBILITY.selectedData =
717
+ this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData.filter((data) => {
718
+ return data?.responsibility?.length > 0;
719
+ });
720
+ this.grcPayload.program_category_ids = this.getProgramResponsibilityPayload(this.listObject?.PROGRAM_RESPONSIBILITY?.selectedData);
721
+ }
722
+ findCheckedCategoryIndex(categoryId) {
723
+ let categoryIndex = -1;
724
+ if (Array.isArray(categoryId) && categoryId?.length === 0) {
725
+ // Handle empty categoryId array case
726
+ const uncategorizedIndex = this.listObject?.RISK_CATEGORY?.selectedData.findIndex((cat) => cat?.category?._id === 'uncategorized');
727
+ if (uncategorizedIndex !== -1) {
728
+ return uncategorizedIndex;
729
+ }
730
+ }
731
+ else {
732
+ categoryIndex = this.listObject?.RISK_CATEGORY?.selectedData.findIndex((cat) => cat?.category?.category_id === categoryId);
733
+ }
734
+ return categoryIndex;
735
+ }
736
+ setLinkRiskTab(tabDetails) {
737
+ this.otherGRCCard = tabDetails.map((tab, index) => {
738
+ return {
739
+ title: tab?.label,
740
+ count: 0,
741
+ selectedCount: 0,
742
+ key: tab?.label?.toLowerCase(),
743
+ type: index,
744
+ };
745
+ });
746
+ this.getOtherGRCTabCount({ rc_ids: '' });
747
+ }
748
+ populateLinkRisk(selectedData) {
749
+ let updatedData = selectedData?.map((data) => {
750
+ if (data?.category_id && Object?.keys(data?.category_id)?.length === 0) {
751
+ return {
752
+ ...data,
753
+ category: UNCATEGORIZED_LINK_CATEGORY,
754
+ };
755
+ }
756
+ return {
757
+ ...data,
758
+ category: {
759
+ category_id: data?.category_id[0],
760
+ },
761
+ };
762
+ });
763
+ if (updatedData.length) {
764
+ this.grcForm.linkRisk = true;
765
+ this.additionalOption.LINK_RISK_CATEGORIES_RISKS = true;
766
+ this.populateOptionalFields();
767
+ }
768
+ this.listObject.RISK_CATEGORY.selectedData = updatedData;
769
+ return this.getRiskCategoryPayload(updatedData);
770
+ }
771
+ populateLinkResponsibility(selectedData) {
772
+ let updatedData = selectedData?.map((data) => {
773
+ return {
774
+ program: {
775
+ programId: data?.parentId,
776
+ },
777
+ category: [data?.parentId].concat.apply([], Object.values(data?.category_id)),
778
+ responsibility: data?.responsibility_ids || [],
779
+ };
780
+ });
781
+ if (updatedData.length) {
782
+ this.grcForm.linkProgram = true;
783
+ this.additionalOption.LINK_PROGRAM = true;
784
+ this.populateOptionalFields();
785
+ }
786
+ this.listObject.PROGRAM_RESPONSIBILITY.selectedData = updatedData;
787
+ return this.getProgramResponsibilityPayload(updatedData);
788
+ }
789
+ getOwnersExceptDefault(users) {
790
+ const usersId = users.filter((user) => !this.disabledIds.includes(user));
791
+ return usersId || [];
792
+ }
793
+ setMoreOptionsOnSubmit() {
794
+ this.isLoading = false;
795
+ this.uiKitService.isLoader = false;
796
+ }
797
+ resetOtherGRCCard() {
798
+ this.otherGRCCard.forEach((tab) => {
799
+ tab.count = 0;
800
+ tab.selectedCount = 0;
801
+ });
802
+ }
803
+ resetDataOnRCChange() {
804
+ this.listObject.PROGRAM_RESPONSIBILITY.selectedData = [];
805
+ this.listObject.RISK_CATEGORY.selectedData = [];
806
+ if (this.listObject.RC.selectedData.length === 0) {
807
+ this.resetMoreOptionsOnRCChange();
808
+ }
809
+ }
810
+ resetMoreOptionsOnRCChange() {
811
+ this.grcForm.linkProgram = false;
812
+ this.additionalOption.LINK_PROGRAM = false;
813
+ this.grcForm.linkRisk = false;
814
+ this.additionalOption.LINK_RISK_CATEGORIES_RISKS = false;
815
+ this.populateOptionalFields();
816
+ }
817
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GrcObjectContainerComponent, deps: [{ token: i1.GrcService }, { token: i2.ResponsibilityService }, { token: i3.AuthService }, { token: i4.UiKitService }], target: i0.ɵɵFactoryTarget.Component }); }
818
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GrcObjectContainerComponent, selector: "lib-grc-object-container", inputs: { grcType: "grcType", MODE: "MODE", ID: "ID" }, outputs: { populateOption: "populateOption", pickerChanged: "pickerChanged", closeWorkflow: "closeWorkflow", disconnectRefresh: "disconnectRefresh", resetForm: "resetForm", hideElementsFromMoreOptions: "hideElementsFromMoreOptions" }, ngImport: i0, template: "<ng-container *ngIf=\"!showSmiley\">\r\n <div class=\"workflow-grc\">\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"!isLoading\"\r\n >\r\n <lib-text-field-icon\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n [cdnLink]=\"CDN_LINK.grcType\"\r\n [isChecked]=\"true\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n GRC OBJECT TYPE<span class=\"required\">*</span>\r\n </label>\r\n <div class=\"select\">\r\n <tab-selector\r\n [selectedItem]=\"grcPayload.type\"\r\n [displayArray]=\"OBJECT_TYPE\"\r\n (onValueChanged)=\"changeAttributesType($event)\"\r\n ></tab-selector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Object name field -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.name &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [titleText]=\"ALL_TEXT?.grcObjectName\"\r\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\"\r\n [(textValue)]=\"grcPayload.name\"\r\n (textValueChange)=\"onTextChange($event)\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcObjectName\"\r\n [isChecked]=\"grcPayload.name\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [selectedData]=\"[grcPayload]\"\r\n [type]=\"'text'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.name)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"grcValidationCheck || isDuplicateName\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ grcNameValidationError }}\r\n </p>\r\n <vcomply-editor\r\n [editorConfig]=\"EDITOR_CONFIG\"\r\n [(ngModel)]=\"grcPayload.description\"\r\n rich-text-editor\r\n ></vcomply-editor>\r\n </lib-text-field>\r\n\r\n <!-- Specify Owners -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.owner &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\"\r\n [isEditMode]=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcOwnersTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcOwners\"\r\n [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [nonRemovableIds]=\"disabledIds\"\r\n [countColor]=\"'greenBg'\"\r\n [selectedData]=\"listObject.OWNER?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Responsibility Centers (RC) -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.RC &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\"\r\n [isEditMode]=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcRCTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcRC\"\r\n [isChecked]=\"listObject.RC?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\"\r\n [selectedData]=\"listObject.RC?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ VALIDATION_MESSAGE.grcRC }}\r\n </p>\r\n </lib-text-field>\r\n\r\n <!-- Link Program and Responsibility -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\"\r\n *ngIf=\"grcForm?.linkProgram\"\r\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\"\r\n [isEditMode]=\"\r\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\r\n [selectedData]=\"selectedResponsibility | uniqueResponsibilities : 'entireObject'\"\r\n [nameDisplayKey]=\"'ReportName'\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Risk Categories and Risk -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.riskCategory &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\"\r\n *ngIf=\"grcForm?.linkRisk\"\r\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\"\r\n [isEditMode]=\"\r\n listObject?.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.riskCategory\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkGRC\"\r\n [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\"\r\n [selectedData]=\"selectedRisks\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n </div>\r\n\r\n <!-- Link Other GRC Objects -->\r\n <lib-text-field\r\n *ngIf=\"grcForm?.otherGrcObjects\"\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\"\r\n [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\r\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\"\r\n [isEditMode]=\"\r\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngFor=\"let data of GRC_TYPE_ARRAY\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\"\r\n [selectedData]=\"grcDataWithTypes[data]\"\r\n [type]=\"'list'\"\r\n [isMultiple]=\"true\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\"\r\n edit-mode\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n {{ data | titlecase }}\r\n </div>\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n <lib-attributes\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\"\r\n [attributesInfo]=\"selectedAttributes\"\r\n [isFormSubmitted]=\"isFormSubmitted\"\r\n (onClick)=\"getAttributeSelection($event)\"\r\n ></lib-attributes>\r\n <lib-list-popup\r\n [openedPopup]=\"openedPopup\"\r\n [listObject]=\"listObject\"\r\n [tableCard]=\"otherGRCCard\"\r\n [otherGrcCardLoader]=\"grcTabLoader\"\r\n [GRCSelectedTab]=\"GRCSelectedTab\"\r\n [mode]=\"MODE\"\r\n [onEditGRCId]=\"ID\"\r\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\r\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\r\n ></lib-list-popup>\r\n</ng-container>\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyActions($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n></app-smiley-dialog-inline>\r\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .workflow-grc{position:relative}.disabled{opacity:.5;pointer-events:none}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.TextFieldComponent, selector: "lib-text-field", inputs: ["titleText", "placeholderText", "textValue", "isReadOnly", "isEditMode", "disabled", "active"], outputs: ["textValueChange", "onClick", "clickOutside"] }, { kind: "component", type: i8.TextFieldIconComponent, selector: "lib-text-field-icon", inputs: ["cdnLink", "altName", "isChecked"] }, { kind: "component", type: i9.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "component", type: i10.ListPopupComponent, selector: "lib-list-popup", inputs: ["openedPopup", "listObject", "tableCard", "GRCSelectedTab", "onEditGRCId", "mode"], outputs: ["onSaveSelectedList", "getOtherGRCObjects"] }, { kind: "component", type: i11.TabSelector, selector: "tab-selector", inputs: ["disabled", "selectedItem", "displayArray"], outputs: ["onValueChanged"] }, { kind: "component", type: i12.EditModeComponent, selector: "lib-edit-mode", inputs: ["selectedData", "type", "nonRemovableIds", "isMultiple", "countColor", "nameDisplayKey"], outputs: ["isOnEdit", "onRemoveData"] }, { kind: "component", type: i13.AttributesComponent, selector: "lib-attributes", inputs: ["attributesInfo", "isFormSubmitted", "disabled"], outputs: ["onAttributesSelection", "onClick"] }, { kind: "component", type: i14.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "component", type: i15.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i16.UniqueResponsibilitiesPipe, name: "uniqueResponsibilities" }] }); }
819
+ }
820
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GrcObjectContainerComponent, decorators: [{
821
+ type: Component,
822
+ args: [{ selector: 'lib-grc-object-container', outputs: [
823
+ 'populateOption',
824
+ 'pickerChanged',
825
+ 'closeWorkflow',
826
+ 'disconnectRefresh',
827
+ 'resetForm',
828
+ 'hideElementsFromMoreOptions',
829
+ ], inputs: ['grcType', 'MODE', 'ID'], template: "<ng-container *ngIf=\"!showSmiley\">\r\n <div class=\"workflow-grc\">\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"!isLoading\"\r\n >\r\n <lib-text-field-icon\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n [cdnLink]=\"CDN_LINK.grcType\"\r\n [isChecked]=\"true\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n GRC OBJECT TYPE<span class=\"required\">*</span>\r\n </label>\r\n <div class=\"select\">\r\n <tab-selector\r\n [selectedItem]=\"grcPayload.type\"\r\n [displayArray]=\"OBJECT_TYPE\"\r\n (onValueChanged)=\"changeAttributesType($event)\"\r\n ></tab-selector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Object name field -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.name &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [titleText]=\"ALL_TEXT?.grcObjectName\"\r\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\"\r\n [(textValue)]=\"grcPayload.name\"\r\n (textValueChange)=\"onTextChange($event)\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcObjectName\"\r\n [isChecked]=\"grcPayload.name\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [selectedData]=\"[grcPayload]\"\r\n [type]=\"'text'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.name)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"grcValidationCheck || isDuplicateName\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ grcNameValidationError }}\r\n </p>\r\n <vcomply-editor\r\n [editorConfig]=\"EDITOR_CONFIG\"\r\n [(ngModel)]=\"grcPayload.description\"\r\n rich-text-editor\r\n ></vcomply-editor>\r\n </lib-text-field>\r\n\r\n <!-- Specify Owners -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.owner &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\"\r\n [isEditMode]=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcOwnersTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcOwners\"\r\n [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [nonRemovableIds]=\"disabledIds\"\r\n [countColor]=\"'greenBg'\"\r\n [selectedData]=\"listObject.OWNER?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Responsibility Centers (RC) -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.RC &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\"\r\n [isEditMode]=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcRCTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcRC\"\r\n [isChecked]=\"listObject.RC?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\"\r\n [selectedData]=\"listObject.RC?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ VALIDATION_MESSAGE.grcRC }}\r\n </p>\r\n </lib-text-field>\r\n\r\n <!-- Link Program and Responsibility -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\"\r\n *ngIf=\"grcForm?.linkProgram\"\r\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\"\r\n [isEditMode]=\"\r\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\r\n [selectedData]=\"selectedResponsibility | uniqueResponsibilities : 'entireObject'\"\r\n [nameDisplayKey]=\"'ReportName'\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Risk Categories and Risk -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.riskCategory &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\"\r\n *ngIf=\"grcForm?.linkRisk\"\r\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\"\r\n [isEditMode]=\"\r\n listObject?.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.riskCategory\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkGRC\"\r\n [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\"\r\n [selectedData]=\"selectedRisks\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n </div>\r\n\r\n <!-- Link Other GRC Objects -->\r\n <lib-text-field\r\n *ngIf=\"grcForm?.otherGrcObjects\"\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\"\r\n [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\r\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\"\r\n [isEditMode]=\"\r\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngFor=\"let data of GRC_TYPE_ARRAY\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\"\r\n [selectedData]=\"grcDataWithTypes[data]\"\r\n [type]=\"'list'\"\r\n [isMultiple]=\"true\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\"\r\n edit-mode\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n {{ data | titlecase }}\r\n </div>\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n <lib-attributes\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\"\r\n [attributesInfo]=\"selectedAttributes\"\r\n [isFormSubmitted]=\"isFormSubmitted\"\r\n (onClick)=\"getAttributeSelection($event)\"\r\n ></lib-attributes>\r\n <lib-list-popup\r\n [openedPopup]=\"openedPopup\"\r\n [listObject]=\"listObject\"\r\n [tableCard]=\"otherGRCCard\"\r\n [otherGrcCardLoader]=\"grcTabLoader\"\r\n [GRCSelectedTab]=\"GRCSelectedTab\"\r\n [mode]=\"MODE\"\r\n [onEditGRCId]=\"ID\"\r\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\r\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\r\n ></lib-list-popup>\r\n</ng-container>\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyActions($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n></app-smiley-dialog-inline>\r\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .workflow-grc{position:relative}.disabled{opacity:.5;pointer-events:none}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"] }]
830
+ }], ctorParameters: function () { return [{ type: i1.GrcService }, { type: i2.ResponsibilityService }, { type: i3.AuthService }, { type: i4.UiKitService }]; } });
831
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBVXhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcvRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLDJCQUEyQixHQUM1QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0IzRSxNQUFNLE9BQU8sMkJBQTJCO0lBaUZ0QyxZQUNVLFVBQXNCLEVBQ3RCLFVBQWlDLEVBQ2pDLFdBQXdCLEVBQ3hCLFlBQTBCO1FBSDFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFwRnBDLFNBQUksR0FBc0IsUUFBUSxDQUFDO1FBQ25DLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFHLFVBQVUsQ0FBQztRQUN0QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHVCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTFELGVBQVUsR0FBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxrQkFBYSxHQUFXLGVBQWUsQ0FBQyxjQUFjLENBQUM7UUFDdkQsZUFBVSxHQUFjO1lBQ3RCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE9BQU87WUFDZCxFQUFFLEVBQUUsSUFBSTtZQUNSLFlBQVksRUFBRSxlQUFlO1lBQzdCLGVBQWUsRUFBRSxtQkFBbUI7WUFDcEMscUJBQXFCLEVBQUUsd0JBQXdCO1NBQ2hELENBQUM7UUFFRixpQkFBWSxHQUFrQjtZQUM1QixJQUFJO1lBQ0osT0FBTztZQUNQLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsWUFBWTtZQUNaLHdCQUF3QjtTQUN6QixDQUFDO1FBQ0YsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsWUFBTyxHQUFrQixDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQXdCLEVBQUUsQ0FBQztRQUN0QyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLHFCQUFnQixHQUFRO1lBQ3RCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1lBQ25CLDBCQUEwQixFQUFFLEtBQUs7WUFDakMsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDO1FBQ0YsWUFBTyxHQUFRO1lBQ2IsYUFBYSxFQUFFLEtBQUs7WUFDcEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsUUFBUSxFQUFFLEtBQUs7WUFDZixlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDO1FBSUYsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixrQkFBYSxHQUFhLGNBQWMsQ0FBQztRQUN6QyxxQkFBZ0IsR0FBUTtZQUN0QixNQUFNLEVBQUUsRUFBRTtZQUNWLFNBQVMsRUFBRSxFQUFFO1lBQ2IsT0FBTyxFQUFFLEVBQUU7WUFDWCxTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUM7UUFDRixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztRQUN2QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQywyQkFBc0IsR0FBVyxFQUFFLENBQUM7UUFDcEMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBRTFCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLG9CQUFlLEdBQVUsRUFBRSxDQUFDO1FBQzVCLDJCQUFzQixHQUFVLEVBQUUsQ0FBQztRQUVuQyxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsZ0NBQTJCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEUsbUJBQWMsR0FBUSxFQUFFLENBQUM7SUFPdEIsQ0FBQztJQUNKLFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDNUQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3BELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDdkMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzVCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsV0FBVyxDQUFDLEtBQVU7UUFDcEIsUUFBUSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ25CLEtBQUssWUFBWTtnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLEVBQUUsT0FBTyxDQUFDO2dCQUM1QyxNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsT0FBTyxDQUFDO2dCQUMxQyxNQUFNO1lBQ1IsS0FBSyw0QkFBNEI7Z0JBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUM7Z0JBQ3ZDLE1BQU07WUFDUixLQUFLLG1CQUFtQjtnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQztnQkFDOUMsTUFBTTtTQUNUO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLFdBQVcsQ0FBQyxJQUF5QjtRQUNuQyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxJQUFJO2dCQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssbUJBQW1CO2dCQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssZUFBZTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLHdCQUF3QjtnQkFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUixRQUFRO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssbUJBQW1CLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVU7UUFDOUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUM3RCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDOUIsQ0FBQztTQUNIO1FBRUQsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2pCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDMUQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQ3pCLENBQUM7WUFDRixJQUNFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RFO2dCQUNBLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzVCO1NBQ0Y7UUFDRCxJQUFJLElBQUksS0FBSyxtQkFBbUIsRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ3hCLENBQUM7U0FDTDtRQUNELElBQUksSUFBSSxLQUFLLGVBQWUsRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUM3QyxDQUFDO1NBQ0g7UUFDRCxJQUFJLElBQUksS0FBSyx3QkFBd0IsRUFBRTtZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQjtnQkFDbEMsSUFBSSxDQUFDLCtCQUErQixDQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLFlBQVksQ0FDdEQsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWix3QkFBd0I7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVLEVBQUUsT0FBZTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLEtBQUssS0FBSyxtQkFBbUIsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLDRDQUE0QztTQUM3QztRQUNELElBQUksS0FBSyxLQUFLLGVBQWUsSUFBSSxLQUFLLEtBQUssd0JBQXdCLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FDVixLQUFVLEVBQ1YsSUFLNEI7UUFFNUIsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLElBQUk7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNO1lBQ1IsS0FBSyxtQkFBbUI7Z0JBQ3RCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLGVBQWU7Z0JBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pFLE1BQU07WUFDUixLQUFLLHdCQUF3QjtnQkFDM0IsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsTUFBTTtTQUNUO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDO1NBQ3hEO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLDhCQUE4QjtTQUMvQjtJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDMUMsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUNuRCxLQUFLLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUM7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssV0FBVyxDQUFDLFFBQWE7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUNwRSxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEQ7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDbkUsZUFBZSxDQUNoQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUN2RTthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUNqRSxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUNqRSxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDaEUsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQzlCLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FDM0MsQ0FBQzthQUNIO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3hDLElBQUksRUFBRSxDQUFDLElBQWUsRUFBRSxFQUFFO2dCQUN4Qiw2QkFBNkI7Z0JBQzdCLE1BQU0sWUFBWSxHQUFRO29CQUN4QixNQUFNLEVBQUUsT0FBTztvQkFDZixTQUFTLEVBQUUsU0FBUztvQkFDcEIsT0FBTyxFQUFFLFFBQVE7b0JBQ2pCLFNBQVMsRUFBRSxXQUFXO2lCQUN2QixDQUFDO2dCQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFhLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDO29CQUNyRSxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ2pDLENBQUM7Z0JBRUYsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVTt3QkFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7b0JBRTdCLElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUMxQyxFQUNEO3dCQUNBLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzt3QkFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3FCQUMvQjtpQkFDRjtnQkFDRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQztTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxrQkFBa0I7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxTQUFTO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUztnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO2dCQUMzQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVztRQUM1QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekM7UUFDRCxJQUFJLEtBQUssRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLEVBQUUsWUFBWSxFQUFFO1lBQ3RFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ25ELHNEQUFzRDtRQUN0RCxnQ0FBZ0M7UUFDaEMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVTthQUN4QyxVQUFVLENBQUMsS0FBSyxDQUFDO2FBQ2pCLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDcEQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDeEIsZ0VBQWdFO2dCQUNoRSxzRUFBc0U7Z0JBQ3RFLEtBQUs7Z0JBQ0wsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztvQkFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztvQkFDL0MsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7aUJBQy9CO2FBQ0Y7WUFDRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFXO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLHNEQUFzRDtRQUN0RCxnQ0FBZ0M7UUFDaEMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7WUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLGtCQUFrQixDQUFDO1lBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxvQkFBb0IsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFXLEVBQUUsSUFBVSxJQUFHLENBQUM7SUFFL0MsMEJBQTBCO0lBRTFCLG1CQUFtQixDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbkQsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFFM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVM7UUFDL0IsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQy9DLElBQUksU0FBUyxHQUFRO2dCQUNuQixNQUFNLEVBQUUsRUFBRTtnQkFDVixTQUFTLEVBQUUsRUFBRTtnQkFDYixPQUFPLEVBQUUsRUFBRTtnQkFDWCxTQUFTLEVBQUUsRUFBRTthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRSxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUN6QixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUNPLGVBQWUsQ0FBQyxJQUFTO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLGNBQWMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQjtZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE1BQU07WUFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7WUFDN0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxVQUFVLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLGNBQWMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLDZCQUE2QjtZQUMzQyxJQUFJLEVBQUUsNkJBQTZCLENBQUM7SUFDeEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDO1NBQ2pFO1FBQ0QsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FDN0IsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FDM0IsRUFDRDtZQUNBLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNsQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU87YUFDUjtZQUNELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUMxRCxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxJQUFJLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDNUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTt3QkFDaEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7d0JBQzVCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3dCQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDOzRCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYTt5QkFDL0MsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7cUJBQzdEO2dCQUNILENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTztTQUNSO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjthQUFNLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtZQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLEdBQVcsQ0FBQztRQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hELEdBQUcsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUM7U0FDbEU7YUFBTTtZQUNMLEdBQUc7Z0JBQ0QsVUFBVTtvQkFDVixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7b0JBQ3BCLG9DQUFvQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVU7UUFDOUIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWTtZQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQ25ELENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxHQUFHLENBQ3RDLENBQUM7UUFDSixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7WUFDaEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVUsRUFBRSxJQUFZO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUMvRCxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxLQUFLLEVBQUUsR0FBRyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsTUFBTSxFQUFFLEVBQUU7WUFDVixTQUFTLEVBQUUsRUFBRTtZQUNiLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ2pELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7U0FDaEU7UUFDRCxPQUFPLENBQ0wsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLFlBQWlCO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQVEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2pDLG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDdkIsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUNoRCxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDeEQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxZQUFpQjtRQUMvQyxNQUFNLHlCQUF5QixHQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztZQUMxQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzdCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN0QyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FDM0MsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLENBQzlCO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLHlCQUF5QixDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxRCxJQUFJLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO29CQUM1QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztpQkFDN0Q7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDRCQUE0QjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNoRCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLHFDQUFxQztZQUNyQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQzVELGFBQWEsQ0FDZCxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzVELElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQzFDLGFBQWEsQ0FDZCxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1lBRUQsSUFDRSxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSztnQkFDaEUsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUNoQjtnQkFDQSwrQ0FBK0M7Z0JBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELDRCQUE0QixDQUFDLGNBQW1CO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsWUFBWTtZQUNqRCxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxHQUFHLENBQ3hELENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxzQkFBc0IsR0FBRyxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FDdkQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssY0FBYyxFQUFFLEdBQUcsQ0FDakQsQ0FBQztnQkFDRixPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxjQUFjLEVBQUUsc0JBQXNCO29CQUN0QyxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxDQUFDLElBQUksR0FBRyxDQUNULHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUNqRSxJQUFJLEVBQUUsQ0FBQztxQkFDVDtpQkFDRixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFFSixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFlBQVk7WUFDakQsSUFBSSxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUMxRCxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNaLE9BQU8sSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FDRixDQUFDO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQ3pFLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUFDLFVBQTZCO1FBQ3BELElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6RCxxQ0FBcUM7WUFDckMsTUFBTSxrQkFBa0IsR0FDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FDcEQsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLGVBQWUsQ0FDckQsQ0FBQztZQUNKLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLE9BQU8sa0JBQWtCLENBQUM7YUFDM0I7U0FDRjthQUFNO1lBQ0wsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQ3BFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBSyxVQUFVLENBQ3hELENBQUM7U0FDSDtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBZTtRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDN0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDO2dCQUNSLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksRUFBRSxLQUFLO2FBQ1osQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQWlCO1FBQ2hDLElBQUksV0FBVyxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNoRCxJQUFJLElBQUksRUFBRSxXQUFXLElBQUksTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdEUsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEMsQ0FBQzthQUNIO1lBQ0QsT0FBTztnQkFDTCxHQUFHLElBQUk7Z0JBQ1AsUUFBUSxFQUFFO29CQUNSLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDbEM7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7WUFDeEQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxZQUFpQjtRQUMxQyxJQUFJLFdBQVcsR0FBRyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEQsT0FBTztnQkFDTCxPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRO2lCQUMxQjtnQkFDRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDckMsRUFBRSxFQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUNqQztnQkFDRCxjQUFjLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixJQUFJLEVBQUU7YUFDL0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMxQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUMxQixDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDaEQsQ0FBQztRQUNGLE9BQU8sT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNyQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLEdBQUcsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsR0FBRyxLQUFLLENBQUM7UUFDekQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQzsrR0F6NkJVLDJCQUEyQjttR0FBM0IsMkJBQTJCLG1XQ3pDeEMsdTRWQStTQTs7NEZEdFFhLDJCQUEyQjtrQkFkdkMsU0FBUzsrQkFDRSwwQkFBMEIsV0FHM0I7d0JBQ1AsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLDZCQUE2QjtxQkFDOUIsVUFDTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZJRUxEX1RFWFQgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2ZpZWxkLXRleHQuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBMSU5LUyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBWQUxJREFUSU9OX01FU1NBR0UgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL3ZhbGlkYXRpb24tbWVzc2FnZS5jb25zdGFudCc7XHJcbmltcG9ydCB7XHJcbiAgQWRkR3JjLFxyXG4gIEF0dHJpYnV0ZXMsXHJcbiAgQnV0dG9uLFxyXG4gIEdSQ1R5cGUsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIExpc3RPYmplY3QsXHJcbiAgT3BlbmVkUG9wdXAsXHJcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2ludGVyZmFjZXMvYWRkLWdyYyc7XHJcbmltcG9ydCB7IEdyY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZ3JjLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEdSQ19UWVBFX0FSUkFZLFxyXG4gIE9USEVSX0dSQ19DQVJELFxyXG4gIE9USEVSX0dSQ19UQUJfSU5ERVgsXHJcbiAgU01JTEVZX0JVVFRPTlMsXHJcbiAgVU5DQVRFR09SSVpFRF9MSU5LX0NBVEVHT1JZLFxyXG59IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvZ3JjT2JqZWN0LmNvbnN0YW50JztcclxuaW1wb3J0IHsgU1VDQ0VTU19NRVNTQUdFIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9tZXNzYWdlLmNvbnRzdGFudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1ncmMtb2JqZWN0LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQubGVzcycsICcuLi8uLi8uLi9mb3Jtcy5sZXNzJ10sXHJcbiAgb3V0cHV0czogW1xyXG4gICAgJ3BvcHVsYXRlT3B0aW9uJyxcclxuICAgICdwaWNrZXJDaGFuZ2VkJyxcclxuICAgICdjbG9zZVdvcmtmbG93JyxcclxuICAgICdkaXNjb25uZWN0UmVmcmVzaCcsXHJcbiAgICAncmVzZXRGb3JtJyxcclxuICAgICdoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMnLFxyXG4gIF0sXHJcbiAgaW5wdXRzOiBbJ2dyY1R5cGUnLCAnTU9ERScsICdJRCddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JjT2JqZWN0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIE1PREU6ICdDUkVBVEUnIHwgJ0VESVQnID0gJ0NSRUFURSc7XHJcbiAgSUQ6IHN0cmluZyA9ICcnO1xyXG4gIEFMTF9URVhUID0gRklFTERfVEVYVDtcclxuICBDRE5fTElOSyA9IExJTktTO1xyXG4gIFZBTElEQVRJT05fTUVTU0FHRSA9IFZBTElEQVRJT05fTUVTU0FHRTtcclxuICBHUkNfVFlQRV9BUlJBWSA9IEdSQ19UWVBFX0FSUkFZO1xyXG4gIEVESVRPUl9DT05GSUcgPSBHcmNTZXJ2aWNlLkVESVRPUl9DT05GSUc7XHJcbiAgb3RoZXJHUkNDYXJkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShPVEhFUl9HUkNfQ0FSRCkpO1xyXG4gIE9CSkVDVF9UWVBFITogR1JDVHlwZVtdO1xyXG4gIExJU1RfUE9QVVA6IEFycmF5PHN0cmluZz4gPSBbJ1JDJ107XHJcbiAgc21pbGV5TWVzc2FnZTogc3RyaW5nID0gU1VDQ0VTU19NRVNTQUdFLkFERF9HUkNfT0JKRUNUO1xyXG4gIElOUFVUX1RZUEU6IElucHV0VHlwZSA9IHtcclxuICAgIG5hbWU6ICdOQU1FJyxcclxuICAgIG93bmVyOiAnT1dORVInLFxyXG4gICAgUkM6ICdSQycsXHJcbiAgICByaXNrQ2F0ZWdvcnk6ICdSSVNLX0NBVEVHT1JZJyxcclxuICAgIG90aGVyR3JjT2JqZWN0czogJ09USEVSX0dSQ19PQkpFQ1RTJyxcclxuICAgIHByb2dyYW1SZXNwb25zaWJpbGl0eTogJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknLFxyXG4gIH07XHJcbiAgT1JJR0lOQUxfR1JDX0FUVFJJQlVURVM6IGFueTsgLy8gRG9uJ3QgY2hhbmdlIHRoZSB2YWx1ZSBvbmNlIGl0IGlzIGFzc2lnbmVkXHJcbiAgZGlhbG9nRmllbGRzOiBBcnJheTxzdHJpbmc+ID0gW1xyXG4gICAgJ1JDJyxcclxuICAgICdPV05FUicsXHJcbiAgICAnT1RIRVJfR1JDX09CSkVDVFMnLFxyXG4gICAgJ1JJU0tfQ0FURUdPUlknLFxyXG4gICAgJ0FUVFJJQlVURVMnLFxyXG4gICAgJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknLFxyXG4gIF07XHJcbiAgc2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcclxuICBncmNUeXBlOiAwIHwgMSB8IDIgfCAzID0gMDtcclxuICBkaXNhYmxlZElkczogQXJyYXk8bnVtYmVyPiA9IFtdO1xyXG4gIG9wZW5lZFBvcHVwOiBPcGVuZWRQb3B1cFsndHlwZSddID0gJyc7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBhZGRpdGlvbmFsT3B0aW9uOiBhbnkgPSB7XHJcbiAgICBBVFRSSUJVVEVTOiBmYWxzZSxcclxuICAgIExJTktfUFJPR1JBTTogZmFsc2UsXHJcbiAgICBMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUzogZmFsc2UsXHJcbiAgICBPVEhFUl9HUkNfT0JKRUNUUzogZmFsc2UsXHJcbiAgfTtcclxuICBncmNGb3JtOiBhbnkgPSB7XHJcbiAgICBncmNPYmplY3RUeXBlOiBmYWxzZSxcclxuICAgIGxpbmtQcm9ncmFtOiBmYWxzZSxcclxuICAgIGxpbmtSaXNrOiBmYWxzZSxcclxuICAgIG90aGVyR3JjT2JqZWN0czogZmFsc2UsXHJcbiAgfTtcclxuICBncmNQYXlsb2FkITogQWRkR3JjO1xyXG4gIGxpc3RPYmplY3QhOiBMaXN0T2JqZWN0O1xyXG4gIHNlbGVjdGVkQXR0cmlidXRlcyE6IEdSQ1R5cGU7XHJcbiAgc2hvd1NtaWxleTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFjdGlvbkJ1dHRvbnM6IEJ1dHRvbltdID0gU01JTEVZX0JVVFRPTlM7XHJcbiAgZ3JjRGF0YVdpdGhUeXBlczogYW55ID0ge1xyXG4gICAgYXNzZXRzOiBbXSxcclxuICAgIHByb2Nlc3NlczogW10sXHJcbiAgICB2ZW5kb3JzOiBbXSxcclxuICAgIGludmVudG9yeTogW10sXHJcbiAgfTtcclxuICBHUkNTZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcclxuICBvdGhlckdSQ1RhYkluZGV4ID0gT1RIRVJfR1JDX1RBQl9JTkRFWDtcclxuICBpc0Zvcm1TdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBncmNOYW1lVmFsaWRhdGlvbkVycm9yOiBzdHJpbmcgPSAnJztcclxuICBpc0R1cGxpY2F0ZU5hbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkZXRhaWxzTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkUmlza3M6IGFueVtdID0gW107XHJcbiAgYWRkZWRHUkM6IGFueTtcclxuICBvdGhlckdSQ1NlYXJjaDogc3RyaW5nID0gJyc7XHJcbiAgZ3JjVGFiTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRQcm9ncmFtOiBhbnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkUmVzcG9uc2liaWxpdHk6IGFueVtdID0gW107XHJcblxyXG4gIHBvcHVsYXRlT3B0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwaWNrZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjbG9zZVdvcmtmbG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkaXNjb25uZWN0UmVmcmVzaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcmVzZXRGb3JtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBvdGhlckdSQ1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBoaWRlTW9yZU9wdGlvbjogYW55ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBncmNTZXJ2aWNlOiBHcmNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2VcclxuICApIHt9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjU2VydmljZS5HUkNfUEFZTE9BRCkpO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLnR5cGUgPSB0aGlzLmdyY1R5cGU7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QgPSB0aGlzLmdyY1NlcnZpY2UuTElTVF9PQkpFQ1Q7XHJcbiAgICB0aGlzLl9pbml0aWF0ZUFQSSgpO1xyXG4gICAgdGhpcy5nZXRTdWJzY3JpcHRpb25EZXRhaWxzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdWJzY3JpcHRpb25EZXRhaWxzKCkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5nZXRTdWJzY3JpcHRpb25EZXRhaWxzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIXJlc1swXT8ucmlza19mbGFnKSB7XHJcbiAgICAgICAgdGhpcy5oaWRlTW9yZU9wdGlvbi5wdXNoKCdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUycpO1xyXG4gICAgICAgIHRoaXMuaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zLmVtaXQodGhpcy5oaWRlTW9yZU9wdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVPcHRpb25hbEZpZWxkcygpIHtcclxuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvbikpIHtcclxuICAgICAgaWYgKHRoaXMuYWRkaXRpb25hbE9wdGlvbltrZXldID09PSB0cnVlKSB7XHJcbiAgICAgICAgYWN0aXZhdGVkT3B0aW9ucy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXHJcbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoIChldmVudD8uY29kZSkge1xyXG4gICAgICBjYXNlICdBVFRSSUJVVEVTJzpcclxuICAgICAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IGV2ZW50Py5jaGVja2VkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMSU5LX1BST0dSQU0nOlxyXG4gICAgICAgIHRoaXMuZ3JjRm9ybS5saW5rUHJvZ3JhbSA9IGV2ZW50Py5jaGVja2VkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyc6XHJcbiAgICAgICAgdGhpcy5ncmNGb3JtLmxpbmtSaXNrID0gZXZlbnQ/LmNoZWNrZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcclxuICAgICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gZXZlbnQ/LmNoZWNrZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vVE9ETzogaW1wbGVtZW50IHRoaXNcclxuICBvblRleHRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLm5hbWUgPSBldmVudC50cmltKCk7XHJcbiAgICB0aGlzLm9wZW5lZFBvcHVwID0gJyc7XHJcbiAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSAnJztcclxuICAgIHRoaXMuaXNEdXBsaWNhdGVOYW1lID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXHJcbiAgb25Qb3B1cE9wZW4odHlwZTogT3BlbmVkUG9wdXBbJ3R5cGUnXSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ09XTkVSJzpcclxuICAgICAgY2FzZSAnUkMnOlxyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdPVEhFUl9HUkNfT0JKRUNUUyc6XHJcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5nZXRPdGhlckdSQ09iamVjdHMoeyByY19pZHM6ICcnIH0pO1xyXG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XHJcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1JJU0tfQ0FURUdPUlknOlxyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknOlxyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNhdmVTZWxlY3RlZExpc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0ID0gZXZlbnQ7XHJcbiAgICBpZiAodGhpcy5vcGVuZWRQb3B1cCA9PT0gJ09USEVSX0dSQ19PQkpFQ1RTJykge1xyXG4gICAgICB0aGlzLnNldE90aGVyR1JDVHlwZXNGb3JtYXRlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHRoaXMub3BlbmVkUG9wdXApO1xyXG4gICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBdHRyaWJ1dGVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcclxuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5lZFBvcHVwID0gJyc7XHJcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0UGF5bG9hZCh0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0eXBlID09PSAnT1dORVInKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSB0aGlzLmxpc3RPYmplY3QuT1dORVIuc2VsZWN0ZWREYXRhLm1hcChcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLm1lbWJlcl9pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlID09PSAnUkMnKSB7XHJcbiAgICAgIGxldCBwcmV2aW91c1JDSWRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdyY1BheWxvYWQucmNfaWRzKSk7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMgPSB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhLm1hcChcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtPy5faWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICFwcmV2aW91c1JDSWRzLmV2ZXJ5KChpZDogYW55KSA9PiB0aGlzLmdyY1BheWxvYWQucmNfaWRzLmluY2x1ZGVzKGlkKSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0eXBlID09PSAnT1RIRVJfR1JDX09CSkVDVFMnKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcyA9XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YS5tYXAoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLl9pZFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PT0gJ1JJU0tfQ0FURUdPUlknKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5yaXNrX2NhdGVnb3J5X2lkcyA9IHRoaXMuZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGUgPT09ICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJykge1xyXG4gICAgICB0aGlzLmdyY1BheWxvYWQucHJvZ3JhbV9jYXRlZ29yeV9pZHMgPVxyXG4gICAgICAgIHRoaXMuZ2V0UHJvZ3JhbVJlc3BvbnNpYmlsaXR5UGF5bG9hZChcclxuICAgICAgICAgIHRoaXMubGlzdE9iamVjdD8uUFJPR1JBTV9SRVNQT05TSUJJTElUWT8uc2VsZWN0ZWREYXRhXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tPdXRzaWRlKCkge1xyXG4gICAgLy90aGlzLm9wZW5lZFBvcHVwID0gJyc7XHJcbiAgfVxyXG5cclxuICBvbkVkaXQoZXZlbnQ6IGFueSwgc3ViVHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5lZFBvcHVwID0gZXZlbnQ7XHJcbiAgICBpZiAoZXZlbnQgPT09ICdPVEhFUl9HUkNfT0JKRUNUUycpIHtcclxuICAgICAgdGhpcy5HUkNTZWxlY3RlZFRhYiA9IHRoaXMub3RoZXJHUkNUYWJJbmRleFtzdWJUeXBlXSA/PyAwO1xyXG4gICAgICB0aGlzLmdldE90aGVyR1JDT2JqZWN0cyh7IHR5cGU6IHRoaXMuR1JDU2VsZWN0ZWRUYWIsIHJjX2lkczogJycgfSk7XHJcbiAgICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5MSVNUX1BPUFVQLmluY2x1ZGVzKGV2ZW50KSkge1xyXG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgICAgLy8gdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudCA9PT0gJ1JJU0tfQ0FURUdPUlknIHx8IGV2ZW50ID09PSAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScpIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVtb3ZlRGF0YShcclxuICAgIGV2ZW50OiBhbnksXHJcbiAgICB0eXBlOlxyXG4gICAgICB8ICdSQydcclxuICAgICAgfCAnT1dORVInXHJcbiAgICAgIHwgJ09USEVSX0dSQ19PQkpFQ1RTJ1xyXG4gICAgICB8ICdSSVNLX0NBVEVHT1JZJ1xyXG4gICAgICB8ICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJ1xyXG4gICkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ1JDJzpcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3RbdHlwZV0uc2VsZWN0ZWREYXRhLnNwbGljZShldmVudC5pbmRleCwgMSk7XHJcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ09XTkVSJzpcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3RbdHlwZV0uc2VsZWN0ZWREYXRhLnNwbGljZShldmVudC5pbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcclxuICAgICAgICB0aGlzLnJlbW92ZU90aGVyR1JDT2JqZWN0cyhldmVudD8uZGF0YSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1JJU0tfQ0FURUdPUlknOlxyXG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSaXNrKGV2ZW50LmRhdGE/LkNhdGVnb3J5SWRzWzBdLCBldmVudD8uZGF0YSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknOlxyXG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSZXNwb25zaWJpbGl0eShldmVudD8uZGF0YSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlQXR0cmlidXRlc1R5cGUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ncmNUeXBlID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQudHlwZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5zZXREZWZhdWx0R1JDT2JqZWN0VHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdGlhdGVBUEkoKSB7XHJcbiAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5nZXRHUkNPYmplY3REZXRhaWxzKHRoaXMuSUQpO1xyXG4gICAgICB0aGlzLnNtaWxleU1lc3NhZ2UgPSBTVUNDRVNTX01FU1NBR0UuVVBEQVRFX0dSQ19PQkpFQ1Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fZ2V0R1JDT2JqZWN0VHlwZSgpO1xyXG4gICAgICB0aGlzLl9nZXRPd25lckxpc3QoKTtcclxuICAgICAgdGhpcy5fZ2V0UkNMaXN0KCk7XHJcbiAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcclxuICAgICAgLy8gdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRPd25lckxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRHUkNPd25lckxpc3QoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAodXNlckxpc3Q6IGFueSkgPT4gdGhpcy5tYXBVc2VyTGlzdCh1c2VyTGlzdCksXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge30sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmdW5jdGlvbiBgbWFwVXNlckxpc3RgIG1hcHMgdGhlIHVzZXIgbGlzdCBkYXRhIGFuZCBwZXJmb3JtcyBzb21lIGFkZGl0aW9uYWwgb3BlcmF0aW9ucyBvbiBlYWNoXHJcbiAgICogdXNlciBvYmplY3QuXHJcbiAgICogQHBhcmFtIHthbnl9IHVzZXJMaXN0IC0gVGhlIGB1c2VyTGlzdGAgcGFyYW1ldGVyIGlzIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGEgYGRhdGFgIHByb3BlcnR5LiBUaGVcclxuICAgKiBgZGF0YWAgcHJvcGVydHkgaXMgYW4gYXJyYXkgb2YgdXNlciBvYmplY3RzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFwVXNlckxpc3QodXNlckxpc3Q6IGFueSkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddWydkYXRhJ10gPSB7fTtcclxuICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIHRoaXMuZGlzYWJsZWRJZHMgPSBbXTtcclxuICAgIC8vIE1hcCB3aWxsIGdldCByZW1vdmUgb25jZSBBUEkgY2hhbmdlXHJcbiAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXVsnYXNzaWduZWVzTGlzdCddID0gdXNlckxpc3Q/LmRhdGEubWFwKFxyXG4gICAgICAodXNlcjogYW55KSA9PiB7XHJcbiAgICAgICAgdXNlci5pdGVtX25hbWUgPSB1c2VyLm1lbWJlcl9uYW1lO1xyXG4gICAgICAgIHVzZXIuZW1wbG95ZWVfbmFtZSA9IHVzZXIubWVtYmVyX25hbWU7XHJcbiAgICAgICAgdXNlci5teV9tZW1iZXJfaWQgPSB1c2VyLm1lbWJlcl9pZDtcclxuICAgICAgICB1c2VyLml0ZW1faWQgPSB1c2VyLm1lbWJlcl9pZDtcclxuICAgICAgICBpZiAoWydBRE1JTicsICdLRVlfQURNSU4nXS5pbmNsdWRlcyh1c2VyLnVzZXJfcm9sZSkpIHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRJZHMucHVzaCh1c2VyLm1lbWJlcl9pZCk7XHJcbiAgICAgICAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uc2VsZWN0ZWREYXRhLnB1c2godXNlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1c2VyO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PV05FUi5zZWxlY3RlZERhdGEgPSB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXVtcclxuICAgICAgICAnYXNzaWduZWVzTGlzdCdcclxuICAgICAgXS5maWx0ZXIoKGl0ZW06IGFueSkgPT4gdGhpcy5ncmNQYXlsb2FkLm93bmVycy5pbmNsdWRlcyhpdGVtPy5tZW1iZXJfaWQpKTtcclxuICAgICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddLmRpc2FibGVkSWRzID0gWy4uLm5ldyBTZXQodGhpcy5kaXNhYmxlZElkcyldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VyKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmNoZWNrSXNEYXRhTG9hZGVkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgZnVuY3Rpb24gYGRlZmF1bHRTZWxlY3RlZFVzZXIoKWAgc2V0cyB0aGUgZGVmYXVsdCBzZWxlY3RlZCB1c2VyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHVzZXIncyByb2xlXHJcbiAgICogYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGBPV05FUmAgbGlzdCBvYmplY3QuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZWZhdWx0U2VsZWN0ZWRVc2VyKCkge1xyXG4gICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmlzQWRtaW4oKSAmJiAhdGhpcy5hdXRoU2VydmljZS5pc0tleUFkbWluKCkpIHtcclxuICAgICAgY29uc3QgVVNFUiA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddWydhc3NpZ25lZXNMaXN0J10uZmluZChcclxuICAgICAgICAodXNlcjogYW55KSA9PiB1c2VyLm1lbWJlcl9pZCA9PT0gdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEucHVzaChVU0VSKTtcclxuICAgIH1cclxuICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGlzYWJsZWRJZHMnXSA9IFsuLi50aGlzLmRpc2FibGVkSWRzXTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uc2VsZWN0ZWREYXRhLm1hcChcclxuICAgICAgKHVzZXI6IGFueSkgPT4gdXNlci5tZW1iZXJfaWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRSQ0xpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmxpc3RPYmplY3RbJ1JDJ11bJ2RhdGEnXSA9IGRhdGE7XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5SQy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YSA9IGRhdGEuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgICB0aGlzLmdyY1BheWxvYWQucmNfaWRzLmluY2x1ZGVzKGl0ZW0/Ll9pZClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tJc0RhdGFMb2FkZWQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0R1JDT2JqZWN0VHlwZSgpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRPYmplY3RUeXBlKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IEdSQ1R5cGVbXSkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0TGlua1Jpc2tUYWIoZGF0YSk7XHJcbiAgICAgICAgY29uc3QgT0JKRUNUX0xBQkVMOiBhbnkgPSB7XHJcbiAgICAgICAgICBBU1NFVFM6ICdBc3NldCcsXHJcbiAgICAgICAgICBQUk9DRVNTRVM6ICdQcm9jZXNzJyxcclxuICAgICAgICAgIFZFTkRPUlM6ICdWZW5kb3InLFxyXG4gICAgICAgICAgSU5WRU5UT1JZOiAnSW52ZW50b3J5JyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuT0JKRUNUX1RZUEUgPSBkYXRhLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBpdGVtLnZhbHVlID0gaW5kZXg7XHJcbiAgICAgICAgICBpdGVtLmxhYmVsID0gT0JKRUNUX0xBQkVMW2l0ZW0/LmxhYmVsPy50b1VwcGVyQ2FzZSgpXSA/PyBpdGVtPy5sYWJlbDtcclxuICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLk9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuT0JKRUNUX1RZUEUpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgICB0aGlzLk9CSkVDVF9UWVBFW3RoaXMuZ3JjVHlwZV0uYXR0cmlidXRlcyA9XHJcbiAgICAgICAgICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzO1xyXG5cclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5ncmNTZXJ2aWNlLmNoZWNrQXR0cmlidXRlc1NlbGVjdGVkKFxyXG4gICAgICAgICAgICAgIHRoaXMuT0JKRUNUX1RZUEVbdGhpcy5ncmNUeXBlXS5hdHRyaWJ1dGVzXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5BVFRSSUJVVEVTID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKTtcclxuICAgICAgICB0aGlzLmNoZWNrSXNEYXRhTG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge30sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlcyA9XHJcbiAgICAgIHRoaXMuT0JKRUNUX1RZUEUuZmluZCgoZWxlOiBhbnkpID0+IGVsZS52YWx1ZSA9PT0gdGhpcy5ncmNUeXBlKSA/P1xyXG4gICAgICB0aGlzLk9CSkVDVF9UWVBFWzBdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lzRGF0YUxvYWRlZCgpIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID1cclxuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLmlzTG9hZGluZyB8fFxyXG4gICAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nIHx8XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5pc0xvYWRpbmcgfHxcclxuICAgICAgKHRoaXMuTU9ERSA9PT0gJ0VESVQnICYmIHRoaXMuZGV0YWlsc0xvYWRlcik7XHJcbiAgfVxyXG5cclxuICBnZXRPdGhlckdSQ09iamVjdHMoZXZlbnQ/OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMub3RoZXJHUkNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudD8uc2VhcmNoU3RyaW5nICYmIHRoaXMub3RoZXJHUkNTZWFyY2ggIT09IGV2ZW50Py5zZWFyY2hTdHJpbmcpIHtcclxuICAgICAgdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KGV2ZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMub3RoZXJHUkNTZWFyY2ggPSBldmVudD8uc2VhcmNoU3RyaW5nID8/ICcnO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAvLyBldmVudFsncmNfaWRzJ10gPSB0aGlzLmxpc3RPYmplY3Q/LlJDPy5zZWxlY3RlZERhdGFcclxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXHJcbiAgICAvLyAgIC5qb2luKCcsJyk7XHJcbiAgICB0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uID0gdGhpcy5ncmNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHUkNMaXN0KGV2ZW50KVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLk1PREUgPT09ICdFRElUJykge1xyXG4gICAgICAgICAgLy8gdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9IGRhdGEuZmlsdGVyKFxyXG4gICAgICAgICAgLy8gICAoaXRlbTogYW55KSA9PiB0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHMuaW5jbHVkZXMoaXRlbT8uX2lkKVxyXG4gICAgICAgICAgLy8gKTtcclxuICAgICAgICAgIGlmICh0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9USEVSX0dSQ19PQkpFQ1RTID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2hlY2tJc0RhdGFMb2FkZWQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRPdGhlckdSQ1RhYkNvdW50KGV2ZW50PzogYW55KSB7XHJcbiAgICB0aGlzLmdyY1RhYkxvYWRlciA9IHRydWU7XHJcbiAgICAvLyBldmVudFsncmNfaWRzJ10gPSB0aGlzLmxpc3RPYmplY3Q/LlJDPy5zZWxlY3RlZERhdGFcclxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXHJcbiAgICAvLyAgIC5qb2luKCcsJyk7XHJcbiAgICB0aGlzLmdyY1NlcnZpY2UuZ2V0R1JDVGFic0NvdW50KGV2ZW50KS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmdyY1RhYkxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFswXS5jb3VudCA9IGRhdGE/LmFzc2V0c190eXBlX2NvdW50O1xyXG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFsxXS5jb3VudCA9IGRhdGE/LnByb2Nlc3Nlc190eXBlX2NvdW50O1xyXG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFsyXS5jb3VudCA9IGRhdGE/LnZlbmRvcnNfdHlwZV9jb3VudDtcclxuICAgICAgdGhpcy5vdGhlckdSQ0NhcmRbM10uY291bnQgPSBkYXRhPy5pbnZlbnRvcnlfdHlwZV9jb3VudDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3RoZXJHUkNUYWJJbmRleChldmVudD86IGFueSwgZGF0YT86IGFueSkge31cclxuXHJcbiAgLy9Qb3B1bGF0ZS9FZGl0IEdSQyBPYmplY3RcclxuXHJcbiAgZ2V0R1JDT2JqZWN0RGV0YWlscyhncmNJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0R1JDT2JqZWN0RGV0YWlscyhncmNJZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcclxuICAgICAgICB0aGlzLnBvcHVsYXRlUGF5bG9hZChkYXRhKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZUdSQ09iamVjdChkYXRhPy5saW5rZWRHcmNEZXRhaWxzKTtcclxuICAgICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5fZ2V0UkNMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5fZ2V0T3duZXJMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5fZ2V0R1JDT2JqZWN0VHlwZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlR1JDT2JqZWN0KGRhdGE6IGFueSkge1xyXG4gICAgaWYgKGRhdGE/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9USEVSX0dSQ19PQkpFQ1RTID0gdHJ1ZTtcclxuICAgICAgbGV0IEdSQ09iamVjdDogYW55ID0ge1xyXG4gICAgICAgIGFzc2V0czogW10sXHJcbiAgICAgICAgcHJvY2Vzc2VzOiBbXSxcclxuICAgICAgICB2ZW5kb3JzOiBbXSxcclxuICAgICAgICBpbnZlbnRvcnk6IFtdLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gWy4uLm5ldyBTZXQoZGF0YSldO1xyXG4gICAgICBjb25zdCBHUkNfVFlQRSA9IEdSQ19UWVBFX0FSUkFZO1xyXG4gICAgICBkYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIEdSQ09iamVjdFtHUkNfVFlQRVtpdGVtPy50eXBlID8/IDFdXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMub3RoZXJHUkNDYXJkW2l0ZW0/LnR5cGVdLnNlbGVjdGVkQ291bnQgKz0gMTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmdyY0RhdGFXaXRoVHlwZXMgPSBHUkNPYmplY3Q7XHJcbiAgICAgIHRoaXMudXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIHBvcHVsYXRlUGF5bG9hZChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5uYW1lID0gZGF0YT8ubmFtZTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gZGF0YT8udHlwZTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSBkYXRhPy5vd25lcnM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQucmNfaWRzID0gZGF0YT8ucmNfaWRzO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID0gZGF0YT8ubGlua2VkX0dSQ19pZHM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQucmlza19jYXRlZ29yeV9pZHMgPVxyXG4gICAgICB0aGlzLnBvcHVsYXRlTGlua1Jpc2soZGF0YT8ucmlza19jYXRlZ29yeV9pZHMpID8/IFtdO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLnByb2dyYW1fY2F0ZWdvcnlfaWRzID0gZGF0YT8ucHJvZ3JhbV9jYXRlZ29yeV9pZHM/Lmxlbmd0aFxyXG4gICAgICA/IHRoaXMucG9wdWxhdGVMaW5rUmVzcG9uc2liaWxpdHkoZGF0YT8ucHJvZ3JhbV9jYXRlZ29yeV9pZHMpXHJcbiAgICAgIDogW107XHJcbiAgICB0aGlzLmdyY1BheWxvYWQuYXR0cmlidXRlcyA9IGRhdGE/LmF0dHJpYnV0ZXM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQuc3RhdGUgPSBkYXRhPy5zdGF0ZTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5kZXNjcmlwdGlvbiA9IGRhdGE/LmRlc2NyaXB0aW9uO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmZyZXF1ZW5jeSA9IGRhdGE/LmZyZXF1ZW5jeTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5wYXJlbnRfZ3JjX2lkcyA9IGRhdGE/LnBhcmVudF9ncmNfaWRzO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmVtYWlsX25vdGlmaWNhdGlvbl9tZW1iZXJfaWRzID1cclxuICAgICAgZGF0YT8uZW1haWxfbm90aWZpY2F0aW9uX21lbWJlcl9pZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUdSQ09iamVjdCgpIHtcclxuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSkge1xyXG4gICAgICB0aGlzLmdyY1BheWxvYWQuYXR0cmlidXRlcyA9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGVzLmF0dHJpYnV0ZXM7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZ3JjU2VydmljZS5jaGVja1ZhbGlkYXRpb24oXHJcbiAgICAgICAgdGhpcy5ncmNQYXlsb2FkLFxyXG4gICAgICAgIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVHUkNPYmplY3QoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IFBBWUxPQUQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZCkpO1xyXG4gICAgICBQQVlMT0FELm93bmVycyA9IHRoaXMuZ2V0T3duZXJzRXhjZXB0RGVmYXVsdChQQVlMT0FELm93bmVycyk7XHJcbiAgICAgIHRoaXMuYXBpU2VydmljZS5hZGRHUkNPYmplY3QoUEFZTE9BRCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zZXRNb3JlT3B0aW9uc09uU3VibWl0KCk7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYWRkZWRHUkMgPSBkYXRhO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvciwgZXJyb3Iuc3RhdHVzKTtcclxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwOSB8fCBlcnJvci5zdGF0dXMgPT09IDQwMykge1xyXG4gICAgICAgICAgICB0aGlzLmlzRHVwbGljYXRlTmFtZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TW9yZU9wdGlvbnNPblN1Ym1pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLm1hcFVzZXJMaXN0KHtcclxuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmxpc3RPYmplY3QuT1dORVIuZGF0YS5hc3NpZ25lZXNMaXN0LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5ncmNOYW1lVmFsaWRhdGlvbkVycm9yID0gVkFMSURBVElPTl9NRVNTQUdFLmdyY19leGlzdHM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEdSQ09iamVjdCgpIHtcclxuICAgIHRoaXMuTU9ERSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5zbWlsZXlNZXNzYWdlID0gU1VDQ0VTU19NRVNTQUdFLkFERF9HUkNfT0JKRUNUO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdyY1NlcnZpY2UuR1JDX1BBWUxPQUQpKTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gdGhpcy5ncmNUeXBlO1xyXG4gICAgdGhpcy5pc0Zvcm1TdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEdXBsaWNhdGVOYW1lID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XHJcbiAgICB0aGlzLmhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucy5lbWl0KHRoaXMuaGlkZU1vcmVPcHRpb24pO1xyXG4gICAgdGhpcy5PQkpFQ1RfVFlQRSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5PUklHSU5BTF9HUkNfQVRUUklCVVRFUykpO1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KE9USEVSX0dSQ19DQVJEKSk7XHJcbiAgICB0aGlzLnJlc2V0T3RoZXJHUkNDYXJkKCk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRHUkNPYmplY3RUeXBlKCk7XHJcbiAgICB0aGlzLnJlc2V0R1JDRGF0YVdpdGhUeXBlcygpO1xyXG4gICAgdGhpcy5yZXNldExpc3RPYmplY3RTZWxlY3Rpb24oKTtcclxuICAgIHRoaXMubWFwVXNlckxpc3QoeyBkYXRhOiB0aGlzLmxpc3RPYmplY3QuT1dORVIuZGF0YS5hc3NpZ25lZXNMaXN0IH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRMaXN0T2JqZWN0U2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUFJPR1JBTV9SRVNQT05TSUJJTElUWS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICB9XHJcblxyXG4gIHNtaWxleUFjdGlvbnMoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgaWYgKGV2ZW50ID09PSAnYWRkTW9yZScpIHtcclxuICAgICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICd2aWV3Jykge1xyXG4gICAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xyXG4gICAgICB0aGlzLnZpZXdHUkMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hZGRlZEdSQywgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldEdSQ0Zvcm0oKSB7XHJcbiAgICB0aGlzLk1PREUgPSAnQ1JFQVRFJztcclxuICAgIHRoaXMucmVzZXRHUkNPYmplY3QoKTtcclxuICAgIHRoaXMuZ3JjRm9ybS5vdGhlckdyY09iamVjdHMgPSBmYWxzZTtcclxuICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGZhbHNlO1xyXG4gICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gZmFsc2U7XHJcbiAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMucmVzZXRGb3JtLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICB2aWV3R1JDKCkge1xyXG4gICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvIy9tYW5hZ2UtZ3JjLW9iamVjdHMnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID1cclxuICAgICAgICAnaHR0cHM6Ly8nICtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaG9zdCArXHJcbiAgICAgICAgJy9vcmdhbml6YXRpb24vIy9tYW5hZ2UtZ3JjLW9iamVjdHMnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLk1PREUgIT09ICdFRElUJykge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XHJcbiAgICB0aGlzLmNsb3NlU21pbGV5KCcnKTtcclxuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLmFkZGVkR1JDLCBjb25maXJtOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIHNldE90aGVyR1JDVHlwZXNGb3JtYXRlKCkge1xyXG4gICAgY29uc3QgZ3JjVHlwZXMgPSBHUkNfVFlQRV9BUlJBWTtcclxuICAgIHRoaXMucmVzZXRHUkNEYXRhV2l0aFR5cGVzKCk7XHJcbiAgICB0aGlzLmxpc3RPYmplY3Q/Lk9USEVSX0dSQ19PQkpFQ1RTPy5zZWxlY3RlZERhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmdyY0RhdGFXaXRoVHlwZXNbZ3JjVHlwZXNbaXRlbT8udHlwZV1dPy5wdXNoKGl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnVwZGF0ZU90aGVyR1JDT2JqZWN0c1BheWxvYWQoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZU90aGVyR1JDT2JqZWN0cyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBncmNUeXBlcyA9IEdSQ19UWVBFX0FSUkFZO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5zZWxlY3RlZERhdGEuZmlsdGVyKFxyXG4gICAgICAgIChncmM6IGFueSkgPT4gZ3JjPy5faWQgIT09IGV2ZW50Py5faWRcclxuICAgICAgKTtcclxuICAgIHRoaXMuZmlsdGVyT3RoZXJHUkNEYXRhKGV2ZW50LCBncmNUeXBlc1tldmVudD8udHlwZV0pO1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmRbMF0uc2VsZWN0ZWRDb3VudFxyXG4gICAgICA/ICh0aGlzLm90aGVyR1JDQ2FyZFtldmVudD8udHlwZV0uc2VsZWN0ZWRDb3VudCAtPSAxKVxyXG4gICAgICA6IDA7XHJcbiAgICB0aGlzLnVwZGF0ZU90aGVyR1JDT2JqZWN0c1BheWxvYWQoKTtcclxuICB9XHJcblxyXG4gIGZpbHRlck90aGVyR1JDRGF0YShldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXSA9IHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXT8uZmlsdGVyKFxyXG4gICAgICAoZ3JjOiBhbnkpID0+IGdyYz8uX2lkICE9PSBldmVudD8uX2lkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRHUkNEYXRhV2l0aFR5cGVzKCkge1xyXG4gICAgdGhpcy5ncmNEYXRhV2l0aFR5cGVzID0ge1xyXG4gICAgICBhc3NldHM6IFtdLFxyXG4gICAgICBwcm9jZXNzZXM6IFtdLFxyXG4gICAgICB2ZW5kb3JzOiBbXSxcclxuICAgICAgaW52ZW50b3J5OiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgZ3JjVmFsaWRhdGlvbkNoZWNrKCkge1xyXG4gICAgaWYgKHRoaXMuaXNGb3JtU3VibWl0dGVkICYmICF0aGlzLmdyY1BheWxvYWQubmFtZSkge1xyXG4gICAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX01FU1NBR0UuZ3JjT2JqZWN0TmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkICYmICEodGhpcy5ncmNQYXlsb2FkLm5hbWUgfHwgdGhpcy5pc0R1cGxpY2F0ZU5hbWUpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChzZWxlY3RlZERhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgcmlza0NhdGVnb3J5UGF5bG9hZDogYW55ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkUmlza3MgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzID0gW107XHJcbiAgICBzZWxlY3RlZERhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIHJpc2tDYXRlZ29yeVBheWxvYWQucHVzaCh7XHJcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IFtpdGVtPy5jYXRlZ29yeT8uY2F0ZWdvcnlfaWQgPz8gW11dLFxyXG4gICAgICAgIHJpc2tfaWRzOiBpdGVtPy5yaXNrcz8ubWFwKChyaXNrOiBhbnkpID0+IHJpc2s/LlJpc2tJZCksXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUmlza3M/LnB1c2goLi4uaXRlbT8ucmlza3MpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5wdXNoKGl0ZW0/LmNhdGVnb3J5KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJpc2tDYXRlZ29yeVBheWxvYWQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKHNlbGVjdGVkRGF0YTogYW55KSB7XHJcbiAgICBjb25zdCByaXNrUmVzcG9uc2liaWxpdHlQYXlsb2FkOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFByb2dyYW0gPSBbXTtcclxuICAgIHNlbGVjdGVkRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgcGFyZW50SWQgPSBpdGVtPy5wcm9ncmFtPy5wcm9ncmFtSWQ7XHJcbiAgICAgIHJpc2tSZXNwb25zaWJpbGl0eVBheWxvYWQucHVzaCh7XHJcbiAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkLFxyXG4gICAgICAgIGNhdGVnb3J5X2lkOiBbLi4uaXRlbT8uY2F0ZWdvcnldIHx8IFtdLFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5X2lkczogaXRlbT8ucmVzcG9uc2liaWxpdHk/Lm1hcChcclxuICAgICAgICAgIChyZXNwOiBhbnkpID0+IHJlc3A/LlJlcG9ydElkXHJcbiAgICAgICAgKSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eT8ucHVzaCguLi5pdGVtPy5yZXNwb25zaWJpbGl0eSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtLnB1c2goaXRlbT8ucHJvZ3JhbSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByaXNrUmVzcG9uc2liaWxpdHlQYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlR1JDT2JqZWN0KCkge1xyXG4gICAgbGV0IFBBWUxPQUQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZCkpO1xyXG4gICAgUEFZTE9BRC5vd25lcnMgPSB0aGlzLmdldE93bmVyc0V4Y2VwdERlZmF1bHQoUEFZTE9BRC5vd25lcnMpO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLnVwZGF0ZUdSQ09iamVjdChQQVlMT0FELCB0aGlzLklEKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcclxuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFkZGVkR1JDID0gZGF0YTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvcicsIGVycm9yLCBlcnJvci5zdGF0dXMpO1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwOSkge1xyXG4gICAgICAgICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zZXRNb3JlT3B0aW9uc09uU3VibWl0KCk7XHJcbiAgICAgICAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX01FU1NBR0UuZ3JjX2V4aXN0cztcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpIHtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcyA9XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5zZWxlY3RlZERhdGEubWFwKFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uX2lkXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVTZWxlY3RlZFJpc2soY2F0ZWdvcnlJZDogbnVtYmVyLCByaXNrOiBhbnkpIHtcclxuICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLmZpbmRDaGVja2VkQ2F0ZWdvcnlJbmRleChjYXRlZ29yeUlkKTtcclxuICAgIGlmIChjYXRlZ29yeUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAvLyBDYXRlZ29yeSBleGlzdHMsIHVwZGF0ZSByaXNrIHZhbHVlXHJcbiAgICAgIGNvbnN0IHJpc2tJbmRleCA9IHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhW1xyXG4gICAgICAgIGNhdGVnb3J5SW5kZXhcclxuICAgICAgXT8ucmlza3M/LmZpbmRJbmRleCgoaXRlbTogYW55KSA9PiBpdGVtPy5faWQgPT09IHJpc2s/Ll9pZCk7XHJcbiAgICAgIGlmIChyaXNrSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGFbXHJcbiAgICAgICAgICBjYXRlZ29yeUluZGV4XHJcbiAgICAgICAgXT8ucmlza3Muc3BsaWNlKHJpc2tJbmRleCwgMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YVtjYXRlZ29yeUluZGV4XT8ucmlza3NcclxuICAgICAgICAgID8ubGVuZ3RoID09PSAwXHJcbiAgICAgICkge1xyXG4gICAgICAgIC8vIFJlbW92ZSBjYXRlZ29yeSBpZiBzZWxlY3RlZExpc3REYXRhIGlzIGVtcHR5XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGEuc3BsaWNlKGNhdGVnb3J5SW5kZXgsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyY1BheWxvYWQucmlza19jYXRlZ29yeV9pZHMgPSB0aGlzLmdldFJpc2tDYXRlZ29yeVBheWxvYWQoXHJcbiAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlU2VsZWN0ZWRSZXNwb25zaWJpbGl0eShyZXNwb25zaWJpbGl0eTogYW55KSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUFJPR1JBTV9SRVNQT05TSUJJTElUWS5zZWxlY3RlZERhdGEgPVxyXG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubWFwKFxyXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBmaWx0ZXJlZFJlc3BvbnNpYmlsaXR5ID0gZGF0YT8ucmVzcG9uc2liaWxpdHk/LmZpbHRlcihcclxuICAgICAgICAgICAgKHJlc3A6IGFueSkgPT4gcmVzcD8uX2lkICE9PSByZXNwb25zaWJpbGl0eT8uX2lkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk6IGZpbHRlcmVkUmVzcG9uc2liaWxpdHksXHJcbiAgICAgICAgICAgIGNhdGVnb3J5OiBbXHJcbiAgICAgICAgICAgICAgLi4uKG5ldyBTZXQoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZFJlc3BvbnNpYmlsaXR5Lm1hcCgob2JqOiBhbnkpID0+IGRhdGE/LmNhdGVnb3J5KT8uZmxhdCgpXHJcbiAgICAgICAgICAgICAgKSB8fCBbXSksXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUFJPR1JBTV9SRVNQT05TSUJJTElUWS5zZWxlY3RlZERhdGEgPVxyXG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YS5maWx0ZXIoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGRhdGE/LnJlc3BvbnNpYmlsaXR5Py5sZW5ndGggPiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5wcm9ncmFtX2NhdGVnb3J5X2lkcyA9IHRoaXMuZ2V0UHJvZ3JhbVJlc3BvbnNpYmlsaXR5UGF5bG9hZChcclxuICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmaW5kQ2hlY2tlZENhdGVnb3J5SW5kZXgoY2F0ZWdvcnlJZDogbnVtYmVyIHwgbnVtYmVyW10pIHtcclxuICAgIGxldCBjYXRlZ29yeUluZGV4ID0gLTE7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjYXRlZ29yeUlkKSAmJiBjYXRlZ29yeUlkPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgLy8gSGFuZGxlIGVtcHR5IGNhdGVnb3J5SWQgYXJyYXkgY2FzZVxyXG4gICAgICBjb25zdCB1bmNhdGVnb3JpemVkSW5kZXggPVxyXG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhLmZpbmRJbmRleChcclxuICAgICAgICAgIChjYXQ6IGFueSkgPT4gY2F0Py5jYXRlZ29yeT8uX2lkID09PSAndW5jYXRlZ29yaXplZCdcclxuICAgICAgICApO1xyXG4gICAgICBpZiAodW5jYXRlZ29yaXplZEluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIHJldHVybiB1bmNhdGVnb3JpemVkSW5kZXg7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhdGVnb3J5SW5kZXggPSB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YS5maW5kSW5kZXgoXHJcbiAgICAgICAgKGNhdDogYW55KSA9PiBjYXQ/LmNhdGVnb3J5Py5jYXRlZ29yeV9pZCA9PT0gY2F0ZWdvcnlJZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhdGVnb3J5SW5kZXg7XHJcbiAgfVxyXG5cclxuICBzZXRMaW5rUmlza1RhYih0YWJEZXRhaWxzOiBhbnkpIHtcclxuICAgIHRoaXMub3RoZXJHUkNDYXJkID0gdGFiRGV0YWlscy5tYXAoKHRhYjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdGl0bGU6IHRhYj8ubGFiZWwsXHJcbiAgICAgICAgY291bnQ6IDAsXHJcbiAgICAgICAgc2VsZWN0ZWRDb3VudDogMCxcclxuICAgICAgICBrZXk6IHRhYj8ubGFiZWw/LnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgdHlwZTogaW5kZXgsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUxpbmtSaXNrKHNlbGVjdGVkRGF0YTogYW55KSB7XHJcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBzZWxlY3RlZERhdGE/Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkYXRhPy5jYXRlZ29yeV9pZCAmJiBPYmplY3Q/LmtleXMoZGF0YT8uY2F0ZWdvcnlfaWQpPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgIGNhdGVnb3J5OiBVTkNBVEVHT1JJWkVEX0xJTktfQ0FURUdPUlksXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgY2F0ZWdvcnk6IHtcclxuICAgICAgICAgIGNhdGVnb3J5X2lkOiBkYXRhPy5jYXRlZ29yeV9pZFswXSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICBpZiAodXBkYXRlZERhdGEubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyA9IHRydWU7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gdXBkYXRlZERhdGE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHVwZGF0ZWREYXRhKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlTGlua1Jlc3BvbnNpYmlsaXR5KHNlbGVjdGVkRGF0YTogYW55KSB7XHJcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBzZWxlY3RlZERhdGE/Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvZ3JhbToge1xyXG4gICAgICAgICAgcHJvZ3JhbUlkOiBkYXRhPy5wYXJlbnRJZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNhdGVnb3J5OiBbZGF0YT8ucGFyZW50SWRdLmNvbmNhdC5hcHBseShcclxuICAgICAgICAgIFtdLFxyXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhkYXRhPy5jYXRlZ29yeV9pZClcclxuICAgICAgICApLFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5OiBkYXRhPy5yZXNwb25zaWJpbGl0eV9pZHMgfHwgW10sXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIGlmICh1cGRhdGVkRGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IHRydWU7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gdXBkYXRlZERhdGE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKHVwZGF0ZWREYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE93bmVyc0V4Y2VwdERlZmF1bHQodXNlcnM6IGFueSkge1xyXG4gICAgY29uc3QgdXNlcnNJZCA9IHVzZXJzLmZpbHRlcihcclxuICAgICAgKHVzZXI6IGFueSkgPT4gIXRoaXMuZGlzYWJsZWRJZHMuaW5jbHVkZXModXNlcilcclxuICAgICk7XHJcbiAgICByZXR1cm4gdXNlcnNJZCB8fCBbXTtcclxuICB9XHJcblxyXG4gIHNldE1vcmVPcHRpb25zT25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlc2V0T3RoZXJHUkNDYXJkKCkge1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmQuZm9yRWFjaCgodGFiOiBhbnkpID0+IHtcclxuICAgICAgdGFiLmNvdW50ID0gMDtcclxuICAgICAgdGFiLnNlbGVjdGVkQ291bnQgPSAwO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldERhdGFPblJDQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUklTS19DQVRFR09SWS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIGlmICh0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnJlc2V0TW9yZU9wdGlvbnNPblJDQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldE1vcmVPcHRpb25zT25SQ0NoYW5nZSgpIHtcclxuICAgIHRoaXMuZ3JjRm9ybS5saW5rUHJvZ3JhbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IGZhbHNlO1xyXG4gICAgdGhpcy5ncmNGb3JtLmxpbmtSaXNrID0gZmFsc2U7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uTElOS19SSVNLX0NBVEVHT1JJRVNfUklTS1MgPSBmYWxzZTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dTbWlsZXlcIj5cclxuICA8ZGl2IGNsYXNzPVwid29ya2Zsb3ctZ3JjXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwib3BlbmVkUG9wdXAgJiYgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcIlxyXG4gICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIlxyXG4gICAgPlxyXG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvblxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJvcGVuZWRQb3B1cCAmJiBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVwiXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjVHlwZVwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJ0cnVlXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5cclxuICAgICAgICAgICAgR1JDIE9CSkVDVCBUWVBFPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxyXG4gICAgICAgICAgICA8dGFiLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkSXRlbV09XCJncmNQYXlsb2FkLnR5cGVcIlxyXG4gICAgICAgICAgICAgIFtkaXNwbGF5QXJyYXldPVwiT0JKRUNUX1RZUEVcIlxyXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJjaGFuZ2VBdHRyaWJ1dGVzVHlwZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdGFiLXNlbGVjdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIE9iamVjdCBuYW1lIGZpZWxkIC0tPlxyXG4gICAgPGxpYi10ZXh0LWZpZWxkXHJcbiAgICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgICBvcGVuZWRQb3B1cCAmJlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLm5hbWUgJiZcclxuICAgICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgICBcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJncmNQYXlsb2FkLm5hbWUgJiYgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUubmFtZVwiXHJcbiAgICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/LmdyY09iamVjdE5hbWVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPYmplY3RQbGFjZWhvbGRlclwiXHJcbiAgICAgIFsodGV4dFZhbHVlKV09XCJncmNQYXlsb2FkLm5hbWVcIlxyXG4gICAgICAodGV4dFZhbHVlQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgpXCJcclxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5uYW1lKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjT2JqZWN0TmFtZVwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJncmNQYXlsb2FkLm5hbWVcIlxyXG4gICAgICAgIGZpZWxkLWljb25zXHJcbiAgICAgID5cclxuICAgICAgPC9saWItdGV4dC1maWVsZC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgaXMtcmVxdWlyZWQ+Kjwvc3Bhbj5cclxuICAgICAgPGxpYi1lZGl0LW1vZGVcclxuICAgICAgICAqbmdJZj1cImdyY1BheWxvYWQubmFtZSAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5uYW1lXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cIltncmNQYXlsb2FkXVwiXHJcbiAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcclxuICAgICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUubmFtZSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+PC9saWItZWRpdC1tb2RlPlxyXG4gICAgICA8cFxyXG4gICAgICAgICpuZ0lmPVwiZ3JjVmFsaWRhdGlvbkNoZWNrIHx8IGlzRHVwbGljYXRlTmFtZVwiXHJcbiAgICAgICAgW2FwcFNjcm9sbEluVmlld109XCJ0cnVlXCJcclxuICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgIGVycm9yLW1lc3NhZ2VcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGdyY05hbWVWYWxpZGF0aW9uRXJyb3IgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIkVESVRPUl9DT05GSUdcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZ3JjUGF5bG9hZC5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgcmljaC10ZXh0LWVkaXRvclxyXG4gICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcblxyXG4gICAgPCEtLSBTcGVjaWZ5IE93bmVycyAtLT5cclxuICAgIDxsaWItdGV4dC1maWVsZFxyXG4gICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5vd25lciAmJlxyXG4gICAgICAgIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXHJcbiAgICAgIFwiXHJcbiAgICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRS5vd25lclwiXHJcbiAgICAgIFtpc0VkaXRNb2RlXT1cIlxyXG4gICAgICAgIGxpc3RPYmplY3QuT1dORVI/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXJcclxuICAgICAgXCJcclxuICAgICAgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjT3duZXJzVGl0bGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPd25lcnNQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjT3duZXJzXCJcclxuICAgICAgICBbaXNDaGVja2VkXT1cImxpc3RPYmplY3QuT1dORVI/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgZmllbGQtaWNvbnNcclxuICAgICAgPlxyXG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiBpcy1yZXF1aXJlZD4qPC9zcGFuPlxyXG4gICAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXJcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtub25SZW1vdmFibGVJZHNdPVwiZGlzYWJsZWRJZHNcIlxyXG4gICAgICAgIFtjb3VudENvbG9yXT1cIidncmVlbkJnJ1wiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGFcIlxyXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgICAgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICAgICAgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICAgICAgZWRpdC1tb2RlXHJcbiAgICAgID48L2xpYi1lZGl0LW1vZGU+XHJcbiAgICA8L2xpYi10ZXh0LWZpZWxkPlxyXG5cclxuICAgIDwhLS0gTGluayBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIChSQykgLS0+XHJcbiAgICA8bGliLXRleHQtZmllbGRcclxuICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUuUkMgJiZcclxuICAgICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgICBcIlxyXG4gICAgICBbYWN0aXZlXT1cIm9wZW5lZFBvcHVwICYmIG9wZW5lZFBvcHVwID09IElOUFVUX1RZUEUuUkNcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJcclxuICAgICAgICBsaXN0T2JqZWN0LlJDPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5SQ1xyXG4gICAgICBcIlxyXG4gICAgICBbdGl0bGVUZXh0XT1cIkFMTF9URVhUPy5ncmNSQ1RpdGxlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJBTExfVEVYVD8uZ3JjUkNQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLlJDKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjUkNcIlxyXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiIGlzLXJlcXVpcmVkPio8L3NwYW4+XHJcbiAgICAgIDxsaWItZWRpdC1tb2RlXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxpc3RPYmplY3QuUkM/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLlJDXHJcbiAgICAgICAgXCJcclxuICAgICAgICAob25SZW1vdmVEYXRhKT1cIm9uUmVtb3ZlRGF0YSgkZXZlbnQsIElOUFVUX1RZUEUuUkMpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImxpc3RPYmplY3QuUkM/LnNlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgW3R5cGVdPVwiJ2xpc3QnXCJcclxuICAgICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUuUkMpXCJcclxuICAgICAgICBlZGl0LW1vZGVcclxuICAgICAgPjwvbGliLWVkaXQtbW9kZT5cclxuICAgICAgPHBcclxuICAgICAgICAqbmdJZj1cImlzRm9ybVN1Ym1pdHRlZCAmJiAhbGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGhcIlxyXG4gICAgICAgIFthcHBTY3JvbGxJblZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICBlcnJvci1tZXNzYWdlXHJcbiAgICAgID5cclxuICAgICAgICB7eyBWQUxJREFUSU9OX01FU1NBR0UuZ3JjUkMgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9saWItdGV4dC1maWVsZD5cclxuXHJcbiAgICA8IS0tIExpbmsgUHJvZ3JhbSBhbmQgUmVzcG9uc2liaWxpdHkgLS0+XHJcbiAgICA8bGliLXRleHQtZmllbGRcclxuICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/LnByb2dyYW1SZXNwb25zaWJpbGl0eSAmJlxyXG4gICAgICAgIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXHJcbiAgICAgIFwiXHJcbiAgICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XCJcclxuICAgICAgKm5nSWY9XCJncmNGb3JtPy5saW5rUHJvZ3JhbVwiXHJcbiAgICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/LmdyY1Byb2dyYW1SZXNwb25zaWJpbGl0eVRpdGxlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJBTExfVEVYVD8uZ3JjUHJvZ3JhbVJlc3BvbnNpYmlsaXR5UGxhY2Vob2xkZXJcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJ0cnVlXCJcclxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcclxuICAgICAgW2lzRWRpdE1vZGVdPVwiXHJcbiAgICAgICAgbGlzdE9iamVjdD8uUFJPR1JBTV9SRVNQT05TSUJJTElUWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksubGlua090aGVyc1wiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgZmllbGQtaWNvbnNcclxuICAgICAgPlxyXG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XHJcblxyXG4gICAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8uUFJPR1JBTV9SRVNQT05TSUJJTElUWVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHkgfCB1bmlxdWVSZXNwb25zaWJpbGl0aWVzIDogJ2VudGlyZU9iamVjdCdcIlxyXG4gICAgICAgIFtuYW1lRGlzcGxheUtleV09XCInUmVwb3J0TmFtZSdcIlxyXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgICAgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLnByb2dyYW1SZXNwb25zaWJpbGl0eSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWVkaXQtbW9kZT5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcblxyXG4gICAgPCEtLSBMaW5rIFJpc2sgQ2F0ZWdvcmllcyBhbmQgUmlzayAtLT5cclxuICAgIDxsaWItdGV4dC1maWVsZFxyXG4gICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5ICYmXHJcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcclxuICAgICAgXCJcclxuICAgICAgW2FjdGl2ZV09XCJvcGVuZWRQb3B1cCAmJiBvcGVuZWRQb3B1cCA9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnlcIlxyXG4gICAgICAqbmdJZj1cImdyY0Zvcm0/LmxpbmtSaXNrXCJcclxuICAgICAgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjUmlza0NhdGVnb3J5VGl0bGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNSaXNrQ2F0ZWdvcnlQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLnJpc2tDYXRlZ29yeSlcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJcclxuICAgICAgICBsaXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnlcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGxpYi10ZXh0LWZpZWxkLWljb25cclxuICAgICAgICBbY2RuTGlua109XCJDRE5fTElOSy5saW5rR1JDXCJcclxuICAgICAgICBbaXNDaGVja2VkXT1cImxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuXHJcbiAgICAgIDxsaWItZWRpdC1tb2RlXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLlJJU0tfQ0FURUdPUllcclxuICAgICAgICBcIlxyXG4gICAgICAgIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5KVwiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJzZWxlY3RlZFJpc2tzXCJcclxuICAgICAgICBbdHlwZV09XCInbGlzdCdcIlxyXG4gICAgICAgIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5yaXNrQ2F0ZWdvcnksIGRhdGE/LmtleSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWVkaXQtbW9kZT5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTGluayBPdGhlciBHUkMgT2JqZWN0cyAtLT5cclxuICA8bGliLXRleHQtZmllbGRcclxuICAgICpuZ0lmPVwiZ3JjRm9ybT8ub3RoZXJHcmNPYmplY3RzXCJcclxuICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0cyAmJlxyXG4gICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgXCJcclxuICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzXCJcclxuICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1RpdGxlXCJcclxuICAgIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1BsYWNlaG9sZGVyXCJcclxuICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5vdGhlckdyY09iamVjdHMpXCJcclxuICAgIFtpc0VkaXRNb2RlXT1cIlxyXG4gICAgICBsaXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0c1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8bGliLXRleHQtZmllbGQtaWNvblxyXG4gICAgICBbY2RuTGlua109XCJDRE5fTElOSy5saW5rT3RoZXJzXCJcclxuICAgICAgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgZmllbGQtaWNvbnNcclxuICAgID5cclxuICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuXHJcbiAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBHUkNfVFlQRV9BUlJBWVwiXHJcbiAgICAgIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzKVwiXHJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwiZ3JjRGF0YVdpdGhUeXBlc1tkYXRhXVwiXHJcbiAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgIFtpc011bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUub3RoZXJHcmNPYmplY3RzLCBkYXRhKVwiXHJcbiAgICAgIGVkaXQtbW9kZVxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ3b3JrZmxvd0xhdmVsIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNCB2eC1tci0xIHZ4LXRleHQtY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGRhdGEgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2xpYi1lZGl0LW1vZGU+XHJcbiAgPC9saWItdGV4dC1maWVsZD5cclxuICA8bGliLWF0dHJpYnV0ZXNcclxuICAgIFtkaXNhYmxlZF09XCJvcGVuZWRQb3B1cCAmJiBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVwiXHJcbiAgICAqbmdJZj1cInNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoICYmIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlXCJcclxuICAgIFthdHRyaWJ1dGVzSW5mb109XCJzZWxlY3RlZEF0dHJpYnV0ZXNcIlxyXG4gICAgW2lzRm9ybVN1Ym1pdHRlZF09XCJpc0Zvcm1TdWJtaXR0ZWRcIlxyXG4gICAgKG9uQ2xpY2spPVwiZ2V0QXR0cmlidXRlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gID48L2xpYi1hdHRyaWJ1dGVzPlxyXG4gIDxsaWItbGlzdC1wb3B1cFxyXG4gICAgW29wZW5lZFBvcHVwXT1cIm9wZW5lZFBvcHVwXCJcclxuICAgIFtsaXN0T2JqZWN0XT1cImxpc3RPYmplY3RcIlxyXG4gICAgW3RhYmxlQ2FyZF09XCJvdGhlckdSQ0NhcmRcIlxyXG4gICAgW290aGVyR3JjQ2FyZExvYWRlcl09XCJncmNUYWJMb2FkZXJcIlxyXG4gICAgW0dSQ1NlbGVjdGVkVGFiXT1cIkdSQ1NlbGVjdGVkVGFiXCJcclxuICAgIFttb2RlXT1cIk1PREVcIlxyXG4gICAgW29uRWRpdEdSQ0lkXT1cIklEXCJcclxuICAgIChvblNhdmVTZWxlY3RlZExpc3QpPVwib25TYXZlU2VsZWN0ZWRMaXN0KCRldmVudClcIlxyXG4gICAgKGdldE90aGVyR1JDT2JqZWN0cyk9XCJnZXRPdGhlckdSQ09iamVjdHMoJGV2ZW50KVwiXHJcbiAgPjwvbGliLWxpc3QtcG9wdXA+XHJcbjwvbmctY29udGFpbmVyPlxyXG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXHJcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcclxuICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlXCJcclxuICBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcclxuICAoYWN0aW9uKT1cInNtaWxleUFjdGlvbnMoJGV2ZW50KVwiXHJcbiAgKGNsb3NlU21pbGV5KT1cImNsb3NlU21pbGV5KCRldmVudClcIlxyXG4+PC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XHJcbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImlzTG9hZGluZ1wiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiJdfQ==