ng-pli-commons 0.0.1908 → 1.0.1

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 (471) hide show
  1. package/esm2022/lib/components/backoffice.commons.component.mjs +40 -0
  2. package/esm2022/lib/components/common.lists.component.mjs +194 -0
  3. package/{esm2020 → esm2022}/lib/components/configuration-token/configuration-token-subject.service.mjs +23 -23
  4. package/esm2022/lib/components/configuration-token/configuration-token.component.mjs +665 -0
  5. package/esm2022/lib/components/configuration-token/guarantee-token/guarantee-token.component.mjs +103 -0
  6. package/esm2022/lib/components/configuration-token/snapshot-token/snapshot-token.component.mjs +108 -0
  7. package/esm2022/lib/components/configuration.commons.component.mjs +40 -0
  8. package/{esm2020 → esm2022}/lib/components/dashboard.commons.component.mjs +84 -84
  9. package/esm2022/lib/components/dynamic-filter/dynamic-filter.component.mjs +131 -0
  10. package/esm2022/lib/components/excel-to-json/excel-to-json.component.mjs +54 -0
  11. package/esm2022/lib/components/frontoffice.commons.component.mjs +86 -0
  12. package/esm2022/lib/components/pdf-analyzer/pdf-analyzer.component.mjs +162 -0
  13. package/{esm2020 → esm2022}/lib/components/pdf-config/pdf-config.component.mjs +170 -170
  14. package/esm2022/lib/components/pdf-generator/pdf-generator.component.mjs +223 -0
  15. package/esm2022/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.mjs +307 -0
  16. package/esm2022/lib/components/pdf-visualizer/pdf-visualizer.component.mjs +387 -0
  17. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +92 -0
  18. package/esm2022/lib/components/segmentation-tokens/segmentation-tokens.component.mjs +199 -0
  19. package/esm2022/lib/components/select-ppp/select-ppp.component.mjs +199 -0
  20. package/esm2022/lib/components/show-hide-columns/show-hide-columns-table.component.mjs +116 -0
  21. package/esm2022/lib/components/token/token.component.mjs +1006 -0
  22. package/esm2022/lib/components/tokens-calculator/tokens-calculator.component.mjs +128 -0
  23. package/{esm2020 → esm2022}/lib/directives/currency-colfuturo-formatter.directive.mjs +47 -47
  24. package/{esm2020 → esm2022}/lib/directives/currency-decimal-colfuturo-formatter.directive.mjs +34 -34
  25. package/esm2022/lib/ng-pli-commons.module.mjs +387 -0
  26. package/{esm2020 → esm2022}/lib/ng-pli-commons.service.mjs +14 -14
  27. package/esm2022/lib/pipes/currency-colfuturo.pipe.mjs +35 -0
  28. package/{esm2020 → esm2022}/lib/pipes/currency-decimal-colfuturo.pipe.mjs +36 -36
  29. package/{esm2020 → esm2022}/lib/pipes/currency-print-colfuturo.pipe.mjs +33 -33
  30. package/esm2022/lib/pipes/thousands.pipe.mjs +60 -0
  31. package/{esm2020 → esm2022}/lib/services/application-fill-percentage.service.mjs +30 -30
  32. package/{esm2020 → esm2022}/lib/services/application-tag.service.mjs +56 -56
  33. package/{esm2020 → esm2022}/lib/services/application.service.mjs +247 -247
  34. package/esm2022/lib/services/authentication.service.mjs +133 -0
  35. package/{esm2020 → esm2022}/lib/services/blocked-beneficiary.service.mjs +42 -42
  36. package/esm2022/lib/services/budget-application.service.mjs +265 -0
  37. package/{esm2020 → esm2022}/lib/services/budget-simulation.service.mjs +61 -61
  38. package/esm2022/lib/services/budget.service.mjs +205 -0
  39. package/{esm2020 → esm2022}/lib/services/closure-wallet.service.mjs +39 -39
  40. package/{esm2020 → esm2022}/lib/services/cnf-correspondence-document-manager.service.mjs +39 -39
  41. package/{esm2020 → esm2022}/lib/services/committee-money.service.mjs +44 -44
  42. package/{esm2020 → esm2022}/lib/services/committee-pdf.service.mjs +27 -27
  43. package/{esm2020 → esm2022}/lib/services/committee-snapshot.service.mjs +60 -60
  44. package/{esm2020 → esm2022}/lib/services/common-info.service.mjs +51 -51
  45. package/esm2022/lib/services/common.service.mjs +291 -0
  46. package/esm2022/lib/services/configuration-document.service.mjs +297 -0
  47. package/{esm2020 → esm2022}/lib/services/configuration-minisite.service.mjs +26 -26
  48. package/{esm2020 → esm2022}/lib/services/configuration.service.mjs +53 -53
  49. package/{esm2020 → esm2022}/lib/services/correspondence-document-category.service.mjs +31 -31
  50. package/{esm2020 → esm2022}/lib/services/correspondence-manager.service.mjs +67 -67
  51. package/{esm2020 → esm2022}/lib/services/credit-score.service.mjs +48 -48
  52. package/{esm2020 → esm2022}/lib/services/credit-study.service.mjs +292 -292
  53. package/{esm2020 → esm2022}/lib/services/cube.service.mjs +27 -27
  54. package/{esm2020 → esm2022}/lib/services/data-form-history.service.mjs +25 -25
  55. package/{esm2020 → esm2022}/lib/services/data-form.service.mjs +176 -176
  56. package/{esm2020 → esm2022}/lib/services/data-letter-segmentation.service.mjs +64 -64
  57. package/{esm2020 → esm2022}/lib/services/document-analysis-auto.service.mjs +27 -27
  58. package/{esm2020 → esm2022}/lib/services/document-history.service.mjs +43 -43
  59. package/{esm2020 → esm2022}/lib/services/document-management.service.mjs +57 -57
  60. package/{esm2020 → esm2022}/lib/services/document-validation-attempt.service.mjs +32 -32
  61. package/{esm2020 → esm2022}/lib/services/document.service.mjs +131 -131
  62. package/esm2022/lib/services/documentary.type.service.mjs +69 -0
  63. package/{esm2020 → esm2022}/lib/services/email.service.mjs +30 -30
  64. package/{esm2020 → esm2022}/lib/services/evaluation.service.mjs +181 -181
  65. package/{esm2020 → esm2022}/lib/services/export-excel.service.mjs +32 -32
  66. package/esm2022/lib/services/file.service.mjs +153 -0
  67. package/{esm2020 → esm2022}/lib/services/form.service.mjs +112 -112
  68. package/{esm2020 → esm2022}/lib/services/gic-client-disbursement-metadata.service.mjs +31 -31
  69. package/{esm2020 → esm2022}/lib/services/gic-client.service.mjs +49 -49
  70. package/{esm2020 → esm2022}/lib/services/gic-cnf-bankvision-transaction.service.mjs +31 -31
  71. package/{esm2020 → esm2022}/lib/services/gic-cnf-closing-date.service.mjs +34 -34
  72. package/{esm2020 → esm2022}/lib/services/gic-cnf-maintenance.service.mjs +30 -30
  73. package/{esm2020 → esm2022}/lib/services/gic-collection.service.mjs +53 -53
  74. package/{esm2020 → esm2022}/lib/services/gic-disbursement.service.mjs +39 -39
  75. package/{esm2020 → esm2022}/lib/services/gic-extract.service.mjs +41 -41
  76. package/{esm2020 → esm2022}/lib/services/gic-log.service.mjs +41 -41
  77. package/{esm2020 → esm2022}/lib/services/gic-payment-application.service.mjs +35 -35
  78. package/{esm2020 → esm2022}/lib/services/gic-payment-plan-cube.service.mjs +27 -27
  79. package/{esm2020 → esm2022}/lib/services/gic-payment-plan.service.mjs +32 -32
  80. package/{esm2020 → esm2022}/lib/services/gic-trm.service.mjs +27 -27
  81. package/{esm2020 → esm2022}/lib/services/global.show.task.service.mjs +37 -37
  82. package/{esm2020 → esm2022}/lib/services/guarantee-document.service.mjs +52 -52
  83. package/{esm2020 → esm2022}/lib/services/guarantee-enrollment.service.mjs +37 -37
  84. package/esm2022/lib/services/guarantee.service.mjs +128 -0
  85. package/{esm2020 → esm2022}/lib/services/hash.service.mjs +36 -36
  86. package/{esm2020 → esm2022}/lib/services/import-data.service.mjs +27 -27
  87. package/{esm2020 → esm2022}/lib/services/import-excel-gic.service.mjs +45 -45
  88. package/{esm2020 → esm2022}/lib/services/initial-configuration-gic-parameters.service.mjs +51 -51
  89. package/{esm2020 → esm2022}/lib/services/initial-record.service.mjs +51 -51
  90. package/{esm2020 → esm2022}/lib/services/integration-ado.service.mjs +54 -54
  91. package/{esm2020 → esm2022}/lib/services/interaction-application-user.service.mjs +81 -81
  92. package/{esm2020 → esm2022}/lib/services/interest-adjustment.service.mjs +34 -34
  93. package/esm2022/lib/services/keys-assignation.service.mjs +127 -0
  94. package/{esm2020 → esm2022}/lib/services/legalization.service.mjs +150 -150
  95. package/{esm2020 → esm2022}/lib/services/letter-campaing.service.mjs +49 -49
  96. package/{esm2020 → esm2022}/lib/services/letter-task-mapping.service.mjs +40 -40
  97. package/{esm2020 → esm2022}/lib/services/log.service.mjs +41 -41
  98. package/{esm2020 → esm2022}/lib/services/maintenance.service.mjs +66 -66
  99. package/{esm2020 → esm2022}/lib/services/master-category.service.mjs +66 -66
  100. package/{esm2020 → esm2022}/lib/services/master-program.service.mjs +78 -78
  101. package/{esm2020 → esm2022}/lib/services/master-university.service.mjs +68 -68
  102. package/{esm2020 → esm2022}/lib/services/migration-plis.service.mjs +27 -27
  103. package/{esm2020 → esm2022}/lib/services/migration-survey-queue.service.mjs +24 -24
  104. package/{esm2020 → esm2022}/lib/services/page.service.mjs +38 -38
  105. package/{esm2020 → esm2022}/lib/services/partner-system.service.mjs +30 -30
  106. package/{esm2020 → esm2022}/lib/services/partner.service.mjs +34 -34
  107. package/{esm2020 → esm2022}/lib/services/pdf-analyzer.service.mjs +33 -33
  108. package/{esm2020 → esm2022}/lib/services/people-master.service.mjs +42 -42
  109. package/{esm2020 → esm2022}/lib/services/permission.service.mjs +29 -29
  110. package/{esm2020 → esm2022}/lib/services/pli-cnf-acuity-fields.service.mjs +34 -34
  111. package/{esm2020 → esm2022}/lib/services/pli-cnf-app-card-filter.service.mjs +40 -40
  112. package/{esm2020 → esm2022}/lib/services/pli-cnf-appointment-type.service.mjs +41 -41
  113. package/{esm2020 → esm2022}/lib/services/pli-cnf-budget-program-type.service.mjs +54 -54
  114. package/{esm2020 → esm2022}/lib/services/pli-cnf-budget.service.mjs +31 -31
  115. package/{esm2020 → esm2022}/lib/services/pli-cnf-cloning.service.mjs +27 -27
  116. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-pdf-config-table-config.service.mjs +47 -47
  117. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-pdf-gen-status.service.mjs +30 -30
  118. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-valpro-columns.service.mjs +42 -42
  119. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee-visualization-mode.service.mjs +42 -42
  120. package/{esm2020 → esm2022}/lib/services/pli-cnf-committee.service.mjs +51 -51
  121. package/{esm2020 → esm2022}/lib/services/pli-cnf-config-minisite.service.mjs +90 -90
  122. package/{esm2020 → esm2022}/lib/services/pli-cnf-configuration-credit-study.service.mjs +41 -41
  123. package/{esm2020 → esm2022}/lib/services/pli-cnf-document-management.service.mjs +40 -40
  124. package/{esm2020 → esm2022}/lib/services/pli-cnf-dynamic-keys-assign.service.mjs +52 -52
  125. package/{esm2020 → esm2022}/lib/services/pli-cnf-evaluation-task-mailing.service.mjs +31 -31
  126. package/esm2022/lib/services/pli-cnf-evaluation-task.service.mjs +112 -0
  127. package/{esm2020 → esm2022}/lib/services/pli-cnf-evaluation-template.service.mjs +95 -95
  128. package/{esm2020 → esm2022}/lib/services/pli-cnf-form-edit.service.mjs +68 -68
  129. package/{esm2020 → esm2022}/lib/services/pli-cnf-form-multiaplicacion.service.mjs +46 -46
  130. package/{esm2020 → esm2022}/lib/services/pli-cnf-guarantee-documents-template.service.mjs +40 -40
  131. package/{esm2020 → esm2022}/lib/services/pli-cnf-guarantee-token.service.mjs +42 -42
  132. package/{esm2020 → esm2022}/lib/services/pli-cnf-header.service.mjs +39 -39
  133. package/{esm2020 → esm2022}/lib/services/pli-cnf-indicator.service.mjs +39 -39
  134. package/{esm2020 → esm2022}/lib/services/pli-cnf-information-system.service.mjs +24 -24
  135. package/{esm2020 → esm2022}/lib/services/pli-cnf-interaction.service.mjs +78 -78
  136. package/{esm2020 → esm2022}/lib/services/pli-cnf-letter-template-type.service.mjs +29 -29
  137. package/{esm2020 → esm2022}/lib/services/pli-cnf-letter-template.service.mjs +48 -48
  138. package/{esm2020 → esm2022}/lib/services/pli-cnf-look-and-feel.service.mjs +28 -28
  139. package/{esm2020 → esm2022}/lib/services/pli-cnf-mail.service.mjs +30 -30
  140. package/{esm2020 → esm2022}/lib/services/pli-cnf-menu-form.service.mjs +34 -34
  141. package/{esm2020 → esm2022}/lib/services/pli-cnf-migration-plis-field-budget.service.mjs +33 -33
  142. package/{esm2020 → esm2022}/lib/services/pli-cnf-migration-plis-field.service.mjs +47 -47
  143. package/{esm2020 → esm2022}/lib/services/pli-cnf-migration-status-plis.service.mjs +44 -44
  144. package/{esm2020 → esm2022}/lib/services/pli-cnf-page-section-form.service.mjs +66 -66
  145. package/{esm2020 → esm2022}/lib/services/pli-cnf-page-sub-process.service.mjs +25 -25
  146. package/{esm2020 → esm2022}/lib/services/pli-cnf-pdfs.service.mjs +31 -31
  147. package/{esm2020 → esm2022}/lib/services/pli-cnf-profile-form.service.mjs +40 -40
  148. package/{esm2020 → esm2022}/lib/services/pli-cnf-profile-user.service.mjs +49 -49
  149. package/{esm2020 → esm2022}/lib/services/pli-cnf-project-summary.service.mjs +39 -39
  150. package/{esm2020 → esm2022}/lib/services/pli-cnf-scenario.service.mjs +47 -47
  151. package/{esm2020 → esm2022}/lib/services/pli-cnf-segmentation.service.mjs +72 -72
  152. package/{esm2020 → esm2022}/lib/services/pli-cnf-snapshot-token.service.mjs +42 -42
  153. package/{esm2020 → esm2022}/lib/services/pli-cnf-status-flow-interaction.service.mjs +74 -74
  154. package/{esm2020 → esm2022}/lib/services/pli-cnf-status-flow.service.mjs +56 -56
  155. package/{esm2020 → esm2022}/lib/services/pli-cnf-support-document-category.service.mjs +47 -47
  156. package/{esm2020 → esm2022}/lib/services/pli-cnf-support-document.service.mjs +56 -56
  157. package/{esm2020 → esm2022}/lib/services/pli-cnf-survey-document.service.mjs +37 -37
  158. package/{esm2020 → esm2022}/lib/services/pli-cnf-survey-pdf.service.mjs +34 -34
  159. package/{esm2020 → esm2022}/lib/services/pli-cnf-survey.service.mjs +46 -46
  160. package/{esm2020 → esm2022}/lib/services/pli-cnf-task-group.service.mjs +33 -33
  161. package/{esm2020 → esm2022}/lib/services/pli-cnf-text-category.service.mjs +38 -38
  162. package/{esm2020 → esm2022}/lib/services/pli-cnf-text-option.service.mjs +39 -39
  163. package/{esm2020 → esm2022}/lib/services/pli-cnf-text.service.mjs +62 -62
  164. package/{esm2020 → esm2022}/lib/services/pli-cnf-type-text.service.mjs +45 -45
  165. package/{esm2020 → esm2022}/lib/services/pli-cnf-university-article.service.mjs +39 -39
  166. package/{esm2020 → esm2022}/lib/services/pli-cnf-user-calendar.service.mjs +36 -36
  167. package/{esm2020 → esm2022}/lib/services/pli-cnf-user-workspace.service.mjs +35 -35
  168. package/{esm2020 → esm2022}/lib/services/pli-cnf-valpro-keys.service.mjs +35 -35
  169. package/{esm2020 → esm2022}/lib/services/pli-cnf-workspace-segmentation.service.mjs +31 -31
  170. package/{esm2020 → esm2022}/lib/services/pli-message-type.service.mjs +40 -40
  171. package/{esm2020 → esm2022}/lib/services/pli-multiple-value-filter.service.mjs +39 -39
  172. package/{esm2020 → esm2022}/lib/services/pli-promocion-username.service.mjs +57 -57
  173. package/{esm2020 → esm2022}/lib/services/pli-seg-action-user.service.mjs +37 -37
  174. package/{esm2020 → esm2022}/lib/services/pli-segmentation.service.mjs +130 -130
  175. package/{esm2020 → esm2022}/lib/services/pli-tag-assignment.service.mjs +36 -36
  176. package/{esm2020 → esm2022}/lib/services/pli-tag.service.mjs +55 -55
  177. package/{esm2020 → esm2022}/lib/services/pli-user.service.mjs +51 -51
  178. package/{esm2020 → esm2022}/lib/services/plis-beneficiario.service.mjs +29 -29
  179. package/{esm2020 → esm2022}/lib/services/plis-estatus-change.service.mjs +30 -30
  180. package/esm2022/lib/services/ppp.service.mjs +360 -0
  181. package/{esm2020 → esm2022}/lib/services/profile.service.mjs +60 -60
  182. package/esm2022/lib/services/progress-bar.service.mjs +40 -0
  183. package/{esm2020 → esm2022}/lib/services/promotion-score.service.mjs +44 -44
  184. package/{esm2020 → esm2022}/lib/services/registry-identifier.service.mjs +39 -39
  185. package/{esm2020 → esm2022}/lib/services/return-refund.service.mjs +53 -53
  186. package/esm2022/lib/services/segmentation-tokens.service.mjs +43 -0
  187. package/{esm2020 → esm2022}/lib/services/segmentation-user-service.service.mjs +90 -90
  188. package/{esm2020 → esm2022}/lib/services/segmentation.service.mjs +31 -31
  189. package/esm2022/lib/services/send-application.service.mjs +492 -0
  190. package/{esm2020 → esm2022}/lib/services/sesion-form.service.mjs +31 -31
  191. package/{esm2020 → esm2022}/lib/services/sesion.service.mjs +48 -48
  192. package/{esm2020 → esm2022}/lib/services/spinner.service.mjs +16 -16
  193. package/{esm2020 → esm2022}/lib/services/sponsorship-letter.service.mjs +68 -68
  194. package/{esm2020 → esm2022}/lib/services/status.service.mjs +100 -100
  195. package/{esm2020 → esm2022}/lib/services/summary-budget.service.mjs +24 -24
  196. package/{esm2020 → esm2022}/lib/services/survey-metadata.service.mjs +28 -28
  197. package/{esm2020 → esm2022}/lib/services/survey-queue.service.mjs +24 -24
  198. package/{esm2020 → esm2022}/lib/services/survey.service.mjs +52 -52
  199. package/{esm2020 → esm2022}/lib/services/tasa.cambio.service.mjs +35 -35
  200. package/{esm2020 → esm2022}/lib/services/token-transformation.service.mjs +62 -62
  201. package/esm2022/lib/services/token.service.mjs +1345 -0
  202. package/{esm2020 → esm2022}/lib/services/university.service.mjs +50 -50
  203. package/esm2022/lib/services/upload-documents.service.mjs +60 -0
  204. package/{esm2020 → esm2022}/lib/services/user.service.mjs +28 -28
  205. package/{esm2020 → esm2022}/lib/services/visualization-committee.service.mjs +84 -84
  206. package/esm2022/lib/utils/custom-validator.mjs +95 -0
  207. package/esm2022/lib/utils/form-util.mjs +35 -0
  208. package/esm2022/lib/utils/formio-util.mjs +582 -0
  209. package/{esm2020 → esm2022}/lib/utils/version-commons.mjs +9 -9
  210. package/{esm2020 → esm2022}/ng-pli-commons.mjs +4 -4
  211. package/{esm2020 → esm2022}/public-api.mjs +214 -214
  212. package/{esm2020 → esm2022}/version.mjs +29 -29
  213. package/{fesm2020 → fesm2022}/ng-pli-commons.mjs +16724 -16725
  214. package/fesm2022/ng-pli-commons.mjs.map +1 -0
  215. package/{ng-pli-commons.d.ts → index.d.ts} +5 -5
  216. package/lib/components/backoffice.commons.component.d.ts +15 -15
  217. package/lib/components/common.lists.component.d.ts +61 -61
  218. package/lib/components/configuration-token/configuration-token-subject.service.d.ts +10 -10
  219. package/lib/components/configuration-token/configuration-token.component.d.ts +124 -124
  220. package/lib/components/configuration-token/guarantee-token/guarantee-token.component.d.ts +33 -33
  221. package/lib/components/configuration-token/snapshot-token/snapshot-token.component.d.ts +37 -37
  222. package/lib/components/configuration.commons.component.d.ts +15 -15
  223. package/lib/components/dashboard.commons.component.d.ts +39 -39
  224. package/lib/components/dynamic-filter/dynamic-filter.component.d.ts +50 -50
  225. package/lib/components/excel-to-json/excel-to-json.component.d.ts +12 -12
  226. package/lib/components/frontoffice.commons.component.d.ts +26 -26
  227. package/lib/components/pdf-analyzer/pdf-analyzer.component.d.ts +36 -36
  228. package/lib/components/pdf-config/pdf-config.component.d.ts +78 -78
  229. package/lib/components/pdf-generator/pdf-generator.component.d.ts +69 -69
  230. package/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.d.ts +114 -114
  231. package/lib/components/pdf-visualizer/pdf-visualizer.component.d.ts +147 -147
  232. package/lib/components/progress-bar/progress-bar.component.d.ts +30 -30
  233. package/lib/components/segmentation-tokens/segmentation-tokens.component.d.ts +48 -48
  234. package/lib/components/select-ppp/select-ppp.component.d.ts +42 -42
  235. package/lib/components/show-hide-columns/show-hide-columns-table.component.d.ts +39 -39
  236. package/lib/components/token/token.component.d.ts +99 -99
  237. package/lib/components/tokens-calculator/tokens-calculator.component.d.ts +37 -37
  238. package/lib/directives/currency-colfuturo-formatter.directive.d.ts +14 -14
  239. package/lib/directives/currency-decimal-colfuturo-formatter.directive.d.ts +13 -13
  240. package/lib/ng-pli-commons.module.d.ts +47 -47
  241. package/lib/ng-pli-commons.service.d.ts +6 -6
  242. package/lib/pipes/currency-colfuturo.pipe.d.ts +12 -12
  243. package/lib/pipes/currency-decimal-colfuturo.pipe.d.ts +11 -11
  244. package/lib/pipes/currency-print-colfuturo.pipe.d.ts +11 -11
  245. package/lib/pipes/thousands.pipe.d.ts +9 -9
  246. package/lib/services/application-fill-percentage.service.d.ts +15 -15
  247. package/lib/services/application-tag.service.d.ts +23 -23
  248. package/lib/services/application.service.d.ts +107 -107
  249. package/lib/services/authentication.service.d.ts +45 -45
  250. package/lib/services/blocked-beneficiary.service.d.ts +17 -17
  251. package/lib/services/budget-application.service.d.ts +52 -52
  252. package/lib/services/budget-simulation.service.d.ts +32 -32
  253. package/lib/services/budget.service.d.ts +65 -65
  254. package/lib/services/closure-wallet.service.d.ts +16 -16
  255. package/lib/services/cnf-correspondence-document-manager.service.d.ts +14 -14
  256. package/lib/services/committee-money.service.d.ts +12 -12
  257. package/lib/services/committee-pdf.service.d.ts +13 -13
  258. package/lib/services/committee-snapshot.service.d.ts +24 -24
  259. package/lib/services/common-info.service.d.ts +30 -30
  260. package/lib/services/common.service.d.ts +103 -103
  261. package/lib/services/configuration-document.service.d.ts +84 -84
  262. package/lib/services/configuration-minisite.service.d.ts +13 -13
  263. package/lib/services/configuration.service.d.ts +15 -15
  264. package/lib/services/correspondence-document-category.service.d.ts +12 -12
  265. package/lib/services/correspondence-manager.service.d.ts +21 -21
  266. package/lib/services/credit-score.service.d.ts +14 -14
  267. package/lib/services/credit-study.service.d.ts +52 -52
  268. package/lib/services/cube.service.d.ts +14 -14
  269. package/lib/services/data-form-history.service.d.ts +13 -13
  270. package/lib/services/data-form.service.d.ts +82 -82
  271. package/lib/services/data-letter-segmentation.service.d.ts +20 -20
  272. package/lib/services/document-analysis-auto.service.d.ts +14 -14
  273. package/lib/services/document-history.service.d.ts +18 -18
  274. package/lib/services/document-management.service.d.ts +22 -22
  275. package/lib/services/document-validation-attempt.service.d.ts +13 -13
  276. package/lib/services/document.service.d.ts +51 -51
  277. package/lib/services/documentary.type.service.d.ts +23 -23
  278. package/lib/services/email.service.d.ts +15 -15
  279. package/lib/services/evaluation.service.d.ts +58 -58
  280. package/lib/services/export-excel.service.d.ts +8 -8
  281. package/lib/services/file.service.d.ts +63 -63
  282. package/lib/services/form.service.d.ts +39 -39
  283. package/lib/services/gic-client-disbursement-metadata.service.d.ts +12 -12
  284. package/lib/services/gic-client.service.d.ts +20 -20
  285. package/lib/services/gic-cnf-bankvision-transaction.service.d.ts +13 -13
  286. package/lib/services/gic-cnf-closing-date.service.d.ts +15 -15
  287. package/lib/services/gic-cnf-maintenance.service.d.ts +13 -13
  288. package/lib/services/gic-collection.service.d.ts +19 -19
  289. package/lib/services/gic-disbursement.service.d.ts +16 -16
  290. package/lib/services/gic-extract.service.d.ts +15 -15
  291. package/lib/services/gic-log.service.d.ts +17 -17
  292. package/lib/services/gic-payment-application.service.d.ts +15 -15
  293. package/lib/services/gic-payment-plan-cube.service.d.ts +13 -13
  294. package/lib/services/gic-payment-plan.service.d.ts +19 -19
  295. package/lib/services/gic-trm.service.d.ts +14 -14
  296. package/lib/services/global.show.task.service.d.ts +20 -20
  297. package/lib/services/guarantee-document.service.d.ts +17 -17
  298. package/lib/services/guarantee-enrollment.service.d.ts +14 -14
  299. package/lib/services/guarantee.service.d.ts +34 -34
  300. package/lib/services/hash.service.d.ts +18 -18
  301. package/lib/services/import-data.service.d.ts +14 -14
  302. package/lib/services/import-excel-gic.service.d.ts +22 -22
  303. package/lib/services/initial-configuration-gic-parameters.service.d.ts +19 -19
  304. package/lib/services/initial-record.service.d.ts +24 -24
  305. package/lib/services/integration-ado.service.d.ts +15 -15
  306. package/lib/services/interaction-application-user.service.d.ts +28 -28
  307. package/lib/services/interest-adjustment.service.d.ts +16 -16
  308. package/lib/services/keys-assignation.service.d.ts +33 -33
  309. package/lib/services/legalization.service.d.ts +46 -46
  310. package/lib/services/letter-campaing.service.d.ts +24 -24
  311. package/lib/services/letter-task-mapping.service.d.ts +22 -22
  312. package/lib/services/log.service.d.ts +17 -17
  313. package/lib/services/maintenance.service.d.ts +23 -23
  314. package/lib/services/master-category.service.d.ts +40 -40
  315. package/lib/services/master-program.service.d.ts +45 -45
  316. package/lib/services/master-university.service.d.ts +40 -40
  317. package/lib/services/migration-plis.service.d.ts +14 -14
  318. package/lib/services/migration-survey-queue.service.d.ts +12 -12
  319. package/lib/services/page.service.d.ts +18 -18
  320. package/lib/services/partner-system.service.d.ts +13 -13
  321. package/lib/services/partner.service.d.ts +17 -17
  322. package/lib/services/pdf-analyzer.service.d.ts +11 -11
  323. package/lib/services/people-master.service.d.ts +14 -14
  324. package/lib/services/permission.service.d.ts +14 -14
  325. package/lib/services/pli-cnf-acuity-fields.service.d.ts +14 -14
  326. package/lib/services/pli-cnf-app-card-filter.service.d.ts +20 -20
  327. package/lib/services/pli-cnf-appointment-type.service.d.ts +16 -16
  328. package/lib/services/pli-cnf-budget-program-type.service.d.ts +18 -18
  329. package/lib/services/pli-cnf-budget.service.d.ts +13 -13
  330. package/lib/services/pli-cnf-cloning.service.d.ts +12 -12
  331. package/lib/services/pli-cnf-committee-pdf-config-table-config.service.d.ts +19 -19
  332. package/lib/services/pli-cnf-committee-pdf-gen-status.service.d.ts +13 -13
  333. package/lib/services/pli-cnf-committee-valpro-columns.service.d.ts +15 -15
  334. package/lib/services/pli-cnf-committee-visualization-mode.service.d.ts +17 -17
  335. package/lib/services/pli-cnf-committee.service.d.ts +21 -21
  336. package/lib/services/pli-cnf-config-minisite.service.d.ts +26 -26
  337. package/lib/services/pli-cnf-configuration-credit-study.service.d.ts +16 -16
  338. package/lib/services/pli-cnf-document-management.service.d.ts +15 -15
  339. package/lib/services/pli-cnf-dynamic-keys-assign.service.d.ts +21 -21
  340. package/lib/services/pli-cnf-evaluation-task-mailing.service.d.ts +13 -13
  341. package/lib/services/pli-cnf-evaluation-task.service.d.ts +35 -35
  342. package/lib/services/pli-cnf-evaluation-template.service.d.ts +44 -44
  343. package/lib/services/pli-cnf-form-edit.service.d.ts +29 -29
  344. package/lib/services/pli-cnf-form-multiaplicacion.service.d.ts +21 -21
  345. package/lib/services/pli-cnf-guarantee-documents-template.service.d.ts +17 -17
  346. package/lib/services/pli-cnf-guarantee-token.service.d.ts +16 -16
  347. package/lib/services/pli-cnf-header.service.d.ts +18 -18
  348. package/lib/services/pli-cnf-indicator.service.d.ts +20 -20
  349. package/lib/services/pli-cnf-information-system.service.d.ts +12 -12
  350. package/lib/services/pli-cnf-interaction.service.d.ts +31 -31
  351. package/lib/services/pli-cnf-letter-template-type.service.d.ts +15 -15
  352. package/lib/services/pli-cnf-letter-template.service.d.ts +22 -22
  353. package/lib/services/pli-cnf-look-and-feel.service.d.ts +13 -13
  354. package/lib/services/pli-cnf-mail.service.d.ts +13 -13
  355. package/lib/services/pli-cnf-menu-form.service.d.ts +16 -16
  356. package/lib/services/pli-cnf-migration-plis-field-budget.service.d.ts +14 -14
  357. package/lib/services/pli-cnf-migration-plis-field.service.d.ts +17 -17
  358. package/lib/services/pli-cnf-migration-status-plis.service.d.ts +17 -17
  359. package/lib/services/pli-cnf-page-section-form.service.d.ts +24 -24
  360. package/lib/services/pli-cnf-page-sub-process.service.d.ts +12 -12
  361. package/lib/services/pli-cnf-pdfs.service.d.ts +14 -14
  362. package/lib/services/pli-cnf-profile-form.service.d.ts +20 -20
  363. package/lib/services/pli-cnf-profile-user.service.d.ts +24 -24
  364. package/lib/services/pli-cnf-project-summary.service.d.ts +16 -16
  365. package/lib/services/pli-cnf-scenario.service.d.ts +23 -23
  366. package/lib/services/pli-cnf-segmentation.service.d.ts +32 -32
  367. package/lib/services/pli-cnf-snapshot-token.service.d.ts +16 -16
  368. package/lib/services/pli-cnf-status-flow-interaction.service.d.ts +28 -28
  369. package/lib/services/pli-cnf-status-flow.service.d.ts +26 -26
  370. package/lib/services/pli-cnf-support-document-category.service.d.ts +17 -17
  371. package/lib/services/pli-cnf-support-document.service.d.ts +23 -23
  372. package/lib/services/pli-cnf-survey-document.service.d.ts +16 -16
  373. package/lib/services/pli-cnf-survey-pdf.service.d.ts +15 -15
  374. package/lib/services/pli-cnf-survey.service.d.ts +19 -19
  375. package/lib/services/pli-cnf-task-group.service.d.ts +15 -15
  376. package/lib/services/pli-cnf-text-category.service.d.ts +15 -15
  377. package/lib/services/pli-cnf-text-option.service.d.ts +15 -15
  378. package/lib/services/pli-cnf-text.service.d.ts +21 -21
  379. package/lib/services/pli-cnf-type-text.service.d.ts +16 -16
  380. package/lib/services/pli-cnf-university-article.service.d.ts +20 -20
  381. package/lib/services/pli-cnf-user-calendar.service.d.ts +16 -16
  382. package/lib/services/pli-cnf-user-workspace.service.d.ts +18 -18
  383. package/lib/services/pli-cnf-valpro-keys.service.d.ts +18 -18
  384. package/lib/services/pli-cnf-workspace-segmentation.service.d.ts +16 -16
  385. package/lib/services/pli-message-type.service.d.ts +15 -15
  386. package/lib/services/pli-multiple-value-filter.service.d.ts +17 -17
  387. package/lib/services/pli-promocion-username.service.d.ts +26 -26
  388. package/lib/services/pli-seg-action-user.service.d.ts +20 -20
  389. package/lib/services/pli-segmentation.service.d.ts +48 -48
  390. package/lib/services/pli-tag-assignment.service.d.ts +15 -15
  391. package/lib/services/pli-tag.service.d.ts +21 -21
  392. package/lib/services/pli-user.service.d.ts +24 -24
  393. package/lib/services/plis-beneficiario.service.d.ts +10 -10
  394. package/lib/services/plis-estatus-change.service.d.ts +13 -13
  395. package/lib/services/ppp.service.d.ts +77 -77
  396. package/lib/services/profile.service.d.ts +26 -26
  397. package/lib/services/progress-bar.service.d.ts +14 -14
  398. package/lib/services/promotion-score.service.d.ts +14 -14
  399. package/lib/services/registry-identifier.service.d.ts +16 -16
  400. package/lib/services/return-refund.service.d.ts +20 -20
  401. package/lib/services/segmentation-tokens.service.d.ts +22 -22
  402. package/lib/services/segmentation-user-service.service.d.ts +26 -26
  403. package/lib/services/segmentation.service.d.ts +16 -16
  404. package/lib/services/send-application.service.d.ts +71 -71
  405. package/lib/services/sesion-form.service.d.ts +16 -16
  406. package/lib/services/sesion.service.d.ts +27 -27
  407. package/lib/services/spinner.service.d.ts +6 -6
  408. package/lib/services/sponsorship-letter.service.d.ts +34 -34
  409. package/lib/services/status.service.d.ts +31 -31
  410. package/lib/services/summary-budget.service.d.ts +11 -11
  411. package/lib/services/survey-metadata.service.d.ts +13 -13
  412. package/lib/services/survey-queue.service.d.ts +12 -12
  413. package/lib/services/survey.service.d.ts +17 -17
  414. package/lib/services/tasa.cambio.service.d.ts +14 -14
  415. package/lib/services/token-transformation.service.d.ts +19 -19
  416. package/lib/services/token.service.d.ts +270 -270
  417. package/lib/services/university.service.d.ts +28 -28
  418. package/lib/services/upload-documents.service.d.ts +21 -21
  419. package/lib/services/user.service.d.ts +12 -12
  420. package/lib/services/visualization-committee.service.d.ts +32 -32
  421. package/lib/utils/custom-validator.d.ts +19 -19
  422. package/lib/utils/form-util.d.ts +11 -11
  423. package/lib/utils/formio-util.d.ts +105 -105
  424. package/lib/utils/version-commons.d.ts +4 -4
  425. package/package.json +10 -16
  426. package/public-api.d.ts +210 -210
  427. package/version.d.ts +25 -25
  428. package/esm2020/lib/components/backoffice.commons.component.mjs +0 -40
  429. package/esm2020/lib/components/common.lists.component.mjs +0 -194
  430. package/esm2020/lib/components/configuration-token/configuration-token.component.mjs +0 -665
  431. package/esm2020/lib/components/configuration-token/guarantee-token/guarantee-token.component.mjs +0 -103
  432. package/esm2020/lib/components/configuration-token/snapshot-token/snapshot-token.component.mjs +0 -108
  433. package/esm2020/lib/components/configuration.commons.component.mjs +0 -40
  434. package/esm2020/lib/components/dynamic-filter/dynamic-filter.component.mjs +0 -131
  435. package/esm2020/lib/components/excel-to-json/excel-to-json.component.mjs +0 -54
  436. package/esm2020/lib/components/frontoffice.commons.component.mjs +0 -86
  437. package/esm2020/lib/components/pdf-analyzer/pdf-analyzer.component.mjs +0 -162
  438. package/esm2020/lib/components/pdf-generator/pdf-generator.component.mjs +0 -223
  439. package/esm2020/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.mjs +0 -307
  440. package/esm2020/lib/components/pdf-visualizer/pdf-visualizer.component.mjs +0 -387
  441. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -92
  442. package/esm2020/lib/components/segmentation-tokens/segmentation-tokens.component.mjs +0 -199
  443. package/esm2020/lib/components/select-ppp/select-ppp.component.mjs +0 -199
  444. package/esm2020/lib/components/show-hide-columns/show-hide-columns-table.component.mjs +0 -116
  445. package/esm2020/lib/components/token/token.component.mjs +0 -1006
  446. package/esm2020/lib/components/tokens-calculator/tokens-calculator.component.mjs +0 -128
  447. package/esm2020/lib/ng-pli-commons.module.mjs +0 -390
  448. package/esm2020/lib/pipes/currency-colfuturo.pipe.mjs +0 -35
  449. package/esm2020/lib/pipes/thousands.pipe.mjs +0 -60
  450. package/esm2020/lib/services/authentication.service.mjs +0 -133
  451. package/esm2020/lib/services/budget-application.service.mjs +0 -265
  452. package/esm2020/lib/services/budget.service.mjs +0 -205
  453. package/esm2020/lib/services/common.service.mjs +0 -291
  454. package/esm2020/lib/services/configuration-document.service.mjs +0 -297
  455. package/esm2020/lib/services/documentary.type.service.mjs +0 -69
  456. package/esm2020/lib/services/file.service.mjs +0 -153
  457. package/esm2020/lib/services/guarantee.service.mjs +0 -128
  458. package/esm2020/lib/services/keys-assignation.service.mjs +0 -127
  459. package/esm2020/lib/services/pli-cnf-evaluation-task.service.mjs +0 -112
  460. package/esm2020/lib/services/ppp.service.mjs +0 -360
  461. package/esm2020/lib/services/progress-bar.service.mjs +0 -40
  462. package/esm2020/lib/services/segmentation-tokens.service.mjs +0 -43
  463. package/esm2020/lib/services/send-application.service.mjs +0 -492
  464. package/esm2020/lib/services/token.service.mjs +0 -1345
  465. package/esm2020/lib/services/upload-documents.service.mjs +0 -60
  466. package/esm2020/lib/utils/custom-validator.mjs +0 -95
  467. package/esm2020/lib/utils/form-util.mjs +0 -35
  468. package/esm2020/lib/utils/formio-util.mjs +0 -580
  469. package/fesm2015/ng-pli-commons.mjs +0 -17373
  470. package/fesm2015/ng-pli-commons.mjs.map +0 -1
  471. package/fesm2020/ng-pli-commons.mjs.map +0 -1
@@ -1,360 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { HttpParams, HttpHeaders } from '@angular/common/http';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { PliPatrocinador, PliPrograma, PliPromocion, JwtUtil, NumberUtil, AuthenticationUtil } from 'ng-pli-util';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class PppService {
8
- constructor(environment, httpClient) {
9
- this.environment = environment;
10
- this.httpClient = httpClient;
11
- this.headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
12
- /** This observable allows to verify if ppp is created */
13
- this.subjectPpp = new BehaviorSubject(undefined);
14
- /** This observable allows to verify if list ppp is generated */
15
- this.subjectListPpp = new BehaviorSubject(undefined);
16
- }
17
- /** It has an observable to notify if the ppp is changed */
18
- onChangePpp() {
19
- return this.subjectPpp.asObservable();
20
- }
21
- /** It sets the new ppp */
22
- setPpp(ppp) {
23
- if (ppp) {
24
- if (typeof ppp === 'string') {
25
- if (NumberUtil.isNumber(ppp)) {
26
- ppp = parseInt(ppp);
27
- }
28
- else {
29
- ppp = 0;
30
- }
31
- }
32
- else if (typeof ppp !== 'number') {
33
- ppp = 0;
34
- }
35
- }
36
- this.subjectPpp.next(ppp);
37
- }
38
- /** It returns a list of patrocinador */
39
- getListPatrocinador() {
40
- return this.httpClient.get(this.environment.host.backend.plis + 'config/patrocinador/getAll');
41
- }
42
- /** It returns a patrocinador by id */
43
- getPatrocinadorById(id) {
44
- return this.httpClient.get(this.environment.host.backend.plis + 'config/patrocinador/getById', { params: new HttpParams().set('patCodigo', id.toString()) });
45
- }
46
- /** It saves a patrocinador */
47
- savePatrocinador(oldPatrocinador, patrocinador) {
48
- //pliUsuario: {usuLogin : AuthenticationUtil.getUsername()};
49
- let object = {
50
- pliPatrocinadorBefore: oldPatrocinador,
51
- pliPatrocinador: patrocinador,
52
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
53
- };
54
- return this.httpClient.post(this.environment.host.backend.plis + 'config/patrocinador/save', object, this.headerJson);
55
- }
56
- /** It returns the list of tipo patrocinador */
57
- getListTipoPatrocinador() {
58
- return this.httpClient.get(this.environment.host.backend.plis + 'config/tipo-patrocinador/getAll');
59
- }
60
- /** It returns the list of tipo programa */
61
- getListTipoPrograma() {
62
- return this.httpClient.get(this.environment.host.backend.plis + 'config/tipo-programa/getAll');
63
- }
64
- /** It returns the list of paises */
65
- getPaises() {
66
- return this.httpClient.get(this.environment.host.backend.plis + 'pais/getAll');
67
- }
68
- /** It returns the list of programas by patrocinador id */
69
- getListProgramasBypatCodigo(patCodigo) {
70
- return this.httpClient.get(this.environment.host.backend.plis + 'config/programa/getAllByPatrocinador', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
71
- }
72
- /** It returns programa by id */
73
- getProgramaById(id) {
74
- return this.httpClient.get(this.environment.host.backend.plis + 'config/programa/getById', {
75
- params: new HttpParams().set('progCodigo', id.toString())
76
- });
77
- }
78
- /** It saves a programa */
79
- savePrograma(oldPrograma, programa) {
80
- let object = {
81
- pliProgramaBefore: oldPrograma,
82
- pliPrograma: programa,
83
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
84
- };
85
- return this.httpClient.post(this.environment.host.backend.plis + 'config/programa/save', object, this.headerJson);
86
- }
87
- /** It returns the list of programas by programa id */
88
- getListPromocionesByprogCodigo(progCodigo) {
89
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAllByPrograma', { params: new HttpParams().set('progCodigo', progCodigo.toString()) });
90
- }
91
- /** It returns the list of programas by patrocinador id */
92
- getListPromocionesBypatCodigo(patCodigo) {
93
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAllByPatrocinador', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
94
- }
95
- /** It returns the list of programas by patrocinador id and without configuracion */
96
- getListPromocionesBypatCodigoWithoutConfiguracion(patCodigo) {
97
- return this.httpClient.get(this.environment.host.backend.plis +
98
- 'config/promocion/getByPatrocinador/withoutConfiguracion', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
99
- }
100
- /** It returns promocion by id */
101
- getPromocionById(id) {
102
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getById', { params: new HttpParams().set('promCodigo', id.toString()) });
103
- }
104
- /** It saves a promocion */
105
- savePromocion(oldPromocion, promocion) {
106
- let object = {
107
- pliPromocionBefore: oldPromocion,
108
- pliPromocion: promocion,
109
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
110
- };
111
- return this.httpClient.post(this.environment.host.backend.plis + 'config/promocion/save', object, this.headerJson);
112
- }
113
- /** It returns a list of pliCnfConfiguracion by patCodigo */
114
- getConfiguracionBypatCodigo(patCodigo, cargarListas) {
115
- return this.httpClient.get(this.environment.host.backend.plis + 'config/configuracion/getAllByPatrocinador', {
116
- params: new HttpParams()
117
- .set('patCodigo', patCodigo.toString())
118
- .set('cargarListas', cargarListas.toString())
119
- });
120
- }
121
- /** It returns configuracion by id */
122
- getConfiguracionById(id, cargarListas) {
123
- return this.httpClient.get(this.environment.host.backend.plis + 'config/configuracion/getById', {
124
- params: new HttpParams()
125
- .set('cconCodigo', id.toString())
126
- .set('cargarListas', cargarListas.toString())
127
- });
128
- }
129
- /** It saves a configuracion */
130
- saveConfiguracion(oldConfiguracion, configuracion) {
131
- let object = {
132
- pliCnfConfiguracionBefore: oldConfiguracion,
133
- pliCnfConfiguracion: configuracion,
134
- pliUsuario: { usuLogin: AuthenticationUtil.getUsername() }
135
- };
136
- return this.httpClient.post(this.environment.host.backend.plis + 'config/configuracion/save', object, this.headerJson);
137
- }
138
- /** It updates de code of configuracion to a list of codes of promocion */
139
- updateConfiguracionPliPromocion(cconCodigo, listaPromCodigo) {
140
- let object = {
141
- cconCodigo: cconCodigo,
142
- listaPromCodigo: listaPromCodigo
143
- };
144
- return this.httpClient.put(this.environment.host.backend.plis + 'config/promocion/updateConfigurationMassive', object, this.headerJson);
145
- }
146
- /** It has an observable to notify if the list ppp is generated*/
147
- getListPpp() {
148
- setTimeout(() => {
149
- this.generate();
150
- }, 300);
151
- return this.subjectListPpp.asObservable();
152
- }
153
- /** It returns a list of available pliPromocion by patCodigo */
154
- getAvailablePromocion(patCodigo) {
155
- if (!patCodigo) {
156
- patCodigo = 0;
157
- }
158
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAvailableByPatCodigo', { params: new HttpParams().set('patCodigo', patCodigo.toString()) });
159
- }
160
- /** It returns a list of pliPromocion */
161
- getAll() {
162
- return this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAll');
163
- }
164
- /** it returns list of patrocinador depends of token info*/
165
- getlPatrocinadorByToken() {
166
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
167
- if (tokenPpp && tokenPpp.length) {
168
- const ppp = JwtUtil.parseJwt(tokenPpp);
169
- if (ppp && ppp.ppp) {
170
- let lPliPatrocinador = Array();
171
- for (let pat of ppp.ppp) {
172
- let pliPat = new PliPatrocinador();
173
- pliPat.patCodigo = pat.patCodigo;
174
- pliPat.patNombre = pat.patNombre;
175
- pliPat.patNombreCorto = pat.patNombreCorto;
176
- if (pat.listaPliPrograma && pat.listaPliPrograma.length > 0) {
177
- pliPat.lPliPrograma = Array();
178
- for (let prog of pat.listaPliPrograma) {
179
- let pliProg = new PliPrograma();
180
- pliProg.progCodigo = prog.progCodigo;
181
- pliProg.progNombre = prog.progNombre;
182
- pliProg.progNombreCorto = prog.progNombreCorto;
183
- if (prog.listaPliPromocion && prog.listaPliPromocion.length > 0) {
184
- pliProg.lPliPromocion = Array();
185
- for (let prom of prog.listaPliPromocion) {
186
- let pliProm = new PliPromocion();
187
- pliProm.promCodigo = prom.promCodigo;
188
- pliProm.promNombre = prom.promNombre;
189
- pliProm.promNombreCorto = prom.promNombreCorto;
190
- pliProm.promFechaCreacion = prom.promFechaCreacion;
191
- pliProg.lPliPromocion.push(pliProm);
192
- }
193
- }
194
- pliPat.lPliPrograma.push(pliProg);
195
- }
196
- }
197
- lPliPatrocinador.push(pliPat);
198
- }
199
- return lPliPatrocinador;
200
- }
201
- }
202
- return null;
203
- }
204
- getAllPromociones() {
205
- let lPromociones = [];
206
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
207
- if (tokenPpp && tokenPpp.length) {
208
- const ppp = JwtUtil.parseJwt(tokenPpp);
209
- if (ppp && ppp.ppp) {
210
- for (let pat of ppp.ppp) {
211
- let pliPat = new PliPatrocinador();
212
- pliPat.patCodigo = pat.patCodigo;
213
- pliPat.patNombre = pat.patNombre;
214
- pliPat.patNombreCorto = pat.patNombreCorto;
215
- if (pat.listaPliPrograma && pat.listaPliPrograma.length > 0) {
216
- pliPat.lPliPrograma = Array();
217
- for (let prog of pat.listaPliPrograma) {
218
- let pliProg = new PliPrograma();
219
- pliProg.progCodigo = prog.progCodigo;
220
- pliProg.progNombre = prog.progNombre;
221
- pliProg.progNombreCorto = prog.progNombreCorto;
222
- if (prog.listaPliPromocion && prog.listaPliPromocion.length > 0) {
223
- pliProg.lPliPromocion = Array();
224
- for (let prom of prog.listaPliPromocion) {
225
- let pliProm = new PliPromocion();
226
- pliProm.promCodigo = prom.promCodigo;
227
- pliProm.promNombre = prom.promNombre;
228
- pliProm.promNombreCorto = prom.promNombreCorto;
229
- pliProm.promFechaCreacion = prom.promFechaCreacion;
230
- lPromociones.push(pliProm);
231
- }
232
- }
233
- }
234
- }
235
- }
236
- return lPromociones;
237
- }
238
- }
239
- return null;
240
- }
241
- /** it returns the patcodigo by promCodigo */
242
- getPatCodigoByPromCodigo(promCodigo) {
243
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
244
- if (tokenPpp && tokenPpp.length) {
245
- const ppp = JwtUtil.parseJwt(tokenPpp);
246
- if (ppp && ppp.ppp)
247
- for (const patrocinador of ppp.ppp)
248
- for (const programa of patrocinador.listaPliPrograma)
249
- for (const promocion of programa.listaPliPromocion)
250
- if (promocion.promCodigo == promCodigo)
251
- return patrocinador.patCodigo;
252
- return undefined;
253
- }
254
- }
255
- /** it returns the patcodigo by promCodigo */
256
- getProgCodigoByPromCodigo(promCodigo) {
257
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
258
- if (tokenPpp && tokenPpp.length) {
259
- const ppp = JwtUtil.parseJwt(tokenPpp);
260
- if (ppp && ppp.ppp)
261
- for (const patrocinador of ppp.ppp)
262
- for (const programa of patrocinador.listaPliPrograma)
263
- for (const promocion of programa.listaPliPromocion)
264
- if (promocion.promCodigo == promCodigo)
265
- return programa.progCodigo;
266
- return undefined;
267
- }
268
- }
269
- /** It generated a light list of ppp */
270
- generate() {
271
- // 1. it verifies tokenPpp
272
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
273
- if (tokenPpp && tokenPpp.length) {
274
- const ppp = JwtUtil.parseJwt(tokenPpp);
275
- if (ppp && ppp.ppp)
276
- this.subjectListPpp.next(ppp.ppp);
277
- }
278
- else {
279
- // 2. it retrieves the list ppp
280
- let authorities = AuthenticationUtil.getAuthorities();
281
- if (authorities && authorities.length > 0) {
282
- let listPatCodigo = [];
283
- for (const authority of authorities)
284
- listPatCodigo.push(authority.patCodigo);
285
- if (listPatCodigo)
286
- this.httpClient
287
- .get(this.environment.host.backend.plis +
288
- 'config/patrocinador/getLightByListPatrocinador', { params: new HttpParams().set('patCodigos', listPatCodigo.toString()) })
289
- .subscribe((result) => {
290
- if (result && result.tokenPpp) {
291
- localStorage.setItem(PppService.TOKEN_PPP, result.tokenPpp);
292
- this.generate();
293
- }
294
- else {
295
- this.subjectListPpp.next([]);
296
- }
297
- }, (error) => {
298
- console.error('ERROR consulting ppp', error);
299
- this.subjectListPpp.next([]);
300
- });
301
- }
302
- }
303
- }
304
- /** it returns the PPP from the token */
305
- getPPPInfoFromToken() {
306
- let tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);
307
- const lPliPatrocinador = [];
308
- if (tokenPpp && tokenPpp.length) {
309
- const ppp = JwtUtil.parseJwt(tokenPpp);
310
- if (ppp && ppp.ppp)
311
- for (const patrocinador of ppp.ppp) {
312
- const pliPatrocinador = new PliPatrocinador();
313
- const lPliPrograma = [];
314
- for (const programa of patrocinador.listaPliPrograma) {
315
- const pliPrograma = new PliPrograma();
316
- pliPrograma.progCodigo = programa.progCodigo;
317
- pliPrograma.progNombreCorto = programa.progNombreCorto;
318
- pliPrograma.progNombre = programa.progNombre;
319
- const lPliPromocion = [];
320
- for (const promocion of programa.listaPliPromocion) {
321
- const pliPromocion = new PliPromocion();
322
- pliPromocion.promCodigo = promocion.promCodigo;
323
- pliPromocion.promNombreCorto = promocion.promNombreCorto;
324
- pliPromocion.promNombre = promocion.promNombre;
325
- pliPromocion.promAnio = promocion.promAnio;
326
- lPliPromocion.push(pliPromocion);
327
- }
328
- pliPrograma.lPliPromocion = lPliPromocion;
329
- lPliPrograma.push(pliPrograma);
330
- }
331
- pliPatrocinador.lPliPrograma = lPliPrograma;
332
- lPliPatrocinador.push(pliPatrocinador);
333
- }
334
- }
335
- return lPliPatrocinador;
336
- }
337
- pppRollback(pppRequest) {
338
- return this.httpClient.post(this.environment.host.backend.configuration + 'pppRollback', pppRequest, this.headerJson);
339
- }
340
- deleteBudgetByProm(promCodigo) {
341
- let object = {
342
- promCodigo: promCodigo
343
- };
344
- return this.httpClient.post(this.environment.host.backend.plis + 'config/promocion/deleteBudgetByProm', object, this.headerJson);
345
- }
346
- }
347
- /** It contains the key of the json web token */
348
- PppService.TOKEN_PPP = 'tokenPpp';
349
- PppService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PppService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
350
- PppService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PppService, providedIn: 'root' });
351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PppService, decorators: [{
352
- type: Injectable,
353
- args: [{
354
- providedIn: 'root'
355
- }]
356
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
357
- type: Inject,
358
- args: ['environment']
359
- }] }, { type: i1.HttpClient }]; } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3BwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFjLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQ04sZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBRVosT0FBTyxFQUNQLFVBQVUsRUFDVixrQkFBa0IsRUFFbEIsTUFBTSxhQUFhLENBQUM7OztBQUtyQixNQUFNLE9BQU8sVUFBVTtJQVl0QixZQUEyQyxXQUFnQixFQUFVLFVBQXNCO1FBQWhELGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVhuRixlQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFLMUYseURBQXlEO1FBQ2pELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUU1RCxnRUFBZ0U7UUFDeEQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBYSxTQUFTLENBQUMsQ0FBQztJQUUwQixDQUFDO0lBRS9GLDREQUE0RDtJQUM1RCxXQUFXO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLEdBQVc7UUFDakIsSUFBSSxHQUFHLEVBQUU7WUFDUixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM3QixHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNwQjtxQkFBTTtvQkFDTixHQUFHLEdBQUcsQ0FBQyxDQUFDO2lCQUNSO2FBQ0Q7aUJBQU0sSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7Z0JBQ25DLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDUjtTQUNEO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxtQkFBbUI7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyw0QkFBNEIsQ0FDakUsQ0FBQztJQUNILENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsbUJBQW1CLENBQUMsRUFBVTtRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLDZCQUE2QixFQUNsRSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FDNUQsQ0FBQztJQUNILENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsZ0JBQWdCLENBQUMsZUFBZ0MsRUFBRSxZQUE2QjtRQUMvRSw0REFBNEQ7UUFDNUQsSUFBSSxNQUFNLEdBQUc7WUFDWixxQkFBcUIsRUFBRSxlQUFlO1lBQ3RDLGVBQWUsRUFBRSxZQUFZO1lBQzdCLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsRUFBRTtTQUMxRCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRywwQkFBMEIsRUFDL0QsTUFBTSxFQUNOLElBQUksQ0FBQyxVQUFVLENBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsdUJBQXVCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsaUNBQWlDLENBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLG1CQUFtQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLDZCQUE2QixDQUNsRSxDQUFDO0lBQ0gsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsMkJBQTJCLENBQUMsU0FBaUI7UUFDNUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxzQ0FBc0MsRUFDM0UsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLGVBQWUsQ0FBQyxFQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyx5QkFBeUIsRUFBRTtZQUMxRixNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLFlBQVksQ0FBQyxXQUF3QixFQUFFLFFBQXFCO1FBQzNELElBQUksTUFBTSxHQUFHO1lBQ1osaUJBQWlCLEVBQUUsV0FBVztZQUM5QixXQUFXLEVBQUUsUUFBUTtZQUNyQixVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxFQUFFLEVBQUU7U0FDMUQsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLEVBQzNELE1BQU0sRUFDTixJQUFJLENBQUMsVUFBVSxDQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELDhCQUE4QixDQUFDLFVBQWtCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsbUNBQW1DLEVBQ3hFLEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUNyRSxDQUFDO0lBQ0gsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCw2QkFBNkIsQ0FBQyxTQUFpQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLHVDQUF1QyxFQUM1RSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FDbkUsQ0FBQztJQUNILENBQUM7SUFFRCxvRkFBb0Y7SUFDcEYsaURBQWlELENBQUMsU0FBaUI7UUFDbEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDakMseURBQXlELEVBQzFELEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxnQkFBZ0IsQ0FBQyxFQUFVO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsMEJBQTBCLEVBQy9ELEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUM3RCxDQUFDO0lBQ0gsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixhQUFhLENBQUMsWUFBMEIsRUFBRSxTQUF1QjtRQUNoRSxJQUFJLE1BQU0sR0FBRztZQUNaLGtCQUFrQixFQUFFLFlBQVk7WUFDaEMsWUFBWSxFQUFFLFNBQVM7WUFDdkIsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxFQUFFO1NBQzFELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLHVCQUF1QixFQUM1RCxNQUFNLEVBQ04sSUFBSSxDQUFDLFVBQVUsQ0FDZixDQUFDO0lBQ0gsQ0FBQztJQUVELDREQUE0RDtJQUM1RCwyQkFBMkIsQ0FBQyxTQUFpQixFQUFFLFlBQXFCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsMkNBQTJDLEVBQ2hGO1lBQ0MsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFO2lCQUN0QixHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDdEMsR0FBRyxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDOUMsQ0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxvQkFBb0IsQ0FBQyxFQUFVLEVBQUUsWUFBcUI7UUFDckQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyw4QkFBOEIsRUFDbkU7WUFDQyxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUU7aUJBQ3RCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNoQyxHQUFHLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5QyxDQUNELENBQUM7SUFDSCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLGlCQUFpQixDQUFDLGdCQUFxQyxFQUFFLGFBQWtDO1FBQzFGLElBQUksTUFBTSxHQUFHO1lBQ1oseUJBQXlCLEVBQUUsZ0JBQWdCO1lBQzNDLG1CQUFtQixFQUFFLGFBQWE7WUFDbEMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxFQUFFO1NBQzFELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLDJCQUEyQixFQUNoRSxNQUFNLEVBQ04sSUFBSSxDQUFDLFVBQVUsQ0FDZixDQUFDO0lBQ0gsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSwrQkFBK0IsQ0FBQyxVQUFrQixFQUFFLGVBQThCO1FBQ2pGLElBQUksTUFBTSxHQUFHO1lBQ1osVUFBVSxFQUFFLFVBQVU7WUFDdEIsZUFBZSxFQUFFLGVBQWU7U0FDaEMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsNkNBQTZDLEVBQ2xGLE1BQU0sRUFDTixJQUFJLENBQUMsVUFBVSxDQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLFVBQVU7UUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNSLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELHFCQUFxQixDQUFDLFNBQWlCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZixTQUFTLEdBQUcsQ0FBQyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLDBDQUEwQyxFQUMvRSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FDbkUsQ0FBQztJQUNILENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsTUFBTTtRQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsdUJBQXVCO1FBQ3RCLElBQUksUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDaEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixJQUFJLGdCQUFnQixHQUFHLEtBQUssRUFBbUIsQ0FBQztnQkFDaEQsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUNuQyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7b0JBQ2pDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztvQkFDakMsTUFBTSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO29CQUMzQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDNUQsTUFBTSxDQUFDLFlBQVksR0FBRyxLQUFLLEVBQWUsQ0FBQzt3QkFDM0MsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ3RDLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7NEJBQ2hDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs0QkFDckMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDOzRCQUNyQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7NEJBQy9DLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dDQUNoRSxPQUFPLENBQUMsYUFBYSxHQUFHLEtBQUssRUFBZ0IsQ0FBQztnQ0FDOUMsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7b0NBQ3hDLElBQUksT0FBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7b0NBQ2pDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztvQ0FDckMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO29DQUNyQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7b0NBQy9DLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7b0NBQ25ELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lDQUNwQzs2QkFDRDs0QkFDRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt5QkFDbEM7cUJBQ0Q7b0JBQ0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUM5QjtnQkFDRCxPQUFPLGdCQUFnQixDQUFDO2FBQ3hCO1NBQ0Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxpQkFBaUI7UUFDaEIsSUFBSSxZQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUN0QyxJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUNuQyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7b0JBQ2pDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztvQkFDakMsTUFBTSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO29CQUMzQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDNUQsTUFBTSxDQUFDLFlBQVksR0FBRyxLQUFLLEVBQWUsQ0FBQzt3QkFDM0MsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ3RDLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7NEJBQ2hDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs0QkFDckMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDOzRCQUNyQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7NEJBQy9DLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dDQUNoRSxPQUFPLENBQUMsYUFBYSxHQUFHLEtBQUssRUFBZ0IsQ0FBQztnQ0FDOUMsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7b0NBQ3hDLElBQUksT0FBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7b0NBQ2pDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztvQ0FDckMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO29DQUNyQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7b0NBQy9DLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7b0NBQ25ELFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUNBQzNCOzZCQUNEO3lCQUNEO3FCQUNEO2lCQUNEO2dCQUNELE9BQU8sWUFBWSxDQUFDO2FBQ3BCO1NBQ0Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0Msd0JBQXdCLENBQUMsVUFBVTtRQUNsQyxJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUc7Z0JBQ2pCLEtBQUssTUFBTSxZQUFZLElBQUksR0FBRyxDQUFDLEdBQUc7b0JBQ2pDLEtBQUssTUFBTSxRQUFRLElBQUksWUFBWSxDQUFDLGdCQUFnQjt3QkFDbkQsS0FBSyxNQUFNLFNBQVMsSUFBSSxRQUFRLENBQUMsaUJBQWlCOzRCQUNqRCxJQUFJLFNBQVMsQ0FBQyxVQUFVLElBQUksVUFBVTtnQ0FBRSxPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFDMUUsT0FBTyxTQUFTLENBQUM7U0FDakI7SUFDRixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLHlCQUF5QixDQUFDLFVBQVU7UUFDbkMsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNoQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHO2dCQUNqQixLQUFLLE1BQU0sWUFBWSxJQUFJLEdBQUcsQ0FBQyxHQUFHO29CQUNqQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFlBQVksQ0FBQyxnQkFBZ0I7d0JBQ25ELEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLGlCQUFpQjs0QkFDakQsSUFBSSxTQUFTLENBQUMsVUFBVSxJQUFJLFVBQVU7Z0NBQUUsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3ZFLE9BQU8sU0FBUyxDQUFDO1NBQ2pCO0lBQ0YsQ0FBQztJQUNELHVDQUF1QztJQUMvQixRQUFRO1FBQ2YsMEJBQTBCO1FBQzFCLElBQUksUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDaEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRztnQkFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUNOLCtCQUErQjtZQUMvQixJQUFJLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0RCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixLQUFLLE1BQU0sU0FBUyxJQUFJLFdBQVc7b0JBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRTdFLElBQUksYUFBYTtvQkFDaEIsSUFBSSxDQUFDLFVBQVU7eUJBQ2IsR0FBRyxDQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO3dCQUNqQyxnREFBZ0QsRUFDakQsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQ3hFO3lCQUNBLFNBQVMsQ0FDVCxDQUFDLE1BQVcsRUFBRSxFQUFFO3dCQUNmLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7NEJBQzlCLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQzVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzt5QkFDaEI7NkJBQU07NEJBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQzdCO29CQUNGLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM5QixDQUFDLENBQ0QsQ0FBQzthQUNKO1NBQ0Q7SUFDRixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLG1CQUFtQjtRQUNsQixJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxNQUFNLGdCQUFnQixHQUFzQixFQUFFLENBQUM7UUFDL0MsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNoQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHO2dCQUNqQixLQUFLLE1BQU0sWUFBWSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ25DLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQzlDLE1BQU0sWUFBWSxHQUFrQixFQUFFLENBQUM7b0JBQ3ZDLEtBQUssTUFBTSxRQUFRLElBQUksWUFBWSxDQUFDLGdCQUFnQixFQUFFO3dCQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO3dCQUN0QyxXQUFXLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7d0JBQzdDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQzt3QkFDdkQsV0FBVyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO3dCQUM3QyxNQUFNLGFBQWEsR0FBbUIsRUFBRSxDQUFDO3dCQUN6QyxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTs0QkFDbkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs0QkFDeEMsWUFBWSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDOzRCQUMvQyxZQUFZLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUM7NEJBQ3pELFlBQVksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQzs0QkFDL0MsWUFBWSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDOzRCQUMzQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3lCQUNqQzt3QkFDRCxXQUFXLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQzt3QkFDMUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztxQkFDL0I7b0JBQ0QsZUFBZSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7b0JBQzVDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDdkM7U0FDRjtRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxVQUFzQjtRQUVqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLGFBQWEsRUFDM0QsVUFBVSxFQUNWLElBQUksQ0FBQyxVQUFVLENBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLE1BQU0sR0FBRztZQUNaLFVBQVUsRUFBRSxVQUFVO1NBQ3RCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLHFDQUFxQyxFQUMxRSxNQUFNLEVBQ04sSUFBSSxDQUFDLFVBQVUsQ0FDZixDQUFDO0lBQ0gsQ0FBQzs7QUE3YUQsZ0RBQWdEO0FBQ3pDLG9CQUFTLEdBQUcsVUFBVSxDQUFDO3VHQUpsQixVQUFVLGtCQVlGLGFBQWE7MkdBWnJCLFVBQVUsY0FGVixNQUFNOzJGQUVOLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFhYSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuXHRQbGlQYXRyb2NpbmFkb3IsXHJcblx0UGxpUHJvZ3JhbWEsXHJcblx0UGxpUHJvbW9jaW9uLFxyXG5cdFBsaUNuZkNvbmZpZ3VyYWNpb24sXHJcblx0Snd0VXRpbCxcclxuXHROdW1iZXJVdGlsLFxyXG5cdEF1dGhlbnRpY2F0aW9uVXRpbCxcclxuXHRQcHBSZXF1ZXN0XHJcbn0gZnJvbSAnbmctcGxpLXV0aWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHBwU2VydmljZSB7XHJcblx0cHJpdmF0ZSBoZWFkZXJKc29uID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pIH07XHJcblxyXG5cdC8qKiBJdCBjb250YWlucyB0aGUga2V5IG9mIHRoZSBqc29uIHdlYiB0b2tlbiAqL1xyXG5cdHN0YXRpYyBUT0tFTl9QUFAgPSAndG9rZW5QcHAnO1xyXG5cclxuXHQvKiogVGhpcyBvYnNlcnZhYmxlIGFsbG93cyB0byB2ZXJpZnkgaWYgcHBwIGlzIGNyZWF0ZWQgKi9cclxuXHRwcml2YXRlIHN1YmplY3RQcHAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcclxuXHJcblx0LyoqIFRoaXMgb2JzZXJ2YWJsZSBhbGxvd3MgdG8gdmVyaWZ5IGlmIGxpc3QgcHBwIGlzIGdlbmVyYXRlZCAqL1xyXG5cdHByaXZhdGUgc3ViamVjdExpc3RQcHAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PGFueT4+KHVuZGVmaW5lZCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55LCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XHJcblxyXG5cdC8qKiAgSXQgaGFzIGFuIG9ic2VydmFibGUgdG8gbm90aWZ5IGlmIHRoZSBwcHAgaXMgY2hhbmdlZCAqL1xyXG5cdG9uQ2hhbmdlUHBwKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdWJqZWN0UHBwLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNldHMgdGhlIG5ldyBwcHAgKi9cclxuXHRzZXRQcHAocHBwOiBudW1iZXIpIHtcclxuXHRcdGlmIChwcHApIHtcclxuXHRcdFx0aWYgKHR5cGVvZiBwcHAgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0aWYgKE51bWJlclV0aWwuaXNOdW1iZXIocHBwKSkge1xyXG5cdFx0XHRcdFx0cHBwID0gcGFyc2VJbnQocHBwKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cHBwID0gMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIHBwcCAhPT0gJ251bWJlcicpIHtcclxuXHRcdFx0XHRwcHAgPSAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR0aGlzLnN1YmplY3RQcHAubmV4dChwcHApO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBsaXN0IG9mIHBhdHJvY2luYWRvciAqL1xyXG5cdGdldExpc3RQYXRyb2NpbmFkb3IoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcGF0cm9jaW5hZG9yL2dldEFsbCdcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhIHBhdHJvY2luYWRvciBieSBpZCAqL1xyXG5cdGdldFBhdHJvY2luYWRvckJ5SWQoaWQ6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3BhdHJvY2luYWRvci9nZXRCeUlkJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBpZC50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgcGF0cm9jaW5hZG9yICovXHJcblx0c2F2ZVBhdHJvY2luYWRvcihvbGRQYXRyb2NpbmFkb3I6IFBsaVBhdHJvY2luYWRvciwgcGF0cm9jaW5hZG9yOiBQbGlQYXRyb2NpbmFkb3IpIHtcclxuXHRcdC8vcGxpVXN1YXJpbzoge3VzdUxvZ2luIDogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCl9O1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0cGxpUGF0cm9jaW5hZG9yQmVmb3JlOiBvbGRQYXRyb2NpbmFkb3IsXHJcblx0XHRcdHBsaVBhdHJvY2luYWRvcjogcGF0cm9jaW5hZG9yLFxyXG5cdFx0XHRwbGlVc3VhcmlvOiB7IHVzdUxvZ2luOiBBdXRoZW50aWNhdGlvblV0aWwuZ2V0VXNlcm5hbWUoKSB9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wYXRyb2NpbmFkb3Ivc2F2ZScsXHJcblx0XHRcdG9iamVjdCxcclxuXHRcdFx0dGhpcy5oZWFkZXJKc29uXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgdGlwbyBwYXRyb2NpbmFkb3IgKi9cclxuXHRnZXRMaXN0VGlwb1BhdHJvY2luYWRvcigpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy90aXBvLXBhdHJvY2luYWRvci9nZXRBbGwnXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgdGlwbyBwcm9ncmFtYSAqL1xyXG5cdGdldExpc3RUaXBvUHJvZ3JhbWEoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvdGlwby1wcm9ncmFtYS9nZXRBbGwnXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcGFpc2VzICovXHJcblx0Z2V0UGFpc2VzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdwYWlzL2dldEFsbCcpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgdGhlIGxpc3Qgb2YgcHJvZ3JhbWFzIGJ5IHBhdHJvY2luYWRvciBpZCAqL1xyXG5cdGdldExpc3RQcm9ncmFtYXNCeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL2dldEFsbEJ5UGF0cm9jaW5hZG9yJyxcclxuXHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ28nLCBwYXRDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHByb2dyYW1hIGJ5IGlkICovXHJcblx0Z2V0UHJvZ3JhbWFCeUlkKGlkOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL2dldEJ5SWQnLCB7XHJcblx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb2dDb2RpZ28nLCBpZC50b1N0cmluZygpKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgc2F2ZXMgYSBwcm9ncmFtYSAqL1xyXG5cdHNhdmVQcm9ncmFtYShvbGRQcm9ncmFtYTogUGxpUHJvZ3JhbWEsIHByb2dyYW1hOiBQbGlQcm9ncmFtYSkge1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0cGxpUHJvZ3JhbWFCZWZvcmU6IG9sZFByb2dyYW1hLFxyXG5cdFx0XHRwbGlQcm9ncmFtYTogcHJvZ3JhbWEsXHJcblx0XHRcdHBsaVVzdWFyaW86IHsgdXN1TG9naW46IEF1dGhlbnRpY2F0aW9uVXRpbC5nZXRVc2VybmFtZSgpIH1cclxuXHRcdH07XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb2dyYW1hL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHByb2dyYW1hcyBieSBwcm9ncmFtYSBpZCAqL1xyXG5cdGdldExpc3RQcm9tb2Npb25lc0J5cHJvZ0NvZGlnbyhwcm9nQ29kaWdvOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZ2V0QWxsQnlQcm9ncmFtYScsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncHJvZ0NvZGlnbycsIHByb2dDb2RpZ28udG9TdHJpbmcoKSkgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBsaXN0IG9mIHByb2dyYW1hcyBieSBwYXRyb2NpbmFkb3IgaWQgKi9cclxuXHRnZXRMaXN0UHJvbW9jaW9uZXNCeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRBbGxCeVBhdHJvY2luYWRvcicsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgcGF0Q29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyB0aGUgbGlzdCBvZiBwcm9ncmFtYXMgYnkgcGF0cm9jaW5hZG9yIGlkIGFuZCB3aXRob3V0IGNvbmZpZ3VyYWNpb24gKi9cclxuXHRnZXRMaXN0UHJvbW9jaW9uZXNCeXBhdENvZGlnb1dpdGhvdXRDb25maWd1cmFjaW9uKHBhdENvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArXHJcblx0XHRcdFx0J2NvbmZpZy9wcm9tb2Npb24vZ2V0QnlQYXRyb2NpbmFkb3Ivd2l0aG91dENvbmZpZ3VyYWNpb24nLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgcHJvbW9jaW9uIGJ5IGlkICovXHJcblx0Z2V0UHJvbW9jaW9uQnlJZChpZDogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL2dldEJ5SWQnLFxyXG5cdFx0XHR7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3Byb21Db2RpZ28nLCBpZC50b1N0cmluZygpKSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHNhdmVzIGEgcHJvbW9jaW9uICovXHJcblx0c2F2ZVByb21vY2lvbihvbGRQcm9tb2Npb246IFBsaVByb21vY2lvbiwgcHJvbW9jaW9uOiBQbGlQcm9tb2Npb24pIHtcclxuXHRcdGxldCBvYmplY3QgPSB7XHJcblx0XHRcdHBsaVByb21vY2lvbkJlZm9yZTogb2xkUHJvbW9jaW9uLFxyXG5cdFx0XHRwbGlQcm9tb2Npb246IHByb21vY2lvbixcclxuXHRcdFx0cGxpVXN1YXJpbzogeyB1c3VMb2dpbjogQXV0aGVudGljYXRpb25VdGlsLmdldFVzZXJuYW1lKCkgfVxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBwbGlDbmZDb25maWd1cmFjaW9uIGJ5IHBhdENvZGlnbyAqL1xyXG5cdGdldENvbmZpZ3VyYWNpb25CeXBhdENvZGlnbyhwYXRDb2RpZ286IG51bWJlciwgY2FyZ2FyTGlzdGFzOiBib29sZWFuKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvY29uZmlndXJhY2lvbi9nZXRBbGxCeVBhdHJvY2luYWRvcicsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKClcclxuXHRcdFx0XHRcdC5zZXQoJ3BhdENvZGlnbycsIHBhdENvZGlnby50b1N0cmluZygpKVxyXG5cdFx0XHRcdFx0LnNldCgnY2FyZ2FyTGlzdGFzJywgY2FyZ2FyTGlzdGFzLnRvU3RyaW5nKCkpXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBjb25maWd1cmFjaW9uIGJ5IGlkICovXHJcblx0Z2V0Q29uZmlndXJhY2lvbkJ5SWQoaWQ6IG51bWJlciwgY2FyZ2FyTGlzdGFzOiBib29sZWFuKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvY29uZmlndXJhY2lvbi9nZXRCeUlkJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgnY2NvbkNvZGlnbycsIGlkLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdjYXJnYXJMaXN0YXMnLCBjYXJnYXJMaXN0YXMudG9TdHJpbmcoKSlcclxuXHRcdFx0fVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzYXZlcyBhIGNvbmZpZ3VyYWNpb24gKi9cclxuXHRzYXZlQ29uZmlndXJhY2lvbihvbGRDb25maWd1cmFjaW9uOiBQbGlDbmZDb25maWd1cmFjaW9uLCBjb25maWd1cmFjaW9uOiBQbGlDbmZDb25maWd1cmFjaW9uKSB7XHJcblx0XHRsZXQgb2JqZWN0ID0ge1xyXG5cdFx0XHRwbGlDbmZDb25maWd1cmFjaW9uQmVmb3JlOiBvbGRDb25maWd1cmFjaW9uLFxyXG5cdFx0XHRwbGlDbmZDb25maWd1cmFjaW9uOiBjb25maWd1cmFjaW9uLFxyXG5cdFx0XHRwbGlVc3VhcmlvOiB7IHVzdUxvZ2luOiBBdXRoZW50aWNhdGlvblV0aWwuZ2V0VXNlcm5hbWUoKSB9XHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9jb25maWd1cmFjaW9uL3NhdmUnLFxyXG5cdFx0XHRvYmplY3QsXHJcblx0XHRcdHRoaXMuaGVhZGVySnNvblxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCB1cGRhdGVzIGRlIGNvZGUgb2YgY29uZmlndXJhY2lvbiB0byBhIGxpc3Qgb2YgY29kZXMgb2YgcHJvbW9jaW9uICovXHJcblx0dXBkYXRlQ29uZmlndXJhY2lvblBsaVByb21vY2lvbihjY29uQ29kaWdvOiBudW1iZXIsIGxpc3RhUHJvbUNvZGlnbzogQXJyYXk8bnVtYmVyPikge1xyXG5cdFx0bGV0IG9iamVjdCA9IHtcclxuXHRcdFx0Y2NvbkNvZGlnbzogY2NvbkNvZGlnbyxcclxuXHRcdFx0bGlzdGFQcm9tQ29kaWdvOiBsaXN0YVByb21Db2RpZ29cclxuXHRcdH07XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dChcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL3VwZGF0ZUNvbmZpZ3VyYXRpb25NYXNzaXZlJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgaGFzIGFuIG9ic2VydmFibGUgdG8gbm90aWZ5IGlmIHRoZSBsaXN0IHBwcCBpcyBnZW5lcmF0ZWQqL1xyXG5cdGdldExpc3RQcHAoKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5nZW5lcmF0ZSgpO1xyXG5cdFx0fSwgMzAwKTtcclxuXHRcdHJldHVybiB0aGlzLnN1YmplY3RMaXN0UHBwLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqIEl0IHJldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSBwbGlQcm9tb2Npb24gYnkgcGF0Q29kaWdvICovXHJcblx0Z2V0QXZhaWxhYmxlUHJvbW9jaW9uKHBhdENvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRpZiAoIXBhdENvZGlnbykge1xyXG5cdFx0XHRwYXRDb2RpZ28gPSAwO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLnBsaXMgKyAnY29uZmlnL3Byb21vY2lvbi9nZXRBdmFpbGFibGVCeVBhdENvZGlnbycsXHJcblx0XHRcdHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgncGF0Q29kaWdvJywgcGF0Q29kaWdvLnRvU3RyaW5nKCkpIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQvKiogSXQgcmV0dXJucyBhIGxpc3Qgb2YgcGxpUHJvbW9jaW9uICovXHJcblx0Z2V0QWxsKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArICdjb25maWcvcHJvbW9jaW9uL2dldEFsbCcpO1xyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgbGlzdCBvZiBwYXRyb2NpbmFkb3IgZGVwZW5kcyBvZiB0b2tlbiBpbmZvKi9cclxuXHRnZXRsUGF0cm9jaW5hZG9yQnlUb2tlbigpOiBQbGlQYXRyb2NpbmFkb3JbXSB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRpZiAodG9rZW5QcHAgJiYgdG9rZW5QcHAubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IHBwcCA9IEp3dFV0aWwucGFyc2VKd3QodG9rZW5QcHApO1xyXG5cdFx0XHRpZiAocHBwICYmIHBwcC5wcHApIHtcclxuXHRcdFx0XHRsZXQgbFBsaVBhdHJvY2luYWRvciA9IEFycmF5PFBsaVBhdHJvY2luYWRvcj4oKTtcclxuXHRcdFx0XHRmb3IgKGxldCBwYXQgb2YgcHBwLnBwcCkge1xyXG5cdFx0XHRcdFx0bGV0IHBsaVBhdCA9IG5ldyBQbGlQYXRyb2NpbmFkb3IoKTtcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXRDb2RpZ28gPSBwYXQucGF0Q29kaWdvO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdE5vbWJyZSA9IHBhdC5wYXROb21icmU7XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Tm9tYnJlQ29ydG8gPSBwYXQucGF0Tm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRpZiAocGF0Lmxpc3RhUGxpUHJvZ3JhbWEgJiYgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRwbGlQYXQubFBsaVByb2dyYW1hID0gQXJyYXk8UGxpUHJvZ3JhbWE+KCk7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IHByb2cgb2YgcGF0Lmxpc3RhUGxpUHJvZ3JhbWEpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvZyA9IG5ldyBQbGlQcm9ncmFtYSgpO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ0NvZGlnbyA9IHByb2cucHJvZ0NvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dOb21icmUgPSBwcm9nLnByb2dOb21icmU7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nTm9tYnJlQ29ydG8gPSBwcm9nLnByb2dOb21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRpZiAocHJvZy5saXN0YVBsaVByb21vY2lvbiAmJiBwcm9nLmxpc3RhUGxpUHJvbW9jaW9uLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBsaVByb2cubFBsaVByb21vY2lvbiA9IEFycmF5PFBsaVByb21vY2lvbj4oKTtcclxuXHRcdFx0XHRcdFx0XHRcdGZvciAobGV0IHByb20gb2YgcHJvZy5saXN0YVBsaVByb21vY2lvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgcGxpUHJvbSA9IG5ldyBQbGlQcm9tb2Npb24oKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tQ29kaWdvID0gcHJvbS5wcm9tQ29kaWdvO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Ob21icmUgPSBwcm9tLnByb21Ob21icmU7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbU5vbWJyZUNvcnRvID0gcHJvbS5wcm9tTm9tYnJlQ29ydG87XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbUZlY2hhQ3JlYWNpb24gPSBwcm9tLnByb21GZWNoYUNyZWFjaW9uO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9nLmxQbGlQcm9tb2Npb24ucHVzaChwbGlQcm9tKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0cGxpUGF0LmxQbGlQcm9ncmFtYS5wdXNoKHBsaVByb2cpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRsUGxpUGF0cm9jaW5hZG9yLnB1c2gocGxpUGF0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGxQbGlQYXRyb2NpbmFkb3I7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Z2V0QWxsUHJvbW9jaW9uZXMoKTogUGxpUHJvbW9jaW9uW10ge1xyXG5cdFx0bGV0IGxQcm9tb2Npb25lczogUGxpUHJvbW9jaW9uW10gPSBbXTtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcCkge1xyXG5cdFx0XHRcdGZvciAobGV0IHBhdCBvZiBwcHAucHBwKSB7XHJcblx0XHRcdFx0XHRsZXQgcGxpUGF0ID0gbmV3IFBsaVBhdHJvY2luYWRvcigpO1xyXG5cdFx0XHRcdFx0cGxpUGF0LnBhdENvZGlnbyA9IHBhdC5wYXRDb2RpZ287XHJcblx0XHRcdFx0XHRwbGlQYXQucGF0Tm9tYnJlID0gcGF0LnBhdE5vbWJyZTtcclxuXHRcdFx0XHRcdHBsaVBhdC5wYXROb21icmVDb3J0byA9IHBhdC5wYXROb21icmVDb3J0bztcclxuXHRcdFx0XHRcdGlmIChwYXQubGlzdGFQbGlQcm9ncmFtYSAmJiBwYXQubGlzdGFQbGlQcm9ncmFtYS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdHBsaVBhdC5sUGxpUHJvZ3JhbWEgPSBBcnJheTxQbGlQcm9ncmFtYT4oKTtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgcHJvZyBvZiBwYXQubGlzdGFQbGlQcm9ncmFtYSkge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBwbGlQcm9nID0gbmV3IFBsaVByb2dyYW1hKCk7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvZy5wcm9nQ29kaWdvID0gcHJvZy5wcm9nQ29kaWdvO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb2cucHJvZ05vbWJyZSA9IHByb2cucHJvZ05vbWJyZTtcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9nLnByb2dOb21icmVDb3J0byA9IHByb2cucHJvZ05vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChwcm9nLmxpc3RhUGxpUHJvbW9jaW9uICYmIHByb2cubGlzdGFQbGlQcm9tb2Npb24ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cGxpUHJvZy5sUGxpUHJvbW9jaW9uID0gQXJyYXk8UGxpUHJvbW9jaW9uPigpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgcHJvbSBvZiBwcm9nLmxpc3RhUGxpUHJvbW9jaW9uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBwbGlQcm9tID0gbmV3IFBsaVByb21vY2lvbigpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwbGlQcm9tLnByb21Db2RpZ28gPSBwcm9tLnByb21Db2RpZ287XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBsaVByb20ucHJvbU5vbWJyZSA9IHByb20ucHJvbU5vbWJyZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tTm9tYnJlQ29ydG8gPSBwcm9tLnByb21Ob21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGxpUHJvbS5wcm9tRmVjaGFDcmVhY2lvbiA9IHByb20ucHJvbUZlY2hhQ3JlYWNpb247XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxQcm9tb2Npb25lcy5wdXNoKHBsaVByb20pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gbFByb21vY2lvbmVzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8qKiBpdCByZXR1cm5zIHRoZSBwYXRjb2RpZ28gYnkgcHJvbUNvZGlnbyAqL1xyXG5cdGdldFBhdENvZGlnb0J5UHJvbUNvZGlnbyhwcm9tQ29kaWdvKTogbnVtYmVyIHtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcClcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhdHJvY2luYWRvciBvZiBwcHAucHBwKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSlcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHByb21vY2lvbi5wcm9tQ29kaWdvID09IHByb21Db2RpZ28pIHJldHVybiBwYXRyb2NpbmFkb3IucGF0Q29kaWdvO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqIGl0IHJldHVybnMgdGhlIHBhdGNvZGlnbyBieSBwcm9tQ29kaWdvICovXHJcblx0Z2V0UHJvZ0NvZGlnb0J5UHJvbUNvZGlnbyhwcm9tQ29kaWdvKTogbnVtYmVyIHtcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcClcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhdHJvY2luYWRvciBvZiBwcHAucHBwKVxyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSlcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHByb21vY2lvbi5wcm9tQ29kaWdvID09IHByb21Db2RpZ28pIHJldHVybiBwcm9ncmFtYS5wcm9nQ29kaWdvO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiogSXQgZ2VuZXJhdGVkIGEgbGlnaHQgbGlzdCBvZiBwcHAgKi9cclxuXHRwcml2YXRlIGdlbmVyYXRlKCkge1xyXG5cdFx0Ly8gMS4gaXQgdmVyaWZpZXMgdG9rZW5QcHBcclxuXHRcdGxldCB0b2tlblBwcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQKTtcclxuXHRcdGlmICh0b2tlblBwcCAmJiB0b2tlblBwcC5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgcHBwID0gSnd0VXRpbC5wYXJzZUp3dCh0b2tlblBwcCk7XHJcblx0XHRcdGlmIChwcHAgJiYgcHBwLnBwcCkgdGhpcy5zdWJqZWN0TGlzdFBwcC5uZXh0KHBwcC5wcHApO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gMi4gaXQgcmV0cmlldmVzIHRoZSBsaXN0IHBwcFxyXG5cdFx0XHRsZXQgYXV0aG9yaXRpZXMgPSBBdXRoZW50aWNhdGlvblV0aWwuZ2V0QXV0aG9yaXRpZXMoKTtcclxuXHRcdFx0aWYgKGF1dGhvcml0aWVzICYmIGF1dGhvcml0aWVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRsZXQgbGlzdFBhdENvZGlnbyA9IFtdO1xyXG5cdFx0XHRcdGZvciAoY29uc3QgYXV0aG9yaXR5IG9mIGF1dGhvcml0aWVzKSBsaXN0UGF0Q29kaWdvLnB1c2goYXV0aG9yaXR5LnBhdENvZGlnbyk7XHJcblxyXG5cdFx0XHRcdGlmIChsaXN0UGF0Q29kaWdvKVxyXG5cdFx0XHRcdFx0dGhpcy5odHRwQ2xpZW50XHJcblx0XHRcdFx0XHRcdC5nZXQoXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQucGxpcyArXHJcblx0XHRcdFx0XHRcdFx0XHQnY29uZmlnL3BhdHJvY2luYWRvci9nZXRMaWdodEJ5TGlzdFBhdHJvY2luYWRvcicsXHJcblx0XHRcdFx0XHRcdFx0eyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYXRDb2RpZ29zJywgbGlzdFBhdENvZGlnby50b1N0cmluZygpKSB9XHJcblx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0LnN1YnNjcmliZShcclxuXHRcdFx0XHRcdFx0XHQocmVzdWx0OiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LnRva2VuUHBwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKFBwcFNlcnZpY2UuVE9LRU5fUFBQLCByZXN1bHQudG9rZW5QcHApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmdlbmVyYXRlKCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnN1YmplY3RMaXN0UHBwLm5leHQoW10pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0KGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdFUlJPUiBjb25zdWx0aW5nIHBwcCcsIGVycm9yKTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3ViamVjdExpc3RQcHAubmV4dChbXSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogaXQgcmV0dXJucyB0aGUgUFBQIGZyb20gdGhlIHRva2VuICovXHJcblx0Z2V0UFBQSW5mb0Zyb21Ub2tlbigpOiBQbGlQYXRyb2NpbmFkb3JbXSB7XHJcblx0XHRsZXQgdG9rZW5QcHAgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQcHBTZXJ2aWNlLlRPS0VOX1BQUCk7XHJcblx0XHRjb25zdCBsUGxpUGF0cm9jaW5hZG9yOiBQbGlQYXRyb2NpbmFkb3JbXSA9IFtdO1xyXG5cdFx0aWYgKHRva2VuUHBwICYmIHRva2VuUHBwLmxlbmd0aCkge1xyXG5cdFx0XHRjb25zdCBwcHAgPSBKd3RVdGlsLnBhcnNlSnd0KHRva2VuUHBwKTtcclxuXHRcdFx0aWYgKHBwcCAmJiBwcHAucHBwKVxyXG5cdFx0XHRcdGZvciAoY29uc3QgcGF0cm9jaW5hZG9yIG9mIHBwcC5wcHApIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBsaVBhdHJvY2luYWRvciA9IG5ldyBQbGlQYXRyb2NpbmFkb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGxQbGlQcm9ncmFtYTogUGxpUHJvZ3JhbWFbXSA9IFtdO1xyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9ncmFtYSBvZiBwYXRyb2NpbmFkb3IubGlzdGFQbGlQcm9ncmFtYSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwbGlQcm9ncmFtYSA9IG5ldyBQbGlQcm9ncmFtYSgpO1xyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5wcm9nQ29kaWdvID0gcHJvZ3JhbWEucHJvZ0NvZGlnbztcclxuXHRcdFx0XHRcdFx0cGxpUHJvZ3JhbWEucHJvZ05vbWJyZUNvcnRvID0gcHJvZ3JhbWEucHJvZ05vbWJyZUNvcnRvO1xyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5wcm9nTm9tYnJlID0gcHJvZ3JhbWEucHJvZ05vbWJyZTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbFBsaVByb21vY2lvbjogUGxpUHJvbW9jaW9uW10gPSBbXTtcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBwcm9tb2Npb24gb2YgcHJvZ3JhbWEubGlzdGFQbGlQcm9tb2Npb24pIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBwbGlQcm9tb2Npb24gPSBuZXcgUGxpUHJvbW9jaW9uKCk7XHJcblx0XHRcdFx0XHRcdFx0cGxpUHJvbW9jaW9uLnByb21Db2RpZ28gPSBwcm9tb2Npb24ucHJvbUNvZGlnbztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9tb2Npb24ucHJvbU5vbWJyZUNvcnRvID0gcHJvbW9jaW9uLnByb21Ob21icmVDb3J0bztcclxuXHRcdFx0XHRcdFx0XHRwbGlQcm9tb2Npb24ucHJvbU5vbWJyZSA9IHByb21vY2lvbi5wcm9tTm9tYnJlO1xyXG5cdFx0XHRcdFx0XHRcdHBsaVByb21vY2lvbi5wcm9tQW5pbyA9IHByb21vY2lvbi5wcm9tQW5pbztcclxuXHRcdFx0XHRcdFx0XHRsUGxpUHJvbW9jaW9uLnB1c2gocGxpUHJvbW9jaW9uKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRwbGlQcm9ncmFtYS5sUGxpUHJvbW9jaW9uID0gbFBsaVByb21vY2lvbjtcclxuXHRcdFx0XHRcdFx0bFBsaVByb2dyYW1hLnB1c2gocGxpUHJvZ3JhbWEpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cGxpUGF0cm9jaW5hZG9yLmxQbGlQcm9ncmFtYSA9IGxQbGlQcm9ncmFtYTtcclxuXHRcdFx0XHRcdGxQbGlQYXRyb2NpbmFkb3IucHVzaChwbGlQYXRyb2NpbmFkb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBsUGxpUGF0cm9jaW5hZG9yO1xyXG5cdH1cclxuXHJcblx0cHBwUm9sbGJhY2socHBwUmVxdWVzdDogUHBwUmVxdWVzdCkge1xyXG5cdFx0XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXHJcblx0XHRcdHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmNvbmZpZ3VyYXRpb24gKyAncHBwUm9sbGJhY2snLFxyXG5cdFx0XHRwcHBSZXF1ZXN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRkZWxldGVCdWRnZXRCeVByb20ocHJvbUNvZGlnbzogbnVtYmVyKSB7XHJcblx0XHRsZXQgb2JqZWN0ID0ge1xyXG5cdFx0XHRwcm9tQ29kaWdvOiBwcm9tQ29kaWdvXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5wbGlzICsgJ2NvbmZpZy9wcm9tb2Npb24vZGVsZXRlQnVkZ2V0QnlQcm9tJyxcclxuXHRcdFx0b2JqZWN0LFxyXG5cdFx0XHR0aGlzLmhlYWRlckpzb25cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { HttpParams } from '@angular/common/http';
2
- import { Injectable, Inject } from '@angular/core';
3
- import { HEADER_JSON, EProjectFrom } from 'ng-pli-util';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- export class ProgressBarService {
7
- constructor(environment, httpClient) {
8
- this.environment = environment;
9
- this.httpClient = httpClient;
10
- this.urlBase = this.environment.host.backend.configuration;
11
- }
12
- saveProgress(data, projectFrom = EProjectFrom.PLI) {
13
- if (projectFrom == EProjectFrom.GIC) {
14
- this.urlBase = this.environment.host.backend.gicConfiguration;
15
- }
16
- return this.httpClient.post(this.urlBase + 'progressBar/saveProgress', data, HEADER_JSON);
17
- }
18
- getProgress(processId, processType, projectFrom = EProjectFrom.PLI) {
19
- if (projectFrom == EProjectFrom.GIC) {
20
- this.urlBase = this.environment.host.backend.gicConfiguration;
21
- }
22
- return this.httpClient.get(this.urlBase + 'progressBar/getProgressByProcessIdAndProcessType', {
23
- params: new HttpParams()
24
- .set('processId', processId.toString())
25
- .set('processType', processType.toString())
26
- });
27
- }
28
- }
29
- ProgressBarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ProgressBarService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
30
- ProgressBarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ProgressBarService, providedIn: 'root' });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ProgressBarService, decorators: [{
32
- type: Injectable,
33
- args: [{
34
- providedIn: 'root'
35
- }]
36
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
37
- type: Inject,
38
- args: ['environment']
39
- }] }, { type: i1.HttpClient }]; } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wbGktY29tbW9ucy9zcmMvbGliL3NlcnZpY2VzL3Byb2dyZXNzLWJhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBSXJFLE1BQU0sT0FBTyxrQkFBa0I7SUFFOUIsWUFBMkMsV0FBZ0IsRUFBVSxVQUFzQjtRQUFoRCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFEM0YsWUFBTyxHQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDZ0MsQ0FBQztJQUUvRixZQUFZLENBQUMsSUFBaUIsRUFBRSxjQUFzQixZQUFZLENBQUMsR0FBRztRQUNyRSxJQUFJLFdBQVcsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQzlEO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLDBCQUEwQixFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsV0FBVyxDQUNWLFNBQWlCLEVBQ2pCLFdBQW1CLEVBQ25CLGNBQXNCLFlBQVksQ0FBQyxHQUFHO1FBRXRDLElBQUksV0FBVyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDOUQ7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLGtEQUFrRCxFQUNqRTtZQUNDLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRTtpQkFDdEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3RDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzVDLENBQ0QsQ0FBQztJQUNILENBQUM7OytHQTNCVyxrQkFBa0Isa0JBRVYsYUFBYTttSEFGckIsa0JBQWtCLGNBRmxCLE1BQU07MkZBRU4sa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQjs7MEJBR2EsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXIsIEhFQURFUl9KU09OLCBFUHJvamVjdEZyb20gfSBmcm9tICduZy1wbGktdXRpbCc7XHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyU2VydmljZSB7XHJcblx0dXJsQmFzZTogc3RyaW5nID0gdGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuY29uZmlndXJhdGlvbjtcclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSwgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuXHRzYXZlUHJvZ3Jlc3MoZGF0YTogUHJvZ3Jlc3NCYXIsIHByb2plY3RGcm9tOiBudW1iZXIgPSBFUHJvamVjdEZyb20uUExJKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGlmIChwcm9qZWN0RnJvbSA9PSBFUHJvamVjdEZyb20uR0lDKSB7XHJcblx0XHRcdHRoaXMudXJsQmFzZSA9IHRoaXMuZW52aXJvbm1lbnQuaG9zdC5iYWNrZW5kLmdpY0NvbmZpZ3VyYXRpb247XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy51cmxCYXNlICsgJ3Byb2dyZXNzQmFyL3NhdmVQcm9ncmVzcycsIGRhdGEsIEhFQURFUl9KU09OKTtcclxuXHR9XHJcblxyXG5cdGdldFByb2dyZXNzKFxyXG5cdFx0cHJvY2Vzc0lkOiBudW1iZXIsXHJcblx0XHRwcm9jZXNzVHlwZTogbnVtYmVyLFxyXG5cdFx0cHJvamVjdEZyb206IG51bWJlciA9IEVQcm9qZWN0RnJvbS5QTElcclxuXHQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0aWYgKHByb2plY3RGcm9tID09IEVQcm9qZWN0RnJvbS5HSUMpIHtcclxuXHRcdFx0dGhpcy51cmxCYXNlID0gdGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuZ2ljQ29uZmlndXJhdGlvbjtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxyXG5cdFx0XHR0aGlzLnVybEJhc2UgKyAncHJvZ3Jlc3NCYXIvZ2V0UHJvZ3Jlc3NCeVByb2Nlc3NJZEFuZFByb2Nlc3NUeXBlJyxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKVxyXG5cdFx0XHRcdFx0LnNldCgncHJvY2Vzc0lkJywgcHJvY2Vzc0lkLnRvU3RyaW5nKCkpXHJcblx0XHRcdFx0XHQuc2V0KCdwcm9jZXNzVHlwZScsIHByb2Nlc3NUeXBlLnRvU3RyaW5nKCkpXHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -1,43 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common/http";
4
- export class SegmentationTokensService {
5
- constructor(environment, httpClient) {
6
- this.environment = environment;
7
- this.httpClient = httpClient;
8
- this.controllerName = 'segmentation-token';
9
- }
10
- getTokenSintax(key) {
11
- return '${' + key + '}';
12
- }
13
- getLogicalTokenSintax(key) {
14
- return '$[[' + key + ']]';
15
- }
16
- getHierarchicalTokenSintax(key) {
17
- return '$((' + key + '))';
18
- }
19
- getSurveyStaticTokens() {
20
- return this.httpClient.get(this.environment.host.backend.configuration +
21
- `${this.controllerName}/getSurveyStaticTokens`);
22
- }
23
- transform(sTokenTO) {
24
- return this.httpClient.post(this.environment.host.backend.configuration + `${this.controllerName}/transform`, sTokenTO);
25
- }
26
- }
27
- SegmentationTokensService.SURVEY_TOKENS_CATEGORY = 'Encuesta estáticos';
28
- SegmentationTokensService.FORM_TOKENS_CATEGORY = 'Encuesta formulario - ';
29
- SegmentationTokensService.SEGMENTATION_TOKENS_PREFIX = 'seg_';
30
- SegmentationTokensService.STATIC_TOKENS_PREFIX = 'estatico_';
31
- SegmentationTokensService.FORM_TOKENS_PREFIX = 'frm_';
32
- SegmentationTokensService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SegmentationTokensService, deps: [{ token: 'environment' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
33
- SegmentationTokensService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SegmentationTokensService, providedIn: 'root' });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SegmentationTokensService, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root'
38
- }]
39
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
40
- type: Inject,
41
- args: ['environment']
42
- }] }, { type: i1.HttpClient }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGF0aW9uLXRva2Vucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9zZXJ2aWNlcy9zZWdtZW50YXRpb24tdG9rZW5zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9uRCxNQUFNLE9BQU8seUJBQXlCO0lBUXJDLFlBQTJDLFdBQVcsRUFBVSxVQUFzQjtRQUEzQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFQdEYsbUJBQWMsR0FBRyxvQkFBb0IsQ0FBQztJQU9tRCxDQUFDO0lBRTFGLGNBQWMsQ0FBQyxHQUFHO1FBQ2pCLE9BQU8sSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQUc7UUFDeEIsT0FBTyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsMEJBQTBCLENBQUMsR0FBRztRQUM3QixPQUFPLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxxQkFBcUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFDMUMsR0FBRyxJQUFJLENBQUMsY0FBYyx3QkFBd0IsQ0FDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsUUFBNkI7UUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLFlBQVksRUFDaEYsUUFBUSxDQUNSLENBQUM7SUFDSCxDQUFDOztBQWhDTSxnREFBc0IsR0FBRyxvQkFBb0IsQ0FBQztBQUM5Qyw4Q0FBb0IsR0FBRyx3QkFBd0IsQ0FBQztBQUNoRCxvREFBMEIsR0FBRyxNQUFNLENBQUM7QUFDcEMsOENBQW9CLEdBQUcsV0FBVyxDQUFDO0FBQ25DLDRDQUFrQixHQUFHLE1BQU0sQ0FBQztzSEFOdkIseUJBQXlCLGtCQVFqQixhQUFhOzBIQVJyQix5QkFBeUIsY0FGekIsTUFBTTsyRkFFTix5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFTYSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU2VnbWVudGF0aW9uVG9rZW5UTyB9IGZyb20gJ25nLXBsaS11dGlsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWdtZW50YXRpb25Ub2tlbnNTZXJ2aWNlIHtcclxuXHRjb250cm9sbGVyTmFtZSA9ICdzZWdtZW50YXRpb24tdG9rZW4nO1xyXG5cdHN0YXRpYyBTVVJWRVlfVE9LRU5TX0NBVEVHT1JZID0gJ0VuY3Vlc3RhIGVzdMOhdGljb3MnO1xyXG5cdHN0YXRpYyBGT1JNX1RPS0VOU19DQVRFR09SWSA9ICdFbmN1ZXN0YSBmb3JtdWxhcmlvIC0gJztcclxuXHRzdGF0aWMgU0VHTUVOVEFUSU9OX1RPS0VOU19QUkVGSVggPSAnc2VnXyc7XHJcblx0c3RhdGljIFNUQVRJQ19UT0tFTlNfUFJFRklYID0gJ2VzdGF0aWNvXyc7XHJcblx0c3RhdGljIEZPUk1fVE9LRU5TX1BSRUZJWCA9ICdmcm1fJztcclxuXHJcblx0Y29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50LCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XHJcblxyXG5cdGdldFRva2VuU2ludGF4KGtleSkge1xyXG5cdFx0cmV0dXJuICckeycgKyBrZXkgKyAnfSc7XHJcblx0fVxyXG5cclxuXHRnZXRMb2dpY2FsVG9rZW5TaW50YXgoa2V5KSB7XHJcblx0XHRyZXR1cm4gJyRbWycgKyBrZXkgKyAnXV0nO1xyXG5cdH1cclxuXHJcblx0Z2V0SGllcmFyY2hpY2FsVG9rZW5TaW50YXgoa2V5KSB7XHJcblx0XHRyZXR1cm4gJyQoKCcgKyBrZXkgKyAnKSknO1xyXG5cdH1cclxuXHJcblx0Z2V0U3VydmV5U3RhdGljVG9rZW5zKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PGFueVtdPihcclxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudC5ob3N0LmJhY2tlbmQuY29uZmlndXJhdGlvbiArXHJcblx0XHRcdFx0YCR7dGhpcy5jb250cm9sbGVyTmFtZX0vZ2V0U3VydmV5U3RhdGljVG9rZW5zYFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHRyYW5zZm9ybShzVG9rZW5UTzogU2VnbWVudGF0aW9uVG9rZW5UTyk6IE9ic2VydmFibGU8U2VnbWVudGF0aW9uVG9rZW5UTz4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFNlZ21lbnRhdGlvblRva2VuVE8+KFxyXG5cdFx0XHR0aGlzLmVudmlyb25tZW50Lmhvc3QuYmFja2VuZC5jb25maWd1cmF0aW9uICsgYCR7dGhpcy5jb250cm9sbGVyTmFtZX0vdHJhbnNmb3JtYCxcclxuXHRcdFx0c1Rva2VuVE9cclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==