@kontur.candy/tools 2.185.0 → 2.185.2

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 (599) hide show
  1. package/candy.js +0 -0
  2. package/distr/Common/AsyncUtils.js +1 -1
  3. package/distr/Common/AsyncUtils.js.map +1 -0
  4. package/distr/Common/AutoValidationUtils.js +2 -3
  5. package/distr/Common/AutoValidationUtils.js.map +1 -0
  6. package/distr/Common/CandyApiClient/CandyApiClient.js +2 -3
  7. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -0
  8. package/distr/Common/CandyApiClient/CandyApiClientContext.js +4 -5
  9. package/distr/Common/CandyApiClient/CandyApiClientContext.js.map +1 -0
  10. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +1 -1
  11. package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js.map +1 -0
  12. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +1 -1
  13. package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js.map +1 -0
  14. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +1 -1
  15. package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js.map +1 -0
  16. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +1 -1
  17. package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js.map +1 -0
  18. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +1 -1
  19. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js.map +1 -0
  20. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +1 -1
  21. package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js.map +1 -0
  22. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +1 -1
  23. package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js.map +1 -0
  24. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +2 -3
  25. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js.map +1 -0
  26. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +1 -1
  27. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js.map +1 -0
  28. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +2 -3
  29. package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js.map +1 -0
  30. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +1 -1
  31. package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js.map +1 -0
  32. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +4 -5
  33. package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js.map +1 -0
  34. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +1 -1
  35. package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js.map +1 -0
  36. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +3 -5
  37. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js.map +1 -0
  38. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +1 -1
  39. package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js.map +1 -0
  40. package/distr/Common/CandyApiClient/FakeCandyApiClient.js +1 -1
  41. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -0
  42. package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
  43. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -0
  44. package/distr/Common/CandyApiClient/IsBuffer.js +1 -1
  45. package/distr/Common/CandyApiClient/IsBuffer.js.map +1 -0
  46. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +1 -1
  47. package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js.map +1 -0
  48. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +1 -1
  49. package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js.map +1 -0
  50. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +1 -1
  51. package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js.map +1 -0
  52. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +1 -1
  53. package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js.map +1 -0
  54. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +1 -1
  55. package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js.map +1 -0
  56. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +3 -5
  57. package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js.map +1 -0
  58. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +1 -1
  59. package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js.map +1 -0
  60. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
  61. package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -0
  62. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +1 -1
  63. package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js.map +1 -0
  64. package/distr/Common/CandyApiClient/Types/DraftFullId.js +1 -1
  65. package/distr/Common/CandyApiClient/Types/DraftFullId.js.map +1 -0
  66. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +2 -3
  67. package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js.map +1 -0
  68. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +3 -5
  69. package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -0
  70. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +2 -3
  71. package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js.map +1 -0
  72. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +1 -1
  73. package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -0
  74. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +1 -1
  75. package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js.map +1 -0
  76. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +2 -3
  77. package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js.map +1 -0
  78. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +1 -1
  79. package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js.map +1 -0
  80. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +1 -1
  81. package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js.map +1 -0
  82. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +1 -1
  83. package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js.map +1 -0
  84. package/distr/Common/CandyApiClient/Types/Guid.js +1 -1
  85. package/distr/Common/CandyApiClient/Types/Guid.js.map +1 -0
  86. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +1 -1
  87. package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js.map +1 -0
  88. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +1 -1
  89. package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js.map +1 -0
  90. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +1 -1
  91. package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js.map +1 -0
  92. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +2 -3
  93. package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js.map +1 -0
  94. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +1 -1
  95. package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js.map +1 -0
  96. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +1 -1
  97. package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js.map +1 -0
  98. package/distr/Common/CandyApiClient/Types/Print/PrintType.js +2 -3
  99. package/distr/Common/CandyApiClient/Types/Print/PrintType.js.map +1 -0
  100. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js +1 -1
  101. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js.map +1 -0
  102. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js +1 -1
  103. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js.map +1 -0
  104. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js +1 -1
  105. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js.map +1 -0
  106. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js +1 -1
  107. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js.map +1 -0
  108. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js +1 -1
  109. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js.map +1 -0
  110. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js +1 -1
  111. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js.map +1 -0
  112. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js +1 -1
  113. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js.map +1 -0
  114. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js +1 -1
  115. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js.map +1 -0
  116. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js +1 -1
  117. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js.map +1 -0
  118. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js +1 -1
  119. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js.map +1 -0
  120. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js +1 -1
  121. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js.map +1 -0
  122. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js +1 -1
  123. package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js.map +1 -0
  124. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js +1 -1
  125. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js.map +1 -0
  126. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js +1 -1
  127. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -0
  128. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js +1 -1
  129. package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js.map +1 -0
  130. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js +1 -1
  131. package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js.map +1 -0
  132. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js +1 -1
  133. package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js.map +1 -0
  134. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +1 -1
  135. package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js.map +1 -0
  136. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +1 -1
  137. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js.map +1 -0
  138. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +1 -1
  139. package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js.map +1 -0
  140. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +1 -1
  141. package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js.map +1 -0
  142. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +1 -1
  143. package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js.map +1 -0
  144. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +2 -3
  145. package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js.map +1 -0
  146. package/distr/Common/CandyApiClient/Types/TestClassification.js +1 -1
  147. package/distr/Common/CandyApiClient/Types/TestClassification.js.map +1 -0
  148. package/distr/Common/CollectionUtils.js +1 -1
  149. package/distr/Common/CollectionUtils.js.map +1 -0
  150. package/distr/Common/CommonConstants/SectionNames.js +1 -1
  151. package/distr/Common/CommonConstants/SectionNames.js.map +1 -0
  152. package/distr/Common/Comparers.js +1 -1
  153. package/distr/Common/Comparers.js.map +1 -0
  154. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +3 -3
  155. package/distr/Common/EmotionStorybookWorkaroundViaAliases.js.map +1 -0
  156. package/distr/Common/EndPoints.js +6 -11
  157. package/distr/Common/EndPoints.js.map +1 -0
  158. package/distr/Common/Enums/ButtonSettingsTypeEnum.js +2 -3
  159. package/distr/Common/Enums/ButtonSettingsTypeEnum.js.map +1 -0
  160. package/distr/Common/Errors.js +1 -1
  161. package/distr/Common/Errors.js.map +1 -0
  162. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js +1 -1
  163. package/distr/Common/ExtractGFVPath/ExtractGFVPath.js.map +1 -0
  164. package/distr/Common/FSPrinterClient/FSPrinterClient.js +2 -2
  165. package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -0
  166. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js +1 -1
  167. package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js.map +1 -0
  168. package/distr/Common/FSPrinterClient/IFSPrinterClient.js +6 -11
  169. package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -0
  170. package/distr/Common/FormActionHandlers/ContextualActionNames.js +1 -1
  171. package/distr/Common/FormActionHandlers/ContextualActionNames.js.map +1 -0
  172. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +1 -1
  173. package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js.map +1 -0
  174. package/distr/Common/FormPathUtils.js +2 -2
  175. package/distr/Common/FormPathUtils.js.map +1 -0
  176. package/distr/Common/Funcs.js +1 -1
  177. package/distr/Common/Funcs.js.map +1 -0
  178. package/distr/Common/GFV.js +1 -1
  179. package/distr/Common/GFV.js.map +1 -0
  180. package/distr/Common/Hooks/UseLocalStorage.js +3 -3
  181. package/distr/Common/Hooks/UseLocalStorage.js.map +1 -0
  182. package/distr/Common/HttpClient/AuthenticationMode.js +1 -1
  183. package/distr/Common/HttpClient/AuthenticationMode.js.map +1 -0
  184. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +2 -3
  185. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js.map +1 -0
  186. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +2 -3
  187. package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js.map +1 -0
  188. package/distr/Common/HttpClient/FetchImplementation/Fetch.js +1 -1
  189. package/distr/Common/HttpClient/FetchImplementation/Fetch.js.map +1 -0
  190. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +2 -3
  191. package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js.map +1 -0
  192. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +1 -1
  193. package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js.map +1 -0
  194. package/distr/Common/HttpClient/HttpClient.js +2 -2
  195. package/distr/Common/HttpClient/HttpClient.js.map +1 -0
  196. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +1 -1
  197. package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js.map +1 -0
  198. package/distr/Common/HttpClient/IHttpClient.js +1 -1
  199. package/distr/Common/HttpClient/IHttpClient.js.map +1 -0
  200. package/distr/Common/IndentString.js +1 -1
  201. package/distr/Common/IndentString.js.map +1 -0
  202. package/distr/Common/IntRangeUtils.js +1 -1
  203. package/distr/Common/IntRangeUtils.js.map +1 -0
  204. package/distr/Common/IterableUtils.js +1 -1
  205. package/distr/Common/IterableUtils.js.map +1 -0
  206. package/distr/Common/KCLangRuntimeUtils.js +1 -1
  207. package/distr/Common/KCLangRuntimeUtils.js.map +1 -0
  208. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +4 -2
  209. package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -0
  210. package/distr/Common/ModelPath/BuildIterationSequence.js +1 -1
  211. package/distr/Common/ModelPath/BuildIterationSequence.js.map +1 -0
  212. package/distr/Common/ModelPath/EachCurrentCollision.js +2 -3
  213. package/distr/Common/ModelPath/EachCurrentCollision.js.map +1 -0
  214. package/distr/Common/ModelPath/IEquatable.js +1 -1
  215. package/distr/Common/ModelPath/IEquatable.js.map +1 -0
  216. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +1 -1
  217. package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js.map +1 -0
  218. package/distr/Common/ModelPath/Map/Map2.js +1 -1
  219. package/distr/Common/ModelPath/Map/Map2.js.map +1 -0
  220. package/distr/Common/ModelPath/Map/ModelPathMap.js +1 -1
  221. package/distr/Common/ModelPath/Map/ModelPathMap.js.map +1 -0
  222. package/distr/Common/ModelPath/ModelPath.js +1 -1
  223. package/distr/Common/ModelPath/ModelPath.js.map +1 -0
  224. package/distr/Common/ModelPath/ModelPathBuilder.js +1 -1
  225. package/distr/Common/ModelPath/ModelPathBuilder.js.map +1 -0
  226. package/distr/Common/ModelPath/ModelPathHelper.js +1 -1
  227. package/distr/Common/ModelPath/ModelPathHelper.js.map +1 -0
  228. package/distr/Common/ModelPath/PathMatcher.js +2 -3
  229. package/distr/Common/ModelPath/PathMatcher.js.map +1 -0
  230. package/distr/Common/ModelPath/PathSplitHelper.js +1 -1
  231. package/distr/Common/ModelPath/PathSplitHelper.js.map +1 -0
  232. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +1 -1
  233. package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js.map +1 -0
  234. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +1 -1
  235. package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js.map +1 -0
  236. package/distr/Common/ModelPath/Set/ModelPathSet.js +1 -1
  237. package/distr/Common/ModelPath/Set/ModelPathSet.js.map +1 -0
  238. package/distr/Common/ModelPath/Set/Set2.js +1 -1
  239. package/distr/Common/ModelPath/Set/Set2.js.map +1 -0
  240. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +1 -1
  241. package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js.map +1 -0
  242. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +1 -1
  243. package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js.map +1 -0
  244. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +1 -1
  245. package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js.map +1 -0
  246. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +1 -1
  247. package/distr/Common/NidusClient/Fakes/FakeNidusClient.js.map +1 -0
  248. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +1 -1
  249. package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js.map +1 -0
  250. package/distr/Common/NidusClient/INidusClient.js +1 -1
  251. package/distr/Common/NidusClient/INidusClient.js.map +1 -0
  252. package/distr/Common/NidusClient/NidusClientContext.js +3 -3
  253. package/distr/Common/NidusClient/NidusClientContext.js.map +1 -0
  254. package/distr/Common/NidusClient/NidusClientImpl.js +3 -3
  255. package/distr/Common/NidusClient/NidusClientImpl.js.map +1 -0
  256. package/distr/Common/PathConstants.js +4 -7
  257. package/distr/Common/PathConstants.js.map +1 -0
  258. package/distr/Common/PicklistApiClient/IPicklistApiClient.js +1 -1
  259. package/distr/Common/PicklistApiClient/IPicklistApiClient.js.map +1 -0
  260. package/distr/Common/PicklistApiClient/PicklistApiClient.js +1 -1
  261. package/distr/Common/PicklistApiClient/PicklistApiClient.js.map +1 -0
  262. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +1 -1
  263. package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js.map +1 -0
  264. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +1 -1
  265. package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js.map +1 -0
  266. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +1 -1
  267. package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js.map +1 -0
  268. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js +1 -1
  269. package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js.map +1 -0
  270. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js +1 -1
  271. package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js.map +1 -0
  272. package/distr/Common/RngSchemeTypes/types.js +1 -1
  273. package/distr/Common/RngSchemeTypes/types.js.map +1 -0
  274. package/distr/Common/StringArrayKey.js +1 -1
  275. package/distr/Common/StringArrayKey.js.map +1 -0
  276. package/distr/Common/TextExtractor/TextExtractorTypes.js +1 -1
  277. package/distr/Common/TextExtractor/TextExtractorTypes.js.map +1 -0
  278. package/distr/Common/TypingUtils.js +1 -1
  279. package/distr/Common/TypingUtils.js.map +1 -0
  280. package/distr/Common/UUID.js +1 -1
  281. package/distr/Common/UUID.js.map +1 -0
  282. package/distr/Common/UseAsyncEffect.js +3 -3
  283. package/distr/Common/UseAsyncEffect.js.map +1 -0
  284. package/distr/Common/UseShowOnce.js +1 -1
  285. package/distr/Common/UseShowOnce.js.map +1 -0
  286. package/distr/Common/UseTypedSelector.js +2 -3
  287. package/distr/Common/UseTypedSelector.js.map +1 -0
  288. package/distr/Common/WellKnownDirectories.js +1 -1
  289. package/distr/Common/WellKnownDirectories.js.map +1 -0
  290. package/distr/Common/getRngSchemaFilename.js +1 -1
  291. package/distr/Common/getRngSchemaFilename.js.map +1 -0
  292. package/distr/Common/hashUtils.js +1 -1
  293. package/distr/Common/hashUtils.js.map +1 -0
  294. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +9 -4
  295. package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js.map +1 -0
  296. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +6 -12
  297. package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js.map +1 -0
  298. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +1 -1
  299. package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js.map +1 -0
  300. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +3 -3
  301. package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js.map +1 -0
  302. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +4 -3
  303. package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js.map +1 -0
  304. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +1 -1
  305. package/distr/Tools/src/BuildTasks/Engine/EngineSource.js.map +1 -0
  306. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +1 -1
  307. package/distr/Tools/src/BuildTasks/EngineStructureUtils.js.map +1 -0
  308. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +1 -1
  309. package/distr/Tools/src/BuildTasks/EngineVersionUtils.js.map +1 -0
  310. package/distr/Tools/src/BuildTasks/FSTask.js +1 -1
  311. package/distr/Tools/src/BuildTasks/FSTask.js.map +1 -0
  312. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +3 -3
  313. package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -0
  314. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +3 -3
  315. package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -0
  316. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +1 -1
  317. package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js.map +1 -0
  318. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +1 -1
  319. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js.map +1 -0
  320. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +3 -3
  321. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js.map +1 -0
  322. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +1 -1
  323. package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js.map +1 -0
  324. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +3 -3
  325. package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -0
  326. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +4 -3
  327. package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -0
  328. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +1 -1
  329. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js.map +1 -0
  330. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +4 -4
  331. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -0
  332. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +1 -1
  333. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js.map +1 -0
  334. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +1 -1
  335. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -0
  336. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +1 -1
  337. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +1 -0
  338. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +1 -1
  339. package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js.map +1 -0
  340. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +1 -1
  341. package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js.map +1 -0
  342. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +5 -5
  343. package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -0
  344. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +3 -3
  345. package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -0
  346. package/distr/Tools/src/BuildTasks/ReadFormSource.js +1 -1
  347. package/distr/Tools/src/BuildTasks/ReadFormSource.js.map +1 -0
  348. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +2 -3
  349. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -0
  350. package/distr/Tools/src/BuildTasks/Version.js +3 -3
  351. package/distr/Tools/src/BuildTasks/Version.js.map +1 -0
  352. package/distr/Tools/src/BuildTasks/WriteFormMeta.js +1 -1
  353. package/distr/Tools/src/BuildTasks/WriteFormMeta.js.map +1 -0
  354. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +2 -3
  355. package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js.map +1 -0
  356. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +2 -3
  357. package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -0
  358. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +1 -1
  359. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -0
  360. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +3 -3
  361. package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js.map +1 -0
  362. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +3 -5
  363. package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js.map +1 -0
  364. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +4 -5
  365. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -0
  366. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +5 -6
  367. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -0
  368. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +4 -5
  369. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -0
  370. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +2 -3
  371. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js.map +1 -0
  372. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +4 -5
  373. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js.map +1 -0
  374. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +4 -5
  375. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -0
  376. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +2 -3
  377. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js.map +1 -0
  378. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +4 -5
  379. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js.map +1 -0
  380. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +4 -5
  381. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js.map +1 -0
  382. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +4 -4
  383. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -0
  384. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +1 -1
  385. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -0
  386. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +1 -1
  387. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -0
  388. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +1 -1
  389. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js.map +1 -0
  390. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +1 -1
  391. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -0
  392. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +1 -1
  393. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js.map +1 -0
  394. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +1 -1
  395. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js.map +1 -0
  396. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +1 -1
  397. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js.map +1 -0
  398. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +1 -1
  399. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js.map +1 -0
  400. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +3 -3
  401. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js.map +1 -0
  402. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +1 -1
  403. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -0
  404. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +1 -1
  405. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js.map +1 -0
  406. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +1 -1
  407. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js.map +1 -0
  408. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +1 -1
  409. package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -0
  410. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +1 -1
  411. package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js.map +1 -0
  412. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +2 -3
  413. package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js.map +1 -0
  414. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +3 -5
  415. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js.map +1 -0
  416. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +1 -1
  417. package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js.map +1 -0
  418. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +2 -3
  419. package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -0
  420. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +1 -1
  421. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -0
  422. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +2 -3
  423. package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js.map +1 -0
  424. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +2 -2
  425. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js.map +1 -0
  426. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +4 -5
  427. package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js.map +1 -0
  428. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js +1 -1
  429. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js.map +1 -0
  430. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +2 -3
  431. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +1 -0
  432. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +2 -3
  433. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +1 -0
  434. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +2 -3
  435. package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js.map +1 -0
  436. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +3 -3
  437. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js.map +1 -0
  438. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +2 -3
  439. package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js.map +1 -0
  440. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +1 -1
  441. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js.map +1 -0
  442. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +2 -3
  443. package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js.map +1 -0
  444. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +3 -3
  445. package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js.map +1 -0
  446. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js +2 -3
  447. package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js.map +1 -0
  448. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js +1 -1
  449. package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js.map +1 -0
  450. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +3 -3
  451. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js.map +1 -0
  452. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +2 -3
  453. package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js.map +1 -0
  454. package/distr/Tools/src/CandyCLI.js +1 -1
  455. package/distr/Tools/src/CandyCLI.js.map +1 -0
  456. package/distr/Tools/src/CheckNodeJsVersion.js +2 -3
  457. package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -0
  458. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +1 -1
  459. package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js.map +1 -0
  460. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +3 -3
  461. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js.map +1 -0
  462. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +1 -1
  463. package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js.map +1 -0
  464. package/distr/Tools/src/Commons/ErrorUntyped.js +1 -1
  465. package/distr/Tools/src/Commons/ErrorUntyped.js.map +1 -0
  466. package/distr/Tools/src/Commons/EventObject.js +1 -1
  467. package/distr/Tools/src/Commons/EventObject.js.map +1 -0
  468. package/distr/Tools/src/Commons/ExecUtils.js +1 -1
  469. package/distr/Tools/src/Commons/ExecUtils.js.map +1 -0
  470. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +1 -1
  471. package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js.map +1 -0
  472. package/distr/Tools/src/Commons/FormGlobsUtils.js +1 -1
  473. package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -0
  474. package/distr/Tools/src/Commons/FormLocationInfo.js +1 -1
  475. package/distr/Tools/src/Commons/FormLocationInfo.js.map +1 -0
  476. package/distr/Tools/src/Commons/FsUtils.js +5 -7
  477. package/distr/Tools/src/Commons/FsUtils.js.map +1 -0
  478. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +1 -1
  479. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js.map +1 -0
  480. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +1 -1
  481. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js.map +1 -0
  482. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +1 -1
  483. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js.map +1 -0
  484. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +1 -1
  485. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js.map +1 -0
  486. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +1 -1
  487. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js.map +1 -0
  488. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +1 -1
  489. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js.map +1 -0
  490. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +1 -1
  491. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js.map +1 -0
  492. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +1 -1
  493. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js.map +1 -0
  494. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +1 -1
  495. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js.map +1 -0
  496. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +2 -3
  497. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js.map +1 -0
  498. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +1 -1
  499. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js.map +1 -0
  500. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +1 -1
  501. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js.map +1 -0
  502. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +1 -1
  503. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js.map +1 -0
  504. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +1 -1
  505. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js.map +1 -0
  506. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +1 -1
  507. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js.map +1 -0
  508. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +1 -1
  509. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js.map +1 -0
  510. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +1 -1
  511. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js.map +1 -0
  512. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +3 -3
  513. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js.map +1 -0
  514. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +2 -3
  515. package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js.map +1 -0
  516. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +6 -6
  517. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js.map +1 -0
  518. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +1 -1
  519. package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js.map +1 -0
  520. package/distr/Tools/src/Commons/Locks/Lock.js +1 -1
  521. package/distr/Tools/src/Commons/Locks/Lock.js.map +1 -0
  522. package/distr/Tools/src/Commons/Locks/LockHandle.js +1 -1
  523. package/distr/Tools/src/Commons/Locks/LockHandle.js.map +1 -0
  524. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +1 -1
  525. package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js.map +1 -0
  526. package/distr/Tools/src/Commons/Logging/ELKLogger.js +2 -3
  527. package/distr/Tools/src/Commons/Logging/ELKLogger.js.map +1 -0
  528. package/distr/Tools/src/Commons/Logging/ILogger.js +1 -1
  529. package/distr/Tools/src/Commons/Logging/ILogger.js.map +1 -0
  530. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +1 -1
  531. package/distr/Tools/src/Commons/Logging/InMemoryLogger.js.map +1 -0
  532. package/distr/Tools/src/Commons/Logging/Logger.js +1 -1
  533. package/distr/Tools/src/Commons/Logging/Logger.js.map +1 -0
  534. package/distr/Tools/src/Commons/Logging/StaticLogger.js +1 -1
  535. package/distr/Tools/src/Commons/Logging/StaticLogger.js.map +1 -0
  536. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +1 -1
  537. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js.map +1 -0
  538. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +3 -3
  539. package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js.map +1 -0
  540. package/distr/Tools/src/Commons/PathPattern.js +1 -1
  541. package/distr/Tools/src/Commons/PathPattern.js.map +1 -0
  542. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +1 -1
  543. package/distr/Tools/src/Commons/TasksCore/AggregatedError.js.map +1 -0
  544. package/distr/Tools/src/Commons/TasksCore/BuildTask.js +1 -1
  545. package/distr/Tools/src/Commons/TasksCore/BuildTask.js.map +1 -0
  546. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +5 -5
  547. package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -0
  548. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +3 -3
  549. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js.map +1 -0
  550. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +1 -1
  551. package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js.map +1 -0
  552. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +1 -1
  553. package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js.map +1 -0
  554. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +1 -1
  555. package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js.map +1 -0
  556. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +1 -1
  557. package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js.map +1 -0
  558. package/distr/Tools/src/Commons/TasksCore/Observe.js +1 -1
  559. package/distr/Tools/src/Commons/TasksCore/Observe.js.map +1 -0
  560. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +1 -1
  561. package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js.map +1 -0
  562. package/distr/Tools/src/Commons/TimingUtils.js +1 -1
  563. package/distr/Tools/src/Commons/TimingUtils.js.map +1 -0
  564. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +3 -3
  565. package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -0
  566. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +2 -2
  567. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +1 -0
  568. package/distr/Tools/src/GenerateReadMe.js +1 -1
  569. package/distr/Tools/src/GenerateReadMe.js.map +1 -0
  570. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
  571. package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +5 -3
  572. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  573. package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +5 -3
  574. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  575. package/distr/Tools/src/Options/CandyToolOptions.js +2 -3
  576. package/distr/Tools/src/Options/CandyToolOptions.js.map +1 -0
  577. package/distr/Tools/src/ReadFarmConfig.js +1 -1
  578. package/distr/Tools/src/ReadFarmConfig.js.map +1 -0
  579. package/distr/Tools/src/SelfUpdate.js +3 -3
  580. package/distr/Tools/src/SelfUpdate.js.map +1 -0
  581. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +681 -686
  582. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  583. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +581 -866
  584. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.LICENSE.txt +1 -1
  585. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  586. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +1 -1
  587. package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js.map +1 -0
  588. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +1 -1
  589. package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js.map +1 -0
  590. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +1 -1
  591. package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js.map +1 -0
  592. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +1 -1
  593. package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js.map +1 -0
  594. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +1 -1
  595. package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js.map +1 -0
  596. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +1 -1
  597. package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js.map +1 -0
  598. package/package.json +24 -24
  599. package/CHANGELOG.md +0 -1659
@@ -7,7 +7,7 @@ exports.buildFormsOptionsDefinition = void 0;
7
7
  var _CommandBasedOptionsParser = require("../../Commons/Options/CommandBasedOptionsParser");
8
8
  var _CommonOptionDefintions = require("../CommonOptions/CommonOptionDefintions");
9
9
  var _BuildCacheMode = require("./BuildCacheMode");
10
- const buildFormsOptionsDefinition = (0, _CommandBasedOptionsParser.commandDefinition)("build", "build", (0, _CommandBasedOptionsParser.optionsDefinition)({
10
+ const buildFormsOptionsDefinition = exports.buildFormsOptionsDefinition = (0, _CommandBasedOptionsParser.commandDefinition)("build", "build", (0, _CommandBasedOptionsParser.optionsDefinition)({
11
11
  alias: "w",
12
12
  name: "watch",
13
13
  defaultValue: {
@@ -157,5 +157,4 @@ candy build 104816 --use-prerelease-version bso
157
157
  Версия с префиксом pre используются для движков, которые не являются стабильными и используются для предварительных сборок форм.
158
158
  `.trim()
159
159
  });
160
- exports.buildFormsOptionsDefinition = buildFormsOptionsDefinition;
161
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsInJlcXVpcmUiLCJfQ29tbW9uT3B0aW9uRGVmaW50aW9ucyIsIl9CdWlsZENhY2hlTW9kZSIsImJ1aWxkRm9ybXNPcHRpb25zRGVmaW5pdGlvbiIsImNvbW1hbmREZWZpbml0aW9uIiwib3B0aW9uc0RlZmluaXRpb24iLCJhbGlhcyIsIm5hbWUiLCJkZWZhdWx0VmFsdWUiLCJ3YXRjaCIsInBhcnNlIiwiaW5wdXQiLCJkb2VzTm90UmVxdWlyZVZhbHVlIiwiZGVzY3JpcHRpb24iLCJjbGVhbiIsInVwZ3JhZGVGb3JtSnNvbiIsImJ1aWxkQ2FjaGVNb2RlIiwiQnVpbGRDYWNoZU1vZGUiLCJSZWFkT25seSIsInBhcnNlQnVpbGRDYWNoZU1vZGUiLCJ1c2VMYXN0U3RhYmxlVmVyc2lvbiIsInVzZVByZXJlbGVhc2VWZXJzaW9uIiwidW5kZWZpbmVkIiwic2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmciLCJmb3JtR2xvYnMiLCJkZWZhdWx0T3B0aW9uIiwibXVsdGlwbGUiLCJ1c2VWZXJzaW9uRnJvbUNhY2hlIiwiZGV2TW9kZU9wdGlvbiIsImxvZ1ZlcmJvc2l0eU9wdGlvbiIsImRldGFpbGVkRGVzY3JpcHRpb24iLCJ0cmltIiwiZXhhbXBsZXMiLCJleHRlbmRlZERldGFpbHMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvQnVpbGRGb3Jtc09wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tbWFuZERlZmluaXRpb24sIG9wdGlvbnNEZWZpbml0aW9uIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvT3B0aW9ucy9Db21tYW5kQmFzZWRPcHRpb25zUGFyc2VyXCI7XG5pbXBvcnQgeyBDb21tb25PcHRpb25zIH0gZnJvbSBcIi4uL0NvbW1vbk9wdGlvbnMvQ29tbW9uT3B0aW9uc1wiO1xuaW1wb3J0IHsgZGV2TW9kZU9wdGlvbiwgbG9nVmVyYm9zaXR5T3B0aW9uIH0gZnJvbSBcIi4uL0NvbW1vbk9wdGlvbnMvQ29tbW9uT3B0aW9uRGVmaW50aW9uc1wiO1xuXG5pbXBvcnQgeyBCdWlsZENhY2hlTW9kZSwgcGFyc2VCdWlsZENhY2hlTW9kZSB9IGZyb20gXCIuL0J1aWxkQ2FjaGVNb2RlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGb3Jtc09wdGlvbnMgZXh0ZW5kcyBDb21tb25PcHRpb25zIHtcbiAgICB3YXRjaDogYm9vbGVhbjtcbiAgICBjbGVhbjogYm9vbGVhbjtcbiAgICBmb3JtR2xvYnM6IHN0cmluZ1tdO1xuICAgIHVwZ3JhZGVGb3JtSnNvbjogYm9vbGVhbjtcbiAgICB1c2VMYXN0U3RhYmxlVmVyc2lvbjogYm9vbGVhbjtcbiAgICB1c2VQcmVyZWxlYXNlVmVyc2lvbj86IHN0cmluZztcbiAgICBza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZzogYm9vbGVhbjtcbiAgICB1c2VWZXJzaW9uRnJvbUNhY2hlOiBib29sZWFuO1xuICAgIGJ1aWxkQ2FjaGVNb2RlOiBCdWlsZENhY2hlTW9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IGJ1aWxkRm9ybXNPcHRpb25zRGVmaW5pdGlvbiA9IGNvbW1hbmREZWZpbml0aW9uPFwiYnVpbGRcIiwgQnVpbGRGb3Jtc09wdGlvbnM+KFxuICAgIFwiYnVpbGRcIixcbiAgICBcImJ1aWxkXCIsXG4gICAgb3B0aW9uc0RlZmluaXRpb24oXG4gICAgICAgIHtcbiAgICAgICAgICAgIGFsaWFzOiBcIndcIixcbiAgICAgICAgICAgIG5hbWU6IFwid2F0Y2hcIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyB3YXRjaDogZmFsc2UgfSxcbiAgICAgICAgICAgIHBhcnNlOiBpbnB1dCA9PiAoeyB3YXRjaDogaW5wdXQgfSksXG4gICAgICAgICAgICBkb2VzTm90UmVxdWlyZVZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCJXYXRjaC3RgNC10LbQuNC8LiDQktGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINGE0L7RgNC8LCDQsCDQt9Cw0YLQtdC8INC/0LXRgNC10YHQvtCx0LjRgNCw0LXRgiDQv9GA0Lgg0LjQt9C80LXQvdC10L3QuNGP0YUuINCSINGC0L7QvCDRh9C40YHQu9C1INC00LLQuNC20LrQsCwg0LPQtdC90LXRgNCw0YLQvtGA0LAg0Lgg0YHRgtCw0YLQuNGH0LXRgdC60LjRhSDRgNC10YHRg9GA0YHQvtCyLlwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImNsZWFuXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgY2xlYW46IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgY2xlYW46IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0J/QvtC70L3QvtGB0YLRjNGOINC+0YfQuNGJ0LDQtdGCINGG0LXQu9C10LLQvtC5INC60LDRgtCw0LvQvtCzINGA0LXRgdGD0YDRgdC+0LIuINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQv9GA0Lgg0L/QvtC70L3QvtC5INGB0LHQvtGA0LrQtSDRhNC+0YDQvCDQtNC70Y8g0L/RgNC+0LTQsNC60YjQtdC90LBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ1cGdyYWRlLWZvcm0tanNvblwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVwZ3JhZGVGb3JtSnNvbjogZmFsc2UgfSxcbiAgICAgICAgICAgIHBhcnNlOiBpbnB1dCA9PiAoeyB1cGdyYWRlRm9ybUpzb246IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcItCk0L7RgNGB0LjRgNGD0LXRgiDQuNC30LzQtdC90LXQvdC40LUg0YTQvtGA0LzQsNGC0LAg0YTQsNC50LvQsCBmb3JtLmpzb24g0L3QsCDQvdC+0LLRi9C5XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiYnVpbGQtY2FjaGVcIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyBidWlsZENhY2hlTW9kZTogQnVpbGRDYWNoZU1vZGUuUmVhZE9ubHkgfSxcbiAgICAgICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZykgPT4gKHsgYnVpbGRDYWNoZU1vZGU6IHBhcnNlQnVpbGRDYWNoZU1vZGUoaW5wdXQpIH0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCLQl9Cw0LTQsNGR0YIg0YDQtdC20LjQvCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyDQutGN0YjQsCDRgdCx0L7RgNC60LguINCS0L7Qt9C80L7QttC90YvQtSDQt9C90LDRh9C10L3QuNGPOlxcblwiICtcbiAgICAgICAgICAgICAgICBcIiAgZGlzYWJsZWQgLSDQvdC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutGN0YhcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIHJlYWRvbmx5IC0g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC60Y3RiCDQtNC70Y8g0YHQsdC+0YDQutC4LCDQvdC+INC90LUg0L7QsdC90L7QstC70Y/QtdGCINC10LPQviAo0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjilcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIHVwZGF0ZSAtINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutGN0Ygg0LTQu9GPINGB0LHQvtGA0LrQuCDQuCDQv9GA0LXQt9Cw0L/QuNGB0YvQstCw0YLRjCwg0LXRgdC70Lgg0L3QtSDRgdC+0LLQv9Cw0LTQsNC10YJcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIGZvcmNlLXVwZGF0ZSAtINCy0YHQtdCz0LTQsCDQstGL0L/QvtC70L3Rj9GC0Ywg0YHQsdC+0YDQutGDINC4INC+0LHQvdC+0LLQuNGC0Ywg0LfQvdCw0YfQtdC90LjRjyDQsiDQutGN0YjQtVxcblwiICtcbiAgICAgICAgICAgICAgICBcItCe0YLQutC70Y7Rh9Cw0LXRgtGB0Y8g0L/RgNC4INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC4IHdhdGNoLdGA0LXQttC40LzQsFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZS1sYXN0LXN0YWJsZS12ZXJzaW9uXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgdXNlTGFzdFN0YWJsZVZlcnNpb246IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgdXNlTGFzdFN0YWJsZVZlcnNpb246IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCDQsiDRhNCw0LnQu9CwIGBmb3JtLmpzb25gINCyINC/0L7RgdC70LXQtNC90Y7RjiDRgdGC0LDQsdC40LvRjNC90YPRjiDQstC10YDRgdC40Y4uINCQ0L3QsNC70L7Qs9C40YfQtdC9INC30LDQv9GD0YHQutGDIGNhbmR5LWJ1aWxkINGBINC/0LDRgNCw0LzQtdGC0YDQvtC8IC1nZSBtYXN0ZXJcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ1c2UtcHJlcmVsZWFzZS12ZXJzaW9uXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgdXNlUHJlcmVsZWFzZVZlcnNpb246IHVuZGVmaW5lZCBhcyB1bmRlZmluZWQgfCBzdHJpbmcgfSxcbiAgICAgICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZykgPT4gKHsgdXNlUHJlcmVsZWFzZVZlcnNpb246IGlucHV0IH0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCLQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstC10YDRgdC40Y4g0LTQstC40LbQutCwINCyINGE0LDQudC70LAgZm9ybS5qc29uINCyINC/0L7RgdC70LXQtNC90Y7RjiDQv9GA0LXRgNC10LvQuNC30L3Rg9GOINCy0LXRgNGB0LjRjiDQsiDQt9Cw0LTQsNC90L3Ri9C8IHByZWlkLiDQkiDRhNCw0LnQu9C1INCy0LXRgNGB0LjQuCDQs9C10L3QtdGA0LDRgtC+0YDQsCDQuCDQtNCy0LjQttC60LAg0LHRg9C00YPRgiDRg9GB0YLQsNC90L7QstC70LXQvdGLINCyIHByZTpzb21lLXByZWlkLlwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIm5vLXJlZm9ybWF0XCIsXG4gICAgICAgICAgICBkb2VzTm90UmVxdWlyZVZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nOiB0cnVlIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBib29sZWFuKSA9PiAoeyBza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZzogaW5wdXQgfSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICBcItCe0YLQu9GO0YfQsNC10YIg0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNC90LjQtSDQs9C10L3QtdGA0LjRgNGD0LXQvNC+0LPQviDQutC+0LTQsC4g0KDQsNCx0L7RgtCw0LXRgiwg0YLQvtC70YzQutC+INC10YHQu9C4INCy0LXRgNGB0LjRjyDQs9C10L3QtdGA0LDRgtC+0YDQsCDQv9C+0LTQtNC10YDQttC40LLQsNC10YIg0Y3RgtGDINC+0L/RhtC40Y4uINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YPRgdC60L7RgNC10L3QuNGPINGB0LHQvtGA0LrQuCDRhNC+0YDQvC4gKGRlZmF1bHQ6IHRydWUpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGFsaWFzOiBcImdcIixcbiAgICAgICAgICAgIG5hbWU6IFwiZ2Z2c1wiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGZvcm1HbG9iczogW10gfSxcbiAgICAgICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZ1tdKSA9PiAoeyBmb3JtR2xvYnM6IGlucHV0IH0pLFxuICAgICAgICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwi0J7QtNC90LAg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQviBHRlYg0LjQu9C4IEdGVi3QvNCw0YHQvtC6INC00LvRjyDQv9C10YDQtdGB0LHQvtGA0LrQuC4g0JzQvtC20LXRgiDRgdC+0LTQtdGA0LbQsNGC0Ywg0LfQvdCw0YfQutC4IGA/YCDQuCBgKmAuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidXNlLXZlcnNpb24tZnJvbS1jYWNoZVwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVzZVZlcnNpb25Gcm9tQ2FjaGU6IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBib29sZWFuKSA9PiAoeyB1c2VWZXJzaW9uRnJvbUNhY2hlOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcItCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQstC10YDRgdC40Y4g0LTQstC40LbQutCwINC4INCz0LXQvdC10YDQsNGC0L7RgNCwINC40Lcg0YTQsNC50LvQvtCy0L7QuSDRgdC40YHRgtC10LzRi1wiLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGV2TW9kZU9wdGlvbixcbiAgICAgICAgbG9nVmVyYm9zaXR5T3B0aW9uXG4gICAgKSxcbiAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCLQktGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINC+0LTQvdC+0Lkg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQuNGFINGE0L7RgNC8LlxcblwiICtcbiAgICAgICAgICAgIFwi0J/QvtC00YDQvtCx0L3QtdC1OiBodHRwczovL2dpdC5za2Jrb250dXIucnUva2UvY2FuZHktdXRpbHMvYmxvYi9uZXctY2FuZHktdG9vbC1jbGkvUkVBRE1FLm1kXCIsXG5cbiAgICAgICAgZGV0YWlsZWREZXNjcmlwdGlvbjogYFxu0J7RgdC90L7QstC90L7QuSDRgdGG0LXQvdCw0YDQuNC5OiDQstGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINGE0L7RgNC8INCyINC60LDRgtCw0LvQvtCzINGBINGA0LXRgdGD0YDRgdCw0LzQuC4g0JTQtdC50YHRgtCy0LjRjywg0LrQvtGC0L7RgNGL0LUg0LLRi9C/0L7Qu9C90Y/QtdGCINC60L7QvNCw0L3QtNCwOlxuXG4qINCf0L7Qu9GD0YfQtdC90LjQtSDQtNCy0LjQttC60LAg0YTQvtGA0Lwg0LLQtdGA0YHQuNC4INGD0LrQsNC30LDQvdC90L7QuSDQsiBcXGBmb3JtLmpzb25cXGAsXG4qINC/0L7Qu9GD0YfQtdC90LjQtSDQs9C10L3QtdGA0LDRgtC+0YDQsCDRhNC+0YDQvCDQstC10YDRgdC40Lgg0YPQutCw0LfQsNC90L3QvtC5INCyIFxcYGZvcm0uanNvblxcYCxcbiog0LPQtdC90LXRgNCw0YbQuNGPINC4INC60L7QvNC/0LjQu9GP0YbQuNGPINGE0L7RgNC80Ysg0LIg0LrQsNGC0LDQu9C+0LMg0YDQtdGB0YPRgNGB0L7Qsixcbiog0YHQvtC30LTQsNC90LjQtSDRhNCw0LnQu9C+0LIgXFxge2dmdn0ubWV0YXMuanNvblxcYCDQuCBcXGBwcmVzZW50YXRpb25zLmpzb25cXGAg0LIg0LrQsNGC0LDQu9C+0LPQtSDRgNC10YHRg9GA0YHQvtCyXG4qINC60L7Qv9C40YDQvtCy0LDQvdC40LUg0LrQvtC90LLQtdGA0YLQtdGA0L7QsiDQsiDQutCw0YLQsNC70L7QsyDRgNC10YHRg9GA0YHQvtCyLFxuKiDQutC+0L/QuNGA0L7QstCw0L3QuNC1INGB0YXQtdC80Ysg0LIg0LrQsNGC0LDQu9C+0LMg0YDQtdGB0YPRgNGB0L7Qsi5cbmAudHJpbSgpLFxuXG4gICAgICAgIGV4YW1wbGVzOiBgXG5cXGBcXGBcXGBcbiMg0KHQsdC+0YDQutCwINGE0L7RgNC80YsgMTA0ODE2XG5jYW5keSBidWlsZCAxMDQ4MTZcblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0KHQsdC+0YDQutCwINCy0YHQtSDRhNC+0YDQvNGLINCz0YDRg9C/0L/RiyAxXG5jYW5keSBidWlsZCAxPz8/Pz9cblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0KHQvtCx0YDQsNGC0Ywg0YTQvtGA0LzRgyAxMDQ4MTYg0Lgg0YHQu9C10LTQuNGC0Ywg0LfQsCDQuNC30LzQtdC90LXQvdC40Y/QvNC4XG5jYW5keSBidWlsZCAxMDQ4MTYgLXdcblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0L7RgdC70LXQtNC90Y7RjiDQv9GA0LXRgNC10LvQuNC30L3Rg9GOINCy0LXRgNGB0LjRjiDQtNCy0LjQttC60LAg0YEgcHJlaWQ9YnNvXG5jYW5keSBidWlsZCAxMDQ4MTYgLS11c2UtcHJlcmVsZWFzZS12ZXJzaW9uIGJzb1xuXFxgXFxgXFxgXG5gLnRyaW0oKSxcblxuICAgICAgICBleHRlbmRlZERldGFpbHM6IGBcbiMjIyDQktC10YDRgdC40L7QvdC40YDQvtCy0LDQvdC40LVcblxu0J/RgNC4INGB0LHQvtGA0LrQtSDRhNC+0YDQvCwg0YPRh9C40YLRi9Cy0LDQtdGC0YHRjyDQstC10YDRgdC40Y8g0LTQstC40LbQutCwINC4INCz0LXQvdC10YDQsNGC0L7RgNCwINGD0LrQsNC30LDQvdC90YvQtSDRhNCw0LnQu9C1IGZvcm0uanNvbi4g0JLQtdGA0YHQuNC4INC80L7Qs9GD0YIg0YPQutCw0LfRi9Cy0LDRgtGMINC90LUg0L3QsCDQutC+0L3QutGA0LXRgtC90YPRjiDQstC10YDRgdC40Y4sINCwINCw0LTRgNC10YHQvtCy0LDRgtGMINC00LjQsNC/0LDQt9C+0L0g0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBIFtzZW12ZXJdKGh0dHBzOi8vc2VtdmVyLm9yZy9sYW5nL3J1LykuXG7QkiDRjdGC0L7QvCDRgdC70YPRh9Cw0LUg0LHRg9C00LXRgiDQstGL0LHRgNCw0L3QsCDQv9C+0YHQu9C10LTQvdGP0Y8g0L/QvtC00YXQvtC00Y/RidCw0Y8g0LLQtdGA0YHQuNGPLlxuXG7QpNCw0LnQuyBmb3JtLmpzb24g0LTQvtC70LbQtdC9INCy0YvQs9C70Y/QtNC10YLRjCDRgdC70LXQtNGD0Y7RidC40Lwg0L7QsdGA0LDQt9C+0Lw6XG5cXGBcXGBcXGBcbntcbiAgICAvLyDQntC/0YbQuNC+0L3QsNC70YzQvdC+XG4gICAgXCJ0aGVtZXNcIjogW1wi0LjQvNGPLdGC0LXQvNGLXCIsIC4uLl0sXG4gICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICBcImVuZ2luZVwiOiBcIlvQstC10YDRgdC40Y8t0LTQstC40LbQutCwXVwiLFxuICAgICAgICBcImdlbmVyYXRvclwiOiBcIlvQstC10YDRgdC40Y8t0LPQtdC90LXRgNCw0YLQvtGA0LBdXCJcbiAgICB9XG59XG5cXGBcXGBcXGBcblxuXFxg0LLQtdGA0YHQuNGPLdC00LLQuNC20LrQsFxcYCwgXFxg0LLQtdGA0YHQuNGPLdCz0LXQvdC10YDQsNGC0L7RgNCwXFxgIC0g0KHQvtC+0YLQstC10YLRgdGC0LLQtdC90L3Qviwg0LTQuNCw0L/QsNC30L7QvdGLINCy0LXRgNGB0LjQuS4g0J3QsCDQtNCw0L3QvdGL0Lkg0LzQvtC80LXQvdGCINCy0YHQtdCz0LTQsCDRgdC+0LLQv9Cw0LTQsNGO0YIuXG5cbtCU0L7Qv9GD0YHRgtC40LzRi9C1INCy0LDRgNC40LDQvdGC0Ysg0LLQtdGA0YHQuNC5OlxuKiDQktC10YDRgdC40Y8g0LIg0YTQvtGA0LzQsNGC0LUgW3NlbXZlcl0oaHR0cHM6Ly9zZW12ZXIub3JnL2xhbmcvcnUvKS5cbiog0JLQtdGA0YHQuNGPINGBINC/0YDQtdGE0LjQutGB0L7QvCBwcmUuINCd0LDQv9GA0LjQvNC10YAsIFxcYHByZTpteS1zdGFuZ2UtYnJhbmNoLW5hbWVcXGAsINCz0LTQtSBcXGBteS1zdGFuZ2UtYnJhbmNoLW5hbWVcXGAgLSDQvdCw0LfQstCw0L3QuNC1INC/0YDQtdC00YDQtdC70LjQt9C90L7QuSDQstC10YDRgdC40LgsINCy0YvQv9GD0YHQutCw0LXQvNC+0Lkg0YDQsNC30YDQsNCx0L7RgtGH0LjQutCw0LzQuCBDYW5keSwg0LTQu9GPINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7Qs9C+INCy0YvQv9GD0YHQutCwINGE0L7RgNC8Llxu0JLQtdGA0YHQuNGPINGBINC/0YDQtdGE0LjQutGB0L7QvCBwcmUg0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINC00LvRjyDQtNCy0LjQttC60L7Qsiwg0LrQvtGC0L7RgNGL0LUg0L3QtSDRj9Cy0LvRj9GO0YLRgdGPINGB0YLQsNCx0LjQu9GM0L3Ri9C80Lgg0Lgg0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINC00LvRjyDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdGL0YUg0YHQsdC+0YDQvtC6INGE0L7RgNC8LlxuYC50cmltKCksXG4gICAgfVxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsMEJBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLHVCQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFjTyxNQUFNRywyQkFBMkIsR0FBRyxJQUFBQyw0Q0FBaUIsRUFDeEQsT0FBTyxFQUNQLE9BQU8sRUFDUCxJQUFBQyw0Q0FBaUIsRUFDYjtFQUNJQyxLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsT0FBTztF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
160
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsInJlcXVpcmUiLCJfQ29tbW9uT3B0aW9uRGVmaW50aW9ucyIsIl9CdWlsZENhY2hlTW9kZSIsImJ1aWxkRm9ybXNPcHRpb25zRGVmaW5pdGlvbiIsImV4cG9ydHMiLCJjb21tYW5kRGVmaW5pdGlvbiIsIm9wdGlvbnNEZWZpbml0aW9uIiwiYWxpYXMiLCJuYW1lIiwiZGVmYXVsdFZhbHVlIiwid2F0Y2giLCJwYXJzZSIsImlucHV0IiwiZG9lc05vdFJlcXVpcmVWYWx1ZSIsImRlc2NyaXB0aW9uIiwiY2xlYW4iLCJ1cGdyYWRlRm9ybUpzb24iLCJidWlsZENhY2hlTW9kZSIsIkJ1aWxkQ2FjaGVNb2RlIiwiUmVhZE9ubHkiLCJwYXJzZUJ1aWxkQ2FjaGVNb2RlIiwidXNlTGFzdFN0YWJsZVZlcnNpb24iLCJ1c2VQcmVyZWxlYXNlVmVyc2lvbiIsInVuZGVmaW5lZCIsInNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nIiwiZm9ybUdsb2JzIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwidXNlVmVyc2lvbkZyb21DYWNoZSIsImRldk1vZGVPcHRpb24iLCJsb2dWZXJib3NpdHlPcHRpb24iLCJkZXRhaWxlZERlc2NyaXB0aW9uIiwidHJpbSIsImV4YW1wbGVzIiwiZXh0ZW5kZWREZXRhaWxzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvQnVpbGRGb3Jtc09wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tbWFuZERlZmluaXRpb24sIG9wdGlvbnNEZWZpbml0aW9uIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvT3B0aW9ucy9Db21tYW5kQmFzZWRPcHRpb25zUGFyc2VyXCI7XG5pbXBvcnQgeyBDb21tb25PcHRpb25zIH0gZnJvbSBcIi4uL0NvbW1vbk9wdGlvbnMvQ29tbW9uT3B0aW9uc1wiO1xuaW1wb3J0IHsgZGV2TW9kZU9wdGlvbiwgbG9nVmVyYm9zaXR5T3B0aW9uIH0gZnJvbSBcIi4uL0NvbW1vbk9wdGlvbnMvQ29tbW9uT3B0aW9uRGVmaW50aW9uc1wiO1xuXG5pbXBvcnQgeyBCdWlsZENhY2hlTW9kZSwgcGFyc2VCdWlsZENhY2hlTW9kZSB9IGZyb20gXCIuL0J1aWxkQ2FjaGVNb2RlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGb3Jtc09wdGlvbnMgZXh0ZW5kcyBDb21tb25PcHRpb25zIHtcbiAgICB3YXRjaDogYm9vbGVhbjtcbiAgICBjbGVhbjogYm9vbGVhbjtcbiAgICBmb3JtR2xvYnM6IHN0cmluZ1tdO1xuICAgIHVwZ3JhZGVGb3JtSnNvbjogYm9vbGVhbjtcbiAgICB1c2VMYXN0U3RhYmxlVmVyc2lvbjogYm9vbGVhbjtcbiAgICB1c2VQcmVyZWxlYXNlVmVyc2lvbj86IHN0cmluZztcbiAgICBza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZzogYm9vbGVhbjtcbiAgICB1c2VWZXJzaW9uRnJvbUNhY2hlOiBib29sZWFuO1xuICAgIGJ1aWxkQ2FjaGVNb2RlOiBCdWlsZENhY2hlTW9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IGJ1aWxkRm9ybXNPcHRpb25zRGVmaW5pdGlvbiA9IGNvbW1hbmREZWZpbml0aW9uPFwiYnVpbGRcIiwgQnVpbGRGb3Jtc09wdGlvbnM+KFxuICAgIFwiYnVpbGRcIixcbiAgICBcImJ1aWxkXCIsXG4gICAgb3B0aW9uc0RlZmluaXRpb24oXG4gICAgICAgIHtcbiAgICAgICAgICAgIGFsaWFzOiBcIndcIixcbiAgICAgICAgICAgIG5hbWU6IFwid2F0Y2hcIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyB3YXRjaDogZmFsc2UgfSxcbiAgICAgICAgICAgIHBhcnNlOiBpbnB1dCA9PiAoeyB3YXRjaDogaW5wdXQgfSksXG4gICAgICAgICAgICBkb2VzTm90UmVxdWlyZVZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCJXYXRjaC3RgNC10LbQuNC8LiDQktGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINGE0L7RgNC8LCDQsCDQt9Cw0YLQtdC8INC/0LXRgNC10YHQvtCx0LjRgNCw0LXRgiDQv9GA0Lgg0LjQt9C80LXQvdC10L3QuNGP0YUuINCSINGC0L7QvCDRh9C40YHQu9C1INC00LLQuNC20LrQsCwg0LPQtdC90LXRgNCw0YLQvtGA0LAg0Lgg0YHRgtCw0YLQuNGH0LXRgdC60LjRhSDRgNC10YHRg9GA0YHQvtCyLlwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImNsZWFuXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgY2xlYW46IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgY2xlYW46IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0J/QvtC70L3QvtGB0YLRjNGOINC+0YfQuNGJ0LDQtdGCINGG0LXQu9C10LLQvtC5INC60LDRgtCw0LvQvtCzINGA0LXRgdGD0YDRgdC+0LIuINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQv9GA0Lgg0L/QvtC70L3QvtC5INGB0LHQvtGA0LrQtSDRhNC+0YDQvCDQtNC70Y8g0L/RgNC+0LTQsNC60YjQtdC90LBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ1cGdyYWRlLWZvcm0tanNvblwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVwZ3JhZGVGb3JtSnNvbjogZmFsc2UgfSxcbiAgICAgICAgICAgIHBhcnNlOiBpbnB1dCA9PiAoeyB1cGdyYWRlRm9ybUpzb246IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcItCk0L7RgNGB0LjRgNGD0LXRgiDQuNC30LzQtdC90LXQvdC40LUg0YTQvtGA0LzQsNGC0LAg0YTQsNC50LvQsCBmb3JtLmpzb24g0L3QsCDQvdC+0LLRi9C5XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiYnVpbGQtY2FjaGVcIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogeyBidWlsZENhY2hlTW9kZTogQnVpbGRDYWNoZU1vZGUuUmVhZE9ubHkgfSxcbiAgICAgICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZykgPT4gKHsgYnVpbGRDYWNoZU1vZGU6IHBhcnNlQnVpbGRDYWNoZU1vZGUoaW5wdXQpIH0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCLQl9Cw0LTQsNGR0YIg0YDQtdC20LjQvCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyDQutGN0YjQsCDRgdCx0L7RgNC60LguINCS0L7Qt9C80L7QttC90YvQtSDQt9C90LDRh9C10L3QuNGPOlxcblwiICtcbiAgICAgICAgICAgICAgICBcIiAgZGlzYWJsZWQgLSDQvdC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutGN0YhcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIHJlYWRvbmx5IC0g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC60Y3RiCDQtNC70Y8g0YHQsdC+0YDQutC4LCDQvdC+INC90LUg0L7QsdC90L7QstC70Y/QtdGCINC10LPQviAo0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjilcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIHVwZGF0ZSAtINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutGN0Ygg0LTQu9GPINGB0LHQvtGA0LrQuCDQuCDQv9GA0LXQt9Cw0L/QuNGB0YvQstCw0YLRjCwg0LXRgdC70Lgg0L3QtSDRgdC+0LLQv9Cw0LTQsNC10YJcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgIGZvcmNlLXVwZGF0ZSAtINCy0YHQtdCz0LTQsCDQstGL0L/QvtC70L3Rj9GC0Ywg0YHQsdC+0YDQutGDINC4INC+0LHQvdC+0LLQuNGC0Ywg0LfQvdCw0YfQtdC90LjRjyDQsiDQutGN0YjQtVxcblwiICtcbiAgICAgICAgICAgICAgICBcItCe0YLQutC70Y7Rh9Cw0LXRgtGB0Y8g0L/RgNC4INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC4IHdhdGNoLdGA0LXQttC40LzQsFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZS1sYXN0LXN0YWJsZS12ZXJzaW9uXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgdXNlTGFzdFN0YWJsZVZlcnNpb246IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogaW5wdXQgPT4gKHsgdXNlTGFzdFN0YWJsZVZlcnNpb246IGlucHV0IH0pLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgIFwi0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCDQsiDRhNCw0LnQu9CwIGBmb3JtLmpzb25gINCyINC/0L7RgdC70LXQtNC90Y7RjiDRgdGC0LDQsdC40LvRjNC90YPRjiDQstC10YDRgdC40Y4uINCQ0L3QsNC70L7Qs9C40YfQtdC9INC30LDQv9GD0YHQutGDIGNhbmR5LWJ1aWxkINGBINC/0LDRgNCw0LzQtdGC0YDQvtC8IC1nZSBtYXN0ZXJcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ1c2UtcHJlcmVsZWFzZS12ZXJzaW9uXCIsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHsgdXNlUHJlcmVsZWFzZVZlcnNpb246IHVuZGVmaW5lZCBhcyB1bmRlZmluZWQgfCBzdHJpbmcgfSxcbiAgICAgICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZykgPT4gKHsgdXNlUHJlcmVsZWFzZVZlcnNpb246IGlucHV0IH0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCLQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstC10YDRgdC40Y4g0LTQstC40LbQutCwINCyINGE0LDQudC70LAgZm9ybS5qc29uINCyINC/0L7RgdC70LXQtNC90Y7RjiDQv9GA0LXRgNC10LvQuNC30L3Rg9GOINCy0LXRgNGB0LjRjiDQsiDQt9Cw0LTQsNC90L3Ri9C8IHByZWlkLiDQkiDRhNCw0LnQu9C1INCy0LXRgNGB0LjQuCDQs9C10L3QtdGA0LDRgtC+0YDQsCDQuCDQtNCy0LjQttC60LAg0LHRg9C00YPRgiDRg9GB0YLQsNC90L7QstC70LXQvdGLINCyIHByZTpzb21lLXByZWlkLlwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIm5vLXJlZm9ybWF0XCIsXG4gICAgICAgICAgICBkb2VzTm90UmVxdWlyZVZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nOiB0cnVlIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBib29sZWFuKSA9PiAoeyBza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZzogaW5wdXQgfSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICBcItCe0YLQu9GO0YfQsNC10YIg0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNC90LjQtSDQs9C10L3QtdGA0LjRgNGD0LXQvNC+0LPQviDQutC+0LTQsC4g0KDQsNCx0L7RgtCw0LXRgiwg0YLQvtC70YzQutC+INC10YHQu9C4INCy0LXRgNGB0LjRjyDQs9C10L3QtdGA0LDRgtC+0YDQsCDQv9C+0LTQtNC10YDQttC40LLQsNC10YIg0Y3RgtGDINC+0L/RhtC40Y4uINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YPRgdC60L7RgNC10L3QuNGPINGB0LHQvtGA0LrQuCDRhNC+0YDQvC4gKGRlZmF1bHQ6IHRydWUpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGFsaWFzOiBcImdcIixcbiAgICAgICAgICAgIG5hbWU6IFwiZ2Z2c1wiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGZvcm1HbG9iczogW10gfSxcbiAgICAgICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZ1tdKSA9PiAoeyBmb3JtR2xvYnM6IGlucHV0IH0pLFxuICAgICAgICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwi0J7QtNC90LAg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQviBHRlYg0LjQu9C4IEdGVi3QvNCw0YHQvtC6INC00LvRjyDQv9C10YDQtdGB0LHQvtGA0LrQuC4g0JzQvtC20LXRgiDRgdC+0LTQtdGA0LbQsNGC0Ywg0LfQvdCw0YfQutC4IGA/YCDQuCBgKmAuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidXNlLXZlcnNpb24tZnJvbS1jYWNoZVwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVzZVZlcnNpb25Gcm9tQ2FjaGU6IGZhbHNlIH0sXG4gICAgICAgICAgICBwYXJzZTogKGlucHV0OiBib29sZWFuKSA9PiAoeyB1c2VWZXJzaW9uRnJvbUNhY2hlOiBpbnB1dCB9KSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcItCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQstC10YDRgdC40Y4g0LTQstC40LbQutCwINC4INCz0LXQvdC10YDQsNGC0L7RgNCwINC40Lcg0YTQsNC50LvQvtCy0L7QuSDRgdC40YHRgtC10LzRi1wiLFxuICAgICAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGV2TW9kZU9wdGlvbixcbiAgICAgICAgbG9nVmVyYm9zaXR5T3B0aW9uXG4gICAgKSxcbiAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCLQktGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINC+0LTQvdC+0Lkg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQuNGFINGE0L7RgNC8LlxcblwiICtcbiAgICAgICAgICAgIFwi0J/QvtC00YDQvtCx0L3QtdC1OiBodHRwczovL2dpdC5za2Jrb250dXIucnUva2UvY2FuZHktdXRpbHMvYmxvYi9uZXctY2FuZHktdG9vbC1jbGkvUkVBRE1FLm1kXCIsXG5cbiAgICAgICAgZGV0YWlsZWREZXNjcmlwdGlvbjogYFxu0J7RgdC90L7QstC90L7QuSDRgdGG0LXQvdCw0YDQuNC5OiDQstGL0L/QvtC70L3Rj9C10YIg0YHQsdC+0YDQutGDINGE0L7RgNC8INCyINC60LDRgtCw0LvQvtCzINGBINGA0LXRgdGD0YDRgdCw0LzQuC4g0JTQtdC50YHRgtCy0LjRjywg0LrQvtGC0L7RgNGL0LUg0LLRi9C/0L7Qu9C90Y/QtdGCINC60L7QvNCw0L3QtNCwOlxuXG4qINCf0L7Qu9GD0YfQtdC90LjQtSDQtNCy0LjQttC60LAg0YTQvtGA0Lwg0LLQtdGA0YHQuNC4INGD0LrQsNC30LDQvdC90L7QuSDQsiBcXGBmb3JtLmpzb25cXGAsXG4qINC/0L7Qu9GD0YfQtdC90LjQtSDQs9C10L3QtdGA0LDRgtC+0YDQsCDRhNC+0YDQvCDQstC10YDRgdC40Lgg0YPQutCw0LfQsNC90L3QvtC5INCyIFxcYGZvcm0uanNvblxcYCxcbiog0LPQtdC90LXRgNCw0YbQuNGPINC4INC60L7QvNC/0LjQu9GP0YbQuNGPINGE0L7RgNC80Ysg0LIg0LrQsNGC0LDQu9C+0LMg0YDQtdGB0YPRgNGB0L7Qsixcbiog0YHQvtC30LTQsNC90LjQtSDRhNCw0LnQu9C+0LIgXFxge2dmdn0ubWV0YXMuanNvblxcYCDQuCBcXGBwcmVzZW50YXRpb25zLmpzb25cXGAg0LIg0LrQsNGC0LDQu9C+0LPQtSDRgNC10YHRg9GA0YHQvtCyXG4qINC60L7Qv9C40YDQvtCy0LDQvdC40LUg0LrQvtC90LLQtdGA0YLQtdGA0L7QsiDQsiDQutCw0YLQsNC70L7QsyDRgNC10YHRg9GA0YHQvtCyLFxuKiDQutC+0L/QuNGA0L7QstCw0L3QuNC1INGB0YXQtdC80Ysg0LIg0LrQsNGC0LDQu9C+0LMg0YDQtdGB0YPRgNGB0L7Qsi5cbmAudHJpbSgpLFxuXG4gICAgICAgIGV4YW1wbGVzOiBgXG5cXGBcXGBcXGBcbiMg0KHQsdC+0YDQutCwINGE0L7RgNC80YsgMTA0ODE2XG5jYW5keSBidWlsZCAxMDQ4MTZcblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0KHQsdC+0YDQutCwINCy0YHQtSDRhNC+0YDQvNGLINCz0YDRg9C/0L/RiyAxXG5jYW5keSBidWlsZCAxPz8/Pz9cblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0KHQvtCx0YDQsNGC0Ywg0YTQvtGA0LzRgyAxMDQ4MTYg0Lgg0YHQu9C10LTQuNGC0Ywg0LfQsCDQuNC30LzQtdC90LXQvdC40Y/QvNC4XG5jYW5keSBidWlsZCAxMDQ4MTYgLXdcblxcYFxcYFxcYFxuXG5cXGBcXGBcXGBcbiMg0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC/0L7RgdC70LXQtNC90Y7RjiDQv9GA0LXRgNC10LvQuNC30L3Rg9GOINCy0LXRgNGB0LjRjiDQtNCy0LjQttC60LAg0YEgcHJlaWQ9YnNvXG5jYW5keSBidWlsZCAxMDQ4MTYgLS11c2UtcHJlcmVsZWFzZS12ZXJzaW9uIGJzb1xuXFxgXFxgXFxgXG5gLnRyaW0oKSxcblxuICAgICAgICBleHRlbmRlZERldGFpbHM6IGBcbiMjIyDQktC10YDRgdC40L7QvdC40YDQvtCy0LDQvdC40LVcblxu0J/RgNC4INGB0LHQvtGA0LrQtSDRhNC+0YDQvCwg0YPRh9C40YLRi9Cy0LDQtdGC0YHRjyDQstC10YDRgdC40Y8g0LTQstC40LbQutCwINC4INCz0LXQvdC10YDQsNGC0L7RgNCwINGD0LrQsNC30LDQvdC90YvQtSDRhNCw0LnQu9C1IGZvcm0uanNvbi4g0JLQtdGA0YHQuNC4INC80L7Qs9GD0YIg0YPQutCw0LfRi9Cy0LDRgtGMINC90LUg0L3QsCDQutC+0L3QutGA0LXRgtC90YPRjiDQstC10YDRgdC40Y4sINCwINCw0LTRgNC10YHQvtCy0LDRgtGMINC00LjQsNC/0LDQt9C+0L0g0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBIFtzZW12ZXJdKGh0dHBzOi8vc2VtdmVyLm9yZy9sYW5nL3J1LykuXG7QkiDRjdGC0L7QvCDRgdC70YPRh9Cw0LUg0LHRg9C00LXRgiDQstGL0LHRgNCw0L3QsCDQv9C+0YHQu9C10LTQvdGP0Y8g0L/QvtC00YXQvtC00Y/RidCw0Y8g0LLQtdGA0YHQuNGPLlxuXG7QpNCw0LnQuyBmb3JtLmpzb24g0LTQvtC70LbQtdC9INCy0YvQs9C70Y/QtNC10YLRjCDRgdC70LXQtNGD0Y7RidC40Lwg0L7QsdGA0LDQt9C+0Lw6XG5cXGBcXGBcXGBcbntcbiAgICAvLyDQntC/0YbQuNC+0L3QsNC70YzQvdC+XG4gICAgXCJ0aGVtZXNcIjogW1wi0LjQvNGPLdGC0LXQvNGLXCIsIC4uLl0sXG4gICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICBcImVuZ2luZVwiOiBcIlvQstC10YDRgdC40Y8t0LTQstC40LbQutCwXVwiLFxuICAgICAgICBcImdlbmVyYXRvclwiOiBcIlvQstC10YDRgdC40Y8t0LPQtdC90LXRgNCw0YLQvtGA0LBdXCJcbiAgICB9XG59XG5cXGBcXGBcXGBcblxuXFxg0LLQtdGA0YHQuNGPLdC00LLQuNC20LrQsFxcYCwgXFxg0LLQtdGA0YHQuNGPLdCz0LXQvdC10YDQsNGC0L7RgNCwXFxgIC0g0KHQvtC+0YLQstC10YLRgdGC0LLQtdC90L3Qviwg0LTQuNCw0L/QsNC30L7QvdGLINCy0LXRgNGB0LjQuS4g0J3QsCDQtNCw0L3QvdGL0Lkg0LzQvtC80LXQvdGCINCy0YHQtdCz0LTQsCDRgdC+0LLQv9Cw0LTQsNGO0YIuXG5cbtCU0L7Qv9GD0YHRgtC40LzRi9C1INCy0LDRgNC40LDQvdGC0Ysg0LLQtdGA0YHQuNC5OlxuKiDQktC10YDRgdC40Y8g0LIg0YTQvtGA0LzQsNGC0LUgW3NlbXZlcl0oaHR0cHM6Ly9zZW12ZXIub3JnL2xhbmcvcnUvKS5cbiog0JLQtdGA0YHQuNGPINGBINC/0YDQtdGE0LjQutGB0L7QvCBwcmUuINCd0LDQv9GA0LjQvNC10YAsIFxcYHByZTpteS1zdGFuZ2UtYnJhbmNoLW5hbWVcXGAsINCz0LTQtSBcXGBteS1zdGFuZ2UtYnJhbmNoLW5hbWVcXGAgLSDQvdCw0LfQstCw0L3QuNC1INC/0YDQtdC00YDQtdC70LjQt9C90L7QuSDQstC10YDRgdC40LgsINCy0YvQv9GD0YHQutCw0LXQvNC+0Lkg0YDQsNC30YDQsNCx0L7RgtGH0LjQutCw0LzQuCBDYW5keSwg0LTQu9GPINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7Qs9C+INCy0YvQv9GD0YHQutCwINGE0L7RgNC8Llxu0JLQtdGA0YHQuNGPINGBINC/0YDQtdGE0LjQutGB0L7QvCBwcmUg0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINC00LvRjyDQtNCy0LjQttC60L7Qsiwg0LrQvtGC0L7RgNGL0LUg0L3QtSDRj9Cy0LvRj9GO0YLRgdGPINGB0YLQsNCx0LjQu9GM0L3Ri9C80Lgg0Lgg0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINC00LvRjyDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdGL0YUg0YHQsdC+0YDQvtC6INGE0L7RgNC8LlxuYC50cmltKCksXG4gICAgfVxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsMEJBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLHVCQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFjTyxNQUFNRywyQkFBMkIsR0FBQUMsT0FBQSxDQUFBRCwyQkFBQSxHQUFHLElBQUFFLDRDQUFpQixFQUN4RCxPQUFPLEVBQ1AsT0FBTyxFQUNQLElBQUFDLDRDQUFpQixFQUNiO0VBQ0lDLEtBQUssRUFBRSxHQUFH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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildFormsOptions.js","names":["_CommandBasedOptionsParser","require","_CommonOptionDefintions","_BuildCacheMode","buildFormsOptionsDefinition","exports","commandDefinition","optionsDefinition","alias","name","defaultValue","watch","parse","input","doesNotRequireValue","description","clean","upgradeFormJson","buildCacheMode","BuildCacheMode","ReadOnly","parseBuildCacheMode","useLastStableVersion","usePrereleaseVersion","undefined","skipGeneratedCodeReformatting","formGlobs","defaultOption","multiple","useVersionFromCache","devModeOption","logVerbosityOption","detailedDescription","trim","examples","extendedDetails"],"sources":["../../../../../src/CLICommands/BuildForms/BuildFormsOptions.ts"],"sourcesContent":["import { commandDefinition, optionsDefinition } from \"../../Commons/Options/CommandBasedOptionsParser\";\nimport { CommonOptions } from \"../CommonOptions/CommonOptions\";\nimport { devModeOption, logVerbosityOption } from \"../CommonOptions/CommonOptionDefintions\";\n\nimport { BuildCacheMode, parseBuildCacheMode } from \"./BuildCacheMode\";\n\nexport interface BuildFormsOptions extends CommonOptions {\n watch: boolean;\n clean: boolean;\n formGlobs: string[];\n upgradeFormJson: boolean;\n useLastStableVersion: boolean;\n usePrereleaseVersion?: string;\n skipGeneratedCodeReformatting: boolean;\n useVersionFromCache: boolean;\n buildCacheMode: BuildCacheMode;\n}\n\nexport const buildFormsOptionsDefinition = commandDefinition<\"build\", BuildFormsOptions>(\n \"build\",\n \"build\",\n optionsDefinition(\n {\n alias: \"w\",\n name: \"watch\",\n defaultValue: { watch: false },\n parse: input => ({ watch: input }),\n doesNotRequireValue: true,\n description:\n \"Watch-режим. Выполняет сборку форм, а затем пересобирает при изменениях. В том числе движка, генератора и статических ресурсов.\",\n },\n {\n name: \"clean\",\n defaultValue: { clean: false },\n parse: input => ({ clean: input }),\n doesNotRequireValue: true,\n description:\n \"Полностью очищает целевой каталог ресурсов. Используется при полной сборке форм для продакшена\",\n },\n {\n name: \"upgrade-form-json\",\n defaultValue: { upgradeFormJson: false },\n parse: input => ({ upgradeFormJson: input }),\n doesNotRequireValue: true,\n description: \"Форсирует изменение формата файла form.json на новый\",\n },\n {\n name: \"build-cache\",\n defaultValue: { buildCacheMode: BuildCacheMode.ReadOnly },\n parse: (input: string) => ({ buildCacheMode: parseBuildCacheMode(input) }),\n description:\n \"Задаёт режим использования кэша сборки. Возможные значения:\\n\" +\n \" disabled - не использовать кэш\\n\" +\n \" readonly - использовать кэш для сборки, но не обновляет его (значение по умолчанию)\\n\" +\n \" update - использовать кэш для сборки и презаписывать, если не совпадает\\n\" +\n \" force-update - всегда выполнять сборку и обновить значения в кэше\\n\" +\n \"Отключается при использовании watch-режима\",\n },\n {\n name: \"use-last-stable-version\",\n defaultValue: { useLastStableVersion: false },\n parse: input => ({ useLastStableVersion: input }),\n doesNotRequireValue: true,\n description:\n \"Устанавливает версию движка в файла `form.json` в последнюю стабильную версию. Аналогичен запуску candy-build с параметром -ge master\",\n },\n {\n name: \"use-prerelease-version\",\n defaultValue: { usePrereleaseVersion: undefined as undefined | string },\n parse: (input: string) => ({ usePrereleaseVersion: input }),\n description:\n \"Устанавливает версию движка в файла form.json в последнюю пререлизную версию в заданным preid. В файле версии генератора и движка будут установлены в pre:some-preid.\",\n },\n {\n name: \"no-reformat\",\n doesNotRequireValue: true,\n defaultValue: { skipGeneratedCodeReformatting: true },\n parse: (input: boolean) => ({ skipGeneratedCodeReformatting: input }),\n description:\n \"Отлючает форматирование генерируемого кода. Работает, только если версия генератора поддерживает эту опцию. Используется для ускорения сборки форм. (default: true)\",\n },\n {\n alias: \"g\",\n name: \"gfvs\",\n defaultValue: { formGlobs: [] },\n parse: (input: string[]) => ({ formGlobs: input }),\n defaultOption: true,\n multiple: true,\n description: \"Одна или несколько GFV или GFV-масок для пересборки. Может содержать значки `?` и `*`.\",\n },\n {\n name: \"use-version-from-cache\",\n defaultValue: { useVersionFromCache: false },\n parse: (input: boolean) => ({ useVersionFromCache: input }),\n description: \"Использовать версию движка и генератора из файловой системы\",\n doesNotRequireValue: true,\n },\n devModeOption,\n logVerbosityOption\n ),\n {\n description:\n \"Выполняет сборку одной или нескольких форм.\\n\" +\n \"Подробнее: https://git.skbkontur.ru/ke/candy-utils/blob/new-candy-tool-cli/README.md\",\n\n detailedDescription: `\nОсновной сценарий: выполняет сборку форм в каталог с ресурсами. Действия, которые выполняет команда:\n\n* Получение движка форм версии указанной в \\`form.json\\`,\n* получение генератора форм версии указанной в \\`form.json\\`,\n* генерация и компиляция формы в каталог ресурсов,\n* создание файлов \\`{gfv}.metas.json\\` и \\`presentations.json\\` в каталоге ресурсов\n* копирование конвертеров в каталог ресурсов,\n* копирование схемы в каталог ресурсов.\n`.trim(),\n\n examples: `\n\\`\\`\\`\n# Сборка формы 104816\ncandy build 104816\n\\`\\`\\`\n\n\\`\\`\\`\n# Сборка все формы группы 1\ncandy build 1?????\n\\`\\`\\`\n\n\\`\\`\\`\n# Собрать форму 104816 и следить за изменениями\ncandy build 104816 -w\n\\`\\`\\`\n\n\\`\\`\\`\n# Использовать последнюю пререлизную версию движка с preid=bso\ncandy build 104816 --use-prerelease-version bso\n\\`\\`\\`\n`.trim(),\n\n extendedDetails: `\n### Версионирование\n\nПри сборке форм, учитывается версия движка и генератора указанные файле form.json. Версии могут указывать не на конкретную версию, а адресовать диапазон в соответствии с [semver](https://semver.org/lang/ru/).\nВ этом случае будет выбрана последняя подходящая версия.\n\nФайл form.json должен выглядеть следующим образом:\n\\`\\`\\`\n{\n // Опционально\n \"themes\": [\"имя-темы\", ...],\n \"dependencies\": {\n \"engine\": \"[версия-движка]\",\n \"generator\": \"[версия-генератора]\"\n }\n}\n\\`\\`\\`\n\n\\`версия-движка\\`, \\`версия-генератора\\` - Соответственно, диапазоны версий. На данный момент всегда совпадают.\n\nДопустимые варианты версий:\n* Версия в формате [semver](https://semver.org/lang/ru/).\n* Версия с префиксом pre. Например, \\`pre:my-stange-branch-name\\`, где \\`my-stange-branch-name\\` - название предрелизной версии, выпускаемой разработчиками Candy, для предварительного выпуска форм.\nВерсия с префиксом pre используются для движков, которые не являются стабильными и используются для предварительных сборок форм.\n`.trim(),\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -231,4 +231,4 @@ async function cleanTargetDirectory(resourcesDirectory, logger) {
231
231
  await (0, _fsExtra.emptyDir)(resourcesDirectory);
232
232
  logger.log("Resource directory clean");
233
233
  }
234
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX2ZzRXh0cmEiLCJfbm9kZU5vdGlmaWVyIiwiX0FjcXVpcmVGb3JtRW5naW5lIiwiX0VuZ2luZVNvdXJjZSIsIl9Db21waWxlRm9ybSIsIl9HZW5lcmF0ZUZvcm0iLCJfTnVsbEZvcm1HZW5lcmF0b3IiLCJfV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyIsIl9GU1Rhc2siLCJfQWNxdWlyZUZvcm1HZW5lcmF0b3IiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Xcml0ZUZvcm1NZXRhIiwiX0Zvcm1HbG9ic1V0aWxzIiwiX1N0YXRpY0xvZ2dlciIsIl9PYnNlcnZlIiwiX1NpbmdsZVZhbHVlUHJvZHVjZXIiLCJfVGltaW5nVXRpbHMiLCJfQ2FjaGVBc3NldHNQbHVnaW4iLCJfVHlwaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJnZXRHZW5lcmF0b3JWZXJzaW9uIiwiZ2VuZXJhdG9yU291cmNlIiwidHlwZSIsInZlcnNpb24iLCJFcnJvciIsInJ1bkJ1aWxkRm9ybXMiLCJjb250ZXh0Iiwib3B0aW9ucyIsImZhcm1EaXJlY3RvcnkiLCJyZXNvdXJjZXNEaXJlY3RvcnkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiYnVpbGRPcHRpb25zIiwicGlja0xpc3RzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJGb3JtR2xvYnMiLCJlbnN1cmVFYWNoR2xvYlJlc29sdmVzSW50b0V4aXN0aW5nRm9ybSIsImZvcm1HbG9icyIsImZvcm1JbmZvcyIsInJlc29sdmVHZnZHbG9icyIsInN0YXRpY1Jlc291cmNlc0ZvclByb2R1Y3Rpb25DaGFpbiIsIl9fZGlybmFtZSIsImdldExvZ2dlciIsInJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluIiwiZW1wdHkiLCJjb3BpZWRFbmdpbmVzIiwiU2V0IiwicmVwb3NpdG9yeVJvb3QiLCJidWlsZENhY2hlIiwiQnVpbGRDYWNoZSIsImJ1aWxkQ2FjaGVNb2RlIiwiYnVpbGRGb3Jtc0NoYWluIiwiZml4ZWRGb3JtRGlyZWN0b3JpZXMiLCJtYXAiLCJyZWxhdGl2ZSIsImZvcm1QYXRoIiwic3BsaXRUb1BhcmFsbGVsQ2hhaW5zIiwiZm9ybVJlbGF0aXZlUGF0aCIsImdmdiIsImV4dHJhY3RHZnZGcm9tRm9ybVBhdGgiLCJmb3JtRGlyUGF0aCIsInBhdGhFeGlzdHMiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJ3YXJuaW5nIiwidmFsdWUiLCJmb3JtU2NoZW1hc0RpclBhdGgiLCJybmdTY2hlbWFNYXNrIiwiZ2V0Um5nU2NoZW1hRmlsZW5hbWUiLCJmaWxlIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwicmVzb2x2ZUZvcm1JbmZvIiwidXBncmFkZUZvcm1Kc29uIiwidXNlTGFzdFN0YWJsZVZlcnNpb24iLCJ1c2VQcmVyZWxlYXNlVmVyc2lvbiIsImZpIiwibW9kZSIsIkZvcm1CdWlsZE1vZGUiLCJOb3JtYWxCdWlsZCIsImdlbmVyYXRvclZlcnNpb24iLCJ1bmRlZmluZWQiLCJlbmdpbmVWZXJzaW9uIiwicmVzb2x2ZUdlbmVyYXRvclZlcnNpb24iLCJlbmdpbmVTb3VyY2UiLCJyZXNvbHZlRW5naW5lVmVyc2lvbiIsImF0dGFjaCIsIlNpbmdsZVZhbHVlUHJvZHVjZXIiLCJOdWxsRm9ybUdlbmVyYXRvciIsImdlbmVyYXRvckZhY3RvcnkiLCJ1c2VWZXJzaW9uRnJvbUNhY2hlIiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImVuZ2luZUZhY3RvcnkiLCJoYXMiLCJnZXRFbmdpbmVTb3VyY2VLZXkiLCJhZGQiLCJmb3JtU291cmNlc1BhdGgiLCJkZXBlbmRlbmNpZXNIYXNoIiwic3VwcG9ydHNEZXBlbmRlbmNpZXNFeHRyYWN0aW9uIiwiZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaCIsImJ1aWxkQ2FjaGVFeGlzdCIsImV4aXN0cyIsIl9maSRkZXBlbmRlbmNpZXNIYXNoIiwibG9nIiwiZ2VuZXJhdGVGb3JtIiwic2tpcENvZGVSZWZvcm1hdHRpbmciLCJza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZyIsInJlc291cmNlc0hhc2giLCJfZmkkZGVwZW5kZW5jaWVzSGFzaDIiLCJfZmkkZGVwZW5kZW5jaWVzSGFzaDMiLCJleHRyYWN0IiwiYnVpbGRDYWNoZU9wdGlvbnMiLCJkZXBzSGFzaCIsImNvbXBpbGVGb3JtIiwiZm9ybU5hbWUiLCJ0aGVtZXMiLCJyZWplY3QiLCJ3cml0ZUZvcm1NZXRhIiwid3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyIsIndyaXRlQXR0YWNobWVudFBhdGhGaWxlcyIsIkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcyIsIm1vZGlmaWVyIiwiY29udGVudCIsInJlcGxhY2UiLCJtb2RpZnlGaWxlc0NvbnRlbnQiLCJ3YXRjaCIsIm5vdGlmaWVyIiwibm90aWZ5IiwidGl0bGUiLCJtZXNzYWdlIiwiY2xlYW4iLCJjbGVhblRhcmdldERpcmVjdG9yeSIsInN0b3BPYnNlcnZlMSIsIm9ic2VydmUiLCJzdG9wT2JzZXJ2ZTIiLCJzdG9wT2JzZXJ2ZTMiLCJzdG9wT2JzZXJ2ZTUiLCJ3YWl0Rm9yRXhpdCIsInN0YXJ0RGF0ZSIsIkRhdGUiLCJub3ciLCJjdXJyZW50VmFsdWUiLCJjb25zb2xlIiwiY2hhbGsiLCJncmVlbkJyaWdodCIsInRvdGFsVGltZSIsInByaW50VGltZSIsImVtcHR5RGlyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgeyBlbXB0eURpciwgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IG5vdGlmaWVyIGZyb20gXCJub2RlLW5vdGlmaWVyXCI7XG5cbmltcG9ydCB7IGVuZ2luZUZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmUvQWNxdWlyZUZvcm1FbmdpbmVcIjtcbmltcG9ydCB7IGdldEVuZ2luZVNvdXJjZUtleSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0VuZ2luZS9FbmdpbmVTb3VyY2VcIjtcbmltcG9ydCB7IGNvbXBpbGVGb3JtIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Db21waWxlRm9ybVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVGb3JtIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9HZW5lcmF0ZUZvcm1cIjtcbmltcG9ydCB7IE51bGxGb3JtR2VuZXJhdG9yIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9OdWxsRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlc1wiO1xuaW1wb3J0IHsgRlNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRlNUYXNrXCI7XG5pbXBvcnQge1xuICAgIGdlbmVyYXRvckZhY3RvcnksXG4gICAgR2VuZXJhdG9yU291cmNlLFxuICAgIGdldEdlbmVyYXRvclNvdXJjZUtleSxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvR2VuZXJhdG9yL0FjcXVpcmVGb3JtR2VuZXJhdG9yXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5naW5lVmVyc2lvbiwgcmVzb2x2ZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IEZvcm1CdWlsZE1vZGUsIHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgd3JpdGVGb3JtTWV0YSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1dyaXRlRm9ybU1ldGFcIjtcbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL09ic2VydmVcIjtcbmltcG9ydCB7IFNpbmdsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvU2luZ2xlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgcHJpbnRUaW1lIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGltaW5nVXRpbHNcIjtcbmltcG9ydCB7IEJ1aWxkQ2FjaGUgfSBmcm9tIFwiLi4vLi4vRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uL0NhY2hlQXNzZXRzUGx1Z2luXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL1dyaXRlQXR0YWNobWVudFBhdGhGaWxlc1wiO1xuaW1wb3J0IHsgQ2hhaW5hYmxlVmFsdWVQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBFbXB0eVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL0VtcHR5UHJvZHVjZXJcIjtcbmltcG9ydCB7IGdldFJuZ1NjaGVtYUZpbGVuYW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9nZXRSbmdTY2hlbWFGaWxlbmFtZVwiO1xuaW1wb3J0IHsgZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vRm9ybVBhdGhVdGlsc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IEJ1aWxkRm9ybXNPcHRpb25zIH0gZnJvbSBcIi4vQnVpbGRGb3Jtc09wdGlvbnNcIjtcblxuZnVuY3Rpb24gZ2V0R2VuZXJhdG9yVmVyc2lvbihnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSk6IHN0cmluZyB7XG4gICAgaWYgKGdlbmVyYXRvclNvdXJjZS50eXBlID09PSBcIlB1Ymxpc2hlZEdlbmVyYXRvclwiKSB7XG4gICAgICAgIHJldHVybiBnZW5lcmF0b3JTb3VyY2UudmVyc2lvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkUHJvZ3JhbVN0YXRlXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkJ1aWxkRm9ybXMoXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBCdWlsZEZvcm1zT3B0aW9ucyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgaGxGYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidWlsZE9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgY29uc3QgcGlja0xpc3RzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSwgXCIqLmpzb25cIikuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoXCJQSUNLTElTVFNcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGlja2xpc3RzXCIpKVxuICAgICk7XG5cbiAgICBhd2FpdCBGb3JtR2xvYnMuZW5zdXJlRWFjaEdsb2JSZXNvbHZlc0ludG9FeGlzdGluZ0Zvcm0ob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IGZvcm1JbmZvcyA9IGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlR2Z2R2xvYnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgY29uc3Qgc3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluID0gT2JzZXJ2ZS5maWxlcyhcbiAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwiU3RhdGljRmlsZXNGb3JQcm9kdWN0aW9uUmVzb3VyY2VzRGlyXCIpLFxuICAgICAgICBcIiouanNcIixcbiAgICAgICAgXCIqLmpzLm1hcFwiXG4gICAgKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlNUQVRJQ1NcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicHVibGljXCIsIFwic2NyaXB0c1wiKSlcbiAgICApO1xuXG4gICAgLyoqINCa0L7QvdCy0LXRgNGC0LXRgNGLINC+0L/QuNGB0Lgg0LTQu9GPINGE0L7RgNC8LCDQutC+0YLQvtGA0YvQtSDQv9C+0LrQsCDQvdC1INGA0LXQsNC70LjQt9C+0LLQsNC90Ysg0L3QsCDQutC10L3QtNC4LCDRgdCw0LzQsCDQvNC10YXQsNC90LjQutCwINC+0L/QuNGB0Lgg0L/QtdGA0LXQvdC10YHQtdC90LAg0LIg0YTQvtGA0LzRiyDQsiDQutC10L3QtNC4INCw0L/QuCwg0L/QvtGN0YLQvtC80YMg0L7QvdC4INC00L7Qu9C20L3RiyDQsdGL0YLRjCDQsiBjYW5keS5yZXNvdXJjZXNcbiAgICAgKiAg0KDQtdCw0LvQuNC30YPQtdGC0YHRjyDRgtC+0LvRjNC60L4g0L/RgNC4INC+0LHRidC10Lwg0LHQuNC70LTQtSDRhNC+0YDQvDogY2FuZHkgYnVpbGQgKlxuICAgICAqICovXG4gICAgbGV0IHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluOiBDaGFpbmFibGVWYWx1ZVByb2R1Y2VyPHN0cmluZz4gfCBFbXB0eVByb2R1Y2VyID0gT2JzZXJ2ZS5lbXB0eSgpO1xuICAgIGlmIChvcHRpb25zLmZvcm1HbG9ic1swXSA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImV4dGVybmFsQ29udmVydGVyc1wiKSwgXCIqLnhzbHRcIikuZG8oXG4gICAgICAgICAgICB4ID0+XG4gICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkVYVEVSTkFMLUNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb3BpZWRFbmdpbmVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBjb25zdCByZXBvc2l0b3J5Um9vdCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIpO1xuICAgIGNvbnN0IGJ1aWxkQ2FjaGUgPSBuZXcgQnVpbGRDYWNoZShmYXJtRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkQ2FjaGVNb2RlKTtcbiAgICBjb25zdCBidWlsZEZvcm1zQ2hhaW4gPSBPYnNlcnZlLmZpeGVkRm9ybURpcmVjdG9yaWVzKFxuICAgICAgICBmb3JtSW5mb3MubWFwKHggPT4gcGF0aC5yZWxhdGl2ZShyZXBvc2l0b3J5Um9vdCwgeC5mb3JtUGF0aCkpXG4gICAgKS5zcGxpdFRvUGFyYWxsZWxDaGFpbnMoXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICBhc3luYyBmb3JtUmVsYXRpdmVQYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVJlbGF0aXZlUGF0aCk7XG5cbiAgICAgICAgICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSkpKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIud2FybmluZyhcbiAgICAgICAgICAgICAgICAgICAgYEZvcm0gJHtnZnZ9IGRvZXMgbm90IGhhdmUgZm9ybS5qc29uIGZpbGUuIFRvIGluY2x1ZGUgdGhpcyBmb3JtIHRvIGJ1aWxkIHByb2Nlc3MgcmVzdGFydCBidWlsZGBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLnZhbHVlKHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZvcm1TY2hlbWFzRGlyUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJzY2hlbWFzXCIpO1xuICAgICAgICAgICAgY29uc3Qgcm5nU2NoZW1hTWFzayA9IGAqJHtnZXRSbmdTY2hlbWFGaWxlbmFtZShmb3JtU2NoZW1hc0RpclBhdGgsIGdmdil9YDtcblxuICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUuZmlsZShwYXRoLmpvaW4oZm9ybURpclBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oZm9ybUpzb25GaWxlID0+XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVGb3JtSW5mbyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Kc29uRmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgRk9STToke2dmdn1gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXBncmFkZUZvcm1Kc29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51c2VMYXN0U3RhYmxlVmVyc2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlUHJlcmVsZWFzZVZlcnNpb25cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLm1vZGUgPT09IEZvcm1CdWlsZE1vZGUuTm9ybWFsQnVpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdlbmVyYXRvclZlcnNpb24gaXMgbm90IGRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZW5naW5lVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJlbmdpbmVWZXJzaW9uIGlzIG5vdCBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IGF3YWl0IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3JWZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGdmdilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogYXdhaXQgcmVzb2x2ZUVuZ2luZVZlcnNpb24oZmkuZW5naW5lVmVyc2lvbiwgY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChnZnYpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNpbmdsZVZhbHVlUHJvZHVjZXIobmV3IE51bGxGb3JtR2VuZXJhdG9yKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yRmFjdG9yeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yU291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlVmVyc2lvbkZyb21DYWNoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvclNvdXJjZSAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdldEdlbmVyYXRvclNvdXJjZUtleShmaS5nZW5lcmF0b3JTb3VyY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIk51bGxGb3JtR2VuZXJhdG9yXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmVuZ2luZVNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVByb2R1Y2VyKFwiTnVsbEVuZ2luZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmdpbmVGYWN0b3J5KGZpLmVuZ2luZVNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBvcHRpb25zLnVzZVZlcnNpb25Gcm9tQ2FjaGUpLmRvKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzeW5jIHggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvcGllZEVuZ2luZXMuaGFzKGdldEVuZ2luZVNvdXJjZUtleShmaS5lbmdpbmVTb3VyY2UpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiRU5HSU5FXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwdWJsaWNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3BpZWRFbmdpbmVzLmFkZChnZXRFbmdpbmVTb3VyY2VLZXkoZmkuZW5naW5lU291cmNlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBmaSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gKGZpLmVuZ2luZVNvdXJjZSAhPSB1bmRlZmluZWQgPyBnZXRFbmdpbmVTb3VyY2VLZXkoZmkuZW5naW5lU291cmNlKSA6IFwiTnVsbEVuZ2luZVwiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiLi4vLi4veHNsdFRlbXBsYXRlcy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2pzSGVscGVycy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNjaGVtYXMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdWdhci8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b2NhbGMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxwZXJzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsaWRhdGlvbnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhbGl6YXRpb24vKiovKlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXBlbmRlbmNpZXNIYXNoOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5tb2RlICE9PSBGb3JtQnVpbGRNb2RlLk5vcm1hbEJ1aWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc0hhc2g6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGF3YWl0IGZpLmdlbmVyYXRvci5zdXBwb3J0c0RlcGVuZGVuY2llc0V4dHJhY3Rpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzSGFzaCA9IGF3YWl0IGZpLmdlbmVyYXRvci5nZXRBbGxEZXBlbmRlbmNpZXNIYXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiBkZXBlbmRlbmNpZXNIYXNoLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBidWlsZENhY2hlRXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmRlcGVuZGVuY2llc0hhc2ggIT0gdW5kZWZpbmVkICYmIGZpLmdlbmVyYXRvclNvdXJjZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGVFeGlzdCA9IGF3YWl0IGJ1aWxkQ2FjaGUuZXhpc3RzKGZpLmdlbmVyYXRvclNvdXJjZSwgZ2Z2LCBmaS5kZXBlbmRlbmNpZXNIYXNoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmksXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlRXhpc3Q6IGJ1aWxkQ2FjaGVFeGlzdCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JTb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5idWlsZENhY2hlRXhpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEdFTkVSQVRFOiR7Z2Z2fWApLmxvZyhcIlNraXBwZWQgZHVlIGJ1aWxkIGNhY2hlIGV4aXRzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaGxGYXJtRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwQ29kZVJlZm9ybWF0dGluZzogb3B0aW9ucy5za2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNIYXNoOiBmaS5kZXBlbmRlbmNpZXNIYXNoID8/IFwiVW5kZWZpbmVkUmVzb3VyY2VzSGFzaFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PiBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtXCIpLCBcIioqLypcIikpXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWQgJiYgZmkuYnVpbGRDYWNoZUV4aXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBDT01QSUxFOiR7Z2Z2fWApLmxvZyhcIlNraXBwZWQgZHVlIGJ1aWxkIGNhY2hlIGV4aXN0c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGJ1aWxkQ2FjaGUuZXh0cmFjdChmaS5nZW5lcmF0b3JTb3VyY2UsIGdmdiwgZmkuZGVwZW5kZW5jaWVzSGFzaCwgcmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBidWlsZENhY2hlT3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5kZXBlbmRlbmNpZXNIYXNoICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHNIYXNoOiBmaS5kZXBlbmRlbmNpZXNIYXNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb246IGdldEdlbmVyYXRvclZlcnNpb24oZmkuZ2VuZXJhdG9yU291cmNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBvcHRpb25zLmJ1aWxkQ2FjaGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY29tcGlsZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLnRoZW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2ggPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhpcyB2ZXJzaW9uIG9mIGdlbmVyYXRvciBpcyBub3Qgc3VwcG9ydGVkIGR1ZSB0byBkZXBlbmRlbmNpZXMgZXh0cmFjdGlvbiBpcyBub3Qgc3VwcG9ydGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRm9ybU1ldGEoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5lbmdpbmVTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5kZXBlbmRlbmNpZXNIYXNoID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoaXMgdmVyc2lvbiBvZiBnZW5lcmF0b3IgaXMgbm90IHN1cHBvcnRlZCBkdWUgdG8gZGVwZW5kZW5jaWVzIGV4dHJhY3Rpb24gaXMgbm90IHN1cHBvcnRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLnRoZW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBidWlsZENhY2hlT3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5kZXBlbmRlbmNpZXNIYXNoICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHNIYXNoOiBmaS5kZXBlbmRlbmNpZXNIYXNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb246IGdldEdlbmVyYXRvclZlcnNpb24oZmkuZ2VuZXJhdG9yU291cmNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBvcHRpb25zLmJ1aWxkQ2FjaGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmJ1aWxkQ2FjaGVFeGlzdFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5tb2RlID09PSBGb3JtQnVpbGRNb2RlLkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJsZWdhY3ktcHJlYnVpbHRcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkxFR0FDWS1QUkVCVUlMVFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVByb2R1Y2VyKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJzY2hlbWFzXCIpLCBybmdTY2hlbWFNYXNrKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTQ0hFTUFTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJzY2hlbWFzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwiY29udmVydGVyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtZXJnZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUVSR0VSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWVyZ2Vyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RpZmllciA9IChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQucmVwbGFjZSgvPHg6aW5jbHVkZSBocmVmPVwiWy4vXSsvZywgJzx4OmluY2x1ZGUgaHJlZj1cIicpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcImNvbnZlcnRlcnNcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2subW9kaWZ5RmlsZXNDb250ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJGSVgtWFNMVC1JTkNMVURFXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJjb252ZXJ0ZXJzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiKiovKi54c2x0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIi4uXCIsIFwiLi5cIiwgXCJ4c2x0VGVtcGxhdGVzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiWFNMVC1URU1QTEFURVNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIiwgXCJ4c2x0VGVtcGxhdGVzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibm9ybWFsaXplXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk5PUk1BTElaRVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibm9ybWFsaXplXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwicGF0Y2hcIiksIFwiKi54c2x0XCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlBBVENIXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwYXRjaFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJNQVBcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWFwXCIpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInVubWFwXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlVOTUFQXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJ1bm1hcFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChidWlsZE9wdGlvbnMud2F0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWVyLm5vdGlmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGAke2ZpLmZvcm1OYW1lfTog0YHQsdC+0YDQutCwINC30LDQstC10YDRiNC10L3QsGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEVuZ2luZTogJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZW5naW5lU291cmNlID09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIltOb0VuZ2luZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmaS5lbmdpbmVTb3VyY2UudHlwZSA9PT0gXCJMb2NhbEVuZ2luZVNvdXJjZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmkuZW5naW5lU291cmNlLnZlcnNpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKGJ1aWxkT3B0aW9ucy53YXRjaCkge1xuICAgICAgICBpZiAob3B0aW9ucy5jbGVhbikge1xuICAgICAgICAgICAgYXdhaXQgY2xlYW5UYXJnZXREaXJlY3RvcnkocmVzb3VyY2VzRGlyZWN0b3J5LCBjb250ZXh0LmxvZ2dlcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUxID0gYXdhaXQgcGlja0xpc3RzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTIgPSBhd2FpdCBidWlsZEZvcm1zQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTMgPSBhd2FpdCBzdGF0aWNSZXNvdXJjZXNGb3JQcm9kdWN0aW9uQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTUgPSBhd2FpdCByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGF3YWl0IGNvbnRleHQud2FpdEZvckV4aXQoKTtcbiAgICAgICAgaWYgKHN0b3BPYnNlcnZlMyAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdG9wT2JzZXJ2ZTUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTUoKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTIoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUxKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmNsZWFuKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgY2xlYW5UYXJnZXREaXJlY3RvcnkocmVzb3VyY2VzRGlyZWN0b3J5LCBjb250ZXh0LmxvZ2dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBwaWNrTGlzdHNDaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBhd2FpdCBzdGF0aWNSZXNvdXJjZXNGb3JQcm9kdWN0aW9uQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgYnVpbGRGb3Jtc0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbkJyaWdodChcIkJ1aWxkIHN1Y2Nlc3NcIikpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgY29uc3QgdG90YWxUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0RGF0ZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgVG90YWwgdGltZTogJHtwcmludFRpbWUodG90YWxUaW1lKX1gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xlYW5UYXJnZXREaXJlY3RvcnkocmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGxvZ2dlci5sb2coXCJDbGVhbmluZyByZXNvdXJjZSBkaXJlY3RvcnkuIFwiICsgcmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICBhd2FpdCBlbXB0eURpcihyZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGxvZ2dlci5sb2coXCJSZXNvdXJjZSBkaXJlY3RvcnkgY2xlYW5cIik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFB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
234
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX2ZzRXh0cmEiLCJfbm9kZU5vdGlmaWVyIiwiX0FjcXVpcmVGb3JtRW5naW5lIiwiX0VuZ2luZVNvdXJjZSIsIl9Db21waWxlRm9ybSIsIl9HZW5lcmF0ZUZvcm0iLCJfTnVsbEZvcm1HZW5lcmF0b3IiLCJfV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyIsIl9GU1Rhc2siLCJfQWNxdWlyZUZvcm1HZW5lcmF0b3IiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Xcml0ZUZvcm1NZXRhIiwiX0Zvcm1HbG9ic1V0aWxzIiwiX1N0YXRpY0xvZ2dlciIsIl9PYnNlcnZlIiwiX1NpbmdsZVZhbHVlUHJvZHVjZXIiLCJfVGltaW5nVXRpbHMiLCJfQ2FjaGVBc3NldHNQbHVnaW4iLCJfVHlwaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJnZXRHZW5lcmF0b3JWZXJzaW9uIiwiZ2VuZXJhdG9yU291cmNlIiwidHlwZSIsInZlcnNpb24iLCJFcnJvciIsInJ1bkJ1aWxkRm9ybXMiLCJjb250ZXh0Iiwib3B0aW9ucyIsImZhcm1EaXJlY3RvcnkiLCJyZXNvdXJjZXNEaXJlY3RvcnkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiYnVpbGRPcHRpb25zIiwicGlja0xpc3RzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJGb3JtR2xvYnMiLCJlbnN1cmVFYWNoR2xvYlJlc29sdmVzSW50b0V4aXN0aW5nRm9ybSIsImZvcm1HbG9icyIsImZvcm1JbmZvcyIsInJlc29sdmVHZnZHbG9icyIsInN0YXRpY1Jlc291cmNlc0ZvclByb2R1Y3Rpb25DaGFpbiIsIl9fZGlybmFtZSIsImdldExvZ2dlciIsInJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluIiwiZW1wdHkiLCJjb3BpZWRFbmdpbmVzIiwiU2V0IiwicmVwb3NpdG9yeVJvb3QiLCJidWlsZENhY2hlIiwiQnVpbGRDYWNoZSIsImJ1aWxkQ2FjaGVNb2RlIiwiYnVpbGRGb3Jtc0NoYWluIiwiZml4ZWRGb3JtRGlyZWN0b3JpZXMiLCJtYXAiLCJyZWxhdGl2ZSIsImZvcm1QYXRoIiwic3BsaXRUb1BhcmFsbGVsQ2hhaW5zIiwiZm9ybVJlbGF0aXZlUGF0aCIsImdmdiIsImV4dHJhY3RHZnZGcm9tRm9ybVBhdGgiLCJmb3JtRGlyUGF0aCIsInBhdGhFeGlzdHMiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJ3YXJuaW5nIiwidmFsdWUiLCJmb3JtU2NoZW1hc0RpclBhdGgiLCJybmdTY2hlbWFNYXNrIiwiZ2V0Um5nU2NoZW1hRmlsZW5hbWUiLCJmaWxlIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwicmVzb2x2ZUZvcm1JbmZvIiwidXBncmFkZUZvcm1Kc29uIiwidXNlTGFzdFN0YWJsZVZlcnNpb24iLCJ1c2VQcmVyZWxlYXNlVmVyc2lvbiIsImZpIiwibW9kZSIsIkZvcm1CdWlsZE1vZGUiLCJOb3JtYWxCdWlsZCIsImdlbmVyYXRvclZlcnNpb24iLCJ1bmRlZmluZWQiLCJlbmdpbmVWZXJzaW9uIiwicmVzb2x2ZUdlbmVyYXRvclZlcnNpb24iLCJlbmdpbmVTb3VyY2UiLCJyZXNvbHZlRW5naW5lVmVyc2lvbiIsImF0dGFjaCIsIlNpbmdsZVZhbHVlUHJvZHVjZXIiLCJOdWxsRm9ybUdlbmVyYXRvciIsImdlbmVyYXRvckZhY3RvcnkiLCJ1c2VWZXJzaW9uRnJvbUNhY2hlIiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImVuZ2luZUZhY3RvcnkiLCJoYXMiLCJnZXRFbmdpbmVTb3VyY2VLZXkiLCJhZGQiLCJmb3JtU291cmNlc1BhdGgiLCJkZXBlbmRlbmNpZXNIYXNoIiwic3VwcG9ydHNEZXBlbmRlbmNpZXNFeHRyYWN0aW9uIiwiZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaCIsImJ1aWxkQ2FjaGVFeGlzdCIsImV4aXN0cyIsIl9maSRkZXBlbmRlbmNpZXNIYXNoIiwibG9nIiwiZ2VuZXJhdGVGb3JtIiwic2tpcENvZGVSZWZvcm1hdHRpbmciLCJza2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZyIsInJlc291cmNlc0hhc2giLCJfZmkkZGVwZW5kZW5jaWVzSGFzaDIiLCJfZmkkZGVwZW5kZW5jaWVzSGFzaDMiLCJleHRyYWN0IiwiYnVpbGRDYWNoZU9wdGlvbnMiLCJkZXBzSGFzaCIsImNvbXBpbGVGb3JtIiwiZm9ybU5hbWUiLCJ0aGVtZXMiLCJyZWplY3QiLCJ3cml0ZUZvcm1NZXRhIiwid3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyIsIndyaXRlQXR0YWNobWVudFBhdGhGaWxlcyIsIkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcyIsIm1vZGlmaWVyIiwiY29udGVudCIsInJlcGxhY2UiLCJtb2RpZnlGaWxlc0NvbnRlbnQiLCJ3YXRjaCIsIm5vdGlmaWVyIiwibm90aWZ5IiwidGl0bGUiLCJtZXNzYWdlIiwiY2xlYW4iLCJjbGVhblRhcmdldERpcmVjdG9yeSIsInN0b3BPYnNlcnZlMSIsIm9ic2VydmUiLCJzdG9wT2JzZXJ2ZTIiLCJzdG9wT2JzZXJ2ZTMiLCJzdG9wT2JzZXJ2ZTUiLCJ3YWl0Rm9yRXhpdCIsInN0YXJ0RGF0ZSIsIkRhdGUiLCJub3ciLCJjdXJyZW50VmFsdWUiLCJjb25zb2xlIiwiY2hhbGsiLCJncmVlbkJyaWdodCIsInRvdGFsVGltZSIsInByaW50VGltZSIsImVtcHR5RGlyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgeyBlbXB0eURpciwgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IG5vdGlmaWVyIGZyb20gXCJub2RlLW5vdGlmaWVyXCI7XG5cbmltcG9ydCB7IGVuZ2luZUZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmUvQWNxdWlyZUZvcm1FbmdpbmVcIjtcbmltcG9ydCB7IGdldEVuZ2luZVNvdXJjZUtleSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0VuZ2luZS9FbmdpbmVTb3VyY2VcIjtcbmltcG9ydCB7IGNvbXBpbGVGb3JtIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Db21waWxlRm9ybVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVGb3JtIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9HZW5lcmF0ZUZvcm1cIjtcbmltcG9ydCB7IE51bGxGb3JtR2VuZXJhdG9yIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9OdWxsRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlc1wiO1xuaW1wb3J0IHsgRlNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRlNUYXNrXCI7XG5pbXBvcnQge1xuICAgIGdlbmVyYXRvckZhY3RvcnksXG4gICAgR2VuZXJhdG9yU291cmNlLFxuICAgIGdldEdlbmVyYXRvclNvdXJjZUtleSxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvR2VuZXJhdG9yL0FjcXVpcmVGb3JtR2VuZXJhdG9yXCI7XG5pbXBvcnQgeyByZXNvbHZlRW5naW5lVmVyc2lvbiwgcmVzb2x2ZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IEZvcm1CdWlsZE1vZGUsIHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgd3JpdGVGb3JtTWV0YSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1dyaXRlRm9ybU1ldGFcIjtcbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL09ic2VydmVcIjtcbmltcG9ydCB7IFNpbmdsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvU2luZ2xlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgcHJpbnRUaW1lIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGltaW5nVXRpbHNcIjtcbmltcG9ydCB7IEJ1aWxkQ2FjaGUgfSBmcm9tIFwiLi4vLi4vRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uL0NhY2hlQXNzZXRzUGx1Z2luXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL1dyaXRlQXR0YWNobWVudFBhdGhGaWxlc1wiO1xuaW1wb3J0IHsgQ2hhaW5hYmxlVmFsdWVQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBFbXB0eVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL0VtcHR5UHJvZHVjZXJcIjtcbmltcG9ydCB7IGdldFJuZ1NjaGVtYUZpbGVuYW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9nZXRSbmdTY2hlbWFGaWxlbmFtZVwiO1xuaW1wb3J0IHsgZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vRm9ybVBhdGhVdGlsc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IEJ1aWxkRm9ybXNPcHRpb25zIH0gZnJvbSBcIi4vQnVpbGRGb3Jtc09wdGlvbnNcIjtcblxuZnVuY3Rpb24gZ2V0R2VuZXJhdG9yVmVyc2lvbihnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSk6IHN0cmluZyB7XG4gICAgaWYgKGdlbmVyYXRvclNvdXJjZS50eXBlID09PSBcIlB1Ymxpc2hlZEdlbmVyYXRvclwiKSB7XG4gICAgICAgIHJldHVybiBnZW5lcmF0b3JTb3VyY2UudmVyc2lvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkUHJvZ3JhbVN0YXRlXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkJ1aWxkRm9ybXMoXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBCdWlsZEZvcm1zT3B0aW9ucyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgaGxGYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidWlsZE9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgY29uc3QgcGlja0xpc3RzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSwgXCIqLmpzb25cIikuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoXCJQSUNLTElTVFNcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGlja2xpc3RzXCIpKVxuICAgICk7XG5cbiAgICBhd2FpdCBGb3JtR2xvYnMuZW5zdXJlRWFjaEdsb2JSZXNvbHZlc0ludG9FeGlzdGluZ0Zvcm0ob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IGZvcm1JbmZvcyA9IGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlR2Z2R2xvYnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgY29uc3Qgc3RhdGljUmVzb3VyY2VzRm9yUHJvZHVjdGlvbkNoYWluID0gT2JzZXJ2ZS5maWxlcyhcbiAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwiU3RhdGljRmlsZXNGb3JQcm9kdWN0aW9uUmVzb3VyY2VzRGlyXCIpLFxuICAgICAgICBcIiouanNcIixcbiAgICAgICAgXCIqLmpzLm1hcFwiXG4gICAgKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlNUQVRJQ1NcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicHVibGljXCIsIFwic2NyaXB0c1wiKSlcbiAgICApO1xuXG4gICAgLyoqINCa0L7QvdCy0LXRgNGC0LXRgNGLINC+0L/QuNGB0Lgg0LTQu9GPINGE0L7RgNC8LCDQutC+0YLQvtGA0YvQtSDQv9C+0LrQsCDQvdC1INGA0LXQsNC70LjQt9C+0LLQsNC90Ysg0L3QsCDQutC10L3QtNC4LCDRgdCw0LzQsCDQvNC10YXQsNC90LjQutCwINC+0L/QuNGB0Lgg0L/QtdGA0LXQvdC10YHQtdC90LAg0LIg0YTQvtGA0LzRiyDQsiDQutC10L3QtNC4INCw0L/QuCwg0L/QvtGN0YLQvtC80YMg0L7QvdC4INC00L7Qu9C20L3RiyDQsdGL0YLRjCDQsiBjYW5keS5yZXNvdXJjZXNcbiAgICAgKiAg0KDQtdCw0LvQuNC30YPQtdGC0YHRjyDRgtC+0LvRjNC60L4g0L/RgNC4INC+0LHRidC10Lwg0LHQuNC70LTQtSDRhNC+0YDQvDogY2FuZHkgYnVpbGQgKlxuICAgICAqICovXG4gICAgbGV0IHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluOiBDaGFpbmFibGVWYWx1ZVByb2R1Y2VyPHN0cmluZz4gfCBFbXB0eVByb2R1Y2VyID0gT2JzZXJ2ZS5lbXB0eSgpO1xuICAgIGlmIChvcHRpb25zLmZvcm1HbG9ic1swXSA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImV4dGVybmFsQ29udmVydGVyc1wiKSwgXCIqLnhzbHRcIikuZG8oXG4gICAgICAgICAgICB4ID0+XG4gICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkVYVEVSTkFMLUNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb3BpZWRFbmdpbmVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBjb25zdCByZXBvc2l0b3J5Um9vdCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIpO1xuICAgIGNvbnN0IGJ1aWxkQ2FjaGUgPSBuZXcgQnVpbGRDYWNoZShmYXJtRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkQ2FjaGVNb2RlKTtcbiAgICBjb25zdCBidWlsZEZvcm1zQ2hhaW4gPSBPYnNlcnZlLmZpeGVkRm9ybURpcmVjdG9yaWVzKFxuICAgICAgICBmb3JtSW5mb3MubWFwKHggPT4gcGF0aC5yZWxhdGl2ZShyZXBvc2l0b3J5Um9vdCwgeC5mb3JtUGF0aCkpXG4gICAgKS5zcGxpdFRvUGFyYWxsZWxDaGFpbnMoXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICBhc3luYyBmb3JtUmVsYXRpdmVQYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVJlbGF0aXZlUGF0aCk7XG5cbiAgICAgICAgICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSkpKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIud2FybmluZyhcbiAgICAgICAgICAgICAgICAgICAgYEZvcm0gJHtnZnZ9IGRvZXMgbm90IGhhdmUgZm9ybS5qc29uIGZpbGUuIFRvIGluY2x1ZGUgdGhpcyBmb3JtIHRvIGJ1aWxkIHByb2Nlc3MgcmVzdGFydCBidWlsZGBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLnZhbHVlKHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZvcm1TY2hlbWFzRGlyUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJzY2hlbWFzXCIpO1xuICAgICAgICAgICAgY29uc3Qgcm5nU2NoZW1hTWFzayA9IGAqJHtnZXRSbmdTY2hlbWFGaWxlbmFtZShmb3JtU2NoZW1hc0RpclBhdGgsIGdmdil9YDtcblxuICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUuZmlsZShwYXRoLmpvaW4oZm9ybURpclBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpKVxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0oZm9ybUpzb25GaWxlID0+XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVGb3JtSW5mbyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Kc29uRmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgRk9STToke2dmdn1gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXBncmFkZUZvcm1Kc29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy51c2VMYXN0U3RhYmxlVmVyc2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlUHJlcmVsZWFzZVZlcnNpb25cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLm1vZGUgPT09IEZvcm1CdWlsZE1vZGUuTm9ybWFsQnVpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdlbmVyYXRvclZlcnNpb24gaXMgbm90IGRlZmluZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZW5naW5lVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJlbmdpbmVWZXJzaW9uIGlzIG5vdCBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IGF3YWl0IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3JWZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGdmdilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogYXdhaXQgcmVzb2x2ZUVuZ2luZVZlcnNpb24oZmkuZW5naW5lVmVyc2lvbiwgY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChnZnYpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNpbmdsZVZhbHVlUHJvZHVjZXIobmV3IE51bGxGb3JtR2VuZXJhdG9yKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yRmFjdG9yeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yU291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlVmVyc2lvbkZyb21DYWNoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvclNvdXJjZSAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdldEdlbmVyYXRvclNvdXJjZUtleShmaS5nZW5lcmF0b3JTb3VyY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIk51bGxGb3JtR2VuZXJhdG9yXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmVuZ2luZVNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVByb2R1Y2VyKFwiTnVsbEVuZ2luZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmdpbmVGYWN0b3J5KGZpLmVuZ2luZVNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBvcHRpb25zLnVzZVZlcnNpb25Gcm9tQ2FjaGUpLmRvKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzeW5jIHggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvcGllZEVuZ2luZXMuaGFzKGdldEVuZ2luZVNvdXJjZUtleShmaS5lbmdpbmVTb3VyY2UpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiRU5HSU5FXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwdWJsaWNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3BpZWRFbmdpbmVzLmFkZChnZXRFbmdpbmVTb3VyY2VLZXkoZmkuZW5naW5lU291cmNlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBmaSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gKGZpLmVuZ2luZVNvdXJjZSAhPSB1bmRlZmluZWQgPyBnZXRFbmdpbmVTb3VyY2VLZXkoZmkuZW5naW5lU291cmNlKSA6IFwiTnVsbEVuZ2luZVwiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiLi4vLi4veHNsdFRlbXBsYXRlcy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2pzSGVscGVycy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNjaGVtYXMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdWdhci8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b2NhbGMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxwZXJzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsaWRhdGlvbnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhbGl6YXRpb24vKiovKlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXBlbmRlbmNpZXNIYXNoOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5tb2RlICE9PSBGb3JtQnVpbGRNb2RlLk5vcm1hbEJ1aWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc0hhc2g6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGF3YWl0IGZpLmdlbmVyYXRvci5zdXBwb3J0c0RlcGVuZGVuY2llc0V4dHJhY3Rpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzSGFzaCA9IGF3YWl0IGZpLmdlbmVyYXRvci5nZXRBbGxEZXBlbmRlbmNpZXNIYXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiBkZXBlbmRlbmNpZXNIYXNoLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBidWlsZENhY2hlRXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmRlcGVuZGVuY2llc0hhc2ggIT0gdW5kZWZpbmVkICYmIGZpLmdlbmVyYXRvclNvdXJjZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGVFeGlzdCA9IGF3YWl0IGJ1aWxkQ2FjaGUuZXhpc3RzKGZpLmdlbmVyYXRvclNvdXJjZSwgZ2Z2LCBmaS5kZXBlbmRlbmNpZXNIYXNoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmksXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlRXhpc3Q6IGJ1aWxkQ2FjaGVFeGlzdCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5nZW5lcmF0b3JTb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5idWlsZENhY2hlRXhpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEdFTkVSQVRFOiR7Z2Z2fWApLmxvZyhcIlNraXBwZWQgZHVlIGJ1aWxkIGNhY2hlIGV4aXRzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaGxGYXJtRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmdlbmVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwQ29kZVJlZm9ybWF0dGluZzogb3B0aW9ucy5za2lwR2VuZXJhdGVkQ29kZVJlZm9ybWF0dGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNIYXNoOiBmaS5kZXBlbmRlbmNpZXNIYXNoID8/IFwiVW5kZWZpbmVkUmVzb3VyY2VzSGFzaFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PiBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtXCIpLCBcIioqLypcIikpXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmkuZGVwZW5kZW5jaWVzSGFzaCAhPSB1bmRlZmluZWQgJiYgZmkuYnVpbGRDYWNoZUV4aXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBDT01QSUxFOiR7Z2Z2fWApLmxvZyhcIlNraXBwZWQgZHVlIGJ1aWxkIGNhY2hlIGV4aXN0c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGJ1aWxkQ2FjaGUuZXh0cmFjdChmaS5nZW5lcmF0b3JTb3VyY2UsIGdmdiwgZmkuZGVwZW5kZW5jaWVzSGFzaCwgcmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBidWlsZENhY2hlT3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5kZXBlbmRlbmNpZXNIYXNoICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHNIYXNoOiBmaS5kZXBlbmRlbmNpZXNIYXNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb246IGdldEdlbmVyYXRvclZlcnNpb24oZmkuZ2VuZXJhdG9yU291cmNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBvcHRpb25zLmJ1aWxkQ2FjaGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY29tcGlsZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLnRoZW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2ggPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhpcyB2ZXJzaW9uIG9mIGdlbmVyYXRvciBpcyBub3Qgc3VwcG9ydGVkIGR1ZSB0byBkZXBlbmRlbmNpZXMgZXh0cmFjdGlvbiBpcyBub3Qgc3VwcG9ydGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRm9ybU1ldGEoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5lbmdpbmVTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5kZXBlbmRlbmNpZXNIYXNoID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoaXMgdmVyc2lvbiBvZiBnZW5lcmF0b3IgaXMgbm90IHN1cHBvcnRlZCBkdWUgdG8gZGVwZW5kZW5jaWVzIGV4dHJhY3Rpb24gaXMgbm90IHN1cHBvcnRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLnRoZW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpLmdlbmVyYXRvclNvdXJjZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBidWlsZENhY2hlT3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5kZXBlbmRlbmNpZXNIYXNoICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHNIYXNoOiBmaS5kZXBlbmRlbmNpZXNIYXNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb246IGdldEdlbmVyYXRvclZlcnNpb24oZmkuZ2VuZXJhdG9yU291cmNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBvcHRpb25zLmJ1aWxkQ2FjaGVNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmJ1aWxkQ2FjaGVFeGlzdFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZENhY2hlT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaS5tb2RlID09PSBGb3JtQnVpbGRNb2RlLkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJsZWdhY3ktcHJlYnVpbHRcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkxFR0FDWS1QUkVCVUlMVFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVByb2R1Y2VyKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJzY2hlbWFzXCIpLCBybmdTY2hlbWFNYXNrKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTQ0hFTUFTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJzY2hlbWFzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwiY29udmVydGVyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtZXJnZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUVSR0VSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWVyZ2Vyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RpZmllciA9IChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQucmVwbGFjZSgvPHg6aW5jbHVkZSBocmVmPVwiWy4vXSsvZywgJzx4OmluY2x1ZGUgaHJlZj1cIicpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcImNvbnZlcnRlcnNcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2subW9kaWZ5RmlsZXNDb250ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJGSVgtWFNMVC1JTkNMVURFXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJjb252ZXJ0ZXJzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiKiovKi54c2x0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIi4uXCIsIFwiLi5cIiwgXCJ4c2x0VGVtcGxhdGVzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiWFNMVC1URU1QTEFURVNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIiwgXCJ4c2x0VGVtcGxhdGVzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibm9ybWFsaXplXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk5PUk1BTElaRVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibm9ybWFsaXplXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwicGF0Y2hcIiksIFwiKi54c2x0XCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlBBVENIXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwYXRjaFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJNQVBcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWFwXCIpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInVubWFwXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlVOTUFQXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJ1bm1hcFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChidWlsZE9wdGlvbnMud2F0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWVyLm5vdGlmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGAke2ZpLmZvcm1OYW1lfTog0YHQsdC+0YDQutCwINC30LDQstC10YDRiNC10L3QsGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYEVuZ2luZTogJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmkuZW5naW5lU291cmNlID09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIltOb0VuZ2luZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmaS5lbmdpbmVTb3VyY2UudHlwZSA9PT0gXCJMb2NhbEVuZ2luZVNvdXJjZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImxvY2FsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmkuZW5naW5lU291cmNlLnZlcnNpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKGJ1aWxkT3B0aW9ucy53YXRjaCkge1xuICAgICAgICBpZiAob3B0aW9ucy5jbGVhbikge1xuICAgICAgICAgICAgYXdhaXQgY2xlYW5UYXJnZXREaXJlY3RvcnkocmVzb3VyY2VzRGlyZWN0b3J5LCBjb250ZXh0LmxvZ2dlcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUxID0gYXdhaXQgcGlja0xpc3RzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTIgPSBhd2FpdCBidWlsZEZvcm1zQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTMgPSBhd2FpdCBzdGF0aWNSZXNvdXJjZXNGb3JQcm9kdWN0aW9uQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTUgPSBhd2FpdCByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGF3YWl0IGNvbnRleHQud2FpdEZvckV4aXQoKTtcbiAgICAgICAgaWYgKHN0b3BPYnNlcnZlMyAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdG9wT2JzZXJ2ZTUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTUoKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTIoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUxKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmNsZWFuKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgY2xlYW5UYXJnZXREaXJlY3RvcnkocmVzb3VyY2VzRGlyZWN0b3J5LCBjb250ZXh0LmxvZ2dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBwaWNrTGlzdHNDaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBhd2FpdCBzdGF0aWNSZXNvdXJjZXNGb3JQcm9kdWN0aW9uQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgYnVpbGRGb3Jtc0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbkJyaWdodChcIkJ1aWxkIHN1Y2Nlc3NcIikpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgY29uc3QgdG90YWxUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0RGF0ZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgVG90YWwgdGltZTogJHtwcmludFRpbWUodG90YWxUaW1lKX1gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xlYW5UYXJnZXREaXJlY3RvcnkocmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGxvZ2dlci5sb2coXCJDbGVhbmluZyByZXNvdXJjZSBkaXJlY3RvcnkuIFwiICsgcmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICBhd2FpdCBlbXB0eURpcihyZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGxvZ2dlci5sb2coXCJSZXNvdXJjZSBkaXJlY3RvcnkgY2xlYW5cIik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFB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QU8sQ0FBQyxDQUFDO0lBQ3BELE1BQU1FLFlBQVksR0FBRyxNQUFNakcsaUNBQWlDLENBQUMrRixPQUFPLENBQUMsQ0FBQztJQUN0RSxNQUFNRyxZQUFZLEdBQUcsTUFBTS9GLGdDQUFnQyxDQUFDNEYsT0FBTyxDQUFDLENBQUM7SUFDckUsTUFBTXZILE9BQU8sQ0FBQzJILFdBQVcsQ0FBQyxDQUFDO0lBQzNCLElBQUlGLFlBQVksSUFBSXhELFNBQVMsRUFBRTtNQUMzQixNQUFNd0QsWUFBWSxDQUFDLENBQUM7SUFDeEI7SUFDQSxJQUFJQyxZQUFZLElBQUl6RCxTQUFTLEVBQUU7TUFDM0IsTUFBTXlELFlBQVksQ0FBQyxDQUFDO0lBQ3hCO0lBQ0EsTUFBTUYsWUFBWSxDQUFDLENBQUM7SUFDcEIsTUFBTUYsWUFBWSxDQUFDLENBQUM7RUFDeEIsQ0FBQyxNQUFNO0lBQ0gsTUFBTU0sU0FBUyxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLElBQUk7TUFDQSxJQUFJN0gsT0FBTyxDQUFDbUgsS0FBSyxFQUFFO1FBQ2YsTUFBTUMsb0JBQW9CLENBQUNsSCxrQkFBa0IsRUFBRUgsT0FBTyxDQUFDaUIsTUFBTSxDQUFDO01BQ2xFO01BQ0EsTUFBTVQsY0FBYyxDQUFDdUgsWUFBWTtNQUNqQyxNQUFNdkcsaUNBQWlDLENBQUN1RyxZQUFZO01BQ3BELE1BQU1wRyxnQ0FBZ0MsQ0FBQ29HLFlBQVk7TUFDbkQsTUFBTTVGLGVBQWUsQ0FBQzRGLFlBQVk7TUFDbEM7TUFDQUMsT0FBTyxDQUFDdkMsR0FBRyxDQUFDd0MsY0FBSyxDQUFDQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQyxTQUFTO01BQ04sTUFBTUMsU0FBUyxHQUFHTixJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEdBQUdGLFNBQVM7TUFDeEM7TUFDQUksT0FBTyxDQUFDdkMsR0FBRyxDQUFDLGVBQWUsSUFBQTJDLHNCQUFTLEVBQUNELFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDdEQ7RUFDSjtBQUNKO0FBRUEsZUFBZWQsb0JBQW9CQSxDQUFDbEgsa0JBQTBCLEVBQUVjLE1BQWUsRUFBaUI7RUFDNUZBLE1BQU0sQ0FBQ3dFLEdBQUcsQ0FBQywrQkFBK0IsR0FBR3RGLGtCQUFrQixDQUFDO0VBQ2hFLE1BQU0sSUFBQWtJLGlCQUFRLEVBQUNsSSxrQkFBa0IsQ0FBQztFQUNsQ2MsTUFBTSxDQUFDd0UsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0FBQzFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunBuildForms.js","names":["_path","_interopRequireDefault","require","_chalk","_fsExtra","_nodeNotifier","_AcquireFormEngine","_EngineSource","_CompileForm","_GenerateForm","_NullFormGenerator","_WriteFLangNormalizationFiles","_FSTask","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_WriteFormMeta","_FormGlobsUtils","_StaticLogger","_Observe","_SingleValueProducer","_TimingUtils","_CacheAssetsPlugin","_TypingUtils","_WriteAttachmentPathFiles","_getRngSchemaFilename","_FormPathUtils","_WellKnownDirectories","getGeneratorVersion","generatorSource","type","version","Error","runBuildForms","context","options","farmDirectory","resourcesDirectory","engineDirectory","candyModulesDirectory","hlFarmDirectoryPath","buildOptions","pickListsChain","Observe","files","path","join","do","x","FSTask","copyRecursively","logger","withPrefix","FormGlobs","ensureEachGlobResolvesIntoExistingForm","formGlobs","formInfos","resolveGfvGlobs","staticResourcesForProductionChain","__dirname","getLogger","resourcesExternalConvertersChain","empty","copiedEngines","Set","repositoryRoot","buildCache","BuildCache","buildCacheMode","buildFormsChain","fixedFormDirectories","map","relative","formPath","splitToParallelChains","formRelativePath","gfv","extractGfvFromFormPath","formDirPath","pathExists","WellKnownDirectories","FormJsonFileName","warning","value","formSchemasDirPath","rngSchemaMask","getRngSchemaFilename","file","transform","formJsonFile","resolveFormInfo","upgradeFormJson","useLastStableVersion","usePrereleaseVersion","fi","mode","FormBuildMode","NormalBuild","generatorVersion","undefined","engineVersion","resolveGeneratorVersion","engineSource","resolveEngineVersion","attach","SingleValueProducer","NullFormGenerator","generatorFactory","useVersionFromCache","y","generator","getGeneratorSourceKey","engineFactory","has","getEngineSourceKey","add","formSourcesPath","dependenciesHash","supportsDependenciesExtraction","getAllDependenciesHash","buildCacheExist","exists","_fi$dependenciesHash","log","generateForm","skipCodeReformatting","skipGeneratedCodeReformatting","resourcesHash","_fi$dependenciesHash2","_fi$dependenciesHash3","extract","buildCacheOptions","depsHash","compileForm","formName","themes","reject","writeFormMeta","writeFLangNormalizationFiles","writeAttachmentPathFiles","CopyLegacyPrebuiltResources","modifier","content","replace","modifyFilesContent","watch","notifier","notify","title","message","clean","cleanTargetDirectory","stopObserve1","observe","stopObserve2","stopObserve3","stopObserve5","waitForExit","startDate","Date","now","currentValue","console","chalk","greenBright","totalTime","printTime","emptyDir"],"sources":["../../../../../src/CLICommands/BuildForms/RunBuildForms.ts"],"sourcesContent":["import path from \"path\";\n\nimport chalk from \"chalk\";\nimport { emptyDir, pathExists } from \"fs-extra\";\nimport notifier from \"node-notifier\";\n\nimport { engineFactory } from \"../../BuildTasks/Engine/AcquireFormEngine\";\nimport { getEngineSourceKey } from \"../../BuildTasks/Engine/EngineSource\";\nimport { compileForm } from \"../../BuildTasks/Form/CompileForm\";\nimport { generateForm } from \"../../BuildTasks/Form/GenerateForm\";\nimport { NullFormGenerator } from \"../../BuildTasks/Form/NullFormGenerator\";\nimport { writeFLangNormalizationFiles } from \"../../BuildTasks/Form/WriteFLangNormalizationFiles\";\nimport { FSTask } from \"../../BuildTasks/FSTask\";\nimport {\n generatorFactory,\n GeneratorSource,\n getGeneratorSourceKey,\n} from \"../../BuildTasks/Generator/AcquireFormGenerator\";\nimport { resolveEngineVersion, resolveGeneratorVersion } from \"../../BuildTasks/PublishedVersionUtils\";\nimport { FormBuildMode, resolveFormInfo } from \"../../BuildTasks/ResolveFormInfo\";\nimport { writeFormMeta } from \"../../BuildTasks/WriteFormMeta\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { FormGlobs } from \"../../Commons/FormGlobsUtils\";\nimport { ILogger } from \"../../Commons/Logging/ILogger\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { Observe } from \"../../Commons/TasksCore/Observe\";\nimport { SingleValueProducer } from \"../../Commons/TasksCore/SingleValueProducer\";\nimport { printTime } from \"../../Commons/TimingUtils\";\nimport { BuildCache } from \"../../FormWebpackConfiguration/CacheAssetsPlugin\";\nimport { reject } from \"../../../../Common/TypingUtils\";\nimport { writeAttachmentPathFiles } from \"../../BuildTasks/Form/WriteAttachmentPathFiles\";\nimport { ChainableValueProducer } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { EmptyProducer } from \"../../Commons/TasksCore/EmptyProducer\";\nimport { getRngSchemaFilename } from \"../../../../Common/getRngSchemaFilename\";\nimport { extractGfvFromFormPath } from \"../../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../../Common/WellKnownDirectories\";\n\nimport { BuildFormsOptions } from \"./BuildFormsOptions\";\n\nfunction getGeneratorVersion(generatorSource: GeneratorSource): string {\n if (generatorSource.type === \"PublishedGenerator\") {\n return generatorSource.version;\n } else {\n throw new Error(\"InvalidProgramState\");\n }\n}\n\nexport async function runBuildForms(\n context: ConsoleApplicationContext,\n options: BuildFormsOptions,\n farmDirectory: string,\n resourcesDirectory: string,\n engineDirectory: string,\n candyModulesDirectory: string,\n hlFarmDirectoryPath: string\n): Promise<void> {\n const buildOptions = options;\n\n const pickListsChain = Observe.files(path.join(farmDirectory, \"picklists\"), \"*.json\").do(x =>\n FSTask.copyRecursively(context.logger.withPrefix(\"PICKLISTS\"), x, path.join(resourcesDirectory, \"picklists\"))\n );\n\n await FormGlobs.ensureEachGlobResolvesIntoExistingForm(options.formGlobs, farmDirectory);\n const formInfos = await FormGlobs.resolveGfvGlobs(options.formGlobs, farmDirectory);\n\n const staticResourcesForProductionChain = Observe.files(\n path.join(__dirname, \"..\", \"..\", \"StaticFilesForProductionResourcesDir\"),\n \"*.js\",\n \"*.js.map\"\n ).do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"STATICS\"), x, path.join(resourcesDirectory, \"public\", \"scripts\"))\n );\n\n /** Конвертеры описи для форм, которые пока не реализованы на кенди, сама механика описи перенесена в формы в кенди апи, поэтому они должны быть в candy.resources\n * Реализуется только при общем билде форм: candy build *\n * */\n let resourcesExternalConvertersChain: ChainableValueProducer<string> | EmptyProducer = Observe.empty();\n if (options.formGlobs[0] === \"*\") {\n resourcesExternalConvertersChain = Observe.files(path.join(farmDirectory, \"externalConverters\"), \"*.xslt\").do(\n x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"EXTERNAL-CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n );\n }\n\n const copiedEngines = new Set<string>();\n\n const repositoryRoot = path.join(farmDirectory, \"..\");\n const buildCache = new BuildCache(farmDirectory, options.buildCacheMode);\n const buildFormsChain = Observe.fixedFormDirectories(\n formInfos.map(x => path.relative(repositoryRoot, x.formPath))\n ).splitToParallelChains(\n x => x,\n x => x,\n async formRelativePath => {\n const gfv = extractGfvFromFormPath(formRelativePath);\n const formDirPath = path.join(repositoryRoot, formRelativePath);\n\n if (!(await pathExists(path.join(formDirPath, WellKnownDirectories.FormJsonFileName)))) {\n context.logger.warning(\n `Form ${gfv} does not have form.json file. To include this form to build process restart build`\n );\n return Observe.value({});\n }\n const formSchemasDirPath = path.join(formDirPath, \"schemas\");\n const rngSchemaMask = `*${getRngSchemaFilename(formSchemasDirPath, gfv)}`;\n\n return Observe.file(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile =>\n resolveFormInfo(\n formJsonFile,\n formDirPath,\n engineDirectory,\n context.logger.withPrefix(`FORM:${gfv}`),\n options.upgradeFormJson,\n options.useLastStableVersion,\n options.usePrereleaseVersion\n )\n )\n .transform(async fi => {\n if (fi.mode === FormBuildMode.NormalBuild) {\n if (fi.generatorVersion == undefined) {\n throw new Error(\"generatorVersion is not defined\");\n }\n if (fi.engineVersion == undefined) {\n throw new Error(\"engineVersion is not defined\");\n }\n return {\n ...fi,\n generatorSource: await resolveGeneratorVersion(\n fi.generatorVersion,\n context.logger.withPrefix(gfv)\n ),\n engineSource: await resolveEngineVersion(fi.engineVersion, context.logger.withPrefix(gfv)),\n };\n } else {\n return {\n ...fi,\n generatorSource: undefined,\n engineSource: undefined,\n };\n }\n })\n .attach(\n async fi => {\n if (fi.generatorSource == undefined) {\n return new SingleValueProducer(new NullFormGenerator());\n } else {\n return generatorFactory(\n fi.generatorSource,\n candyModulesDirectory,\n options.useVersionFromCache\n );\n }\n },\n async (fi, y) => ({ ...fi, generator: y }),\n async fi =>\n fi.generatorSource != undefined\n ? getGeneratorSourceKey(fi.generatorSource)\n : \"NullFormGenerator\"\n )\n .attach(\n async fi => {\n if (fi.engineSource === undefined) {\n return new SingleValueProducer(\"NullEngine\");\n }\n return engineFactory(fi.engineSource, candyModulesDirectory, options.useVersionFromCache).do(\n async x => {\n if (!copiedEngines.has(getEngineSourceKey(fi.engineSource))) {\n await FSTask.copyRecursively(\n getLogger().withPrefix(\"ENGINE\"),\n x,\n path.join(resourcesDirectory, \"public\")\n );\n copiedEngines.add(getEngineSourceKey(fi.engineSource));\n }\n }\n );\n },\n async fi => fi,\n async fi => (fi.engineSource != undefined ? getEngineSourceKey(fi.engineSource) : \"NullEngine\")\n )\n .attach(async fi =>\n Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/*\",\n \"../../xsltTemplates/**/*\",\n \"../../jsHelpers/**/*\",\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n )\n .transform(async fi => {\n let dependenciesHash: undefined | string;\n if (fi.mode !== FormBuildMode.NormalBuild) {\n return {\n ...fi,\n dependenciesHash: undefined,\n };\n }\n if (await fi.generator.supportsDependenciesExtraction()) {\n dependenciesHash = await fi.generator.getAllDependenciesHash(\n formDirPath,\n farmDirectory,\n hlFarmDirectoryPath\n );\n }\n return {\n ...fi,\n dependenciesHash: dependenciesHash,\n };\n })\n .transform(async fi => {\n let buildCacheExist: boolean = false;\n if (fi.dependenciesHash != undefined && fi.generatorSource != undefined) {\n buildCacheExist = await buildCache.exists(fi.generatorSource, gfv, fi.dependenciesHash);\n }\n return {\n ...fi,\n buildCacheExist: buildCacheExist,\n };\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return undefined;\n }\n if (fi.buildCacheExist) {\n context.logger.withPrefix(`GENERATE:${gfv}`).log(\"Skipped due build cache exits\");\n return undefined;\n }\n\n return generateForm(\n fi.formSourcesPath,\n farmDirectory,\n hlFarmDirectoryPath,\n fi.generator,\n undefined,\n {\n skipCodeReformatting: options.skipGeneratedCodeReformatting,\n resourcesHash: fi.dependenciesHash ?? \"UndefinedResourcesHash\",\n }\n );\n })\n .attach(async fi => Observe.files(path.join(formDirPath, \"form\"), \"**/*\"))\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n if (fi.dependenciesHash != undefined && fi.buildCacheExist) {\n context.logger.withPrefix(`COMPILE:${gfv}`).log(\"Skipped due build cache exists\");\n await buildCache.extract(fi.generatorSource, gfv, fi.dependenciesHash, resourcesDirectory);\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n\n await compileForm(\n fi.formName,\n fi.themes,\n farmDirectory,\n formDirPath,\n resourcesDirectory,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n false,\n undefined,\n buildCacheOptions\n );\n\n await writeFormMeta(\n resourcesDirectory,\n gfv,\n fi.engineSource,\n fi.dependenciesHash ??\n reject(\n \"This version of generator is not supported due to dependencies extraction is not supported\"\n ),\n fi.themes,\n buildCache,\n buildCacheOptions\n );\n })\n .do(async fi => {\n if (fi.generatorSource == undefined) {\n return;\n }\n const buildCacheOptions =\n fi.dependenciesHash != undefined\n ? {\n depsHash: fi.dependenciesHash,\n generatorVersion: getGeneratorVersion(fi.generatorSource),\n gfv: gfv,\n mode: options.buildCacheMode,\n farmDirectory: farmDirectory,\n }\n : undefined;\n await writeFLangNormalizationFiles(\n fi.formName,\n farmDirectory,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions,\n fi.buildCacheExist\n );\n await writeAttachmentPathFiles(\n fi.formName,\n farmDirectory,\n formDirPath,\n resourcesDirectory,\n undefined,\n buildCache,\n buildCacheOptions\n );\n })\n .attach(async fi => {\n if (fi.mode === FormBuildMode.CopyLegacyPrebuiltResources) {\n return Observe.files(path.join(fi.formSourcesPath, \"legacy-prebuilt\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"LEGACY-PREBUILT\"),\n x,\n path.join(resourcesDirectory)\n )\n );\n } else {\n return new SingleValueProducer(\"\");\n }\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"schemas\"), rngSchemaMask).do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"SCHEMAS\"),\n x,\n path.join(resourcesDirectory, \"schemas\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"mergers\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"MERGERS\"),\n x,\n path.join(resourcesDirectory, \"mergers\")\n )\n )\n )\n .attach(async fi => {\n const modifier = (content: string): string =>\n content.replace(/<x:include href=\"[./]+/g, '<x:include href=\"');\n return Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.modifyFilesContent(\n getLogger().withPrefix(\"FIX-XSLT-INCLUDE\"),\n x,\n path.join(resourcesDirectory, \"converters\"),\n \"**/*.xslt\",\n modifier\n )\n );\n })\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"..\", \"..\", \"xsltTemplates\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"XSLT-TEMPLATES\"),\n x,\n path.join(resourcesDirectory, \"converters\", \"xsltTemplates\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"normalize\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"NORMALIZE\"),\n x,\n path.join(resourcesDirectory, \"normalize\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"patch\"), \"*.xslt\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"PATCH\"),\n x,\n path.join(resourcesDirectory, \"patch\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"map\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"MAP\"), x, path.join(resourcesDirectory, \"map\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"unmap\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"UNMAP\"),\n x,\n path.join(resourcesDirectory, \"unmap\")\n )\n )\n )\n .do(async fi => {\n if (buildOptions.watch) {\n notifier.notify({\n title: `${fi.formName}: сборка завершена`,\n message: `Engine: ${\n fi.engineSource == undefined\n ? \"[NoEngine]\"\n : fi.engineSource.type === \"LocalEngineSources\"\n ? \"local\"\n : fi.engineSource.version\n }`,\n });\n }\n });\n }\n );\n\n if (buildOptions.watch) {\n if (options.clean) {\n await cleanTargetDirectory(resourcesDirectory, context.logger);\n }\n const stopObserve1 = await pickListsChain.observe();\n const stopObserve2 = await buildFormsChain.observe();\n const stopObserve3 = await staticResourcesForProductionChain.observe();\n const stopObserve5 = await resourcesExternalConvertersChain.observe();\n await context.waitForExit();\n if (stopObserve3 != undefined) {\n await stopObserve3();\n }\n if (stopObserve5 != undefined) {\n await stopObserve5();\n }\n await stopObserve2();\n await stopObserve1();\n } else {\n const startDate = Date.now();\n try {\n if (options.clean) {\n await cleanTargetDirectory(resourcesDirectory, context.logger);\n }\n await pickListsChain.currentValue;\n await staticResourcesForProductionChain.currentValue;\n await resourcesExternalConvertersChain.currentValue;\n await buildFormsChain.currentValue;\n // eslint-disable-next-line no-console\n console.log(chalk.greenBright(\"Build success\"));\n } finally {\n const totalTime = Date.now() - startDate;\n // eslint-disable-next-line no-console\n console.log(`Total time: ${printTime(totalTime)}`);\n }\n }\n}\n\nasync function cleanTargetDirectory(resourcesDirectory: string, logger: ILogger): Promise<void> {\n logger.log(\"Cleaning resource directory. \" + resourcesDirectory);\n await emptyDir(resourcesDirectory);\n logger.log(\"Resource directory clean\");\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,8 +14,8 @@ class BuildLogsWebsocketController extends _SingletonController.SingletonControl
14
14
  this.socketIoHttpsServer = void 0;
15
15
  this.handleOutput = text => {
16
16
  var _this$socketIoServer, _this$socketIoHttpsSe;
17
- (_this$socketIoServer = this.socketIoServer) === null || _this$socketIoServer === void 0 ? void 0 : _this$socketIoServer.emit("message", text);
18
- (_this$socketIoHttpsSe = this.socketIoHttpsServer) === null || _this$socketIoHttpsSe === void 0 ? void 0 : _this$socketIoHttpsSe.emit("message", text);
17
+ (_this$socketIoServer = this.socketIoServer) === null || _this$socketIoServer === void 0 || _this$socketIoServer.emit("message", text);
18
+ (_this$socketIoHttpsSe = this.socketIoHttpsServer) === null || _this$socketIoHttpsSe === void 0 || _this$socketIoHttpsSe.emit("message", text);
19
19
  };
20
20
  (0, _StdStreamsIntercepter.interceptStdStreams)(this.handleOutput);
21
21
  }
@@ -33,4 +33,4 @@ class BuildLogsWebsocketController extends _SingletonController.SingletonControl
33
33
  }
34
34
  }
35
35
  exports.BuildLogsWebsocketController = BuildLogsWebsocketController;
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc29ja2V0IiwicmVxdWlyZSIsIl9TaW5nbGV0b25Db250cm9sbGVyIiwiX1N0ZFN0cmVhbXNJbnRlcmNlcHRlciIsIkJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJzb2NrZXRJb1NlcnZlciIsInNvY2tldElvSHR0cHNTZXJ2ZXIiLCJoYW5kbGVPdXRwdXQiLCJ0ZXh0IiwiX3RoaXMkc29ja2V0SW9TZXJ2ZXIiLCJfdGhpcyRzb2NrZXRJb0h0dHBzU2UiLCJlbWl0IiwiaW50ZXJjZXB0U3RkU3RyZWFtcyIsImFmdGVyU3RhcnQiLCJodHRwU2VydmVyIiwiaHR0cHNTZXJ2ZXIiLCJTZXJ2ZXIiLCJ0cmFuc3BvcnRzIiwicGF0aCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvQnVpbGRMb2dzV2Vic29ja2V0Q29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBodHRwIGZyb20gXCJodHRwXCI7XG5pbXBvcnQgaHR0cHMgZnJvbSBcImh0dHBzXCI7XG5cbmltcG9ydCB7IFNlcnZlciB9IGZyb20gXCJzb2NrZXQuaW9cIjtcblxuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBpbnRlcmNlcHRTdGRTdHJlYW1zIH0gZnJvbSBcIi4vU3RkU3RyZWFtc0ludGVyY2VwdGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyIGV4dGVuZHMgU2luZ2xldG9uQ29udHJvbGxlciB7XG4gICAgcHJpdmF0ZSBzb2NrZXRJb1NlcnZlcj86IFNlcnZlcjtcbiAgICBwcml2YXRlIHNvY2tldElvSHR0cHNTZXJ2ZXI/OiBTZXJ2ZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGludGVyY2VwdFN0ZFN0cmVhbXModGhpcy5oYW5kbGVPdXRwdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhZnRlclN0YXJ0KGh0dHBTZXJ2ZXI6IGh0dHAuU2VydmVyLCBodHRwc1NlcnZlcj86IGh0dHBzLlNlcnZlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnNvY2tldElvU2VydmVyID0gbmV3IFNlcnZlcihodHRwU2VydmVyLCB7XG4gICAgICAgICAgICB0cmFuc3BvcnRzOiBbXCJ3ZWJzb2NrZXRcIiwgXCJwb2xsaW5nXCJdLFxuICAgICAgICAgICAgcGF0aDogXCIvYnVpbGQtaW5mb1wiLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGh0dHBzU2VydmVyICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zb2NrZXRJb0h0dHBzU2VydmVyID0gbmV3IFNlcnZlcihodHRwc1NlcnZlciwge1xuICAgICAgICAgICAgICAgIHRyYW5zcG9ydHM6IFtcIndlYnNvY2tldFwiLCBcInBvbGxpbmdcIl0sXG4gICAgICAgICAgICAgICAgcGF0aDogXCIvYnVpbGQtaW5mb1wiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZU91dHB1dCA9ICh0ZXh0OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zb2NrZXRJb1NlcnZlcj8uZW1pdChcIm1lc3NhZ2VcIiwgdGV4dCk7XG4gICAgICAgIHRoaXMuc29ja2V0SW9IdHRwc1NlcnZlcj8uZW1pdChcIm1lc3NhZ2VcIiwgdGV4dCk7XG4gICAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsb0JBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLHNCQUFBLEdBQUFGLE9BQUE7QUFFTyxNQUFNRyw0QkFBNEIsU0FBU0Msd0NBQW1CLENBQUM7RUFJM0RDLFdBQVdBLENBQUEsRUFBRztJQUNqQixLQUFLLENBQUMsQ0FBQztJQUFDLEtBSkpDLGNBQWM7SUFBQSxLQUNkQyxtQkFBbUI7SUFBQSxLQW9CVkMsWUFBWSxHQUFJQyxJQUFZLElBQVc7TUFBQSxJQUFBQyxvQkFBQSxFQUFBQyxxQkFBQTtNQUNwRCxDQUFBRCxvQkFBQSxPQUFJLENBQUNKLGNBQWMsY0FBQUksb0JBQUEsdUJBQW5CQSxvQkFBQSxDQUFxQkUsSUFBSSxDQUFDLFNBQVMsRUFBRUgsSUFBSSxDQUFDO01BQzFDLENBQUFFLHFCQUFBLE9BQUksQ0FBQ0osbUJBQW1CLGNBQUFJLHFCQUFBLHVCQUF4QkEscUJBQUEsQ0FBMEJDLElBQUksQ0FBQyxTQUFTLEVBQUVILElBQUksQ0FBQztJQUNuRCxDQUFDO0lBbkJHLElBQUFJLDBDQUFtQixFQUFDLElBQUksQ0FBQ0wsWUFBWSxDQUFDO0VBQzFDO0VBRUEsTUFBYU0sVUFBVUEsQ0FBQ0MsVUFBdUIsRUFBRUMsV0FBMEIsRUFBaUI7SUFDeEYsSUFBSSxDQUFDVixjQUFjLEdBQUcsSUFBSVcsY0FBTSxDQUFDRixVQUFVLEVBQUU7TUFDekNHLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7TUFDcENDLElBQUksRUFBRTtJQUNWLENBQUMsQ0FBQztJQUNGLElBQUlILFdBQVcsSUFBSUksU0FBUyxFQUFFO01BQzFCLElBQUksQ0FBQ2IsbUJBQW1CLEdBQUcsSUFBSVUsY0FBTSxDQUFDRCxXQUFXLEVBQUU7UUFDL0NFLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7UUFDcENDLElBQUksRUFBRTtNQUNWLENBQUMsQ0FBQztJQUNOO0VBQ0o7QUFNSjtBQUFDRSxPQUFBLENBQUFsQiw0QkFBQSxHQUFBQSw0QkFBQSJ9
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc29ja2V0IiwicmVxdWlyZSIsIl9TaW5nbGV0b25Db250cm9sbGVyIiwiX1N0ZFN0cmVhbXNJbnRlcmNlcHRlciIsIkJ1aWxkTG9nc1dlYnNvY2tldENvbnRyb2xsZXIiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJzb2NrZXRJb1NlcnZlciIsInNvY2tldElvSHR0cHNTZXJ2ZXIiLCJoYW5kbGVPdXRwdXQiLCJ0ZXh0IiwiX3RoaXMkc29ja2V0SW9TZXJ2ZXIiLCJfdGhpcyRzb2NrZXRJb0h0dHBzU2UiLCJlbWl0IiwiaW50ZXJjZXB0U3RkU3RyZWFtcyIsImFmdGVyU3RhcnQiLCJodHRwU2VydmVyIiwiaHR0cHNTZXJ2ZXIiLCJTZXJ2ZXIiLCJ0cmFuc3BvcnRzIiwicGF0aCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvQnVpbGRMb2dzV2Vic29ja2V0Q29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBodHRwIGZyb20gXCJodHRwXCI7XG5pbXBvcnQgaHR0cHMgZnJvbSBcImh0dHBzXCI7XG5cbmltcG9ydCB7IFNlcnZlciB9IGZyb20gXCJzb2NrZXQuaW9cIjtcblxuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBpbnRlcmNlcHRTdGRTdHJlYW1zIH0gZnJvbSBcIi4vU3RkU3RyZWFtc0ludGVyY2VwdGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZExvZ3NXZWJzb2NrZXRDb250cm9sbGVyIGV4dGVuZHMgU2luZ2xldG9uQ29udHJvbGxlciB7XG4gICAgcHJpdmF0ZSBzb2NrZXRJb1NlcnZlcj86IFNlcnZlcjtcbiAgICBwcml2YXRlIHNvY2tldElvSHR0cHNTZXJ2ZXI/OiBTZXJ2ZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGludGVyY2VwdFN0ZFN0cmVhbXModGhpcy5oYW5kbGVPdXRwdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhZnRlclN0YXJ0KGh0dHBTZXJ2ZXI6IGh0dHAuU2VydmVyLCBodHRwc1NlcnZlcj86IGh0dHBzLlNlcnZlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnNvY2tldElvU2VydmVyID0gbmV3IFNlcnZlcihodHRwU2VydmVyLCB7XG4gICAgICAgICAgICB0cmFuc3BvcnRzOiBbXCJ3ZWJzb2NrZXRcIiwgXCJwb2xsaW5nXCJdLFxuICAgICAgICAgICAgcGF0aDogXCIvYnVpbGQtaW5mb1wiLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGh0dHBzU2VydmVyICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zb2NrZXRJb0h0dHBzU2VydmVyID0gbmV3IFNlcnZlcihodHRwc1NlcnZlciwge1xuICAgICAgICAgICAgICAgIHRyYW5zcG9ydHM6IFtcIndlYnNvY2tldFwiLCBcInBvbGxpbmdcIl0sXG4gICAgICAgICAgICAgICAgcGF0aDogXCIvYnVpbGQtaW5mb1wiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZU91dHB1dCA9ICh0ZXh0OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zb2NrZXRJb1NlcnZlcj8uZW1pdChcIm1lc3NhZ2VcIiwgdGV4dCk7XG4gICAgICAgIHRoaXMuc29ja2V0SW9IdHRwc1NlcnZlcj8uZW1pdChcIm1lc3NhZ2VcIiwgdGV4dCk7XG4gICAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsb0JBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLHNCQUFBLEdBQUFGLE9BQUE7QUFFTyxNQUFNRyw0QkFBNEIsU0FBU0Msd0NBQW1CLENBQUM7RUFJM0RDLFdBQVdBLENBQUEsRUFBRztJQUNqQixLQUFLLENBQUMsQ0FBQztJQUFDLEtBSkpDLGNBQWM7SUFBQSxLQUNkQyxtQkFBbUI7SUFBQSxLQW9CVkMsWUFBWSxHQUFJQyxJQUFZLElBQVc7TUFBQSxJQUFBQyxvQkFBQSxFQUFBQyxxQkFBQTtNQUNwRCxDQUFBRCxvQkFBQSxPQUFJLENBQUNKLGNBQWMsY0FBQUksb0JBQUEsZUFBbkJBLG9CQUFBLENBQXFCRSxJQUFJLENBQUMsU0FBUyxFQUFFSCxJQUFJLENBQUM7TUFDMUMsQ0FBQUUscUJBQUEsT0FBSSxDQUFDSixtQkFBbUIsY0FBQUkscUJBQUEsZUFBeEJBLHFCQUFBLENBQTBCQyxJQUFJLENBQUMsU0FBUyxFQUFFSCxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQW5CRyxJQUFBSSwwQ0FBbUIsRUFBQyxJQUFJLENBQUNMLFlBQVksQ0FBQztFQUMxQztFQUVBLE1BQWFNLFVBQVVBLENBQUNDLFVBQXVCLEVBQUVDLFdBQTBCLEVBQWlCO0lBQ3hGLElBQUksQ0FBQ1YsY0FBYyxHQUFHLElBQUlXLGNBQU0sQ0FBQ0YsVUFBVSxFQUFFO01BQ3pDRyxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO01BQ3BDQyxJQUFJLEVBQUU7SUFDVixDQUFDLENBQUM7SUFDRixJQUFJSCxXQUFXLElBQUlJLFNBQVMsRUFBRTtNQUMxQixJQUFJLENBQUNiLG1CQUFtQixHQUFHLElBQUlVLGNBQU0sQ0FBQ0QsV0FBVyxFQUFFO1FBQy9DRSxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO1FBQ3BDQyxJQUFJLEVBQUU7TUFDVixDQUFDLENBQUM7SUFDTjtFQUNKO0FBTUo7QUFBQ0UsT0FBQSxDQUFBbEIsNEJBQUEsR0FBQUEsNEJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildLogsWebsocketController.js","names":["_socket","require","_SingletonController","_StdStreamsIntercepter","BuildLogsWebsocketController","SingletonController","constructor","socketIoServer","socketIoHttpsServer","handleOutput","text","_this$socketIoServer","_this$socketIoHttpsSe","emit","interceptStdStreams","afterStart","httpServer","httpsServer","Server","transports","path","undefined","exports"],"sources":["../../../../../src/CLICommands/BuildServer/BuildLogsWebsocketController.ts"],"sourcesContent":["import * as http from \"http\";\nimport https from \"https\";\n\nimport { Server } from \"socket.io\";\n\nimport { SingletonController } from \"../../Commons/HttpServer/ExpressWrapper/SingletonController\";\n\nimport { interceptStdStreams } from \"./StdStreamsIntercepter\";\n\nexport class BuildLogsWebsocketController extends SingletonController {\n private socketIoServer?: Server;\n private socketIoHttpsServer?: Server;\n\n public constructor() {\n super();\n interceptStdStreams(this.handleOutput);\n }\n\n public async afterStart(httpServer: http.Server, httpsServer?: https.Server): Promise<void> {\n this.socketIoServer = new Server(httpServer, {\n transports: [\"websocket\", \"polling\"],\n path: \"/build-info\",\n });\n if (httpsServer != undefined) {\n this.socketIoHttpsServer = new Server(httpsServer, {\n transports: [\"websocket\", \"polling\"],\n path: \"/build-info\",\n });\n }\n }\n\n private readonly handleOutput = (text: string): void => {\n this.socketIoServer?.emit(\"message\", text);\n this.socketIoHttpsServer?.emit(\"message\", text);\n };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AAEO,MAAMG,4BAA4B,SAASC,wCAAmB,CAAC;EAI3DC,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,CAAC;IAAC,KAJJC,cAAc;IAAA,KACdC,mBAAmB;IAAA,KAoBVC,YAAY,GAAIC,IAAY,IAAW;MAAA,IAAAC,oBAAA,EAAAC,qBAAA;MACpD,CAAAD,oBAAA,OAAI,CAACJ,cAAc,cAAAI,oBAAA,eAAnBA,oBAAA,CAAqBE,IAAI,CAAC,SAAS,EAAEH,IAAI,CAAC;MAC1C,CAAAE,qBAAA,OAAI,CAACJ,mBAAmB,cAAAI,qBAAA,eAAxBA,qBAAA,CAA0BC,IAAI,CAAC,SAAS,EAAEH,IAAI,CAAC;IACnD,CAAC;IAnBG,IAAAI,0CAAmB,EAAC,IAAI,CAACL,YAAY,CAAC;EAC1C;EAEA,MAAaM,UAAUA,CAACC,UAAuB,EAAEC,WAA0B,EAAiB;IACxF,IAAI,CAACV,cAAc,GAAG,IAAIW,cAAM,CAACF,UAAU,EAAE;MACzCG,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;MACpCC,IAAI,EAAE;IACV,CAAC,CAAC;IACF,IAAIH,WAAW,IAAII,SAAS,EAAE;MAC1B,IAAI,CAACb,mBAAmB,GAAG,IAAIU,cAAM,CAACD,WAAW,EAAE;QAC/CE,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;QACpCC,IAAI,EAAE;MACV,CAAC,CAAC;IACN;EACJ;AAMJ;AAACE,OAAA,CAAAlB,4BAAA,GAAAA,4BAAA","ignoreList":[]}