geonetwork-ui 2.4.2 → 2.4.4-dev.9094d472a

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 (188) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +31 -16
  2. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +2 -2
  3. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  4. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +18 -16
  5. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +24 -14
  6. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +16 -18
  7. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +11 -11
  8. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +4 -3
  9. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +6 -7
  10. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -2
  11. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +8 -1
  12. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
  13. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
  14. package/esm2022/libs/ui/dataviz/src/index.mjs +3 -3
  15. package/esm2022/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.mjs +51 -0
  16. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +133 -0
  17. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.data.source.mjs +24 -0
  18. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.mjs +82 -0
  19. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  20. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  21. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  22. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +18 -10
  23. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  24. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  25. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -2
  26. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +14 -12
  27. package/esm2022/libs/util/data-fetcher/src/index.mjs +3 -1
  28. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  29. package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +7 -3
  30. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  31. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  32. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  33. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  34. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  35. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  36. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  37. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  38. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +35 -9
  39. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +14 -10
  40. package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +41 -0
  41. package/esm2022/libs/util/shared/src/lib/services/index.mjs +2 -1
  42. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +4 -4
  43. package/esm2022/translations/de.json +6 -0
  44. package/esm2022/translations/en.json +6 -0
  45. package/esm2022/translations/es.json +6 -0
  46. package/esm2022/translations/fr.json +6 -0
  47. package/esm2022/translations/it.json +7 -0
  48. package/esm2022/translations/nl.json +6 -0
  49. package/esm2022/translations/pt.json +6 -0
  50. package/fesm2022/geonetwork-ui.mjs +957 -485
  51. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  52. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +2 -1
  53. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  54. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  55. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  56. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  57. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +7 -9
  58. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  59. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  60. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  61. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +5 -7
  62. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  63. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +3 -3
  64. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +1 -1
  65. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +1 -0
  66. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  67. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -2
  68. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  69. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  70. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +1 -0
  71. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  72. package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
  73. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  74. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  75. package/libs/ui/dataviz/src/index.d.ts +2 -2
  76. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  77. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts +14 -0
  78. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts.map +1 -0
  79. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +45 -0
  80. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -0
  81. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts +12 -0
  82. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts.map +1 -0
  83. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts +10 -0
  84. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts.map +1 -0
  85. package/libs/ui/elements/src/index.d.ts +1 -0
  86. package/libs/ui/elements/src/index.d.ts.map +1 -1
  87. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  88. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  89. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +5 -0
  90. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  91. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  92. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  93. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  94. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  95. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -2
  96. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  97. package/libs/util/data-fetcher/src/index.d.ts +3 -1
  98. package/libs/util/data-fetcher/src/index.d.ts.map +1 -1
  99. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  100. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  101. package/libs/util/data-fetcher/src/lib/model.d.ts +1 -1
  102. package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
  103. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  104. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  105. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  106. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  107. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  108. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  109. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  110. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  111. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  112. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  113. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  114. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  115. package/libs/util/shared/src/lib/services/date.service.d.ts +13 -0
  116. package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -0
  117. package/libs/util/shared/src/lib/services/index.d.ts +1 -0
  118. package/libs/util/shared/src/lib/services/index.d.ts.map +1 -1
  119. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +2 -1
  120. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -1
  121. package/package.json +1 -1
  122. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +33 -16
  123. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +1 -5
  124. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  125. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +3 -3
  126. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +17 -15
  127. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +43 -20
  128. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +4 -3
  129. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +10 -18
  130. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +3 -4
  131. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +3 -1
  132. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -0
  133. package/src/libs/feature/record/src/lib/feature-record.module.ts +6 -4
  134. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -1
  135. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +13 -0
  136. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
  137. package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
  138. package/src/libs/ui/dataviz/src/index.ts +2 -2
  139. package/src/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.ts +52 -0
  140. package/src/libs/ui/dataviz/src/lib/{table/table.component.css → data-table/data-table.component.css} +4 -0
  141. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +67 -0
  142. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +173 -0
  143. package/src/libs/ui/dataviz/src/lib/data-table/data-table.data.source.ts +33 -0
  144. package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +84 -0
  145. package/src/libs/ui/elements/src/index.ts +1 -0
  146. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  147. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  148. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  149. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  150. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +3 -3
  151. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -2
  152. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  153. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  154. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -0
  155. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +4 -2
  156. package/src/libs/util/data-fetcher/src/index.ts +3 -0
  157. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  158. package/src/libs/util/data-fetcher/src/lib/model.ts +6 -2
  159. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  160. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  161. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  162. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  163. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  164. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  165. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  166. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  167. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +53 -8
  168. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  169. package/src/libs/util/shared/src/lib/services/date.service.ts +45 -0
  170. package/src/libs/util/shared/src/lib/services/index.ts +1 -0
  171. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +6 -3
  172. package/translations/de.json +6 -0
  173. package/translations/en.json +6 -0
  174. package/translations/es.json +6 -0
  175. package/translations/fr.json +6 -0
  176. package/translations/it.json +7 -0
  177. package/translations/nl.json +6 -0
  178. package/translations/pt.json +6 -0
  179. package/translations/sk.json +6 -0
  180. package/esm2022/libs/ui/dataviz/src/lib/table/table.component.mjs +0 -61
  181. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +0 -40
  182. package/libs/ui/dataviz/src/lib/table/table.component.d.ts +0 -29
  183. package/libs/ui/dataviz/src/lib/table/table.component.d.ts.map +0 -1
  184. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +0 -11
  185. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +0 -1
  186. package/src/libs/ui/dataviz/src/lib/table/table.component.html +0 -40
  187. package/src/libs/ui/dataviz/src/lib/table/table.component.ts +0 -80
  188. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +0 -40
@@ -110,6 +110,7 @@ export class RecordApiFormComponent {
110
110
  maxFeatures: limit !== '-1' ? Number(limit) : undefined,
111
111
  limit: limit !== '-1' ? Number(limit) : -1,
112
112
  offset: offset !== '' ? Number(offset) : undefined,
113
+ outputCrs: format === ('application/json' || 'geojson') ? 'EPSG:4326' : undefined,
113
114
  };
114
115
  if (this.endpoint instanceof WfsEndpoint) {
115
116
  delete options.limit;
@@ -135,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
135
136
  }], propDecorators: { apiLink: [{
136
137
  type: Input
137
138
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBWSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFLOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7OztBQUVyRCxNQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLGtCQUFrQjtDQUMzQixDQUFBO0FBZ0JELE1BQU0sT0FBTyxzQkFBc0I7SUFkbkM7UUEwQkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxXQUFNLEdBQUcsSUFBSSxl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QkFBcUIsQ0FDOUMsSUFBSSxDQUFDLGNBQWMsRUFDbkIsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0ExSVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUhDckNuQywyekdBMkZBLHFnQkQ3REksWUFBWSx3TEFDWixrQkFBa0IsK0pBQ2xCLHlCQUF5QixxTkFDekIsdUJBQXVCLDBIQUN2QixlQUFlOzs0RkFHTixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGVBQWU7cUJBQ2hCOzhCQUdZLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNaW1lVHlwZSwgT2djQXBpRW5kcG9pbnQsIFdmc0VuZHBvaW50IH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7XG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IG1pbWVUeXBlVG9Gb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgREVGQVVMVF9QQVJBTVMgPSB7XG4gIE9GRlNFVDogJycsXG4gIExJTUlUOiAnLTEnLFxuICBGT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWFwaS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENvcHlUZXh0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBhcGlMaW5rKHZhbHVlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbikge1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IFt7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfV1cbiAgICB0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IHZhbHVlID8gdmFsdWUuYWNjZXNzU2VydmljZVByb3RvY29sIDogdW5kZWZpbmVkXG4gICAgdGhpcy5hcGlGZWF0dXJlVHlwZSA9IHZhbHVlID8gdmFsdWUubmFtZSA6IHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUudXJsLmhyZWZcbiAgICAgIHRoaXMuY3JlYXRlRW5kcG9pbnQoKS50aGVuKCgpID0+IHRoaXMucGFyc2VPdXRwdXRGb3JtYXRzKCkpXG4gICAgfVxuICAgIHRoaXMucmVzZXRVcmwoKVxuICB9XG5cbiAgb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoREVGQVVMVF9QQVJBTVMuT0ZGU0VUKVxuICBsaW1pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChERUZBVUxUX1BBUkFNUy5GT1JNQVQpXG4gIGVuZHBvaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gIClcbiAgYXBpQmFzZVVybDogc3RyaW5nXG4gIGFwaUZlYXR1cmVUeXBlOiBzdHJpbmdcbiAgc3VwcG9ydE9mZnNldCA9IHRydWVcbiAgYWNjZXNzU2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wgfCB1bmRlZmluZWRcbiAgb3V0cHV0Rm9ybWF0czogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfSxcbiAgXVxuICBlbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZFxuXG4gIGFwaVF1ZXJ5VXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub2Zmc2V0JCxcbiAgICB0aGlzLmxpbWl0JCxcbiAgICB0aGlzLmZvcm1hdCQsXG4gICAgLy8gb25seSBjb21wdXRlIHRoZSB1cmwgaWYgdGhlIGVuZHBvaW50IHdhcyBjcmVhdGVkXG4gICAgdGhpcy5lbmRwb2ludCQucGlwZShmaWx0ZXIoKGVuZHBvaW50KSA9PiAhIWVuZHBvaW50KSksXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2Zmc2V0LCBsaW1pdCwgZm9ybWF0XSkgPT5cbiAgICAgIHRoaXMuZ2VuZXJhdGVBcGlRdWVyeVVybChvZmZzZXQsIGxpbWl0LCBmb3JtYXQpXG4gICAgKVxuICApXG5cbiAgbm9MaW1pdENoZWNrZWQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiBsaW1pdCA9PT0gJy0xJyB8fCBsaW1pdCA9PT0gJycpXG4gIClcbiAgZGlzcGxheUxpbWl0JCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gKGxpbWl0ICE9PSAnLTEnID8gbGltaXQgOiAnJykpXG4gIClcblxuICBzZXRPZmZzZXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgc2V0TGltaXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubGltaXQkLm5leHQodmFsdWUgPT09ICcnID8gJy0xJyA6IHZhbHVlKVxuICB9XG5cbiAgc2V0Rm9ybWF0KHZhbHVlOiBzdHJpbmcgfCB1bmtub3duKSB7XG4gICAgdGhpcy5mb3JtYXQkLm5leHQoU3RyaW5nKHZhbHVlKSlcbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KERFRkFVTFRfUEFSQU1TLk9GRlNFVClcbiAgICB0aGlzLmxpbWl0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICAgIHRoaXMuZm9ybWF0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkZPUk1BVClcbiAgfVxuXG4gIGFzeW5jIHBhcnNlT3V0cHV0Rm9ybWF0cygpIHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVyblxuICAgIGNvbnN0IG91dHB1dEZvcm1hdHMgPSAoYXdhaXQgdGhpcy5nZXRPdXRwdXRGb3JtYXRzKCkpLm1hcChcbiAgICAgIHRoaXMubWltZVR5cGVUb0Zvcm1hdE5hbWVcbiAgICApXG5cbiAgICB0aGlzLm91dHB1dEZvcm1hdHMgPSB0aGlzLm91dHB1dEZvcm1hdHNcbiAgICAgIC5jb25jYXQob3V0cHV0Rm9ybWF0cy5maWx0ZXIoQm9vbGVhbikpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudmFsdWUgPT09IGZvcm1hdC52YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpXG4gIH1cblxuICBtaW1lVHlwZVRvRm9ybWF0TmFtZShtaW1lVHlwZTogTWltZVR5cGUpOiBEcm9wZG93bkNob2ljZSB8IG51bGwge1xuICAgIGNvbnN0IGZvcm1hdE5hbWUgPSBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlKVxuICAgIHJldHVybiBmb3JtYXROYW1lXG4gICAgICA/IHsgbGFiZWw6IGZvcm1hdE5hbWUudG9VcHBlckNhc2UoKSwgdmFsdWU6IG1pbWVUeXBlIH1cbiAgICAgIDogbnVsbFxuICB9XG5cbiAgYXN5bmMgZ2V0T3V0cHV0Rm9ybWF0cygpOiBQcm9taXNlPE1pbWVUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVybiBbXVxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIHRoaXMuc3VwcG9ydE9mZnNldCA9IHRoaXMuZW5kcG9pbnQuc3VwcG9ydHNTdGFydEluZGV4KClcbiAgICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdldFNlcnZpY2VJbmZvKCkub3V0cHV0Rm9ybWF0c1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkluZm8odGhpcy5hcGlGZWF0dXJlVHlwZSkpXG4gICAgICAgIC5pdGVtRm9ybWF0c1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUVuZHBvaW50KCkge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkgcmV0dXJuXG4gICAgaWYgKHRoaXMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgdGhpcy5lbmRwb2ludCA9IG5ldyBXZnNFbmRwb2ludCh0aGlzLmFwaUJhc2VVcmwpXG4gICAgICBhd2FpdCAodGhpcy5lbmRwb2ludCBhcyBXZnNFbmRwb2ludCkuaXNSZWFkeSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5hcGlCYXNlVXJsKVxuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBhd2FpdCB0aGlzLmVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAvLyBpZiB0aGVyZSdzIG9ubHkgb25lIGNvbGxlY3Rpb24sIHVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIG5hbWUgZ2l2ZW4gaW4gdGhlIGxpbmsuXG4gICAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuYXBpRmVhdHVyZVR5cGUgPSBjb2xsZWN0aW9uc1swXS5uYW1lXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW5kcG9pbnQkLm5leHQodGhpcy5lbmRwb2ludClcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlQXBpUXVlcnlVcmwoXG4gICAgb2Zmc2V0OiBzdHJpbmcsXG4gICAgbGltaXQ6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmVuZHBvaW50IHx8ICF0aGlzLmFwaUZlYXR1cmVUeXBlKSByZXR1cm4gJydcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBvdXRwdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgIHN0YXJ0SW5kZXg6IG9mZnNldCA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgbWF4RmVhdHVyZXM6IGxpbWl0ICE9PSAnLTEnID8gTnVtYmVyKGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxpbWl0OiBsaW1pdCAhPT0gJy0xJyA/IE51bWJlcihsaW1pdCkgOiAtMSxcbiAgICAgIG9mZnNldDogb2Zmc2V0ICE9PSAnJyA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLmxpbWl0XG4gICAgICBvcHRpb25zLm1heEZlYXR1cmVzID0gbGltaXQgIT09ICctMScgPyBOdW1iZXIobGltaXQpIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuYXBpRmVhdHVyZVR5cGUsIG9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmVuZHBvaW50LmdldENvbGxlY3Rpb25JdGVtc1VybChcbiAgICAgICAgdGhpcy5hcGlGZWF0dXJlVHlwZSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLThcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgYmctd2hpdGUgcC04IG5nLXN0YXItaW5zZXJ0ZWQgc2hhZG93LXhsIGdhcC04XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LVsxNnB4XSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmNyZWF0ZVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJyZXNldFVybCgpXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgY2FwaXRhbGl6ZSB0ZXh0LXByaW1hcnktbGlnaHRlc3QgaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTNweF0gdXBwZXJjYXNlXCIgdHJhbnNsYXRlPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFxuICAgICAgICA8L3A+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGdyb3cgZ2FwLTVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTRweF1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJtci0yIHctMjBcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNldExpbWl0KCRldmVudClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlMaW1pdCQgfCBhc3luY1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cIm1yLTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJub0xpbWl0Q2hlY2tlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TGltaXQoJy0xJylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0LmFsbDwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgcmVsYXRpdmVcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgW2NsYXNzLnRleHQtZ3JheS02MDBdPVwiIXN1cHBvcnRPZmZzZXRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm9mZnNldFxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInctMjBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9mZnNldCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN1cHBvcnRPZmZzZXRcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInN1cHBvcnRPZmZzZXQgPyBzZXRPZmZzZXQoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhc3VwcG9ydE9mZnNldFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtb3JhbmdlLTUwMCB6LTEwIG1sLTNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJOb3Qgc3VwcG9ydGVkIG9uIHRoaXMgc2VydmljZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0udHlwZTwvcD5cbiAgICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgICAgW3RpdGxlXT1cIicnXCJcbiAgICAgICAgICBleHRyYUJ0bkNsYXNzPVwic2Vjb25kYXJ5IG1pbi13LWZ1bGwgIXctNDAgIXRleHQtYmxhY2tcIlxuICAgICAgICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgW2Nob2ljZXNdPVwib3V0cHV0Rm9ybWF0c1wiXG4gICAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIG1iLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jdXN0b21VcmxcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZC1sZ1wiPlxuICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgW3RleHRdPVwiYXBpUXVlcnlVcmwkIHwgYXN5bmNcIlxuICAgICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBWSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFLOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7OztBQUVyRCxNQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLGtCQUFrQjtDQUMzQixDQUFBO0FBZ0JELE1BQU0sT0FBTyxzQkFBc0I7SUFkbkM7UUEwQkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxXQUFNLEdBQUcsSUFBSSxl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LElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FDOUMsSUFBSSxDQUFDLGNBQWMsRUFDbkIsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0E1SVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUhDckNuQywyekdBMkZBLHFnQkQ3REksWUFBWSx3TEFDWixrQkFBa0IsK0pBQ2xCLHlCQUF5QixxTkFDekIsdUJBQXVCLDBIQUN2QixlQUFlOzs0RkFHTixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGVBQWU7cUJBQ2hCOzhCQUdZLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNaW1lVHlwZSwgT2djQXBpRW5kcG9pbnQsIFdmc0VuZHBvaW50IH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7XG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IG1pbWVUeXBlVG9Gb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgREVGQVVMVF9QQVJBTVMgPSB7XG4gIE9GRlNFVDogJycsXG4gIExJTUlUOiAnLTEnLFxuICBGT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWFwaS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENvcHlUZXh0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBhcGlMaW5rKHZhbHVlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbikge1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IFt7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfV1cbiAgICB0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IHZhbHVlID8gdmFsdWUuYWNjZXNzU2VydmljZVByb3RvY29sIDogdW5kZWZpbmVkXG4gICAgdGhpcy5hcGlGZWF0dXJlVHlwZSA9IHZhbHVlID8gdmFsdWUubmFtZSA6IHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUudXJsLmhyZWZcbiAgICAgIHRoaXMuY3JlYXRlRW5kcG9pbnQoKS50aGVuKCgpID0+IHRoaXMucGFyc2VPdXRwdXRGb3JtYXRzKCkpXG4gICAgfVxuICAgIHRoaXMucmVzZXRVcmwoKVxuICB9XG5cbiAgb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoREVGQVVMVF9QQVJBTVMuT0ZGU0VUKVxuICBsaW1pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChERUZBVUxUX1BBUkFNUy5GT1JNQVQpXG4gIGVuZHBvaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gIClcbiAgYXBpQmFzZVVybDogc3RyaW5nXG4gIGFwaUZlYXR1cmVUeXBlOiBzdHJpbmdcbiAgc3VwcG9ydE9mZnNldCA9IHRydWVcbiAgYWNjZXNzU2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wgfCB1bmRlZmluZWRcbiAgb3V0cHV0Rm9ybWF0czogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfSxcbiAgXVxuICBlbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZFxuXG4gIGFwaVF1ZXJ5VXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub2Zmc2V0JCxcbiAgICB0aGlzLmxpbWl0JCxcbiAgICB0aGlzLmZvcm1hdCQsXG4gICAgLy8gb25seSBjb21wdXRlIHRoZSB1cmwgaWYgdGhlIGVuZHBvaW50IHdhcyBjcmVhdGVkXG4gICAgdGhpcy5lbmRwb2ludCQucGlwZShmaWx0ZXIoKGVuZHBvaW50KSA9PiAhIWVuZHBvaW50KSksXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2Zmc2V0LCBsaW1pdCwgZm9ybWF0XSkgPT5cbiAgICAgIHRoaXMuZ2VuZXJhdGVBcGlRdWVyeVVybChvZmZzZXQsIGxpbWl0LCBmb3JtYXQpXG4gICAgKVxuICApXG5cbiAgbm9MaW1pdENoZWNrZWQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiBsaW1pdCA9PT0gJy0xJyB8fCBsaW1pdCA9PT0gJycpXG4gIClcbiAgZGlzcGxheUxpbWl0JCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gKGxpbWl0ICE9PSAnLTEnID8gbGltaXQgOiAnJykpXG4gIClcblxuICBzZXRPZmZzZXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgc2V0TGltaXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubGltaXQkLm5leHQodmFsdWUgPT09ICcnID8gJy0xJyA6IHZhbHVlKVxuICB9XG5cbiAgc2V0Rm9ybWF0KHZhbHVlOiBzdHJpbmcgfCB1bmtub3duKSB7XG4gICAgdGhpcy5mb3JtYXQkLm5leHQoU3RyaW5nKHZhbHVlKSlcbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KERFRkFVTFRfUEFSQU1TLk9GRlNFVClcbiAgICB0aGlzLmxpbWl0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICAgIHRoaXMuZm9ybWF0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkZPUk1BVClcbiAgfVxuXG4gIGFzeW5jIHBhcnNlT3V0cHV0Rm9ybWF0cygpIHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVyblxuICAgIGNvbnN0IG91dHB1dEZvcm1hdHMgPSAoYXdhaXQgdGhpcy5nZXRPdXRwdXRGb3JtYXRzKCkpLm1hcChcbiAgICAgIHRoaXMubWltZVR5cGVUb0Zvcm1hdE5hbWVcbiAgICApXG5cbiAgICB0aGlzLm91dHB1dEZvcm1hdHMgPSB0aGlzLm91dHB1dEZvcm1hdHNcbiAgICAgIC5jb25jYXQob3V0cHV0Rm9ybWF0cy5maWx0ZXIoQm9vbGVhbikpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudmFsdWUgPT09IGZvcm1hdC52YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpXG4gIH1cblxuICBtaW1lVHlwZVRvRm9ybWF0TmFtZShtaW1lVHlwZTogTWltZVR5cGUpOiBEcm9wZG93bkNob2ljZSB8IG51bGwge1xuICAgIGNvbnN0IGZvcm1hdE5hbWUgPSBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlKVxuICAgIHJldHVybiBmb3JtYXROYW1lXG4gICAgICA/IHsgbGFiZWw6IGZvcm1hdE5hbWUudG9VcHBlckNhc2UoKSwgdmFsdWU6IG1pbWVUeXBlIH1cbiAgICAgIDogbnVsbFxuICB9XG5cbiAgYXN5bmMgZ2V0T3V0cHV0Rm9ybWF0cygpOiBQcm9taXNlPE1pbWVUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVybiBbXVxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIHRoaXMuc3VwcG9ydE9mZnNldCA9IHRoaXMuZW5kcG9pbnQuc3VwcG9ydHNTdGFydEluZGV4KClcbiAgICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdldFNlcnZpY2VJbmZvKCkub3V0cHV0Rm9ybWF0c1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkluZm8odGhpcy5hcGlGZWF0dXJlVHlwZSkpXG4gICAgICAgIC5pdGVtRm9ybWF0c1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUVuZHBvaW50KCkge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkgcmV0dXJuXG4gICAgaWYgKHRoaXMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgdGhpcy5lbmRwb2ludCA9IG5ldyBXZnNFbmRwb2ludCh0aGlzLmFwaUJhc2VVcmwpXG4gICAgICBhd2FpdCAodGhpcy5lbmRwb2ludCBhcyBXZnNFbmRwb2ludCkuaXNSZWFkeSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5hcGlCYXNlVXJsKVxuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBhd2FpdCB0aGlzLmVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAvLyBpZiB0aGVyZSdzIG9ubHkgb25lIGNvbGxlY3Rpb24sIHVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIG5hbWUgZ2l2ZW4gaW4gdGhlIGxpbmsuXG4gICAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuYXBpRmVhdHVyZVR5cGUgPSBjb2xsZWN0aW9uc1swXS5uYW1lXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW5kcG9pbnQkLm5leHQodGhpcy5lbmRwb2ludClcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlQXBpUXVlcnlVcmwoXG4gICAgb2Zmc2V0OiBzdHJpbmcsXG4gICAgbGltaXQ6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmVuZHBvaW50IHx8ICF0aGlzLmFwaUZlYXR1cmVUeXBlKSByZXR1cm4gJydcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBvdXRwdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgIHN0YXJ0SW5kZXg6IG9mZnNldCA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgbWF4RmVhdHVyZXM6IGxpbWl0ICE9PSAnLTEnID8gTnVtYmVyKGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxpbWl0OiBsaW1pdCAhPT0gJy0xJyA/IE51bWJlcihsaW1pdCkgOiAtMSxcbiAgICAgIG9mZnNldDogb2Zmc2V0ICE9PSAnJyA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgb3V0cHV0Q3JzOlxuICAgICAgICBmb3JtYXQgPT09ICgnYXBwbGljYXRpb24vanNvbicgfHwgJ2dlb2pzb24nKSA/ICdFUFNHOjQzMjYnIDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLmxpbWl0XG4gICAgICBvcHRpb25zLm1heEZlYXR1cmVzID0gbGltaXQgIT09ICctMScgPyBOdW1iZXIobGltaXQpIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuYXBpRmVhdHVyZVR5cGUsIG9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmVuZHBvaW50LmdldENvbGxlY3Rpb25JdGVtc1VybChcbiAgICAgICAgdGhpcy5hcGlGZWF0dXJlVHlwZSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLThcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgYmctd2hpdGUgcC04IG5nLXN0YXItaW5zZXJ0ZWQgc2hhZG93LXhsIGdhcC04XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LVsxNnB4XSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmNyZWF0ZVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJyZXNldFVybCgpXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgY2FwaXRhbGl6ZSB0ZXh0LXByaW1hcnktbGlnaHRlc3QgaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTNweF0gdXBwZXJjYXNlXCIgdHJhbnNsYXRlPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFxuICAgICAgICA8L3A+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGdyb3cgZ2FwLTVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTRweF1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJtci0yIHctMjBcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNldExpbWl0KCRldmVudClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlMaW1pdCQgfCBhc3luY1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cIm1yLTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJub0xpbWl0Q2hlY2tlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TGltaXQoJy0xJylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0LmFsbDwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgcmVsYXRpdmVcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgW2NsYXNzLnRleHQtZ3JheS02MDBdPVwiIXN1cHBvcnRPZmZzZXRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm9mZnNldFxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInctMjBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9mZnNldCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN1cHBvcnRPZmZzZXRcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInN1cHBvcnRPZmZzZXQgPyBzZXRPZmZzZXQoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhc3VwcG9ydE9mZnNldFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtb3JhbmdlLTUwMCB6LTEwIG1sLTNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJOb3Qgc3VwcG9ydGVkIG9uIHRoaXMgc2VydmljZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0udHlwZTwvcD5cbiAgICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgICAgW3RpdGxlXT1cIicnXCJcbiAgICAgICAgICBleHRyYUJ0bkNsYXNzPVwic2Vjb25kYXJ5IG1pbi13LWZ1bGwgIXctNDAgIXRleHQtYmxhY2tcIlxuICAgICAgICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgW2Nob2ljZXNdPVwib3V0cHV0Rm9ybWF0c1wiXG4gICAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIG1iLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jdXN0b21VcmxcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZC1sZ1wiPlxuICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgW3RleHRdPVwiYXBpUXVlcnlVcmwkIHwgYXN5bmNcIlxuICAgICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -15,6 +15,7 @@ import { MarkdownParserComponent } from './markdown-parser/markdown-parser.compo
15
15
  import { ThumbnailComponent } from './thumbnail/thumbnail.component';
16
16
  import { TimeSincePipe } from './user-feedback-item/time-since.pipe';
17
17
  import { UserPreviewComponent } from './user-preview/user-preview.component';
18
+ import { ApplicationBannerComponent } from './application-banner/application-banner.component';
18
19
  import * as i0 from "@angular/core";
19
20
  import * as i1 from "@ngx-translate/core";
20
21
  export class UiElementsModule {
@@ -34,11 +35,13 @@ export class UiElementsModule {
34
35
  BadgeComponent,
35
36
  MaxLinesComponent,
36
37
  TextInputComponent,
37
- ImageInputComponent], exports: [ThumbnailComponent,
38
+ ImageInputComponent,
39
+ ApplicationBannerComponent], exports: [ThumbnailComponent,
38
40
  AvatarComponent,
39
41
  UserPreviewComponent,
40
42
  MarkdownParserComponent,
41
- ImageInputComponent] }); }
43
+ ImageInputComponent,
44
+ ApplicationBannerComponent] }); }
42
45
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, providers: [
43
46
  provideNgIconsConfig({
44
47
  size: '1.5em',
@@ -57,7 +60,8 @@ export class UiElementsModule {
57
60
  BadgeComponent,
58
61
  MaxLinesComponent,
59
62
  TextInputComponent,
60
- ImageInputComponent] }); }
63
+ ImageInputComponent,
64
+ ApplicationBannerComponent] }); }
61
65
  }
62
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, decorators: [{
63
67
  type: NgModule,
@@ -81,6 +85,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
81
85
  MaxLinesComponent,
82
86
  TextInputComponent,
83
87
  ImageInputComponent,
88
+ ApplicationBannerComponent,
84
89
  ],
85
90
  providers: [
86
91
  provideNgIconsConfig({
@@ -94,7 +99,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
94
99
  UserPreviewComponent,
95
100
  MarkdownParserComponent,
96
101
  ImageInputComponent,
102
+ ApplicationBannerComponent,
97
103
  ],
98
104
  }]
99
105
  }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3VpLWVsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLG1DQUFtQyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7OztBQXFDNUUsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBVFosZUFBZSxFQUFFLG9CQUFvQixhQXhCbEQsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYyxzQkFFZCxnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixtQkFBbUIsYUFTbkIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLG1CQUFtQjtnSEFHVixnQkFBZ0IsYUFkaEI7WUFDVCxvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDO1NBQ0gsWUF2QkMsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixjQUFjO1lBQ2QsV0FBVztZQUVYLGdCQUFnQjtZQUVoQixrQkFBa0I7WUFFbEIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsbUJBQW1COzs0RkFnQlYsZ0JBQWdCO2tCQW5DNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ3BCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLE9BQU87eUJBQ2QsQ0FBQztxQkFDSDtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUsb0JBQW9CLENBQUM7b0JBQ3JELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQge1xuICBCYWRnZUNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxuICBVaUlucHV0c01vZHVsZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgTWF4TGluZXNDb21wb25lbnQsIFVpTGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCwgVWlXaWRnZXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7IFV0aWxTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCdcbmltcG9ydCB7IEltYWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWlucHV0L2ltYWdlLWlucHV0LmNvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaW1lU2luY2VQaXBlIH0gZnJvbSAnLi91c2VyLWZlZWRiYWNrLWl0ZW0vdGltZS1zaW5jZS5waXBlJ1xuaW1wb3J0IHsgVXNlclByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VzZXItcHJldmlldy91c2VyLXByZXZpZXcuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgVWlXaWRnZXRzTW9kdWxlLFxuICAgIFVpTGF5b3V0TW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFV0aWxTaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgVGltZVNpbmNlUGlwZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBNYXhMaW5lc0NvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgSW1hZ2VJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbQXZhdGFyQ29tcG9uZW50LCBVc2VyUHJldmlld0NvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIFVzZXJQcmV2aWV3Q29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIEltYWdlSW5wdXRDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVpRWxlbWVudHNNb2R1bGUge31cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3VpLWVsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLG1DQUFtQyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUE7OztBQXVDOUYsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBVlosZUFBZSxFQUFFLG9CQUFvQixhQXpCbEQsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYyxzQkFFZCxnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsMEJBQTBCLGFBUzFCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFDbkIsMEJBQTBCO2dIQUdqQixnQkFBZ0IsYUFmaEI7WUFDVCxvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDO1NBQ0gsWUF4QkMsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixjQUFjO1lBQ2QsV0FBVztZQUVYLGdCQUFnQjtZQUVoQixrQkFBa0I7WUFFbEIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLDBCQUEwQjs7NEZBaUJqQixnQkFBZ0I7a0JBckM1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3FCQUMzQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Qsb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxPQUFPO3lCQUNkLENBQUM7cUJBQ0g7b0JBQ0QsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLG9CQUFvQixDQUFDO29CQUNyRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQge1xuICBCYWRnZUNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxuICBVaUlucHV0c01vZHVsZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgTWF4TGluZXNDb21wb25lbnQsIFVpTGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCwgVWlXaWRnZXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7IFV0aWxTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCdcbmltcG9ydCB7IEltYWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWlucHV0L2ltYWdlLWlucHV0LmNvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaW1lU2luY2VQaXBlIH0gZnJvbSAnLi91c2VyLWZlZWRiYWNrLWl0ZW0vdGltZS1zaW5jZS5waXBlJ1xuaW1wb3J0IHsgVXNlclByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VzZXItcHJldmlldy91c2VyLXByZXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgQXBwbGljYXRpb25CYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWJhbm5lci9hcHBsaWNhdGlvbi1iYW5uZXIuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgVWlXaWRnZXRzTW9kdWxlLFxuICAgIFVpTGF5b3V0TW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFV0aWxTaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgVGltZVNpbmNlUGlwZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBNYXhMaW5lc0NvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgSW1hZ2VJbnB1dENvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkJhbm5lckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbQXZhdGFyQ29tcG9uZW50LCBVc2VyUHJldmlld0NvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIFVzZXJQcmV2aWV3Q29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIEltYWdlSW5wdXRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25CYW5uZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVpRWxlbWVudHNNb2R1bGUge31cbiJdfQ==
@@ -58,7 +58,12 @@ export class AutocompleteComponent {
58
58
  const suggestionsFromAction = merge(newValue$.pipe(filter((value) => value.length >= this.minCharacterCount)), externalValueChange$).pipe(tap(() => {
59
59
  this.searching = true;
60
60
  this.error = null;
61
- }), switchMap((value) => this.action(value)), catchError((error) => {
61
+ }), switchMap((value) => this.action(value)), tap((suggestions) => {
62
+ // forcing the panel to open if there are suggestions
63
+ if (suggestions.length > 0) {
64
+ this.triggerRef?.openPanel();
65
+ }
66
+ }), catchError((error) => {
62
67
  this.error = error.message;
63
68
  return of([]);
64
69
  }), finalize(() => (this.searching = false)));
@@ -199,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
199
204
  }], displayWithFn: [{
200
205
  type: Input
201
206
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYy9saWIvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFFckIsc0JBQXNCLEdBQ3ZCLE1BQU0sZ0NBQWdDLENBQUE7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEYsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7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LEVBQUUsUUFBUTt5QkFDZixDQUFDO3FCQUNIO3NGQUtRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQzRCLFVBQVU7c0JBQTVDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNMLFlBQVk7c0JBQXZDLFNBQVM7dUJBQUMsZUFBZTtnQkFDQSxRQUFRO3NCQUFqQyxTQUFTO3VCQUFDLGFBQWE7Z0JBV2YsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgTWF0QXV0b2NvbXBsZXRlLFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSdcbmltcG9ydCB7IGZpcnN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFBvcHVwQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJTZWFyY2ggfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdENsb3NlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVJdGVtID0gdW5rbm93blxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJTZWFyY2gsXG4gICAgICBtYXRDbG9zZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nXG4gIEBJbnB1dCgpIGFjdGlvbjogKHZhbHVlOiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlSXRlbVtdPlxuICBASW5wdXQoKSB2YWx1ZT86IEF1dG9jb21wbGV0ZUl0ZW1cbiAgQElucHV0KCkgY2xlYXJPblNlbGVjdGlvbiA9IGZhbHNlXG4gIEBJbnB1dCgpIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uID0gZmFsc2VcbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2VcbiAgQElucHV0KCkgbWluQ2hhcmFjdGVyQ291bnQ/ID0gM1xuICAvLyB0aGlzIHdpbGwgc2hvdyBhIHN1Ym1pdCBidXR0b24gbmV4dCB0byB0aGUgaW5wdXQ7IGlmIGZhbHNlLCBhIHNlYXJjaCBpY29uIHdpbGwgYXBwZWFyIG9uIHRoZSBsZWZ0XG4gIEBJbnB1dCgpIGFsbG93U3VibWl0ID0gZmFsc2VcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlSXRlbT4oKVxuICBAT3V0cHV0KCkgaW5wdXRTdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICBAT3V0cHV0KCkgaW5wdXRDbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgdHJpZ2dlclJlZjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSkgYXV0b2NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PlxuXG4gIHNlYXJjaGluZzogYm9vbGVhblxuICBjb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIGNhbmNlbEVudGVyID0gdHJ1ZVxuICBzZWxlY3Rpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudD4oMSlcbiAgbGFzdElucHV0VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKVxuICBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZUl0ZW1bXT5cbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgQElucHV0KCkgZGlzcGxheVdpdGhGbjogKGl0ZW06IEF1dG9jb21wbGV0ZUl0ZW0pID0+IHN0cmluZyA9IChpdGVtKSA9PlxuICAgIGl0ZW0udG9TdHJpbmcoKVxuXG4gIGRpc3BsYXlXaXRoRm5JbnRlcm5hbCA9IChpdGVtPzogQXV0b2NvbXBsZXRlSXRlbSkgPT4ge1xuICAgIGlmIChpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5V2l0aEZuKGl0ZW0pXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNoYW5nZXNcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVGV4dFZhbHVlID0gdGhpcy5kaXNwbGF5V2l0aEZuSW50ZXJuYWwodmFsdWUucHJldmlvdXNWYWx1ZSlcbiAgICAgIGNvbnN0IGN1cnJlbnRUZXh0VmFsdWUgPSB0aGlzLmRpc3BsYXlXaXRoRm5JbnRlcm5hbCh2YWx1ZS5jdXJyZW50VmFsdWUpXG4gICAgICBpZiAocHJldmlvdXNUZXh0VmFsdWUgIT09IGN1cnJlbnRUZXh0VmFsdWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHZhbHVlLmN1cnJlbnRWYWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdWYWx1ZSQgPSBtZXJnZShcbiAgICAgIG9mKCcnKSxcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmVkLnBpcGUobWFwKCgpID0+ICcnKSksXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoNDAwKVxuICAgICAgKVxuICAgIClcblxuICAgIGNvbnN0IGV4dGVybmFsVmFsdWVDaGFuZ2UkID0gdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS50aXRsZSksXG4gICAgICBtYXAoKGl0ZW0pID0+IGl0ZW0udGl0bGUpXG4gICAgKVxuXG4gICAgLy8gdGhpcyBvYnNlcnZhYmxlIGVtaXRzIGFycmF5cyBvZiBzdWdnZXN0aW9ucyBsb2FkZWQgdXNpbmcgdGhlIGdpdmVuIGFjdGlvblxuICAgIGNvbnN0IHN1Z2dlc3Rpb25zRnJvbUFjdGlvbiA9IG1lcmdlKFxuICAgICAgbmV3VmFsdWUkLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUubGVuZ3RoID49IHRoaXMubWluQ2hhcmFjdGVyQ291bnQpXG4gICAgICApLFxuICAgICAgZXh0ZXJuYWxWYWx1ZUNoYW5nZSRcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaGluZyA9IHRydWVcbiAgICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdGhpcy5hY3Rpb24odmFsdWUpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmVycm9yID0gZXJyb3IubWVzc2FnZVxuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLnNlYXJjaGluZyA9IGZhbHNlKSlcbiAgICApXG5cbiAgICB0aGlzLnN1Z2dlc3Rpb25zJCA9IG1lcmdlKFxuICAgICAgc3VnZ2VzdGlvbnNGcm9tQWN0aW9uLFxuICAgICAgLy8gaWYgYSBuZXcgdmFsdWUgaXMgdW5kZXIgdGhlIG1pbiBjaGFyIGNvdW50LCBjbGVhciBzdWdnZXN0aW9uc1xuICAgICAgbmV3VmFsdWUkLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUubGVuZ3RoIDwgdGhpcy5taW5DaGFyYWN0ZXJDb3VudCksXG4gICAgICAgIG1hcCgoKSA9PiBbXSlcbiAgICAgIClcbiAgICApXG5cbiAgICAvLyBjbG9zZSB0aGUgcGFuZWwgd2hlbmV2ZXIgc3VnZ2VzdGlvbnMgYXJlIGNsZWFyZWRcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnN1Z2dlc3Rpb25zJFxuICAgICAgICAucGlwZShmaWx0ZXIoKHN1Z2dlc3Rpb25zKSA9PiBzdWdnZXN0aW9ucy5sZW5ndGggPT09IDApKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJSZWY/LmNsb3NlUGFuZWwoKVxuICAgICAgICB9KVxuICAgIClcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChhbnkpID0+IHtcbiAgICAgICAgaWYgKGFueSAhPT0gJycpIHtcbiAgICAgICAgICB0aGlzLmNhbmNlbEVudGVyID0gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG5cbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5sYXN0SW5wdXRWYWx1ZSQpXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGUub3B0aW9uU2VsZWN0ZWQuc3Vic2NyaWJlKHRoaXMuc2VsZWN0aW9uU3ViamVjdClcbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gIH1cblxuICB1cGRhdGVJbnB1dFZhbHVlKHZhbHVlOiBBdXRvY29tcGxldGVJdGVtKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpXG4gICAgfVxuICAgIGlmICh0aGlzLmlucHV0UmVmKSB7XG4gICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAodmFsdWUgYXMgYW55KT8udGl0bGUgfHwgJydcbiAgICB9XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgIHRoaXMuaW5wdXRDbGVhcmVkLmVtaXQoKVxuICAgIHRoaXMuc2VsZWN0aW9uU3ViamVjdFxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4gc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5vcHRpb24uZGVzZWxlY3QoKSlcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgaGFuZGxlRW50ZXIoYW55OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY2FuY2VsRW50ZXIgJiYgdGhpcy5hbGxvd1N1Ym1pdCkge1xuICAgICAgdGhpcy5pbnB1dFN1Ym1pdHRlZC5lbWl0KGFueSlcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDbGlja1NlYXJjaCgpIHtcbiAgICB0aGlzLmlucHV0U3VibWl0dGVkLmVtaXQodGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZCBpbiB0aGUgbGlzdCBvZiBkaXNwbGF5ZWQgaXRlbXMuXG4gICAqIElmIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uIGlzIHRydWUgdGhlbiB0aGUgaW5wdXQgd2lsbCBiZSBsZWZ0IGFzIGVudGVyZWQgYnkgdGhlIHVzZXIuXG4gICAqIElmIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uIGlzIGZhbHNlIChieSBkZWZhdWx0KSB0aGVuIHRoZSBpbnB1dCB3aWxsIGJlIGNvbXBsZXRlZCB3aXRoIHRoZSBpdGVtIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLlxuICAgKiBJZiBjbGVhck9uU2VsZWN0aW9uIGlzIHRydWUgdGhlbiB0aGUgaW5wdXQgd2lsbCBiZSBjbGVhcmVkIHVwb24gc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIGhhbmRsZVNlbGVjdGlvbihldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIHRoaXMuY2FuY2VsRW50ZXIgPSB0cnVlXG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChldmVudC5vcHRpb24udmFsdWUpXG4gICAgaWYgKHRoaXMucHJldmVudENvbXBsZXRlT25TZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMubGFzdElucHV0VmFsdWUkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChsYXN0SW5wdXRWYWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBsYXN0SW5wdXRWYWx1ZVxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5jbGVhck9uU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnKVxuICAgIH1cbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgaW5saW5lLWJsb2NrIHJlbGF0aXZlXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LXktWy0taWNvbi1wYWRkaW5nXSBsZWZ0LVstLWljb24tcGFkZGluZ10gdy1bLS1pY29uLXdpZHRoXSBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAqbmdJZj1cIiFhbGxvd1N1Ym1pdFwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclNlYXJjaFwiIGNsYXNzPVwidGV4dC1wcmltYXJ5IHNlYXJjaFwiPjwvbmctaWNvbj5cbiAgPC9kaXY+XG4gIDxpbnB1dFxuICAgICNzZWFyY2hJbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBjbGFzcz1cImduLXVpLXRleHQtaW5wdXRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdweC1bLS1pY29uLXdpZHRoXSc6ICFhbGxvd1N1Ym1pdCxcbiAgICB9XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgIChrZXl1cC5lbnRlcik9XCJoYW5kbGVFbnRlcihzZWFyY2hJbnB1dC52YWx1ZSlcIlxuICAvPlxuICA8Z24tdWktYnV0dG9uXG4gICAgdHlwZT1cImxpZ2h0XCJcbiAgICBleHRyYUNsYXNzPVwiYm9yZGVyLTAgdGV4dC1wcmltYXJ5LWxpZ2h0ZXN0IGhvdmVyOnRleHQtcHJpbWFyeSBmb2N1czp0ZXh0LXByaW1hcnkgYWJzb2x1dGUgaW5zZXQteS1bLS1pY29uLXBhZGRpbmddIHt7XG4gICAgICBhbGxvd1N1Ym1pdFxuICAgICAgICA/ICdyaWdodC1bY2FsYyh2YXIoLS1pY29uLXdpZHRoKSt2YXIoLS1pY29uLXBhZGRpbmcpKV0nXG4gICAgICAgIDogJ3JpZ2h0LVstLWljb24tcGFkZGluZ10nXG4gICAgfX1cIlxuICAgIGRhdGEtdGVzdD1cImNsZWFyLWJ0blwiXG4gICAgKm5nSWY9XCJzZWFyY2hJbnB1dC52YWx1ZVwiXG4gICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAoYnV0dG9uQ2xpY2spPVwiY2xlYXIoKVwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIj48L25nLWljb24+XG4gIDwvZ24tdWktYnV0dG9uPlxuICA8Z24tdWktYnV0dG9uXG4gICAgdHlwZT1cImxpZ2h0XCJcbiAgICBleHRyYUNsYXNzPVwiYm9yZGVyLTAgYm9yZGVyLWwtWzFweF0gYm9yZGVyLWdyYXktMzAwIGhvdmVyOmJvcmRlci1ncmF5LTUwMCB0ZXh0LXByaW1hcnkgaG92ZXI6dGV4dC1wcmltYXJ5LWRhcmtlc3QgZm9jdXM6dGV4dC1wcmltYXJ5LWRhcmtlc3QgYWJzb2x1dGUgaW5zZXQteS1bLS1pY29uLXBhZGRpbmddIHJpZ2h0LVstLWljb24tcGFkZGluZ11cIlxuICAgIGFyaWEtbGFiZWw9XCJUcmlnZ2VyIHNlYXJjaFwiXG4gICAgKm5nSWY9XCJhbGxvd1N1Ym1pdFwiXG4gICAgZGF0YS10ZXN0PVwiYXV0b2NvbXBsZXRlLXN1Ym1pdC1idG5cIlxuICAgIChidXR0b25DbGljayk9XCJoYW5kbGVDbGlja1NlYXJjaCgpXCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyU2VhcmNoXCI+PC9uZy1pY29uPlxuICA8L2duLXVpLWJ1dHRvbj5cblxuICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAqbmdJZj1cImVycm9yXCJcbiAgICBjbGFzcz1cImFic29sdXRlIG10LTIgdy1mdWxsIHRvcC1bMTAwJV0gbGVmdC0wXCJcbiAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgcG9zaXRpb249XCJ0b3BcIlxuICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgPlxuICAgIDxzcGFuIHRyYW5zbGF0ZT5zZWFyY2guYXV0b2NvbXBsZXRlLmVycm9yPC9zcGFuPlxuICAgIHt7IGVycm9yIH19XG4gIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG48L3NwYW4+XG5cbjxtYXQtYXV0b2NvbXBsZXRlXG4gICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgKG9wdGlvblNlbGVjdGVkKT1cImhhbmRsZVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoRm5JbnRlcm5hbFwiXG4+XG4gIDxtYXQtb3B0aW9uXG4gICAgKm5nRm9yPVwibGV0IHN1Z2dlc3Rpb24gb2Ygc3VnZ2VzdGlvbnMkIHwgYXN5bmNcIlxuICAgIFt2YWx1ZV09XCJzdWdnZXN0aW9uXCJcbiAgICBjbGFzcz1cInAtMiBzdWdnZXN0aW9uXCJcbiAgPlxuICAgIHt7IGRpc3BsYXlXaXRoRm5JbnRlcm5hbChzdWdnZXN0aW9uKSB9fVxuICA8L21hdC1vcHRpb24+XG48L21hdC1hdXRvY29tcGxldGU+XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYy9saWIvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFFckIsc0JBQXNCLEdBQ3ZCLE1BQU0sZ0NBQWdDLENBQUE7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEYsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7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QkFDbkIscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCLGFBQ1U7d0JBQ1QsWUFBWSxDQUFDOzRCQUNYLGFBQWE7NEJBQ2IsUUFBUTt5QkFDVCxDQUFDO3dCQUNGLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsUUFBUTt5QkFDZixDQUFDO3FCQUNIO3NGQUtRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQzRCLFVBQVU7c0JBQTVDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNMLFlBQVk7c0JBQXZDLFNBQVM7dUJBQUMsZUFBZTtnQkFDQSxRQUFRO3NCQUFqQyxTQUFTO3VCQUFDLGFBQWE7Z0JBV2YsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgTWF0QXV0b2NvbXBsZXRlLFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSdcbmltcG9ydCB7IGZpcnN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFBvcHVwQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJTZWFyY2ggfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdENsb3NlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVJdGVtID0gdW5rbm93blxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJTZWFyY2gsXG4gICAgICBtYXRDbG9zZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nXG4gIEBJbnB1dCgpIGFjdGlvbjogKHZhbHVlOiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlSXRlbVtdPlxuICBASW5wdXQoKSB2YWx1ZT86IEF1dG9jb21wbGV0ZUl0ZW1cbiAgQElucHV0KCkgY2xlYXJPblNlbGVjdGlvbiA9IGZhbHNlXG4gIEBJbnB1dCgpIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uID0gZmFsc2VcbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2VcbiAgQElucHV0KCkgbWluQ2hhcmFjdGVyQ291bnQ/ID0gM1xuICAvLyB0aGlzIHdpbGwgc2hvdyBhIHN1Ym1pdCBidXR0b24gbmV4dCB0byB0aGUgaW5wdXQ7IGlmIGZhbHNlLCBhIHNlYXJjaCBpY29uIHdpbGwgYXBwZWFyIG9uIHRoZSBsZWZ0XG4gIEBJbnB1dCgpIGFsbG93U3VibWl0ID0gZmFsc2VcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlSXRlbT4oKVxuICBAT3V0cHV0KCkgaW5wdXRTdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICBAT3V0cHV0KCkgaW5wdXRDbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgdHJpZ2dlclJlZjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSkgYXV0b2NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PlxuXG4gIHNlYXJjaGluZzogYm9vbGVhblxuICBjb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIGNhbmNlbEVudGVyID0gdHJ1ZVxuICBzZWxlY3Rpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudD4oMSlcbiAgbGFzdElucHV0VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKVxuICBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZUl0ZW1bXT5cbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgQElucHV0KCkgZGlzcGxheVdpdGhGbjogKGl0ZW06IEF1dG9jb21wbGV0ZUl0ZW0pID0+IHN0cmluZyA9IChpdGVtKSA9PlxuICAgIGl0ZW0udG9TdHJpbmcoKVxuXG4gIGRpc3BsYXlXaXRoRm5JbnRlcm5hbCA9IChpdGVtPzogQXV0b2NvbXBsZXRlSXRlbSkgPT4ge1xuICAgIGlmIChpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5V2l0aEZuKGl0ZW0pXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNoYW5nZXNcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVGV4dFZhbHVlID0gdGhpcy5kaXNwbGF5V2l0aEZuSW50ZXJuYWwodmFsdWUucHJldmlvdXNWYWx1ZSlcbiAgICAgIGNvbnN0IGN1cnJlbnRUZXh0VmFsdWUgPSB0aGlzLmRpc3BsYXlXaXRoRm5JbnRlcm5hbCh2YWx1ZS5jdXJyZW50VmFsdWUpXG4gICAgICBpZiAocHJldmlvdXNUZXh0VmFsdWUgIT09IGN1cnJlbnRUZXh0VmFsdWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHZhbHVlLmN1cnJlbnRWYWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdWYWx1ZSQgPSBtZXJnZShcbiAgICAgIG9mKCcnKSxcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmVkLnBpcGUobWFwKCgpID0+ICcnKSksXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoNDAwKVxuICAgICAgKVxuICAgIClcblxuICAgIGNvbnN0IGV4dGVybmFsVmFsdWVDaGFuZ2UkID0gdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS50aXRsZSksXG4gICAgICBtYXAoKGl0ZW0pID0+IGl0ZW0udGl0bGUpXG4gICAgKVxuXG4gICAgLy8gdGhpcyBvYnNlcnZhYmxlIGVtaXRzIGFycmF5cyBvZiBzdWdnZXN0aW9ucyBsb2FkZWQgdXNpbmcgdGhlIGdpdmVuIGFjdGlvblxuICAgIGNvbnN0IHN1Z2dlc3Rpb25zRnJvbUFjdGlvbiA9IG1lcmdlKFxuICAgICAgbmV3VmFsdWUkLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUubGVuZ3RoID49IHRoaXMubWluQ2hhcmFjdGVyQ291bnQpXG4gICAgICApLFxuICAgICAgZXh0ZXJuYWxWYWx1ZUNoYW5nZSRcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaGluZyA9IHRydWVcbiAgICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdGhpcy5hY3Rpb24odmFsdWUpKSxcbiAgICAgIHRhcCgoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgICAgLy8gZm9yY2luZyB0aGUgcGFuZWwgdG8gb3BlbiBpZiB0aGVyZSBhcmUgc3VnZ2VzdGlvbnNcbiAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJSZWY/Lm9wZW5QYW5lbCgpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvci5tZXNzYWdlXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuc2VhcmNoaW5nID0gZmFsc2UpKVxuICAgIClcblxuICAgIHRoaXMuc3VnZ2VzdGlvbnMkID0gbWVyZ2UoXG4gICAgICBzdWdnZXN0aW9uc0Zyb21BY3Rpb24sXG4gICAgICAvLyBpZiBhIG5ldyB2YWx1ZSBpcyB1bmRlciB0aGUgbWluIGNoYXIgY291bnQsIGNsZWFyIHN1Z2dlc3Rpb25zXG4gICAgICBuZXdWYWx1ZSQucGlwZShcbiAgICAgICAgZmlsdGVyKCh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkNoYXJhY3RlckNvdW50KSxcbiAgICAgICAgbWFwKCgpID0+IFtdKVxuICAgICAgKVxuICAgIClcblxuICAgIC8vIGNsb3NlIHRoZSBwYW5lbCB3aGVuZXZlciBzdWdnZXN0aW9ucyBhcmUgY2xlYXJlZFxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnMkXG4gICAgICAgIC5waXBlKGZpbHRlcigoc3VnZ2VzdGlvbnMpID0+IHN1Z2dlc3Rpb25zLmxlbmd0aCA9PT0gMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudHJpZ2dlclJlZj8uY2xvc2VQYW5lbCgpXG4gICAgICAgIH0pXG4gICAgKVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGFueSkgPT4ge1xuICAgICAgICBpZiAoYW55ICE9PSAnJykge1xuICAgICAgICAgIHRoaXMuY2FuY2VsRW50ZXIgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcblxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKGZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmxhc3RJbnB1dFZhbHVlJClcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25TZWxlY3RlZC5zdWJzY3JpYmUodGhpcy5zZWxlY3Rpb25TdWJqZWN0KVxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHVwZGF0ZUlucHV0VmFsdWUodmFsdWU6IEF1dG9jb21wbGV0ZUl0ZW0pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSlcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICh2YWx1ZSBhcyBhbnkpPy50aXRsZSB8fCAnJ1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnXG4gICAgdGhpcy5pbnB1dENsZWFyZWQuZW1pdCgpXG4gICAgdGhpcy5zZWxlY3Rpb25TdWJqZWN0XG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiBzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLm9wdGlvbi5kZXNlbGVjdCgpKVxuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICBoYW5kbGVFbnRlcihhbnk6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jYW5jZWxFbnRlciAmJiB0aGlzLmFsbG93U3VibWl0KSB7XG4gICAgICB0aGlzLmlucHV0U3VibWl0dGVkLmVtaXQoYW55KVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsaWNrU2VhcmNoKCkge1xuICAgIHRoaXMuaW5wdXRTdWJtaXR0ZWQuZW1pdCh0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgd2hlbiBhbiBpdGVtIGlzIHNlbGVjdGVkIGluIHRoZSBsaXN0IG9mIGRpc3BsYXllZCBpdGVtcy5cbiAgICogSWYgcHJldmVudENvbXBsZXRlT25TZWxlY3Rpb24gaXMgdHJ1ZSB0aGVuIHRoZSBpbnB1dCB3aWxsIGJlIGxlZnQgYXMgZW50ZXJlZCBieSB0aGUgdXNlci5cbiAgICogSWYgcHJldmVudENvbXBsZXRlT25TZWxlY3Rpb24gaXMgZmFsc2UgKGJ5IGRlZmF1bHQpIHRoZW4gdGhlIGlucHV0IHdpbGwgYmUgY29tcGxldGVkIHdpdGggdGhlIGl0ZW0gc2VsZWN0ZWQgYnkgdGhlIHVzZXIuXG4gICAqIElmIGNsZWFyT25TZWxlY3Rpb24gaXMgdHJ1ZSB0aGVuIHRoZSBpbnB1dCB3aWxsIGJlIGNsZWFyZWQgdXBvbiBzZWxlY3Rpb24uXG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgaGFuZGxlU2VsZWN0aW9uKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy5jYW5jZWxFbnRlciA9IHRydWVcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGV2ZW50Lm9wdGlvbi52YWx1ZSlcbiAgICBpZiAodGhpcy5wcmV2ZW50Q29tcGxldGVPblNlbGVjdGlvbikge1xuICAgICAgdGhpcy5sYXN0SW5wdXRWYWx1ZSQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKGxhc3RJbnB1dFZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IGxhc3RJbnB1dFZhbHVlXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICh0aGlzLmNsZWFyT25TZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJycpXG4gICAgfVxuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInctZnVsbCBpbmxpbmUtYmxvY2sgcmVsYXRpdmVcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQteS1bLS1pY29uLXBhZGRpbmddIGxlZnQtWy0taWNvbi1wYWRkaW5nXSB3LVstLWljb24td2lkdGhdIHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICpuZ0lmPVwiIWFsbG93U3VibWl0XCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyU2VhcmNoXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgc2VhcmNoXCI+PC9uZy1pY29uPlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgI3NlYXJjaElucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiZ24tdWktdGV4dC1pbnB1dFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3B4LVstLWljb24td2lkdGhdJzogIWFsbG93U3VibWl0LFxuICAgIH1cIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgKGtleXVwLmVudGVyKT1cImhhbmRsZUVudGVyKHNlYXJjaElucHV0LnZhbHVlKVwiXG4gIC8+XG4gIDxnbi11aS1idXR0b25cbiAgICB0eXBlPVwibGlnaHRcIlxuICAgIGV4dHJhQ2xhc3M9XCJib3JkZXItMCB0ZXh0LXByaW1hcnktbGlnaHRlc3QgaG92ZXI6dGV4dC1wcmltYXJ5IGZvY3VzOnRleHQtcHJpbWFyeSBhYnNvbHV0ZSBpbnNldC15LVstLWljb24tcGFkZGluZ10ge3tcbiAgICAgIGFsbG93U3VibWl0XG4gICAgICAgID8gJ3JpZ2h0LVtjYWxjKHZhcigtLWljb24td2lkdGgpK3ZhcigtLWljb24tcGFkZGluZykpXSdcbiAgICAgICAgOiAncmlnaHQtWy0taWNvbi1wYWRkaW5nXSdcbiAgICB9fVwiXG4gICAgZGF0YS10ZXN0PVwiY2xlYXItYnRuXCJcbiAgICAqbmdJZj1cInNlYXJjaElucHV0LnZhbHVlXCJcbiAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgIChidXR0b25DbGljayk9XCJjbGVhcigpXCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJtYXRDbG9zZVwiPjwvbmctaWNvbj5cbiAgPC9nbi11aS1idXR0b24+XG4gIDxnbi11aS1idXR0b25cbiAgICB0eXBlPVwibGlnaHRcIlxuICAgIGV4dHJhQ2xhc3M9XCJib3JkZXItMCBib3JkZXItbC1bMXB4XSBib3JkZXItZ3JheS0zMDAgaG92ZXI6Ym9yZGVyLWdyYXktNTAwIHRleHQtcHJpbWFyeSBob3Zlcjp0ZXh0LXByaW1hcnktZGFya2VzdCBmb2N1czp0ZXh0LXByaW1hcnktZGFya2VzdCBhYnNvbHV0ZSBpbnNldC15LVstLWljb24tcGFkZGluZ10gcmlnaHQtWy0taWNvbi1wYWRkaW5nXVwiXG4gICAgYXJpYS1sYWJlbD1cIlRyaWdnZXIgc2VhcmNoXCJcbiAgICAqbmdJZj1cImFsbG93U3VibWl0XCJcbiAgICBkYXRhLXRlc3Q9XCJhdXRvY29tcGxldGUtc3VibWl0LWJ0blwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cImhhbmRsZUNsaWNrU2VhcmNoKClcIlxuICA+XG4gICAgPG5nLWljb24gbmFtZT1cImljb25vaXJTZWFyY2hcIj48L25nLWljb24+XG4gIDwvZ24tdWktYnV0dG9uPlxuXG4gIDxnbi11aS1wb3B1cC1hbGVydFxuICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgIGNsYXNzPVwiYWJzb2x1dGUgbXQtMiB3LWZ1bGwgdG9wLVsxMDAlXSBsZWZ0LTBcIlxuICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICBwb3NpdGlvbj1cInRvcFwiXG4gICAgdHlwZT1cIndhcm5pbmdcIlxuICA+XG4gICAgPHNwYW4gdHJhbnNsYXRlPnNlYXJjaC5hdXRvY29tcGxldGUuZXJyb3I8L3NwYW4+XG4gICAge3sgZXJyb3IgfX1cbiAgPC9nbi11aS1wb3B1cC1hbGVydD5cbjwvc3Bhbj5cblxuPG1hdC1hdXRvY29tcGxldGVcbiAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0aW9uKCRldmVudClcIlxuICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVdpdGhGbkludGVybmFsXCJcbj5cbiAgPG1hdC1vcHRpb25cbiAgICAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBzdWdnZXN0aW9ucyQgfCBhc3luY1wiXG4gICAgW3ZhbHVlXT1cInN1Z2dlc3Rpb25cIlxuICAgIGNsYXNzPVwicC0yIHN1Z2dlc3Rpb25cIlxuICA+XG4gICAge3sgZGlzcGxheVdpdGhGbkludGVybmFsKHN1Z2dlc3Rpb24pIH19XG4gIDwvbWF0LW9wdGlvbj5cbjwvbWF0LWF1dG9jb21wbGV0ZT5cbiJdfQ==
@@ -2,7 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChildren, ViewContainerRef, } from '@angular/core';
3
3
  import { BadgeComponent, UiInputsModule } from '../../../../../../libs/ui/inputs/src';
4
4
  import { InteractiveTableColumnComponent, InteractiveTableComponent, } from '../../../../../../libs/ui/layout/src';
5
- import { formatUserInfo, getBadgeColor, getFileFormat, getFormatPriority, } from '../../../../../../libs/util/shared/src';
5
+ import { DateService, formatUserInfo, getBadgeColor, getFileFormat, getFormatPriority, } from '../../../../../../libs/util/shared/src';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
7
  import { ActionMenuComponent } from './action-menu/action-menu.component';
8
8
  import { NgIconComponent, provideIcons } from '@ng-icons/core';
@@ -12,16 +12,18 @@ import { TemplatePortal } from '@angular/cdk/portal';
12
12
  import { matMoreVert } from '@ng-icons/material-icons/baseline';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/cdk/overlay";
15
- import * as i2 from "@angular/common";
16
- import * as i3 from "../../../../inputs/src/lib/button/button.component";
17
- import * as i4 from "../../../../inputs/src/lib/checkbox/checkbox.component";
18
- import * as i5 from "../../../../inputs/src/lib/badge/badge.component";
19
- import * as i6 from "@ngx-translate/core";
15
+ import * as i2 from "../../../../../../libs/util/shared/src";
16
+ import * as i3 from "@angular/common";
17
+ import * as i4 from "../../../../inputs/src/lib/button/button.component";
18
+ import * as i5 from "../../../../inputs/src/lib/checkbox/checkbox.component";
19
+ import * as i6 from "../../../../inputs/src/lib/badge/badge.component";
20
+ import * as i7 from "@ngx-translate/core";
20
21
  export class ResultsTableComponent {
21
- constructor(overlay, viewContainerRef, cdr) {
22
+ constructor(overlay, viewContainerRef, cdr, dateService) {
22
23
  this.overlay = overlay;
23
24
  this.viewContainerRef = viewContainerRef;
24
25
  this.cdr = cdr;
26
+ this.dateService = dateService;
25
27
  this.records = [];
26
28
  this.selectedRecordsIdentifiers = [];
27
29
  this.sortOrder = null;
@@ -81,7 +83,7 @@ export class ResultsTableComponent {
81
83
  }
82
84
  }
83
85
  dateToString(date) {
84
- return date?.toLocaleDateString(undefined, {
86
+ return this.dateService.formatDate(date, {
85
87
  year: 'numeric',
86
88
  month: 'long',
87
89
  day: 'numeric',
@@ -136,8 +138,8 @@ export class ResultsTableComponent {
136
138
  handleRecordSelectedChange(selected, record) {
137
139
  this.recordsSelectedChange.emit([[record], selected]);
138
140
  }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i3.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i4.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i5.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete", "closeActionMenu"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i2.DateService }], target: i0.ɵɵFactoryTarget.Component }); }
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", hasDraft: "hasDraft", canDuplicate: "canDuplicate", canDelete: "canDelete", isDraftPage: "isDraftPage", isDuplicating: "isDuplicating" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", deleteRecord: "deleteRecord", recordsSelectedChange: "recordsSelectedChange" }, providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i4.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i5.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i6.BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items", "isDraftPage"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "width", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "canDelete"], outputs: ["duplicate", "delete", "closeActionMenu"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }] }); }
141
143
  }
142
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResultsTableComponent, decorators: [{
143
145
  type: Component,
@@ -152,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
152
154
  NgIconComponent,
153
155
  CdkOverlayOrigin,
154
156
  ], providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })], template: "<gn-ui-interactive-table\n [items]=\"records\"\n [isDraftPage]=\"isDraftPage\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'3rem'\">\n <ng-template #cell let-item let-i=\"index\">\n <ng-icon\n name=\"iconoirLock\"\n class=\"text-purple\"\n *ngIf=\"!item.extras?.edit && !isDraftPage\"\n ></ng-icon>\n <gn-ui-checkbox\n *ngIf=\"item.extras?.edit || isDraftPage\"\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [grow]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full font-semibold\">\n <span data-cy=\"resultItemTitle\" class=\"overflow-hidden text-ellipsis\">{{\n item.title\n }}</span>\n <gn-ui-badge\n *ngIf=\"hasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.2em 0.6em'\"\n [style.--gn-ui-badge-text-size]=\"'12px'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'9rem'\">\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2 font-medium\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-xs text-gray-900 px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0 text-xs\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'12rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.user</span>\n </ng-template>\n <ng-template #cell let-item>\n <ng-icon name=\"iconoirUser\" size=\"16px\"></ng-icon>\n <span data-cy=\"ownerInfo\" class=\"text-xs\">{{\n formatUserInfo(item.extras?.ownerInfo)\n }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column [width]=\"'6rem'\">\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n <span class=\"text-xs\">\n {{\n (item.extras?.['isPublishedToAll']\n ? 'record.metadata.status.published'\n : 'record.metadata.status.notPublished'\n ) | translate\n }}</span\n >\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [width]=\"'8rem'\"\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>search.filters.changeDate</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex text-left w-full text-xs\">\n {{\n item.extras?.['isPublishedToAll']\n ? dateToString(item.recordUpdated)\n : '-'\n }}\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-button\n cdkOverlayOrigin\n #actionMenuButton\n (buttonClick)=\"openActionMenu(item, template)\"\n type=\"light\"\n data-test=\"record-menu-button\"\n [disabled]=\"!item.extras?.edit && !isDraftPage\"\n >\n <ng-icon\n [ngClass]=\"{\n 'text-purple-light': !item.extras?.edit && !isDraftPage,\n }\"\n name=\"matMoreVert\"\n ></ng-icon>\n </gn-ui-button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDuplicate]=\"canDuplicate(item) && !isDuplicating\"\n [canDelete]=\"canDelete(item)\"\n (duplicate)=\"handleDuplicate(item)\"\n (delete)=\"handleDelete(item)\"\n (closeActionMenu)=\"closeActionMenu()\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
155
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { records: [{
157
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i2.DateService }], propDecorators: { records: [{
156
158
  type: Input
157
159
  }], selectedRecordsIdentifiers: [{
158
160
  type: Input
@@ -182,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
182
184
  type: ViewChildren,
183
185
  args: ['actionMenuButton', { read: ElementRef }]
184
186
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckYsT0FBTyxFQUNMLCtCQUErQixFQUMvQix5QkFBeUIsR0FDMUIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBRUwsY0FBYyxFQUNkLGFBQWEsRUFDYixhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sd0NBQXdDLENBQUE7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM1RCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FFUixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8s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R0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBS1AsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgRmllbGRTb3J0LFxuICBTb3J0QnlGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQsIFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHtcbiAgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgSW50ZXJhY3RpdmVUYWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHtcbiAgRmlsZUZvcm1hdCxcbiAgZm9ybWF0VXNlckluZm8sXG4gIGdldEJhZGdlQ29sb3IsXG4gIGdldEZpbGVGb3JtYXQsXG4gIGdldEZvcm1hdFByaW9yaXR5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pclVzZXIsIGljb25vaXJMb2NrIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5pbXBvcnQge1xuICBDZGtDb25uZWN0ZWRPdmVybGF5LFxuICBDZGtPdmVybGF5T3JpZ2luLFxuICBPdmVybGF5LFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IG1hdE1vcmVWZXJ0IH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1yZXN1bHRzLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBJbnRlcmFjdGl2ZVRhYmxlQ29tcG9uZW50LFxuICAgIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEFjdGlvbk1lbnVDb21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIENka092ZXJsYXlPcmlnaW4sXG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IGljb25vaXJVc2VyLCBpY29ub2lyTG9jaywgbWF0TW9yZVZlcnQgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRzVGFibGVDb21wb25lbnQge1xuICBASW5wdXQoKSByZWNvcmRzOiBDYXRhbG9nUmVjb3JkW10gPSBbXVxuICBASW5wdXQoKSBzZWxlY3RlZFJlY29yZHNJZGVudGlmaWVyczogc3RyaW5nW10gPSBbXVxuICBASW5wdXQoKSBzb3J0T3JkZXI6IFNvcnRCeUZpZWxkID0gbnVsbFxuICBASW5wdXQoKSBoYXNEcmFmdDogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IGZhbHNlXG4gIEBJbnB1dCgpIGNhbkR1cGxpY2F0ZTogKHJlY29yZDogQ2F0YWxvZ1JlY29yZCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbiAgQElucHV0KCkgY2FuRGVsZXRlOiAocmVjb3JkOiBDYXRhbG9nUmVjb3JkKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZVxuICBASW5wdXQoKSBpc0RyYWZ0UGFnZSA9IGZhbHNlXG4gIEBJbnB1dCgpIGlzRHVwbGljYXRpbmcgPSBmYWxzZVxuXG4gIC8vIGVtaXRzIHRoZSBjb2x1bW4gKGZpZWxkKSBhcyB3ZWxsIGFzIHRoZSBvcmRlclxuICBAT3V0cHV0KCkgc29ydEJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxbc3RyaW5nLCAnYXNjJyB8ICdkZXNjJ10+KClcbiAgQE91dHB1dCgpIHJlY29yZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSBkdXBsaWNhdGVSZWNvcmQgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIGRlbGV0ZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgcmVjb3Jkc1NlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBbQ2F0YWxvZ1JlY29yZFtdLCBib29sZWFuXVxuICA+KClcblxuICBAVmlld0NoaWxkcmVuKCdhY3Rpb25NZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGFjdGlvbk1lbnVCdXR0b25zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+XG4gIHByaXZhdGUgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWZcblxuICBpc0FjdGlvbk1lbnVPcGVuID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgb3BlbkFjdGlvbk1lbnUoaXRlbSwgdGVtcGxhdGUpIHtcbiAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSB0cnVlXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnJlY29yZHMuaW5kZXhPZihpdGVtKVxuICAgIGNvbnN0IGJ1dHRvbkVsZW1lbnQgPSB0aGlzLmFjdGlvbk1lbnVCdXR0b25zLnRvQXJyYXkoKVtpbmRleF1cblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhidXR0b25FbGVtZW50KVxuICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgIH0sXG4gICAgICBdKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICB9KVxuXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbClcblxuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KClcbiAgICB9KVxuICB9XG5cbiAgY2xvc2VBY3Rpb25NZW51KCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgfVxuXG4gIGRhdGVUb1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZT8udG9Mb2NhbGVEYXRlU3RyaW5nKHVuZGVmaW5lZCwge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgdGltZVpvbmU6ICdVVEMnLFxuICAgIH0pXG4gIH1cblxuICBnZXRSZWNvcmRGb3JtYXRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IEZpbGVGb3JtYXRbXSB7XG4gICAgaWYgKHJlY29yZC5raW5kID09PSAnc2VydmljZScgfHwgISgnb25saW5lUmVzb3VyY2VzJyBpbiByZWNvcmQpKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG4gICAgY29uc3QgZm9ybWF0cyA9IEFycmF5LmZyb20oXG4gICAgICBuZXcgU2V0KFxuICAgICAgICByZWNvcmQub25saW5lUmVzb3VyY2VzLm1hcCgob25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgICAgZ2V0RmlsZUZvcm1hdChvbmxpbmVSZXNvdXJjZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICkuZmlsdGVyKChmb3JtYXQpID0+ICEhZm9ybWF0KVxuICAgIGZvcm1hdHMuc29ydCgoYSwgYikgPT4gZ2V0Rm9ybWF0UHJpb3JpdHkoYikgLSBnZXRGb3JtYXRQcmlvcml0eShhKSlcbiAgICByZXR1cm4gZm9ybWF0c1xuICB9XG5cbiAgZm9ybWF0VXNlckluZm8odXNlckluZm86IHN0cmluZyB8IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXRVc2VySW5mbyh1c2VySW5mbylcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihmb3JtYXQpXG4gIH1cblxuICBoYW5kbGVSZWNvcmRDbGljayhpdGVtOiBDYXRhbG9nUmVjb3JkKSB7XG4gICAgaWYgKGl0ZW0/LmV4dHJhcz8uZWRpdCB8fCB0aGlzLmlzRHJhZnRQYWdlKVxuICAgICAgdGhpcy5yZWNvcmRDbGljay5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIGhhbmRsZUR1cGxpY2F0ZShpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5kdXBsaWNhdGVSZWNvcmQuZW1pdChpdGVtIGFzIENhdGFsb2dSZWNvcmQpXG4gIH1cblxuICBoYW5kbGVEZWxldGUoaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuZGVsZXRlUmVjb3JkLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KClcbiAgfVxuXG4gIHNldFNvcnRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChbY29sLCBvcmRlcl0pXG4gIH1cblxuICBpc1NvcnRlZEJ5KGNvbDogc3RyaW5nKTogJ2Rlc2MnIHwgJ2FzYycgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc29ydE9yZGVyKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBzb3J0QXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuc29ydE9yZGVyWzBdKVxuICAgICAgPyAodGhpcy5zb3J0T3JkZXIgYXMgRmllbGRTb3J0W10pXG4gICAgICA6IChbdGhpcy5zb3J0T3JkZXJdIGFzIEZpZWxkU29ydFtdKVxuICAgIGZvciAoY29uc3Qgc29ydCBvZiBzb3J0QXJyYXkpIHtcbiAgICAgIGlmIChzb3J0WzFdID09PSBjb2wpIHtcbiAgICAgICAgcmV0dXJuIHNvcnRbMF1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgfVxuXG4gIGhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKHNlbGVjdGVkOiBib29sZWFuLCByZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnJlY29yZHNTZWxlY3RlZENoYW5nZS5lbWl0KFtbcmVjb3JkXSwgc2VsZWN0ZWRdKVxuICB9XG59XG4iLCI8Z24tdWktaW50ZXJhY3RpdmUtdGFibGVcbiAgW2l0ZW1zXT1cInJlY29yZHNcIlxuICBbaXNEcmFmdFBhZ2VdPVwiaXNEcmFmdFBhZ2VcIlxuICAoaXRlbUNsaWNrKT1cImhhbmRsZVJlY29yZENsaWNrKCRldmVudClcIlxuPlxuICA8IS0tIFNFTEVDVEVEIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiJzNyZW0nXCI+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIG5hbWU9XCJpY29ub2lyTG9ja1wiXG4gICAgICAgIGNsYXNzPVwidGV4dC1wdXJwbGVcIlxuICAgICAgICAqbmdJZj1cIiFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2VcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICAgIDxnbi11aS1jaGVja2JveFxuICAgICAgICAqbmdJZj1cIml0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGl0ZW0pXCJcbiAgICAgICAgKGNoYW5nZWQpPVwiaGFuZGxlUmVjb3JkU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgIGNsYXNzPVwiLW0tMlwiXG4gICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgID48L2duLXVpLWNoZWNrYm94PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVElUTEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFtncm93XT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0LmtleXdvcmQnLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS50aXRsZTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiBtYXgtdy1mdWxsIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgPHNwYW4gZGF0YS1jeT1cInJlc3VsdEl0ZW1UaXRsZVwiIGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHRleHQtZWxsaXBzaXNcIj57e1xuICAgICAgICAgIGl0ZW0udGl0bGVcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAgICpuZ0lmPVwiaGFzRHJhZnQoaXRlbSlcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXBhZGRpbmddPVwiJzAuMmVtIDAuNmVtJ1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1jb2xvcl09XCInIzNkMjAwNidcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLWJhY2tncm91bmQtY29sb3JdPVwiJyNmZmJjN2InXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1yb3VuZGVkXT1cIic0cHgnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5kYXNoYm9hcmQucmVjb3Jkcy5oYXNEcmFmdDwvc3Bhbj5cbiAgICAgICAgPC9nbi11aS1iYWRnZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gRk9STUFUUyBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4gW3dpZHRoXT1cIic5cmVtJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5mb3JtYXRzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1tZWRpdW1cIlxuICAgICAgICAqbmdJZj1cImdldFJlY29yZEZvcm1hdHMoaXRlbSkgYXMgZm9ybWF0c1wiXG4gICAgICAgIFt0aXRsZV09XCJmb3JtYXRzLmpvaW4oJywgJylcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzBdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMF0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzFdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzFdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMV0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdGV4dC14c1wiICpuZ0lmPVwiZm9ybWF0cy5zbGljZSgyKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPHNwYW4+K3t7IGZvcm1hdHMuc2xpY2UoMikubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBPV05FUiBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbd2lkdGhdPVwiJzEycmVtJ1wiXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ3JlY29yZE93bmVyJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVjb3JkT3duZXInLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnNlYXJjaC5maWx0ZXJzLnVzZXI8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclVzZXJcIiBzaXplPVwiMTZweFwiPjwvbmctaWNvbj5cbiAgICAgIDxzcGFuIGRhdGEtY3k9XCJvd25lckluZm9cIiBjbGFzcz1cInRleHQteHNcIj57e1xuICAgICAgICBmb3JtYXRVc2VySW5mbyhpdGVtLmV4dHJhcz8ub3duZXJJbmZvKVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBTVEFUVVMgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uIFt3aWR0aF09XCInNnJlbSdcIj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuc3RhdHVzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgKGl0ZW0uZXh0cmFzPy5bJ2lzUHVibGlzaGVkVG9BbGwnXVxuICAgICAgICAgICAgPyAncmVjb3JkLm1ldGFkYXRhLnN0YXR1cy5wdWJsaXNoZWQnXG4gICAgICAgICAgICA6ICdyZWNvcmQubWV0YWRhdGEuc3RhdHVzLm5vdFB1Ymxpc2hlZCdcbiAgICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICAgIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBVUERBVEUgREFURSBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbd2lkdGhdPVwiJzhyZW0nXCJcbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgnY2hhbmdlRGF0ZScpXCJcbiAgICAoc29ydENoYW5nZSk9XCJzZXRTb3J0QnkoJ2NoYW5nZURhdGUnLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnNlYXJjaC5maWx0ZXJzLmNoYW5nZURhdGU8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCB0ZXh0LWxlZnQgdy1mdWxsIHRleHQteHNcIj5cbiAgICAgICAge3tcbiAgICAgICAgICBpdGVtLmV4dHJhcz8uWydpc1B1Ymxpc2hlZFRvQWxsJ11cbiAgICAgICAgICAgID8gZGF0ZVRvU3RyaW5nKGl0ZW0ucmVjb3JkVXBkYXRlZClcbiAgICAgICAgICAgIDogJy0nXG4gICAgICAgIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIEFDVElPTiBNRU5VIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAgICAgI2FjdGlvbk1lbnVCdXR0b25cbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9wZW5BY3Rpb25NZW51KGl0ZW0sIHRlbXBsYXRlKVwiXG4gICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgIGRhdGEtdGVzdD1cInJlY29yZC1tZW51LWJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWljb25cbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAndGV4dC1wdXJwbGUtbGlnaHQnOiAhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIG5hbWU9XCJtYXRNb3JlVmVydFwiXG4gICAgICAgID48L25nLWljb24+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gICAgICAgIDxnbi11aS1hY3Rpb24tbWVudVxuICAgICAgICAgIFtjYW5EdXBsaWNhdGVdPVwiY2FuRHVwbGljYXRlKGl0ZW0pICYmICFpc0R1cGxpY2F0aW5nXCJcbiAgICAgICAgICBbY2FuRGVsZXRlXT1cImNhbkRlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgKGR1cGxpY2F0ZSk9XCJoYW5kbGVEdXBsaWNhdGUoaXRlbSlcIlxuICAgICAgICAgIChkZWxldGUpPVwiaGFuZGxlRGVsZXRlKGl0ZW0pXCJcbiAgICAgICAgICAoY2xvc2VBY3Rpb25NZW51KT1cImNsb3NlQWN0aW9uTWVudSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2duLXVpLWFjdGlvbi1tZW51PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbjwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGU+XG4iXX0=
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtdGFibGUvcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDckYsT0FBTyxFQUNMLCtCQUErQixFQUMvQix5QkFBeUIsR0FDMUIsTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBQ0wsV0FBVyxFQUVYLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDNUQsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixPQUFPLEdBRVIsTUFBTSxzQkFBc0IsQ0FBQTtB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QWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUtQLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIEZpZWxkU29ydCxcbiAgU29ydEJ5RmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50LCBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7XG4gIERhdGVTZXJ2aWNlLFxuICBGaWxlRm9ybWF0LFxuICBmb3JtYXRVc2VySW5mbyxcbiAgZ2V0QmFkZ2VDb2xvcixcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0Rm9ybWF0UHJpb3JpdHksXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudCdcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyVXNlciwgaWNvbm9pckxvY2sgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7XG4gIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gIENka092ZXJsYXlPcmlnaW4sXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgbWF0TW9yZVZlcnQgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXJlc3VsdHMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0cy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG4gICAgSW50ZXJhY3RpdmVUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQWN0aW9uTWVudUNvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUljb25zKHsgaWNvbm9pclVzZXIsIGljb25vaXJMb2NrLCBtYXRNb3JlVmVydCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdHNUYWJsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHJlY29yZHM6IENhdGFsb2dSZWNvcmRbXSA9IFtdXG4gIEBJbnB1dCgpIHNlbGVjdGVkUmVjb3Jkc0lkZW50aWZpZXJzOiBzdHJpbmdbXSA9IFtdXG4gIEBJbnB1dCgpIHNvcnRPcmRlcjogU29ydEJ5RmllbGQgPSBudWxsXG4gIEBJbnB1dCgpIGhhc0RyYWZ0OiAocmVjb3JkOiBDYXRhbG9nUmVjb3JkKSA9PiBib29sZWFuID0gKCkgPT4gZmFsc2VcbiAgQElucHV0KCkgY2FuRHVwbGljYXRlOiAocmVjb3JkOiBDYXRhbG9nUmVjb3JkKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZVxuICBASW5wdXQoKSBjYW5EZWxldGU6IChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4gIEBJbnB1dCgpIGlzRHJhZnRQYWdlID0gZmFsc2VcbiAgQElucHV0KCkgaXNEdXBsaWNhdGluZyA9IGZhbHNlXG5cbiAgLy8gZW1pdHMgdGhlIGNvbHVtbiAoZmllbGQpIGFzIHdlbGwgYXMgdGhlIG9yZGVyXG4gIEBPdXRwdXQoKSBzb3J0QnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFtzdHJpbmcsICdhc2MnIHwgJ2Rlc2MnXT4oKVxuICBAT3V0cHV0KCkgcmVjb3JkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcbiAgQE91dHB1dCgpIGR1cGxpY2F0ZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuICBAT3V0cHV0KCkgZGVsZXRlUmVjb3JkID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG4gIEBPdXRwdXQoKSByZWNvcmRzU2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFtDYXRhbG9nUmVjb3JkW10sIGJvb2xlYW5dXG4gID4oKVxuXG4gIEBWaWV3Q2hpbGRyZW4oJ2FjdGlvbk1lbnVCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYWN0aW9uTWVudUJ1dHRvbnMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmITogT3ZlcmxheVJlZlxuXG4gIGlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlXG4gICkge31cblxuICBvcGVuQWN0aW9uTWVudShpdGVtLCB0ZW1wbGF0ZSkge1xuICAgIHRoaXMuaXNBY3Rpb25NZW51T3BlbiA9IHRydWVcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucmVjb3Jkcy5pbmRleE9mKGl0ZW0pXG4gICAgY29uc3QgYnV0dG9uRWxlbWVudCA9IHRoaXMuYWN0aW9uTWVudUJ1dHRvbnMudG9BcnJheSgpW2luZGV4XVxuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKGJ1dHRvbkVsZW1lbnQpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKVxuICAgICAgLndpdGhQdXNoKHRydWUpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgIH0pXG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZilcblxuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICAgIH0pXG4gIH1cblxuICBjbG9zZUFjdGlvbk1lbnUoKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gZmFsc2VcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKClcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuICB9XG5cbiAgZGF0ZVRvU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVTZXJ2aWNlLmZvcm1hdERhdGUoZGF0ZSwge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgdGltZVpvbmU6ICdVVEMnLFxuICAgIH0pXG4gIH1cblxuICBnZXRSZWNvcmRGb3JtYXRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IEZpbGVGb3JtYXRbXSB7XG4gICAgaWYgKHJlY29yZC5raW5kID09PSAnc2VydmljZScgfHwgISgnb25saW5lUmVzb3VyY2VzJyBpbiByZWNvcmQpKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG4gICAgY29uc3QgZm9ybWF0cyA9IEFycmF5LmZyb20oXG4gICAgICBuZXcgU2V0KFxuICAgICAgICByZWNvcmQub25saW5lUmVzb3VyY2VzLm1hcCgob25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgICAgZ2V0RmlsZUZvcm1hdChvbmxpbmVSZXNvdXJjZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICkuZmlsdGVyKChmb3JtYXQpID0+ICEhZm9ybWF0KVxuICAgIGZvcm1hdHMuc29ydCgoYSwgYikgPT4gZ2V0Rm9ybWF0UHJpb3JpdHkoYikgLSBnZXRGb3JtYXRQcmlvcml0eShhKSlcbiAgICByZXR1cm4gZm9ybWF0c1xuICB9XG5cbiAgZm9ybWF0VXNlckluZm8odXNlckluZm86IHN0cmluZyB8IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXRVc2VySW5mbyh1c2VySW5mbylcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihmb3JtYXQpXG4gIH1cblxuICBoYW5kbGVSZWNvcmRDbGljayhpdGVtOiBDYXRhbG9nUmVjb3JkKSB7XG4gICAgaWYgKGl0ZW0/LmV4dHJhcz8uZWRpdCB8fCB0aGlzLmlzRHJhZnRQYWdlKVxuICAgICAgdGhpcy5yZWNvcmRDbGljay5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIGhhbmRsZUR1cGxpY2F0ZShpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5kdXBsaWNhdGVSZWNvcmQuZW1pdChpdGVtIGFzIENhdGFsb2dSZWNvcmQpXG4gIH1cblxuICBoYW5kbGVEZWxldGUoaXRlbTogdW5rbm93bikge1xuICAgIHRoaXMuZGVsZXRlUmVjb3JkLmVtaXQoaXRlbSBhcyBDYXRhbG9nUmVjb3JkKVxuICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KClcbiAgfVxuXG4gIHNldFNvcnRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChbY29sLCBvcmRlcl0pXG4gIH1cblxuICBpc1NvcnRlZEJ5KGNvbDogc3RyaW5nKTogJ2Rlc2MnIHwgJ2FzYycgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc29ydE9yZGVyKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBzb3J0QXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuc29ydE9yZGVyWzBdKVxuICAgICAgPyAodGhpcy5zb3J0T3JkZXIgYXMgRmllbGRTb3J0W10pXG4gICAgICA6IChbdGhpcy5zb3J0T3JkZXJdIGFzIEZpZWxkU29ydFtdKVxuICAgIGZvciAoY29uc3Qgc29ydCBvZiBzb3J0QXJyYXkpIHtcbiAgICAgIGlmIChzb3J0WzFdID09PSBjb2wpIHtcbiAgICAgICAgcmV0dXJuIHNvcnRbMF1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgfVxuXG4gIGhhbmRsZVJlY29yZFNlbGVjdGVkQ2hhbmdlKHNlbGVjdGVkOiBib29sZWFuLCByZWNvcmQ6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLnJlY29yZHNTZWxlY3RlZENoYW5nZS5lbWl0KFtbcmVjb3JkXSwgc2VsZWN0ZWRdKVxuICB9XG59XG4iLCI8Z24tdWktaW50ZXJhY3RpdmUtdGFibGVcbiAgW2l0ZW1zXT1cInJlY29yZHNcIlxuICBbaXNEcmFmdFBhZ2VdPVwiaXNEcmFmdFBhZ2VcIlxuICAoaXRlbUNsaWNrKT1cImhhbmRsZVJlY29yZENsaWNrKCRldmVudClcIlxuPlxuICA8IS0tIFNFTEVDVEVEIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiJzNyZW0nXCI+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cbiAgICAgIDxuZy1pY29uXG4gICAgICAgIG5hbWU9XCJpY29ub2lyTG9ja1wiXG4gICAgICAgIGNsYXNzPVwidGV4dC1wdXJwbGVcIlxuICAgICAgICAqbmdJZj1cIiFpdGVtLmV4dHJhcz8uZWRpdCAmJiAhaXNEcmFmdFBhZ2VcIlxuICAgICAgPjwvbmctaWNvbj5cbiAgICAgIDxnbi11aS1jaGVja2JveFxuICAgICAgICAqbmdJZj1cIml0ZW0uZXh0cmFzPy5lZGl0IHx8IGlzRHJhZnRQYWdlXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGl0ZW0pXCJcbiAgICAgICAgKGNoYW5nZWQpPVwiaGFuZGxlUmVjb3JkU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgIGNsYXNzPVwiLW0tMlwiXG4gICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgID48L2duLXVpLWNoZWNrYm94PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gVElUTEUgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFtncm93XT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0LmtleXdvcmQnLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS50aXRsZTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiBtYXgtdy1mdWxsIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgPHNwYW4gZGF0YS1jeT1cInJlc3VsdEl0ZW1UaXRsZVwiIGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHRleHQtZWxsaXBzaXNcIj57e1xuICAgICAgICAgIGl0ZW0udGl0bGVcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDxnbi11aS1iYWRnZVxuICAgICAgICAgICpuZ0lmPVwiaGFzRHJhZnQoaXRlbSlcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLXBhZGRpbmddPVwiJzAuMmVtIDAuNmVtJ1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgICAgW3N0eWxlLi0tZ24tdWktYmFkZ2UtdGV4dC1jb2xvcl09XCInIzNkMjAwNidcIlxuICAgICAgICAgIFtzdHlsZS4tLWduLXVpLWJhZGdlLWJhY2tncm91bmQtY29sb3JdPVwiJyNmZmJjN2InXCJcbiAgICAgICAgICBbc3R5bGUuLS1nbi11aS1iYWRnZS1yb3VuZGVkXT1cIic0cHgnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5kYXNoYm9hcmQucmVjb3Jkcy5oYXNEcmFmdDwvc3Bhbj5cbiAgICAgICAgPC9nbi11aS1iYWRnZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gRk9STUFUUyBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4gW3dpZHRoXT1cIic5cmVtJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5mb3JtYXRzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1tZWRpdW1cIlxuICAgICAgICAqbmdJZj1cImdldFJlY29yZEZvcm1hdHMoaXRlbSkgYXMgZm9ybWF0c1wiXG4gICAgICAgIFt0aXRsZV09XCJmb3JtYXRzLmpvaW4oJywgJylcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzBdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMF0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgcHgtMiBzaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzFdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzFdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMV0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hyaW5rLTAgdGV4dC14c1wiICpuZ0lmPVwiZm9ybWF0cy5zbGljZSgyKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPHNwYW4+K3t7IGZvcm1hdHMuc2xpY2UoMikubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBPV05FUiBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbd2lkdGhdPVwiJzEycmVtJ1wiXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIlxuICAgIFthY3RpdmVTb3J0XT1cImlzU29ydGVkQnkoJ3JlY29yZE93bmVyJylcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVjb3JkT3duZXInLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnNlYXJjaC5maWx0ZXJzLnVzZXI8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclVzZXJcIiBzaXplPVwiMTZweFwiPjwvbmctaWNvbj5cbiAgICAgIDxzcGFuIGRhdGEtY3k9XCJvd25lckluZm9cIiBjbGFzcz1cInRleHQteHNcIj57e1xuICAgICAgICBmb3JtYXRVc2VySW5mbyhpdGVtLmV4dHJhcz8ub3duZXJJbmZvKVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBTVEFUVVMgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uIFt3aWR0aF09XCInNnJlbSdcIj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuc3RhdHVzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgKGl0ZW0uZXh0cmFzPy5bJ2lzUHVibGlzaGVkVG9BbGwnXVxuICAgICAgICAgICAgPyAncmVjb3JkLm1ldGFkYXRhLnN0YXR1cy5wdWJsaXNoZWQnXG4gICAgICAgICAgICA6ICdyZWNvcmQubWV0YWRhdGEuc3RhdHVzLm5vdFB1Ymxpc2hlZCdcbiAgICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICAgIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBVUERBVEUgREFURSBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbd2lkdGhdPVwiJzhyZW0nXCJcbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgnY2hhbmdlRGF0ZScpXCJcbiAgICAoc29ydENoYW5nZSk9XCJzZXRTb3J0QnkoJ2NoYW5nZURhdGUnLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnNlYXJjaC5maWx0ZXJzLmNoYW5nZURhdGU8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCB0ZXh0LWxlZnQgdy1mdWxsIHRleHQteHNcIj5cbiAgICAgICAge3tcbiAgICAgICAgICBpdGVtLmV4dHJhcz8uWydpc1B1Ymxpc2hlZFRvQWxsJ11cbiAgICAgICAgICAgID8gZGF0ZVRvU3RyaW5nKGl0ZW0ucmVjb3JkVXBkYXRlZClcbiAgICAgICAgICAgIDogJy0nXG4gICAgICAgIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIEFDVElPTiBNRU5VIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj4gPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAgICAgI2FjdGlvbk1lbnVCdXR0b25cbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9wZW5BY3Rpb25NZW51KGl0ZW0sIHRlbXBsYXRlKVwiXG4gICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgIGRhdGEtdGVzdD1cInJlY29yZC1tZW51LWJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWljb25cbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAndGV4dC1wdXJwbGUtbGlnaHQnOiAhaXRlbS5leHRyYXM/LmVkaXQgJiYgIWlzRHJhZnRQYWdlLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIG5hbWU9XCJtYXRNb3JlVmVydFwiXG4gICAgICAgID48L25nLWljb24+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gICAgICAgIDxnbi11aS1hY3Rpb24tbWVudVxuICAgICAgICAgIFtjYW5EdXBsaWNhdGVdPVwiY2FuRHVwbGljYXRlKGl0ZW0pICYmICFpc0R1cGxpY2F0aW5nXCJcbiAgICAgICAgICBbY2FuRGVsZXRlXT1cImNhbkRlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgKGR1cGxpY2F0ZSk9XCJoYW5kbGVEdXBsaWNhdGUoaXRlbSlcIlxuICAgICAgICAgIChkZWxldGUpPVwiaGFuZGxlRGVsZXRlKGl0ZW0pXCJcbiAgICAgICAgICAoY2xvc2VBY3Rpb25NZW51KT1cImNsb3NlQWN0aW9uTWVudSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2duLXVpLWFjdGlvbi1tZW51PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbjwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGU+XG4iXX0=
@@ -2,4 +2,6 @@ export * from './lib/data-fetcher';
2
2
  export { SupportedTypes, FetchError, } from './lib/model';
3
3
  export { getJsonDataItemsProxy } from './lib/utils';
4
4
  export { BaseReader } from './lib/readers/base';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLE9BQU8sRUFFTCxjQUFjLEVBRWQsVUFBVSxHQUVYLE1BQU0sYUFBYSxDQUFBO0FBQ3BCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWZldGNoZXInXG5leHBvcnQge1xuICBTdXBwb3J0ZWRUeXBlLFxuICBTdXBwb3J0ZWRUeXBlcyxcbiAgRGF0YUl0ZW0sXG4gIEZldGNoRXJyb3IsXG4gIEZpZWxkQWdncmVnYXRpb24sXG59IGZyb20gJy4vbGliL21vZGVsJ1xuZXhwb3J0IHsgZ2V0SnNvbkRhdGFJdGVtc1Byb3h5IH0gZnJvbSAnLi9saWIvdXRpbHMnXG5leHBvcnQgeyBCYXNlUmVhZGVyIH0gZnJvbSAnLi9saWIvcmVhZGVycy9iYXNlJ1xuIl19
5
+ export { BaseFileReader } from './lib/readers/base-file';
6
+ export { GeojsonReader } from './lib/readers/geojson';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLE9BQU8sRUFFTCxjQUFjLEVBRWQsVUFBVSxHQUdYLE1BQU0sYUFBYSxDQUFBO0FBQ3BCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZmV0Y2hlcidcbmV4cG9ydCB7XG4gIFN1cHBvcnRlZFR5cGUsXG4gIFN1cHBvcnRlZFR5cGVzLFxuICBEYXRhSXRlbSxcbiAgRmV0Y2hFcnJvcixcbiAgRmllbGRBZ2dyZWdhdGlvbixcbiAgUHJvcGVydHlJbmZvLFxufSBmcm9tICcuL2xpYi9tb2RlbCdcbmV4cG9ydCB7IGdldEpzb25EYXRhSXRlbXNQcm94eSB9IGZyb20gJy4vbGliL3V0aWxzJ1xuZXhwb3J0IHsgQmFzZVJlYWRlciB9IGZyb20gJy4vbGliL3JlYWRlcnMvYmFzZSdcbmV4cG9ydCB7IEJhc2VGaWxlUmVhZGVyIH0gZnJvbSAnLi9saWIvcmVhZGVycy9iYXNlLWZpbGUnXG5leHBvcnQgeyBHZW9qc29uUmVhZGVyIH0gZnJvbSAnLi9saWIvcmVhZGVycy9nZW9qc29uJ1xuIl19