monkey-front-core 0.0.95 → 0.0.99

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 (208) hide show
  1. package/README.md +24 -24
  2. package/bundles/monkey-front-core.umd.js +4900 -0
  3. package/bundles/monkey-front-core.umd.js.map +1 -0
  4. package/esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.component.js +35 -0
  5. package/{esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs → esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.module.js} +5 -5
  6. package/{esm2020/lib/components/closed-to-maintenance/index.mjs → esm2015/lib/components/closed-to-maintenance/index.js} +1 -1
  7. package/{esm2020/lib/components/index.mjs → esm2015/lib/components/index.js} +0 -0
  8. package/{esm2020/lib/components/progress-bar/index.mjs → esm2015/lib/components/progress-bar/index.js} +1 -1
  9. package/esm2015/lib/components/progress-bar/progress-bar.component.js +29 -0
  10. package/{esm2020/lib/components/progress-bar/progress-bar.module.mjs → esm2015/lib/components/progress-bar/progress-bar.module.js} +5 -5
  11. package/esm2015/lib/components/progress-bar/progress-bar.service.js +53 -0
  12. package/{esm2020/lib/components/version-changed/index.mjs → esm2015/lib/components/version-changed/index.js} +1 -1
  13. package/esm2015/lib/components/version-changed/version-changed.component.js +29 -0
  14. package/{esm2020/lib/components/version-changed/version-changed.module.mjs → esm2015/lib/components/version-changed/version-changed.module.js} +5 -5
  15. package/{esm2020/lib/core/decorators/index.mjs → esm2015/lib/core/decorators/index.js} +1 -1
  16. package/{esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs → esm2015/lib/core/decorators/monkeyecx-charts-decorators.js} +1 -1
  17. package/esm2015/lib/core/decorators/monkeyecx-decorators.js +112 -0
  18. package/esm2015/lib/core/decorators/monkeyecx-download-decorators.js +25 -0
  19. package/esm2015/lib/core/decorators/monkeyecx-upload-decorators.js +25 -0
  20. package/{esm2020/lib/core/directives/index.mjs → esm2015/lib/core/directives/index.js} +1 -1
  21. package/{esm2020/lib/core/directives/monkeyecx-directives-module.mjs → esm2015/lib/core/directives/monkeyecx-directives-module.js} +5 -5
  22. package/esm2015/lib/core/directives/monkeyecx-drag-drop.js +57 -0
  23. package/esm2015/lib/core/directives/monkeyecx-feature-directive.js +68 -0
  24. package/{esm2020/lib/core/directives/monkeyecx-format-currency.mjs → esm2015/lib/core/directives/monkeyecx-format-currency.js} +4 -4
  25. package/esm2015/lib/core/directives/monkeyecx-format-upper.js +69 -0
  26. package/{esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-alpha-numeric-directive.js} +4 -4
  27. package/{esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-number-directive.js} +4 -4
  28. package/esm2015/lib/core/directives/monkeyecx-security-directive.js +69 -0
  29. package/esm2015/lib/core/directives/monkeyecx-tooltip-directive.js +124 -0
  30. package/{esm2020/lib/core/index.mjs → esm2015/lib/core/index.js} +1 -1
  31. package/{esm2020/lib/core/interceptors/index.mjs → esm2015/lib/core/interceptors/index.js} +1 -1
  32. package/esm2015/lib/core/interceptors/monkeyecx-http-config-error.interceptor.js +40 -0
  33. package/esm2015/lib/core/interceptors/monkeyecx-http-config-header.interceptor.js +33 -0
  34. package/{esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs → esm2015/lib/core/interceptors/monkeyecx-http-config-interceptor.module.js} +5 -5
  35. package/esm2015/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.js +44 -0
  36. package/esm2015/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.js +38 -0
  37. package/esm2015/lib/core/interfaces/index.js +27 -0
  38. package/esm2015/lib/core/interfaces/monkeyecx-auth-credentials.js +2 -0
  39. package/{esm2020/lib/core/interfaces/monkeyecx-company.mjs → esm2015/lib/core/interfaces/monkeyecx-company.js} +1 -1
  40. package/esm2015/lib/core/interfaces/monkeyecx-config-boostrap.js +2 -0
  41. package/esm2015/lib/core/interfaces/monkeyecx-config.js +2 -0
  42. package/{esm2020/lib/core/interfaces/monkeyecx-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-error-response.js} +1 -1
  43. package/{esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-handled-error-response.js} +1 -1
  44. package/{esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs → esm2015/lib/core/interfaces/monkeyecx-header-credentials.js} +1 -1
  45. package/{esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs → esm2015/lib/core/interfaces/monkeyecx-intercom-options.js} +1 -1
  46. package/esm2015/lib/core/interfaces/monkeyecx-me-credentials.js +2 -0
  47. package/esm2015/lib/core/interfaces/monkeyecx-navigation.js +2 -0
  48. package/{esm2020/lib/core/interfaces/monkeyecx-program.mjs → esm2015/lib/core/interfaces/monkeyecx-program.js} +1 -1
  49. package/{esm2020/lib/core/interfaces/monkeyecx-releases.mjs → esm2015/lib/core/interfaces/monkeyecx-releases.js} +1 -1
  50. package/{esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs → esm2015/lib/core/interfaces/monkeyecx-request-in-progress.js} +1 -1
  51. package/esm2015/lib/core/interfaces/monkeyecx-request-paged.js +2 -0
  52. package/{esm2020/lib/core/interfaces/monkeyecx-response-links.mjs → esm2015/lib/core/interfaces/monkeyecx-response-links.js} +1 -1
  53. package/{esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs → esm2015/lib/core/interfaces/monkeyecx-response-paged.js} +1 -1
  54. package/esm2015/lib/core/interfaces/monkeyecx-saved-state.js +2 -0
  55. package/esm2015/lib/core/interfaces/monkeyecx-scroll-options.js +2 -0
  56. package/esm2015/lib/core/interfaces/monkeyecx-service-credentials.js +2 -0
  57. package/{esm2020/lib/core/interfaces/monkeyecx-support-options.mjs → esm2015/lib/core/interfaces/monkeyecx-support-options.js} +1 -1
  58. package/esm2015/lib/core/interfaces/monkeyecx-token-credentials.js +2 -0
  59. package/{esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs → esm2015/lib/core/interfaces/monkeyecx-translate-options.js} +1 -1
  60. package/{esm2020/lib/core/interfaces/request-download/index.mjs → esm2015/lib/core/interfaces/request-download/index.js} +1 -1
  61. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-download.js} +1 -1
  62. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-downloaded.js} +1 -1
  63. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-item-download.js} +1 -1
  64. package/{esm2020/lib/core/interfaces/request-queue/index.mjs → esm2015/lib/core/interfaces/request-queue/index.js} +1 -1
  65. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.js} +1 -1
  66. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.js} +1 -1
  67. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-queue.js} +1 -1
  68. package/{esm2020/lib/core/interfaces/request-upload/index.mjs → esm2015/lib/core/interfaces/request-upload/index.js} +1 -1
  69. package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.js} +1 -1
  70. package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-upload.js} +1 -1
  71. package/{esm2020/lib/core/interfaces/schedules/index.mjs → esm2015/lib/core/interfaces/schedules/index.js} +1 -1
  72. package/esm2015/lib/core/interfaces/schedules/monkeyecx-request-schedule.js +2 -0
  73. package/{esm2020/lib/core/model/index.mjs → esm2015/lib/core/model/index.js} +1 -1
  74. package/{esm2020/lib/core/model/monkeyecx-model.mjs → esm2015/lib/core/model/monkeyecx-model.js} +1 -1
  75. package/{esm2020/lib/core/pipes/index.mjs → esm2015/lib/core/pipes/index.js} +0 -0
  76. package/{esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs → esm2015/lib/core/pipes/monkeyecx-display-first-name.js} +4 -4
  77. package/{esm2020/lib/core/pipes/monkeyecx-format-address.mjs → esm2015/lib/core/pipes/monkeyecx-format-address.js} +4 -4
  78. package/{esm2020/lib/core/pipes/monkeyecx-format-currency.mjs → esm2015/lib/core/pipes/monkeyecx-format-currency.js} +4 -4
  79. package/esm2015/lib/core/pipes/monkeyecx-format-date-group.js +46 -0
  80. package/{esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs → esm2015/lib/core/pipes/monkeyecx-format-date-timelapse.js} +4 -4
  81. package/{esm2020/lib/core/pipes/monkeyecx-format-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-document.js} +4 -4
  82. package/{esm2020/lib/core/pipes/monkeyecx-format-number.mjs → esm2015/lib/core/pipes/monkeyecx-format-number.js} +4 -4
  83. package/{esm2020/lib/core/pipes/monkeyecx-format-phone.mjs → esm2015/lib/core/pipes/monkeyecx-format-phone.js} +4 -4
  84. package/{esm2020/lib/core/pipes/monkeyecx-format-size.mjs → esm2015/lib/core/pipes/monkeyecx-format-size.js} +4 -4
  85. package/{esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-type-document.js} +4 -4
  86. package/{esm2020/lib/core/pipes/monkeyecx-format-value.mjs → esm2015/lib/core/pipes/monkeyecx-format-value.js} +4 -4
  87. package/{esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs → esm2015/lib/core/pipes/monkeyecx-format-zipcode.js} +4 -4
  88. package/{esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs → esm2015/lib/core/pipes/monkeyecx-pipes.module.js} +5 -5
  89. package/{esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs → esm2015/lib/core/pipes/monkeyecx-text-truncate.js} +4 -4
  90. package/{esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs → esm2015/lib/core/pipes/monkeyecx-truncate-qtd.js} +4 -4
  91. package/{esm2020/lib/core/services/auth/index.mjs → esm2015/lib/core/services/auth/index.js} +1 -1
  92. package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard-login.service.js} +4 -4
  93. package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard.service.js} +4 -4
  94. package/esm2015/lib/core/services/auth/monkeyecx-authentication.service.js +61 -0
  95. package/{esm2020/lib/core/services/commons/index.mjs → esm2015/lib/core/services/commons/index.js} +1 -1
  96. package/esm2015/lib/core/services/commons/monkeyecx-commons.service.js +265 -0
  97. package/{esm2020/lib/core/services/config/monkeyecx-config.module.mjs → esm2015/lib/core/services/config/monkeyecx-config.module.js} +5 -5
  98. package/{esm2020/lib/core/services/config/monkeyecx-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-config.service.js} +9 -11
  99. package/esm2015/lib/core/services/config/monkeyecx-error-config.service.js +85 -0
  100. package/esm2015/lib/core/services/config/monkeyecx-feature-toggle.service.js +70 -0
  101. package/esm2015/lib/core/services/config/monkeyecx-i18n-config.service.js +72 -0
  102. package/esm2015/lib/core/services/config/monkeyecx-logs-config.service.js +34 -0
  103. package/{esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-maintenance-config.service.js} +4 -4
  104. package/esm2015/lib/core/services/config/monkeyecx-security-console-config.service.js +42 -0
  105. package/esm2015/lib/core/services/config/monkeyecx-service-worker-config.service.js +54 -0
  106. package/{esm2020/lib/core/services/error/index.mjs → esm2015/lib/core/services/error/index.js} +1 -1
  107. package/{esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs → esm2015/lib/core/services/error/monkeyecx-error-handling.module.js} +5 -5
  108. package/esm2015/lib/core/services/error/monkeyecx-error-handling.service.js +41 -0
  109. package/esm2015/lib/core/services/error/monkeyecx-http-error-handling.service.js +132 -0
  110. package/{esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs → esm2015/lib/core/services/error/monkeyecx-others-errors-handling.service.js} +4 -4
  111. package/{esm2020/lib/core/services/index.mjs → esm2015/lib/core/services/index.js} +1 -1
  112. package/{esm2020/lib/core/services/logged/index.mjs → esm2015/lib/core/services/logged/index.js} +1 -1
  113. package/{esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs → esm2015/lib/core/services/logged/monkeyecx-logged-handling.service.js} +4 -4
  114. package/esm2015/lib/core/services/monkeyecx-handling.service.js +50 -0
  115. package/esm2015/lib/core/services/monkeyecx-service.service.js +102 -0
  116. package/{esm2020/lib/core/services/request-download/index.mjs → esm2015/lib/core/services/request-download/index.js} +1 -1
  117. package/esm2015/lib/core/services/request-download/monkeyecx-request-download-handling.service.js +81 -0
  118. package/esm2015/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.js +55 -0
  119. package/{esm2020/lib/core/services/request-paged/index.mjs → esm2015/lib/core/services/request-paged/index.js} +1 -1
  120. package/esm2015/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.js +37 -0
  121. package/{esm2020/lib/core/services/request-queue/index.mjs → esm2015/lib/core/services/request-queue/index.js} +1 -1
  122. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.js +101 -0
  123. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.js +106 -0
  124. package/{esm2020/lib/core/services/routes/index.mjs → esm2015/lib/core/services/routes/index.js} +1 -1
  125. package/esm2015/lib/core/services/routes/monkeyecx-dicovery-params.service.js +55 -0
  126. package/{esm2020/lib/core/services/schedules/index.mjs → esm2015/lib/core/services/schedules/index.js} +1 -1
  127. package/esm2015/lib/core/services/schedules/monkeyecx-request-schedule.service.js +99 -0
  128. package/{esm2020/lib/core/services/storage/index.mjs → esm2015/lib/core/services/storage/index.js} +1 -1
  129. package/{esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs → esm2015/lib/core/services/storage/monkeyecx-cookie-storage.service.js} +4 -4
  130. package/esm2015/lib/core/services/storage/monkeyecx-token-storage.service.js +123 -0
  131. package/{esm2020/lib/core/specification-search/index.mjs → esm2015/lib/core/specification-search/index.js} +1 -1
  132. package/{esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs → esm2015/lib/core/specification-search/monkeyecx-specification-search.js} +3 -2
  133. package/esm2015/lib/core/utils/decorators-utils.js +37 -0
  134. package/{esm2020/lib/core/utils/index.mjs → esm2015/lib/core/utils/index.js} +1 -1
  135. package/{esm2020/lib/core/utils/statics.mjs → esm2015/lib/core/utils/statics.js} +1 -1
  136. package/esm2015/lib/core/utils/utils.js +219 -0
  137. package/esm2015/lib/core/utils/validate-utils.js +210 -0
  138. package/esm2015/lib/core/utils/validators.js +211 -0
  139. package/{esm2020/lib/monkey-front-core.module.mjs → esm2015/lib/monkey-front-core.module.js} +5 -5
  140. package/{esm2020/monkey-front-core.mjs → esm2015/monkey-front-core.js} +0 -0
  141. package/{esm2020/public-api.mjs → esm2015/public-api.js} +1 -1
  142. package/fesm2015/{monkey-front-core.mjs → monkey-front-core.js} +233 -218
  143. package/fesm2015/monkey-front-core.js.map +1 -0
  144. package/lib/core/interfaces/index.d.ts +2 -0
  145. package/lib/core/interfaces/monkeyecx-saved-state.d.ts +5 -0
  146. package/lib/core/interfaces/monkeyecx-scroll-options.d.ts +5 -0
  147. package/lib/core/pipes/monkeyecx-format-currency.d.ts +1 -1
  148. package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +3 -3
  149. package/lib/core/services/commons/monkeyecx-commons.service.d.ts +18 -15
  150. package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +1 -1
  151. package/lib/core/utils/validate-utils.d.ts +13 -13
  152. package/monkey-front-core-0.0.99.tgz +0 -0
  153. package/package.json +7 -20
  154. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +0 -29
  155. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -23
  156. package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +0 -50
  157. package/esm2020/lib/components/version-changed/version-changed.component.mjs +0 -24
  158. package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +0 -111
  159. package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +0 -26
  160. package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +0 -26
  161. package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +0 -57
  162. package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +0 -68
  163. package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +0 -67
  164. package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +0 -69
  165. package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +0 -123
  166. package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +0 -39
  167. package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +0 -32
  168. package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +0 -43
  169. package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +0 -37
  170. package/esm2020/lib/core/interfaces/index.mjs +0 -25
  171. package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +0 -2
  172. package/esm2020/lib/core/interfaces/monkeyecx-config-boostrap.mjs +0 -2
  173. package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +0 -2
  174. package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +0 -2
  175. package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +0 -2
  176. package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +0 -2
  177. package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +0 -2
  178. package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +0 -2
  179. package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +0 -2
  180. package/esm2020/lib/core/pipes/monkeyecx-format-date-group.mjs +0 -45
  181. package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +0 -61
  182. package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +0 -273
  183. package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +0 -85
  184. package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +0 -67
  185. package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +0 -74
  186. package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +0 -34
  187. package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +0 -42
  188. package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +0 -53
  189. package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +0 -41
  190. package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +0 -127
  191. package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +0 -50
  192. package/esm2020/lib/core/services/monkeyecx-service.service.mjs +0 -104
  193. package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +0 -93
  194. package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +0 -61
  195. package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +0 -37
  196. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +0 -114
  197. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +0 -119
  198. package/esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs +0 -54
  199. package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +0 -113
  200. package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +0 -126
  201. package/esm2020/lib/core/utils/decorators-utils.mjs +0 -40
  202. package/esm2020/lib/core/utils/utils.mjs +0 -218
  203. package/esm2020/lib/core/utils/validate-utils.mjs +0 -206
  204. package/esm2020/lib/core/utils/validators.mjs +0 -208
  205. package/fesm2015/monkey-front-core.mjs.map +0 -1
  206. package/fesm2020/monkey-front-core.mjs +0 -4258
  207. package/fesm2020/monkey-front-core.mjs.map +0 -1
  208. package/monkey-front-core-0.0.95.tgz +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"monkey-front-core.mjs","sources":["../../../projects/monkey-front-core/src/lib/core/utils/utils.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-timelapse.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.html","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.module.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.html","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.module.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-charts-decorators.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/statics.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validators.ts","../../../projects/monkey-front-core/src/lib/core/utils/index.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-download-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-upload-decorators.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-drag-drop.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-upper.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-alpha-numeric-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-number-directive.ts","../../../projects/monkey-front-core/src/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-service.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-error-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-i18n-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-logs-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-service-worker-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-security-console-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-maintenance-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-tooltip-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-directives-module.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-authentication.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-http-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-others-errors-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.module.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-error.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-header.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-interceptor.module.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.module.ts","../../../projects/monkey-front-core/src/lib/core/services/logged/monkeyecx-logged-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-download-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/lib/core/services/schedules/monkeyecx-request-schedule.service.ts","../../../projects/monkey-front-core/src/lib/core/specification-search/monkeyecx-specification-search.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["/* eslint-disable comma-dangle */\n/* eslint-disable max-len */\n/* eslint-disable no-useless-escape */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-cond-assign */\n/* eslint-disable eqeqeq */\n/* eslint-disable no-redeclare */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable block-scoped-var */\nexport class MonkeyEcxUtils {\n static persistNullEmptyUndefined(tp: any): boolean {\n return tp !== null && tp !== undefined && tp !== '';\n }\n\n static getDocumentType(doc: string, country?: string) {\n if (!doc) return '';\n if (country === 'cl') return 'RUT';\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\n }\n\n static getDocumentMask(type: string) {\n if (type === 'CPF') return '000.000.000-00';\n return '00.000.000/0000-00';\n }\n\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\n if (!doc) return doc;\n let formated: string = '';\n if (country === 'cl') {\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\n return `${formated}`;\n }\n if (doc.length === 14) {\n formated = doc\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\n .replace(/(\\d{4})(\\d)/, '$1-$2');\n } else {\n formated = doc\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n }\n\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\n }\n\n static cutFirstLastName(value: string, tp: string = 'first') {\n const split = value?.trim()?.split(' ');\n\n if (tp === 'first') return split[0];\n return split?.splice(1, split.length)?.join(' ');\n }\n\n static isCPFCNPJValid(document: any): boolean {\n document = document.replace(/[^\\d]/g, '');\n if (document.length === 11) {\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]);\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]);\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\n return false;\n }\n return true;\n }\n if (document.length === 14 || /0{14}/.test(document)) {\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]);\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]);\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n }\n return false;\n }\n\n public static isValidRUT(document: string): boolean {\n if (!document || document.trim().length < 3) return false;\n const documentHandled = document.replace(/[^0-9kK]/g, '');\n\n if (documentHandled.length < 3) return false;\n\n const calcDv = (rut: string) => {\n const value: string = `${rut}`;\n let sum = 0;\n let mult = 2;\n\n for (let i = 1; i <= value.length; i++) {\n const index = mult * Number(value.charAt(value.length - i));\n\n sum += index;\n\n if (mult < 7) {\n mult += 1;\n } else {\n mult = 2;\n }\n }\n\n const dvEsperado = 11 - (sum % 11);\n if (dvEsperado === 10) return 'K';\n if (dvEsperado === 11) return '0';\n return `${dvEsperado}`;\n };\n\n const num = documentHandled.slice(0, -1);\n const dgv = documentHandled.slice(-1).toUpperCase();\n\n const dvCalc = calcDv(num);\n return dvCalc === dgv;\n }\n\n static isValidUrl(txt: string): boolean {\n const regex = new RegExp(\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)+[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,5})?(\\/.*)?$/gm\n );\n return regex.test(txt);\n }\n\n static isValidZipCode(zipCode: string): boolean {\n return `${this.handleOnlyNumbers(zipCode)}`.length === 8;\n }\n\n static getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const randomString: string = new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet?.length));\n })\n .join('');\n return randomString;\n }\n\n static handleOnlyNumbers(value: any) {\n if (!value) return null;\n return value.replace(new RegExp(/[^0-9]/g), '');\n }\n\n static handleOnlyAlphaNumeric(value: any) {\n if (!value) return '';\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\n }\n\n static capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n }\n\n static formatZipCode(zipCode: string): string {\n if (!zipCode) return zipCode;\n const formated: string = zipCode\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\n\n return `${formated}`;\n }\n\n static formatFileSize(size: number): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let l = 0;\n while (size >= 1024 && ++l) {\n size /= 1024;\n }\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\n }\n\n static sufflue(data: any[]): any[] {\n for (let i = data.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * i);\n const temp = data[i];\n data[i] = data[j];\n data[j] = temp;\n }\n return data;\n }\n\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\n function blobToFile(theBlob: any, fileName: string) {\n const b = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b;\n }\n\n let file: any;\n if (!(navigator as any).msSaveBlob) {\n file = new File([theBlob], fileName, {\n type: fileType,\n });\n } else {\n file = new Blob([theBlob], {\n type: fileType,\n });\n file = blobToFile(file, fileName);\n }\n return file;\n }\n\n static truncate(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n\n static isLocalhost() {\n const { href } = window?.location;\n if (!href) return false;\n return href?.search('localhost') >= 0;\n }\n\n static isSameOrigin(frontend: string): boolean {\n const initialPath: string = window.location.origin;\n return (initialPath || '') === frontend;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateTimelapse',\r\n})\r\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\r\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (!useUtc) stillUtc = moment.default(date).toDate();\r\n if (date.toString().indexOf(':') <= -1) {\r\n if (typeof date === 'string') {\r\n stillUtc = date;\r\n showTime = false;\r\n }\r\n }\r\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\r\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\r\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\nimport { MonkeyEcxConfigBoostrap } from '../../core/interfaces';\n\n@Component({\n selector: 'monkeyecx-closed-to-maintenance',\n templateUrl: './closed-to-maintenance.component.html',\n styleUrls: ['./closed-to-maintenance.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ClosedToMaintenanceComponent implements OnInit {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n _configBoostrap: MonkeyEcxConfigBoostrap | null = null;\n\n ngOnInit() {\n this._configBoostrap = this.config?.data;\n }\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\n {{ _configBoostrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxDisplayFirstName'\r\n})\r\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\r\n transform(name: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\r\n return MonkeyEcxUtils.cutFirstLastName(name);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatAddress',\r\n})\r\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\r\n transform({\r\n zipCode,\r\n address,\r\n neighborhood,\r\n city,\r\n state,\r\n }: {\r\n zipCode: string;\r\n address: string;\r\n neighborhood: string;\r\n city: string;\r\n state: string;\r\n country: string;\r\n }): string {\r\n return [address, neighborhood, zipCode, city, state]\r\n .filter((_: string) => {\r\n return _;\r\n })\r\n .join(', ');\r\n }\r\n}\r\n","/* eslint-disable object-curly-newline */\r\nimport { Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxCookieStorageService {\r\n constructor(private cookieService: CookieService) {\r\n // not to do\r\n }\r\n\r\n public setCookie(name: string, value: any) {\r\n this.removeCookie(name);\r\n this.cookieService.set(name, value, undefined, '/', '', true, 'None');\r\n }\r\n\r\n public getCookie(name: string) {\r\n return this.cookieService.get(name);\r\n }\r\n\r\n public removeCookie(name: string) {\r\n this.cookieService.delete(name, '/');\r\n }\r\n}\r\n","import { Pipe, PipeTransform, Injector } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { MonkeyEcxCookieStorageService } from '../services/storage/monkeyecx-cookie-storage.service';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatCurrency'\r\n})\r\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\r\n constructor(private injector: Injector, private currencyPipe: CurrencyPipe) {\r\n // not to do\r\n }\r\n\r\n transform(value: any) {\r\n const cookieStorageService = this.injector.get(MonkeyEcxCookieStorageService);\r\n const cookie = cookieStorageService.getCookie('monkey-app-locale');\r\n const i18n = JSON.parse(atob(cookie));\r\n const { currency } = i18n;\r\n return this.currencyPipe.transform(value, currency, 'symbol');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDocument'\r\n})\r\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\r\n transform(document: string, withType?: false): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\r\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatNumber } from '@angular/common';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatNumber'\r\n})\r\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\r\n transform(number: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\r\n\r\n return formatNumber(Number(number), 'ptbr');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatPhone'\r\n})\r\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\r\n transform(phone: string): string {\r\n if (phone) {\r\n const value = `${phone || ''}`.replace(/\\D/g, '');\r\n\r\n let formated = '';\r\n\r\n if (value.length > 12) {\r\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\r\n } else if (value.length > 11) {\r\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\r\n } else if (value.length > 10) {\r\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\r\n } else if (value.length > 9) {\r\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\r\n } else if (value.length > 5) {\r\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\r\n } else if (value.length > 1) {\r\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\r\n } else if (phone !== '') {\r\n formated = value.replace(/^(\\d*)/, '($1');\r\n }\r\n return formated;\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatSize'\r\n})\r\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\r\n transform(size: string): string {\r\n if (!size) return '0 B';\r\n const sizeNum = Number(size);\r\n return MonkeyEcxUtils.formatFileSize(sizeNum);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDocumentType'\r\n})\r\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\r\n transform(document: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\r\n return MonkeyEcxUtils.getDocumentType(document);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatValue'\r\n})\r\nexport class MonkeyEcxFormatValue implements PipeTransform {\r\n transform(number: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\r\n return number;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatZipCode'\r\n})\r\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\r\n transform(zipCode: string): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\r\n return MonkeyEcxUtils.formatZipCode(zipCode);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxTextTruncate'\r\n})\r\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\r\n transform(text: string, maxLength: number = 25): string {\r\n const midChar = '...';\r\n if (!text) return midChar;\r\n if (text && text.length <= maxLength) return text;\r\n\r\n const left = Math.ceil(maxLength / 2);\r\n const right = text.length - left + 1;\r\n\r\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd'\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateGroup',\r\n})\r\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\r\n private lang = 'pt-BR';\r\n\r\n constructor(private injector: Injector) {\r\n const translateService = this.injector.get(TranslateService);\r\n this.lang = translateService.getDefaultLang();\r\n }\r\n\r\n private format(date: string | Date) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (date.toString()?.indexOf(':') <= -1) {\r\n stillUtc = date;\r\n }\r\n const formatFrom = 'YYYY/MM/DD';\r\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\r\n const dayFormated = fmt.format('DD/');\r\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\r\n const yearFormated = fmt.format('YYYY');\r\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\r\n }\r\n\r\n transform(obj: any): string {\r\n if (!obj || !obj?.start || !obj?.end) return '';\r\n const { start, end } = obj;\r\n const formatedStart = this.format(start);\r\n const formatedEnd = this.format(end);\r\n return `${formatedStart} - ${formatedEnd}`;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\r\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\r\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\r\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\r\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\r\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\r\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\r\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\r\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\r\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\r\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\r\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\r\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\r\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe,\r\n ],\r\n exports: [\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe,\r\n ],\r\n providers: [CurrencyPipe],\r\n})\r\nexport class MonkeyEcxPipesModule {}\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\n\n@NgModule({\n declarations: [ClosedToMaintenanceComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n MonkeyEcxPipesModule,\n TranslateModule.forChild()\n ],\n exports: [ClosedToMaintenanceComponent]\n})\nexport class ClosedToMaintenanceModule {}\n","import { Injectable } from '@angular/core';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router\n} from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxProgressBarService {\n private visible: BehaviorSubject<any> | null = null;\n\n constructor(private router: Router) {\n this.init();\n }\n\n private init() {\n this.visible = new BehaviorSubject(false);\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.show();\n });\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return (\n event instanceof NavigationEnd ||\n event instanceof NavigationError ||\n event instanceof NavigationCancel\n );\n })\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n show() {\n this.visible?.next(true);\n }\n\n hide() {\n this.visible?.next(false);\n }\n\n visibleConfig(): Observable<any> | null {\n return this.visible?.asObservable() || null;\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\n\n@Component({\n selector: 'monkeyecx-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MonkeyEcxProgressBarComponent implements OnInit {\n visible: boolean = false;\n\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\n //not to do\n }\n\n ngOnInit() {\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\n this.visible = visible;\n });\n }\n}\n","<ng-container *ngIf=\"visible\">\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [MonkeyEcxProgressBarComponent],\n imports: [CommonModule],\n exports: [MonkeyEcxProgressBarComponent]\n})\nexport class MonkeyEcxProgressBarModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfig } from 'monkey-style-guide';\n\n@Component({\n selector: 'monkeyecx-version-changed',\n templateUrl: './version-changed.component.html',\n styleUrls: ['./version-changed.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class VersionChangedComponent {\n @Input() config: MonkeyModalConfig | null = null;\n\n @Input() modalRef: any;\n\n onClose() {\n document.location.reload();\n }\n}\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\n <span class=\"h2\">\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\n </span>\n <span class=\"information-title mt-4\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\n </span>\n <span class=\"information mt-3\">\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\n </span>\n </div>\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\n </monkey-button>\n </div>\n</monkey-modal>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule\n} from 'monkey-style-guide';\nimport { VersionChangedComponent } from './version-changed.component';\n\n@NgModule({\n declarations: [VersionChangedComponent],\n imports: [\n CommonModule,\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyModalModule,\n TranslateModule.forChild()\n ],\n exports: [VersionChangedComponent]\n})\nexport class VersionChangedModule {}\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\nexport function MonkeyEcxCoreCharts(render = true) {\r\n return (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor => {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function(...args: any[]) {\r\n const context = this;\r\n if (render) {\r\n const scriptsLoaded = Array.from(document.scripts);\r\n scriptsLoaded.forEach((script: any) => {\r\n const { src } = script;\r\n if (src.search('www.gstatic.com/charts') > 0) {\r\n document.getElementsByTagName('head')[0].removeChild(script);\r\n }\r\n });\r\n\r\n const node = document.createElement('script');\r\n node.src = 'https://www.gstatic.com/charts/loader.js';\r\n node.type = 'text/javascript';\r\n node.async = true;\r\n node.id = 'monkeyecx-charts-settings';\r\n node.onload = () => {\r\n method.apply(context, args);\r\n };\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n } else {\r\n const scriptsLoaded = Array.from(document.scripts);\r\n scriptsLoaded.forEach((script: any) => {\r\n const { src } = script;\r\n if (src.search('www.gstatic.com/charts') > 0) {\r\n document.getElementsByTagName('head')[0].removeChild(script);\r\n }\r\n });\r\n\r\n method.apply(context, args);\r\n }\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable max-classes-per-file */\nimport * as moment_ from 'moment';\nimport { AbstractControl } from '@angular/forms';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nexport class DateValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true,\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true,\n };\n }\n }\n return null;\n }\n}\n\nexport class DocumentRutValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidRut: true,\n };\n }\n }\n return null;\n }\n}\n\nexport class ZipCodeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\n return {\n invalidZipCode: true,\n };\n }\n }\n return null;\n }\n}\n\nexport class ComboValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n return {\n invalidCombo: true,\n };\n }\n}\n\nexport class isTrueValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n return {\n invalidTrue: true,\n };\n }\n}\n\nexport class PasswordMatchValidation {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n return {\n passwordsNotMatching: true,\n };\n }\n}\n\nexport class UrlValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n invalidUrl: true,\n };\n }\n }\n return null;\n }\n}\n\nexport class CustomDatesStartValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateStart || !dateEnd) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true,\n };\n }\n return null;\n }\n}\n\nexport class CustomDatesEndValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateEnd < dateStart) {\n return {\n dateEndMustBeGreaterThanStart: true,\n };\n }\n return null;\n }\n}\n\nexport class UnlockRegisterBuyerValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYBUYER') {\n return {\n invalidUnlockRegister: true,\n };\n }\n\n return null;\n }\n}\n\nexport class UnlockRegisterSponsorValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) return null;\n\n if (control && control.value !== '#MONKEYSPONSOR') {\n return {\n invalidUnlockRegister: true,\n };\n }\n\n return null;\n }\n}\n\nexport class DateRangeValidator {\n static do(control: AbstractControl) {\n if (!control.parent || !control) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\n ) {\n return {\n invalidDateRange: true,\n };\n }\n\n return null;\n }\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-shadow */\nexport enum MonkeyEcxQueueEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxDownloadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\nexport enum MonkeyEcxUploadEvents {\n OnGoing,\n Finished,\n FinishedWithError\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsTokenNotMandatory {\n Assets = 'assets/',\n MonkeyEcx = '/monkeyecx',\n ViaCep = 'viacep.com.br/'\n}\n\n// TODO pegar do json de config\nexport enum ApiEndPointsHeaderNotMandatory {\n Assets = '/assets',\n PayablesUpload = 'payables-upload',\n PictureUser = '/user-pictures',\n Documents = 'documents/',\n BuyerTaxFile = '/buyer-tax-file',\n ViaCep = 'viacep.com.br/'\n}\n","import {\n MonkeyEcxRequestDownload,\n MonkeyEcxRequestItemQueue,\n MonkeyEcxRequestQueue,\n MonkeyEcxRequestUpload\n} from '../interfaces';\nimport * as Statics from './statics';\nimport { MonkeyEcxUtils } from './utils';\n\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\n const params: MonkeyEcxRequestQueue = {\n item: {\n ...queue,\n id: MonkeyEcxUtils.getRandomString(40)\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildDownloadPropertys(\n name: string,\n description?: string,\n size?: number\n): MonkeyEcxRequestDownload {\n const params: MonkeyEcxRequestDownload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n size,\n createdAt: new Date()\n },\n status: Statics.MonkeyEcxQueueEvents.OnGoing\n };\n\n return params;\n}\n\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\n const params: MonkeyEcxRequestUpload = {\n item: {\n name,\n description,\n id: `${MonkeyEcxUtils.getRandomString(40)}`\n },\n status: Statics.MonkeyEcxUploadEvents.OnGoing\n };\n\n return params;\n}\n\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport * as moment_ from 'moment';\nimport { MonkeyEcxUtils } from './utils';\n\nconst moment: any = moment_;\n\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\n\nfunction isEmptyInputValue(value: any): boolean {\n return value == null || value.length === 0;\n}\n\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n const test = EMAIL_REGEXP.test(control.value);\n if (test) return null;\n return {\n email: true,\n };\n}\n\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n const dates = control?.parent?.get('dates')?.value;\n if (\n dates &&\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\n ) {\n return {\n dateRange: true,\n };\n }\n\n return null;\n}\n\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\n return null;\n }\n\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\n return {\n invalidUnlockRegister: true,\n };\n }\n\n return null;\n}\n\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) {\n return null;\n }\n\n const { parent } = control;\n\n const valueStart = parent?.get('dateStart')?.value;\n const valueEnd = parent?.get('dateEnd')?.value;\n let dateStart: Date | null = null;\n let dateEnd: Date | null = null;\n if (valueStart) {\n dateStart = new Date(valueStart);\n }\n if (valueEnd) {\n dateEnd = new Date(valueEnd);\n }\n\n if (!dateEnd || !dateStart) return null;\n if (dateStart > dateEnd) {\n return {\n dateStartMustBeLessThanAnd: true,\n };\n }\n\n return null;\n}\n\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\n return {\n url: true,\n };\n }\n\n return null;\n}\n\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const { parent } = control;\n const password = parent?.get('password')?.value;\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\n if (!password || !passwordConfirm) return null;\n if (password === passwordConfirm) return null;\n\n return {\n passwordsNotMatching: true,\n };\n}\n\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== false) return null;\n\n return {\n invalidTrue: true,\n };\n}\n\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control) return null;\n if (control && control.value !== '0') return null;\n\n return {\n invalidCombo: true,\n };\n}\n\nexport function zipCodeValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (control && control.value) {\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\n return {\n invalidZipCode: true,\n };\n }\n }\n\n return null;\n}\n\nexport function documentValidator(\n control: AbstractControl,\n country: string\n): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n if (country === 'BR') {\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\n return {\n invalidCpfCnpj: true,\n };\n }\n } else if (country === 'CL') {\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\n return {\n invalidCpfCnpj: true,\n };\n }\n }\n\n return null;\n}\n\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n const dateFormat = 'MM-DD-YYYY';\n if (\n !moment\n .default(\n moment.default(control.value).format(dateFormat),\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\n true\n )\n .isValid()\n ) {\n return {\n invalidDate: true,\n };\n }\n return null;\n}\n\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\n\n if (control && `${control?.value}` === '0') {\n return {\n invalidValueGreaterThanZero: true,\n };\n }\n return null;\n}\n\nexport class Validators {\n static email(control: AbstractControl): ValidationErrors | null {\n return emailValidator(control);\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n return dateRangeValidator(control);\n }\n\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'sponsor');\n }\n\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\n return registerValidator(control, 'buyer');\n }\n\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\n return dateStartEndValidator(control);\n }\n\n static url(control: AbstractControl): ValidationErrors | null {\n return urlValidator(control);\n }\n\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\n return passwordConfirmValidator(control);\n }\n\n static true(control: AbstractControl): ValidationErrors | null {\n return trueValidator(control);\n }\n\n static combo(control: AbstractControl): ValidationErrors | null {\n return comboValidator(control);\n }\n\n static zipCode(control: AbstractControl): ValidationErrors | null {\n return zipCodeValidator(control);\n }\n\n static documentBR(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'BR');\n }\n\n static documentCL(control: AbstractControl): ValidationErrors | null {\n return documentValidator(control, 'CL');\n }\n\n static date(control: AbstractControl): ValidationErrors | null {\n return dateValidator(control);\n }\n\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\n return valueGreaterThanZero(control);\n }\n}\n","/* eslint-disable object-curly-newline */\nimport { MonkeyEcxUtils } from './utils';\nimport * as ValidateUtils from './validate-utils';\nimport * as DecoratorsUtils from './decorators-utils';\nimport * as Statics from './statics';\n\nexport { MonkeyEcxUtils, ValidateUtils, DecoratorsUtils, Statics };\nexport * from './validators';\n","/* eslint-disable no-console */\n/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\nexport function MonkeyEcxCoreServiceConstructor() {\n return (target: any) => {\n Object.entries(target.prototype).forEach(([key, value]) => {\n const method = target.prototype[key];\n if (key !== 'constructor') {\n target.prototype[key] = function (...args: any[]) {\n const context = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n }\n });\n return target;\n };\n}\n\nexport function MonkeyEcxCoreLog(tp: string) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n propertyDescriptor.value = function (...args: any[]) {\n const params = args\n .map((a: any) => {\n return JSON.stringify(a);\n })\n .join();\n const result = method.apply(this, args);\n const r = JSON.stringify(result);\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreClearDecorators() {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n const credentials =\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\n let requestPaged = null;\n if (credentials) {\n requestPaged = credentials.requestPaged;\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\n ...params,\n ...(requestPaged || {}),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n\nexport function MonkeyEcxCoreServiceQueue(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\n DecoratorsUtils.buildQueuePropertys({\n name,\n description,\n })\n );\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceDownload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\n/* eslint-disable max-len */\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\nimport { DecoratorsUtils } from '../utils';\n\nexport function MonkeyEcxServiceUpload(\n name: string,\n description?: string,\n params?: MonkeyEcxServiceCredentials\n) {\n return function (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function (...args: any[]) {\n const context: any = this;\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\n params\n );\n }\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\n ...DecoratorsUtils.buildUploadPropertys(name, description),\n });\n }\n const result = method.apply(context, args);\n return result;\n };\n\n return propertyDescriptor;\n };\n}\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[monkeyecxDragDrop]',\n})\nexport class MonkeyEcxDragDropDirective {\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\n\n @HostBinding('style.background-color') private background = '#f5fcff';\n\n @HostBinding('style.opacity') private opacity = '1';\n\n @HostListener('dragover', ['$event'])\n onDragOver(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#9ecbec';\n this.opacity = '0.8';\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt: any) {\n evt?.preventDefault();\n evt?.stopPropagation();\n this.background = '#f5fcff';\n this.opacity = '1';\n const { files } = evt?.dataTransfer;\n if (files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxFormatCurrency]',\n providers: [CurrencyPipe]\n})\nexport class MonkeyEcxFormatCurrency implements OnInit {\n private el: HTMLInputElement;\n\n private currency: any;\n\n private currencyCode: string = 'BRL';\n\n private currentLocale: string = 'pt-BR';\n\n constructor(private elementRef: ElementRef, private injector: Injector) {\n this.el = this.elementRef.nativeElement;\n this.currency = this.injector.get(CurrencyPipe);\n\n const translateService = this.injector.get(TranslateService);\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\n this.currencyCode = _;\n this.currentLocale = translateService.getDefaultLang();\n });\n }\n\n private handle(value: any): string {\n const { currencyCode, currentLocale } = this;\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\n }\n\n ngOnInit() {\n this.el.value = this.handle(this.el.value);\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput(value: any) {\n this.el.value = this.handle(value);\n }\n}\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: '[monkeyecxFormatUpper]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyEcxFormatUpper;\n }),\n multi: true,\n },\n ],\n})\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\n _onChange?: (_: any) => void;\n\n _touched?: () => void;\n\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\n // not to do\n }\n\n @HostListener('keyup', ['$event'])\n onKeyDown(evt: KeyboardEvent) {\n const value = this._el.nativeElement.value.toUpperCase();\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n this._onChange?.(value);\n evt.preventDefault();\n }\n\n @HostListener('blur', ['$event'])\n onBlur() {\n this._touched?.();\n }\n\n writeValue(value: any): void {\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._touched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyAlphaNumeric]'\n})\nexport class MonkeyEcxOnlyAlphaNumericDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyNumbers]'\n})\nexport class MonkeyEcxOnlyNumbersDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\n\nexport class MonkeyEcxRequestPagedHandling {\n private url?: string;\n\n private pagedParams: MonkeyEcxRequestPaged;\n\n private links: MonkeyEcxResponseLinks;\n\n constructor(_url?: string, _pagedParams?: MonkeyEcxRequestPaged, _links?: any) {\n this.url = _url;\n this.pagedParams = _pagedParams || {\n page: {},\n };\n this.links = _links;\n }\n\n private handlePagedValuesFromApi(url: string = '') {\n if (url.search('\\\\?') < 0) return url;\n const params = url.substring(url.search('\\\\?') + 1, url.length);\n url = url.substring(0, url.search('\\\\?'));\n return `${url}?${new HttpParams({\n fromString: params,\n })\n .delete('size')\n .delete('page')\n .toString()}`;\n }\n\n private getUrlParams(url: string): string {\n const { pagedParams } = this;\n const { number, size } = pagedParams?.page || {};\n const hasInitialQueryParams = url.search('\\\\?') > 0;\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\n }\n\n public getRequestWithPagedParams(): string {\n const { url, links } = this;\n if (links && links.next) {\n return links.next.href;\n }\n const handled = this.handlePagedValuesFromApi(url);\n return `${handled}${this.getUrlParams(handled)}`;\n }\n}\n","import {\n ActivatedRouteSnapshot,\n NavigationStart,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, throwError } from 'rxjs';\nimport { filter, take, takeWhile } from 'rxjs/operators';\nimport {\n MonkeyEcxErrorResponse,\n MonkeyEcxHandledErrorResponse,\n MonkeyEcxRequestPaged,\n MonkeyEcxRequestSchedule,\n MonkeyEcxResponsePaged,\n MonkeyEcxResponseLinks,\n MonkeyEcxTokenCredentials,\n MonkeyEcxTranslateOptions,\n} from '../../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\n\nexport class MonkeyEcxCommonsService {\n private flagValidator = true;\n\n __data: any | any[];\n\n __params: any | any[];\n\n __error: MonkeyEcxErrorResponse | null = null;\n\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\n\n __page: MonkeyEcxResponsePaged | null = null;\n\n __links: MonkeyEcxResponseLinks | null = null;\n\n __search: any;\n\n __requestPaged: MonkeyEcxRequestPaged | null = null;\n\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\n\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\n\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\n\n __tokenCredentials: MonkeyEcxTokenCredentials | null = null;\n\n __schedule: MonkeyEcxRequestSchedule | null = null;\n\n __i18n: any;\n\n __callbackPagination: Function = () => {\n // eslint-disable-next-line no-console\n return console.error('Method callbackPagination needs to be declared');\n };\n\n constructor(\n public monkeyecxService?: MonkeyEcxService,\n public tokenStorage?: MonkeyEcxTokenStorageService,\n public otherArgs?: {\n router?: Router;\n schedule?: {\n service: MonkeyEcxRequestScheduleService;\n options?: {\n clearOnChangeRoute?: boolean;\n };\n };\n queue?: {\n service: MonkeyEcxRequestQueueHandlingService;\n };\n }\n ) {\n this.handleInit();\n }\n\n private handleInit() {\n if (this.tokenStorage) {\n this.__tokenCredentials = this.tokenStorage.getToken();\n }\n\n if (this.otherArgs?.router) {\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\n clearOnChangeRoute: false,\n };\n this.otherArgs.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n }),\n take(1)\n )\n .subscribe(() => {\n if (this.__schedule && clearOnChangeRoute) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n });\n }\n }\n\n private getRole(): string {\n const { __tokenCredentials } = this;\n\n if (!__tokenCredentials) return '';\n\n if (__tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n return __tokenCredentials?.role || '';\n }\n\n private allowedSecurityAccess(args: any): boolean {\n if (!args) return true;\n const roles = args?.roles;\n const byExclusion = args?.byExclusion;\n const found = roles?.indexOf(this.getRole());\n let ret = false;\n if (byExclusion) {\n ret = true;\n if (found > -1) {\n ret = false;\n }\n } else {\n ret = false;\n if (found > -1) {\n ret = true;\n }\n }\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\n ret = true;\n }\n return ret;\n }\n\n private navigateToErrorPage(statusCode: number, router?: Router) {\n const routes: any = {\n 403: 'forbidden',\n 404: 'not-found',\n 500: 'service-problems',\n 503: 'service-problems',\n };\n\n if (!router) {\n console.error('Router must be declared');\n } else {\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()], {\n skipLocationChange: true,\n });\n }\n }\n\n setPage(requestPaged: MonkeyEcxRequestPaged) {\n this.__requestPaged = {\n ...this.__requestPaged,\n ...requestPaged,\n };\n return this;\n }\n\n nextPage(): boolean {\n if (this.__links) {\n return !!this.__links?.next;\n }\n if (!this.__requestPaged) return false;\n const { page } = this.__requestPaged as any;\n const { number, totalPages } = page;\n if (number < totalPages) {\n this.__requestPaged = {\n ...this.__requestPaged,\n page: {\n ...page,\n number: number + 1,\n },\n };\n return true;\n }\n return false;\n }\n\n getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n getNormalizedUrl(url: string): string {\n const { __requestPaged, __links } = this;\n return new MonkeyEcxRequestPagedHandling(\n url,\n __requestPaged || {},\n __links\n ).getRequestWithPagedParams();\n }\n\n clear(clearData: boolean) {\n if (clearData) {\n this.__data = null;\n this.__requestPaged = null;\n this.__params = null;\n this.__page = null;\n this.__links = null;\n\n if (this.__schedule) {\n const { queue } = this.__schedule;\n if (queue) {\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\n }\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n }\n this.__error = null;\n this.__handledError = null;\n this.flagValidator = false;\n }\n\n resolve(\n route: ActivatedRouteSnapshot | null,\n state: RouterStateSnapshot | null,\n otherArgs?: {\n callbackMain: Function;\n router?: Router;\n security?: {\n roles: string[];\n byExclusion?: boolean;\n };\n callbackPagination?: Function;\n translateOptions?: MonkeyEcxTranslateOptions;\n feature?: {\n service: MonkeyEcxFeatureToggleService;\n flag: string;\n };\n }\n ) {\n if (JSON.stringify(route?.queryParams) === '{}') {\n this.__data = null;\n this.__page = null;\n }\n\n this.__requestPaged = null;\n this.flagValidator = true;\n\n if (this.tokenStorage) {\n this.__tokenCredentials = this.tokenStorage.getToken();\n }\n\n if (this.allowedSecurityAccess(otherArgs?.security)) {\n if (this.__schedule) {\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\n this.__schedule = null;\n }\n\n const { __requestPaged } = this;\n if (!__requestPaged) {\n this.setPage({\n page: {\n number: 0,\n size: 10,\n },\n });\n }\n\n if (otherArgs?.translateOptions) {\n const { service, keys } = otherArgs?.translateOptions;\n this.geti18n(service, keys || '');\n }\n\n if (otherArgs?.callbackPagination) {\n this.__callbackPagination = otherArgs.callbackPagination;\n }\n\n if (otherArgs?.feature) {\n const { flag, service } = otherArgs.feature;\n\n service.onFlags\n .pipe(\n takeWhile(() => {\n return this.flagValidator;\n })\n )\n .subscribe((val: boolean) => {\n if (val) {\n const hasFlag = service.getFlag(flag);\n\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\n if (!hasFlag) {\n this.navigateToErrorPage(404, otherArgs?.router);\n return;\n }\n }\n otherArgs?.callbackMain();\n }\n });\n } else {\n otherArgs?.callbackMain();\n }\n } else {\n this.navigateToErrorPage(403, otherArgs?.router);\n }\n }\n\n getHTTPHeaderApplicationPDF(): Object {\n return {\n observe: 'response',\n responseType: 'blob',\n };\n }\n\n @MonkeyEcxCoreService({\n requestInProgress: {\n showProgress: true,\n },\n })\n genericMethod(link: any, data?: any, callback?: Function) {\n const { href, type = 'get' } = link;\n\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\n () => {\n if (callback) callback();\n },\n (err: HttpErrorResponse) => {\n throwError(err);\n }\n );\n }\n\n geti18n(translateService: TranslateService, keys: string | string[]) {\n translateService.getStreamOnTranslationChange(keys).subscribe((translations: any) => {\n this.__i18n = translations;\n this.__oni18nDataChanged$.next(null);\n });\n }\n\n doPagination() {\n if (!this.__onLoadingInProgress$.value) {\n const hasMorePages = this.setPage({\n page: {\n ...this.__page,\n },\n }).nextPage();\n\n if (hasMorePages && this.__callbackPagination) {\n this.__callbackPagination();\n }\n }\n }\n\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\n this.__data = null;\n this.__page = null;\n this.__onDataChanged$.next(null);\n this.__onLoadingInProgress$.next(false);\n\n router.navigate([url], {\n queryParams: {\n ...search,\n r: MonkeyEcxUtils.getRandomString(30),\n },\n queryParamsHandling: 'merge',\n ...extras,\n });\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class MonkeyEcxHandlingService {\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\n\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\n\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\n\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\n\n public clearAll() {\n this.monkeyecxServiceCredentials = null;\n this.monkeyecxRequestQueue = null;\n this.monkeyecxRequestDownload = null;\n this.monkeyecxRequestUpload = null;\n }\n\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\n this.monkeyecxServiceCredentials = param;\n }\n\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\n return this.monkeyecxServiceCredentials;\n }\n\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\n this.monkeyecxRequestQueue = queue;\n }\n\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\n return this.monkeyecxRequestQueue;\n }\n\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\n this.monkeyecxRequestDownload = download;\n }\n\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\n return this.monkeyecxRequestDownload;\n }\n\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\n this.monkeyecxRequestUpload = upload;\n }\n\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\n return this.monkeyecxRequestUpload;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxService {\n constructor(\n protected http: HttpClient,\n public monkeyecxHandlingService: MonkeyEcxHandlingService\n ) {\n // not to do\n }\n\n private handlelize(params: any): any {\n if (!params) {\n return params;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const field of [\n 'createdAt',\n 'createUserId',\n 'updatedAt',\n 'lastUserId',\n '_links',\n 'governmentIdType',\n 'governmentIdMask',\n 'screenType',\n 'screenTab',\n ]) {\n delete params[field];\n }\n return params;\n }\n\n public get<T>(url: string, options?: T): Observable<T> {\n return this.http.get<T>(url, options);\n }\n\n public post<T>(url: string, params: T, options?: T): Observable<T> {\n return this.http.post<T>(url, params, options);\n }\n\n public put<T>(url: string, params: T): Observable<T> {\n return this.http.put<T>(\n url,\n this.handlelize({\n ...params,\n })\n );\n }\n\n public delete<T>(url: string, params?: T): Observable<T> {\n return this.http.delete<T>(url, params);\n }\n\n public download<T>(url: string, options?: T, filename?: string) {\n this.http.get<T>(url, options).subscribe(\n (resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`,\n });\n return {\n filename,\n blob,\n };\n },\n (err: HttpErrorResponse) => {\n throwError(err);\n }\n );\n }\n\n public downloadOb<T>(url: string, options?: T, filename?: string): Observable<any> {\n return this.http.get<any>(url, options).pipe(\n map((resp: any) => {\n const { headers, body } = resp;\n const contentType = headers.get('Content-Type');\n const contentDisposition = headers.get('Content-Disposition');\n if (contentDisposition) {\n filename = contentDisposition\n .split(';')[1]\n .split('filename')[1]\n .split('=')[1]\n .trim()\n .replace(new RegExp(/\"/g), '');\n }\n const blob = new Blob([body], {\n type: `${contentType}`,\n });\n return {\n filename,\n blob,\n };\n }),\n catchError((err: any) => {\n return throwError(err);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\nlet window: any;\r\n\r\nconst text: any = {\r\n i18n: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your locale',\r\n },\r\n theme: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your theme',\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxErrorConfigService {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private enableSupport() {\r\n window.zE('webWidget', 'updateSettings', {\r\n webWidget: {\r\n color: {\r\n theme: '#0273E8',\r\n launcherText: '#fff',\r\n header: '#0273E8',\r\n button: '#0273E8',\r\n },\r\n zIndex: 99,\r\n offset: {\r\n horizontal: '1px',\r\n vertical: '20px',\r\n },\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n launcher: {\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n },\r\n },\r\n });\r\n window.zE('webWidget', 'setLocale', 'en-US');\r\n window.zE('webWidget', 'show');\r\n }\r\n\r\n public apply(type: string) {\r\n const { title, message } = text?.[type];\r\n\r\n const element = document.createElement('div');\r\n element.id = 'monkeyecx-information';\r\n\r\n const elementImg = document.createElement('img');\r\n elementImg.width = 128;\r\n elementImg.src = 'assets/images/monkey.svg';\r\n elementImg.style.marginBottom = '50px';\r\n\r\n const elementTitle = document.createElement('span');\r\n elementTitle.id = 'title';\r\n elementTitle.innerText = title;\r\n elementTitle.style.marginBottom = '20px';\r\n\r\n const elementMessage = document.createElement('span');\r\n elementMessage.id = 'message';\r\n elementMessage.innerText = message;\r\n elementMessage.style.marginBottom = '20px';\r\n\r\n const elementChat = document.createElement('span');\r\n elementChat.id = 'message';\r\n elementChat.innerText =\r\n \"If you're having trouble to update, please use the support icon bellow\";\r\n\r\n element.appendChild(elementImg);\r\n element.appendChild(elementTitle);\r\n element.appendChild(elementMessage);\r\n element.appendChild(elementChat);\r\n\r\n element.addEventListener('click', () => {\r\n document.location.reload();\r\n });\r\n\r\n document.body.appendChild(element);\r\n\r\n document.body.getElementsByTagName('app-root')[0].remove();\r\n this.enableSupport();\r\n }\r\n}\r\n","/* eslint-disable no-console */\r\n/* eslint-disable import/no-named-default */\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxCookieStorageService } from '../storage/monkeyecx-cookie-storage.service';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\nimport { MonkeyEcxErrorConfigService } from '../config/monkeyecx-error-config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxi18nConfigService extends MonkeyEcxCommonsService {\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n private translateService: TranslateService,\r\n private monkeyecxCookieStorageService: MonkeyEcxCookieStorageService,\r\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService\r\n ) {\r\n super(monkeyecxService);\r\n\r\n this.translateService.addLangs(['pt-BR', 'en-US']);\r\n this.translateService.setDefaultLang('pt-BR');\r\n this.translateService.use('pt-BR');\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [404],\r\n },\r\n requestInProgress: {\r\n showProgress: false,\r\n },\r\n })\r\n public apply(params: MonkeyEcxConfig, environment: any, change = false) {\r\n const { monkeyecxService, monkeyecxCookieStorageService, monkeyecxErrorConfigService } = this;\r\n let { i18n } = params;\r\n const externali18n = params?.externali18n?.[`${i18n?.lang || 'pt-BR'}`];\r\n const cookie = monkeyecxCookieStorageService.getCookie('monkey-app-locale');\r\n if (cookie && !change) {\r\n i18n = JSON.parse(atob(cookie));\r\n } else {\r\n monkeyecxCookieStorageService.setCookie('monkey-app-locale', btoa(JSON.stringify(i18n)));\r\n if (!cookie) change = true;\r\n }\r\n\r\n monkeyecxService?.get<any>(`${environment.localAssets}/i18n/${i18n?.lang}.json`)?.subscribe(\r\n (config: any) => {\r\n const { lang } = config;\r\n let { data } = config;\r\n if (externali18n) {\r\n data = {\r\n ...data,\r\n EXTERNAL: externali18n,\r\n };\r\n }\r\n this.translateService.setTranslation(lang, data, true);\r\n this.translateService.use(lang);\r\n if (change) document.location.reload();\r\n },\r\n (err: HttpErrorResponse) => {\r\n console.error(`i18n ${i18n?.lang} not found!`);\r\n monkeyecxErrorConfigService.apply('i18n');\r\n throwError(err);\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { datadogRum } from '@datadog/browser-rum';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigBoostrap } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxLogsConfigService {\r\n public apply(\r\n params: MonkeyEcxConfig,\r\n configBoostrap: MonkeyEcxConfigBoostrap,\r\n environment: any,\r\n identifyCode: string\r\n ) {\r\n const { program, logs } = params;\r\n if (logs?.enabled && environment.environment !== 'dev') {\r\n datadogRum.init({\r\n applicationId: environment?.dataDogApplicationId,\r\n clientToken: environment?.dataDogClientToken,\r\n service: program?.token,\r\n site: 'datadoghq.com',\r\n sampleRate: 100,\r\n replaySampleRate: 100,\r\n env: `monkey-front-${identifyCode}-${environment.environment}`,\r\n version: configBoostrap?.version,\r\n trackInteractions: true,\r\n trackSessionAcrossSubdomains: true,\r\n useSecureSessionCookie: true,\r\n useCrossSiteSessionCookie: true\r\n });\r\n datadogRum.startSessionReplayRecording();\r\n }\r\n }\r\n}\r\n","import { ApplicationRef, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { concat, interval } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MonkeyEcxConfigBoostrap } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxServiceWorkerConfigService {\n constructor(\n private appRef: ApplicationRef,\n private updates: SwUpdate,\n private modalService: MonkeyStyleGuideModalService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBoostrap) {\n const { updates, modalService } = this;\n updates?.versionUpdates?.subscribe(() => {\n if (!config.showNewVersion || config.maintenance.closed) {\n document.location.reload();\n } else {\n modalService.open(VersionChangedComponent, {\n color: 'theme',\n size: 'md'\n });\n }\n });\n }\n\n private verify() {\n const { appRef, updates } = this;\n const appIsStable$ = appRef.isStable\n .pipe(first((isStable: boolean) => { return isStable === true; }));\n const everyHour$ = interval(1 * 60 * 60 * 1000);\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\n everyHourOnceAppIsStable$.subscribe(() => {\n updates.checkForUpdate();\n });\n updates.checkForUpdate();\n }\n\n public apply(config: MonkeyEcxConfigBoostrap) {\n this.handleValidation(config);\n this.verify();\n }\n}\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyEcxCommonsService } from '../commons';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxSecurityConsoleConfigService extends MonkeyEcxCommonsService {\n constructor(private translateService: TranslateService) {\n super();\n\n this.geti18n(this.translateService, 'SERVICES.WARNING.CONSOLE');\n }\n\n private handleValidation() {\n this.__oni18nDataChanged$.subscribe(() => {\n const { __i18n } = this;\n const title = __i18n?.TITLE;\n const message = __i18n?.MESSAGE;\n if (title) {\n console.log(`%c${title}`, 'background: #f2f061; color: #ff0000; font-size: x-large');\n console.log(`%c${message}`, 'font-size: x-large');\n console.log(\n '%c __ __ _ ______ \\n ' +\n '| \\\\/ | ___ _ __ | | _____ _ _\\\\ \\\\ \\\\ \\\\ \\n ' +\n \"| |\\\\/| |/ _ \\\\| '_ \\\\| |/ / _ \\\\ | | |\\\\ \\\\ \\\\ \\\\ \\n \" +\n '| | | | (_) | | | | < __/ |_| |/ / / / \\n ' +\n '|_| |_|\\\\___/|_| |_|_|\\\\_\\\\___|\\\\__, /_/_/_/ \\n ' +\n ' |___/ \\n ' +\n 'Join us: https://monkeyecx.gupy.io', 'background: #1976d2; color: #fff'\n );\n }\n });\n }\n\n public apply() {\n this.handleValidation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\nimport { MonkeyEcxConfigBoostrap } from '../../interfaces/monkeyecx-config-boostrap';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxMaintenanceConfigService {\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBoostrap) {\n if (config.maintenance.closed) {\n localStorage.clear();\n this.router.navigate(['']);\n\n setTimeout(() => {\n this.modalService.open(ClosedToMaintenanceComponent, {\n color: 'theme',\n size: 'md',\n data: config\n });\n }, 200);\n }\n }\n\n public apply(config: MonkeyEcxConfigBoostrap) {\n this.handleValidation(config);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { initialize, LDClient, LDFlagSet } from 'launchdarkly-js-client-sdk';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxFeatureToggleService {\r\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n private flags: LDFlagSet | undefined = undefined;\r\n\r\n private ldClient: LDClient | undefined = undefined;\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private getAllFlags(): void {\r\n if (!this) return;\r\n this.flags = this.ldClient?.allFlags();\r\n\r\n this.flagSubject$.next(true);\r\n }\r\n\r\n private identify(config: MonkeyEcxConfig, environment: any): void {\r\n if (config) {\r\n const email = 'monkey@monkey.exchange';\r\n const user = {\r\n email,\r\n key: `${config.program?.token}#${email}`,\r\n };\r\n\r\n if (!this.ldClient) {\r\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\r\n streaming: true,\r\n disableSyncEventPost: true,\r\n sendEvents: false,\r\n diagnosticOptOut: true,\r\n });\r\n\r\n this.ldClient.on('change', this.getAllFlags.bind(this));\r\n this.ldClient.on('ready', this.getAllFlags.bind(this));\r\n } else {\r\n this.ldClient.identify(user, undefined, this.getAllFlags);\r\n }\r\n }\r\n }\r\n\r\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\r\n if (environment.launchDarklyClientSideID) {\r\n configSubject$.subscribe((config) => {\r\n this.identify(config, environment);\r\n });\r\n } else {\r\n this.flagSubject$.next(true);\r\n }\r\n }\r\n\r\n public get onFlags(): Observable<any> {\r\n return this.flagSubject$.asObservable();\r\n }\r\n\r\n public getFlag(flag: string): boolean | null {\r\n const flagValue = this.flags?.[flag];\r\n\r\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\r\n }\r\n}\r\n","/* eslint-disable no-console */\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError, BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyStyleGuideSettingsService, MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxi18nConfigService } from './monkeyecx-i18n-config.service';\r\nimport { MonkeyEcxLogsConfigService } from './monkeyecx-logs-config.service';\r\nimport { MonkeyEcxServiceWorkerConfigService } from './monkeyecx-service-worker-config.service';\r\nimport { MonkeyEcxSecurityConsoleConfigService } from './monkeyecx-security-console-config.service';\r\nimport { MonkeyEcxMaintenanceConfigService } from './monkeyecx-maintenance-config.service';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxCommonsService } from '../commons/monkeyecx-commons.service';\r\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\r\nimport { MonkeyEcxConfigBoostrap } from '../../interfaces/monkeyecx-config-boostrap';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxErrorConfigService } from './monkeyecx-error-config.service';\r\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxConfigService extends MonkeyEcxCommonsService {\r\n private readonly configSubject$: BehaviorSubject<MonkeyEcxConfig>;\r\n\r\n private readonly configBoostrapSubject$: BehaviorSubject<MonkeyEcxConfig>;\r\n\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n private monkeyecxi18nConfigService: MonkeyEcxi18nConfigService,\r\n private monkeyecxLogsConfigService: MonkeyEcxLogsConfigService,\r\n private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService,\r\n private monkeyecxServiceWorkerConfigService: MonkeyEcxServiceWorkerConfigService,\r\n private monkeyecxSecurityConsoleConfigService: MonkeyEcxSecurityConsoleConfigService,\r\n private monkeyecxMaintenanceConfigService: MonkeyEcxMaintenanceConfigService,\r\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService,\r\n private monkeyEcxFeatureToggleService: MonkeyEcxFeatureToggleService\r\n ) {\r\n super(monkeyecxService);\r\n this.configSubject$ = new BehaviorSubject({});\r\n this.configBoostrapSubject$ = new BehaviorSubject({});\r\n }\r\n\r\n private internalValidations(...args: any[]) {\r\n const {\r\n monkeyecxServiceWorkerConfigService,\r\n monkeyecxSecurityConsoleConfigService,\r\n monkeyecxMaintenanceConfigService,\r\n } = this;\r\n const configBoostrap = args[0];\r\n const callback = args[1];\r\n monkeyecxSecurityConsoleConfigService.apply();\r\n monkeyecxServiceWorkerConfigService.apply(configBoostrap);\r\n monkeyecxMaintenanceConfigService.apply(configBoostrap);\r\n callback(configBoostrap);\r\n }\r\n\r\n private getWhiteLabelSettings(\r\n monkeyecxCode: string,\r\n configBoostrap: MonkeyEcxConfigBoostrap,\r\n callback: Function,\r\n environment: any,\r\n identifyCode: string\r\n ) {\r\n const {\r\n monkeyecxService,\r\n monkeyecxi18nConfigService,\r\n configSubject$,\r\n monkeyStyleGuideSettingsService,\r\n monkeyecxLogsConfigService,\r\n monkeyecxErrorConfigService,\r\n monkeyEcxFeatureToggleService,\r\n internalValidations,\r\n } = this;\r\n const url = `${environment.urlAssets}`;\r\n monkeyecxService\r\n ?.get<any>(\r\n `${url}/${monkeyecxCode.toLowerCase()}/white-label.json?t=${MonkeyUtils.getRandomString(\r\n 30\r\n )}`\r\n )\r\n ?.subscribe(\r\n (config: MonkeyEcxConfig) => {\r\n monkeyecxi18nConfigService.apply(config, environment);\r\n monkeyecxLogsConfigService.apply(config, configBoostrap, environment, identifyCode);\r\n monkeyEcxFeatureToggleService.apply(configSubject$, environment);\r\n monkeyStyleGuideSettingsService.boostrap(\r\n `${url}/${monkeyecxCode.toLowerCase()}/monkey-style-guide-settings.json?t=${MonkeyUtils.getRandomString(\r\n 30\r\n )}`,\r\n internalValidations.bind(this, configBoostrap, callback, environment)\r\n );\r\n configSubject$.next(config);\r\n },\r\n (err: HttpErrorResponse) => {\r\n monkeyecxErrorConfigService.apply('theme');\r\n console.error('Program Configuration not found!');\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [404],\r\n },\r\n requestInProgress: {\r\n showProgress: false,\r\n },\r\n })\r\n public init(callback: Function, environment: any, identifyCode: string, monkeyecxCode?: string) {\r\n const { monkeyecxService, configBoostrapSubject$, monkeyecxErrorConfigService } = this;\r\n\r\n monkeyecxService\r\n ?.get(`${environment.boostrapAssets}?t=${MonkeyUtils.getRandomString(30)}`, {\r\n observe: 'response',\r\n })\r\n ?.subscribe(\r\n (resp: any) => {\r\n const { headers, body } = resp;\r\n const monkeyCode = headers.get('monkey-code') || monkeyecxCode;\r\n if (monkeyCode) {\r\n this.getWhiteLabelSettings(monkeyCode, body, callback, environment, identifyCode);\r\n configBoostrapSubject$.next(body);\r\n } else {\r\n monkeyecxErrorConfigService.apply('theme');\r\n console.error(`Boostrap ${monkeyCode} Configuration not found!`);\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n monkeyecxErrorConfigService.apply('theme');\r\n console.error('Boostrap Configuration not found!');\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n public config(): Observable<any> {\r\n return this.configSubject$.asObservable();\r\n }\r\n\r\n public boostrapConfig(): Observable<any> {\r\n return this.configBoostrapSubject$.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Observable, of, BehaviorSubject } from 'rxjs';\nimport { MonkeyEcxConfigService } from '../config/monkeyecx-config.service';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport {\n MonkeyEcxConfig,\n MonkeyEcxMeCredentials,\n MonkeyEcxTokenCredentials,\n} from '../../interfaces';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxTokenStorageService {\n private token: MonkeyEcxTokenCredentials | null;\n\n private token$: BehaviorSubject<MonkeyEcxTokenCredentials | any>;\n\n private me$: BehaviorSubject<MonkeyEcxMeCredentials | any>;\n\n private config: MonkeyEcxConfig | null = null;\n\n constructor(private monkeyecxConfigService: MonkeyEcxConfigService) {\n this.token = {\n username: '',\n program: '',\n accessToken: '',\n refreshToken: '',\n companyId: '',\n governmentId: '',\n companyTypeUrl: '',\n companyType: '',\n programAdmin: false,\n programType: '',\n accessType: '',\n role: '',\n _clearIgnore: {\n ignore: ['username', 'program', 'accessType'],\n },\n };\n this.token$ = new BehaviorSubject(null);\n this.me$ = new BehaviorSubject(null);\n\n this.monkeyecxConfigService.config().subscribe((_: MonkeyEcxConfig) => {\n this.config = _;\n });\n }\n\n private setAllTokens(token: MonkeyEcxTokenCredentials) {\n const { token$ } = this;\n Object.entries(token).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n localStorage.setItem(key, value);\n }\n });\n token$.next(token);\n }\n\n private getAllTokens(): MonkeyEcxTokenCredentials {\n const { token, config } = this;\n const handledToken: any = {\n ...token,\n };\n Object.entries(token || {}).forEach(([key, value]) => {\n handledToken[key] = localStorage.getItem(key);\n });\n\n if (!handledToken?.program && config?.program) {\n handledToken.program = config?.program?.token;\n }\n\n return handledToken;\n }\n\n private setAllMe(me: MonkeyEcxMeCredentials) {\n const { me$ } = this;\n let previousMe = JSON.parse(localStorage?.getItem('me') || '{}');\n Object.entries(me).forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n previousMe = {\n ...previousMe,\n [key]: value,\n };\n }\n });\n\n localStorage.setItem('me', JSON.stringify(previousMe));\n me$.next(previousMe);\n }\n\n private getAllMe(): MonkeyEcxMeCredentials {\n const me = localStorage.getItem('me');\n return JSON.parse(me || '{}') as MonkeyEcxMeCredentials;\n }\n\n public tokenHasChanged(): Observable<MonkeyEcxTokenCredentials> {\n return this.token$.asObservable();\n }\n\n public meHasChanged(): Observable<MonkeyEcxMeCredentials> {\n return this.me$.asObservable() || null;\n }\n\n public getToken(): MonkeyEcxTokenCredentials {\n return this.getAllTokens();\n }\n\n public getMe(): MonkeyEcxMeCredentials {\n return this.getAllMe();\n }\n\n public setToken(token: MonkeyEcxTokenCredentials) {\n this.setAllTokens(token);\n }\n\n public setMe(me: MonkeyEcxMeCredentials) {\n this.setAllMe(me);\n }\n\n public clear(force?: boolean): Observable<boolean> {\n const { token } = this;\n try {\n Object.entries(token || {}).forEach(([key, value]) => {\n if (\n (token?._clearIgnore?.ignore || []).filter((val: any) => {\n return val === key;\n }).length <= 0 ||\n force === true\n ) {\n localStorage.removeItem(key);\n }\n });\n localStorage.removeItem('me');\n } catch (error) {\n return of(false);\n }\n return of(true);\n }\n\n /**\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\n */\n public clearCredentials(\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\n ) {\n fields?.forEach((key: string) => {\n localStorage.removeItem(key);\n });\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { MonkeyEcxTokenCredentials } from '../interfaces';\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\n\n@Directive({\n selector: '[monkeyecxSecurity]',\n})\nexport class MonkeyEcxSecurityDirective implements OnInit {\n @Input('securityRoles') roles: string[] = [];\n\n @Input('securityByExclusion') byExclusion: boolean = false;\n\n private tokenCredentials: MonkeyEcxTokenCredentials | null = null;\n\n constructor(\n private elementRef: ElementRef,\n private tokenStorageService: MonkeyEcxTokenStorageService,\n private cdr: ChangeDetectorRef\n ) {\n // not to do\n }\n\n private getRole(): string {\n const { tokenCredentials } = this;\n\n if (!tokenCredentials) return '';\n\n if (tokenCredentials?.programAdmin === 'true') {\n return 'PROGRAM_ADMIN';\n }\n\n return tokenCredentials?.role || '';\n }\n\n private handleAccess() {\n const { roles, byExclusion } = this;\n let display = 'none';\n const found = roles?.indexOf(this.getRole());\n if (byExclusion) {\n display = 'block';\n if (found > -1) {\n display = 'none';\n }\n } else {\n display = 'none';\n if (found > -1) {\n display = 'block';\n }\n }\n\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\n this.elementRef.nativeElement.style.display = display;\n this.cdr.detectChanges();\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.style.display = 'none';\n this.cdr.detectChanges();\n\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\n this.tokenCredentials = this.tokenStorageService.getToken();\n this.handleAccess();\n });\n\n this.tokenCredentials = this.tokenStorageService.getToken();\n this.handleAccess();\n }\n}\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[monkeyecxTooltip]',\r\n})\r\nexport class MonkeyEcxTooltipDirective {\r\n @Input() tooltipDelay?: number;\r\n\r\n @Input() tooltipPosition?: string;\r\n\r\n @Input() tooltipText?: string;\r\n\r\n @Input() tooltipTitle?: string;\r\n\r\n @Input() enableToShow = true;\r\n\r\n offset = 10;\r\n\r\n tooltip: HTMLElement | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n // not to do\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n if (!this.tooltip) {\r\n this.show();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n clickout() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n if (this.enableToShow) {\r\n this.create();\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n setTimeout(() => {\r\n this.hide();\r\n }, 5000);\r\n }\r\n }\r\n\r\n hide() {\r\n if (!this.tooltip) return;\r\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n\r\n this.tooltip = null;\r\n }\r\n\r\n create() {\r\n const tooltipElement = document.createElement('div');\r\n\r\n this.tooltip = this.renderer.createElement('span');\r\n\r\n if (this.tooltipTitle) {\r\n const tooltipTitleElement = document.createElement('span');\r\n\r\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\r\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\r\n\r\n tooltipElement.appendChild(tooltipTitleElement);\r\n }\r\n\r\n if (this.tooltipText) {\r\n const tooltipTextElement = document.createElement('span');\r\n\r\n tooltipTextElement.innerText = `${this.tooltipText}`;\r\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\r\n tooltipElement.appendChild(tooltipTextElement);\r\n }\r\n\r\n this.renderer.appendChild(this.tooltip, tooltipElement);\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\r\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\r\n\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip?.getBoundingClientRect();\r\n if (!tooltipPos) return;\r\n const scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n let top: number = 0;\r\n let left: number = 0;\r\n\r\n if (this.tooltipPosition === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.tooltipPosition === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFeature]',\r\n})\r\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\r\n @Input('featureName') feature?: string;\r\n\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private getFeature(feature: string): boolean {\r\n const { monkeyecxFeatureToggleService } = this;\r\n\r\n if (!monkeyecxFeatureToggleService) {\r\n return false;\r\n }\r\n\r\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\r\n }\r\n\r\n private handleDisplay(): void {\r\n if (!this.feature) return;\r\n const flag = this.getFeature(this.feature);\r\n let display = 'none';\r\n\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\r\n return;\r\n }\r\n\r\n if (flag) {\r\n display = 'block';\r\n }\r\n\r\n if (display === 'none') {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n\r\n this.elementRef.nativeElement.style.display = display;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.feature) return;\r\n this.elementRef.nativeElement.style.display = 'none';\r\n this.cdr.detectChanges();\r\n\r\n this.monkeyecxFeatureToggleService.onFlags\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe((val: boolean) => {\r\n if (val) {\r\n this.handleDisplay();\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\r\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\r\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\r\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\r\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\r\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\r\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\r\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyEcxDragDropDirective,\r\n MonkeyEcxFormatCurrency,\r\n MonkeyEcxFeatureDirective,\r\n MonkeyEcxFormatUpper,\r\n MonkeyEcxOnlyAlphaNumericDirective,\r\n MonkeyEcxOnlyNumbersDirective,\r\n MonkeyEcxSecurityDirective,\r\n MonkeyEcxTooltipDirective\r\n ],\r\n exports: [\r\n MonkeyEcxDragDropDirective,\r\n MonkeyEcxFormatCurrency,\r\n MonkeyEcxFeatureDirective,\r\n MonkeyEcxFormatUpper,\r\n MonkeyEcxOnlyAlphaNumericDirective,\r\n MonkeyEcxOnlyNumbersDirective,\r\n MonkeyEcxSecurityDirective,\r\n MonkeyEcxTooltipDirective\r\n ]\r\n})\r\nexport class MonkeyEcxDirectivesModule {}\r\n","/* eslint-disable no-console */\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpErrorResponse, HttpRequest } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthenticationService {\n constructor() {\n // not to do\n }\n\n hadAtLeastOneLogin = () => {\n console.error('hadAtLeastOneLogin needs to be declared!');\n return null;\n };\n\n redirectApp = () => {\n console.error('redirectApp needs to be declared!');\n return null;\n };\n\n redirectLoginWelcomeBack = () => {\n console.error('redirectLoginWelcomeBack needs to be declared!');\n return null;\n };\n\n isAuthorized = (): boolean => {\n console.error('isAuthorized needs to be declared!');\n return false;\n };\n\n getRequestWithHeaders = (request: HttpRequest<any>): HttpRequest<any> | null => {\n console.error('getRequestWithHeaders needs to be declared!');\n return null;\n };\n\n getRequestWithHeadersOb = (request: HttpRequest<any>): Observable<any> | null => {\n console.error('getRequestWithHeadersOb needs to be declared!');\n return null;\n };\n\n refreshShouldHappen = (response: HttpErrorResponse): boolean => {\n console.error('refreshShouldHappen needs to be declared!');\n return false;\n };\n\n refreshToken = (): Observable<any> | null => {\n console.error('refreshToken needs to be declared!');\n return null;\n };\n\n init(\n args: {\n hadAtLeastOneLogin?: any,\n redirectApp?: any,\n redirectLoginWelcomeBack?: any,\n isAuthorized?: any,\n getRequestWithHeaders?: any,\n getRequestWithHeadersOb?: any,\n refreshShouldHappen?: any,\n refreshToken?: any\n }\n ) {\n this.hadAtLeastOneLogin = args?.hadAtLeastOneLogin || this.hadAtLeastOneLogin.bind(this);\n this.redirectApp = args?.redirectApp || this.redirectApp.bind(this);\n this.redirectLoginWelcomeBack = args?.redirectLoginWelcomeBack ||\n this.redirectLoginWelcomeBack.bind(this);\n this.isAuthorized = args?.isAuthorized || this.isAuthorized.bind(this);\n this.getRequestWithHeaders = args?.getRequestWithHeaders ||\n this.getRequestWithHeaders.bind(this);\n this.getRequestWithHeadersOb = args?.getRequestWithHeadersOb.bind(this);\n this.refreshShouldHappen = args?.refreshShouldHappen || this.refreshShouldHappen.bind(this);\n this.refreshToken = args?.refreshToken || this.refreshToken.bind(this);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n canActivate(): Observable<boolean> | Promise<boolean> | boolean {\n if (this.monkeyecxAuthenticationService.isAuthorized()) {\n this.monkeyecxAuthenticationService.redirectApp();\n return false;\n }\n if (this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n return false;\n }\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxAuthGuard implements CanActivate {\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\n // not to do\n }\n\n canActivate(): Observable<boolean> | Promise<boolean> | boolean {\n const { monkeyecxAuthenticationService } = this;\n\n if (monkeyecxAuthenticationService.isAuthorized()) {\n return true;\n }\n\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\n\n return false;\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\nimport { MonkeyEcxAuthenticationService } from '../auth';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxTokenStorageService } from '../storage';\nimport { MonkeyEcxCommonsService } from '../commons';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\n constructor(\n monkeyecxService: MonkeyEcxService,\n tokenStorage: MonkeyEcxTokenStorageService,\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private router: Router,\n private snackbarService: MonkeyStyleGuideSnackbarService,\n private translateService: TranslateService\n ) {\n super(monkeyecxService, tokenStorage);\n\n super.resolve(null, null);\n\n this.geti18n(this.translateService, 'SERVICES.WARNING');\n }\n\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private isHttpCodeIgnoreRedirect(\n tp: MonkeyEcxServiceCredentials,\n httpCode: number\n ): boolean {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\n return false;\n }\n\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\n\n return found;\n }\n\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\n if (status === 409 || status === 400) {\n return 'warning';\n }\n\n return 'error';\n }\n\n private showMessage(\n message: string,\n error: HttpErrorResponse,\n mkc: MonkeyEcxServiceCredentials\n ) {\n const { snackbarService } = this;\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n snackbarService.show({\n title: this.__i18n?.TITLE,\n message,\n type: this.getMessageType(error.status),\n duration: 4000,\n horizontalPosition: 'center',\n verticalPosition: 'top'\n });\n }\n }\n\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n // eslint-disable-next-line camelcase\n const { notifications, error_description, message } = error.error;\n let customMessage = '';\n\n if (message) {\n customMessage = message;\n }\n\n // eslint-disable-next-line camelcase\n if (error_description) {\n // eslint-disable-next-line camelcase\n customMessage = error_description;\n }\n\n if (notifications) {\n customMessage = notifications;\n }\n\n if (!customMessage) {\n if (error.error instanceof Blob) {\n const blob = new Blob([error.error], {\n type: 'application/json'\n });\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n const text = e?.target?.result;\n const jsonResp = JSON.parse(text as string);\n customMessage = jsonResp.notifications;\n this.showMessage(customMessage, error, mkc);\n });\n reader.readAsText(blob);\n } else {\n this.showMessage(this.__i18n['ERROR-HANDLING']?.ERROR, error, mkc);\n }\n } else {\n this.showMessage(customMessage, error, mkc);\n }\n }\n\n public handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n const { router } = this;\n const { status } = error;\n\n const routes: any = {\n 403: 'forbidden',\n 500: 'service-problems',\n 503: 'service-problems'\n };\n\n const found = routes[status];\n let timeout = 0;\n\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\n const route = `/app/pages/${found}`.toLowerCase();\n timeout = 800;\n router.navigate([route]);\n }\n\n setTimeout(() => {\n this.handleMessage(error, mkc);\n }, timeout);\n }\n\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\n if (error.status === 401 || error.status === 400) {\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\n this.handleMessage(error, mkc);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { VersionChangedComponent } from '../../../components/version-changed';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxOthersErrorsHandlingService {\n constructor(private modalService: MonkeyStyleGuideModalService) {\n // not to do\n }\n\n public handleError(error: any) {\n const { modalService } = this;\n const { message } = error;\n\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\n modalService.open(VersionChangedComponent, {\n color: 'theme',\n size: 'md'\n });\n }\n }\n}\n","import { Injectable, Injector, ErrorHandler } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\n constructor(private injector: Injector) {\n // not to do\n }\n\n handleError(error: any, type?: string) {\n const { injector } = this;\n const handlingService = injector.get(MonkeyEcxHandlingService);\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\n\n console.log('======error');\n console.log(error);\n\n if (error instanceof HttpErrorResponse) {\n const sCredentials: MonkeyEcxServiceCredentials =\n handlingService?.getMonkeyEcxServiceCredentials() || {};\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\n } else httpErrorHandlingService.handleError(error, sCredentials);\n } else {\n othersErrorsHandlingService.handleError(error);\n }\n }\n}\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxErrorHandlingModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\n return {\n ngModule: MonkeyEcxErrorHandlingModule,\n providers: [\n {\n provide: ErrorHandler,\n useClass: MonkeyEcxErrorHandlingService,\n },\n ],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\n\nexport interface Headers {\n name: string;\n value: string;\n}\n\n@Injectable()\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\n constructor(\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\n ) {\n // no to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(\n map((event: HttpEvent<any>) => {\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\n return this.monkeyecxAuthenticationService?.refreshToken()?.pipe(\n take(1),\n map(() => {\n return this.monkeyecxAuthenticationService.getRequestWithHeaders(request);\n }),\n mergeMap((resp: any) => {\n return next.handle(resp).pipe(\n catchError((error: any) => {\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\n return throwError(null);\n })\n );\n }),\n catchError((error: any) => {\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\n return throwError(null);\n })\n ) || throwError(error);\n }\n return throwError(error);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\n constructor(\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\n ) {\n // not to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return this.monkeyecxAuthenticationService?.getRequestWithHeadersOb(request)?.pipe(\n take(1),\n map((event: any) => {\n return event;\n }),\n mergeMap((resp: any) => {\n request = request.clone({\n setHeaders: resp\n });\n return next.handle(request);\n }),\n catchError((error: HttpErrorResponse) => {\n this.monkeyecxErrorHandlingService.handleError(error);\n return throwError(error);\n })\n ) || throwError('getRequestWithHeadersOb undefined');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n }\n\n public setQueue(q: MonkeyEcxRequestQueue | null) {\n if (!q) return;\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\n if (!q) return;\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\nimport { Statics } from '../../utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestQueueModalHandlingService {\n private queue: MonkeyEcxRequestQueue[] = [];\n\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\n\n private newQueue$ = new BehaviorSubject(false);\n\n private allQueueFinished$ = new BehaviorSubject(false);\n\n constructor() {\n this.queues$ = new BehaviorSubject([]);\n }\n\n private addToQueue(q: MonkeyEcxRequestQueue) {\n this.queue.push(q);\n this.queues$.next(this.queue);\n this.newQueue$.next(true);\n }\n\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\n action\n };\n }\n }\n return valSaved;\n })\n ];\n this.queues$.next(this.queue);\n }\n\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const { total, loaded } = progress;\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n progress: {\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n }\n };\n }\n return valSaved;\n })\n ];\n\n this.queues$.next(this.queue);\n }\n\n private deleteQueue(q: MonkeyEcxRequestQueue) {\n const saved = [...this.queue];\n this.queue = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return null;\n }\n return valSaved;\n })\n ].filter((_: any) => {\n return _;\n });\n\n this.queues$.next(this.queue);\n if (this.queue.length <= 0) {\n this.allQueueFinished$.next(true);\n }\n }\n\n public setQueue(q: MonkeyEcxRequestQueue) {\n this.addToQueue(q);\n }\n\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\n return this.queues$.asObservable();\n }\n\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\n this.markQueueItemAsFinish(q, status, action);\n }\n\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\n this.deleteQueue(q);\n }\n\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\n this.updateQueue(q, progress);\n }\n\n public hasNewQueue(): Observable<boolean> {\n return this.newQueue$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n\n public hasAllQueueFinished(): Observable<boolean> {\n return this.allQueueFinished$.pipe(\n map((_: any) => {\n return _;\n })\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestQueue } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\n constructor(\n private injector: Injector,\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\n ) {\n // not to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isQueueProperty } = this;\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\n\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isQueueProperty(monkeyecxRequestQueue)) {\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\n }\n })\n );\n }\n\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\n return (\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\n );\n }\n}\n","/* eslint-disable max-len */\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\nimport { MonkeyEcxUtils } from '../utils/utils';\nimport { MonkeyEcxProgressBarService } from '../../components';\n\n@Injectable()\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {\n // no to do\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const { injector, isLoadingInProgressProperty } = this;\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\n MonkeyEcxProgressBarService\n );\n\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\n : null;\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.show();\n }\n\n return next.handle(request).pipe(\n finalize(() => {\n if (isLoadingInProgressProperty(inProgress)) {\n progressBarService.hide();\n }\n })\n );\n }\n\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\n if (!mlp) return false;\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\n ? mlp.showProgress\n : true;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class MonkeyEcxHttpConfigInterceptorModule {\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\n return {\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\n multi: true,\n },\n ],\n };\n }\n}\n","export interface Link {\n href: string;\n type: string;\n}\n\nexport class MonkeyEcxModel {\n _links: any;\n\n public getAction(type: string): Link | null {\n const { _links } = this;\n if (!_links) return null;\n const link = _links[type.toLowerCase()];\n return link;\n }\n}\n","/* eslint-disable indent */\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\n\n@NgModule()\nexport class MonkeyEcxConfigModule {\n constructor(\n @Optional()\n @SkipSelf()\n parentModule: MonkeyEcxConfigModule\n ) {\n if (parentModule) {\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\n }\n }\n\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\n return {\n ngModule: MonkeyEcxConfigModule,\n providers: [MonkeyEcxConfigService]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxLoggedHandlingService {\n private schedules: MonkeyEcxRequestSchedule[] = [];\n\n constructor() {\n // not to do\n }\n\n private destroySchedule() {\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\n clearInterval(sch.interval);\n });\n this.schedules = [];\n }\n\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\n this.schedules = sch;\n }\n\n public destroy() {\n this.destroySchedule();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadHandlingService {\n private download: MonkeyEcxRequestDownload[] = [];\n\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\n\n constructor() {\n this.download$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownload) {\n this.download.push(q);\n this.download$.next(this.download);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved\n .map((val: any) => {\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || MonkeyEcxDownloadEvents.Finished\n };\n }\n return valSaved;\n }\n return null;\n })\n .filter((_: any) => {\n return _;\n })\n ];\n\n this.download = this.download.filter((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n this.download$.next(this.download);\n }\n\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n const saved = [...this.download];\n this.download = [\n ...saved.map((val: any) => {\n const valSaved = {\n ...val\n };\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\n const totalPercentage = 100;\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n loaded,\n total,\n currentPercentage: currentPecentage,\n totalPercentage\n };\n }\n return valSaved;\n })\n ];\n this.download$.next(this.download);\n }\n\n public set(q: MonkeyEcxRequestDownload) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownload[]> {\n return this.download$.asObservable();\n }\n\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\n this.updateItem(q, loaded, total);\n }\n\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.download.find((_: any) => {\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { Statics } from '../../utils';\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxRequestDownloadedHandlingService {\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\n\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\n\n constructor() {\n this.downloaded$ = new BehaviorSubject([]);\n }\n\n private addTo(q: MonkeyEcxRequestDownloaded) {\n this.downloaded.push(q);\n this.downloaded$.next(this.downloaded);\n }\n\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\n const saved = [...this.downloaded];\n this.downloaded = [\n ...saved.map((val: any) => {\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\n const valSaved = {\n ...val\n };\n if (valSaved.item.id === q.item.id) {\n return {\n ...valSaved,\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\n action: q.action\n };\n }\n return valSaved;\n }\n return val;\n })\n ];\n this.downloaded$.next(this.downloaded);\n }\n\n public set(q: MonkeyEcxRequestDownloaded) {\n this.addTo(q);\n }\n\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\n return this.downloaded$.asObservable();\n }\n\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\n this.markItemAsFinish(q, status);\n }\n\n public hasDownloadOnGoing(): boolean {\n const found = this.downloaded.find((_: any) => {\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\n });\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, ActivatedRouteSnapshot } from '@angular/router';\nimport { MonkeyEcxUtils } from '../../utils/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxDiscoveryParamsService {\n constructor(private router: Router) {\n // not to do\n }\n\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.getLastChild(route.firstChild);\n }\n\n return route;\n }\n\n public setData(field: string, value: any): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n route.data[field] = value;\n }\n\n public getData(field: string): any {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\n return found;\n }\n\n public getDataFromCurrentNavigation(field: string): any {\n const navigation = this.router.getCurrentNavigation();\n let state: any = null;\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\n state = navigation?.extras.state;\n }\n\n return state ? state[field] : null;\n }\n\n public getParam(param: string): string | null {\n const { root } = this.router.routerState.snapshot;\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\n ? route?.paramMap?.get(param) || ''\n : '';\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\n return found;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\nimport { MonkeyEcxUtils } from '../../utils/utils';\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MonkeyEcxRequestScheduleService {\n private schedule: (MonkeyEcxRequestSchedule | any)[] = [];\n\n constructor(\n public monkeyecxService: MonkeyEcxService,\n private monkeyecxLoggedHandlingService: MonkeyEcxLoggedHandlingService\n ) {\n // not to do\n }\n\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\n this.schedule.push(q);\n this.monkeyecxLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\n clearInterval(q.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch,\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n }),\n ].filter((_: any) => {\n return _;\n });\n this.monkeyecxLoggedHandlingService.addSchedule(this.schedule);\n }\n\n private removeFromScheduleById(id: string) {\n const q = this.getScheduleById(id);\n clearInterval(q.interval);\n const saved = [...this.schedule];\n this.schedule = [\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\n const savedLocal = {\n ...sch,\n };\n if (sch.id === q.id) {\n return null;\n }\n return savedLocal;\n }),\n ].filter((_: any) => {\n return _;\n });\n this.monkeyecxLoggedHandlingService.addSchedule(this.schedule);\n }\n\n @MonkeyEcxCoreService({\n httpResponse: {\n httpCodeIgnore: [400, 403, 404, 500, 503],\n },\n requestInProgress: {\n showProgress: false,\n },\n })\n private doCall(sch: MonkeyEcxRequestSchedule) {\n const { url, method, params, data, action } = sch;\n\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\n (resp: any) => {\n action(\n {\n ...data,\n ...resp,\n },\n sch\n );\n },\n () => {\n this.removeFromSchedule(sch);\n }\n );\n }\n\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\n const interval = setInterval(() => {\n this.doCall({\n ...q,\n interval,\n });\n }, delay);\n\n const sch = {\n ...q,\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\n interval,\n };\n\n this.addToSchedule(sch);\n return sch;\n }\n\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\n this.removeFromSchedule(q);\n }\n\n public removeScheduleById(id: string) {\n this.removeFromScheduleById(id);\n }\n\n public getScheduleById(id: string) {\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\n return sch.id === id;\n });\n return q;\n }\n}\n","import { MonkeyEcxUtils } from '../utils/utils';\n\n/* eslint-disable no-unused-vars */\nexport enum OpSearch {\n LIKE = ':*:value*',\n BETWEEN = ':first AND :last',\n OR = 'OR',\n AND = 'AND',\n GT = '>:value',\n LT = '<:value',\n EQUAL = '::value'\n}\n\nexport class MonkeyEcxSpecificationSearch {\n constructor() {\n // not to do\n }\n\n private handleValue(value: any) {\n return Object.entries(value).map(([key, value1]) => {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\n return null;\n }\n if (Array.isArray(value1)) {\n if (key === OpSearch.BETWEEN) {\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\n }\n }\n return `${key}`.replace(':value', `${value1}`);\n })[0];\n }\n\n private queryVisitor(value: any): any {\n const okay = Object.entries(value).map(([key1, value1]) => {\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\n const join = (value1 as any[])\n .map((_: any) => {\n return Object.entries(_).map(([key2, value2]) => {\n if (value2 instanceof Object) {\n value2 = this.handleValue(value2);\n }\n return this.criteriaParser(key2, value2);\n })[0];\n })\n .filter((_: any) => {\n return _;\n })\n .join(` ${key1} `);\n return `${join ? `(${join})` : ''}`;\n }\n if (value1 instanceof Object) {\n value1 = this.handleValue(value1);\n }\n return this.criteriaParser(key1, value1);\n });\n return okay\n .filter((_: any) => {\n return _;\n })\n .join(' AND ');\n }\n\n private criteriaParser(key: string, value: any | any[]) {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n return '';\n }\n if (value instanceof Object) {\n return this.queryVisitor(value);\n }\n return `${key}${value}`;\n }\n\n public build(spec: any): string {\n try {\n return this.queryVisitor(spec);\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL) {\n let self: any = this;\n try {\n if (!self[field]) return [];\n\n const filters = self[field]?.split(',')?.map((filter: string) => {\n if (!filter) return null;\n return {\n [field]: {\n [op]: `${filter}`\n }\n };\n }).filter((val: any) => { return val; });\n return filters || [];\n } catch (e) {\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\nimport {\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideModule,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n} from 'monkey-style-guide';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { ClosedToMaintenanceModule } from './components/closed-to-maintenance/closed-to-maintenance.module';\nimport { VersionChangedModule } from './components/version-changed/version-changed.module';\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n TranslateModule.forRoot(),\n MonkeyEcxConfigModule.forRoot(),\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\n MonkeyEcxErrorHandlingModule.forRoot(),\n MonkeyStyleGuideModule,\n ServiceWorkerModule.register('ngsw-worker.js'),\n ClosedToMaintenanceModule,\n VersionChangedModule\n ],\n providers: [\n MonkeyStyleGuideModalService,\n MonkeyStyleGuideSettingsService,\n MonkeyStyleGuideSnackbarService\n ]\n})\nexport class MonkeyFrontCoreModuleModule {}\n","/*\n * Public API Surface of monkey-front-core\n */\nexport * from './lib/components';\nexport * from './lib/core';\nexport * from './lib/monkey-front-core.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["moment","Statics.MonkeyEcxQueueEvents","Statics.MonkeyEcxUploadEvents","DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties","DecoratorsUtils.buildQueuePropertys","DecoratorsUtils.buildDownloadPropertys","DecoratorsUtils.buildUploadPropertys","window","Statics.MonkeyEcxDownloadEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACa,cAAc;IACzB,OAAO,yBAAyB,CAAC,EAAO;QACtC,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;KACrD;IAED,OAAO,eAAe,CAAC,GAAW,EAAE,OAAgB;QAClD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACnC,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;KAC1C;IAED,OAAO,eAAe,CAAC,IAAY;QACjC,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,gBAAgB,CAAC;QAC5C,OAAO,oBAAoB,CAAC;KAC7B;IAED,OAAO,sBAAsB,CAAC,GAAW,EAAE,QAAkB,EAAE,OAAgB;QAC7E,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QACrB,IAAI,QAAQ,GAAW,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,aAAa,CAAC,CAAC;YAC1E,OAAO,GAAG,QAAQ,EAAE,CAAC;SACtB;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,QAAQ,GAAG,GAAG;iBACX,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;iBAChC,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC;iBAC5C,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC;iBAClC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SACpC;aAAM;YACL,QAAQ,GAAG,GAAG;iBACX,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;iBAChC,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC;iBAC5C,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;SACvC;QAED,OAAO,GAAG,QAAQ,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;KACzE;IAED,OAAO,gBAAgB,CAAC,KAAa,EAAE,KAAa,OAAO;;QACzD,MAAM,KAAK,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,EAAE,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KAClD;IAED,OAAO,cAAc,CAAC,QAAa;QACjC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;gBAChD,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;YAC7D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;gBACjD,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACpD,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;YAC7D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;gBAChD,OAAO,KAAK,CAAC;aACd;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;YAC9D,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;gBAChD,OAAO,KAAK,CAAC;aACd;YAED,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;KACd;IAEM,OAAO,UAAU,CAAC,QAAgB;QACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1D,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE1D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,MAAM,MAAM,GAAG,CAAC,GAAW;YACzB,MAAM,KAAK,GAAW,GAAG,GAAG,EAAE,CAAC;YAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE5D,GAAG,IAAI,KAAK,CAAC;gBAEb,IAAI,IAAI,GAAG,CAAC,EAAE;oBACZ,IAAI,IAAI,CAAC,CAAC;iBACX;qBAAM;oBACL,IAAI,GAAG,CAAC,CAAC;iBACV;aACF;YAED,MAAM,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;YACnC,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC;YAClC,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC;YAClC,OAAO,GAAG,UAAU,EAAE,CAAC;SACxB,CAAC;QAEF,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,MAAM,KAAK,GAAG,CAAC;KACvB;IAED,OAAO,UAAU,CAAC,GAAW;QAC3B,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,4HAA4H,CAC7H,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACxB;IAED,OAAO,cAAc,CAAC,OAAe;QACnC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;KAC1D;IAED,OAAO,eAAe,CAAC,GAAW,EAAE,OAAgB;QAClD,OAAO,GAAG,OAAO,IAAI,gEAAgE,CAAC;QAEtF,MAAM,YAAY,GAAW,IAAI,KAAK,CAAC,GAAG,CAAC;aACxC,IAAI,CAAC,GAAG,CAAC;aACT,GAAG,CAAC;YACH,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,CAAC,CAAC,CAAC;SACrE,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,YAAY,CAAC;KACrB;IAED,OAAO,iBAAiB,CAAC,KAAU;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;KACjD;IAED,OAAO,sBAAsB,CAAC,KAAU;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;KAC3D;IAED,OAAO,UAAU,CAAC,KAAa;QAC7B,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D;IAED,OAAO,aAAa,CAAC,OAAe;QAClC,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAW,OAAO;aAC7B,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC;aAChC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO,GAAG,QAAQ,EAAE,CAAC;KACtB;IAED,OAAO,cAAc,CAAC,IAAY;QAChC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE;YAC1B,IAAI,IAAI,IAAI,CAAC;SACd;QACD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE;IAED,OAAO,OAAO,CAAC,IAAW;QACxB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,cAAc,CAAC,OAAY,EAAE,QAAgB,EAAE,QAAgB;QACpE,SAAS,UAAU,CAAC,OAAY,EAAE,QAAgB;YAChD,MAAM,CAAC,GAAG,OAAO,CAAC;YAClB,CAAC,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;YAClB,OAAO,CAAC,CAAC;SACV;QAED,IAAI,IAAS,CAAC;QACd,IAAI,CAAE,SAAiB,CAAC,UAAU,EAAE;YAClC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE;gBACnC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBACzB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,QAAQ,CAAC,IAAY,EAAE,YAAoB,EAAE;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC;QAC1B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QAErC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;KACtE;IAED,OAAO,WAAW;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAI,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,QAAgB;QAClC,MAAM,WAAW,GAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,OAAO,CAAC,WAAW,IAAI,EAAE,MAAM,QAAQ,CAAC;KACzC;;;ACnOH,MAAMA,QAAM,GAAQ,OAAO,CAAC;MAKf,gCAAgC;IAC3C,SAAS,CAAC,IAAgB,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,SAAS;QAC7E,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/D,IAAI,QAAQ,GAAQA,QAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,QAAQ,GAAGA,QAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;YACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,QAAQ,GAAG,KAAK,CAAC;aAClB;SACF;QACD,MAAM,UAAU,GAAG,aAAa,QAAQ,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,aAAa,QAAQ,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7D,OAAO,GAAGA,QAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;KACnE;;6HAdU,gCAAgC;2HAAhC,gCAAgC;2FAAhC,gCAAgC;kBAH5C,IAAI;mBAAC;oBACJ,IAAI,EAAE,8BAA8B;iBACrC;;;MCEY,4BAA4B;IANzC;QAOW,WAAM,GAA6B,IAAI,CAAC;QAIjD,oBAAe,GAAmC,IAAI,CAAC;KASxD;IAPC,QAAQ;;QACN,IAAI,CAAC,eAAe,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC;KAC1C;IAED,OAAO;QACL,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAC5B;;yHAbU,4BAA4B;6GAA5B,4BAA4B,2HCVzC,woCAwBe;2FDdF,4BAA4B;kBANxC,SAAS;+BACE,iCAAiC,iBAG5B,iBAAiB,CAAC,IAAI;8BAG5B,MAAM;sBAAd,KAAK;gBAEG,QAAQ;sBAAhB,KAAK;;;MEPK,6BAA6B;IACxC,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/D,OAAO,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC9C;;0HAJU,6BAA6B;wHAA7B,6BAA6B;2FAA7B,6BAA6B;kBAHzC,IAAI;mBAAC;oBACJ,IAAI,EAAE,2BAA2B;iBAClC;;;MCAY,0BAA0B;IACrC,SAAS,CAAC,EACR,OAAO,EACP,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,KAAK,GAQN;QACC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;aACjD,MAAM,CAAC,CAAC,CAAS;YAChB,OAAO,CAAC,CAAC;SACV,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;;uHApBU,0BAA0B;qHAA1B,0BAA0B;2FAA1B,0BAA0B;kBAHtC,IAAI;mBAAC;oBACJ,IAAI,EAAE,wBAAwB;iBAC/B;;;ACJD;MAOa,6BAA6B;IACxC,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;;KAE/C;IAEM,SAAS,CAAC,IAAY,EAAE,KAAU;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACvE;IAEM,SAAS,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACrC;IAEM,YAAY,CAAC,IAAY;QAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACtC;;0HAhBU,6BAA6B;8HAA7B,6BAA6B,cAF5B,MAAM;2FAEP,6BAA6B;kBAHzC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCCY,2BAA2B;IACtC,YAAoB,QAAkB,EAAU,YAA0B;QAAtD,aAAQ,GAAR,QAAQ,CAAU;QAAU,iBAAY,GAAZ,YAAY,CAAc;;KAEzE;IAED,SAAS,CAAC,KAAU;QAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC/D;;wHAXU,2BAA2B;sHAA3B,2BAA2B;2FAA3B,2BAA2B;kBAHvC,IAAI;mBAAC;oBACJ,IAAI,EAAE,yBAAyB;iBAChC;;;MCAY,2BAA2B;IACtC,SAAS,CAAC,QAAgB,EAAE,QAAgB;QAC1C,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACnE,OAAO,cAAc,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAClE;;wHAJU,2BAA2B;sHAA3B,2BAA2B;2FAA3B,2BAA2B;kBAHvC,IAAI;mBAAC;oBACJ,IAAI,EAAE,yBAAyB;iBAChC;;;MCEY,yBAAyB;IACpC,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QAEjE,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;KAC7C;;sHALU,yBAAyB;oHAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,IAAI;mBAAC;oBACJ,IAAI,EAAE,uBAAuB;iBAC9B;;;MCDY,wBAAwB;IACnC,SAAS,CAAC,KAAa;QACrB,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAElD,IAAI,QAAQ,GAAG,EAAE,CAAC;YAElB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBACrB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;aAC/E;iBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC5B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;aAC/E;iBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC5B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;aACnE;iBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;aACnE;iBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;aACtE;iBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;aAC3D;iBAAM,IAAI,KAAK,KAAK,EAAE,EAAE;gBACvB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC3C;YACD,OAAO,QAAQ,CAAC;SACjB;QACD,OAAO,EAAE,CAAC;KACX;;qHAzBU,wBAAwB;mHAAxB,wBAAwB;2FAAxB,wBAAwB;kBAHpC,IAAI;mBAAC;oBACJ,IAAI,EAAE,sBAAsB;iBAC7B;;;MCEY,uBAAuB;IAClC,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;KAC/C;;oHALU,uBAAuB;kHAAvB,uBAAuB;2FAAvB,uBAAuB;kBAHnC,IAAI;mBAAC;oBACJ,IAAI,EAAE,qBAAqB;iBAC5B;;;MCCY,+BAA+B;IAC1C,SAAS,CAAC,QAAgB;QACxB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACnE,OAAO,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KACjD;;4HAJU,+BAA+B;0HAA/B,+BAA+B;2FAA/B,+BAA+B;kBAH3C,IAAI;mBAAC;oBACJ,IAAI,EAAE,6BAA6B;iBACpC;;;MCCY,oBAAoB;IAC/B,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC;KACf;;iHAJU,oBAAoB;+GAApB,oBAAoB;2FAApB,oBAAoB;kBAHhC,IAAI;mBAAC;oBACJ,IAAI,EAAE,sBAAsB;iBAC7B;;;MCCY,0BAA0B;IACrC,SAAS,CAAC,OAAe;QACvB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAClE,OAAO,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAC9C;;uHAJU,0BAA0B;qHAA1B,0BAA0B;2FAA1B,0BAA0B;kBAHtC,IAAI;mBAAC;oBACJ,IAAI,EAAE,wBAAwB;iBAC/B;;;MCAY,yBAAyB;IACpC,SAAS,CAAC,IAAY,EAAE,YAAoB,EAAE;QAC5C,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC;QAC1B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QAErC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;KACtE;;sHAVU,yBAAyB;oHAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,IAAI;mBAAC;oBACJ,IAAI,EAAE,uBAAuB;iBAC9B;;;MCCY,wBAAwB;IACnC,SAAS,CAAC,MAAc,EAAE,SAAiB;QACzC,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,MAAM,EAAE,CAAC;KAC3D;;qHAHU,wBAAwB;mHAAxB,wBAAwB;2FAAxB,wBAAwB;kBAHpC,IAAI;mBAAC;oBACJ,IAAI,EAAE,sBAAsB;iBAC7B;;;ACCD,MAAMA,QAAM,GAAQ,OAAO,CAAC;MAKf,4BAA4B;IAGvC,YAAoB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAF9B,SAAI,GAAG,OAAO,CAAC;QAGrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;KAC/C;IAEO,MAAM,CAAC,IAAmB;;QAChC,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/D,IAAI,QAAQ,GAAQA,QAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACtD,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,EAAE,0CAAE,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,CAAC,EAAE;YACvC,QAAQ,GAAG,IAAI,CAAC;SACjB;QACD,MAAM,UAAU,GAAG,YAAY,CAAC;QAChC,MAAM,GAAG,GAAGA,QAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,GAAG,GAAG,WAAW,GAAG,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;KAC/E;IAED,SAAS,CAAC,GAAQ;QAChB,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAA,IAAI,EAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,CAAA;YAAE,OAAO,EAAE,CAAC;QAChD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,GAAG,aAAa,MAAM,WAAW,EAAE,CAAC;KAC5C;;yHA5BU,4BAA4B;uHAA5B,4BAA4B;2FAA5B,4BAA4B;kBAHxC,IAAI;mBAAC;oBACJ,IAAI,EAAE,0BAA0B;iBACjC;;;MC2CY,oBAAoB;;iHAApB,oBAAoB;kHAApB,oBAAoB,iBAjC7B,6BAA6B;QAC7B,0BAA0B;QAC1B,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,2BAA2B;QAC3B,yBAAyB;QACzB,wBAAwB;QACxB,uBAAuB;QACvB,+BAA+B;QAC/B,oBAAoB;QACpB,0BAA0B;QAC1B,yBAAyB;QACzB,wBAAwB,aAGxB,6BAA6B;QAC7B,0BAA0B;QAC1B,2BAA2B;QAC3B,gCAAgC;QAChC,4BAA4B;QAC5B,2BAA2B;QAC3B,yBAAyB;QACzB,wBAAwB;QACxB,uBAAuB;QACvB,+BAA+B;QAC/B,oBAAoB;QACpB,0BAA0B;QAC1B,yBAAyB;QACzB,wBAAwB;kHAIf,oBAAoB,aAFpB,CAAC,YAAY,CAAC;2FAEd,oBAAoB;kBAnChC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,6BAA6B;wBAC7B,0BAA0B;wBAC1B,2BAA2B;wBAC3B,gCAAgC;wBAChC,4BAA4B;wBAC5B,2BAA2B;wBAC3B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;wBACvB,+BAA+B;wBAC/B,oBAAoB;wBACpB,0BAA0B;wBAC1B,yBAAyB;wBACzB,wBAAwB;qBACzB;oBACD,OAAO,EAAE;wBACP,6BAA6B;wBAC7B,0BAA0B;wBAC1B,2BAA2B;wBAC3B,gCAAgC;wBAChC,4BAA4B;wBAC5B,2BAA2B;wBAC3B,yBAAyB;wBACzB,wBAAwB;wBACxB,uBAAuB;wBACvB,+BAA+B;wBAC/B,oBAAoB;wBACpB,0BAA0B;wBAC1B,yBAAyB;wBACzB,wBAAwB;qBACzB;oBACD,SAAS,EAAE,CAAC,YAAY,CAAC;iBAC1B;;;MC1BY,yBAAyB;;sHAAzB,yBAAyB;uHAAzB,yBAAyB,iBAZrB,4BAA4B,aAEzC,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,oBAAoB,mCAGZ,4BAA4B;uHAE3B,yBAAyB,YAX3B;YACP,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,oBAAoB;YACpB,eAAe,CAAC,QAAQ,EAAE;SAC3B;2FAGU,yBAAyB;kBAbrC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;oBAC5C,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;wBAChB,iBAAiB;wBACjB,iBAAiB;wBACjB,oBAAoB;wBACpB,eAAe,CAAC,QAAQ,EAAE;qBAC3B;oBACD,OAAO,EAAE,CAAC,4BAA4B,CAAC;iBACxC;;;MCVY,2BAA2B;IAGtC,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAF1B,YAAO,GAAgC,IAAI,CAAC;QAGlD,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAEO,IAAI;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,MAAM;aACf,IAAI,CACH,MAAM,CAAC,CAAC,KAAU;YAChB,OAAO,KAAK,YAAY,eAAe,CAAC;SACzC,CAAC,CACH;aACA,SAAS,CAAC;YACT,IAAI,CAAC,IAAI,EAAE,CAAC;SACb,CAAC,CAAC;QAEL,IAAI,CAAC,MAAM,CAAC,MAAM;aACf,IAAI,CACH,MAAM,CAAC,CAAC,KAAU;YAChB,QACE,KAAK,YAAY,aAAa;gBAC9B,KAAK,YAAY,eAAe;gBAChC,KAAK,YAAY,gBAAgB,EACjC;SACH,CAAC,CACH;aACA,SAAS,CAAC;YACT,IAAI,CAAC,IAAI,EAAE,CAAC;SACb,CAAC,CAAC;KACN;IAED,IAAI;;QACF,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,IAAI;;QACF,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,aAAa;;QACX,OAAO,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,EAAE,KAAI,IAAI,CAAC;KAC7C;;wHA7CU,2BAA2B;4HAA3B,2BAA2B,cAF1B,MAAM;2FAEP,2BAA2B;kBAHvC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCJY,6BAA6B;IAGxC,YAAoB,kBAA+C;QAA/C,uBAAkB,GAAlB,kBAAkB,CAA6B;QAFnE,YAAO,GAAY,KAAK,CAAC;;KAIxB;IAED,QAAQ;;QACN,MAAA,MAAA,IAAI,CAAC,kBAAkB,0CAAE,aAAa,EAAE,0CAAE,SAAS,CAAC,CAAC,OAAgB;YACnE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB,CAAC,CAAC;KACJ;;0HAXU,6BAA6B;8GAA7B,6BAA6B,8DCT1C,+HAGA;2FDMa,6BAA6B;kBANzC,SAAS;+BACE,wBAAwB,iBAGnB,iBAAiB,CAAC,IAAI;;;MEE1B,0BAA0B;;uHAA1B,0BAA0B;wHAA1B,0BAA0B,iBAJtB,6BAA6B,aAClC,YAAY,aACZ,6BAA6B;wHAE5B,0BAA0B,YAH5B,CAAC,YAAY,CAAC;2FAGZ,0BAA0B;kBALtC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,6BAA6B,CAAC;oBAC7C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,6BAA6B,CAAC;iBACzC;;;MCCY,uBAAuB;IANpC;QAOW,WAAM,GAA6B,IAAI,CAAC;KAOlD;IAHC,OAAO;QACL,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAC5B;;oHAPU,uBAAuB;wGAAvB,uBAAuB,qHCTpC,kxBAiBe;2FDRF,uBAAuB;kBANnC,SAAS;+BACE,2BAA2B,iBAGtB,iBAAiB,CAAC,IAAI;8BAG5B,MAAM;sBAAd,KAAK;gBAEG,QAAQ;sBAAhB,KAAK;;;MEWK,oBAAoB;;iHAApB,oBAAoB;kHAApB,oBAAoB,iBAXhB,uBAAuB,aAEpC,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB,mCAGT,uBAAuB;kHAEtB,oBAAoB,YAVtB;YACP,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,eAAe,CAAC,QAAQ,EAAE;SAC3B;2FAGU,oBAAoB;kBAZhC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;oBACvC,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;wBAChB,iBAAiB;wBACjB,iBAAiB;wBACjB,eAAe,CAAC,QAAQ,EAAE;qBAC3B;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;iBACnC;;;ACtBD;AACA;SACgB,mBAAmB,CAAC,MAAM,GAAG,IAAI;IAC/C,OAAO,CACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,UAAS,GAAG,IAAW;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC;YACrB,IAAI,MAAM,EAAE;gBACV,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnD,aAAa,CAAC,OAAO,CAAC,CAAC,MAAW;oBAChC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvB,IAAI,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE;wBAC5C,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;qBAC9D;iBACF,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,GAAG,GAAG,0CAA0C,CAAC;gBACtD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;gBAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,EAAE,GAAG,2BAA2B,CAAC;gBACtC,IAAI,CAAC,MAAM,GAAG;oBACZ,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC7B,CAAC;gBACF,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC5D;iBAAM;gBACL,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnD,aAAa,CAAC,OAAO,CAAC,CAAC,MAAW;oBAChC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvB,IAAI,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE;wBAC5C,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;qBAC9D;iBACF,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC7B;SACF,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ;;AC7CA;AAKA,MAAMA,QAAM,GAAQ,OAAO,CAAC;MAEf,aAAa;IACxB,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,MAAM,UAAU,GAAG,YAAY,CAAC;YAChC,IACE,CAACA,QAAM;iBACJ,OAAO,CACNA,QAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAChD,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,EAC1C,IAAI,CACL;iBACA,OAAO,EAAE,EACZ;gBACA,OAAO;oBACL,WAAW,EAAE,IAAI;iBAClB,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC;KACb;CACF;MAEY,iBAAiB;IAC5B,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,OAAO;oBACL,cAAc,EAAE,IAAI;iBACrB,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC;KACb;CACF;MAEY,oBAAoB;IAC/B,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC7C,OAAO;oBACL,UAAU,EAAE,IAAI;iBACjB,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC;KACb;CACF;MAEY,gBAAgB;IAC3B,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,OAAO;oBACL,cAAc,EAAE,IAAI;iBACrB,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC;KACb;CACF;MAEY,cAAc;IACzB,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAClD,OAAO;YACL,YAAY,EAAE,IAAI;SACnB,CAAC;KACH;CACF;MAEY,eAAe;IAC1B,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO;YACL,WAAW,EAAE,IAAI;SAClB,CAAC;KACH;CACF;MAEY,uBAAuB;IAClC,OAAO,EAAE,CAAC,OAAwB;;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAU,CAAC,0CAAE,KAAK,CAAC;QAChD,MAAM,eAAe,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,iBAAiB,CAAC,0CAAE,KAAK,CAAC;QAC9D,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,QAAQ,KAAK,eAAe;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO;YACL,oBAAoB,EAAE,IAAI;SAC3B,CAAC;KACH;CACF;MAEY,YAAY;IACvB,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC7C,OAAO;oBACL,UAAU,EAAE,IAAI;iBACjB,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC;KACb;CACF;MAEY,yBAAyB;IACpC,OAAO,EAAE,CAAC,OAAwB;;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,MAAM,UAAU,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,WAAW,CAAC,0CAAE,KAAK,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,SAAS,CAAC,0CAAE,KAAK,CAAC;QAC/C,IAAI,SAAS,GAAgB,IAAI,CAAC;QAClC,IAAI,OAAO,GAAgB,IAAI,CAAC;QAChC,IAAI,UAAU,EAAE;YACd,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;SAClC;QACD,IAAI,QAAQ,EAAE;YACZ,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,SAAS,GAAG,OAAO,EAAE;YACvB,OAAO;gBACL,0BAA0B,EAAE,IAAI;aACjC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;CACF;MAEY,uBAAuB;IAClC,OAAO,EAAE,CAAC,OAAwB;;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,MAAM,UAAU,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,WAAW,CAAC,0CAAE,KAAK,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,SAAS,CAAC,0CAAE,KAAK,CAAC;QAC/C,IAAI,SAAS,GAAgB,IAAI,CAAC;QAClC,IAAI,OAAO,GAAgB,IAAI,CAAC;QAChC,IAAI,UAAU,EAAE;YACd,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;SAClC;QACD,IAAI,QAAQ,EAAE;YACZ,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,OAAO,GAAG,SAAS,EAAE;YACvB,OAAO;gBACL,6BAA6B,EAAE,IAAI;aACpC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;CACF;MAEY,4BAA4B;IACvC,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,cAAc,EAAE;YAC/C,OAAO;gBACL,qBAAqB,EAAE,IAAI;aAC5B,CAAC;SACH;QAED,OAAO,IAAI,CAAC;KACb;CACF;MAEY,8BAA8B;IACzC,OAAO,EAAE,CAAC,OAAwB;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,gBAAgB,EAAE;YACjD,OAAO;gBACL,qBAAqB,EAAE,IAAI;aAC5B,CAAC;SACH;QAED,OAAO,IAAI,CAAC;KACb;CACF;MAEY,kBAAkB;IAC7B,OAAO,EAAE,CAAC,OAAwB;;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;YAC/B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,KAAK,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,GAAG,CAAC,OAAO,CAAC,0CAAE,KAAK,CAAC;QAEnD,IACE,KAAK;aACJ,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,SAAS,CAAC;gBACzD,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAC3D;YACA,OAAO;gBACL,gBAAgB,EAAE,IAAI;aACvB,CAAC;SACH;QAED,OAAO,IAAI,CAAC;KACb;;;;;;;;;;;;;;;;;;;;AC3NH;AACA;AACA,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,qEAAO,CAAA;IACP,uEAAQ,CAAA;IACR,yFAAiB,CAAA;AACnB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,2EAAO,CAAA;IACP,6EAAQ,CAAA;IACR,+FAAiB,CAAA;AACnB,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC;AAED,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,uEAAO,CAAA;IACP,yEAAQ,CAAA;IACR,2FAAiB,CAAA;AACnB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED;AACA,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,mDAAkB,CAAA;IAClB,yDAAwB,CAAA;IACxB,0DAAyB,CAAA;AAC3B,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,QAIxC;AAED;AACA,IAAY,8BAOX;AAPD,WAAY,8BAA8B;IACxC,oDAAkB,CAAA;IAClB,oEAAkC,CAAA;IAClC,gEAA8B,CAAA;IAC9B,0DAAwB,CAAA;IACxB,kEAAgC,CAAA;IAChC,2DAAyB,CAAA;AAC3B,CAAC,EAPW,8BAA8B,KAA9B,8BAA8B;;;;;;;;;;;SCnB1B,mBAAmB,CAAC,KAAgC;IAClE,MAAM,MAAM,GAA0B;QACpC,IAAI,kCACC,KAAK,KACR,EAAE,EAAE,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,GACvC;QACD,MAAM,EAAEC,oBAA4B,CAAC,OAAO;KAC7C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;SAEe,sBAAsB,CACpC,IAAY,EACZ,WAAoB,EACpB,IAAa;IAEb,MAAM,MAAM,GAA6B;QACvC,IAAI,EAAE;YACJ,IAAI;YACJ,WAAW;YACX,EAAE,EAAE,GAAG,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;YAC3C,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB;QACD,MAAM,EAAEA,oBAA4B,CAAC,OAAO;KAC7C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;SAEe,oBAAoB,CAAC,IAAY,EAAE,WAAoB;IACrE,MAAM,MAAM,GAA2B;QACrC,IAAI,EAAE;YACJ,IAAI;YACJ,WAAW;YACX,EAAE,EAAE,GAAG,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;SAC5C;QACD,MAAM,EAAEC,qBAA6B,CAAC,OAAO;KAC9C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;SAEe,wCAAwC,CAAC,OAAY;IACnE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAC3E;;;;;;;;;;ACnDA,MAAM,MAAM,GAAQ,OAAO,CAAC;AAE5B,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,SAAS,iBAAiB,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7C,CAAC;SAEe,cAAc,CAAC,OAAwB;IACrD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO;QACL,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;SAEe,kBAAkB,CAAC,OAAwB;;IACzD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IAED,MAAM,KAAK,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,GAAG,CAAC,OAAO,CAAC,0CAAE,KAAK,CAAC;IACnD,IACE,KAAK;SACJ,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC;YAC1D,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,EAC5D;QACA,OAAO;YACL,SAAS,EAAE,IAAI;SAChB,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,iBAAiB,CAAC,OAAwB,EAAE,IAAY;IACtE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;QAC/D,OAAO;YACL,qBAAqB,EAAE,IAAI;SAC5B,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,qBAAqB,CAAC,OAAwB;;IAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,MAAM,UAAU,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,WAAW,CAAC,0CAAE,KAAK,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,SAAS,CAAC,0CAAE,KAAK,CAAC;IAC/C,IAAI,SAAS,GAAgB,IAAI,CAAC;IAClC,IAAI,OAAO,GAAgB,IAAI,CAAC;IAChC,IAAI,UAAU,EAAE;QACd,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;KAClC;IACD,IAAI,QAAQ,EAAE;QACZ,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,SAAS,GAAG,OAAO,EAAE;QACvB,OAAO;YACL,0BAA0B,EAAE,IAAI;SACjC,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,YAAY,CAAC,OAAwB;IACnD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC7C,OAAO;YACL,GAAG,EAAE,IAAI;SACV,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,wBAAwB,CAAC,OAAwB;;IAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAU,CAAC,0CAAE,KAAK,CAAC;IAChD,MAAM,eAAe,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,iBAAiB,CAAC,0CAAE,KAAK,CAAC;IAC9D,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,QAAQ,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAE9C,OAAO;QACL,oBAAoB,EAAE,IAAI;KAC3B,CAAC;AACJ,CAAC;SAEe,aAAa,CAAC,OAAwB;IACpD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAEpD,OAAO;QACL,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC;SAEe,cAAc,CAAC,OAAwB;IACrD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAElD,OAAO;QACL,YAAY,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;SAEe,gBAAgB,CAAC,OAAwB;IACvD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;QAC5B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjD,OAAO;gBACL,cAAc,EAAE,IAAI;aACrB,CAAC;SACH;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,iBAAiB,CAC/B,OAAwB,EACxB,OAAe;IAEf,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjD,OAAO;gBACL,cAAc,EAAE,IAAI;aACrB,CAAC;SACH;KACF;SAAM,IAAI,OAAO,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO;gBACL,cAAc,EAAE,IAAI;aACrB,CAAC;SACH;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,aAAa,CAAC,OAAwB;IACpD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjF,MAAM,UAAU,GAAG,YAAY,CAAC;IAChC,IACE,CAAC,MAAM;SACJ,OAAO,CACN,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAChD,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,EAC1C,IAAI,CACL;SACA,OAAO,EAAE,EACZ;QACA,OAAO;YACL,WAAW,EAAE,IAAI;SAClB,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,oBAAoB,CAAC,OAAwB;IAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjF,IAAI,OAAO,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,KAAK,GAAG,EAAE;QAC1C,OAAO;YACL,2BAA2B,EAAE,IAAI;SAClC,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;MAEY,UAAU;IACrB,OAAO,KAAK,CAAC,OAAwB;QACnC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;KAChC;IAED,OAAO,SAAS,CAAC,OAAwB;QACvC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACpC;IAED,OAAO,qBAAqB,CAAC,OAAwB;QACnD,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC9C;IAED,OAAO,mBAAmB,CAAC,OAAwB;QACjD,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAC5C;IAED,OAAO,YAAY,CAAC,OAAwB;QAC1C,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;KACvC;IAED,OAAO,GAAG,CAAC,OAAwB;QACjC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;KAC9B;IAED,OAAO,eAAe,CAAC,OAAwB;QAC7C,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;KAC1C;IAED,OAAO,IAAI,CAAC,OAAwB;QAClC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,OAAO,KAAK,CAAC,OAAwB;QACnC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,OAAwB;QACrC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;IAED,OAAO,UAAU,CAAC,OAAwB;QACxC,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,OAAO,UAAU,CAAC,OAAwB;QACxC,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,OAAO,IAAI,CAAC,OAAwB;QAClC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,OAAO,eAAe,CAAC,OAAwB;QAC7C,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;KACtC;;;ACzPH;;SCQgB,+BAA+B;IAC7C,OAAO,CAAC,MAAW;QACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,KAAK,aAAa,EAAE;gBACzB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,IAAW;oBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC;oBACrB,IAAIC,wCAAwD,CAAC,OAAO,CAAC,EAAE;wBACrE,OAAO,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;qBAC9D;oBACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,OAAO,MAAM,CAAC;iBACf,CAAC;aACH;SACF,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;KACf,CAAC;AACJ,CAAC;SAEe,gBAAgB,CAAC,EAAU;IACzC,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QACxC,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACjD,MAAM,MAAM,GAAG,IAAI;iBAChB,GAAG,CAAC,CAAC,CAAM;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC1B,CAAC;iBACD,IAAI,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,SAAS,YAAY,IAAI,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;SACf,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ,CAAC;SAEe,4BAA4B;IAC1C,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;YAC1B,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;gBACrE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,QAAQ,EAAE,CAAC;aACjE;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC;SACf,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ,CAAC;SAEe,oBAAoB,CAAC,MAAmC;IACtE,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;YAC1B,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;gBACrE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,QAAQ,EAAE,CAAC;gBAChE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,8BAA8B,CAAC,MAAM,CAAC,CAAC;aAC7F;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC;SACf,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ,CAAC;SAEe,yBAAyB,CAAC,MAAmC;IAC3E,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;YAC1B,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;gBACrE,MAAM,WAAW,GACf,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,8BAA8B,EAAE,CAAC;gBACxF,IAAI,YAAY,GAAG,IAAI,CAAC;gBACxB,IAAI,WAAW,EAAE;oBACf,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;iBACzC;gBACD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,QAAQ,EAAE,CAAC;gBAChE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,8BAA8B,iCAC9E,MAAM,IACL,YAAY,IAAI,EAAE,GACtB,CAAC;aACJ;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC;SACf,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ,CAAC;SAEe,yBAAyB,CACvC,IAAY,EACZ,WAAoB,EACpB,MAAoC;IAEpC,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;YAC1B,IAAIA,wCAAwD,CAAC,OAAO,CAAC,EAAE;gBACrE,IAAI,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;oBACpD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,QAAQ,EAAE,CAAC;oBAChE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,8BAA8B,CACjF,MAAM,CACP,CAAC;iBACH;gBACD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAC,wBAAwB,CAAC,wBAAwB,CACzEC,mBAAmC,CAAC;oBAClC,IAAI;oBACJ,WAAW;iBACZ,CAAC,CACH,CAAC;aACH;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC;SACf,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ;;AC9JA;SAOgB,wBAAwB,CACtC,IAAY,EACZ,WAAoB,EACpB,MAAoC;IAEpC,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;YAC1B,IAAID,wCAAwD,CAAC,OAAO,CAAC,EAAE;gBACrE,IAAI,WAAW,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;oBACjD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,QAAQ,EAAE,CAAC;oBAChE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,8BAA8B,CACjF,MAAM,CACP,CAAC;iBACH;gBACD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,2BAA2B,mBAC3EE,sBAAsC,CAAC,IAAI,EAAE,WAAW,CAAC,EAC5D,CAAC;aACJ;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC;SACf,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ;;ACtCA;SAOgB,sBAAsB,CACpC,IAAY,EACZ,WAAoB,EACpB,MAAoC;IAEpC,OAAO,UACL,MAAc,EACd,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAExC,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;;YACjD,MAAM,OAAO,GAAQ,IAAI,CAAC;YAC1B,IAAIF,wCAAwD,CAAC,OAAO,CAAC,EAAE;gBACrE,IAAI,WAAW,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;oBACjD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,QAAQ,EAAE,CAAC;oBAChE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,8BAA8B,CACjF,MAAM,CACP,CAAC;iBACH;gBACD,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,wBAAwB,0CAAE,yBAAyB,mBACzEG,oBAAoC,CAAC,IAAI,EAAE,WAAW,CAAC,EAC1D,CAAC;aACJ;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC;SACf,CAAC;QAEF,OAAO,kBAAkB,CAAC;KAC3B,CAAC;AACJ;;MCjCa,0BAA0B;IAHvC;QAIY,kBAAa,GAAsB,IAAI,YAAY,EAAO,CAAC;QAEtB,eAAU,GAAG,SAAS,CAAC;QAEhC,YAAO,GAAG,GAAG,CAAC;KA6BrD;IA1BC,UAAU,CAAC,GAAQ;QACjB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,CAAC;QACtB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAGM,WAAW,CAAC,GAAQ;QACzB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,CAAC;QACtB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;KACpB;IAGM,MAAM,CAAC,GAAQ;QACpB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,CAAC;QACtB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC;KACF;;uHAjCU,0BAA0B;2GAA1B,0BAA0B;2FAA1B,0BAA0B;kBAHtC,SAAS;mBAAC;oBACT,QAAQ,EAAE,qBAAqB;iBAChC;8BAEW,aAAa;sBAAtB,MAAM;gBAEwC,UAAU;sBAAxD,WAAW;uBAAC,wBAAwB;gBAEC,OAAO;sBAA5C,WAAW;uBAAC,eAAe;gBAG5B,UAAU;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;gBAS7B,WAAW;sBADjB,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBAS9B,MAAM;sBADZ,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;;MCnBrB,uBAAuB;IASlC,YAAoB,UAAsB,EAAU,QAAkB;QAAlD,eAAU,GAAV,UAAU,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAJ9D,iBAAY,GAAW,KAAK,CAAC;QAE7B,kBAAa,GAAW,OAAO,CAAC;QAGtC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC7D,gBAAgB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAM;YAC5D,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;SACxD,CAAC,CAAC;KACJ;IAEO,MAAM,CAAC,KAAU;QACvB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;KAC3F;IAED,QAAQ;QACN,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KAC5C;IAGD,OAAO,CAAC,KAAU;QAChB,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACpC;;oHAjCU,uBAAuB;wGAAvB,uBAAuB,sHAFvB,CAAC,YAAY,CAAC;2FAEd,uBAAuB;kBAJnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,2BAA2B;oBACrC,SAAS,EAAE,CAAC,YAAY,CAAC;iBAC1B;wHAgCC,OAAO;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC;;;MCvBnC,oBAAoB;IAK/B,YAA4B,GAAe,EAAU,SAAoB;QAA7C,QAAG,GAAH,GAAG,CAAY;QAAU,cAAS,GAAT,SAAS,CAAW;;KAExE;IAGD,SAAS,CAAC,GAAkB;;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACnE,MAAA,IAAI,CAAC,SAAS,+CAAd,IAAI,EAAa,KAAK,CAAC,CAAC;QACxB,GAAG,CAAC,cAAc,EAAE,CAAC;KACtB;IAGD,MAAM;;QACJ,MAAA,IAAI,CAAC,QAAQ,+CAAb,IAAI,CAAa,CAAC;KACnB;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;KACpE;IAED,gBAAgB,CAAC,EAAoB;QACnC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,iBAAiB,CAAC,EAAc;QAC9B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;IAED,gBAAgB,CAAC,UAAmB;QAClC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KAC5E;;iHApCU,oBAAoB;qGAApB,oBAAoB,kIAXpB;QACT;YACE,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,UAAU,CAAC;;gBAEtB,OAAO,oBAAoB,CAAC;aAC7B,CAAC;YACF,KAAK,EAAE,IAAI;SACZ;KACF;2FAEU,oBAAoB;kBAbhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,CAAC;;gCAEtB,4BAA4B;6BAC7B,CAAC;4BACF,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF;;;8BAMc,IAAI;;yBAKjB,SAAS;sBADR,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBASjC,MAAM;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;;MC3BrB,kCAAkC;IAC7C,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;;KAEzC;IAGD,aAAa,CAAC,KAAY;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,cAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACzF,IAAI,WAAW,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YACvD,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;;+HAbU,kCAAkC;mHAAlC,kCAAkC;2FAAlC,kCAAkC;kBAH9C,SAAS;mBAAC;oBACT,QAAQ,EAAE,6BAA6B;iBACxC;iGAOC,aAAa;sBADZ,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MCLtB,6BAA6B;IACxC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;;KAEzC;IAGD,aAAa,CAAC,KAAY;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpF,IAAI,WAAW,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YACvD,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;;0HAbU,6BAA6B;8GAA7B,6BAA6B;2FAA7B,6BAA6B;kBAHzC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;iBACnC;iGAOC,aAAa;sBADZ,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MCPtB,6BAA6B;IAOxC,YAAY,IAAa,EAAE,YAAoC,EAAE,MAAY;QAC3E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,YAAY,IAAI;YACjC,IAAI,EAAE,EAAE;SACT,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;KACrB;IAEO,wBAAwB,CAAC,MAAc,EAAE;QAC/C,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAChE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,GAAG,IAAI,IAAI,UAAU,CAAC;YAC9B,UAAU,EAAE,MAAM;SACnB,CAAC;aACC,MAAM,CAAC,MAAM,CAAC;aACd,MAAM,CAAC,MAAM,CAAC;aACd,QAAQ,EAAE,EAAE,CAAC;KACjB;IAEO,YAAY,CAAC,GAAW;QAC9B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,KAAI,EAAE,CAAC;QACjD,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC,qBAAqB,GAAG,GAAG,GAAG,GAAG,QAAQ,MAAM,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,EAAE,CAAC;KACtF;IAEM,yBAAyB;QAC9B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;KAClD;;;MChBU,uBAAuB;IAgDlC,YACS,gBAAmC,EACnC,YAA2C,EAC3C,SAWN;QAbM,qBAAgB,GAAhB,gBAAgB,CAAmB;QACnC,iBAAY,GAAZ,YAAY,CAA+B;QAC3C,cAAS,GAAT,SAAS,CAWf;QA7DK,kBAAa,GAAG,IAAI,CAAC;QAM7B,YAAO,GAAkC,IAAI,CAAC;QAE9C,mBAAc,GAAyC,IAAI,CAAC;QAE5D,WAAM,GAAkC,IAAI,CAAC;QAE7C,YAAO,GAAkC,IAAI,CAAC;QAI9C,mBAAc,GAAiC,IAAI,CAAC;QAEpD,uBAAkB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAErE,qBAAgB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEnE,2BAAsB,GAAyB,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAE1E,qBAAgB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEnE,sBAAiB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEpE,iCAA4B,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAE/E,4BAAuB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1E,yBAAoB,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAEvE,kBAAa,GAA2C,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAEhF,uBAAkB,GAAqC,IAAI,CAAC;QAE5D,eAAU,GAAoC,IAAI,CAAC;QAInD,yBAAoB,GAAa;;YAE/B,OAAO,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACxE,CAAC;QAkBA,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAEO,UAAU;;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SACxD;QAED,IAAI,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,EAAE;YAC1B,MAAM,EAAE,kBAAkB,EAAE,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,0CAAE,OAAO,KAAI;gBAClE,kBAAkB,EAAE,KAAK;aAC1B,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;iBACzB,IAAI,CACH,MAAM,CAAC,CAAC,KAAU;gBAChB,OAAO,KAAK,YAAY,eAAe,CAAC;aACzC,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,CACR;iBACA,SAAS,CAAC;;gBACT,IAAI,IAAI,CAAC,UAAU,IAAI,kBAAkB,EAAE;oBACzC,MAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,0CAAE,OAAO,0CAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACnE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;aACF,CAAC,CAAC;SACN;KACF;IAEO,OAAO;QACb,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;QAEpC,IAAI,CAAC,kBAAkB;YAAE,OAAO,EAAE,CAAC;QAEnC,IAAI,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,YAAY,MAAK,MAAM,EAAE;YAC/C,OAAO,eAAe,CAAC;SACxB;QAED,OAAO,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,KAAI,EAAE,CAAC;KACvC;IAEO,qBAAqB,CAAC,IAAS;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,WAAW,EAAE;YACf,GAAG,GAAG,IAAI,CAAC;YACX,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,GAAG,GAAG,KAAK,CAAC;aACb;SACF;aAAM;YACL,GAAG,GAAG,KAAK,CAAC;YACZ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,GAAG,GAAG,IAAI,CAAC;aACZ;SACF;QACD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,eAAe,EAAE;YACtE,GAAG,GAAG,IAAI,CAAC;SACZ;QACD,OAAO,GAAG,CAAC;KACZ;IAEO,mBAAmB,CAAC,UAAkB,EAAE,MAAe;QAC7D,MAAM,MAAM,GAAQ;YAClB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,kBAAkB;YACvB,GAAG,EAAE,kBAAkB;SACxB,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC1C;aAAM;YACL,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,CAAC,cAAc,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE;gBACnE,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAC;SACJ;KACF;IAED,OAAO,CAAC,YAAmC;QACzC,IAAI,CAAC,cAAc,mCACd,IAAI,CAAC,cAAc,GACnB,YAAY,CAChB,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IAED,QAAQ;;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CAAC,EAAC,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAA,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,cAAqB,CAAC;QAC5C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,MAAM,GAAG,UAAU,EAAE;YACvB,IAAI,CAAC,cAAc,mCACd,IAAI,CAAC,cAAc,KACtB,IAAI,kCACC,IAAI,KACP,MAAM,EAAE,MAAM,GAAG,CAAC,MAErB,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;KACd;IAED,eAAe,CAAC,IAAS,EAAE,KAAa;QACtC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,OAAO,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KAC5C;IAED,gBAAgB,CAAC,GAAW;QAC1B,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzC,OAAO,IAAI,6BAA6B,CACtC,GAAG,EACH,cAAc,IAAI,EAAE,EACpB,OAAO,CACR,CAAC,yBAAyB,EAAE,CAAC;KAC/B;IAED,KAAK,CAAC,SAAkB;;QACtB,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;gBAClC,IAAI,KAAK,EAAE;oBACT,MAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,0CAAE,OAAO,0CAAE,eAAe,CAAC,KAAK,CAAC,CAAC;iBACxD;gBACD,MAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,0CAAE,OAAO,0CAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;SACF;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IAED,OAAO,CACL,KAAoC,EACpC,KAAiC,EACjC,SAaC;;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC,KAAK,IAAI,EAAE;YAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SACxD;QAED,IAAI,IAAI,CAAC,qBAAqB,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC,EAAE;YACnD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ,0CAAE,OAAO,0CAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;YAED,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC;oBACX,IAAI,EAAE;wBACJ,MAAM,EAAE,CAAC;wBACT,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC,CAAC;aACJ;YAED,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB,EAAE;gBAC/B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB,CAAC;gBACtD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;aACnC;YAED,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,kBAAkB,EAAE;gBACjC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,kBAAkB,CAAC;aAC1D;YAED,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE;gBACtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC;gBAE5C,OAAO,CAAC,OAAO;qBACZ,IAAI,CACH,SAAS,CAAC;oBACR,OAAO,IAAI,CAAC,aAAa,CAAC;iBAC3B,CAAC,CACH;qBACA,SAAS,CAAC,CAAC,GAAY;oBACtB,IAAI,GAAG,EAAE;wBACP,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAEtC,IAAI,cAAc,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE;4BACrD,IAAI,CAAC,OAAO,EAAE;gCACZ,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC,CAAC;gCACjD,OAAO;6BACR;yBACF;wBACD,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,EAAE,CAAC;qBAC3B;iBACF,CAAC,CAAC;aACN;iBAAM;gBACL,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,EAAE,CAAC;aAC3B;SACF;aAAM;YACL,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC,CAAC;SAClD;KACF;IAED,2BAA2B;QACzB,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,YAAY,EAAE,MAAM;SACrB,CAAC;KACH;IAOD,aAAa,CAAC,IAAS,EAAE,IAAU,EAAE,QAAmB;;QACtD,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAEpC,MAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAG,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,0CAAE,SAAS,CACrE;YACE,IAAI,QAAQ;gBAAE,QAAQ,EAAE,CAAC;SAC1B,EACD,CAAC,GAAsB;YACrB,UAAU,CAAC,GAAG,CAAC,CAAC;SACjB,CACF,CAAC;KACH;IAED,OAAO,CAAC,gBAAkC,EAAE,IAAuB;QACjE,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,YAAiB;YAC9E,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtC,CAAC,CAAC;KACJ;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChC,IAAI,oBACC,IAAI,CAAC,MAAM,CACf;aACF,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEd,IAAI,YAAY,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7C,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;SACF;KACF;IAED,cAAc,CAAC,MAAc,EAAE,GAAW,EAAE,MAAW,EAAE,MAAY;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,kBACnB,WAAW,kCACN,MAAM,KACT,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,KAEvC,mBAAmB,EAAE,OAAO,IACzB,MAAM,EACT,CAAC;KACJ;CACF;AAjDC;IALC,oBAAoB,CAAC;QACpB,iBAAiB,EAAE;YACjB,YAAY,EAAE,IAAI;SACnB;KACF,CAAC;4DAYD;;ACzVH;MAUsB,wBAAwB;IAH9C;QAIU,gCAA2B,GAAuC,IAAI,CAAC;QAEvE,0BAAqB,GAAiC,IAAI,CAAC;QAE3D,6BAAwB,GAAoC,IAAI,CAAC;QAEjE,2BAAsB,GAAkC,IAAI,CAAC;KAwCtE;IAtCQ,QAAQ;QACb,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;KACpC;IAEM,8BAA8B,CAAC,KAAkC;QACtE,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;KAC1C;IAEM,8BAA8B;QACnC,OAAO,IAAI,CAAC,2BAA2B,CAAC;KACzC;IAEM,wBAAwB,CAAC,KAA4B;QAC1D,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACpC;IAEM,wBAAwB;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;IAEM,2BAA2B,CAAC,QAAkC;QACnE,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC;KAC1C;IAEM,2BAA2B;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACtC;IAEM,yBAAyB,CAAC,MAA8B;QAC7D,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;KACtC;IAEM,yBAAyB;QAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACpC;;qHA9CmB,wBAAwB;yHAAxB,wBAAwB,cAFhC,MAAM;2FAEE,wBAAwB;kBAH7C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCAY,gBAAgB;IAC3B,YACY,IAAgB,EACnB,wBAAkD;QAD/C,SAAI,GAAJ,IAAI,CAAY;QACnB,6BAAwB,GAAxB,wBAAwB,CAA0B;;KAG1D;IAEO,UAAU,CAAC,MAAW;QAC5B,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,MAAM,CAAC;SACf;;QAGD,KAAK,MAAM,KAAK,IAAI;YAClB,WAAW;YACX,cAAc;YACd,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,kBAAkB;YAClB,kBAAkB;YAClB,YAAY;YACZ,WAAW;SACZ,EAAE;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;KACf;IAEM,GAAG,CAAI,GAAW,EAAE,OAAW;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC;KACvC;IAEM,IAAI,CAAI,GAAW,EAAE,MAAS,EAAE,OAAW;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KAChD;IAEM,GAAG,CAAI,GAAW,EAAE,MAAS;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,CAAC,UAAU,mBACV,MAAM,EACT,CACH,CAAC;KACH;IAEM,MAAM,CAAI,GAAW,EAAE,MAAU;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;KACzC;IAEM,QAAQ,CAAI,GAAW,EAAE,OAAW,EAAE,QAAiB;QAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,CACtC,CAAC,IAAS;YACR,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC9D,IAAI,kBAAkB,EAAE;gBACtB,QAAQ,GAAG,kBAAkB;qBAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACb,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;qBACpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACb,IAAI,EAAE;qBACN,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;aAClC;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,EAAE,GAAG,WAAW,EAAE;aACvB,CAAC,CAAC;YACH,OAAO;gBACL,QAAQ;gBACR,IAAI;aACL,CAAC;SACH,EACD,CAAC,GAAsB;YACrB,UAAU,CAAC,GAAG,CAAC,CAAC;SACjB,CACF,CAAC;KACH;IAEM,UAAU,CAAI,GAAW,EAAE,OAAW,EAAE,QAAiB;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAC1C,GAAG,CAAC,CAAC,IAAS;YACZ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC9D,IAAI,kBAAkB,EAAE;gBACtB,QAAQ,GAAG,kBAAkB;qBAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACb,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;qBACpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACb,IAAI,EAAE;qBACN,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;aAClC;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,EAAE,GAAG,WAAW,EAAE;aACvB,CAAC,CAAC;YACH,OAAO;gBACL,QAAQ;gBACR,IAAI;aACL,CAAC;SACH,CAAC,EACF,UAAU,CAAC,CAAC,GAAQ;YAClB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB,CAAC,CACH,CAAC;KACH;;6GAzGU,gBAAgB;iHAAhB,gBAAgB,cAFf,MAAM;2FAEP,gBAAgB;kBAH5B,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;ACND,IAAIC,QAAW,CAAC;AAEhB,MAAM,IAAI,GAAQ;IAChB,IAAI,EAAE;QACJ,KAAK,EAAE,iCAAiC;QACxC,OAAO,EAAE,2CAA2C;KACrD;IACD,KAAK,EAAE;QACL,KAAK,EAAE,iCAAiC;QACxC,OAAO,EAAE,0CAA0C;KACpD;CACF,CAAC;MAKW,2BAA2B;IACtC;;KAEC;IAEO,aAAa;QACnBA,QAAM,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE;YACvC,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,KAAK,EAAE,SAAS;oBAChB,YAAY,EAAE,MAAM;oBACpB,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;iBAClB;gBACD,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE;oBACN,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,MAAM;iBACjB;gBACD,MAAM,EAAE;oBACN,YAAY,EAAE,IAAI;iBACnB;gBACD,QAAQ,EAAE;oBACR,MAAM,EAAE;wBACN,YAAY,EAAE,IAAI;qBACnB;iBACF;aACF;SACF,CAAC,CAAC;QACHA,QAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7CA,QAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KAChC;IAEM,KAAK,CAAC,IAAY;QACvB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,IAAI,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,EAAE,GAAG,uBAAuB,CAAC;QAErC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;QACvB,UAAU,CAAC,GAAG,GAAG,0BAA0B,CAAC;QAC5C,UAAU,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QAEvC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpD,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC;QAC1B,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QAC/B,YAAY,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QAEzC,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACtD,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC;QAC9B,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC;QACnC,cAAc,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QAE3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,WAAW,CAAC,EAAE,GAAG,SAAS,CAAC;QAC3B,WAAW,CAAC,SAAS;YACnB,wEAAwE,CAAC;QAE3E,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAChC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACpC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEjC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAChC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC5B,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;wHAxEU,2BAA2B;4HAA3B,2BAA2B,cAF1B,MAAM;2FAEP,2BAA2B;kBAHvC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCDY,mCAAmC,uBAAuB;IACrE,YACE,gBAAkC,EAC1B,gBAAkC,EAClC,6BAA4D,EAC5D,2BAAwD;QAEhE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAJhB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,kCAA6B,GAA7B,6BAA6B,CAA+B;QAC5D,gCAA2B,GAA3B,2BAA2B,CAA6B;QAIhE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KACpC;IAUM,KAAK,CAAC,MAAuB,EAAE,WAAgB,EAAE,MAAM,GAAG,KAAK;;QACpE,MAAM,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC;QAC9F,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACtB,MAAM,YAAY,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,0CAAG,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,OAAO,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,6BAA6B,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE;YACrB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACjC;aAAM;YACL,6BAA6B,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM;gBAAE,MAAM,GAAG,IAAI,CAAC;SAC5B;QAED,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,CAAM,GAAG,WAAW,CAAC,WAAW,SAAS,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,OAAO,CAAC,0CAAE,SAAS,CACzF,CAAC,MAAW;YACV,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACxB,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACtB,IAAI,YAAY,EAAE;gBAChB,IAAI,mCACC,IAAI,KACP,QAAQ,EAAE,YAAY,GACvB,CAAC;aACH;YACD,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,MAAM;gBAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SACxC,EACD,CAAC,GAAsB;YACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,aAAa,CAAC,CAAC;YAC/C,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1C,UAAU,CAAC,GAAG,CAAC,CAAC;SACjB,CACF,CAAC;KACH;;uHAtDU,0BAA0B;2HAA1B,0BAA0B,cAFzB,MAAM;AAwBlB;IARC,oBAAoB,CAAC;QACpB,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,CAAC;SACtB;QACD,iBAAiB,EAAE;YACjB,YAAY,EAAE,KAAK;SACpB;KACF,CAAC;uDAiCD;2FAtDU,0BAA0B;kBAHtC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;qNAuBQ,KAAK;;MC/BD,0BAA0B;IAC9B,KAAK,CACV,MAAuB,EACvB,cAAuC,EACvC,WAAgB,EAChB,YAAoB;QAEpB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,WAAW,CAAC,WAAW,KAAK,KAAK,EAAE;YACtD,UAAU,CAAC,IAAI,CAAC;gBACd,aAAa,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,oBAAoB;gBAChD,WAAW,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB;gBAC5C,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;gBACvB,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,GAAG;gBACrB,GAAG,EAAE,gBAAgB,YAAY,IAAI,WAAW,CAAC,WAAW,EAAE;gBAC9D,OAAO,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO;gBAChC,iBAAiB,EAAE,IAAI;gBACvB,4BAA4B,EAAE,IAAI;gBAClC,sBAAsB,EAAE,IAAI;gBAC5B,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC;YACH,UAAU,CAAC,2BAA2B,EAAE,CAAC;SAC1C;KACF;;uHAzBU,0BAA0B;2HAA1B,0BAA0B,cAFzB,MAAM;2FAEP,0BAA0B;kBAHtC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCKY,mCAAmC;IAC9C,YACU,MAAsB,EACtB,OAAiB,EACjB,YAA0C;QAF1C,WAAM,GAAN,MAAM,CAAgB;QACtB,YAAO,GAAP,OAAO,CAAU;QACjB,iBAAY,GAAZ,YAAY,CAA8B;;KAEnD;IAEO,gBAAgB,CAAC,MAA+B;;QACtD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QACvC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAE,SAAS,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;gBACvD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC5B;iBAAM;gBACL,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACzC,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;KACJ;IAEO,MAAM;QACZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ;aACjC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAiB,OAAO,OAAO,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,MAAM,yBAAyB,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,yBAAyB,CAAC,SAAS,CAAC;YAClC,OAAO,CAAC,cAAc,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,EAAE,CAAC;KAC1B;IAEM,KAAK,CAAC,MAA+B;QAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;;gIArCU,mCAAmC;oIAAnC,mCAAmC,cAFlC,MAAM;2FAEP,mCAAmC;kBAH/C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;ACVD;MAQa,8CAA8C,uBAAuB;IAChF,YAAoB,gBAAkC;QACpD,KAAK,EAAE,CAAC;QADU,qBAAgB,GAAhB,gBAAgB,CAAkB;QAGpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;KACjE;IAEO,gBAAgB;QACtB,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;YAClC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;YAChC,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,EAAE,yDAAyD,CAAC,CAAC;gBACrF,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CACT,mDAAmD;oBACnD,qDAAqD;oBACrD,wDAAwD;oBACxD,gDAAgD;oBAChD,oDAAoD;oBACpD,gDAAgD;oBAChD,oCAAoC,EAAE,kCAAkC,CACzE,CAAC;aACH;SACF,CAAC,CAAC;KACJ;IAEM,KAAK;QACV,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;;kIA9BU,qCAAqC;sIAArC,qCAAqC,cAFpC,MAAM;2FAEP,qCAAqC;kBAHjD,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCEY,iCAAiC;IAC5C,YAAoB,YAA0C,EAAU,MAAc;QAAlE,iBAAY,GAAZ,YAAY,CAA8B;QAAU,WAAM,GAAN,MAAM,CAAQ;;KAErF;IAEO,gBAAgB,CAAC,MAA+B;QACtD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;YAC7B,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE3B,UAAU,CAAC;gBACT,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,4BAA4B,EAAE;oBACnD,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;aACJ,EAAE,GAAG,CAAC,CAAC;SACT;KACF;IAEM,KAAK,CAAC,MAA+B;QAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KAC/B;;8HAtBU,iCAAiC;kIAAjC,iCAAiC,cAFhC,MAAM;2FAEP,iCAAiC;kBAH7C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCCY,6BAA6B;IAOxC;QANiB,iBAAY,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAExE,UAAK,GAA0B,SAAS,CAAC;QAEzC,aAAQ,GAAyB,SAAS,CAAC;;KAIlD;IAEO,WAAW;;QACjB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,QAAQ,EAAE,CAAC;QAEvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAEO,QAAQ,CAAC,MAAuB,EAAE,WAAgB;;QACxD,IAAI,MAAM,EAAE;YACV,MAAM,KAAK,GAAG,wBAAwB,CAAC;YACvC,MAAM,IAAI,GAAG;gBACX,KAAK;gBACL,GAAG,EAAE,GAAG,MAAA,MAAM,CAAC,OAAO,0CAAE,KAAK,IAAI,KAAK,EAAE;aACzC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,wBAAwB,EAAE,IAAI,EAAE;oBACrE,SAAS,EAAE,IAAI;oBACf,oBAAoB,EAAE,IAAI;oBAC1B,UAAU,EAAE,KAAK;oBACjB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACxD;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC3D;SACF;KACF;IAEM,KAAK,CAAC,cAAgD,EAAE,WAAgB;QAC7E,IAAI,WAAW,CAAC,wBAAwB,EAAE;YACxC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM;gBAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;aACpC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;KACF;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;IAEM,OAAO,CAAC,IAAY;;QACzB,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAG,IAAI,CAAC,CAAC;QAErC,OAAO,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;KAC5E;;0HA5DU,6BAA6B;8HAA7B,6BAA6B,cAF5B,MAAM;2FAEP,6BAA6B;kBAHzC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCaY,+BAA+B,uBAAuB;IAKjE,YACE,gBAAkC,EAC1B,0BAAsD,EACtD,0BAAsD,EACtD,+BAAgE,EAChE,mCAAwE,EACxE,qCAA4E,EAC5E,iCAAoE,EACpE,2BAAwD,EACxD,6BAA4D;QAEpE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAThB,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,oCAA+B,GAA/B,+BAA+B,CAAiC;QAChE,wCAAmC,GAAnC,mCAAmC,CAAqC;QACxE,0CAAqC,GAArC,qCAAqC,CAAuC;QAC5E,sCAAiC,GAAjC,iCAAiC,CAAmC;QACpE,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,kCAA6B,GAA7B,6BAA6B,CAA+B;QAGpE,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KACvD;IAEO,mBAAmB,CAAC,GAAG,IAAW;QACxC,MAAM,EACJ,mCAAmC,EACnC,qCAAqC,EACrC,iCAAiC,GAClC,GAAG,IAAI,CAAC;QACT,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,qCAAqC,CAAC,KAAK,EAAE,CAAC;QAC9C,mCAAmC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1D,iCAAiC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACxD,QAAQ,CAAC,cAAc,CAAC,CAAC;KAC1B;IAEO,qBAAqB,CAC3B,aAAqB,EACrB,cAAuC,EACvC,QAAkB,EAClB,WAAgB,EAChB,YAAoB;;QAEpB,MAAM,EACJ,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACd,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,GACpB,GAAG,IAAI,CAAC;QACT,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACvC,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CACZ,GAAG,CACH,GAAG,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,uBAAuB,WAAW,CAAC,eAAe,CACrF,EAAE,CACH,EAAE,CACJ,0CACC,SAAS,CACT,CAAC,MAAuB;YACtB,0BAA0B,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACtD,0BAA0B,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACpF,6BAA6B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACjE,+BAA+B,CAAC,QAAQ,CACtC,GAAG,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,uCAAuC,WAAW,CAAC,eAAe,CACrG,EAAE,CACH,EAAE,EACH,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,CACtE,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B,EACD,CAAC,GAAsB;YACrB,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,UAAU,CAAC,GAAG,CAAC,CAAC;SACjB,CACF,CAAC;KACL;IAUM,IAAI,CAAC,QAAkB,EAAE,WAAgB,EAAE,YAAoB,EAAE,aAAsB;;QAC5F,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC;QAEvF,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CACZ,GAAG,CAAC,GAAG,WAAW,CAAC,cAAc,MAAM,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1E,OAAO,EAAE,UAAU;SACpB,CAAC,0CACA,SAAS,CACT,CAAC,IAAS;YACR,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;YAC/D,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAClF,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;gBACL,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC,YAAY,UAAU,2BAA2B,CAAC,CAAC;aAClE;SACF,EACD,CAAC,GAAsB;YACrB,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,UAAU,CAAC,GAAG,CAAC,CAAC;SACjB,CACF,CAAC;KACL;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC3C;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;KACnD;;mHAzHU,sBAAsB;uHAAtB,sBAAsB,cAFrB,MAAM;AA0FlB;IARC,oBAAoB,CAAC;QACpB,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,CAAC;SACtB;QACD,iBAAiB,EAAE;YACjB,YAAY,EAAE,KAAK;SACpB;KACF,CAAC;kDA0BD;2FAjHU,sBAAsB;kBAHlC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;2bAyFQ,IAAI;;MChGA,4BAA4B;IASvC,YAAoB,sBAA8C;QAA9C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAF1D,WAAM,GAA2B,IAAI,CAAC;QAG5C,IAAI,CAAC,KAAK,GAAG;YACX,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,EAAE;YACR,YAAY,EAAE;gBACZ,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC;aAC9C;SACF,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAkB;YAChE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjB,CAAC,CAAC;KACJ;IAEO,YAAY,CAAC,KAAgC;QACnD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;YACzC,IAAI,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;gBACnD,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAClC;SACF,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpB;IAEO,YAAY;;QAClB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,YAAY,qBACb,KAAK,CACT,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;YAC/C,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C,CAAC,CAAC;QAEH,IAAI,EAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAA,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAA,EAAE;YAC7C,YAAY,CAAC,OAAO,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,KAAK,CAAC;SAC/C;QAED,OAAO,YAAY,CAAC;KACrB;IAEO,QAAQ,CAAC,EAA0B;QACzC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAC,IAAI,CAAC,KAAI,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;YACtC,IAAI,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;gBACnD,UAAU,mCACL,UAAU,KACb,CAAC,GAAG,GAAG,KAAK,GACb,CAAC;aACH;SACF,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtB;IAEO,QAAQ;QACd,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAA2B,CAAC;KACzD;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KACnC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC;KACxC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;KACxB;IAEM,QAAQ,CAAC,KAAgC;QAC9C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;IAEM,KAAK,CAAC,EAA0B;QACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACnB;IAEM,KAAK,CAAC,KAAe;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI;YACF,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;;gBAC/C,IACE,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,0CAAE,MAAM,KAAI,EAAE,EAAE,MAAM,CAAC,CAAC,GAAQ;oBAClD,OAAO,GAAG,KAAK,GAAG,CAAC;iBACpB,CAAC,CAAC,MAAM,IAAI,CAAC;oBACd,KAAK,KAAK,IAAI,EACd;oBACA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBAC9B;aACF,CAAC,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/B;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;SAClB;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;KACjB;;;;IAKM,gBAAgB,CACrB,MAAM,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC;QAE7E,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC,GAAW;YAC1B,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9B,CAAC,CAAC;KACJ;;yHAvIU,4BAA4B;6HAA5B,4BAA4B,cAF3B,MAAM;2FAEP,4BAA4B;kBAHxC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCLY,0BAA0B;IAOrC,YACU,UAAsB,EACtB,mBAAiD,EACjD,GAAsB;QAFtB,eAAU,GAAV,UAAU,CAAY;QACtB,wBAAmB,GAAnB,mBAAmB,CAA8B;QACjD,QAAG,GAAH,GAAG,CAAmB;QATR,UAAK,GAAa,EAAE,CAAC;QAEf,gBAAW,GAAY,KAAK,CAAC;QAEnD,qBAAgB,GAAqC,IAAI,CAAC;;KAQjE;IAEO,OAAO;QACb,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAElC,IAAI,CAAC,gBAAgB;YAAE,OAAO,EAAE,CAAC;QAEjC,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,MAAK,MAAM,EAAE;YAC7C,OAAO,eAAe,CAAC;SACxB;QAED,OAAO,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,KAAI,EAAE,CAAC;KACrC;IAEO,YAAY;QAClB,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,MAAM,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,OAAO,CAAC;YAClB,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,OAAO,GAAG,MAAM,CAAC;aAClB;SACF;aAAM;YACL,OAAO,GAAG,MAAM,CAAC;YACjB,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,OAAO,GAAG,OAAO,CAAC;aACnB;SACF;QAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,eAAe;YAAE,OAAO,GAAG,OAAO,CAAC;QAC1F,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEzB,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC;YACnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;;uHA3DU,0BAA0B;2GAA1B,0BAA0B;2FAA1B,0BAA0B;kBAHtC,SAAS;mBAAC;oBACT,QAAQ,EAAE,qBAAqB;iBAChC;yKAEyB,KAAK;sBAA5B,KAAK;uBAAC,eAAe;gBAEQ,WAAW;sBAAxC,KAAK;uBAAC,qBAAqB;;;MCLjB,yBAAyB;IAepC,YAAoB,EAAc,EAAU,QAAmB;QAA3C,OAAE,GAAF,EAAE,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAW;QANtD,iBAAY,GAAG,IAAI,CAAC;QAE7B,WAAM,GAAG,EAAE,CAAC;QAEZ,YAAO,GAAuB,IAAI,CAAC;;KAIlC;IAGD,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAGD,YAAY;QACV,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAGD,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAED,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;YAC/D,UAAU,CAAC;gBACT,IAAI,CAAC,IAAI,EAAE,CAAC;aACb,EAAE,IAAI,CAAC,CAAC;SACV;KACF;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IAED,MAAM;QACJ,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE3D,mBAAmB,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACvD,mBAAmB,CAAC,SAAS,GAAG,yBAAyB,CAAC;YAE1D,cAAc,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;SACjD;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE1D,kBAAkB,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACrD,kBAAkB,CAAC,SAAS,GAAG,+BAA+B,CAAC;YAC/D,cAAc,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC7F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACxF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;KACtF;IAED,WAAW;;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,qBAAqB,EAAE,CAAC;QACzD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,SAAS,GACb,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAC3F,IAAI,GAAG,GAAW,CAAC,CAAC;QACpB,IAAI,IAAI,GAAW,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;YAClC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACpD,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;YACrC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACnC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,EAAE;YACnC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAC7D,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;SACtD;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE;YACpC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAC7D,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;SACpC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;KAC3D;;sHA5HU,yBAAyB;0GAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;yHAEU,YAAY;sBAApB,KAAK;gBAEG,eAAe;sBAAvB,KAAK;gBAEG,WAAW;sBAAnB,KAAK;gBAEG,YAAY;sBAApB,KAAK;gBAEG,YAAY;sBAApB,KAAK;gBAWN,YAAY;sBADX,YAAY;uBAAC,YAAY;gBAQ1B,YAAY;sBADX,YAAY;uBAAC,YAAY;gBAQ1B,QAAQ;sBADP,YAAY;uBAAC,OAAO;;;MC7BV,yBAAyB;IAKpC,YACU,GAAsB,EACtB,UAAsB,EACtB,6BAA4D;QAF5D,QAAG,GAAH,GAAG,CAAmB;QACtB,eAAU,GAAV,UAAU,CAAY;QACtB,kCAA6B,GAA7B,6BAA6B,CAA+B;QAL9D,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAC;;KAQtC;IAEO,UAAU,CAAC,OAAe;QAChC,MAAM,EAAE,6BAA6B,EAAE,GAAG,IAAI,CAAC;QAE/C,IAAI,CAAC,6BAA6B,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,OAAO,CAAC,OAAO,CAAC,KAAI,KAAK,CAAC;KACjE;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;YACnD,OAAO;SACR;QAED,IAAI,IAAI,EAAE;YACR,OAAO,GAAG,OAAO,CAAC;SACnB;QAED,IAAI,OAAO,KAAK,MAAM,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;SACxC;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAChC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEzB,IAAI,CAAC,6BAA6B,CAAC,OAAO;aACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACpC,SAAS,CAAC,CAAC,GAAY;YACtB,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;SACF,CAAC,CAAC;KACN;;sHA7DU,yBAAyB;0GAAzB,yBAAyB;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;iBAC/B;0KAEuB,OAAO;sBAA5B,KAAK;uBAAC,aAAa;;;MCsBT,yBAAyB;;sHAAzB,yBAAyB;uHAAzB,yBAAyB,iBApBlC,0BAA0B;QAC1B,uBAAuB;QACvB,yBAAyB;QACzB,oBAAoB;QACpB,kCAAkC;QAClC,6BAA6B;QAC7B,0BAA0B;QAC1B,yBAAyB,aAGzB,0BAA0B;QAC1B,uBAAuB;QACvB,yBAAyB;QACzB,oBAAoB;QACpB,kCAAkC;QAClC,6BAA6B;QAC7B,0BAA0B;QAC1B,yBAAyB;uHAGhB,yBAAyB;2FAAzB,yBAAyB;kBAtBrC,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,uBAAuB;wBACvB,yBAAyB;wBACzB,oBAAoB;wBACpB,kCAAkC;wBAClC,6BAA6B;wBAC7B,0BAA0B;wBAC1B,yBAAyB;qBAC1B;oBACD,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,uBAAuB;wBACvB,yBAAyB;wBACzB,oBAAoB;wBACpB,kCAAkC;wBAClC,6BAA6B;wBAC7B,0BAA0B;wBAC1B,yBAAyB;qBAC1B;iBACF;;;AC/BD;MAQa,8BAA8B;IACzC;QAIA,uBAAkB,GAAG;YACnB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;SACb,CAAC;QAEF,gBAAW,GAAG;YACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;SACb,CAAC;QAEF,6BAAwB,GAAG;YACzB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;SACb,CAAC;QAEF,iBAAY,GAAG;YACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC;SACd,CAAC;QAEF,0BAAqB,GAAG,CAAC,OAAyB;YAChD,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;SACb,CAAC;QAEF,4BAAuB,GAAG,CAAC,OAAyB;YAClD,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;SACb,CAAC;QAEF,wBAAmB,GAAG,CAAC,QAA2B;YAChD,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;SACd,CAAC;QAEF,iBAAY,GAAG;YACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;SACb,CAAC;;KAxCD;IA0CD,IAAI,CACF,IASC;QAED,IAAI,CAAC,kBAAkB,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,KAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,WAAW,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,KAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,wBAAwB,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,wBAAwB;YAC5D,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,qBAAqB,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,qBAAqB;YACtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,uBAAuB,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,mBAAmB,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,KAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxE;;2HAnEU,8BAA8B;+HAA9B,8BAA8B,cAF7B,MAAM;2FAEP,8BAA8B;kBAH1C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCCY,uBAAuB;IAClC,YAAoB,8BAA8D;QAA9D,mCAA8B,GAA9B,8BAA8B,CAAgC;;KAEjF;IAED,WAAW;QACT,IAAI,IAAI,CAAC,8BAA8B,CAAC,YAAY,EAAE,EAAE;YACtD,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,8BAA8B,CAAC,kBAAkB,EAAE,EAAE;YAC5D,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;KACb;;oHAfU,uBAAuB;wHAAvB,uBAAuB,cAFtB,MAAM;2FAEP,uBAAuB;kBAHnC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCCY,kBAAkB;IAC7B,YAAoB,8BAA8D;QAA9D,mCAA8B,GAA9B,8BAA8B,CAAgC;;KAEjF;IAED,WAAW;QACT,MAAM,EAAE,8BAA8B,EAAE,GAAG,IAAI,CAAC;QAEhD,IAAI,8BAA8B,CAAC,YAAY,EAAE,EAAE;YACjD,OAAO,IAAI,CAAC;SACb;QAED,8BAA8B,CAAC,wBAAwB,EAAE,CAAC;QAE1D,OAAO,KAAK,CAAC;KACd;;+GAfU,kBAAkB;mHAAlB,kBAAkB,cAFjB,MAAM;2FAEP,kBAAkB;kBAH9B,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCQY,0CAA0C,uBAAuB;IAC5E,YACE,gBAAkC,EAClC,YAA0C,EAClC,8BAA8D,EAC9D,MAAc,EACd,eAAgD,EAChD,gBAAkC;QAE1C,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAL9B,mCAA8B,GAA9B,8BAA8B,CAAgC;QAC9D,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAiC;QAChD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAI1C,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;KACzD;IAEO,uBAAuB,CAAC,EAA+B,EAAE,QAAgB;;QAC/E,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,CAAA,EAAE;YACtE,OAAO,KAAK,CAAC;SACd;QAED,MAAM,KAAK,GAAG,CAAA,OAAC,CAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,0CAAE,cAAc,KAAI,EAAE,CAAC,0CAAE,OAAO,CAAC,QAAQ,CAAC,IAAG,CAAC,CAAC,CAAC;QAE/E,OAAO,KAAK,CAAC;KACd;IAEO,wBAAwB,CAC9B,EAA+B,EAC/B,QAAgB;;QAEhB,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,CAAA,EAAE;YACtE,OAAO,KAAK,CAAC;SACd;QAED,MAAM,KAAK,GAAG,CAAA,OAAC,CAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,0CAAE,sBAAsB,KAAI,EAAE,CAAC,0CAAE,OAAO,CAAC,QAAQ,CAAC,IAAG,CAAC,CAAC,CAAC;QAEvF,OAAO,KAAK,CAAC;KACd;IAEO,cAAc,CAAC,MAAc;QACnC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;YACpC,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,OAAO,CAAC;KAChB;IAEO,WAAW,CACjB,OAAe,EACf,KAAwB,EACxB,GAAgC;;QAEhC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;YACpD,eAAe,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK;gBACzB,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvC,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,QAAQ;gBAC5B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;SACJ;KACF;IAEO,aAAa,CAAC,KAAwB,EAAE,GAAgC;;;QAE9E,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAClE,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,IAAI,OAAO,EAAE;YACX,aAAa,GAAG,OAAO,CAAC;SACzB;;QAGD,IAAI,iBAAiB,EAAE;;YAErB,aAAa,GAAG,iBAAiB,CAAC;SACnC;QAED,IAAI,aAAa,EAAE;YACjB,aAAa,GAAG,aAAa,CAAC;SAC/B;QAED,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,KAAK,CAAC,KAAK,YAAY,IAAI,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBACnC,IAAI,EAAE,kBAAkB;iBACzB,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAChC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;;oBACnC,MAAM,IAAI,GAAG,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,MAAM,CAAC;oBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;oBAC5C,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACvC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;iBAC7C,CAAC,CAAC;gBACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,0CAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACpE;SACF;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC7C;KACF;IAEM,WAAW,CAAC,KAAwB,EAAE,GAAgC;QAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEzB,MAAM,MAAM,GAAQ;YAClB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,kBAAkB;YACvB,GAAG,EAAE,kBAAkB;SACxB,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,EAAE;YAC/D,MAAM,KAAK,GAAG,cAAc,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;YAClD,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1B;QAED,UAAU,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAChC,EAAE,OAAO,CAAC,CAAC;KACb;IAEM,uBAAuB,CAAC,KAAwB,EAAE,GAAgC;QACvF,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,EAAE,EAAE,EAAE,CAAC,CAAC;SACjF;aAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;YAC3D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAChC;KACF;;8HAvIU,iCAAiC;kIAAjC,iCAAiC,cAFhC,MAAM;2FAEP,iCAAiC;kBAH7C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCPY,oCAAoC;IAC/C,YAAoB,YAA0C;QAA1C,iBAAY,GAAZ,YAAY,CAA8B;;KAE7D;IAEM,WAAW,CAAC,KAAU;QAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAE1B,IAAI,IAAI,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1D,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACzC,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;SACJ;KACF;;iIAfU,oCAAoC;qIAApC,oCAAoC,cAFnC,MAAM;2FAEP,oCAAoC;kBAHhD,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCKY,6BAA6B;IACxC,YAAoB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;;KAErC;IAED,WAAW,CAAC,KAAU,EAAE,IAAa;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC/D,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjF,MAAM,2BAA2B,GAAG,QAAQ,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAEvF,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEnB,IAAI,KAAK,YAAY,iBAAiB,EAAE;YACtC,MAAM,YAAY,GAChB,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,8BAA8B,EAAE,KAAI,EAAE,CAAC;YAC1D,IAAI,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,eAAe,EAAE;gBAC9E,wBAAwB,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;aACvE;;gBAAM,wBAAwB,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;SAClE;aAAM;YACL,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChD;KACF;;0HAvBU,6BAA6B;8HAA7B,6BAA6B,cAF5B,MAAM;2FAEP,6BAA6B;kBAHzC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCHY,4BAA4B;IAChC,OAAO,OAAO;QACnB,OAAO;YACL,QAAQ,EAAE,4BAA4B;YACtC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,YAAY;oBACrB,QAAQ,EAAE,6BAA6B;iBACxC;aACF;SACF,CAAC;KACH;;yHAXU,4BAA4B;0HAA5B,4BAA4B,YAF7B,YAAY;0HAEX,4BAA4B,YAF9B,CAAC,YAAY,CAAC;2FAEZ,4BAA4B;kBAHxC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;;;MCaY,mCAAmC;IAC9C,YACU,8BAA8D,EAC9D,6BAA4D;QAD5D,mCAA8B,GAA9B,8BAA8B,CAAgC;QAC9D,kCAA6B,GAA7B,6BAA6B,CAA+B;;KAGrE;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,GAAG,CAAC,CAAC,KAAqB;YACxB,OAAO,KAAK,CAAC;SACd,CAAC,EACF,UAAU,CAAC,CAAC,KAAwB;;YAClC,IAAI,IAAI,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;gBAClE,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,8BAA8B,0CAAE,YAAY,EAAE,0CAAE,IAAI,CAC9D,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC;oBACF,OAAO,IAAI,CAAC,8BAA8B,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;iBAC3E,CAAC,EACF,QAAQ,CAAC,CAAC,IAAS;oBACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3B,UAAU,CAAC,CAAC,KAAU;wBACpB,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;wBACvE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;qBACzB,CAAC,CACH,CAAC;iBACH,CAAC,EACF,UAAU,CAAC,CAAC,KAAU;oBACpB,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;oBACvE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;iBACzB,CAAC,CACH,KAAI,UAAU,CAAC,KAAK,CAAC,CAAC;aACxB;YACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC1B,CAAC,CACH,CAAC;KACH;;gIArCU,mCAAmC;oIAAnC,mCAAmC;2FAAnC,mCAAmC;kBAD/C,UAAU;;;MCJE,oCAAoC;IAC/C,YACU,8BAA8D,EAC9D,6BAA4D;QAD5D,mCAA8B,GAA9B,8BAA8B,CAAgC;QAC9D,kCAA6B,GAA7B,6BAA6B,CAA+B;;KAGrE;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB;;QACpD,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,8BAA8B,0CAAE,uBAAuB,CAAC,OAAO,CAAC,0CAAE,IAAI,CAChF,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,KAAU;YACb,OAAO,KAAK,CAAC;SACd,CAAC,EACF,QAAQ,CAAC,CAAC,IAAS;YACjB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;gBACtB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC7B,CAAC,EACF,UAAU,CAAC,CAAC,KAAwB;YAClC,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACtD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC1B,CAAC,CACH,KAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;KACtD;;iIAzBU,oCAAoC;qIAApC,oCAAoC;2FAApC,oCAAoC;kBADhD,UAAU;;;MCJE,oCAAoC;IAO/C;QANQ,UAAK,GAA4B,EAAE,CAAC;QAIpC,aAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAG5C,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KACxC;IAEO,UAAU,CAAC,CAAwB;QACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAEO,qBAAqB,CAAC,CAAwB,EAAE,MAAe,EAAE,MAAiB;QACxF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;gBACF,IAAI,GAAG,CAAC,MAAM,KAAKN,oBAA4B,CAAC,OAAO,EAAE;oBACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;wBAClC,uCACK,QAAQ,KACX,MAAM,EAAE,MAAM,IAAIA,oBAA4B,CAAC,QAAQ,EACvD,MAAM,IACN;qBACH;iBACF;gBACD,OAAO,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEO,WAAW,CAAC,CAAwB,EAAE,QAAuC;QACnF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;gBACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;gBACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACxE,MAAM,eAAe,GAAG,GAAG,CAAC;gBAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,uCACK,QAAQ,KACX,QAAQ,EAAE;4BACR,MAAM;4BACN,KAAK;4BACL,iBAAiB,EAAE,gBAAgB;4BACnC,eAAe;yBAChB,IACD;iBACH;gBACD,OAAO,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEO,WAAW,CAAC,CAAwB;QAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;gBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC,MAAM,CAAC,CAAC,CAAM;YACd,OAAO,CAAC,CAAC;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEM,QAAQ,CAAC,CAA+B;QAC7C,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACpB;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KACpC;IAEM,eAAe,CAAC,CAA+B,EAAE,MAAiB,EAAE,MAAe;QACxF,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/C;IAEM,eAAe,CAAC,CAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACrB;IAEM,eAAe,CAAC,CAAwB,EAAE,QAAuC;QACtF,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC/B;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvB,GAAG,CAAC,CAAC,CAAM;YACT,OAAO,CAAC,CAAC;SACV,CAAC,CACH,CAAC;KACH;;iIAlHU,oCAAoC;qIAApC,oCAAoC,cAFnC,MAAM;2FAEP,oCAAoC;kBAHhD,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCCY,yCAAyC;IASpD;QARQ,UAAK,GAA4B,EAAE,CAAC;QAIpC,cAAS,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAEvC,sBAAiB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAGrD,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KACxC;IAEO,UAAU,CAAC,CAAwB;QACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAEO,qBAAqB,CAAC,CAAwB,EAAE,MAAe,EAAE,MAAiB;QACxF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;gBACF,IAAI,GAAG,CAAC,MAAM,KAAKA,oBAA4B,CAAC,OAAO,EAAE;oBACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;wBAClC,uCACK,QAAQ,KACX,MAAM,EAAE,MAAM,IAAIA,oBAA4B,CAAC,QAAQ,EACvD,MAAM,IACN;qBACH;iBACF;gBACD,OAAO,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEO,WAAW,CAAC,CAAwB,EAAE,QAAuC;QACnF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;gBACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;gBACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAE,CAAC,KAAK,KAAK,IAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACtE,MAAM,eAAe,GAAG,GAAG,CAAC;gBAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,uCACK,QAAQ,KACX,QAAQ,EAAE;4BACR,MAAM;4BACN,KAAK;4BACL,iBAAiB,EAAE,gBAAgB;4BACnC,eAAe;yBAChB,IACD;iBACH;gBACD,OAAO,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEO,WAAW,CAAC,CAAwB;QAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;gBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC,MAAM,CAAC,CAAC,CAAM;YACd,OAAO,CAAC,CAAC;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;KACF;IAEM,QAAQ,CAAC,CAAwB;QACtC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACpB;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KACpC;IAEM,eAAe,CAAC,CAAwB,EAAE,MAAiB,EAAE,MAAe;QACjF,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/C;IAEM,eAAe,CAAC,CAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACrB;IAEM,eAAe,CAAC,CAAwB,EAAE,QAAuC;QACtF,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC/B;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,GAAG,CAAC,CAAC,CAAM;YACT,OAAO,CAAC,CAAC;SACV,CAAC,CACH,CAAC;KACH;IAEM,mBAAmB;QACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,CAAM;YACT,OAAO,CAAC,CAAC;SACV,CAAC,CACH,CAAC;KACH;;sIA7HU,yCAAyC;0IAAzC,yCAAyC,cAFxC,MAAM;2FAEP,yCAAyC;kBAHrD,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;ACRD;MAWa,mCAAmC;IAC9C,YACU,QAAkB,EAClB,oCAA0E;QAD1E,aAAQ,GAAR,QAAQ,CAAU;QAClB,yCAAoC,GAApC,oCAAoC,CAAsC;;KAGnF;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAC3C,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAExE,MAAM,qBAAqB,GAAiC,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,wBAAwB,EAAE,CAAC;QACjH,IAAI,eAAe,CAAC,qBAAqB,CAAC,EAAE;YAC1C,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,QAAQ,CAAC;YACP,IAAI,eAAe,CAAC,qBAAqB,CAAC,EAAE;gBAC1C,IAAI,CAAC,oCAAoC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;aAClF;SACF,CAAC,CACH,CAAC;KACH;IAEO,eAAe,CAAC,GAAkC;;QACxD,QACE,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC;YAC7C,cAAc,CAAC,yBAAyB,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,IAAI,CAAC,EACzD;KACH;;gIA/BU,mCAAmC;oIAAnC,mCAAmC;2FAAnC,mCAAmC;kBAD/C,UAAU;;;ACVX;MAWa,+CAA+C;IAC1D,YAAoB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;;KAErC;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB;;QACpD,MAAM,EAAE,QAAQ,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC;QACvD,MAAM,eAAe,GAA6B,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACzF,MAAM,kBAAkB,GAAgC,QAAQ,CAAC,GAAG,CAClE,2BAA2B,CAC5B,CAAC;QAEF,MAAM,UAAU,GAA6C,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,8BAA8B,EAAE;cAC1G,CAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,8BAA8B,EAAE,0CAAE,iBAAiB,KAAI,IAAI;cAC5E,IAAI,CAAC;QACT,IAAI,2BAA2B,CAAC,UAAU,CAAC,EAAE;YAC3C,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,QAAQ,CAAC;YACP,IAAI,2BAA2B,CAAC,UAAU,CAAC,EAAE;gBAC3C,kBAAkB,CAAC,IAAI,EAAE,CAAC;aAC3B;SACF,CAAC,CACH,CAAC;KACH;IAEO,2BAA2B,CAAC,GAA6C;QAC/E,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,OAAO,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC;YAClD,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC;cACxD,GAAG,CAAC,YAAY;cAChB,IAAI,CAAC;KACV;;4IAlCU,+CAA+C;gJAA/C,+CAA+C;2FAA/C,+CAA+C;kBAD3D,UAAU;;;MCCE,oCAAoC;IACxC,OAAO,OAAO;QACnB,OAAO;YACL,QAAQ,EAAE,oCAAoC;YAC9C,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,oCAAoC;oBAC9C,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,mCAAmC;oBAC7C,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,mCAAmC;oBAC7C,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,+CAA+C;oBACzD,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;KACH;;iIA3BU,oCAAoC;kIAApC,oCAAoC,YAFrC,YAAY;kIAEX,oCAAoC,YAFtC,CAAC,YAAY,CAAC;2FAEZ,oCAAoC;kBAHhD,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;;;MCLY,cAAc;IAGlB,SAAS,CAAC,IAAY;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;KACb;;;ACbH;MAKa,qBAAqB;IAChC,YAGE,YAAmC;QAEnC,IAAI,YAAY,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;SAC9F;KACF;IAED,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;KACH;;kHAhBU,qBAAqB,kBAIhB,qBAAqB;mHAJ1B,qBAAqB;mHAArB,qBAAqB;2FAArB,qBAAqB;kBADjC,QAAQ;;wBAKS,qBAAqB;8BAFlC,QAAQ;;8BACR,QAAQ;;;;MCFA,8BAA8B;IAGzC;QAFQ,cAAS,GAA+B,EAAE,CAAC;;KAIlD;IAEO,eAAe;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAA6B;YACnD,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAEM,WAAW,CAAC,GAA+B;QAChD,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;KACtB;IAEM,OAAO;QACZ,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;;2HApBU,8BAA8B;+HAA9B,8BAA8B,cAF7B,MAAM;2FAEP,8BAA8B;kBAH1C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCIY,uCAAuC;IAKlD;QAJQ,aAAQ,GAA+B,EAAE,CAAC;QAKhD,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAC1C;IAEO,KAAK,CAAC,CAA2B;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;IAEO,gBAAgB,CAAC,CAA2B,EAAE,MAAe;QACnE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,KAAK;iBACL,GAAG,CAAC,CAAC,GAAQ;gBACZ,IAAI,GAAG,CAAC,MAAM,KAAK,uBAAuB,CAAC,OAAO,EAAE;oBAClD,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;oBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;wBAClC,uCACK,QAAQ,KACX,MAAM,EAAE,MAAM,IAAI,uBAAuB,CAAC,QAAQ,IAClD;qBACH;oBACD,OAAO,QAAQ,CAAC;iBACjB;gBACD,OAAO,IAAI,CAAC;aACb,CAAC;iBACD,MAAM,CAAC,CAAC,CAAM;gBACb,OAAO,CAAC,CAAC;aACV,CAAC;SACL,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM;YAC1C,OAAO,CAAC,CAAC,MAAM,KAAK,uBAAuB,CAAC,OAAO,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;IAEO,UAAU,CAAC,CAA2B,EAAE,MAAe,EAAE,KAAc;QAC7E,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;gBACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC1E,MAAM,eAAe,GAAG,GAAG,CAAC;gBAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBAClC,uCACK,QAAQ,KACX,MAAM;wBACN,KAAK,EACL,iBAAiB,EAAE,gBAAgB,EACnC,eAAe,IACf;iBACH;gBACD,OAAO,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;IAEM,GAAG,CAAC,CAA2B;QACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACf;IAEM,GAAG;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;IAEM,MAAM,CAAC,CAA2B,EAAE,MAAe,EAAE,KAAc;QACxE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;KACnC;IAEM,UAAU,CAAC,CAA2B,EAAE,MAAe;QAC5D,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KAClC;IAEM,kBAAkB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM;YACtC,OAAO,CAAC,CAAC,MAAM,KAAK,uBAAuB,CAAC,OAAO,CAAC;SACrD,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;KACxD;;oIAzFU,uCAAuC;wIAAvC,uCAAuC,cAFtC,MAAM;2FAEP,uCAAuC;kBAHnD,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCCY,yCAAyC;IAKpD;QAJQ,eAAU,GAAiC,EAAE,CAAC;QAKpD,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;KAC5C;IAEO,KAAK,CAAC,CAA6B;QACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACxC;IAEO,gBAAgB,CAAC,CAA6B,EAAE,MAAe;QACrE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG;YAChB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ;gBACpB,IAAI,GAAG,CAAC,MAAM,KAAKO,uBAA+B,CAAC,OAAO,EAAE;oBAC1D,MAAM,QAAQ,qBACT,GAAG,CACP,CAAC;oBACF,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;wBAClC,uCACK,QAAQ,KACX,MAAM,EAAE,MAAM,IAAIA,uBAA+B,CAAC,QAAQ,EAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,IAChB;qBACH;oBACD,OAAO,QAAQ,CAAC;iBACjB;gBACD,OAAO,GAAG,CAAC;aACZ,CAAC;SACH,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACxC;IAEM,GAAG,CAAC,CAA6B;QACtC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACf;IAEM,GAAG;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;IAEM,UAAU,CAAC,CAA6B,EAAE,MAAe;QAC9D,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KAClC;IAEM,kBAAkB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM;YACxC,OAAO,CAAC,CAAC,MAAM,KAAKA,uBAA+B,CAAC,OAAO,CAAC;SAC7D,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;KACxD;;sIAtDU,yCAAyC;0IAAzC,yCAAyC,cAFxC,MAAM;2FAEP,yCAAyC;kBAHrD,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCDY,+BAA+B;IAC1C,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;;KAEjC;IAEO,YAAY,CAAC,KAA6B;QAChD,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SAC5C;QAED,OAAO,KAAK,CAAC;KACd;IAEM,OAAO,CAAC,KAAa,EAAE,KAAU;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAClD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;KAC3B;IAEM,OAAO,CAAC,KAAa;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAClD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,KAAK,GAAQ,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC9F,OAAO,KAAK,CAAC;KACd;IAEM,4BAA4B,CAAC,KAAa;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACtD,IAAI,KAAK,GAAQ,IAAI,CAAC;QACtB,IAAI,cAAc,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE;YACxD,KAAK,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,KAAK,CAAC;SAClC;QAED,OAAO,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;KACpC;IAEM,QAAQ,CAAC,KAAa;;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAClD,MAAM,KAAK,GAA2B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAW,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC;cAC/D,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,0CAAE,GAAG,CAAC,KAAK,CAAC,KAAI,EAAE;cACjC,EAAE,CAAC;QACP,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC;YAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;KACd;;4HA7CU,+BAA+B;gIAA/B,+BAA+B,cAF9B,MAAM;2FAEP,+BAA+B;kBAH3C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MCIY,+BAA+B;IAG1C,YACS,gBAAkC,EACjC,8BAA8D;QAD/D,qBAAgB,GAAhB,gBAAgB,CAAkB;QACjC,mCAA8B,GAA9B,8BAA8B,CAAgC;QAJhE,aAAQ,GAAuC,EAAE,CAAC;;KAOzD;IAEO,aAAa,CAAC,CAA2B;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChE;IAEO,kBAAkB,CAAC,CAA2B;QACpD,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAA6B;gBACzC,MAAM,UAAU,qBACX,GAAG,CACP,CAAC;gBACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,UAAU,CAAC;aACnB,CAAC;SACH,CAAC,MAAM,CAAC,CAAC,CAAM;YACd,OAAO,CAAC,CAAC;SACV,CAAC,CAAC;QACH,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChE;IAEO,sBAAsB,CAAC,EAAU;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACnC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAA6B;gBACzC,MAAM,UAAU,qBACX,GAAG,CACP,CAAC;gBACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,UAAU,CAAC;aACnB,CAAC;SACH,CAAC,MAAM,CAAC,CAAC,CAAM;YACd,OAAO,CAAC,CAAC;SACV,CAAC,CAAC;QACH,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChE;IAUO,MAAM,CAAC,GAA6B;QAC1C,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAElD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAM,GAAG,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,SAAS,CAC1E,CAAC,IAAS;YACR,MAAM,iCAEC,IAAI,GACJ,IAAI,GAET,GAAG,CACJ,CAAC;SACH,EACD;YACE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SAC9B,CACF,CAAC;KACH;IAEM,WAAW,CAAC,CAA2B,EAAE,QAAgB,IAAI;QAClE,MAAM,QAAQ,GAAG,WAAW,CAAC;YAC3B,IAAI,CAAC,MAAM,iCACN,CAAC,KACJ,QAAQ,IACR,CAAC;SACJ,EAAE,KAAK,CAAC,CAAC;QAEV,MAAM,GAAG,mCACJ,CAAC,KACJ,EAAE,EAAE,GAAG,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAC3C,QAAQ,GACT,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,GAAG,CAAC;KACZ;IAEM,cAAc,CAAC,CAA2B;QAC/C,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KAC5B;IAEM,kBAAkB,CAAC,EAAU;QAClC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;KACjC;IAEM,eAAe,CAAC,EAAU;QAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAA6B;YACzD,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;KACV;;4HAhHU,+BAA+B;gIAA/B,+BAA+B,cAF9B,MAAM;AAgElB;IARC,oBAAoB,CAAC;QACpB,YAAY,EAAE;YACZ,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SAC1C;QACD,iBAAiB,EAAE;YACjB,YAAY,EAAE,KAAK;SACpB;KACF,CAAC;6DAkBD;2FA/EU,+BAA+B;kBAH3C,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;8IA+DS,MAAM;;ACtEhB;IACY;AAAZ,WAAY,QAAQ;IAClB,8BAAkB,CAAA;IAClB,wCAA4B,CAAA;IAC5B,qBAAS,CAAA;IACT,uBAAW,CAAA;IACX,0BAAc,CAAA;IACd,0BAAc,CAAA;IACd,6BAAiB,CAAA;AACnB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;MAEY,4BAA4B;IACvC;;KAEC;IAEO,WAAW,CAAC,KAAU;QAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC;YAC7C,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;gBACrD,OAAO,IAAI,CAAC;aACb;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzB,IAAI,GAAG,KAAK,QAAQ,CAAC,OAAO,EAAE;oBAC5B,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1E;aACF;YACD,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;SAChD,CAAC,CAAC,CAAC,CAAC,CAAC;KACP;IAEO,YAAY,CAAC,KAAU;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;YACpD,IAAI,IAAI,KAAK,QAAQ,CAAC,EAAE,IAAI,IAAI,KAAK,QAAQ,CAAC,GAAG,EAAE;gBACjD,MAAM,IAAI,GAAI,MAAgB;qBAC3B,GAAG,CAAC,CAAC,CAAM;oBACV,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;wBAC1C,IAAI,MAAM,YAAY,MAAM,EAAE;4BAC5B,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;yBACnC;wBACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;qBAC1C,CAAC,CAAC,CAAC,CAAC,CAAC;iBACP,CAAC;qBACD,MAAM,CAAC,CAAC,CAAM;oBACb,OAAO,CAAC,CAAC;iBACV,CAAC;qBACD,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;gBACrB,OAAO,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;aACrC;YACD,IAAI,MAAM,YAAY,MAAM,EAAE;gBAC5B,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;aACnC;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC1C,CAAC,CAAC;QACH,OAAO,IAAI;aACR,MAAM,CAAC,CAAC,CAAM;YACb,OAAO,CAAC,CAAC;SACV,CAAC;aACD,IAAI,CAAC,OAAO,CAAC,CAAC;KAClB;IAEO,cAAc,CAAC,GAAW,EAAE,KAAkB;QACpD,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE;YACpD,OAAO,EAAE,CAAC;SACX;QACD,IAAI,KAAK,YAAY,MAAM,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACjC;QACD,OAAO,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;KACzB;IAEM,KAAK,CAAC,IAAS;QACpB,IAAI;YACF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAChC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC;SAC5D;KACF;IAEM,gBAAgB,CAAC,KAAa,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK;;QACxD,IAAI,IAAI,GAAQ,IAAI,CAAC;QACrB,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE5B,MAAM,OAAO,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,0CAAE,KAAK,CAAC,GAAG,CAAC,0CAAE,GAAG,CAAC,CAAC,MAAc;gBAC1D,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACzB,OAAO;oBACL,CAAC,KAAK,GAAG;wBACP,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE;qBAClB;iBACF,CAAC;aACH,EAAE,MAAM,CAAC,CAAC,GAAQ,OAAO,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,OAAO,OAAO,IAAI,EAAE,CAAC;SACtB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC;SAC5D;KACF;;;MC7DU,2BAA2B;;wHAA3B,2BAA2B;yHAA3B,2BAA2B,YAjBpC,YAAY;QACZ,gBAAgB,mHAKhB,sBAAsB,4BAEtB,yBAAyB;QACzB,oBAAoB;yHAQX,2BAA2B,aAN3B;QACT,4BAA4B;QAC5B,+BAA+B;QAC/B,+BAA+B;KAChC,YAhBQ;YACP,YAAY;YACZ,gBAAgB;YAChB,eAAe,CAAC,OAAO,EAAE;YACzB,qBAAqB,CAAC,OAAO,EAAE;YAC/B,oCAAoC,CAAC,OAAO,EAAE;YAC9C,4BAA4B,CAAC,OAAO,EAAE;YACtC,sBAAsB;YACtB,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC9C,yBAAyB;YACzB,oBAAoB;SACrB;2FAOU,2BAA2B;kBAnBvC,QAAQ;mBAAC;oBACR,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,eAAe,CAAC,OAAO,EAAE;wBACzB,qBAAqB,CAAC,OAAO,EAAE;wBAC/B,oCAAoC,CAAC,OAAO,EAAE;wBAC9C,4BAA4B,CAAC,OAAO,EAAE;wBACtC,sBAAsB;wBACtB,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;wBAC9C,yBAAyB;wBACzB,oBAAoB;qBACrB;oBACD,SAAS,EAAE;wBACT,4BAA4B;wBAC5B,+BAA+B;wBAC/B,+BAA+B;qBAChC;iBACF;;;ACnCD;;;;ACAA;;;;;;"}