@veeroute/lss-studio-angular 7.33.3222 → 7.35.3290

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 (608) hide show
  1. package/README.md +3 -3
  2. package/cfg/entity_error_type.yaml +9 -9
  3. package/cfg/table_settings.json +11 -20
  4. package/fesm2022/veeroute-lss-studio-angular.mjs +220 -159
  5. package/fesm2022/veeroute-lss-studio-angular.mjs.map +1 -1
  6. package/package.json +5 -6
  7. package/types/veeroute-lss-studio-angular.d.ts +13407 -0
  8. package/api/api.d.ts +0 -46
  9. package/api/backupsService.d.ts +0 -56
  10. package/api/backupsServiceInterface.d.ts +0 -35
  11. package/api/customFieldsService.d.ts +0 -145
  12. package/api/customFieldsServiceInterface.d.ts +0 -70
  13. package/api/customIconsService.d.ts +0 -144
  14. package/api/customIconsServiceInterface.d.ts +0 -69
  15. package/api/experimentsService.d.ts +0 -546
  16. package/api/experimentsServiceInterface.d.ts +0 -272
  17. package/api/explorerService.d.ts +0 -279
  18. package/api/explorerServiceInterface.d.ts +0 -132
  19. package/api/externalRoutingService.d.ts +0 -101
  20. package/api/externalRoutingServiceInterface.d.ts +0 -55
  21. package/api/factsService.d.ts +0 -213
  22. package/api/factsServiceInterface.d.ts +0 -119
  23. package/api/hardlinksService.d.ts +0 -213
  24. package/api/hardlinksServiceInterface.d.ts +0 -119
  25. package/api/locationsService.d.ts +0 -192
  26. package/api/locationsServiceInterface.d.ts +0 -112
  27. package/api/ordersService.d.ts +0 -236
  28. package/api/ordersServiceInterface.d.ts +0 -132
  29. package/api/performersService.d.ts +0 -236
  30. package/api/performersServiceInterface.d.ts +0 -132
  31. package/api/systemService.d.ts +0 -78
  32. package/api/systemServiceInterface.d.ts +0 -37
  33. package/api/transportsService.d.ts +0 -236
  34. package/api/transportsServiceInterface.d.ts +0 -132
  35. package/api/tripsService.d.ts +0 -372
  36. package/api/tripsServiceInterface.d.ts +0 -218
  37. package/api/userService.d.ts +0 -162
  38. package/api/userServiceInterface.d.ts +0 -79
  39. package/api.base.service.d.ts +0 -21
  40. package/api.module.d.ts +0 -11
  41. package/configuration.d.ts +0 -106
  42. package/encoder.d.ts +0 -11
  43. package/esm2022/api/api.mjs +0 -47
  44. package/esm2022/api/backupsService.mjs +0 -135
  45. package/esm2022/api/backupsServiceInterface.mjs +0 -2
  46. package/esm2022/api/customFieldsService.mjs +0 -312
  47. package/esm2022/api/customFieldsServiceInterface.mjs +0 -2
  48. package/esm2022/api/customIconsService.mjs +0 -313
  49. package/esm2022/api/customIconsServiceInterface.mjs +0 -2
  50. package/esm2022/api/experimentsService.mjs +0 -1163
  51. package/esm2022/api/experimentsServiceInterface.mjs +0 -2
  52. package/esm2022/api/explorerService.mjs +0 -594
  53. package/esm2022/api/explorerServiceInterface.mjs +0 -2
  54. package/esm2022/api/externalRoutingService.mjs +0 -227
  55. package/esm2022/api/externalRoutingServiceInterface.mjs +0 -2
  56. package/esm2022/api/factsService.mjs +0 -509
  57. package/esm2022/api/factsServiceInterface.mjs +0 -2
  58. package/esm2022/api/hardlinksService.mjs +0 -509
  59. package/esm2022/api/hardlinksServiceInterface.mjs +0 -2
  60. package/esm2022/api/locationsService.mjs +0 -459
  61. package/esm2022/api/locationsServiceInterface.mjs +0 -2
  62. package/esm2022/api/ordersService.mjs +0 -565
  63. package/esm2022/api/ordersServiceInterface.mjs +0 -2
  64. package/esm2022/api/performersService.mjs +0 -565
  65. package/esm2022/api/performersServiceInterface.mjs +0 -2
  66. package/esm2022/api/systemService.mjs +0 -149
  67. package/esm2022/api/systemServiceInterface.mjs +0 -2
  68. package/esm2022/api/transportsService.mjs +0 -565
  69. package/esm2022/api/transportsServiceInterface.mjs +0 -2
  70. package/esm2022/api/tripsService.mjs +0 -900
  71. package/esm2022/api/tripsServiceInterface.mjs +0 -2
  72. package/esm2022/api/userService.mjs +0 -312
  73. package/esm2022/api/userServiceInterface.mjs +0 -2
  74. package/esm2022/api.base.service.mjs +0 -79
  75. package/esm2022/api.module.mjs +0 -40
  76. package/esm2022/configuration.mjs +0 -145
  77. package/esm2022/encoder.mjs +0 -19
  78. package/esm2022/index.mjs +0 -8
  79. package/esm2022/model/actualizeSettings.mjs +0 -11
  80. package/esm2022/model/assignedPerformer.mjs +0 -2
  81. package/esm2022/model/assignedTransport.mjs +0 -2
  82. package/esm2022/model/attribute.mjs +0 -11
  83. package/esm2022/model/basicProcess.mjs +0 -19
  84. package/esm2022/model/basicState.mjs +0 -20
  85. package/esm2022/model/box.mjs +0 -2
  86. package/esm2022/model/boxCompatibilities.mjs +0 -11
  87. package/esm2022/model/boxLimits.mjs +0 -2
  88. package/esm2022/model/break.mjs +0 -11
  89. package/esm2022/model/breakRules.mjs +0 -7
  90. package/esm2022/model/calculationHistoryElement.mjs +0 -2
  91. package/esm2022/model/calculationInfo.mjs +0 -2
  92. package/esm2022/model/calculationSettings.mjs +0 -11
  93. package/esm2022/model/calculationState.mjs +0 -2
  94. package/esm2022/model/calculationStatus.mjs +0 -24
  95. package/esm2022/model/capacity.mjs +0 -11
  96. package/esm2022/model/capacityCost.mjs +0 -11
  97. package/esm2022/model/capacityLimit.mjs +0 -11
  98. package/esm2022/model/capacityMultiplier.mjs +0 -11
  99. package/esm2022/model/capacityStatisticsLoad.mjs +0 -11
  100. package/esm2022/model/capacityStatisticsRatio.mjs +0 -11
  101. package/esm2022/model/capacityStatisticsSum.mjs +0 -11
  102. package/esm2022/model/cargo.mjs +0 -2
  103. package/esm2022/model/cargoAction.mjs +0 -2
  104. package/esm2022/model/cargoActionType.mjs +0 -18
  105. package/esm2022/model/cargoCompatibilities.mjs +0 -2
  106. package/esm2022/model/cargoInvoice.mjs +0 -2
  107. package/esm2022/model/cargoInvoiceDetail.mjs +0 -2
  108. package/esm2022/model/cargoInvoiceHonestSign.mjs +0 -11
  109. package/esm2022/model/cargoInvoiceReceipt.mjs +0 -11
  110. package/esm2022/model/cargoInvoiceTax.mjs +0 -28
  111. package/esm2022/model/cargoRotationType.mjs +0 -20
  112. package/esm2022/model/checkResult.mjs +0 -11
  113. package/esm2022/model/compatibilityPenalty.mjs +0 -11
  114. package/esm2022/model/customfieldConvertRule.mjs +0 -2
  115. package/esm2022/model/customfieldEntityType.mjs +0 -28
  116. package/esm2022/model/customfieldsSettings.mjs +0 -2
  117. package/esm2022/model/demand.mjs +0 -2
  118. package/esm2022/model/demandExtraDuration.mjs +0 -11
  119. package/esm2022/model/demandType.mjs +0 -21
  120. package/esm2022/model/entityError.mjs +0 -2
  121. package/esm2022/model/entityErrorType.mjs +0 -36
  122. package/esm2022/model/entityPath.mjs +0 -2
  123. package/esm2022/model/entityType.mjs +0 -44
  124. package/esm2022/model/entityWarning.mjs +0 -2
  125. package/esm2022/model/entityWarningType.mjs +0 -58
  126. package/esm2022/model/experiment.mjs +0 -2
  127. package/esm2022/model/experimentCheck.mjs +0 -2
  128. package/esm2022/model/experimentList.mjs +0 -2
  129. package/esm2022/model/experimentNeighbors.mjs +0 -11
  130. package/esm2022/model/experimentSettings.mjs +0 -2
  131. package/esm2022/model/experimentStatistics.mjs +0 -2
  132. package/esm2022/model/extensionSettings.mjs +0 -11
  133. package/esm2022/model/fact.mjs +0 -2
  134. package/esm2022/model/factEssences.mjs +0 -2
  135. package/esm2022/model/factStatus.mjs +0 -19
  136. package/esm2022/model/factType.mjs +0 -25
  137. package/esm2022/model/featureLifetime.mjs +0 -2
  138. package/esm2022/model/fileNamePath.mjs +0 -11
  139. package/esm2022/model/fileSpecification.mjs +0 -11
  140. package/esm2022/model/filesystem.mjs +0 -2
  141. package/esm2022/model/filesystemColumnType.mjs +0 -23
  142. package/esm2022/model/filesystemCounters.mjs +0 -2
  143. package/esm2022/model/filesystemPath.mjs +0 -2
  144. package/esm2022/model/folder.mjs +0 -2
  145. package/esm2022/model/folderCounters.mjs +0 -11
  146. package/esm2022/model/folderSpecification.mjs +0 -2
  147. package/esm2022/model/folderType.mjs +0 -18
  148. package/esm2022/model/general400.mjs +0 -2
  149. package/esm2022/model/general402.mjs +0 -2
  150. package/esm2022/model/general403.mjs +0 -2
  151. package/esm2022/model/general404.mjs +0 -2
  152. package/esm2022/model/general404Detail.mjs +0 -2
  153. package/esm2022/model/general429.mjs +0 -2
  154. package/esm2022/model/general500.mjs +0 -2
  155. package/esm2022/model/generalStatistics.mjs +0 -2
  156. package/esm2022/model/geoSettings.mjs +0 -2
  157. package/esm2022/model/geopoint.mjs +0 -11
  158. package/esm2022/model/hardlink.mjs +0 -2
  159. package/esm2022/model/hardlinkElement.mjs +0 -2
  160. package/esm2022/model/hardlinkElementType.mjs +0 -19
  161. package/esm2022/model/importSample.mjs +0 -18
  162. package/esm2022/model/importSource.mjs +0 -18
  163. package/esm2022/model/linkedEssence.mjs +0 -23
  164. package/esm2022/model/loadStatistics.mjs +0 -2
  165. package/esm2022/model/location.mjs +0 -2
  166. package/esm2022/model/locationCargosLimit.mjs +0 -2
  167. package/esm2022/model/locationCompatibilities.mjs +0 -11
  168. package/esm2022/model/locationLimit.mjs +0 -2
  169. package/esm2022/model/locationLimitStatistics.mjs +0 -2
  170. package/esm2022/model/locationStatistics.mjs +0 -2
  171. package/esm2022/model/locationTimetableElement.mjs +0 -2
  172. package/esm2022/model/locationTransportsLimit.mjs +0 -11
  173. package/esm2022/model/measurements.mjs +0 -2
  174. package/esm2022/model/models.mjs +0 -261
  175. package/esm2022/model/order.mjs +0 -2
  176. package/esm2022/model/orderCompatibilities.mjs +0 -11
  177. package/esm2022/model/performer.mjs +0 -2
  178. package/esm2022/model/performerCompatibilities.mjs +0 -2
  179. package/esm2022/model/performerLimits.mjs +0 -2
  180. package/esm2022/model/performerShift.mjs +0 -2
  181. package/esm2022/model/performerTariff.mjs +0 -2
  182. package/esm2022/model/performerTariffConstraint.mjs +0 -11
  183. package/esm2022/model/planSettings.mjs +0 -2
  184. package/esm2022/model/planStatistics.mjs +0 -2
  185. package/esm2022/model/possibleEvent.mjs +0 -2
  186. package/esm2022/model/quality.mjs +0 -2
  187. package/esm2022/model/removedItems.mjs +0 -11
  188. package/esm2022/model/replanSettings.mjs +0 -2
  189. package/esm2022/model/replanStrategy.mjs +0 -11
  190. package/esm2022/model/rest.mjs +0 -11
  191. package/esm2022/model/restRules.mjs +0 -2
  192. package/esm2022/model/roundtripStatistics.mjs +0 -2
  193. package/esm2022/model/routingMatrix.mjs +0 -2
  194. package/esm2022/model/routingMatrixWaypoint.mjs +0 -2
  195. package/esm2022/model/routingTransportMatrix.mjs +0 -2
  196. package/esm2022/model/schemaError.mjs +0 -11
  197. package/esm2022/model/service.mjs +0 -26
  198. package/esm2022/model/settingsKeyList.mjs +0 -11
  199. package/esm2022/model/stopDemand.mjs +0 -2
  200. package/esm2022/model/stopStatistics.mjs +0 -2
  201. package/esm2022/model/tableCustomfields.mjs +0 -11
  202. package/esm2022/model/tableCustomfieldsColumnType.mjs +0 -76
  203. package/esm2022/model/tableDataStats.mjs +0 -11
  204. package/esm2022/model/tableExperimentColumnType.mjs +0 -21
  205. package/esm2022/model/tableFact.mjs +0 -2
  206. package/esm2022/model/tableFactColumnType.mjs +0 -27
  207. package/esm2022/model/tableFactFields.mjs +0 -6
  208. package/esm2022/model/tableFactFilter.mjs +0 -2
  209. package/esm2022/model/tableFactFilterList.mjs +0 -2
  210. package/esm2022/model/tableFactList.mjs +0 -2
  211. package/esm2022/model/tableFactMetrics.mjs +0 -2
  212. package/esm2022/model/tableFactMetricsFilterList.mjs +0 -2
  213. package/esm2022/model/tableFilterBoolList.mjs +0 -11
  214. package/esm2022/model/tableFilterDatetimeRange.mjs +0 -11
  215. package/esm2022/model/tableFilterDurationRange.mjs +0 -11
  216. package/esm2022/model/tableFilterEnumList.mjs +0 -11
  217. package/esm2022/model/tableFilterFloatRange.mjs +0 -11
  218. package/esm2022/model/tableFilterIntRange.mjs +0 -11
  219. package/esm2022/model/tableFilterStringList.mjs +0 -11
  220. package/esm2022/model/tableFilterStringSearch.mjs +0 -11
  221. package/esm2022/model/tableFilterType.mjs +0 -24
  222. package/esm2022/model/tableHardlink.mjs +0 -2
  223. package/esm2022/model/tableHardlinkColumnType.mjs +0 -24
  224. package/esm2022/model/tableHardlinkFields.mjs +0 -7
  225. package/esm2022/model/tableHardlinkFilter.mjs +0 -2
  226. package/esm2022/model/tableHardlinkFilterList.mjs +0 -2
  227. package/esm2022/model/tableHardlinkList.mjs +0 -2
  228. package/esm2022/model/tableHardlinkMetrics.mjs +0 -2
  229. package/esm2022/model/tableHardlinkMetricsFilterList.mjs +0 -2
  230. package/esm2022/model/tableListCounters.mjs +0 -2
  231. package/esm2022/model/tableListCountersDetail.mjs +0 -11
  232. package/esm2022/model/tableLocation.mjs +0 -2
  233. package/esm2022/model/tableLocationColumnType.mjs +0 -23
  234. package/esm2022/model/tableLocationFields.mjs +0 -7
  235. package/esm2022/model/tableLocationFilter.mjs +0 -2
  236. package/esm2022/model/tableLocationFilterList.mjs +0 -2
  237. package/esm2022/model/tableLocationList.mjs +0 -2
  238. package/esm2022/model/tableLocationMetrics.mjs +0 -2
  239. package/esm2022/model/tableLocationMetricsFilterList.mjs +0 -2
  240. package/esm2022/model/tableOrder.mjs +0 -2
  241. package/esm2022/model/tableOrderColumnType.mjs +0 -49
  242. package/esm2022/model/tableOrderFields.mjs +0 -7
  243. package/esm2022/model/tableOrderFilter.mjs +0 -2
  244. package/esm2022/model/tableOrderFilterList.mjs +0 -2
  245. package/esm2022/model/tableOrderList.mjs +0 -2
  246. package/esm2022/model/tableOrderMetrics.mjs +0 -2
  247. package/esm2022/model/tableOrderMetricsFilterList.mjs +0 -2
  248. package/esm2022/model/tablePerformer.mjs +0 -2
  249. package/esm2022/model/tablePerformerColumnType.mjs +0 -31
  250. package/esm2022/model/tablePerformerFields.mjs +0 -7
  251. package/esm2022/model/tablePerformerFilter.mjs +0 -2
  252. package/esm2022/model/tablePerformerFilterList.mjs +0 -2
  253. package/esm2022/model/tablePerformerList.mjs +0 -2
  254. package/esm2022/model/tablePerformerMetrics.mjs +0 -2
  255. package/esm2022/model/tablePerformerMetricsFilterList.mjs +0 -2
  256. package/esm2022/model/tableRoundtrip.mjs +0 -2
  257. package/esm2022/model/tableRoundtripColumnType.mjs +0 -51
  258. package/esm2022/model/tableRoundtripFields.mjs +0 -7
  259. package/esm2022/model/tableRoundtripFilter.mjs +0 -2
  260. package/esm2022/model/tableRoundtripFilterList.mjs +0 -2
  261. package/esm2022/model/tableRoundtripList.mjs +0 -2
  262. package/esm2022/model/tableRoundtripMetrics.mjs +0 -2
  263. package/esm2022/model/tableRoundtripMetricsFilterList.mjs +0 -2
  264. package/esm2022/model/tableTransport.mjs +0 -2
  265. package/esm2022/model/tableTransportColumnType.mjs +0 -37
  266. package/esm2022/model/tableTransportFields.mjs +0 -7
  267. package/esm2022/model/tableTransportFilter.mjs +0 -2
  268. package/esm2022/model/tableTransportFilterList.mjs +0 -2
  269. package/esm2022/model/tableTransportList.mjs +0 -2
  270. package/esm2022/model/tableTransportMetrics.mjs +0 -2
  271. package/esm2022/model/tableTransportMetricsFilterList.mjs +0 -2
  272. package/esm2022/model/tableTrip.mjs +0 -2
  273. package/esm2022/model/tableTripColumnType.mjs +0 -53
  274. package/esm2022/model/tableTripFields.mjs +0 -7
  275. package/esm2022/model/tableTripFilter.mjs +0 -2
  276. package/esm2022/model/tableTripFilterList.mjs +0 -2
  277. package/esm2022/model/tableTripList.mjs +0 -2
  278. package/esm2022/model/tableTripMetrics.mjs +0 -2
  279. package/esm2022/model/tableTripMetricsFilterList.mjs +0 -2
  280. package/esm2022/model/tableTripStop.mjs +0 -2
  281. package/esm2022/model/tableTripStopColumnType.mjs +0 -33
  282. package/esm2022/model/tableTripStopFields.mjs +0 -7
  283. package/esm2022/model/tableTripStopFilter.mjs +0 -2
  284. package/esm2022/model/tableTripStopFilterList.mjs +0 -2
  285. package/esm2022/model/tableTripStopList.mjs +0 -2
  286. package/esm2022/model/taskStatistics.mjs +0 -2
  287. package/esm2022/model/timeWindow.mjs +0 -11
  288. package/esm2022/model/timeWindowViolationDetail.mjs +0 -11
  289. package/esm2022/model/timeWindowViolations.mjs +0 -2
  290. package/esm2022/model/tracedata.mjs +0 -2
  291. package/esm2022/model/track.mjs +0 -2
  292. package/esm2022/model/trackList.mjs +0 -2
  293. package/esm2022/model/trackListCustom.mjs +0 -2
  294. package/esm2022/model/trackType.mjs +0 -19
  295. package/esm2022/model/trackpoint.mjs +0 -11
  296. package/esm2022/model/translations.mjs +0 -11
  297. package/esm2022/model/transport.mjs +0 -2
  298. package/esm2022/model/transportCapacityMultiplier.mjs +0 -2
  299. package/esm2022/model/transportCompatibilities.mjs +0 -2
  300. package/esm2022/model/transportLimits.mjs +0 -2
  301. package/esm2022/model/transportLoad.mjs +0 -2
  302. package/esm2022/model/transportShift.mjs +0 -2
  303. package/esm2022/model/transportSpeedMultiplier.mjs +0 -2
  304. package/esm2022/model/transportTariff.mjs +0 -2
  305. package/esm2022/model/transportTariffConstraint.mjs +0 -11
  306. package/esm2022/model/transportType.mjs +0 -32
  307. package/esm2022/model/trip.mjs +0 -2
  308. package/esm2022/model/tripAssumptions.mjs +0 -2
  309. package/esm2022/model/tripExpectations.mjs +0 -2
  310. package/esm2022/model/tripPenalties.mjs +0 -2
  311. package/esm2022/model/tripStartTimeStrategy.mjs +0 -18
  312. package/esm2022/model/tripState.mjs +0 -2
  313. package/esm2022/model/tripStateFlag.mjs +0 -30
  314. package/esm2022/model/tripStatistics.mjs +0 -2
  315. package/esm2022/model/tripStatus.mjs +0 -25
  316. package/esm2022/model/tripsSettings.mjs +0 -2
  317. package/esm2022/model/universal400WithErrorsAndWarnings.mjs +0 -2
  318. package/esm2022/model/universalData.mjs +0 -2
  319. package/esm2022/model/unplannedItems.mjs +0 -11
  320. package/esm2022/model/versionResult.mjs +0 -11
  321. package/esm2022/model/webFact.mjs +0 -2
  322. package/esm2022/model/webHardlink.mjs +0 -2
  323. package/esm2022/model/webLocation.mjs +0 -2
  324. package/esm2022/model/webLocationGeopoint.mjs +0 -2
  325. package/esm2022/model/webLocationGeopointList.mjs +0 -2
  326. package/esm2022/model/webOrder.mjs +0 -2
  327. package/esm2022/model/webOrderGeopoint.mjs +0 -2
  328. package/esm2022/model/webOrderGeopointList.mjs +0 -2
  329. package/esm2022/model/webPerformer.mjs +0 -2
  330. package/esm2022/model/webPerformerGeopoint.mjs +0 -7
  331. package/esm2022/model/webPerformerGeopointList.mjs +0 -2
  332. package/esm2022/model/webTransport.mjs +0 -2
  333. package/esm2022/model/webTransportGeopoint.mjs +0 -7
  334. package/esm2022/model/webTransportGeopointList.mjs +0 -2
  335. package/esm2022/model/webTrip.mjs +0 -2
  336. package/esm2022/model/webTripChart.mjs +0 -2
  337. package/esm2022/model/webTripChartDemand.mjs +0 -2
  338. package/esm2022/model/webTripChartList.mjs +0 -2
  339. package/esm2022/model/workAndRestRules.mjs +0 -2
  340. package/esm2022/param.mjs +0 -2
  341. package/esm2022/provide-api.mjs +0 -15
  342. package/esm2022/variables.mjs +0 -9
  343. package/esm2022/veeroute-lss-studio-angular.mjs +0 -5
  344. package/index.d.ts +0 -7
  345. package/model/actualizeSettings.d.ts +0 -23
  346. package/model/assignedPerformer.d.ts +0 -25
  347. package/model/assignedTransport.d.ts +0 -25
  348. package/model/attribute.d.ts +0 -23
  349. package/model/basicProcess.d.ts +0 -17
  350. package/model/basicState.d.ts +0 -18
  351. package/model/box.d.ts +0 -30
  352. package/model/boxCompatibilities.d.ts +0 -31
  353. package/model/boxLimits.d.ts +0 -17
  354. package/model/break.d.ts +0 -27
  355. package/model/breakRules.d.ts +0 -29
  356. package/model/calculationHistoryElement.d.ts +0 -21
  357. package/model/calculationInfo.d.ts +0 -49
  358. package/model/calculationSettings.d.ts +0 -39
  359. package/model/calculationState.d.ts +0 -23
  360. package/model/calculationStatus.d.ts +0 -22
  361. package/model/capacity.d.ts +0 -35
  362. package/model/capacityCost.d.ts +0 -35
  363. package/model/capacityLimit.d.ts +0 -35
  364. package/model/capacityMultiplier.d.ts +0 -35
  365. package/model/capacityStatisticsLoad.d.ts +0 -35
  366. package/model/capacityStatisticsRatio.d.ts +0 -35
  367. package/model/capacityStatisticsSum.d.ts +0 -35
  368. package/model/cargo.d.ts +0 -34
  369. package/model/cargoAction.d.ts +0 -25
  370. package/model/cargoActionType.d.ts +0 -16
  371. package/model/cargoCompatibilities.d.ts +0 -44
  372. package/model/cargoInvoice.d.ts +0 -30
  373. package/model/cargoInvoiceDetail.d.ts +0 -55
  374. package/model/cargoInvoiceHonestSign.d.ts +0 -23
  375. package/model/cargoInvoiceReceipt.d.ts +0 -27
  376. package/model/cargoInvoiceTax.d.ts +0 -26
  377. package/model/cargoRotationType.d.ts +0 -18
  378. package/model/checkResult.d.ts +0 -19
  379. package/model/compatibilityPenalty.d.ts +0 -23
  380. package/model/customfieldConvertRule.d.ts +0 -25
  381. package/model/customfieldEntityType.d.ts +0 -26
  382. package/model/customfieldsSettings.d.ts +0 -20
  383. package/model/demand.d.ts +0 -47
  384. package/model/demandExtraDuration.d.ts +0 -23
  385. package/model/demandType.d.ts +0 -19
  386. package/model/entityError.d.ts +0 -26
  387. package/model/entityErrorType.d.ts +0 -34
  388. package/model/entityPath.d.ts +0 -22
  389. package/model/entityType.d.ts +0 -42
  390. package/model/entityWarning.d.ts +0 -26
  391. package/model/entityWarningType.d.ts +0 -56
  392. package/model/experiment.d.ts +0 -49
  393. package/model/experimentCheck.d.ts +0 -25
  394. package/model/experimentList.d.ts +0 -22
  395. package/model/experimentNeighbors.d.ts +0 -23
  396. package/model/experimentSettings.d.ts +0 -21
  397. package/model/experimentStatistics.d.ts +0 -31
  398. package/model/extensionSettings.d.ts +0 -35
  399. package/model/fact.d.ts +0 -58
  400. package/model/factEssences.d.ts +0 -20
  401. package/model/factStatus.d.ts +0 -17
  402. package/model/factType.d.ts +0 -23
  403. package/model/featureLifetime.d.ts +0 -24
  404. package/model/fileNamePath.d.ts +0 -23
  405. package/model/fileSpecification.d.ts +0 -27
  406. package/model/filesystem.d.ts +0 -23
  407. package/model/filesystemColumnType.d.ts +0 -21
  408. package/model/filesystemCounters.d.ts +0 -24
  409. package/model/filesystemPath.d.ts +0 -20
  410. package/model/folder.d.ts +0 -60
  411. package/model/folderCounters.d.ts +0 -23
  412. package/model/folderSpecification.d.ts +0 -40
  413. package/model/folderType.d.ts +0 -16
  414. package/model/general400.d.ts +0 -26
  415. package/model/general402.d.ts +0 -21
  416. package/model/general403.d.ts +0 -21
  417. package/model/general404.d.ts +0 -21
  418. package/model/general404Detail.d.ts +0 -17
  419. package/model/general429.d.ts +0 -21
  420. package/model/general500.d.ts +0 -21
  421. package/model/generalStatistics.d.ts +0 -96
  422. package/model/geoSettings.d.ts +0 -40
  423. package/model/geopoint.d.ts +0 -23
  424. package/model/hardlink.d.ts +0 -29
  425. package/model/hardlinkElement.d.ts +0 -21
  426. package/model/hardlinkElementType.d.ts +0 -17
  427. package/model/importSample.d.ts +0 -16
  428. package/model/importSource.d.ts +0 -16
  429. package/model/linkedEssence.d.ts +0 -34
  430. package/model/loadStatistics.d.ts +0 -28
  431. package/model/location.d.ts +0 -49
  432. package/model/locationCargosLimit.d.ts +0 -25
  433. package/model/locationCompatibilities.d.ts +0 -19
  434. package/model/locationLimit.d.ts +0 -42
  435. package/model/locationLimitStatistics.d.ts +0 -33
  436. package/model/locationStatistics.d.ts +0 -40
  437. package/model/locationTimetableElement.d.ts +0 -25
  438. package/model/locationTransportsLimit.d.ts +0 -23
  439. package/model/measurements.d.ts +0 -53
  440. package/model/models.d.ts +0 -260
  441. package/model/order.d.ts +0 -40
  442. package/model/orderCompatibilities.d.ts +0 -31
  443. package/model/performer.d.ts +0 -42
  444. package/model/performerCompatibilities.d.ts +0 -28
  445. package/model/performerLimits.d.ts +0 -24
  446. package/model/performerShift.d.ts +0 -57
  447. package/model/performerTariff.d.ts +0 -28
  448. package/model/performerTariffConstraint.d.ts +0 -23
  449. package/model/planSettings.d.ts +0 -23
  450. package/model/planStatistics.d.ts +0 -31
  451. package/model/possibleEvent.d.ts +0 -42
  452. package/model/quality.d.ts +0 -28
  453. package/model/removedItems.d.ts +0 -63
  454. package/model/replanSettings.d.ts +0 -17
  455. package/model/replanStrategy.d.ts +0 -27
  456. package/model/rest.d.ts +0 -27
  457. package/model/restRules.d.ts +0 -20
  458. package/model/roundtripStatistics.d.ts +0 -24
  459. package/model/routingMatrix.d.ts +0 -28
  460. package/model/routingMatrixWaypoint.d.ts +0 -21
  461. package/model/routingTransportMatrix.d.ts +0 -19
  462. package/model/schemaError.d.ts +0 -23
  463. package/model/service.d.ts +0 -24
  464. package/model/settingsKeyList.d.ts +0 -23
  465. package/model/stopDemand.d.ts +0 -28
  466. package/model/stopStatistics.d.ts +0 -60
  467. package/model/tableCustomfields.d.ts +0 -255
  468. package/model/tableCustomfieldsColumnType.d.ts +0 -74
  469. package/model/tableDataStats.d.ts +0 -47
  470. package/model/tableExperimentColumnType.d.ts +0 -19
  471. package/model/tableFact.d.ts +0 -21
  472. package/model/tableFactColumnType.d.ts +0 -25
  473. package/model/tableFactFields.d.ts +0 -68
  474. package/model/tableFactFilter.d.ts +0 -37
  475. package/model/tableFactFilterList.d.ts +0 -20
  476. package/model/tableFactList.d.ts +0 -22
  477. package/model/tableFactMetrics.d.ts +0 -26
  478. package/model/tableFactMetricsFilterList.d.ts +0 -24
  479. package/model/tableFilterBoolList.d.ts +0 -19
  480. package/model/tableFilterDatetimeRange.d.ts +0 -23
  481. package/model/tableFilterDurationRange.d.ts +0 -23
  482. package/model/tableFilterEnumList.d.ts +0 -19
  483. package/model/tableFilterFloatRange.d.ts +0 -23
  484. package/model/tableFilterIntRange.d.ts +0 -23
  485. package/model/tableFilterStringList.d.ts +0 -23
  486. package/model/tableFilterStringSearch.d.ts +0 -23
  487. package/model/tableFilterType.d.ts +0 -22
  488. package/model/tableHardlink.d.ts +0 -21
  489. package/model/tableHardlinkColumnType.d.ts +0 -22
  490. package/model/tableHardlinkFields.d.ts +0 -57
  491. package/model/tableHardlinkFilter.d.ts +0 -37
  492. package/model/tableHardlinkFilterList.d.ts +0 -20
  493. package/model/tableHardlinkList.d.ts +0 -22
  494. package/model/tableHardlinkMetrics.d.ts +0 -26
  495. package/model/tableHardlinkMetricsFilterList.d.ts +0 -24
  496. package/model/tableListCounters.d.ts +0 -24
  497. package/model/tableListCountersDetail.d.ts +0 -19
  498. package/model/tableLocation.d.ts +0 -21
  499. package/model/tableLocationColumnType.d.ts +0 -21
  500. package/model/tableLocationFields.d.ts +0 -47
  501. package/model/tableLocationFilter.d.ts +0 -37
  502. package/model/tableLocationFilterList.d.ts +0 -20
  503. package/model/tableLocationList.d.ts +0 -22
  504. package/model/tableLocationMetrics.d.ts +0 -26
  505. package/model/tableLocationMetricsFilterList.d.ts +0 -24
  506. package/model/tableOrder.d.ts +0 -21
  507. package/model/tableOrderColumnType.d.ts +0 -47
  508. package/model/tableOrderFields.d.ts +0 -137
  509. package/model/tableOrderFilter.d.ts +0 -37
  510. package/model/tableOrderFilterList.d.ts +0 -20
  511. package/model/tableOrderList.d.ts +0 -22
  512. package/model/tableOrderMetrics.d.ts +0 -26
  513. package/model/tableOrderMetricsFilterList.d.ts +0 -24
  514. package/model/tablePerformer.d.ts +0 -21
  515. package/model/tablePerformerColumnType.d.ts +0 -29
  516. package/model/tablePerformerFields.d.ts +0 -76
  517. package/model/tablePerformerFilter.d.ts +0 -37
  518. package/model/tablePerformerFilterList.d.ts +0 -20
  519. package/model/tablePerformerList.d.ts +0 -22
  520. package/model/tablePerformerMetrics.d.ts +0 -26
  521. package/model/tablePerformerMetricsFilterList.d.ts +0 -24
  522. package/model/tableRoundtrip.d.ts +0 -21
  523. package/model/tableRoundtripColumnType.d.ts +0 -49
  524. package/model/tableRoundtripFields.d.ts +0 -159
  525. package/model/tableRoundtripFilter.d.ts +0 -37
  526. package/model/tableRoundtripFilterList.d.ts +0 -20
  527. package/model/tableRoundtripList.d.ts +0 -22
  528. package/model/tableRoundtripMetrics.d.ts +0 -26
  529. package/model/tableRoundtripMetricsFilterList.d.ts +0 -24
  530. package/model/tableTransport.d.ts +0 -21
  531. package/model/tableTransportColumnType.d.ts +0 -35
  532. package/model/tableTransportFields.d.ts +0 -101
  533. package/model/tableTransportFilter.d.ts +0 -37
  534. package/model/tableTransportFilterList.d.ts +0 -20
  535. package/model/tableTransportList.d.ts +0 -22
  536. package/model/tableTransportMetrics.d.ts +0 -26
  537. package/model/tableTransportMetricsFilterList.d.ts +0 -24
  538. package/model/tableTrip.d.ts +0 -21
  539. package/model/tableTripColumnType.d.ts +0 -51
  540. package/model/tableTripFields.d.ts +0 -165
  541. package/model/tableTripFilter.d.ts +0 -37
  542. package/model/tableTripFilterList.d.ts +0 -20
  543. package/model/tableTripList.d.ts +0 -22
  544. package/model/tableTripMetrics.d.ts +0 -26
  545. package/model/tableTripMetricsFilterList.d.ts +0 -24
  546. package/model/tableTripStop.d.ts +0 -21
  547. package/model/tableTripStopColumnType.d.ts +0 -31
  548. package/model/tableTripStopFields.d.ts +0 -90
  549. package/model/tableTripStopFilter.d.ts +0 -37
  550. package/model/tableTripStopFilterList.d.ts +0 -20
  551. package/model/tableTripStopList.d.ts +0 -22
  552. package/model/taskStatistics.d.ts +0 -20
  553. package/model/timeWindow.d.ts +0 -23
  554. package/model/timeWindowViolationDetail.d.ts +0 -23
  555. package/model/timeWindowViolations.d.ts +0 -24
  556. package/model/tracedata.d.ts +0 -49
  557. package/model/track.d.ts +0 -44
  558. package/model/trackList.d.ts +0 -22
  559. package/model/trackListCustom.d.ts +0 -20
  560. package/model/trackType.d.ts +0 -17
  561. package/model/trackpoint.d.ts +0 -27
  562. package/model/translations.d.ts +0 -23
  563. package/model/transport.d.ts +0 -44
  564. package/model/transportCapacityMultiplier.d.ts +0 -19
  565. package/model/transportCompatibilities.d.ts +0 -28
  566. package/model/transportLimits.d.ts +0 -21
  567. package/model/transportLoad.d.ts +0 -21
  568. package/model/transportShift.d.ts +0 -43
  569. package/model/transportSpeedMultiplier.d.ts +0 -21
  570. package/model/transportTariff.d.ts +0 -26
  571. package/model/transportTariffConstraint.d.ts +0 -23
  572. package/model/transportType.d.ts +0 -30
  573. package/model/trip.d.ts +0 -41
  574. package/model/tripAssumptions.d.ts +0 -45
  575. package/model/tripExpectations.d.ts +0 -26
  576. package/model/tripPenalties.d.ts +0 -24
  577. package/model/tripStartTimeStrategy.d.ts +0 -16
  578. package/model/tripState.d.ts +0 -66
  579. package/model/tripStateFlag.d.ts +0 -28
  580. package/model/tripStatistics.d.ts +0 -41
  581. package/model/tripStatus.d.ts +0 -23
  582. package/model/tripsSettings.d.ts +0 -25
  583. package/model/universal400WithErrorsAndWarnings.d.ts +0 -36
  584. package/model/universalData.d.ts +0 -67
  585. package/model/unplannedItems.d.ts +0 -47
  586. package/model/versionResult.d.ts +0 -27
  587. package/model/webFact.d.ts +0 -24
  588. package/model/webHardlink.d.ts +0 -24
  589. package/model/webLocation.d.ts +0 -26
  590. package/model/webLocationGeopoint.d.ts +0 -33
  591. package/model/webLocationGeopointList.d.ts +0 -30
  592. package/model/webOrder.d.ts +0 -24
  593. package/model/webOrderGeopoint.d.ts +0 -43
  594. package/model/webOrderGeopointList.d.ts +0 -30
  595. package/model/webPerformer.d.ts +0 -24
  596. package/model/webPerformerGeopoint.d.ts +0 -45
  597. package/model/webPerformerGeopointList.d.ts +0 -30
  598. package/model/webTransport.d.ts +0 -24
  599. package/model/webTransportGeopoint.d.ts +0 -45
  600. package/model/webTransportGeopointList.d.ts +0 -30
  601. package/model/webTrip.d.ts +0 -26
  602. package/model/webTripChart.d.ts +0 -22
  603. package/model/webTripChartDemand.d.ts +0 -21
  604. package/model/webTripChartList.d.ts +0 -22
  605. package/model/workAndRestRules.d.ts +0 -27
  606. package/param.d.ts +0 -37
  607. package/provide-api.d.ts +0 -3
  608. package/variables.d.ts +0 -8
@@ -1,313 +0,0 @@
1
- /**
2
- * VRt.Studio [ST]
3
- *
4
- * The version of the OpenAPI document: 7.33.3222
5
- * Contact: support@veeroute.com
6
- *
7
- * NOTE: This class is auto generated by OpenAPI Generator.
8
- * Do not edit the class manually.
9
- */
10
- /* tslint:disable:no-unused-variable member-ordering */
11
- import { Inject, Injectable, Optional } from '@angular/core';
12
- import { HttpContext } from '@angular/common/http';
13
- // @ts-ignore
14
- import { BASE_PATH } from '../variables';
15
- import { BaseService } from '../api.base.service';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "@angular/common/http";
18
- import * as i2 from "../configuration";
19
- export class CustomIconsService extends BaseService {
20
- httpClient;
21
- constructor(httpClient, basePath, configuration) {
22
- super(basePath, configuration);
23
- this.httpClient = httpClient;
24
- }
25
- createCustomiconsSettings(requestParameters, observe = 'body', reportProgress = false, options) {
26
- const settingsKey = requestParameters?.settingsKey;
27
- if (settingsKey === null || settingsKey === undefined) {
28
- throw new Error('Required parameter settingsKey was null or undefined when calling createCustomiconsSettings.');
29
- }
30
- const body = requestParameters?.body;
31
- if (body === null || body === undefined) {
32
- throw new Error('Required parameter body was null or undefined when calling createCustomiconsSettings.');
33
- }
34
- let localVarHeaders = this.defaultHeaders;
35
- // authentication (ApiKeyAuth) required
36
- localVarHeaders = this.configuration.addCredentialToHeaders('ApiKeyAuth', 'Authorization', localVarHeaders, 'Bearer ');
37
- const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept([
38
- 'application/json'
39
- ]);
40
- if (localVarHttpHeaderAcceptSelected !== undefined) {
41
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
42
- }
43
- const localVarHttpContext = options?.context ?? new HttpContext();
44
- const localVarTransferCache = options?.transferCache ?? true;
45
- // to determine the Content-Type header
46
- const consumes = [
47
- 'application/octet-stream'
48
- ];
49
- const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
50
- if (httpContentTypeSelected !== undefined) {
51
- localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
52
- }
53
- let responseType_ = 'json';
54
- if (localVarHttpHeaderAcceptSelected) {
55
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
56
- responseType_ = 'text';
57
- }
58
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
59
- responseType_ = 'json';
60
- }
61
- else {
62
- responseType_ = 'blob';
63
- }
64
- }
65
- let localVarPath = `/studio/settings/customicons/${this.configuration.encodeParam({ name: "settingsKey", value: settingsKey, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
66
- const { basePath, withCredentials } = this.configuration;
67
- return this.httpClient.request('post', `${basePath}${localVarPath}`, {
68
- context: localVarHttpContext,
69
- body: body,
70
- responseType: responseType_,
71
- ...(withCredentials ? { withCredentials } : {}),
72
- headers: localVarHeaders,
73
- observe: observe,
74
- transferCache: localVarTransferCache,
75
- reportProgress: reportProgress
76
- });
77
- }
78
- deleteCustomiconsSettings(requestParameters, observe = 'body', reportProgress = false, options) {
79
- const settingsKey = requestParameters?.settingsKey;
80
- if (settingsKey === null || settingsKey === undefined) {
81
- throw new Error('Required parameter settingsKey was null or undefined when calling deleteCustomiconsSettings.');
82
- }
83
- let localVarHeaders = this.defaultHeaders;
84
- // authentication (ApiKeyAuth) required
85
- localVarHeaders = this.configuration.addCredentialToHeaders('ApiKeyAuth', 'Authorization', localVarHeaders, 'Bearer ');
86
- const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept([
87
- 'application/json'
88
- ]);
89
- if (localVarHttpHeaderAcceptSelected !== undefined) {
90
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
91
- }
92
- const localVarHttpContext = options?.context ?? new HttpContext();
93
- const localVarTransferCache = options?.transferCache ?? true;
94
- let responseType_ = 'json';
95
- if (localVarHttpHeaderAcceptSelected) {
96
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
97
- responseType_ = 'text';
98
- }
99
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
100
- responseType_ = 'json';
101
- }
102
- else {
103
- responseType_ = 'blob';
104
- }
105
- }
106
- let localVarPath = `/studio/settings/customicons/${this.configuration.encodeParam({ name: "settingsKey", value: settingsKey, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
107
- const { basePath, withCredentials } = this.configuration;
108
- return this.httpClient.request('delete', `${basePath}${localVarPath}`, {
109
- context: localVarHttpContext,
110
- responseType: responseType_,
111
- ...(withCredentials ? { withCredentials } : {}),
112
- headers: localVarHeaders,
113
- observe: observe,
114
- transferCache: localVarTransferCache,
115
- reportProgress: reportProgress
116
- });
117
- }
118
- listCustomiconsSettings(observe = 'body', reportProgress = false, options) {
119
- let localVarHeaders = this.defaultHeaders;
120
- // authentication (ApiKeyAuth) required
121
- localVarHeaders = this.configuration.addCredentialToHeaders('ApiKeyAuth', 'Authorization', localVarHeaders, 'Bearer ');
122
- const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept([
123
- 'application/json'
124
- ]);
125
- if (localVarHttpHeaderAcceptSelected !== undefined) {
126
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
127
- }
128
- const localVarHttpContext = options?.context ?? new HttpContext();
129
- const localVarTransferCache = options?.transferCache ?? true;
130
- let responseType_ = 'json';
131
- if (localVarHttpHeaderAcceptSelected) {
132
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
133
- responseType_ = 'text';
134
- }
135
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
136
- responseType_ = 'json';
137
- }
138
- else {
139
- responseType_ = 'blob';
140
- }
141
- }
142
- let localVarPath = `/studio/settings/customicons`;
143
- const { basePath, withCredentials } = this.configuration;
144
- return this.httpClient.request('get', `${basePath}${localVarPath}`, {
145
- context: localVarHttpContext,
146
- responseType: responseType_,
147
- ...(withCredentials ? { withCredentials } : {}),
148
- headers: localVarHeaders,
149
- observe: observe,
150
- transferCache: localVarTransferCache,
151
- reportProgress: reportProgress
152
- });
153
- }
154
- readCustomiconsSettings(requestParameters, observe = 'body', reportProgress = false, options) {
155
- const settingsKey = requestParameters?.settingsKey;
156
- if (settingsKey === null || settingsKey === undefined) {
157
- throw new Error('Required parameter settingsKey was null or undefined when calling readCustomiconsSettings.');
158
- }
159
- let localVarHeaders = this.defaultHeaders;
160
- // authentication (ApiKeyAuth) required
161
- localVarHeaders = this.configuration.addCredentialToHeaders('ApiKeyAuth', 'Authorization', localVarHeaders, 'Bearer ');
162
- const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept([
163
- 'application/octet-stream',
164
- 'application/json'
165
- ]);
166
- if (localVarHttpHeaderAcceptSelected !== undefined) {
167
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
168
- }
169
- const localVarHttpContext = options?.context ?? new HttpContext();
170
- const localVarTransferCache = options?.transferCache ?? true;
171
- let responseType_ = 'json';
172
- if (localVarHttpHeaderAcceptSelected) {
173
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
174
- responseType_ = 'text';
175
- }
176
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
177
- responseType_ = 'json';
178
- }
179
- else {
180
- responseType_ = 'blob';
181
- }
182
- }
183
- let localVarPath = `/studio/settings/customicons/${this.configuration.encodeParam({ name: "settingsKey", value: settingsKey, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
184
- const { basePath, withCredentials } = this.configuration;
185
- return this.httpClient.request('get', `${basePath}${localVarPath}`, {
186
- context: localVarHttpContext,
187
- responseType: responseType_,
188
- ...(withCredentials ? { withCredentials } : {}),
189
- headers: localVarHeaders,
190
- observe: observe,
191
- transferCache: localVarTransferCache,
192
- reportProgress: reportProgress
193
- });
194
- }
195
- setCustomiconsSettingsActiveKey(requestParameters, observe = 'body', reportProgress = false, options) {
196
- const body = requestParameters?.body;
197
- if (body === null || body === undefined) {
198
- throw new Error('Required parameter body was null or undefined when calling setCustomiconsSettingsActiveKey.');
199
- }
200
- let localVarHeaders = this.defaultHeaders;
201
- // authentication (ApiKeyAuth) required
202
- localVarHeaders = this.configuration.addCredentialToHeaders('ApiKeyAuth', 'Authorization', localVarHeaders, 'Bearer ');
203
- const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept([
204
- 'application/json'
205
- ]);
206
- if (localVarHttpHeaderAcceptSelected !== undefined) {
207
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
208
- }
209
- const localVarHttpContext = options?.context ?? new HttpContext();
210
- const localVarTransferCache = options?.transferCache ?? true;
211
- // to determine the Content-Type header
212
- const consumes = [
213
- 'application/json'
214
- ];
215
- const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
216
- if (httpContentTypeSelected !== undefined) {
217
- localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
218
- }
219
- let responseType_ = 'json';
220
- if (localVarHttpHeaderAcceptSelected) {
221
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
222
- responseType_ = 'text';
223
- }
224
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
225
- responseType_ = 'json';
226
- }
227
- else {
228
- responseType_ = 'blob';
229
- }
230
- }
231
- let localVarPath = `/studio/settings/customicons`;
232
- const { basePath, withCredentials } = this.configuration;
233
- return this.httpClient.request('post', `${basePath}${localVarPath}`, {
234
- context: localVarHttpContext,
235
- body: body,
236
- responseType: responseType_,
237
- ...(withCredentials ? { withCredentials } : {}),
238
- headers: localVarHeaders,
239
- observe: observe,
240
- transferCache: localVarTransferCache,
241
- reportProgress: reportProgress
242
- });
243
- }
244
- updateCustomiconsSettings(requestParameters, observe = 'body', reportProgress = false, options) {
245
- const settingsKey = requestParameters?.settingsKey;
246
- if (settingsKey === null || settingsKey === undefined) {
247
- throw new Error('Required parameter settingsKey was null or undefined when calling updateCustomiconsSettings.');
248
- }
249
- const body = requestParameters?.body;
250
- if (body === null || body === undefined) {
251
- throw new Error('Required parameter body was null or undefined when calling updateCustomiconsSettings.');
252
- }
253
- let localVarHeaders = this.defaultHeaders;
254
- // authentication (ApiKeyAuth) required
255
- localVarHeaders = this.configuration.addCredentialToHeaders('ApiKeyAuth', 'Authorization', localVarHeaders, 'Bearer ');
256
- const localVarHttpHeaderAcceptSelected = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept([
257
- 'application/json'
258
- ]);
259
- if (localVarHttpHeaderAcceptSelected !== undefined) {
260
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
261
- }
262
- const localVarHttpContext = options?.context ?? new HttpContext();
263
- const localVarTransferCache = options?.transferCache ?? true;
264
- // to determine the Content-Type header
265
- const consumes = [
266
- 'application/octet-stream'
267
- ];
268
- const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
269
- if (httpContentTypeSelected !== undefined) {
270
- localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
271
- }
272
- let responseType_ = 'json';
273
- if (localVarHttpHeaderAcceptSelected) {
274
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
275
- responseType_ = 'text';
276
- }
277
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
278
- responseType_ = 'json';
279
- }
280
- else {
281
- responseType_ = 'blob';
282
- }
283
- }
284
- let localVarPath = `/studio/settings/customicons/${this.configuration.encodeParam({ name: "settingsKey", value: settingsKey, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
285
- const { basePath, withCredentials } = this.configuration;
286
- return this.httpClient.request('put', `${basePath}${localVarPath}`, {
287
- context: localVarHttpContext,
288
- body: body,
289
- responseType: responseType_,
290
- ...(withCredentials ? { withCredentials } : {}),
291
- headers: localVarHeaders,
292
- observe: observe,
293
- transferCache: localVarTransferCache,
294
- reportProgress: reportProgress
295
- });
296
- }
297
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomIconsService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: i2.Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
298
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomIconsService, providedIn: 'root' });
299
- }
300
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomIconsService, decorators: [{
301
- type: Injectable,
302
- args: [{
303
- providedIn: 'root'
304
- }]
305
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
306
- type: Optional
307
- }, {
308
- type: Inject,
309
- args: [BASE_PATH]
310
- }] }, { type: i2.Configuration, decorators: [{
311
- type: Optional
312
- }] }] });
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tSWNvbnNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBpL2N1c3RvbUljb25zU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBMkIsZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFDK0MsV0FBVyxFQUN4RCxNQUFZLHNCQUFzQixDQUFDO0FBbUI1QyxhQUFhO0FBQ2IsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQWVsRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQUV6QjtJQUF0QixZQUFzQixVQUFzQixFQUFpQyxRQUF5QixFQUFjLGFBQTZCO1FBQzdJLEtBQUssQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFEYixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRTVDLENBQUM7SUFZTSx5QkFBeUIsQ0FBQyxpQkFBeUQsRUFBRSxVQUFlLE1BQU0sRUFBRSxpQkFBMEIsS0FBSyxFQUFFLE9BQWlHO1FBQ2pQLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztRQUNuRCxJQUFJLFdBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNwSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO1FBQ3JDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO1FBQzdHLENBQUM7UUFF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Q25COzswQkFHa0QsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxTQUFTOzswQkFBOEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVlJ0LlN0dWRpbyBbU1RdXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDcuMzMuMzIyMlxuICogQ29udGFjdDogc3VwcG9ydEB2ZWVyb3V0ZS5jb21cbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yLlxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby11bnVzZWQtdmFyaWFibGUgbWVtYmVyLW9yZGVyaW5nICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLFxuICAgICAgICAgSHR0cFJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBQYXJhbWV0ZXJDb2RlYywgSHR0cENvbnRleHQgXG4gICAgICAgIH0gICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ3VzdG9tSHR0cFBhcmFtZXRlckNvZGVjIH0gICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2VuY29kZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMnO1xuXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBHZW5lcmFsNDAwU3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJhbDQwMCc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBHZW5lcmFsNDAyU3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJhbDQwMic7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBHZW5lcmFsNDAzU3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJhbDQwMyc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBHZW5lcmFsNDA0U3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJhbDQwNCc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBHZW5lcmFsNDI5U3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJhbDQyOSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBHZW5lcmFsNTAwU3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJhbDUwMCc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBTZXR0aW5nc0tleUxpc3RTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9zZXR0aW5nc0tleUxpc3QnO1xuXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBCQVNFX1BBVEgsIENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpLmJhc2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEN1c3RvbUljb25zU2VydmljZUludGVyZmFjZSxcbiAgICBDcmVhdGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcyxcbiAgICBEZWxldGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcyxcbiAgICBSZWFkQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMsXG4gICAgU2V0Q3VzdG9taWNvbnNTZXR0aW5nc0FjdGl2ZUtleVJlcXVlc3RQYXJhbXMsXG4gICAgVXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXNcbn0gZnJvbSAnLi9jdXN0b21JY29uc1NlcnZpY2VJbnRlcmZhY2UnO1xuXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tSWNvbnNTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2UgaW1wbGVtZW50cyBDdXN0b21JY29uc1NlcnZpY2VJbnRlcmZhY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpIEBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nfHN0cmluZ1tdLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uPzogQ29uZmlndXJhdGlvbikge1xuICAgICAgICBzdXBlcihiYXNlUGF0aCwgY29uZmlndXJhdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGljb25zIHNldHRpbmdzXG4gICAgICogQ3JlYXRlIGN1c3RvbSBpY29ucyBzZXR0aW5ncy4gXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUN1c3RvbWljb25zU2V0dGluZ3MocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPGFueT47XG4gICAgcHVibGljIGNyZWF0ZUN1c3RvbWljb25zU2V0dGluZ3MocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj47XG4gICAgcHVibGljIGNyZWF0ZUN1c3RvbWljb25zU2V0dGluZ3MocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+O1xuICAgIHB1YmxpYyBjcmVhdGVDdXN0b21pY29uc1NldHRpbmdzKHJlcXVlc3RQYXJhbWV0ZXJzOiBDcmVhdGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3NLZXkgPSByZXF1ZXN0UGFyYW1ldGVycz8uc2V0dGluZ3NLZXk7XG4gICAgICAgIGlmIChzZXR0aW5nc0tleSA9PT0gbnVsbCB8fCBzZXR0aW5nc0tleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBzZXR0aW5nc0tleSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGNyZWF0ZUN1c3RvbWljb25zU2V0dGluZ3MuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYm9keSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5ib2R5O1xuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBjcmVhdGVDdXN0b21pY29uc1NldHRpbmdzLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKEFwaUtleUF1dGgpIHJlcXVpcmVkXG4gICAgICAgIGxvY2FsVmFySGVhZGVycyA9IHRoaXMuY29uZmlndXJhdGlvbi5hZGRDcmVkZW50aWFsVG9IZWFkZXJzKCdBcGlLZXlBdXRoJywgJ0F1dGhvcml6YXRpb24nLCBsb2NhbFZhckhlYWRlcnMsICdCZWFyZXIgJyk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnM/Lmh0dHBIZWFkZXJBY2NlcHQgPz8gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXSk7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdBY2NlcHQnLCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9IG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9zZXR0aW5ncy9jdXN0b21pY29ucy8ke3RoaXMuY29uZmlndXJhdGlvbi5lbmNvZGVQYXJhbSh7bmFtZTogXCJzZXR0aW5nc0tleVwiLCB2YWx1ZTogc2V0dGluZ3NLZXksIGluOiBcInBhdGhcIiwgc3R5bGU6IFwic2ltcGxlXCIsIGV4cGxvZGU6IGZhbHNlLCBkYXRhVHlwZTogXCJzdHJpbmdcIiwgZGF0YUZvcm1hdDogdW5kZWZpbmVkfSl9YDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdwb3N0JywgYCR7YmFzZVBhdGh9JHtsb2NhbFZhclBhdGh9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiA8YW55PnJlc3BvbnNlVHlwZV8sXG4gICAgICAgICAgICAgICAgLi4uKHdpdGhDcmVkZW50aWFscyA/IHsgd2l0aENyZWRlbnRpYWxzIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBpY29ucyBzZXR0aW5nc1xuICAgICAqIERlbGV0ZSBjdXN0b20gaWNvbnMgc2V0dGluZ3MuIFxuICAgICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGVDdXN0b21pY29uc1NldHRpbmdzKHJlcXVlc3RQYXJhbWV0ZXJzOiBEZWxldGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHB1YmxpYyBkZWxldGVDdXN0b21pY29uc1NldHRpbmdzKHJlcXVlc3RQYXJhbWV0ZXJzOiBEZWxldGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPGFueT4+O1xuICAgIHB1YmxpYyBkZWxldGVDdXN0b21pY29uc1NldHRpbmdzKHJlcXVlc3RQYXJhbWV0ZXJzOiBEZWxldGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PjtcbiAgICBwdWJsaWMgZGVsZXRlQ3VzdG9taWNvbnNTZXR0aW5ncyhyZXF1ZXN0UGFyYW1ldGVyczogRGVsZXRlQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzS2V5ID0gcmVxdWVzdFBhcmFtZXRlcnM/LnNldHRpbmdzS2V5O1xuICAgICAgICBpZiAoc2V0dGluZ3NLZXkgPT09IG51bGwgfHwgc2V0dGluZ3NLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgc2V0dGluZ3NLZXkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBkZWxldGVDdXN0b21pY29uc1NldHRpbmdzLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKEFwaUtleUF1dGgpIHJlcXVpcmVkXG4gICAgICAgIGxvY2FsVmFySGVhZGVycyA9IHRoaXMuY29uZmlndXJhdGlvbi5hZGRDcmVkZW50aWFsVG9IZWFkZXJzKCdBcGlLZXlBdXRoJywgJ0F1dGhvcml6YXRpb24nLCBsb2NhbFZhckhlYWRlcnMsICdCZWFyZXIgJyk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnM/Lmh0dHBIZWFkZXJBY2NlcHQgPz8gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXSk7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdBY2NlcHQnLCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9IG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9zZXR0aW5ncy9jdXN0b21pY29ucy8ke3RoaXMuY29uZmlndXJhdGlvbi5lbmNvZGVQYXJhbSh7bmFtZTogXCJzZXR0aW5nc0tleVwiLCB2YWx1ZTogc2V0dGluZ3NLZXksIGluOiBcInBhdGhcIiwgc3R5bGU6IFwic2ltcGxlXCIsIGV4cGxvZGU6IGZhbHNlLCBkYXRhVHlwZTogXCJzdHJpbmdcIiwgZGF0YUZvcm1hdDogdW5kZWZpbmVkfSl9YDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdkZWxldGUnLCBgJHtiYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiA8YW55PnJlc3BvbnNlVHlwZV8sXG4gICAgICAgICAgICAgICAgLi4uKHdpdGhDcmVkZW50aWFscyA/IHsgd2l0aENyZWRlbnRpYWxzIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlYWRpbmcgaWNvbnMgc2V0dGluZ3MgbGlzdFxuICAgICAqIFJlYWRpbmcgdGhlIGxpc3Qgb2YgY3VzdG9tIGZpZWxkIHNldHRpbmdzIGtleXMuIFxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBsaXN0Q3VzdG9taWNvbnNTZXR0aW5ncyhvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPFNldHRpbmdzS2V5TGlzdFN0dWRpbz47XG4gICAgcHVibGljIGxpc3RDdXN0b21pY29uc1NldHRpbmdzKG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxTZXR0aW5nc0tleUxpc3RTdHVkaW8+PjtcbiAgICBwdWJsaWMgbGlzdEN1c3RvbWljb25zU2V0dGluZ3Mob2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxTZXR0aW5nc0tleUxpc3RTdHVkaW8+PjtcbiAgICBwdWJsaWMgbGlzdEN1c3RvbWljb25zU2V0dGluZ3Mob2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBsZXQgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAoQXBpS2V5QXV0aCkgcmVxdWlyZWRcbiAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmFkZENyZWRlbnRpYWxUb0hlYWRlcnMoJ0FwaUtleUF1dGgnLCAnQXV0aG9yaXphdGlvbicsIGxvY2FsVmFySGVhZGVycywgJ0JlYXJlciAnKTtcblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gb3B0aW9ucz8uaHR0cEhlYWRlckFjY2VwdCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdKTtcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0FjY2VwdCcsIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0ID0gb3B0aW9ucz8uY29udGV4dCA/PyBuZXcgSHR0cENvbnRleHQoKTtcblxuICAgICAgICBjb25zdCBsb2NhbFZhclRyYW5zZmVyQ2FjaGU6IGJvb2xlYW4gPSBvcHRpb25zPy50cmFuc2ZlckNhY2hlID8/IHRydWU7XG5cblxuICAgICAgICBsZXQgcmVzcG9uc2VUeXBlXzogJ3RleHQnIHwgJ2pzb24nIHwgJ2Jsb2InID0gJ2pzb24nO1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZC5zdGFydHNXaXRoKCd0ZXh0JykpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGVfID0gJ3RleHQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uaXNKc29uTWltZShsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGVfID0gJ2pzb24nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGVfID0gJ2Jsb2InO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFyUGF0aCA9IGAvc3R1ZGlvL3NldHRpbmdzL2N1c3RvbWljb25zYDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxTZXR0aW5nc0tleUxpc3RTdHVkaW8+KCdnZXQnLCBgJHtiYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiA8YW55PnJlc3BvbnNlVHlwZV8sXG4gICAgICAgICAgICAgICAgLi4uKHdpdGhDcmVkZW50aWFscyA/IHsgd2l0aENyZWRlbnRpYWxzIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlYWRpbmcgaWNvbnMgc2V0dGluZ3NcbiAgICAgKiBSZWFkaW5nIGN1c3RvbSBmaWVsZCBzZXR0aW5ncy4gXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRDdXN0b21pY29uc1NldHRpbmdzKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZWFkQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfCAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHB1YmxpYyByZWFkQ3VzdG9taWNvbnNTZXR0aW5ncyhyZXF1ZXN0UGFyYW1ldGVyczogUmVhZEN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB8ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxzdHJpbmc+PjtcbiAgICBwdWJsaWMgcmVhZEN1c3RvbWljb25zU2V0dGluZ3MocmVxdWVzdFBhcmFtZXRlcnM6IFJlYWRDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIHwgJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PHN0cmluZz4+O1xuICAgIHB1YmxpYyByZWFkQ3VzdG9taWNvbnNTZXR0aW5ncyhyZXF1ZXN0UGFyYW1ldGVyczogUmVhZEN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIHwgJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzS2V5ID0gcmVxdWVzdFBhcmFtZXRlcnM/LnNldHRpbmdzS2V5O1xuICAgICAgICBpZiAoc2V0dGluZ3NLZXkgPT09IG51bGwgfHwgc2V0dGluZ3NLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgc2V0dGluZ3NLZXkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyByZWFkQ3VzdG9taWNvbnNTZXR0aW5ncy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChBcGlLZXlBdXRoKSByZXF1aXJlZFxuICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uYWRkQ3JlZGVudGlhbFRvSGVhZGVycygnQXBpS2V5QXV0aCcsICdBdXRob3JpemF0aW9uJywgbG9jYWxWYXJIZWFkZXJzLCAnQmVhcmVyICcpO1xuXG4gICAgICAgIGNvbnN0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zPy5odHRwSGVhZGVyQWNjZXB0ID8/IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXSk7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdBY2NlcHQnLCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9IG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9zZXR0aW5ncy9jdXN0b21pY29ucy8ke3RoaXMuY29uZmlndXJhdGlvbi5lbmNvZGVQYXJhbSh7bmFtZTogXCJzZXR0aW5nc0tleVwiLCB2YWx1ZTogc2V0dGluZ3NLZXksIGluOiBcInBhdGhcIiwgc3R5bGU6IFwic2ltcGxlXCIsIGV4cGxvZGU6IGZhbHNlLCBkYXRhVHlwZTogXCJzdHJpbmdcIiwgZGF0YUZvcm1hdDogdW5kZWZpbmVkfSl9YDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxzdHJpbmc+KCdnZXQnLCBgJHtiYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiA8YW55PnJlc3BvbnNlVHlwZV8sXG4gICAgICAgICAgICAgICAgLi4uKHdpdGhDcmVkZW50aWFscyA/IHsgd2l0aENyZWRlbnRpYWxzIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgdHJhbnNmZXJDYWNoZTogbG9jYWxWYXJUcmFuc2ZlckNhY2hlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRpbmcgdGhlIGFjdGl2ZSBjdXN0b21pY29ucyBrZXlcbiAgICAgKiBTZXR0aW5nIHRoZSBhY3RpdmUgY3VzdG9taWNvbnMga2V5LiBcbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q3VzdG9taWNvbnNTZXR0aW5nc0FjdGl2ZUtleShyZXF1ZXN0UGFyYW1ldGVyczogU2V0Q3VzdG9taWNvbnNTZXR0aW5nc0FjdGl2ZUtleVJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8U2V0dGluZ3NLZXlMaXN0U3R1ZGlvPjtcbiAgICBwdWJsaWMgc2V0Q3VzdG9taWNvbnNTZXR0aW5nc0FjdGl2ZUtleShyZXF1ZXN0UGFyYW1ldGVyczogU2V0Q3VzdG9taWNvbnNTZXR0aW5nc0FjdGl2ZUtleVJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxTZXR0aW5nc0tleUxpc3RTdHVkaW8+PjtcbiAgICBwdWJsaWMgc2V0Q3VzdG9taWNvbnNTZXR0aW5nc0FjdGl2ZUtleShyZXF1ZXN0UGFyYW1ldGVyczogU2V0Q3VzdG9taWNvbnNTZXR0aW5nc0FjdGl2ZUtleVJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8U2V0dGluZ3NLZXlMaXN0U3R1ZGlvPj47XG4gICAgcHVibGljIHNldEN1c3RvbWljb25zU2V0dGluZ3NBY3RpdmVLZXkocmVxdWVzdFBhcmFtZXRlcnM6IFNldEN1c3RvbWljb25zU2V0dGluZ3NBY3RpdmVLZXlSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBib2R5ID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJvZHk7XG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHNldEN1c3RvbWljb25zU2V0dGluZ3NBY3RpdmVLZXkuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAoQXBpS2V5QXV0aCkgcmVxdWlyZWRcbiAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmFkZENyZWRlbnRpYWxUb0hlYWRlcnMoJ0FwaUtleUF1dGgnLCAnQXV0aG9yaXphdGlvbicsIGxvY2FsVmFySGVhZGVycywgJ0JlYXJlciAnKTtcblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gb3B0aW9ucz8uaHR0cEhlYWRlckFjY2VwdCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdKTtcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0FjY2VwdCcsIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0ID0gb3B0aW9ucz8uY29udGV4dCA/PyBuZXcgSHR0cENvbnRleHQoKTtcblxuICAgICAgICBjb25zdCBsb2NhbFZhclRyYW5zZmVyQ2FjaGU6IGJvb2xlYW4gPSBvcHRpb25zPy50cmFuc2ZlckNhY2hlID8/IHRydWU7XG5cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9zZXR0aW5ncy9jdXN0b21pY29uc2A7XG4gICAgICAgIGNvbnN0IHsgYmFzZVBhdGgsIHdpdGhDcmVkZW50aWFscyB9ID0gdGhpcy5jb25maWd1cmF0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8U2V0dGluZ3NLZXlMaXN0U3R1ZGlvPigncG9zdCcsIGAke2Jhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGV4dDogbG9jYWxWYXJIdHRwQ29udGV4dCxcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICAgICAgICAgIC4uLih3aXRoQ3JlZGVudGlhbHMgPyB7IHdpdGhDcmVkZW50aWFscyB9IDoge30pLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgaWNvbnMgc2V0dGluZ3NcbiAgICAgKiBVcGRhdGUgY3VzdG9tIGljb25zIHNldHRpbmdzLiBcbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5ncyhyZXF1ZXN0UGFyYW1ldGVyczogVXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8YW55PjtcbiAgICBwdWJsaWMgdXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5ncyhyZXF1ZXN0UGFyYW1ldGVyczogVXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxhbnk+PjtcbiAgICBwdWJsaWMgdXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5ncyhyZXF1ZXN0UGFyYW1ldGVyczogVXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XG4gICAgcHVibGljIHVwZGF0ZUN1c3RvbWljb25zU2V0dGluZ3MocmVxdWVzdFBhcmFtZXRlcnM6IFVwZGF0ZUN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBzZXR0aW5nc0tleSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5zZXR0aW5nc0tleTtcbiAgICAgICAgaWYgKHNldHRpbmdzS2V5ID09PSBudWxsIHx8IHNldHRpbmdzS2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIHNldHRpbmdzS2V5IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5ncy4nKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBib2R5ID0gcmVxdWVzdFBhcmFtZXRlcnM/LmJvZHk7XG4gICAgICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYm9keSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHVwZGF0ZUN1c3RvbWljb25zU2V0dGluZ3MuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcblxuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAoQXBpS2V5QXV0aCkgcmVxdWlyZWRcbiAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmFkZENyZWRlbnRpYWxUb0hlYWRlcnMoJ0FwaUtleUF1dGgnLCAnQXV0aG9yaXphdGlvbicsIGxvY2FsVmFySGVhZGVycywgJ0JlYXJlciAnKTtcblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gb3B0aW9ucz8uaHR0cEhlYWRlckFjY2VwdCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdKTtcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0FjY2VwdCcsIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0ID0gb3B0aW9ucz8uY29udGV4dCA/PyBuZXcgSHR0cENvbnRleHQoKTtcblxuICAgICAgICBjb25zdCBsb2NhbFZhclRyYW5zZmVyQ2FjaGU6IGJvb2xlYW4gPSBvcHRpb25zPy50cmFuc2ZlckNhY2hlID8/IHRydWU7XG5cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVzcG9uc2VUeXBlXzogJ3RleHQnIHwgJ2pzb24nIHwgJ2Jsb2InID0gJ2pzb24nO1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZC5zdGFydHNXaXRoKCd0ZXh0JykpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGVfID0gJ3RleHQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uaXNKc29uTWltZShsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGVfID0gJ2pzb24nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGVfID0gJ2Jsb2InO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFyUGF0aCA9IGAvc3R1ZGlvL3NldHRpbmdzL2N1c3RvbWljb25zLyR7dGhpcy5jb25maWd1cmF0aW9uLmVuY29kZVBhcmFtKHtuYW1lOiBcInNldHRpbmdzS2V5XCIsIHZhbHVlOiBzZXR0aW5nc0tleSwgaW46IFwicGF0aFwiLCBzdHlsZTogXCJzaW1wbGVcIiwgZXhwbG9kZTogZmFsc2UsIGRhdGFUeXBlOiBcInN0cmluZ1wiLCBkYXRhRm9ybWF0OiB1bmRlZmluZWR9KX1gO1xuICAgICAgICBjb25zdCB7IGJhc2VQYXRoLCB3aXRoQ3JlZGVudGlhbHMgfSA9IHRoaXMuY29uZmlndXJhdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PGFueT4oJ3B1dCcsIGAke2Jhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGV4dDogbG9jYWxWYXJIdHRwQ29udGV4dCxcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICAgICAgICAgIC4uLih3aXRoQ3JlZGVudGlhbHMgPyB7IHdpdGhDcmVkZW50aWFscyB9IDoge30pLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tSWNvbnNTZXJ2aWNlSW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBpL2N1c3RvbUljb25zU2VydmljZUludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWUnQuU3R1ZGlvIFtTVF1cbiAqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogNy4zMy4zMjIyXG4gKiBDb250YWN0OiBzdXBwb3J0QHZlZXJvdXRlLmNvbVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IuXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgR2VuZXJhbDQwMFN0dWRpbyB9IGZyb20gJy4uL21vZGVsL21vZGVscyc7XG5pbXBvcnQgeyBHZW5lcmFsNDAyU3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7IEdlbmVyYWw0MDNTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgR2VuZXJhbDQwNFN0dWRpbyB9IGZyb20gJy4uL21vZGVsL21vZGVscyc7XG5pbXBvcnQgeyBHZW5lcmFsNDI5U3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7IEdlbmVyYWw1MDBTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgU2V0dGluZ3NLZXlMaXN0U3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcblxuXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcyB7XG4gICAgc2V0dGluZ3NLZXk6IHN0cmluZztcbiAgICBib2R5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMge1xuICAgIHNldHRpbmdzS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZEN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zIHtcbiAgICBzZXR0aW5nc0tleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldEN1c3RvbWljb25zU2V0dGluZ3NBY3RpdmVLZXlSZXF1ZXN0UGFyYW1zIHtcbiAgICBib2R5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMge1xuICAgIHNldHRpbmdzS2V5OiBzdHJpbmc7XG4gICAgYm9keTogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tSWNvbnNTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgICBkZWZhdWx0SGVhZGVyczogSHR0cEhlYWRlcnM7XG4gICAgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbjtcblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBpY29ucyBzZXR0aW5nc1xuICAgICAqIENyZWF0ZSBjdXN0b20gaWNvbnMgc2V0dGluZ3MuIFxuKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICBjcmVhdGVDdXN0b21pY29uc1NldHRpbmdzKHJlcXVlc3RQYXJhbWV0ZXJzOiBDcmVhdGVDdXN0b21pY29uc1NldHRpbmdzUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8e30+O1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGljb25zIHNldHRpbmdzXG4gICAgICogRGVsZXRlIGN1c3RvbSBpY29ucyBzZXR0aW5ncy4gXG4qIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqL1xuICAgIGRlbGV0ZUN1c3RvbWljb25zU2V0dGluZ3MocmVxdWVzdFBhcmFtZXRlcnM6IERlbGV0ZUN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTx7fT47XG5cbiAgICAvKipcbiAgICAgKiBSZWFkaW5nIGljb25zIHNldHRpbmdzIGxpc3RcbiAgICAgKiBSZWFkaW5nIHRoZSBsaXN0IG9mIGN1c3RvbSBmaWVsZCBzZXR0aW5ncyBrZXlzLiBcbiovXG4gICAgbGlzdEN1c3RvbWljb25zU2V0dGluZ3MoZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8U2V0dGluZ3NLZXlMaXN0U3R1ZGlvPjtcblxuICAgIC8qKlxuICAgICAqIFJlYWRpbmcgaWNvbnMgc2V0dGluZ3NcbiAgICAgKiBSZWFkaW5nIGN1c3RvbSBmaWVsZCBzZXR0aW5ncy4gXG4qIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqL1xuICAgIHJlYWRDdXN0b21pY29uc1NldHRpbmdzKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZWFkQ3VzdG9taWNvbnNTZXR0aW5nc1JlcXVlc3RQYXJhbXMsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBTZXR0aW5nIHRoZSBhY3RpdmUgY3VzdG9taWNvbnMga2V5XG4gICAgICogU2V0dGluZyB0aGUgYWN0aXZlIGN1c3RvbWljb25zIGtleS4gXG4qIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqL1xuICAgIHNldEN1c3RvbWljb25zU2V0dGluZ3NBY3RpdmVLZXkocmVxdWVzdFBhcmFtZXRlcnM6IFNldEN1c3RvbWljb25zU2V0dGluZ3NBY3RpdmVLZXlSZXF1ZXN0UGFyYW1zLCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxTZXR0aW5nc0tleUxpc3RTdHVkaW8+O1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGljb25zIHNldHRpbmdzXG4gICAgICogVXBkYXRlIGN1c3RvbSBpY29ucyBzZXR0aW5ncy4gXG4qIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqL1xuICAgIHVwZGF0ZUN1c3RvbWljb25zU2V0dGluZ3MocmVxdWVzdFBhcmFtZXRlcnM6IFVwZGF0ZUN1c3RvbWljb25zU2V0dGluZ3NSZXF1ZXN0UGFyYW1zLCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTx7fT47XG5cbn1cbiJdfQ==