tnp-helpers 18.0.19 → 18.0.21

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 (532) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base/classes/base-bower-json.mjs +14 -0
  4. package/browser/esm2022/lib/base/classes/base-cli-worker-config.mjs +1 -4
  5. package/browser/esm2022/lib/base/classes/base-cli-worker-controller.mjs +1 -1
  6. package/browser/esm2022/lib/base/classes/base-cli-worker.mjs +14 -4
  7. package/browser/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +5 -5
  8. package/browser/esm2022/lib/base/classes/base-feature-for-project.mjs +4 -1
  9. package/browser/esm2022/lib/base/classes/base-git.mjs +244 -4
  10. package/browser/esm2022/lib/base/classes/base-json-file-reader.mjs +114 -0
  11. package/browser/esm2022/lib/base/classes/base-library-build.mjs +35 -10
  12. package/browser/esm2022/lib/base/classes/base-linked-projects.mjs +8 -5
  13. package/browser/esm2022/lib/base/classes/base-node-modules.mjs +495 -0
  14. package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +32 -430
  15. package/browser/esm2022/lib/base/classes/base-package-json.mjs +340 -0
  16. package/browser/esm2022/lib/base/classes/base-process-manager.mjs +285 -0
  17. package/browser/esm2022/lib/base/classes/base-project-resolver.mjs +2 -11
  18. package/browser/esm2022/lib/base/classes/base-project.mjs +83 -87
  19. package/browser/esm2022/lib/base/classes/base-quick-fixes.mjs +44 -1
  20. package/browser/esm2022/lib/base/classes/base-release-process.mjs +34 -36
  21. package/browser/esm2022/lib/base/classes/{base-github-pages.mjs → base-static-pages.mjs} +6 -6
  22. package/browser/esm2022/lib/base/classes/base-vscode.mjs +31 -1
  23. package/browser/esm2022/lib/base/classes/index.mjs +5 -1
  24. package/browser/esm2022/lib/base/commit-data.mjs +21 -4
  25. package/browser/esm2022/lib/base/core-project.mjs +3 -3
  26. package/browser/esm2022/lib/base/linked-project.mjs +4 -4
  27. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -4
  28. package/browser/esm2022/lib/base/translate.mjs +566 -0
  29. package/browser/esm2022/lib/helpers/helpers-array-obj.mjs +5 -10
  30. package/browser/esm2022/lib/helpers/helpers.mjs +12 -6
  31. package/browser/esm2022/lib/index.mjs +2 -4
  32. package/browser/esm2022/lib/models.mjs +173 -3
  33. package/browser/esm2022/lib/utils.mjs +402 -41
  34. package/browser/fesm2022/tnp-helpers.mjs +4616 -2904
  35. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  36. package/browser/lib/base/classes/base-bower-json.d.ts +35 -0
  37. package/browser/lib/base/classes/base-cli-worker.d.ts +2 -2
  38. package/browser/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
  39. package/browser/lib/base/classes/base-feature-for-project.d.ts +2 -1
  40. package/browser/lib/base/classes/base-git.d.ts +42 -5
  41. package/browser/lib/base/classes/base-json-file-reader.d.ts +72 -0
  42. package/browser/lib/base/classes/base-library-build.d.ts +8 -11
  43. package/browser/lib/base/classes/base-linked-projects.d.ts +1 -2
  44. package/browser/lib/base/classes/base-node-modules.d.ts +56 -0
  45. package/browser/lib/base/classes/base-npm-helpers.d.ts +29 -108
  46. package/browser/lib/base/classes/base-package-json.d.ts +107 -0
  47. package/browser/lib/base/classes/base-process-manager.d.ts +31 -0
  48. package/browser/lib/base/classes/base-project-resolver.d.ts +2 -2
  49. package/browser/lib/base/classes/base-project.d.ts +17 -18
  50. package/browser/lib/base/classes/base-quick-fixes.d.ts +3 -1
  51. package/browser/lib/base/classes/base-release-process.d.ts +15 -13
  52. package/browser/lib/base/classes/{base-github-pages.d.ts → base-static-pages.d.ts} +3 -3
  53. package/browser/lib/base/classes/base-vscode.d.ts +4 -0
  54. package/browser/lib/base/classes/index.d.ts +5 -1
  55. package/browser/lib/base/commit-data.d.ts +14 -1
  56. package/browser/lib/base/core-project.d.ts +1 -1
  57. package/browser/lib/base/linked-project.d.ts +1 -1
  58. package/browser/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
  59. package/browser/lib/base/translate.d.ts +228 -0
  60. package/browser/lib/helpers/helpers-array-obj.d.ts +3 -0
  61. package/browser/lib/helpers/helpers.d.ts +12 -8
  62. package/browser/lib/index.d.ts +1 -3
  63. package/browser/lib/models.d.ts +68 -8
  64. package/browser/lib/utils.d.ts +72 -13
  65. package/client/README.md +24 -24
  66. package/client/esm2022/lib/base/classes/base-bower-json.mjs +14 -0
  67. package/client/esm2022/lib/base/classes/base-cli-worker-config.mjs +1 -4
  68. package/client/esm2022/lib/base/classes/base-cli-worker-controller.mjs +1 -1
  69. package/client/esm2022/lib/base/classes/base-cli-worker.mjs +14 -4
  70. package/client/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +5 -5
  71. package/client/esm2022/lib/base/classes/base-feature-for-project.mjs +4 -1
  72. package/client/esm2022/lib/base/classes/base-git.mjs +244 -4
  73. package/client/esm2022/lib/base/classes/base-json-file-reader.mjs +114 -0
  74. package/client/esm2022/lib/base/classes/base-library-build.mjs +35 -10
  75. package/client/esm2022/lib/base/classes/base-linked-projects.mjs +8 -5
  76. package/client/esm2022/lib/base/classes/base-node-modules.mjs +495 -0
  77. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +32 -430
  78. package/client/esm2022/lib/base/classes/base-package-json.mjs +340 -0
  79. package/client/esm2022/lib/base/classes/base-process-manager.mjs +285 -0
  80. package/client/esm2022/lib/base/classes/base-project-resolver.mjs +2 -11
  81. package/client/esm2022/lib/base/classes/base-project.mjs +83 -87
  82. package/client/esm2022/lib/base/classes/base-quick-fixes.mjs +44 -1
  83. package/client/esm2022/lib/base/classes/base-release-process.mjs +34 -36
  84. package/client/esm2022/lib/base/classes/{base-github-pages.mjs → base-static-pages.mjs} +6 -6
  85. package/client/esm2022/lib/base/classes/base-vscode.mjs +31 -1
  86. package/client/esm2022/lib/base/classes/index.mjs +5 -1
  87. package/client/esm2022/lib/base/commit-data.mjs +21 -4
  88. package/client/esm2022/lib/base/core-project.mjs +3 -3
  89. package/client/esm2022/lib/base/linked-project.mjs +4 -4
  90. package/client/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -4
  91. package/client/esm2022/lib/base/translate.mjs +566 -0
  92. package/client/esm2022/lib/helpers/helpers-array-obj.mjs +5 -10
  93. package/client/esm2022/lib/helpers/helpers.mjs +12 -6
  94. package/client/esm2022/lib/index.mjs +2 -4
  95. package/client/esm2022/lib/models.mjs +173 -3
  96. package/client/esm2022/lib/utils.mjs +402 -41
  97. package/client/fesm2022/tnp-helpers.mjs +4616 -2904
  98. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  99. package/client/lib/base/classes/base-bower-json.d.ts +35 -0
  100. package/client/lib/base/classes/base-cli-worker.d.ts +2 -2
  101. package/client/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
  102. package/client/lib/base/classes/base-feature-for-project.d.ts +2 -1
  103. package/client/lib/base/classes/base-git.d.ts +42 -5
  104. package/client/lib/base/classes/base-json-file-reader.d.ts +72 -0
  105. package/client/lib/base/classes/base-library-build.d.ts +8 -11
  106. package/client/lib/base/classes/base-linked-projects.d.ts +1 -2
  107. package/client/lib/base/classes/base-node-modules.d.ts +56 -0
  108. package/client/lib/base/classes/base-npm-helpers.d.ts +29 -108
  109. package/client/lib/base/classes/base-package-json.d.ts +107 -0
  110. package/client/lib/base/classes/base-process-manager.d.ts +31 -0
  111. package/client/lib/base/classes/base-project-resolver.d.ts +2 -2
  112. package/client/lib/base/classes/base-project.d.ts +17 -18
  113. package/client/lib/base/classes/base-quick-fixes.d.ts +3 -1
  114. package/client/lib/base/classes/base-release-process.d.ts +15 -13
  115. package/{websql/lib/base/classes/base-github-pages.d.ts → client/lib/base/classes/base-static-pages.d.ts} +3 -3
  116. package/client/lib/base/classes/base-vscode.d.ts +4 -0
  117. package/client/lib/base/classes/index.d.ts +5 -1
  118. package/client/lib/base/commit-data.d.ts +14 -1
  119. package/client/lib/base/core-project.d.ts +1 -1
  120. package/client/lib/base/linked-project.d.ts +1 -1
  121. package/client/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
  122. package/client/lib/base/translate.d.ts +228 -0
  123. package/client/lib/helpers/helpers-array-obj.d.ts +3 -0
  124. package/client/lib/helpers/helpers.d.ts +12 -8
  125. package/client/lib/index.d.ts +1 -3
  126. package/client/lib/models.d.ts +68 -8
  127. package/client/lib/utils.d.ts +72 -13
  128. package/index.js +15 -2
  129. package/index.js.map +1 -1
  130. package/lib/base/base-cli-worker-config.d.ts +27 -0
  131. package/lib/base/base-cli-worker-config.js +53 -0
  132. package/lib/base/base-cli-worker-config.js.map +1 -0
  133. package/lib/base/base-cli-worker-controller.d.ts +15 -0
  134. package/lib/base/base-cli-worker-controller.js +154 -0
  135. package/lib/base/base-cli-worker-controller.js.map +1 -0
  136. package/lib/base/base-cli-worker.d.ts +82 -0
  137. package/lib/base/base-cli-worker.js +654 -0
  138. package/lib/base/base-cli-worker.js.map +1 -0
  139. package/lib/base/base-command-line.backend.d.ts +174 -0
  140. package/lib/base/base-command-line.backend.js +2221 -0
  141. package/lib/base/base-command-line.backend.js.map +1 -0
  142. package/lib/base/base-compiler-for-project.d.ts +7 -0
  143. package/lib/base/base-compiler-for-project.js +62 -0
  144. package/lib/base/base-compiler-for-project.js.map +1 -0
  145. package/lib/base/base-db.d.ts +12 -0
  146. package/lib/base/base-db.js +74 -0
  147. package/lib/base/base-db.js.map +1 -0
  148. package/lib/base/base-debounce-compiler-for-project.d.ts +28 -0
  149. package/lib/base/base-debounce-compiler-for-project.js +82 -0
  150. package/lib/base/base-debounce-compiler-for-project.js.map +1 -0
  151. package/lib/base/base-detached-service.d.ts +6 -0
  152. package/lib/base/base-detached-service.js +16 -0
  153. package/lib/base/base-detached-service.js.map +1 -0
  154. package/lib/base/base-feature-for-project.d.ts +5 -0
  155. package/lib/base/base-feature-for-project.js +11 -0
  156. package/lib/base/base-feature-for-project.js.map +1 -0
  157. package/lib/base/base-git.d.ts +148 -0
  158. package/lib/base/base-git.js +1202 -0
  159. package/lib/base/base-git.js.map +1 -0
  160. package/{client/lib/base/classes → lib/base}/base-github-pages.d.ts +4 -5
  161. package/lib/base/base-github-pages.js +173 -0
  162. package/lib/base/base-github-pages.js.map +1 -0
  163. package/lib/base/base-ignore-hide.d.ts +14 -0
  164. package/lib/base/base-ignore-hide.js +55 -0
  165. package/lib/base/base-ignore-hide.js.map +1 -0
  166. package/lib/base/base-library-build.d.ts +65 -0
  167. package/lib/base/base-library-build.js +717 -0
  168. package/lib/base/base-library-build.js.map +1 -0
  169. package/lib/base/base-linked-projects.d.ts +24 -0
  170. package/lib/base/base-linked-projects.js +408 -0
  171. package/lib/base/base-linked-projects.js.map +1 -0
  172. package/lib/base/base-npm-helpers.d.ts +128 -0
  173. package/lib/base/base-npm-helpers.js +774 -0
  174. package/lib/base/base-npm-helpers.js.map +1 -0
  175. package/lib/base/base-project-resolver.d.ts +41 -0
  176. package/lib/base/base-project-resolver.js +308 -0
  177. package/lib/base/base-project-resolver.js.map +1 -0
  178. package/lib/base/base-project.d.ts +244 -0
  179. package/lib/base/base-project.js +1223 -0
  180. package/lib/base/base-project.js.map +1 -0
  181. package/lib/base/base-quick-fixes.d.ts +6 -0
  182. package/lib/base/base-quick-fixes.js +31 -0
  183. package/lib/base/base-quick-fixes.js.map +1 -0
  184. package/lib/base/base-release-process.d.ts +69 -0
  185. package/lib/base/base-release-process.js +913 -0
  186. package/lib/base/base-release-process.js.map +1 -0
  187. package/lib/base/base-start-config.backend.d.ts +36 -0
  188. package/lib/base/base-start-config.backend.js +167 -0
  189. package/lib/base/base-start-config.backend.js.map +1 -0
  190. package/lib/base/base-vscode.d.ts +12 -0
  191. package/lib/base/base-vscode.js +139 -0
  192. package/lib/base/base-vscode.js.map +1 -0
  193. package/lib/base/classes/base-bower-json.d.ts +34 -0
  194. package/lib/base/classes/base-bower-json.js +19 -0
  195. package/lib/base/classes/base-bower-json.js.map +1 -0
  196. package/lib/base/classes/base-cli-worker-config.js +35 -24
  197. package/lib/base/classes/base-cli-worker-config.js.map +1 -1
  198. package/lib/base/classes/base-cli-worker-controller.js +98 -128
  199. package/lib/base/classes/base-cli-worker-controller.js.map +1 -1
  200. package/lib/base/classes/base-cli-worker.d.ts +2 -2
  201. package/lib/base/classes/base-cli-worker.js +402 -606
  202. package/lib/base/classes/base-cli-worker.js.map +1 -1
  203. package/lib/base/classes/base-command-line-feature.backend.d.ts +5 -9
  204. package/lib/base/classes/base-command-line-feature.backend.js +73 -132
  205. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -1
  206. package/lib/base/classes/base-command-line.backend.d.ts +175 -0
  207. package/lib/base/classes/base-command-line.backend.js +2235 -0
  208. package/lib/base/classes/base-command-line.backend.js.map +1 -0
  209. package/lib/base/classes/base-compiler-for-project.js +27 -32
  210. package/lib/base/classes/base-compiler-for-project.js.map +1 -1
  211. package/lib/base/classes/base-db.js +43 -60
  212. package/lib/base/classes/base-db.js.map +1 -1
  213. package/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
  214. package/lib/base/classes/base-debounce-compiler-for-project.js +44 -70
  215. package/lib/base/classes/base-debounce-compiler-for-project.js.map +1 -1
  216. package/lib/base/classes/base-detached-service.js.map +1 -1
  217. package/lib/base/classes/base-feature-for-project.d.ts +2 -1
  218. package/lib/base/classes/base-feature-for-project.js +7 -4
  219. package/lib/base/classes/base-feature-for-project.js.map +1 -1
  220. package/lib/base/classes/base-git.d.ts +40 -3
  221. package/lib/base/classes/base-git.js +885 -943
  222. package/lib/base/classes/base-git.js.map +1 -1
  223. package/lib/base/classes/base-github-pages.js.map +1 -1
  224. package/lib/base/classes/base-global-command-line.backend.d.ts +10 -2
  225. package/lib/base/classes/base-global-command-line.backend.js +1058 -2011
  226. package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
  227. package/lib/base/classes/base-ignore-hide.d.ts +2 -2
  228. package/lib/base/classes/base-ignore-hide.js +24 -28
  229. package/lib/base/classes/base-ignore-hide.js.map +1 -1
  230. package/lib/base/classes/base-json-file-reader.d.ts +71 -0
  231. package/lib/base/classes/base-json-file-reader.js +141 -0
  232. package/lib/base/classes/base-json-file-reader.js.map +1 -0
  233. package/lib/base/classes/base-library-build.d.ts +8 -12
  234. package/lib/base/classes/base-library-build.js +433 -638
  235. package/lib/base/classes/base-library-build.js.map +1 -1
  236. package/lib/base/classes/base-linked-projects.d.ts +1 -3
  237. package/lib/base/classes/base-linked-projects.js +200 -314
  238. package/lib/base/classes/base-linked-projects.js.map +1 -1
  239. package/lib/base/classes/base-node-modules.d.ts +55 -0
  240. package/lib/base/classes/base-node-modules.js +415 -0
  241. package/lib/base/classes/base-node-modules.js.map +1 -0
  242. package/lib/base/classes/base-npm-helpers.d.ts +29 -97
  243. package/lib/base/classes/base-npm-helpers.js +178 -729
  244. package/lib/base/classes/base-npm-helpers.js.map +1 -1
  245. package/lib/base/classes/base-package-json.d.ts +106 -0
  246. package/lib/base/classes/base-package-json.js +381 -0
  247. package/lib/base/classes/base-package-json.js.map +1 -0
  248. package/lib/base/classes/base-process-manager.d.ts +30 -0
  249. package/lib/base/classes/base-process-manager.js +269 -0
  250. package/lib/base/classes/base-process-manager.js.map +1 -0
  251. package/lib/base/classes/base-project-resolver.d.ts +2 -3
  252. package/lib/base/classes/base-project-resolver.js +102 -119
  253. package/lib/base/classes/base-project-resolver.js.map +1 -1
  254. package/lib/base/classes/base-project.d.ts +20 -17
  255. package/lib/base/classes/base-project.js +553 -760
  256. package/lib/base/classes/base-project.js.map +1 -1
  257. package/lib/base/classes/base-quick-fixes.d.ts +3 -1
  258. package/lib/base/classes/base-quick-fixes.js +45 -17
  259. package/lib/base/classes/base-quick-fixes.js.map +1 -1
  260. package/lib/base/classes/base-release-process.d.ts +15 -13
  261. package/lib/base/classes/base-release-process.js +487 -835
  262. package/lib/base/classes/base-release-process.js.map +1 -1
  263. package/lib/base/classes/base-start-config.backend.js +116 -100
  264. package/lib/base/classes/base-start-config.backend.js.map +1 -1
  265. package/lib/base/classes/base-static-pages.d.ts +14 -0
  266. package/lib/base/classes/base-static-pages.js +105 -0
  267. package/lib/base/classes/base-static-pages.js.map +1 -0
  268. package/lib/base/classes/base-vscode.d.ts +4 -0
  269. package/lib/base/classes/base-vscode.js +446 -424
  270. package/lib/base/classes/base-vscode.js.map +1 -1
  271. package/lib/base/classes/index copy.d.ts +22 -0
  272. package/lib/base/classes/index copy.js +28 -0
  273. package/lib/base/classes/index copy.js.map +1 -0
  274. package/lib/base/classes/index.d.ts +4 -0
  275. package/lib/base/classes/index.js +36 -19
  276. package/lib/base/classes/index.js.map +1 -1
  277. package/lib/base/command-line-feature.backend.d.ts +51 -0
  278. package/lib/base/command-line-feature.backend.js +206 -0
  279. package/lib/base/command-line-feature.backend.js.map +1 -0
  280. package/lib/base/commit-data.d.ts +14 -1
  281. package/lib/base/commit-data.js +411 -464
  282. package/lib/base/commit-data.js.map +1 -1
  283. package/lib/base/config-database.js +33 -61
  284. package/lib/base/config-database.js.map +1 -1
  285. package/lib/base/core-project.d.ts +1 -1
  286. package/lib/base/core-project.js +110 -146
  287. package/lib/base/core-project.js.map +1 -1
  288. package/lib/base/gh-temp-code.d.ts +1 -0
  289. package/lib/base/gh-temp-code.js +62 -104
  290. package/lib/base/gh-temp-code.js.map +1 -1
  291. package/lib/base/index-rebuilder.backend.d.ts +1 -0
  292. package/lib/base/index-rebuilder.backend.js.map +1 -1
  293. package/lib/base/index.js +20 -7
  294. package/lib/base/index.js.map +1 -1
  295. package/lib/base/linked-project.d.ts +1 -1
  296. package/lib/base/linked-project.js +59 -38
  297. package/lib/base/linked-project.js.map +1 -1
  298. package/lib/base/ports-worker.d.ts +32 -0
  299. package/lib/base/ports-worker.js +244 -0
  300. package/lib/base/ports-worker.js.map +1 -0
  301. package/lib/base/project-database.js +12 -22
  302. package/lib/base/project-database.js.map +1 -1
  303. package/lib/base/tcp-udp-ports/index.js +17 -4
  304. package/lib/base/tcp-udp-ports/index.js.map +1 -1
  305. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +1 -0
  306. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
  307. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
  308. package/lib/base/tcp-udp-ports/port.entity.d.ts +0 -0
  309. package/lib/base/tcp-udp-ports/port.entity.js +5 -0
  310. package/lib/base/tcp-udp-ports/port.entity.js.map +1 -0
  311. package/lib/base/tcp-udp-ports/ports.controller.js +195 -283
  312. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
  313. package/lib/base/tcp-udp-ports/ports.entity.d.ts +2 -2
  314. package/lib/base/tcp-udp-ports/ports.entity.js +74 -62
  315. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
  316. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js +11 -14
  317. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
  318. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js +244 -427
  319. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
  320. package/lib/base/tcp-upd-ports.worker.d.ts +13 -0
  321. package/lib/base/tcp-upd-ports.worker.js +99 -0
  322. package/lib/base/tcp-upd-ports.worker.js.map +1 -0
  323. package/lib/base/translate.d.ts +1 -1
  324. package/lib/base/translate.js +90 -119
  325. package/lib/base/translate.js.map +1 -1
  326. package/lib/build-info._auto-generated_.js.map +1 -1
  327. package/lib/helpers/for-backend/helpers-cli-tool.backend.js +109 -115
  328. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  329. package/lib/helpers/for-backend/helpers-console-gui.js +55 -102
  330. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  331. package/lib/helpers/for-backend/helpers-dependencies.backend.js +28 -45
  332. package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
  333. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +2 -2
  334. package/lib/helpers/for-backend/helpers-file-folders.backend.js +277 -266
  335. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  336. package/lib/helpers/for-backend/helpers-git.backend.d.ts +38 -3
  337. package/lib/helpers/for-backend/helpers-git.backend.js +806 -807
  338. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  339. package/lib/helpers/for-backend/helpers-network.backend.js +15 -18
  340. package/lib/helpers/for-backend/helpers-network.backend.js.map +1 -1
  341. package/lib/helpers/for-backend/helpers-npm.backend.js +5 -8
  342. package/lib/helpers/for-backend/helpers-npm.backend.js.map +1 -1
  343. package/lib/helpers/for-backend/helpers-path.backend.js +18 -26
  344. package/lib/helpers/for-backend/helpers-path.backend.js.map +1 -1
  345. package/lib/helpers/for-backend/helpers-process.backend.d.ts +2 -2
  346. package/lib/helpers/for-backend/helpers-process.backend.js +285 -363
  347. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  348. package/lib/helpers/for-backend/helpers-system-terminal.backend.js +25 -42
  349. package/lib/helpers/for-backend/helpers-system-terminal.backend.js.map +1 -1
  350. package/lib/helpers/for-backend/helpers-vscode.backend.js +9 -12
  351. package/lib/helpers/for-backend/helpers-vscode.backend.js.map +1 -1
  352. package/lib/helpers/for-backend/ts-code/index.js +0 -2
  353. package/lib/helpers/for-backend/ts-code/index.js.map +1 -1
  354. package/lib/helpers/for-backend/ts-code/ts-code-extractor.d.ts +26 -0
  355. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js +62 -0
  356. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js.map +1 -0
  357. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.d.ts +19 -0
  358. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js +81 -0
  359. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js.map +1 -0
  360. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js +2 -2
  361. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js.map +1 -1
  362. package/lib/helpers/for-browser/angular.helper.js +2 -2
  363. package/lib/helpers/for-browser/angular.helper.js.map +1 -1
  364. package/lib/helpers/for-browser/helpers-browser.js +27 -40
  365. package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
  366. package/lib/helpers/helpers-array-obj.d.ts +3 -0
  367. package/lib/helpers/helpers-array-obj.js +49 -61
  368. package/lib/helpers/helpers-array-obj.js.map +1 -1
  369. package/lib/helpers/helpers-json5.backend.js +44 -55
  370. package/lib/helpers/helpers-json5.backend.js.map +1 -1
  371. package/lib/helpers/helpers-numbers.js +7 -10
  372. package/lib/helpers/helpers-numbers.js.map +1 -1
  373. package/lib/helpers/helpers-strings-regexes.js +40 -47
  374. package/lib/helpers/helpers-strings-regexes.js.map +1 -1
  375. package/lib/helpers/helpers-strings.js +38 -41
  376. package/lib/helpers/helpers-strings.js.map +1 -1
  377. package/lib/helpers/helpers.d.ts +12 -8
  378. package/lib/helpers/helpers.js +313 -393
  379. package/lib/helpers/helpers.js.map +1 -1
  380. package/lib/index._auto-generated_.d.ts +1 -0
  381. package/lib/index._auto-generated_.js.map +1 -1
  382. package/lib/index.d.ts +3 -4
  383. package/lib/index.js +21 -10
  384. package/lib/index.js.map +1 -1
  385. package/lib/lowdb/adapters/Memory.js +14 -20
  386. package/lib/lowdb/adapters/Memory.js.map +1 -1
  387. package/lib/lowdb/adapters/browser/LocalStorage.js +5 -8
  388. package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
  389. package/lib/lowdb/adapters/browser/SessionStorage.js +5 -8
  390. package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
  391. package/lib/lowdb/adapters/browser/WebStorage.js +10 -9
  392. package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
  393. package/lib/lowdb/adapters/node/DataFile.js +29 -38
  394. package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
  395. package/lib/lowdb/adapters/node/JSONFile.js +13 -18
  396. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
  397. package/lib/lowdb/adapters/node/TextFile.js +36 -44
  398. package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
  399. package/lib/lowdb/adapters/node/steno.js +72 -122
  400. package/lib/lowdb/adapters/node/steno.js.map +1 -1
  401. package/lib/lowdb/browser.js +17 -4
  402. package/lib/lowdb/browser.js.map +1 -1
  403. package/lib/lowdb/core/Low.js +30 -60
  404. package/lib/lowdb/core/Low.js.map +1 -1
  405. package/lib/lowdb/examples/browser.js.map +1 -1
  406. package/lib/lowdb/examples/cli.d.ts +1 -0
  407. package/lib/lowdb/examples/cli.js.map +1 -1
  408. package/lib/lowdb/examples/in-memory.d.ts +1 -0
  409. package/lib/lowdb/examples/in-memory.js.map +1 -1
  410. package/lib/lowdb/examples/server.d.ts +1 -0
  411. package/lib/lowdb/examples/server.js.map +1 -1
  412. package/lib/lowdb/index.js +16 -3
  413. package/lib/lowdb/index.js.map +1 -1
  414. package/lib/lowdb/node.js +18 -5
  415. package/lib/lowdb/node.js.map +1 -1
  416. package/lib/lowdb/presets/browser.js +7 -7
  417. package/lib/lowdb/presets/browser.js.map +1 -1
  418. package/lib/lowdb/presets/node.js +12 -23
  419. package/lib/lowdb/presets/node.js.map +1 -1
  420. package/lib/models.d.ts +68 -8
  421. package/lib/models.js +197 -3
  422. package/lib/models.js.map +1 -1
  423. package/lib/old/base-component.d.ts +1 -0
  424. package/lib/old/base-component.js +2 -2
  425. package/lib/old/base-component.js.map +1 -1
  426. package/lib/old/base-formly-component.d.ts +1 -0
  427. package/lib/old/base-formly-component.js +2 -2
  428. package/lib/old/base-formly-component.js.map +1 -1
  429. package/lib/old/condition-wait.d.ts +1 -0
  430. package/lib/old/condition-wait.js.map +1 -1
  431. package/lib/old/dual-component-ctrl.d.ts +1 -0
  432. package/lib/old/dual-component-ctrl.js +2 -2
  433. package/lib/old/dual-component-ctrl.js.map +1 -1
  434. package/lib/old/execute-command.d.ts +11 -0
  435. package/lib/old/execute-command.js +564 -0
  436. package/lib/old/execute-command.js.map +1 -0
  437. package/lib/old/helpers.d.ts +62 -0
  438. package/lib/old/helpers.js +279 -0
  439. package/lib/old/helpers.js.map +1 -0
  440. package/lib/old/models.d.ts +80 -0
  441. package/lib/old/models.js +57 -0
  442. package/lib/old/models.js.map +1 -0
  443. package/lib/utils.d.ts +72 -13
  444. package/lib/utils.js +502 -179
  445. package/lib/utils.js.map +1 -1
  446. package/lib/validators/validators-firedev.js +5 -5
  447. package/lib/validators/validators-firedev.js.map +1 -1
  448. package/lib/validators/validators-git.js +2 -2
  449. package/lib/validators/validators-git.js.map +1 -1
  450. package/lib/validators/validators-network.js +1 -1
  451. package/lib/validators/validators-network.js.map +1 -1
  452. package/lib/validators/validators.js +2 -2
  453. package/lib/validators/validators.js.map +1 -1
  454. package/migrations/1736198527297_init.js +39 -58
  455. package/migrations/1736198527297_init.js.map +1 -1
  456. package/migrations/1736199486472_addingNotAssignablePorts.js +42 -93
  457. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
  458. package/migrations/1736454437350_addFreePorts.js +48 -100
  459. package/migrations/1736454437350_addFreePorts.js.map +1 -1
  460. package/migrations/index.js +15 -2
  461. package/migrations/index.js.map +1 -1
  462. package/migrations/migrations_index._auto-generated_.js +3 -3
  463. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  464. package/package.json +14 -61
  465. package/src.d.ts +1 -1
  466. package/taon.jsonc +34 -49
  467. package/tmp-environment.json +8 -389
  468. package/websql/README.md +24 -24
  469. package/websql/esm2022/lib/base/classes/base-bower-json.mjs +14 -0
  470. package/websql/esm2022/lib/base/classes/base-cli-worker-config.mjs +1 -4
  471. package/websql/esm2022/lib/base/classes/base-cli-worker-controller.mjs +1 -1
  472. package/websql/esm2022/lib/base/classes/base-cli-worker.mjs +14 -4
  473. package/websql/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +5 -5
  474. package/websql/esm2022/lib/base/classes/base-feature-for-project.mjs +4 -1
  475. package/websql/esm2022/lib/base/classes/base-git.mjs +244 -4
  476. package/websql/esm2022/lib/base/classes/base-json-file-reader.mjs +114 -0
  477. package/websql/esm2022/lib/base/classes/base-library-build.mjs +35 -10
  478. package/websql/esm2022/lib/base/classes/base-linked-projects.mjs +8 -5
  479. package/websql/esm2022/lib/base/classes/base-node-modules.mjs +495 -0
  480. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +32 -430
  481. package/websql/esm2022/lib/base/classes/base-package-json.mjs +340 -0
  482. package/websql/esm2022/lib/base/classes/base-process-manager.mjs +285 -0
  483. package/websql/esm2022/lib/base/classes/base-project-resolver.mjs +2 -10
  484. package/websql/esm2022/lib/base/classes/base-project.mjs +82 -87
  485. package/websql/esm2022/lib/base/classes/base-quick-fixes.mjs +44 -1
  486. package/websql/esm2022/lib/base/classes/base-release-process.mjs +34 -36
  487. package/websql/esm2022/lib/base/classes/{base-github-pages.mjs → base-static-pages.mjs} +6 -6
  488. package/websql/esm2022/lib/base/classes/base-vscode.mjs +31 -1
  489. package/websql/esm2022/lib/base/classes/index.mjs +5 -1
  490. package/websql/esm2022/lib/base/commit-data.mjs +21 -4
  491. package/websql/esm2022/lib/base/core-project.mjs +3 -3
  492. package/websql/esm2022/lib/base/linked-project.mjs +4 -4
  493. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -4
  494. package/websql/esm2022/lib/base/translate.mjs +566 -0
  495. package/websql/esm2022/lib/helpers/helpers-array-obj.mjs +5 -10
  496. package/websql/esm2022/lib/helpers/helpers.mjs +12 -6
  497. package/websql/esm2022/lib/index.mjs +2 -4
  498. package/websql/esm2022/lib/models.mjs +173 -3
  499. package/websql/esm2022/lib/utils.mjs +402 -41
  500. package/websql/fesm2022/tnp-helpers.mjs +4744 -3032
  501. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  502. package/websql/lib/base/classes/base-bower-json.d.ts +35 -0
  503. package/websql/lib/base/classes/base-cli-worker.d.ts +2 -2
  504. package/websql/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
  505. package/websql/lib/base/classes/base-feature-for-project.d.ts +2 -1
  506. package/websql/lib/base/classes/base-git.d.ts +42 -5
  507. package/websql/lib/base/classes/base-json-file-reader.d.ts +72 -0
  508. package/websql/lib/base/classes/base-library-build.d.ts +8 -11
  509. package/websql/lib/base/classes/base-linked-projects.d.ts +1 -2
  510. package/websql/lib/base/classes/base-node-modules.d.ts +56 -0
  511. package/websql/lib/base/classes/base-npm-helpers.d.ts +29 -108
  512. package/websql/lib/base/classes/base-package-json.d.ts +107 -0
  513. package/websql/lib/base/classes/base-process-manager.d.ts +31 -0
  514. package/websql/lib/base/classes/base-project-resolver.d.ts +2 -2
  515. package/websql/lib/base/classes/base-project.d.ts +17 -18
  516. package/websql/lib/base/classes/base-quick-fixes.d.ts +3 -1
  517. package/websql/lib/base/classes/base-release-process.d.ts +15 -13
  518. package/websql/lib/base/classes/base-static-pages.d.ts +15 -0
  519. package/websql/lib/base/classes/base-vscode.d.ts +4 -0
  520. package/websql/lib/base/classes/index.d.ts +5 -1
  521. package/websql/lib/base/commit-data.d.ts +14 -1
  522. package/websql/lib/base/core-project.d.ts +1 -1
  523. package/websql/lib/base/linked-project.d.ts +1 -1
  524. package/websql/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
  525. package/websql/lib/base/translate.d.ts +228 -0
  526. package/websql/lib/helpers/helpers-array-obj.d.ts +3 -0
  527. package/websql/lib/helpers/helpers.d.ts +12 -8
  528. package/websql/lib/index.d.ts +1 -3
  529. package/websql/lib/models.d.ts +68 -8
  530. package/websql/lib/utils.d.ts +72 -13
  531. package/browser/package.json +0 -25
  532. package/websql/package.json +0 -25
@@ -1,41 +1,5 @@
1
- /* */
2
- /* */
3
- /* */
4
- /* */
5
- /* */
6
- /* */
7
- /* */
8
- /* */
9
- /* */
10
- /* */
11
- /* */
12
- /* */
13
- /* */
14
- /* */
15
- /* */
16
- /* */
17
- /* */
18
- /* */
19
- /* */
20
- /* */
21
- /* */
22
- /* */
23
- /* */
24
- /* */
25
- /* */
26
- /* */
27
- /* */
28
- /* */
29
- /* */
30
- /* */
31
- /* */
32
- /* */
33
- /* */
34
- /* */
35
- /* */
36
- /* */
37
- /* */
38
1
  import { CoreModels, Utils } from 'tnp-core/browser';
2
+ import { isExportDeclaration, isImportDeclaration, isNamedImports, isNamedExports, } from 'typescript'; /* */
39
3
  export var UtilsNpm;
40
4
  (function (UtilsNpm) {
41
5
  UtilsNpm.isSpecialVersion = (version) => {
@@ -217,6 +181,18 @@ export var UtilsTypescript;
217
181
  * Function to extract exports from a TypeScript file
218
182
  */
219
183
  UtilsTypescript.exportsFromFile = (filePath) => {
184
+ /* */
185
+ /* */
186
+ /* */
187
+ /* */
188
+ /* */
189
+ /* */
190
+ return (void 0);
191
+ };
192
+ /**
193
+ * Function to extract exports from a TypeScript file
194
+ */
195
+ UtilsTypescript.exportsFromContent = (fileContent) => {
220
196
  /* */
221
197
  /* */
222
198
  /* */
@@ -338,6 +314,9 @@ export var UtilsTypescript;
338
314
  return (void 0);
339
315
  };
340
316
  UtilsTypescript.extractClassNamesFromFile = (absoluteFilePath) => {
317
+ /* */
318
+ /* */
319
+ /* */
341
320
  /* */
342
321
  /* */
343
322
  /* */
@@ -362,6 +341,7 @@ export var UtilsTypescript;
362
341
  /* */
363
342
  /* */
364
343
  /* */
344
+ /* */
365
345
  return (void 0);
366
346
  };
367
347
  UtilsTypescript.formatAllFilesInsideFolder = (absPathToFolder) => {
@@ -436,6 +416,378 @@ export var UtilsTypescript;
436
416
  /* */
437
417
  return (void 0);
438
418
  };
419
+ UtilsTypescript.extractAngularComponentSelectors = (fileAbsPath) => {
420
+ /* */
421
+ /* */
422
+ /* */
423
+ /* */
424
+ /* */
425
+ /* */
426
+ /* */
427
+ /* */
428
+ /* */
429
+ /* */
430
+ /* */
431
+ /* */
432
+ /* */
433
+ /* */
434
+ /* */
435
+ /* */
436
+ /* */
437
+ /* */
438
+ /* */
439
+ /* */
440
+ /* */
441
+ /* */
442
+ /* */
443
+ /* */
444
+ /* */
445
+ /* */
446
+ /* */
447
+ /* */
448
+ /* */
449
+ /* */
450
+ /* */
451
+ /* */
452
+ /* */
453
+ /* */
454
+ /* */
455
+ /* */
456
+ /* */
457
+ /* */
458
+ /* */
459
+ /* */
460
+ /* */
461
+ /* */
462
+ /* */
463
+ /* */
464
+ /* */
465
+ /* */
466
+ /* */
467
+ return (void 0);
468
+ };
469
+ UtilsTypescript.wrapWithComment = (oneLineComment, absDestFilePath) => {
470
+ /* */
471
+ /* */
472
+ /* */
473
+ /* */
474
+ /* */
475
+ /* */
476
+ /* */
477
+ /* */
478
+ /* */
479
+ /* */
480
+ /* */
481
+ /* */
482
+ /* */
483
+ /* */
484
+ /* */
485
+ /* */
486
+ /* */
487
+ /* */
488
+ /* */
489
+ /* */
490
+ /* */
491
+ /* */
492
+ /* */
493
+ /* */
494
+ return (void 0);
495
+ };
496
+ /**
497
+ * Attempts to set or add an exported const with given name and value.
498
+ */
499
+ UtilsTypescript.setValueToVariableInTsFile = (tsAbsFilePath, variableName, valueOfVariable, addIfNotExists = true) => {
500
+ /* */
501
+ /* */
502
+ /* */
503
+ /* */
504
+ /* */
505
+ /* */
506
+ /* */
507
+ /* */
508
+ /* */
509
+ /* */
510
+ /* */
511
+ /* */
512
+ /* */
513
+ /* */
514
+ /* */
515
+ /* */
516
+ /* */
517
+ /* */
518
+ /* */
519
+ /* */
520
+ /* */
521
+ /* */
522
+ /* */
523
+ /* */
524
+ /* */
525
+ /* */
526
+ /* */
527
+ /* */
528
+ /* */
529
+ /* */
530
+ /* */
531
+ /* */
532
+ /* */
533
+ /* */
534
+ /* */
535
+ /* */
536
+ /* */
537
+ /* */
538
+ /* */
539
+ /* */
540
+ /* */
541
+ /* */
542
+ /* */
543
+ /* */
544
+ /* */
545
+ /* */
546
+ /* */
547
+ /* */
548
+ /* */
549
+ /* */
550
+ /* */
551
+ /* */
552
+ /* */
553
+ /* */
554
+ /* */
555
+ /* */
556
+ /* */
557
+ /* */
558
+ /* */
559
+ /* */
560
+ /* */
561
+ /* */
562
+ /* */
563
+ /* */
564
+ /* */
565
+ /* */
566
+ /* */
567
+ /* */
568
+ /* */
569
+ /* */
570
+ /* */
571
+ /* */
572
+ /* */
573
+ /* */
574
+ /* */
575
+ /* */
576
+ /* */
577
+ /* */
578
+ /* */
579
+ /* */
580
+ /* */
581
+ /* */
582
+ /* */
583
+ /* */
584
+ /* */
585
+ /* */
586
+ /* */
587
+ /* */
588
+ /* */
589
+ /* */
590
+ /* */
591
+ /* */
592
+ /* */
593
+ /* */
594
+ /* */
595
+ /* */
596
+ /* */
597
+ /* */
598
+ /* */
599
+ /* */
600
+ /* */
601
+ /* */
602
+ /* */
603
+ /* */
604
+ /* */
605
+ /* */
606
+ /* */
607
+ /* */
608
+ /* */
609
+ /* */
610
+ /* */
611
+ /* */
612
+ /* */
613
+ /* */
614
+ /* */
615
+ /* */
616
+ return (void 0);
617
+ };
618
+ class TsImportExport {
619
+ removeStartEndQuotes(str) {
620
+ return str.replace(/^['"`]/, '').replace(/['"`]$/, '');
621
+ }
622
+ /**
623
+ * it will extract part of the file content
624
+ * that is between startRow, startCol and endRow, endCol
625
+ * and contains import/export/require statement
626
+ */
627
+ getStringPartFrom(wholeContentOfFile) {
628
+ const lines = wholeContentOfFile.split('\n');
629
+ const startRowIndex = this.startRow - 1;
630
+ const endRowIndex = this.endRow - 1;
631
+ if (startRowIndex >= lines.length || endRowIndex >= lines.length) {
632
+ throw new Error('Row index out of bounds.');
633
+ }
634
+ let extractedLines = [];
635
+ for (let i = startRowIndex; i <= endRowIndex; i++) {
636
+ let line = lines[i];
637
+ if (i === startRowIndex && i === endRowIndex) {
638
+ extractedLines.push(line.substring(this.startCol - 1, this.endCol));
639
+ }
640
+ else if (i === startRowIndex) {
641
+ extractedLines.push(line.substring(this.startCol - 1));
642
+ }
643
+ else if (i === endRowIndex) {
644
+ extractedLines.push(line.substring(0, this.endCol));
645
+ }
646
+ else {
647
+ extractedLines.push(line);
648
+ }
649
+ }
650
+ return extractedLines.join('\n');
651
+ }
652
+ wrapInParenthesis(str) {
653
+ return this.parenthesisType === 'single'
654
+ ? `'${str}'`
655
+ : this.parenthesisType === 'double'
656
+ ? `"${str}"`
657
+ : `\`${str}\``;
658
+ }
659
+ constructor(type, embeddedPathToFile, start, end, parenthesisType, importElements = []) {
660
+ this.importElements = [];
661
+ this.type = type;
662
+ this.isIsomorphic = false;
663
+ this.embeddedPathToFile = embeddedPathToFile;
664
+ this.cleanEmbeddedPathToFile =
665
+ this.removeStartEndQuotes(embeddedPathToFile);
666
+ this.embeddedPathToFileResult = embeddedPathToFile;
667
+ this.startRow = start.line + 1; // TypeScript lines are zero-based
668
+ this.startCol = start.character + 1;
669
+ this.endRow = end.line + 1;
670
+ this.endCol = end.character + 1;
671
+ this.parenthesisType = parenthesisType;
672
+ this.importElements = importElements;
673
+ }
674
+ }
675
+ UtilsTypescript.TsImportExport = TsImportExport;
676
+ const getQuoteType = (text) => {
677
+ if (text.startsWith('`'))
678
+ return 'tics';
679
+ if (text.startsWith("'"))
680
+ return 'single';
681
+ return 'double';
682
+ };
683
+ const extractImportExportElements = (node) => {
684
+ const elements = [];
685
+ if (isImportDeclaration(node) && node.importClause) {
686
+ if (node.importClause.namedBindings &&
687
+ isNamedImports(node.importClause.namedBindings)) {
688
+ elements.push(...node.importClause.namedBindings.elements.map(el => el.name.text));
689
+ }
690
+ }
691
+ else if (isExportDeclaration(node) && node.exportClause) {
692
+ if (isNamedExports(node.exportClause)) {
693
+ elements.push(...node.exportClause.elements.map(el => el.name.text));
694
+ }
695
+ }
696
+ return elements;
697
+ };
698
+ UtilsTypescript.recognizeImportsFromFile = (fileAbsPAth) => {
699
+ /* */
700
+ /* */
701
+ /* */
702
+ return (void 0);
703
+ };
704
+ UtilsTypescript.recognizeImportsFromContent = (fileContent) => {
705
+ /* */
706
+ /* */
707
+ /* */
708
+ /* */
709
+ /* */
710
+ /* */
711
+ /* */
712
+ /* */
713
+ /* */
714
+ /* */
715
+ /* */
716
+ /* */
717
+ /* */
718
+ /* */
719
+ /* */
720
+ /* */
721
+ /* */
722
+ /* */
723
+ /* */
724
+ /* */
725
+ /* */
726
+ /* */
727
+ /* */
728
+ /* */
729
+ /* */
730
+ /* */
731
+ /* */
732
+ /* */
733
+ /* */
734
+ /* */
735
+ /* */
736
+ /* */
737
+ /* */
738
+ /* */
739
+ /* */
740
+ /* */
741
+ /* */
742
+ /* */
743
+ /* */
744
+ /* */
745
+ /* */
746
+ /* */
747
+ /* */
748
+ /* */
749
+ /* */
750
+ /* */
751
+ /* */
752
+ /* */
753
+ /* */
754
+ /* */
755
+ /* */
756
+ /* */
757
+ /* */
758
+ /* */
759
+ /* */
760
+ /* */
761
+ /* */
762
+ /* */
763
+ /* */
764
+ /* */
765
+ /* */
766
+ /* */
767
+ /* */
768
+ /* */
769
+ /* */
770
+ /* */
771
+ /* */
772
+ /* */
773
+ /* */
774
+ /* */
775
+ /* */
776
+ /* */
777
+ /* */
778
+ /* */
779
+ /* */
780
+ /* */
781
+ /* */
782
+ /* */
783
+ /* */
784
+ /* */
785
+ /* */
786
+ /* */
787
+ /* */
788
+ /* */
789
+ return (void 0);
790
+ };
439
791
  })(UtilsTypescript || (UtilsTypescript = {}));
440
792
  export var UtilsHttp;
441
793
  (function (UtilsHttp) {
@@ -466,6 +818,7 @@ export var UtilsHttp;
466
818
  /* */
467
819
  /* */
468
820
  /* */
821
+ /* */
469
822
  return (void 0);
470
823
  };
471
824
  })(UtilsHttp || (UtilsHttp = {}));
@@ -558,6 +911,7 @@ export var UtilsMd;
558
911
  /* */
559
912
  /* */
560
913
  /* */
914
+ /* */
561
915
  return (void 0);
562
916
  };
563
917
  })(UtilsMd || (UtilsMd = {}));
@@ -567,7 +921,7 @@ export var UtilsQuickFixes;
567
921
  *
568
922
  * @param node_modules/sql.js/dist/sql-wasm.js
569
923
  */
570
- function replaceSQLliteFaultyCode(contentofSQLWasmJS) {
924
+ UtilsQuickFixes.replaceSQLliteFaultyCode = (contentofSQLWasmJS) => {
571
925
  /* */
572
926
  /* */
573
927
  /* */
@@ -583,9 +937,16 @@ export var UtilsQuickFixes;
583
937
  /* */
584
938
  /* */
585
939
  return (void 0);
586
- }
587
- UtilsQuickFixes.replaceSQLliteFaultyCode = replaceSQLliteFaultyCode;
940
+ };
941
+ /**
942
+ * for some reason electron is being bundled - and it is not needed for cli
943
+ */
944
+ UtilsQuickFixes.replaceElectronWithNothing = (jsContent) => {
945
+ /* */
946
+ /* */
947
+ return (void 0);
948
+ };
588
949
  })(UtilsQuickFixes || (UtilsQuickFixes = {}));
589
950
  ;
590
951
  ({}); // @--end-of-file-for-module=tnp-helpers lib/utils.ts
591
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQVksVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSS9ELE1BQU0sS0FBVyxRQUFRLENBNER4QjtBQTVERCxXQUFpQixRQUFRO0lBRVYseUJBQWdCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtRQUNsRCxPQUFPLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBSVcscUJBQVksR0FBRyxDQUMxQixPQUFlLEVBQ2YsT0FNQyxFQUNELEVBQUU7UUFDRixNQUFNLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFBLGdCQUFnQixDQUFDLE9BQU8sQ0FB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QUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFNRixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVUsRUFBVyxFQUFFO1FBQzdDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBSUY7O09BRUc7SUFDVSwrQkFBZSxHQUFHLENBQzdCLFFBQWdCLEVBZWQsRUFBRTtRQUNSLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFPVyxpREFBaUMsR0FBRyxDQUMvQyxVQUFrQixFQUNFLEVBQUU7UUFDMUIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRVcsMENBQTBCLEdBQUcsQ0FBQyxVQUFrQixFQUFZLEVBQUU7UUFDN0UsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRVcseUNBQXlCLEdBQUcsQ0FDdkMsZ0JBQXdCLEVBQ2QsRUFBRTtRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFVywrQ0FBK0IsR0FBRyxDQUFDLGdCQUF3QixFQUFFLEVBQUU7UUFDOUUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBSVcsMEJBQVUsR0FBRyxDQUFDLGFBQXFCLEVBQVEsRUFBRTtRQUM1RCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFVywwQ0FBMEIsR0FBRyxDQUFDLGVBQXVCLEVBQVEsRUFBRTtRQUM5RSxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFJVyx5Q0FBeUIsR0FBRyxDQUFDLFdBQW1CLEVBQVksRUFBRTtRQUM3RSxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FB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Qi9CO0FBeEJELFdBQWlCLGVBQWU7SUFFOUI7OztPQUdHO0lBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsa0JBQTBCO1FBQ3JFLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQWhCZSx3Q0FBd0IsMkJBZ0J2QyxDQUFBO0FBRUgsQ0FBQyxFQXhCZ0IsZUFBZSxLQUFmLGVBQWUsUUF3Qi9CO0FBR0EsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxREFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IF8sIGNoYWxrLCBDb3JlTW9kZWxzLCBVdGlscyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc05wbSB7XG5cbiAgZXhwb3J0IGNvbnN0IGlzU3BlY2lhbFZlcnNpb24gPSAodmVyc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIENvcmVNb2RlbHMuTnBtU3BlY2lhbFZlcnNpb25zLmluY2x1ZGVzKHZlcnNpb24pO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgY2xlYXJWZXJzaW9uID0gKFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICBvcHRpb25zOiB7XG4gICAgICByZW1vdmVQcmVmaXhlcz86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSBhbHBoYSwgYmV0YSwgcmMsIGxhdGVzdCwgbmV4dCBldGMuXG4gICAgICAgKi9cbiAgICAgIHJlbW92ZVN1ZmZpeD86IGJvb2xlYW47XG4gICAgfSxcbiAgKSA9PiB7XG4gICAgY29uc3QgeyByZW1vdmVQcmVmaXhlcywgcmVtb3ZlU3VmZml4IH0gPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgaWYgKCF2ZXJzaW9uIHx8IGlzU3BlY2lhbFZlcnNpb24odmVyc2lvbikpIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cblxuICAgIHZlcnNpb24gPSAodmVyc2lvbiB8fCAnJylcbiAgICAgIC50cmltKClcbiAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoVXRpbHMuZXNjYXBlU3RyaW5nRm9yUmVnRXgoJ3VuZGVmaW5lZCcpLCAnZycpLCAnMCcpO1xuXG4gICAgaWYgKHJlbW92ZVByZWZpeGVzKSB7XG4gICAgICB2ZXJzaW9uID0gdmVyc2lvbi5yZXBsYWNlKCdeJywgJycpLnJlcGxhY2UoJ34nLCAnJyk7XG4gICAgfVxuICAgIGxldCBbbWFqb3IsIG1pbm9yLCBwYXRjaCwgYWxwaGFPckJldGFPclJjXSA9IHZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBpZiAocmVtb3ZlU3VmZml4KSB7XG4gICAgICBhbHBoYU9yQmV0YU9yUmMgPSAnJztcbiAgICB9XG4gICAgcmV0dXJuIGZpeE1ham9yVmVyTnVtYmVyKFxuICAgICAgYCR7bWFqb3J9LiR7bWlub3J9LiR7cGF0Y2h9JHthbHBoYU9yQmV0YU9yUmMgPyAnLicgKyBhbHBoYU9yQmV0YU9yUmMgOiAnJ31gLFxuICAgICk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBmaXhNYWpvclZlck51bWJlciA9ICh2ZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIXZlcnNpb24gfHwgaXNTcGVjaWFsVmVyc2lvbih2ZXJzaW9uKSkge1xuICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgfVxuICAgIHZlcnNpb24gPSAodmVyc2lvbiB8fCAnJylcbiAgICAgIC50cmltKClcbiAgICAgIC5yZXBsYWNlKG5ldyBSZWdFeHAoVXRpbHMuZXNjYXBlU3RyaW5nRm9yUmVnRXgoJ3VuZGVmaW5lZCcpLCAnZycpLCAnMCcpO1xuICAgIGNvbnN0IHNwbGl0ZWQgPSB2ZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgbGV0IFttYWpvciwgbWlub3IsIHBhdGNoLCBhbHBoYU9yQmV0YU9yUmNdID0gc3BsaXRlZDtcbiAgICBpZiAoc3BsaXRlZC5sZW5ndGggPT09IDEpIHtcbiAgICAgIG1pbm9yID0gJzAnO1xuICAgICAgcGF0Y2ggPSAnMCc7XG4gICAgfSBlbHNlIGlmIChzcGxpdGVkLmxlbmd0aCA9PT0gMikge1xuICAgICAgcGF0Y2ggPSAnMCc7XG4gICAgfVxuICAgIHJldHVybiBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0ke2FscGhhT3JCZXRhT3JSYyA/ICcuJyArIGFscGhhT3JCZXRhT3JSYyA6ICcnfWA7XG4gIH07XG5cbn1cblxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgVXRpbHNUeXBlc2NyaXB0IHtcblxuICAvKipcbiAgICogUmVtb3ZlIFR5cGVTY3JpcHQgcmVnaW9uIGJsb2NrcyBieSB0aGVpciBuYW1lLCBpbmNsdWRpbmcgbmVzdGVkIHJlZ2lvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VDb2RlIC0gVGhlIFR5cGVTY3JpcHQgc291cmNlIGNvZGUgYXMgYSBzdHJpbmcuXG4gICAqIEBwYXJhbSByZWdpb25OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJlZ2lvbiB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIE1vZGlmaWVkIFR5cGVTY3JpcHQgY29kZSB3aXRob3V0IHRoZSBzcGVjaWZpZWQgcmVnaW9ucy5cbiAgICovXG4gIGV4cG9ydCBjb25zdCByZW1vdmVSZWdpb25CeU5hbWUgPSAoXG4gICAgc291cmNlQ29kZTogc3RyaW5nLFxuICAgIHJlZ2lvbk5hbWU6IHN0cmluZyxcbiAgKTogc3RyaW5nID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cblxuXG4gIGNvbnN0IGlzRXhwb3J0ZWQgPSAobm9kZTogTm9kZSk6IGJvb2xlYW4gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gZXh0cmFjdCBleHBvcnRzIGZyb20gYSBUeXBlU2NyaXB0IGZpbGVcbiAgICovXG4gIGV4cG9ydCBjb25zdCBleHBvcnRzRnJvbUZpbGUgPSAoXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgKToge1xuICAgIHR5cGU6XG4gICAgICB8ICdjbGFzcydcbiAgICAgIHwgJ2Z1bmN0aW9uJ1xuICAgICAgfCAnY29uc3QnXG4gICAgICB8ICdsZXQnXG4gICAgICB8ICd2YXInXG4gICAgICB8ICdlbnVtJ1xuICAgICAgfCAndHlwZSdcbiAgICAgIHwgJ2ludGVyZmFjZSdcbiAgICAgIHwgJ2RlZmF1bHQnXG4gICAgICB8ICdtb2R1bGUnXG4gICAgICB8ICduYW1lc3BhY2UnO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfVtdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuXG5cblxuICBleHBvcnQgY29uc3QgZXh0cmFjdERlZmF1bHRDbGFzc05hbWVGcm9tU3RyaW5nID0gKFxuICAgIHNvdXJjZUNvZGU6IHN0cmluZyxcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IGV4dHJhY3RDbGFzc05hbWVGcm9tU3RyaW5nID0gKHNvdXJjZUNvZGU6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IGV4dHJhY3RDbGFzc05hbWVzRnJvbUZpbGUgPSAoXG4gICAgYWJzb2x1dGVGaWxlUGF0aDogc3RyaW5nLFxuICApOiBzdHJpbmdbXSA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBleHRyYWN0RGVmYXVsdENsYXNzTmFtZUZyb21GaWxlID0gKGFic29sdXRlRmlsZVBhdGg6IHN0cmluZykgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGZvcm1hdEZpbGUgPSAoYWJzUGF0aFRvRmlsZTogc3RyaW5nKTogdm9pZCA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBmb3JtYXRBbGxGaWxlc0luc2lkZUZvbGRlciA9IChhYnNQYXRoVG9Gb2xkZXI6IHN0cmluZyk6IHZvaWQgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldFRhb25Db250ZXh0RnJvbUNvbnRlbnQgPSAoZmlsZUNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBnZXRUYW9uQ29udGV4dHNOYW1lc0Zyb21GaWxlID0gKFxuICAgIHRzQWJzRmlsZVBhdGg6IHN0cmluZyxcbiAgKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cbn1cblxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc0h0dHAge1xuXG4gIGV4cG9ydCBjb25zdCBzdGFydEh0dHBTZXJ2ZXIgPSBhc3luYyAoY3dkOiBzdHJpbmcsIHBvcnQ6IG51bWJlcikgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG59XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzTWQge1xuICAvKipcbiAgICogZXh0cmFjdCBhc3NldHMgcGF0aGVzIGZyb20gLm1kIGZpbGVcbiAgICovXG4gIGV4cG9ydCBjb25zdCBnZXRBc3NldHMgPSAobWRmaWxlQ29udGVudDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IGxpbmtzIHRvIG90aGVyIE1hcmtkb3duIGZpbGVzIGZyb20gYSBnaXZlbiBNYXJrZG93biBjb250ZW50LlxuICAgKiBAcGFyYW0gbWRmaWxlQ29udGVudFxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IGdldExpbmtzVG9PdGhlck1kRmlsZXMgPSAobWRmaWxlQ29udGVudDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1vdmUgYXNzZXQgcGF0aHMgdG8gYSBoaWdoZXIgZGlyZWN0b3J5IGxldmVsIGJ5IGFkZGluZyBcIi4uL1wiIGJlZm9yZSBlYWNoIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBtZGZpbGVDb250ZW50IC0gVGhlIGNvbnRlbnQgb2YgdGhlIC5tZCBmaWxlLlxuICAgKiBAcGFyYW0gbGV2ZWwgLSBUaGUgbnVtYmVyIG9mIGxldmVscyB0byBnbyB1cCAoZGVmYXVsdCBpcyAxKS5cbiAgICogQHJldHVybnMgVGhlIG1vZGlmaWVkIGNvbnRlbnQgd2l0aCB1cGRhdGVkIGFzc2V0IHBhdGhzLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IG1vdmVBc3NldHNQYXRoZXNUb0xldmVsID0gKFxuICAgIG1kZmlsZUNvbnRlbnQ6IHN0cmluZyxcbiAgICBsZXZlbCA9IDEsXG4gICk6IHN0cmluZyA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc1F1aWNrRml4ZXMge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZV9tb2R1bGVzL3NxbC5qcy9kaXN0L3NxbC13YXNtLmpzXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gcmVwbGFjZVNRTGxpdGVGYXVsdHlDb2RlKGNvbnRlbnRvZlNRTFdhc21KUzogc3RyaW5nKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi91dGlscy50cyJdfQ==
952
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBSyxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUE4dEIsbUJBQW1CLEVBQUksbUJBQW1CLEVBQWtCLGNBQWMsRUFBSSxjQUFjLEdBQUcsTUFBTSxZQUFZLENBQUMsQ0FBQSxLQUFLO0FBaUQ1MUIsTUFBTSxLQUFXLFFBQVEsQ0E0RHhCO0FBNURELFdBQWlCLFFBQVE7SUFFVix5QkFBZ0IsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO1FBQ2xELE9BQU8sVUFBVSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUM7SUFJVyxxQkFBWSxHQUFHLENBQzFCLE9BQWUsRUFDZixPQU1DLEVBQ0QsRUFBRTtRQUNGLE1BQU0sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQUEsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQzthQUN0QixJQUFJLEVBQUU7YUFDTixPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTFFLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxD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S0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBTUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFVLEVBQVcsRUFBRTtRQUM3QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQXFCRjs7T0FFRztJQUNVLCtCQUFlLEdBQUcsQ0FBQyxRQUFnQixFQUFnQixFQUFFO1FBQ3BFLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztR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QUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRVcsMENBQTBCLEdBQUcsQ0FBQyxlQUF1QixFQUFRLEVBQUU7UUFDOUUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBSVcseUNBQXlCLEdBQUcsQ0FBQyxXQUFtQixFQUFZLEVBQUU7UUFDN0UsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUVXLDRDQUE0QixHQUFHLENBQzFDLGFBQXFCLEVBQ1gsRUFBRTtRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUtXLGdEQUFnQyxHQUFHLENBQzlDLFdBQW1CLEVBQ3dCLEVBQUU7UUFDakQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFJVywrQkFBZSxHQUFHLENBQzdCLGNBQXNCLEVBQ3RCLGVBQXVCLEVBQ3ZCLEVBQUU7UUFDTixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFhRjs7T0FFRztJQUNVLDBDQUEwQixHQUFHLENBQ3hDLGFBQXFCLEVBQ3JCLFlBQW9CLEVBQ3BCLGVBQW9CLEVBQ3BCLGNBQWMsR0FBRyxJQUFJLEVBQ2YsRUFBRTtRQUNaLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0ws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TCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRVcsMkNBQTJCLEdBQUcsQ0FDekMsV0FBbUIsRUFDRCxFQUFFO1FBQ3hCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUVKLENBQUMsRUEvM0JnQixlQUFlLEtBQWYsZUFBZSxRQSszQi9CO0FBS0QsTUFBTSxLQUFXLFNBQVMsQ0FpQ3pCO0FBakNELFdBQWlCLFNBQVM7SUFFWCx5QkFBZSxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsSUFBWSxFQUFFLEVBQUU7UUFDckUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0FBRUosQ0FBQyxFQWpDZ0IsU0FBUyxLQUFULFNBQVMsUUFpQ3pCO0FBSUQsTUFBTSxLQUFXLE9BQU8sQ0FnR3ZCO0FBaEdELFdBQWlCLE9BQU87SUFDdEI7O09BRUc7SUFDVSxpQkFBUyxHQUFHLENBQUMsYUFBcUIsRUFBWSxFQUFFO1FBQy9ELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ1UsOEJBQXNCLEdBQUcsQ0FBQyxhQUFxQixFQUFZLEVBQUU7UUFDNUUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNVLCtCQUF1QixHQUFHLENBQ3JDLGFBQXFCLEVBQ3JCLEtBQUssR0FBRyxDQUFDLEVBQ0QsRUFBRTtRQUNkLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7QUFDSixDQUFDLEVBaEdnQixPQUFPLEtBQVAsT0FBTyxRQWdHdkI7QUFJRCxNQUFNLEtBQVcsZUFBZSxDQW1DL0I7QUFuQ0QsV0FBaUIsZUFBZTtJQUU5Qjs7O09BR0c7SUFDVSx3Q0FBd0IsR0FBRyxDQUN0QyxrQkFBMEIsRUFDbEIsRUFBRTtRQUNkLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBR0Y7O09BRUc7SUFDVSwwQ0FBMEIsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtRQUMxRSxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUNKLENBQUMsRUFuQ2dCLGVBQWUsS0FBZixlQUFlLFFBbUMvQjtBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgZnNlLCBIZWxwZXJzLCBwYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBfLCBDb3JlTW9kZWxzLCBVdGlscyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgICBjcmVhdGVQcmludGVyLCAgIGNyZWF0ZVNvdXJjZUZpbGUsICAgZmFjdG9yeSwgICBnZXRMZWFkaW5nQ29tbWVudFJhbmdlcywgICBpc0NsYXNzRGVjbGFyYXRpb24sICAgaXNTb3VyY2VGaWxlLCAgIE5vZGVBcnJheSwgICBTY3JpcHRLaW5kLCAgIFNjcmlwdFRhcmdldCwgICBTb3VyY2VGaWxlLCAgIFN0YXRlbWVudCwgICB0cmFuc2Zvcm0sICAgVHJhbnNmb3JtYXRpb25Db250ZXh0LCAgIHZpc2l0RWFjaENoaWxkLCAgIE5vZGUsICAgaXNGdW5jdGlvbkRlY2xhcmF0aW9uLCAgIGlzVmFyaWFibGVTdGF0ZW1lbnQsICAgaXNJZGVudGlmaWVyLCAgIE5vZGVGbGFncywgICBpc0VudW1EZWNsYXJhdGlvbiwgICBpc1R5cGVBbGlhc0RlY2xhcmF0aW9uLCAgIGlzSW50ZXJmYWNlRGVjbGFyYXRpb24sICAgaXNNb2R1bGVEZWNsYXJhdGlvbiwgICBpc0V4cG9ydEFzc2lnbm1lbnQsICAgZm9yRWFjaENoaWxkLCAgIERlY2xhcmF0aW9uLCAgIGdldENvbWJpbmVkTW9kaWZpZXJGbGFncywgICBNb2RpZmllckZsYWdzLCAgIFN5bnRheEtpbmQsICAgaXNWYXJpYWJsZURlY2xhcmF0aW9uLCAgIGlzQ2FsbEV4cHJlc3Npb24sICAgaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24sICAgaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbiwgICBpc1Byb3BlcnR5QXNzaWdubWVudCwgICBpc1N0cmluZ0xpdGVyYWwsICAgY2FuSGF2ZURlY29yYXRvcnMsICAgZ2V0RGVjb3JhdG9ycywgICB2aXNpdE5vZGUsICAgaXNFeHBvcnREZWNsYXJhdGlvbiwgICBpc0ltcG9ydERlY2xhcmF0aW9uLCAgIEV4cHJlc3Npb24sICAgaXNOYW1lZEltcG9ydHMsICAgaXNOYW1lZEV4cG9ydHMsIH0gZnJvbSAndHlwZXNjcmlwdCc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB0eXBlICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzTnBtIHtcblxuICBleHBvcnQgY29uc3QgaXNTcGVjaWFsVmVyc2lvbiA9ICh2ZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gQ29yZU1vZGVscy5OcG1TcGVjaWFsVmVyc2lvbnMuaW5jbHVkZXModmVyc2lvbik7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBjbGVhclZlcnNpb24gPSAoXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHJlbW92ZVByZWZpeGVzPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIGFscGhhLCBiZXRhLCByYywgbGF0ZXN0LCBuZXh0IGV0Yy5cbiAgICAgICAqL1xuICAgICAgcmVtb3ZlU3VmZml4PzogYm9vbGVhbjtcbiAgICB9LFxuICApID0+IHtcbiAgICBjb25zdCB7IHJlbW92ZVByZWZpeGVzLCByZW1vdmVTdWZmaXggfSA9IG9wdGlvbnMgfHwge307XG5cbiAgICBpZiAoIXZlcnNpb24gfHwgaXNTcGVjaWFsVmVyc2lvbih2ZXJzaW9uKSkge1xuICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgfVxuXG4gICAgdmVyc2lvbiA9ICh2ZXJzaW9uIHx8ICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChVdGlscy5lc2NhcGVTdHJpbmdGb3JSZWdFeCgndW5kZWZpbmVkJyksICdnJyksICcwJyk7XG5cbiAgICBpZiAocmVtb3ZlUHJlZml4ZXMpIHtcbiAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLnJlcGxhY2UoJ14nLCAnJykucmVwbGFjZSgnficsICcnKTtcbiAgICB9XG4gICAgbGV0IFttYWpvciwgbWlub3IsIHBhdGNoLCBhbHBoYU9yQmV0YU9yUmNdID0gdmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGlmIChyZW1vdmVTdWZmaXgpIHtcbiAgICAgIGFscGhhT3JCZXRhT3JSYyA9ICcnO1xuICAgIH1cbiAgICByZXR1cm4gZml4TWFqb3JWZXJOdW1iZXIoXG4gICAgICBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0ke2FscGhhT3JCZXRhT3JSYyA/ICcuJyArIGFscGhhT3JCZXRhT3JSYyA6ICcnfWAsXG4gICAgKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGZpeE1ham9yVmVyTnVtYmVyID0gKHZlcnNpb246IHN0cmluZykgPT4ge1xuICAgIGlmICghdmVyc2lvbiB8fCBpc1NwZWNpYWxWZXJzaW9uKHZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG4gICAgdmVyc2lvbiA9ICh2ZXJzaW9uIHx8ICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChVdGlscy5lc2NhcGVTdHJpbmdGb3JSZWdFeCgndW5kZWZpbmVkJyksICdnJyksICcwJyk7XG4gICAgY29uc3Qgc3BsaXRlZCA9IHZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBsZXQgW21ham9yLCBtaW5vciwgcGF0Y2gsIGFscGhhT3JCZXRhT3JSY10gPSBzcGxpdGVkO1xuICAgIGlmIChzcGxpdGVkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgbWlub3IgPSAnMCc7XG4gICAgICBwYXRjaCA9ICcwJztcbiAgICB9IGVsc2UgaWYgKHNwbGl0ZWQubGVuZ3RoID09PSAyKSB7XG4gICAgICBwYXRjaCA9ICcwJztcbiAgICB9XG4gICAgcmV0dXJuIGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofSR7YWxwaGFPckJldGFPclJjID8gJy4nICsgYWxwaGFPckJldGFPclJjIDogJyd9YDtcbiAgfTtcblxufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc1R5cGVzY3JpcHQge1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgVHlwZVNjcmlwdCByZWdpb24gYmxvY2tzIGJ5IHRoZWlyIG5hbWUsIGluY2x1ZGluZyBuZXN0ZWQgcmVnaW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZUNvZGUgLSBUaGUgVHlwZVNjcmlwdCBzb3VyY2UgY29kZSBhcyBhIHN0cmluZy5cbiAgICogQHBhcmFtIHJlZ2lvbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcmVnaW9uIHRvIHJlbW92ZS5cbiAgICogQHJldHVybnMgTW9kaWZpZWQgVHlwZVNjcmlwdCBjb2RlIHdpdGhvdXQgdGhlIHNwZWNpZmllZCByZWdpb25zLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IHJlbW92ZVJlZ2lvbkJ5TmFtZSA9IChcbiAgICBzb3VyY2VDb2RlOiBzdHJpbmcsXG4gICAgcmVnaW9uTmFtZTogc3RyaW5nLFxuICApOiBzdHJpbmcgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuXG5cbiAgY29uc3QgaXNFeHBvcnRlZCA9IChub2RlOiBOb2RlKTogYm9vbGVhbiA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG5cbiAgaW50ZXJmYWNlIEV4cG9ydEluZm8ge1xuICAgIHR5cGU6XG4gICAgICB8ICdjbGFzcydcbiAgICAgIHwgJ2Z1bmN0aW9uJ1xuICAgICAgfCAnY29uc3QnXG4gICAgICB8ICdsZXQnXG4gICAgICB8ICd2YXInXG4gICAgICB8ICdlbnVtJ1xuICAgICAgfCAndHlwZSdcbiAgICAgIHwgJ2ludGVyZmFjZSdcbiAgICAgIHwgJ2RlZmF1bHQnXG4gICAgICB8ICdtb2R1bGUnXG4gICAgICB8ICduYW1lc3BhY2UnO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBleHRyYWN0IGV4cG9ydHMgZnJvbSBhIFR5cGVTY3JpcHQgZmlsZVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IGV4cG9ydHNGcm9tRmlsZSA9IChmaWxlUGF0aDogc3RyaW5nKTogRXhwb3J0SW5mb1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGV4dHJhY3QgZXhwb3J0cyBmcm9tIGEgVHlwZVNjcmlwdCBmaWxlXG4gICAqL1xuICBleHBvcnQgY29uc3QgZXhwb3J0c0Zyb21Db250ZW50ID0gKGZpbGVDb250ZW50OiBzdHJpbmcpOiBFeHBvcnRJbmZvW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG5cblxuXG4gIGV4cG9ydCBjb25zdCBleHRyYWN0RGVmYXVsdENsYXNzTmFtZUZyb21TdHJpbmcgPSAoXG4gICAgc291cmNlQ29kZTogc3RyaW5nLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgZXh0cmFjdENsYXNzTmFtZUZyb21TdHJpbmcgPSAoc291cmNlQ29kZTogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuICBleHBvcnQgY29uc3QgZXh0cmFjdENsYXNzTmFtZXNGcm9tRmlsZSA9IChcbiAgICBhYnNvbHV0ZUZpbGVQYXRoOiBzdHJpbmcsXG4gICk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IGV4dHJhY3REZWZhdWx0Q2xhc3NOYW1lRnJvbUZpbGUgPSAoYWJzb2x1dGVGaWxlUGF0aDogc3RyaW5nKSA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZm9ybWF0RmlsZSA9IChhYnNQYXRoVG9GaWxlOiBzdHJpbmcpOiB2b2lkID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBmb3JtYXRBbGxGaWxlc0luc2lkZUZvbGRlciA9IChhYnNQYXRoVG9Gb2xkZXI6IHN0cmluZyk6IHZvaWQgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldFRhb25Db250ZXh0RnJvbUNvbnRlbnQgPSAoZmlsZUNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBnZXRUYW9uQ29udGV4dHNOYW1lc0Zyb21GaWxlID0gKFxuICAgIHRzQWJzRmlsZVBhdGg6IHN0cmluZyxcbiAgKTogc3RyaW5nW10gPT4ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuXG4gIGV4cG9ydCBjb25zdCBleHRyYWN0QW5ndWxhckNvbXBvbmVudFNlbGVjdG9ycyA9IChcbiAgICBmaWxlQWJzUGF0aDogc3RyaW5nLFxuICApOiB7IGNsYXNzTmFtZTogc3RyaW5nOyBzZWxlY3Rvcjogc3RyaW5nIH1bXSA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCB3cmFwV2l0aENvbW1lbnQgPSAoXG4gICAgb25lTGluZUNvbW1lbnQ6IHN0cmluZyxcbiAgICBhYnNEZXN0RmlsZVBhdGg6IHN0cmluZyxcbiAgKSA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gc2V0IG9yIGFkZCBhbiBleHBvcnRlZCBjb25zdCB3aXRoIGdpdmVuIG5hbWUgYW5kIHZhbHVlLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IHNldFZhbHVlVG9WYXJpYWJsZUluVHNGaWxlID0gKFxuICAgIHRzQWJzRmlsZVBhdGg6IHN0cmluZyxcbiAgICB2YXJpYWJsZU5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZU9mVmFyaWFibGU6IGFueSxcbiAgICBhZGRJZk5vdEV4aXN0cyA9IHRydWUsXG4gICk6IHZvaWQgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuXG5cblxuICBleHBvcnQgY2xhc3MgVHNJbXBvcnRFeHBvcnQge1xuICAgIHR5cGU6ICdleHBvcnQnIHwgJ2ltcG9ydCcgfCAnYXN5bmMtaW1wb3J0JyB8ICdyZXF1aXJlJztcbiAgICAvKipcbiAgICAgKiBPUklHTkFMXG4gICAgICogTmFtZSBvZiB0aGUgZmlsZSB0aGF0IGlzIGJlaW5nIGltcG9ydGVkL2V4cG9ydGVkXG4gICAgICogd2l0aCBwYXJlbnRoZXNpcyBpbmNsdWRlZFxuICAgICAqL1xuICAgIGVtYmVkZGVkUGF0aFRvRmlsZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIHNhbWUgYXMgY2xlYW5FbWJlZGRlZFBhdGhUb0ZpbGUgYnV0IHdpdGhvdXQgcXVvdGVzIChwYXJlbnRoZXNpcylcbiAgICAgKi9cbiAgICBjbGVhbkVtYmVkZGVkUGF0aFRvRmlsZTogc3RyaW5nO1xuICAgIHJlbW92ZVN0YXJ0RW5kUXVvdGVzKHN0cjogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL15bJ1wiYF0vLCAnJykucmVwbGFjZSgvWydcImBdJC8sICcnKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUkVTVUxUIE9GIFBST0NFU1NJTkdcbiAgICAgKi9cbiAgICBlbWJlZGRlZFBhdGhUb0ZpbGVSZXN1bHQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgY2xlYW5FbWJlZGRlZFBhdGhUb0ZpbGVcbiAgICAgKi9cbiAgICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICAgIGlzSXNvbW9ycGhpYz86IGJvb2xlYW47XG4gICAgc3RhcnRSb3c6IG51bWJlcjtcbiAgICBzdGFydENvbDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogaXQgd2lsbCBleHRyYWN0IHBhcnQgb2YgdGhlIGZpbGUgY29udGVudFxuICAgICAqIHRoYXQgaXMgYmV0d2VlbiBzdGFydFJvdywgc3RhcnRDb2wgYW5kIGVuZFJvdywgZW5kQ29sXG4gICAgICogYW5kIGNvbnRhaW5zIGltcG9ydC9leHBvcnQvcmVxdWlyZSBzdGF0ZW1lbnRcbiAgICAgKi9cbiAgICBnZXRTdHJpbmdQYXJ0RnJvbSh3aG9sZUNvbnRlbnRPZkZpbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICBjb25zdCBsaW5lcyA9IHdob2xlQ29udGVudE9mRmlsZS5zcGxpdCgnXFxuJyk7XG5cblxuICAgICAgY29uc3Qgc3RhcnRSb3dJbmRleCA9IHRoaXMuc3RhcnRSb3cgLSAxO1xuICAgICAgY29uc3QgZW5kUm93SW5kZXggPSB0aGlzLmVuZFJvdyAtIDE7XG5cblxuICAgICAgaWYgKHN0YXJ0Um93SW5kZXggPj0gbGluZXMubGVuZ3RoIHx8IGVuZFJvd0luZGV4ID49IGxpbmVzLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JvdyBpbmRleCBvdXQgb2YgYm91bmRzLicpO1xuICAgICAgfVxuXG4gICAgICBsZXQgZXh0cmFjdGVkTGluZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSBzdGFydFJvd0luZGV4OyBpIDw9IGVuZFJvd0luZGV4OyBpKyspIHtcbiAgICAgICAgbGV0IGxpbmUgPSBsaW5lc1tpXTtcblxuICAgICAgICBpZiAoaSA9PT0gc3RhcnRSb3dJbmRleCAmJiBpID09PSBlbmRSb3dJbmRleCkge1xuXG4gICAgICAgICAgZXh0cmFjdGVkTGluZXMucHVzaChsaW5lLnN1YnN0cmluZyh0aGlzLnN0YXJ0Q29sIC0gMSwgdGhpcy5lbmRDb2wpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpID09PSBzdGFydFJvd0luZGV4KSB7XG5cbiAgICAgICAgICBleHRyYWN0ZWRMaW5lcy5wdXNoKGxpbmUuc3Vic3RyaW5nKHRoaXMuc3RhcnRDb2wgLSAxKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gZW5kUm93SW5kZXgpIHtcblxuICAgICAgICAgIGV4dHJhY3RlZExpbmVzLnB1c2gobGluZS5zdWJzdHJpbmcoMCwgdGhpcy5lbmRDb2wpKTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgIGV4dHJhY3RlZExpbmVzLnB1c2gobGluZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGV4dHJhY3RlZExpbmVzLmpvaW4oJ1xcbicpO1xuICAgIH1cblxuICAgIGVuZFJvdzogbnVtYmVyO1xuICAgIGVuZENvbDogbnVtYmVyO1xuICAgIHBhcmVudGhlc2lzVHlwZTogJ3NpbmdsZScgfCAnZG91YmxlJyB8ICd0aWNzJztcbiAgICB3cmFwSW5QYXJlbnRoZXNpcyhzdHI6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50aGVzaXNUeXBlID09PSAnc2luZ2xlJ1xuICAgICAgICA/IGAnJHtzdHJ9J2BcbiAgICAgICAgOiB0aGlzLnBhcmVudGhlc2lzVHlwZSA9PT0gJ2RvdWJsZSdcbiAgICAgICAgICA/IGBcIiR7c3RyfVwiYFxuICAgICAgICAgIDogYFxcYCR7c3RyfVxcYGA7XG4gICAgfVxuXG4gICAgaW1wb3J0RWxlbWVudHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHR5cGU6ICdleHBvcnQnIHwgJ2ltcG9ydCcgfCAnYXN5bmMtaW1wb3J0JyB8ICdyZXF1aXJlJyxcbiAgICAgIGVtYmVkZGVkUGF0aFRvRmlsZTogc3RyaW5nLFxuICAgICAgc3RhcnQ6IHRzLkxpbmVBbmRDaGFyYWN0ZXIsXG4gICAgICBlbmQ6IHRzLkxpbmVBbmRDaGFyYWN0ZXIsXG4gICAgICBwYXJlbnRoZXNpc1R5cGU6ICdzaW5nbGUnIHwgJ2RvdWJsZScgfCAndGljcycsXG4gICAgICBpbXBvcnRFbGVtZW50czogc3RyaW5nW10gPSBbXSxcbiAgICApIHtcbiAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICB0aGlzLmlzSXNvbW9ycGhpYyA9IGZhbHNlO1xuICAgICAgdGhpcy5lbWJlZGRlZFBhdGhUb0ZpbGUgPSBlbWJlZGRlZFBhdGhUb0ZpbGU7XG4gICAgICB0aGlzLmNsZWFuRW1iZWRkZWRQYXRoVG9GaWxlID1cbiAgICAgICAgdGhpcy5yZW1vdmVTdGFydEVuZFF1b3RlcyhlbWJlZGRlZFBhdGhUb0ZpbGUpO1xuICAgICAgdGhpcy5lbWJlZGRlZFBhdGhUb0ZpbGVSZXN1bHQgPSBlbWJlZGRlZFBhdGhUb0ZpbGU7XG4gICAgICB0aGlzLnN0YXJ0Um93ID0gc3RhcnQubGluZSArIDE7IC8vIFR5cGVTY3JpcHQgbGluZXMgYXJlIHplcm8tYmFzZWRcbiAgICAgIHRoaXMuc3RhcnRDb2wgPSBzdGFydC5jaGFyYWN0ZXIgKyAxO1xuICAgICAgdGhpcy5lbmRSb3cgPSBlbmQubGluZSArIDE7XG4gICAgICB0aGlzLmVuZENvbCA9IGVuZC5jaGFyYWN0ZXIgKyAxO1xuICAgICAgdGhpcy5wYXJlbnRoZXNpc1R5cGUgPSBwYXJlbnRoZXNpc1R5cGU7XG4gICAgICB0aGlzLmltcG9ydEVsZW1lbnRzID0gaW1wb3J0RWxlbWVudHM7XG4gICAgfVxuICB9XG5cblxuXG4gIGNvbnN0IGdldFF1b3RlVHlwZSA9ICh0ZXh0OiBzdHJpbmcpOiAnc2luZ2xlJyB8ICdkb3VibGUnIHwgJ3RpY3MnID0+IHtcbiAgICBpZiAodGV4dC5zdGFydHNXaXRoKCdgJykpIHJldHVybiAndGljcyc7XG4gICAgaWYgKHRleHQuc3RhcnRzV2l0aChcIidcIikpIHJldHVybiAnc2luZ2xlJztcbiAgICByZXR1cm4gJ2RvdWJsZSc7XG4gIH07XG5cblxuICBjb25zdCBleHRyYWN0SW1wb3J0RXhwb3J0RWxlbWVudHMgPSAobm9kZTogdHMuTm9kZSk6IHN0cmluZ1tdID0+IHtcbiAgICBjb25zdCBlbGVtZW50czogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChpc0ltcG9ydERlY2xhcmF0aW9uKG5vZGUpICYmIG5vZGUuaW1wb3J0Q2xhdXNlKSB7XG5cbiAgICAgIGlmIChcbiAgICAgICAgbm9kZS5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5ncyAmJlxuICAgICAgICBpc05hbWVkSW1wb3J0cyhub2RlLmltcG9ydENsYXVzZS5uYW1lZEJpbmRpbmdzKVxuICAgICAgKSB7XG4gICAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgICAgLi4ubm9kZS5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5ncy5lbGVtZW50cy5tYXAoZWwgPT4gZWwubmFtZS50ZXh0KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRXhwb3J0RGVjbGFyYXRpb24obm9kZSkgJiYgbm9kZS5leHBvcnRDbGF1c2UpIHtcblxuICAgICAgaWYgKGlzTmFtZWRFeHBvcnRzKG5vZGUuZXhwb3J0Q2xhdXNlKSkge1xuICAgICAgICBlbGVtZW50cy5wdXNoKC4uLm5vZGUuZXhwb3J0Q2xhdXNlLmVsZW1lbnRzLm1hcChlbCA9PiBlbC5uYW1lLnRleHQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudHM7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IHJlY29nbml6ZUltcG9ydHNGcm9tRmlsZSA9IChcbiAgICBmaWxlQWJzUEF0aDogc3RyaW5nLFxuICApOiBUc0ltcG9ydEV4cG9ydFtdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IHJlY29nbml6ZUltcG9ydHNGcm9tQ29udGVudCA9IChcbiAgICBmaWxlQ29udGVudDogc3RyaW5nLFxuICApOiBUc0ltcG9ydEV4cG9ydFtdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cbn1cblxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc0h0dHAge1xuXG4gIGV4cG9ydCBjb25zdCBzdGFydEh0dHBTZXJ2ZXIgPSBhc3luYyAoY3dkOiBzdHJpbmcsIHBvcnQ6IG51bWJlcikgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc01kIHtcbiAgLyoqXG4gICAqIGV4dHJhY3QgYXNzZXRzIHBhdGhlcyBmcm9tIC5tZCBmaWxlXG4gICAqL1xuICBleHBvcnQgY29uc3QgZ2V0QXNzZXRzID0gKG1kZmlsZUNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdCBsaW5rcyB0byBvdGhlciBNYXJrZG93biBmaWxlcyBmcm9tIGEgZ2l2ZW4gTWFya2Rvd24gY29udGVudC5cbiAgICogQHBhcmFtIG1kZmlsZUNvbnRlbnRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBnZXRMaW5rc1RvT3RoZXJNZEZpbGVzID0gKG1kZmlsZUNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBNb3ZlIGFzc2V0IHBhdGhzIHRvIGEgaGlnaGVyIGRpcmVjdG9yeSBsZXZlbCBieSBhZGRpbmcgXCIuLi9cIiBiZWZvcmUgZWFjaCBwYXRoLlxuICAgKlxuICAgKiBAcGFyYW0gbWRmaWxlQ29udGVudCAtIFRoZSBjb250ZW50IG9mIHRoZSAubWQgZmlsZS5cbiAgICogQHBhcmFtIGxldmVsIC0gVGhlIG51bWJlciBvZiBsZXZlbHMgdG8gZ28gdXAgKGRlZmF1bHQgaXMgMSkuXG4gICAqIEByZXR1cm5zIFRoZSBtb2RpZmllZCBjb250ZW50IHdpdGggdXBkYXRlZCBhc3NldCBwYXRocy5cbiAgICovXG4gIGV4cG9ydCBjb25zdCBtb3ZlQXNzZXRzUGF0aGVzVG9MZXZlbCA9IChcbiAgICBtZGZpbGVDb250ZW50OiBzdHJpbmcsXG4gICAgbGV2ZWwgPSAxLFxuICApOiBzdHJpbmcgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG59XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzUXVpY2tGaXhlcyB7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBub2RlX21vZHVsZXMvc3FsLmpzL2Rpc3Qvc3FsLXdhc20uanNcbiAgICovXG4gIGV4cG9ydCBjb25zdCByZXBsYWNlU1FMbGl0ZUZhdWx0eUNvZGUgPSAoXG4gICAgY29udGVudG9mU1FMV2FzbUpTOiBzdHJpbmcsXG4gICk6IHN0cmluZyA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuICAvKipcbiAgICogZm9yIHNvbWUgcmVhc29uIGVsZWN0cm9uIGlzIGJlaW5nIGJ1bmRsZWQgLSBhbmQgaXQgaXMgbm90IG5lZWRlZCBmb3IgY2xpXG4gICAqL1xuICBleHBvcnQgY29uc3QgcmVwbGFjZUVsZWN0cm9uV2l0aE5vdGhpbmcgPSAoanNDb250ZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvdXRpbHMudHMiXX0=