@1money/component-ui 0.0.90 → 0.0.91

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 (353) hide show
  1. package/es/business/Dialog/BaseDialog/BaseDialog.d.ts +3 -0
  2. package/es/business/Dialog/BaseDialog/BaseDialog.js +131 -0
  3. package/es/business/Dialog/BaseDialog/constants.d.ts +12 -0
  4. package/es/business/Dialog/BaseDialog/constants.js +13 -0
  5. package/es/business/Dialog/BaseDialog/index.d.ts +4 -0
  6. package/es/business/Dialog/BaseDialog/index.js +5 -0
  7. package/es/business/Dialog/BaseDialog/interface.d.ts +69 -0
  8. package/es/business/Dialog/BaseDialog/interface.js +2 -0
  9. package/es/business/Dialog/BaseDialog/style/BaseDialog.css +72 -0
  10. package/es/business/Dialog/BaseDialog/style/css.js +2 -0
  11. package/es/business/Dialog/BaseDialog/style/index.d.ts +1 -0
  12. package/es/business/Dialog/BaseDialog/style/index.js +2 -0
  13. package/es/business/Dialog/Descriptions/Descriptions.d.ts +3 -0
  14. package/es/business/Dialog/Descriptions/Descriptions.js +102 -0
  15. package/es/business/Dialog/Descriptions/constants.d.ts +16 -0
  16. package/es/business/Dialog/Descriptions/constants.js +24 -0
  17. package/es/business/Dialog/Descriptions/index.d.ts +4 -0
  18. package/es/business/Dialog/Descriptions/index.js +5 -0
  19. package/es/business/Dialog/Descriptions/interface.d.ts +58 -0
  20. package/es/business/Dialog/{ResultDialog → Descriptions}/interface.js +1 -1
  21. package/es/business/Dialog/Descriptions/style/Descriptions.css +60 -0
  22. package/es/business/Dialog/{ResultDialog → Descriptions}/style/css.js +2 -2
  23. package/es/business/Dialog/Descriptions/style/index.d.ts +1 -0
  24. package/es/business/Dialog/{ResultDialog → Descriptions}/style/index.js +2 -2
  25. package/es/business/Dialog/DetailsDialog/DetailsDialog.d.ts +3 -0
  26. package/es/business/Dialog/DetailsDialog/DetailsDialog.js +101 -0
  27. package/es/business/Dialog/DetailsDialog/index.d.ts +4 -0
  28. package/es/business/Dialog/DetailsDialog/index.js +5 -0
  29. package/es/business/Dialog/DetailsDialog/interface.d.ts +31 -0
  30. package/es/business/Dialog/DetailsDialog/interface.js +2 -0
  31. package/es/business/Dialog/DetailsDialog/style/DetailsDialog.css +43 -0
  32. package/es/business/Dialog/DetailsDialog/style/css.js +2 -0
  33. package/es/business/Dialog/DetailsDialog/style/index.d.ts +1 -0
  34. package/es/business/Dialog/DetailsDialog/style/index.js +2 -0
  35. package/es/business/Dialog/FormDialog/FormDialog.d.ts +5 -0
  36. package/es/business/Dialog/FormDialog/FormDialog.js +121 -0
  37. package/es/business/Dialog/FormDialog/index.d.ts +6 -0
  38. package/es/business/Dialog/FormDialog/index.js +6 -0
  39. package/es/business/Dialog/FormDialog/interface.d.ts +53 -0
  40. package/es/business/Dialog/FormDialog/interface.js +2 -0
  41. package/{lib/business/Dialog/TransactionDialog/style/TransactionDialog.css → es/business/Dialog/FormDialog/style/FormDialog.css} +11 -11
  42. package/es/business/Dialog/FormDialog/style/css.js +2 -0
  43. package/es/business/Dialog/FormDialog/style/index.d.ts +1 -0
  44. package/es/business/Dialog/FormDialog/style/index.js +2 -0
  45. package/es/business/Dialog/VerificationDialog/VerificationDialog.js +249 -95
  46. package/es/business/Dialog/VerificationDialog/constants.d.ts +8 -35
  47. package/es/business/Dialog/VerificationDialog/constants.js +8 -30
  48. package/es/business/Dialog/VerificationDialog/index.d.ts +2 -1
  49. package/es/business/Dialog/VerificationDialog/index.js +3 -2
  50. package/es/business/Dialog/VerificationDialog/interface.d.ts +42 -106
  51. package/es/business/Dialog/VerificationDialog/style/VerificationDialog.css +17 -6
  52. package/es/business/Dialog/index.d.ts +5 -2
  53. package/es/business/Dialog/index.js +8 -3
  54. package/es/business/Dialog/variants/DeleteDialog.d.ts +3 -0
  55. package/es/business/Dialog/variants/DeleteDialog.js +20 -0
  56. package/es/business/Dialog/variants/FailureDialog.d.ts +3 -0
  57. package/es/business/Dialog/variants/FailureDialog.js +20 -0
  58. package/es/business/Dialog/variants/LoadingDialog.d.ts +33 -0
  59. package/es/business/Dialog/variants/LoadingDialog.js +189 -0
  60. package/es/business/Dialog/variants/PendingDialog.d.ts +3 -0
  61. package/es/business/Dialog/variants/PendingDialog.js +19 -0
  62. package/es/business/Dialog/variants/SuccessDialog.d.ts +3 -0
  63. package/es/business/Dialog/variants/SuccessDialog.js +19 -0
  64. package/es/business/Dialog/variants/index.d.ts +10 -0
  65. package/es/business/Dialog/variants/index.js +9 -0
  66. package/es/business/Dialog/variants/style/LoadingDialog.css +62 -0
  67. package/es/business/Dialog/variants/style/css.js +2 -0
  68. package/es/business/Dialog/variants/style/index.d.ts +1 -0
  69. package/es/business/Dialog/variants/style/index.js +2 -0
  70. package/es/business/FieldList/index.d.ts +30 -0
  71. package/es/business/FieldList/index.js +59 -0
  72. package/es/business/FieldList/style/FieldList.css +89 -0
  73. package/es/business/FieldList/style/css.js +2 -0
  74. package/es/business/FieldList/style/index.d.ts +1 -0
  75. package/es/business/FieldList/style/index.js +2 -0
  76. package/es/business/FormPage/FormPage.d.ts +4 -0
  77. package/es/business/FormPage/FormPage.js +92 -0
  78. package/es/business/FormPage/index.d.ts +4 -0
  79. package/es/business/FormPage/index.js +5 -0
  80. package/es/business/FormPage/interface.d.ts +53 -0
  81. package/es/business/FormPage/interface.js +2 -0
  82. package/es/business/Select/Asset/AssetSelect.js +5 -1
  83. package/es/business/Select/Country/CountrySelect.js +5 -1
  84. package/es/business/Select/Currency/CurrencySelect.js +5 -1
  85. package/es/business/Select/Network/NetworkSelect.js +5 -1
  86. package/es/business/Select/PaymentMethod/PaymentMethodSelect.js +5 -1
  87. package/es/business/index.d.ts +3 -0
  88. package/es/business/index.js +3 -1
  89. package/es/business/shared/formCore/BaseProForm.d.ts +40 -0
  90. package/es/business/shared/formCore/BaseProForm.js +87 -0
  91. package/es/business/shared/formCore/useRelayedFormRef.d.ts +16 -0
  92. package/es/business/shared/formCore/useRelayedFormRef.js +43 -0
  93. package/es/business/shared/formCore/useSubmitAction.d.ts +11 -0
  94. package/es/business/shared/formCore/useSubmitAction.js +92 -0
  95. package/es/components/ActionBar/ActionBar.d.ts +3 -0
  96. package/es/components/ActionBar/ActionBar.js +115 -0
  97. package/es/components/ActionBar/constants.d.ts +29 -0
  98. package/es/components/ActionBar/constants.js +30 -0
  99. package/es/components/ActionBar/index.d.ts +4 -0
  100. package/es/components/ActionBar/index.js +5 -0
  101. package/es/components/ActionBar/interface.d.ts +82 -0
  102. package/es/components/ActionBar/interface.js +2 -0
  103. package/es/components/ActionBar/style/ActionBar.css +44 -0
  104. package/es/components/ActionBar/style/css.js +2 -0
  105. package/es/components/ActionBar/style/index.d.ts +1 -0
  106. package/es/components/ActionBar/style/index.js +2 -0
  107. package/es/components/Dialog/Dialog.js +13 -8
  108. package/es/components/Dialog/interface.d.ts +11 -0
  109. package/es/components/Dialog/style/Dialog.css +7 -4
  110. package/es/{business/Dialog/ResultDialog/style/ResultDialog.css → components/Dialog/style/DialogBare.css} +10 -5
  111. package/es/components/Dialog/style/css.js +2 -1
  112. package/es/components/Dialog/style/index.d.ts +1 -0
  113. package/es/components/Dialog/style/index.js +2 -1
  114. package/es/components/FormLayout/FormLayout.d.ts +25 -0
  115. package/es/components/FormLayout/FormLayout.js +128 -0
  116. package/es/components/FormLayout/config.d.ts +96 -0
  117. package/es/components/FormLayout/config.js +93 -0
  118. package/es/components/FormLayout/context.d.ts +9 -0
  119. package/es/components/FormLayout/context.js +13 -0
  120. package/es/components/FormLayout/index.d.ts +7 -0
  121. package/es/components/FormLayout/index.js +7 -0
  122. package/es/components/FormLayout/interface.d.ts +51 -0
  123. package/es/components/FormLayout/interface.js +2 -0
  124. package/es/components/FormLayout/style/FormLayout.css +110 -0
  125. package/es/components/FormLayout/style/css.js +2 -0
  126. package/es/components/FormLayout/style/index.d.ts +1 -0
  127. package/es/components/FormLayout/style/index.js +2 -0
  128. package/es/components/Grid/Col.d.ts +1 -0
  129. package/es/components/Grid/Col.js +2 -1
  130. package/es/components/Grid/Row.d.ts +1 -0
  131. package/es/components/Grid/Row.js +2 -1
  132. package/es/components/Input/Input/Input.css +1 -1
  133. package/es/components/Input/Input/Input.js +16 -4
  134. package/es/components/Input/Mask/Mask.js +3 -2
  135. package/es/components/Input/interface.d.ts +5 -0
  136. package/es/components/ProForm/ProForm.js +24 -13
  137. package/es/components/ProForm/ProFormItem.js +2 -1
  138. package/es/components/ProForm/core/constants.d.ts +1 -1
  139. package/es/components/ProForm/core/constants.js +5 -2
  140. package/es/components/ProForm/style/ProForm.css +1 -1
  141. package/es/components/Select/Select.js +8 -3
  142. package/es/index.css +1 -1
  143. package/es/index.d.ts +5 -1
  144. package/es/index.js +3 -1
  145. package/lib/business/Dialog/BaseDialog/BaseDialog.d.ts +3 -0
  146. package/lib/business/Dialog/BaseDialog/BaseDialog.js +140 -0
  147. package/lib/business/Dialog/BaseDialog/constants.d.ts +12 -0
  148. package/lib/business/Dialog/BaseDialog/constants.js +19 -0
  149. package/lib/business/Dialog/BaseDialog/index.d.ts +4 -0
  150. package/lib/business/Dialog/BaseDialog/index.js +30 -0
  151. package/lib/business/Dialog/BaseDialog/interface.d.ts +69 -0
  152. package/lib/business/Dialog/BaseDialog/interface.js +6 -0
  153. package/lib/business/Dialog/BaseDialog/style/BaseDialog.css +72 -0
  154. package/lib/business/Dialog/BaseDialog/style/css.js +4 -0
  155. package/lib/business/Dialog/BaseDialog/style/index.d.ts +1 -0
  156. package/lib/business/Dialog/BaseDialog/style/index.js +4 -0
  157. package/lib/business/Dialog/Descriptions/Descriptions.d.ts +3 -0
  158. package/lib/business/Dialog/Descriptions/Descriptions.js +112 -0
  159. package/lib/business/Dialog/Descriptions/constants.d.ts +16 -0
  160. package/lib/business/Dialog/Descriptions/constants.js +30 -0
  161. package/lib/business/Dialog/Descriptions/index.d.ts +4 -0
  162. package/lib/business/Dialog/Descriptions/index.js +30 -0
  163. package/lib/business/Dialog/Descriptions/interface.d.ts +58 -0
  164. package/lib/business/Dialog/{ResultDialog → Descriptions}/interface.js +1 -1
  165. package/lib/business/Dialog/Descriptions/style/Descriptions.css +60 -0
  166. package/lib/business/Dialog/{ResultDialog → Descriptions}/style/css.js +2 -2
  167. package/lib/business/Dialog/Descriptions/style/index.d.ts +1 -0
  168. package/lib/business/Dialog/{ResultDialog → Descriptions}/style/index.js +2 -2
  169. package/lib/business/Dialog/DetailsDialog/DetailsDialog.d.ts +3 -0
  170. package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +111 -0
  171. package/lib/business/Dialog/DetailsDialog/index.d.ts +4 -0
  172. package/lib/business/Dialog/DetailsDialog/index.js +30 -0
  173. package/lib/business/Dialog/DetailsDialog/interface.d.ts +31 -0
  174. package/lib/business/Dialog/DetailsDialog/interface.js +6 -0
  175. package/lib/business/Dialog/DetailsDialog/style/DetailsDialog.css +43 -0
  176. package/lib/business/Dialog/DetailsDialog/style/css.js +4 -0
  177. package/lib/business/Dialog/DetailsDialog/style/index.d.ts +1 -0
  178. package/lib/business/Dialog/DetailsDialog/style/index.js +4 -0
  179. package/lib/business/Dialog/FormDialog/FormDialog.d.ts +5 -0
  180. package/lib/business/Dialog/FormDialog/FormDialog.js +130 -0
  181. package/lib/business/Dialog/FormDialog/index.d.ts +6 -0
  182. package/lib/business/Dialog/FormDialog/index.js +52 -0
  183. package/lib/business/Dialog/FormDialog/interface.d.ts +53 -0
  184. package/lib/business/Dialog/FormDialog/interface.js +6 -0
  185. package/{es/business/Dialog/TransactionDialog/style/TransactionDialog.css → lib/business/Dialog/FormDialog/style/FormDialog.css} +11 -11
  186. package/lib/business/Dialog/FormDialog/style/css.js +4 -0
  187. package/lib/business/Dialog/FormDialog/style/index.d.ts +1 -0
  188. package/lib/business/Dialog/FormDialog/style/index.js +4 -0
  189. package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +250 -92
  190. package/lib/business/Dialog/VerificationDialog/constants.d.ts +8 -35
  191. package/lib/business/Dialog/VerificationDialog/constants.js +9 -31
  192. package/lib/business/Dialog/VerificationDialog/index.d.ts +2 -1
  193. package/lib/business/Dialog/VerificationDialog/index.js +4 -17
  194. package/lib/business/Dialog/VerificationDialog/interface.d.ts +42 -106
  195. package/lib/business/Dialog/VerificationDialog/style/VerificationDialog.css +17 -6
  196. package/lib/business/Dialog/index.d.ts +5 -2
  197. package/lib/business/Dialog/index.js +31 -9
  198. package/lib/business/Dialog/variants/DeleteDialog.d.ts +3 -0
  199. package/lib/business/Dialog/variants/DeleteDialog.js +26 -0
  200. package/lib/business/Dialog/variants/FailureDialog.d.ts +3 -0
  201. package/lib/business/Dialog/variants/FailureDialog.js +26 -0
  202. package/lib/business/Dialog/variants/LoadingDialog.d.ts +33 -0
  203. package/lib/business/Dialog/variants/LoadingDialog.js +199 -0
  204. package/lib/business/Dialog/variants/PendingDialog.d.ts +3 -0
  205. package/lib/business/Dialog/variants/PendingDialog.js +25 -0
  206. package/lib/business/Dialog/variants/SuccessDialog.d.ts +3 -0
  207. package/lib/business/Dialog/variants/SuccessDialog.js +25 -0
  208. package/lib/business/Dialog/variants/index.d.ts +10 -0
  209. package/lib/business/Dialog/variants/index.js +41 -0
  210. package/lib/business/Dialog/variants/style/LoadingDialog.css +62 -0
  211. package/lib/business/Dialog/variants/style/css.js +4 -0
  212. package/lib/business/Dialog/variants/style/index.d.ts +1 -0
  213. package/lib/business/Dialog/variants/style/index.js +4 -0
  214. package/lib/business/FieldList/index.d.ts +30 -0
  215. package/lib/business/FieldList/index.js +67 -0
  216. package/lib/business/FieldList/style/FieldList.css +89 -0
  217. package/lib/business/FieldList/style/css.js +4 -0
  218. package/lib/business/FieldList/style/index.d.ts +1 -0
  219. package/lib/business/FieldList/style/index.js +4 -0
  220. package/lib/business/FormPage/FormPage.d.ts +4 -0
  221. package/lib/business/FormPage/FormPage.js +98 -0
  222. package/lib/business/FormPage/index.d.ts +4 -0
  223. package/lib/business/FormPage/index.js +30 -0
  224. package/lib/business/FormPage/interface.d.ts +53 -0
  225. package/lib/business/FormPage/interface.js +6 -0
  226. package/lib/business/Select/Asset/AssetSelect.js +5 -1
  227. package/lib/business/Select/Country/CountrySelect.js +5 -1
  228. package/lib/business/Select/Currency/CurrencySelect.js +5 -1
  229. package/lib/business/Select/Network/NetworkSelect.js +5 -1
  230. package/lib/business/Select/PaymentMethod/PaymentMethodSelect.js +5 -1
  231. package/lib/business/index.d.ts +3 -0
  232. package/lib/business/index.js +27 -1
  233. package/lib/business/shared/formCore/BaseProForm.d.ts +40 -0
  234. package/lib/business/shared/formCore/BaseProForm.js +93 -0
  235. package/lib/business/shared/formCore/useRelayedFormRef.d.ts +16 -0
  236. package/lib/business/shared/formCore/useRelayedFormRef.js +49 -0
  237. package/lib/business/shared/formCore/useSubmitAction.d.ts +11 -0
  238. package/lib/business/shared/formCore/useSubmitAction.js +99 -0
  239. package/lib/components/ActionBar/ActionBar.d.ts +3 -0
  240. package/lib/components/ActionBar/ActionBar.js +124 -0
  241. package/lib/components/ActionBar/constants.d.ts +29 -0
  242. package/lib/components/ActionBar/constants.js +36 -0
  243. package/lib/components/ActionBar/index.d.ts +4 -0
  244. package/lib/components/ActionBar/index.js +30 -0
  245. package/lib/components/ActionBar/interface.d.ts +82 -0
  246. package/lib/components/ActionBar/interface.js +6 -0
  247. package/lib/components/ActionBar/style/ActionBar.css +44 -0
  248. package/lib/components/ActionBar/style/css.js +4 -0
  249. package/lib/components/ActionBar/style/index.d.ts +1 -0
  250. package/lib/components/ActionBar/style/index.js +4 -0
  251. package/lib/components/Dialog/Dialog.js +13 -8
  252. package/lib/components/Dialog/interface.d.ts +11 -0
  253. package/lib/components/Dialog/style/Dialog.css +7 -4
  254. package/lib/{business/Dialog/ResultDialog/style/ResultDialog.css → components/Dialog/style/DialogBare.css} +10 -5
  255. package/lib/components/Dialog/style/css.js +2 -1
  256. package/lib/components/Dialog/style/index.d.ts +1 -0
  257. package/lib/components/Dialog/style/index.js +2 -1
  258. package/lib/components/FormLayout/FormLayout.d.ts +25 -0
  259. package/lib/components/FormLayout/FormLayout.js +138 -0
  260. package/lib/components/FormLayout/config.d.ts +96 -0
  261. package/lib/components/FormLayout/config.js +99 -0
  262. package/lib/components/FormLayout/context.d.ts +9 -0
  263. package/lib/components/FormLayout/context.js +19 -0
  264. package/lib/components/FormLayout/index.d.ts +7 -0
  265. package/lib/components/FormLayout/index.js +102 -0
  266. package/lib/components/FormLayout/interface.d.ts +51 -0
  267. package/lib/components/FormLayout/interface.js +6 -0
  268. package/lib/components/FormLayout/style/FormLayout.css +110 -0
  269. package/lib/components/FormLayout/style/css.js +4 -0
  270. package/lib/components/FormLayout/style/index.d.ts +1 -0
  271. package/lib/components/FormLayout/style/index.js +4 -0
  272. package/lib/components/Grid/Col.d.ts +1 -0
  273. package/lib/components/Grid/Col.js +2 -1
  274. package/lib/components/Grid/Row.d.ts +1 -0
  275. package/lib/components/Grid/Row.js +2 -1
  276. package/lib/components/Input/Input/Input.css +1 -1
  277. package/lib/components/Input/Input/Input.js +16 -4
  278. package/lib/components/Input/Mask/Mask.js +3 -2
  279. package/lib/components/Input/interface.d.ts +5 -0
  280. package/lib/components/ProForm/ProForm.js +27 -16
  281. package/lib/components/ProForm/ProFormItem.js +2 -1
  282. package/lib/components/ProForm/core/constants.d.ts +1 -1
  283. package/lib/components/ProForm/core/constants.js +5 -2
  284. package/lib/components/ProForm/style/ProForm.css +1 -1
  285. package/lib/components/Select/Select.js +8 -3
  286. package/lib/index.css +1 -1
  287. package/lib/index.d.ts +5 -1
  288. package/lib/index.js +33 -1
  289. package/package.json +39 -9
  290. package/scripts/mcp-server/examples.generated.json +84 -0
  291. package/scripts/mcp-server/index.generated.json +743 -152
  292. package/es/business/Dialog/ResultDialog/ResultDialog.d.ts +0 -3
  293. package/es/business/Dialog/ResultDialog/ResultDialog.js +0 -126
  294. package/es/business/Dialog/ResultDialog/constants.d.ts +0 -27
  295. package/es/business/Dialog/ResultDialog/constants.js +0 -24
  296. package/es/business/Dialog/ResultDialog/index.d.ts +0 -3
  297. package/es/business/Dialog/ResultDialog/index.js +0 -4
  298. package/es/business/Dialog/ResultDialog/interface.d.ts +0 -95
  299. package/es/business/Dialog/ResultDialog/presets.d.ts +0 -178
  300. package/es/business/Dialog/ResultDialog/presets.js +0 -139
  301. package/es/business/Dialog/ResultDialog/style/index.d.ts +0 -1
  302. package/es/business/Dialog/TransactionDialog/TransactionDialog.d.ts +0 -3
  303. package/es/business/Dialog/TransactionDialog/TransactionDialog.js +0 -174
  304. package/es/business/Dialog/TransactionDialog/constants.d.ts +0 -34
  305. package/es/business/Dialog/TransactionDialog/constants.js +0 -33
  306. package/es/business/Dialog/TransactionDialog/index.d.ts +0 -3
  307. package/es/business/Dialog/TransactionDialog/index.js +0 -4
  308. package/es/business/Dialog/TransactionDialog/interface.d.ts +0 -116
  309. package/es/business/Dialog/TransactionDialog/interface.js +0 -2
  310. package/es/business/Dialog/TransactionDialog/presets.d.ts +0 -89
  311. package/es/business/Dialog/TransactionDialog/presets.js +0 -62
  312. package/es/business/Dialog/TransactionDialog/style/css.js +0 -2
  313. package/es/business/Dialog/TransactionDialog/style/index.d.ts +0 -1
  314. package/es/business/Dialog/TransactionDialog/style/index.js +0 -2
  315. package/es/business/Dialog/VerificationDialog/ResendRow.d.ts +0 -14
  316. package/es/business/Dialog/VerificationDialog/ResendRow.js +0 -65
  317. package/es/business/Dialog/VerificationDialog/hooks/index.d.ts +0 -4
  318. package/es/business/Dialog/VerificationDialog/hooks/index.js +0 -3
  319. package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +0 -50
  320. package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +0 -138
  321. package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +0 -26
  322. package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +0 -103
  323. package/lib/business/Dialog/ResultDialog/ResultDialog.d.ts +0 -3
  324. package/lib/business/Dialog/ResultDialog/ResultDialog.js +0 -132
  325. package/lib/business/Dialog/ResultDialog/constants.d.ts +0 -27
  326. package/lib/business/Dialog/ResultDialog/constants.js +0 -30
  327. package/lib/business/Dialog/ResultDialog/index.d.ts +0 -3
  328. package/lib/business/Dialog/ResultDialog/index.js +0 -40
  329. package/lib/business/Dialog/ResultDialog/interface.d.ts +0 -95
  330. package/lib/business/Dialog/ResultDialog/presets.d.ts +0 -178
  331. package/lib/business/Dialog/ResultDialog/presets.js +0 -145
  332. package/lib/business/Dialog/ResultDialog/style/index.d.ts +0 -1
  333. package/lib/business/Dialog/TransactionDialog/TransactionDialog.d.ts +0 -3
  334. package/lib/business/Dialog/TransactionDialog/TransactionDialog.js +0 -180
  335. package/lib/business/Dialog/TransactionDialog/constants.d.ts +0 -34
  336. package/lib/business/Dialog/TransactionDialog/constants.js +0 -39
  337. package/lib/business/Dialog/TransactionDialog/index.d.ts +0 -3
  338. package/lib/business/Dialog/TransactionDialog/index.js +0 -40
  339. package/lib/business/Dialog/TransactionDialog/interface.d.ts +0 -116
  340. package/lib/business/Dialog/TransactionDialog/interface.js +0 -6
  341. package/lib/business/Dialog/TransactionDialog/presets.d.ts +0 -89
  342. package/lib/business/Dialog/TransactionDialog/presets.js +0 -68
  343. package/lib/business/Dialog/TransactionDialog/style/css.js +0 -4
  344. package/lib/business/Dialog/TransactionDialog/style/index.d.ts +0 -1
  345. package/lib/business/Dialog/TransactionDialog/style/index.js +0 -4
  346. package/lib/business/Dialog/VerificationDialog/ResendRow.d.ts +0 -14
  347. package/lib/business/Dialog/VerificationDialog/ResendRow.js +0 -71
  348. package/lib/business/Dialog/VerificationDialog/hooks/index.d.ts +0 -4
  349. package/lib/business/Dialog/VerificationDialog/hooks/index.js +0 -20
  350. package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +0 -50
  351. package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +0 -145
  352. package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +0 -26
  353. package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +0 -110
@@ -13,6 +13,7 @@ var _react = require("@floating-ui/react");
13
13
  var _react2 = require("react");
14
14
  var _useControlledState5 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
15
15
  var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
16
+ var _context = require("../FormLayout/context");
16
17
  var _Icons = require("../Icons");
17
18
  var _Spinner = require("../Spinner");
18
19
  var _Typography = require("../Typography");
@@ -29,6 +30,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
29
30
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
30
31
  var DEFAULT_MAX_HEIGHT = 320;
31
32
  var Select = exports.Select = function Select(props) {
33
+ var _a;
32
34
  var _props$className = props.className,
33
35
  className = _props$className === void 0 ? '' : _props$className,
34
36
  _props$prefixCls = props.prefixCls,
@@ -44,8 +46,7 @@ var Select = exports.Select = function Select(props) {
44
46
  options = _props$options === void 0 ? [] : _props$options,
45
47
  value = props.value,
46
48
  defaultValue = props.defaultValue,
47
- _props$size = props.size,
48
- size = _props$size === void 0 ? 'large' : _props$size,
49
+ sizeProp = props.size,
49
50
  _props$status = props.status,
50
51
  status = _props$status === void 0 ? 'default' : _props$status,
51
52
  _props$variant = props.variant,
@@ -103,6 +104,10 @@ var Select = exports.Select = function Select(props) {
103
104
  renderOptionContent = props.renderOptionContent,
104
105
  renderValue = props.renderValue,
105
106
  ref = props.ref;
107
+ // Bare-control size default: an explicit `size` wins; inside a FormLayout
108
+ // the variant's controlSize applies; elsewhere 'large'.
109
+ var contextSize = (0, _context.useFormControlSize)();
110
+ var size = (_a = sizeProp !== null && sizeProp !== void 0 ? sizeProp : contextSize) !== null && _a !== void 0 ? _a : 'large';
106
111
  var disabled = disabledProp || loading;
107
112
  var interactive = !disabled && !readOnly;
108
113
  var classes = (0, _classnames["default"])(prefixCls);
@@ -587,4 +592,4 @@ var Select = exports.Select = function Select(props) {
587
592
  };
588
593
  Select.displayName = 'Select';
589
594
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
590
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl91c2VDb250cm9sbGVkU3RhdGU1IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VFdmVudENhbGxiYWNrIiwiX0ljb25zIiwiX1NwaW5uZXIiLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfU2VsZWN0RmllbGRTaGVsbCIsIl9TZWxlY3RPcHRpb25Db250ZW50IiwiX1NlbGVjdFNlYXJjaENvbnRyb2wiLCJfU2VsZWN0VmFsdWVDb250ZW50IiwiX3VzZVNlbGVjdFNoZWxsMiIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJERUZBVUxUX01BWF9IRUlHSFQiLCJTZWxlY3QiLCJleHBvcnRzIiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInN0eWxlIiwiaWQiLCJuYW1lIiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9wcm9wcyRvcHRpb25zIiwib3B0aW9ucyIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiZGlzYWJsZWRQcm9wIiwiX3Byb3BzJHJlYWRPbmx5IiwicmVhZE9ubHkiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwiX3Byb3BzJGZpbHRlcklucHV0QXV0IiwiZmlsdGVySW5wdXRBdXRvRm9jdXMiLCJsYWJlbCIsImxhYmVsQ2xhc3NOYW1lIiwiaW5mbyIsImRlc2NyaXB0aW9uIiwiZmVlZGJhY2siLCJfcHJvcHMkcmVxdWlyZWQiLCJyZXF1aXJlZCIsInByZWZpeCIsIl9wcm9wcyRlbXB0eUNvbnRlbnQiLCJlbXB0eUNvbnRlbnQiLCJwYW5lbEhlYWRlciIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiZ3JvdXBMYWJlbENsYXNzTmFtZSIsIl9wcm9wcyRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsIm9mZnNldCIsImFuaW1hdGlvbiIsIm9uQ2hhbmdlIiwib25PcGVuQ2hhbmdlIiwib25TZWFyY2hDaGFuZ2UiLCJvbkJsdXIiLCJmaWx0ZXJPcHRpb24iLCJyZW5kZXJPcHRpb24iLCJyZW5kZXJPcHRpb25Db250ZW50IiwicmVuZGVyVmFsdWUiLCJyZWYiLCJpbnRlcmFjdGl2ZSIsImNsYXNzZXMiLCJyb290Q2xhc3NuYW1lcyIsImF1dG9JZCIsInVzZUlkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwib3B0aW9uSWRQcmVmaXgiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub3JtYWxpemVkU2l6ZSIsIm5vcm1hbGl6ZVNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJ1c2VNZW1vIiwibm9ybWFsaXplT3B0aW9uR3JvdXBzIiwiYWxsRmxhdE9wdGlvbnMiLCJmbGF0dGVuT3B0aW9uR3JvdXBzIiwidmlzaWJsZU9wdGlvbkdyb3VwcyIsImZpbHRlck9wdGlvbkdyb3VwcyIsInZpc2libGVGbGF0T3B0aW9ucyIsInNlbGVjdGVkT3B0aW9ucyIsImdldFNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdGVkSW5kZXgiLCJsZW5ndGgiLCJtYXRjaGVkSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJoYXNTZWxlY3Rpb24iLCJsaXN0UmVmIiwidXNlUmVmIiwibGlzdENvbnRlbnRSZWYiLCJmbG9hdGluZ1JlZiIsInRyaWdnZXJSZWYiLCJzZWFyY2hJbnB1dFJlZiIsImhhbmRsZVRyaWdnZXJSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJ1c2VTZWxlY3RTaGVsbCIsImlubmVyT3BlbiIsImlzT3BlbiIsImhhbmRsZU9wZW5DaGFuZ2UiLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJsaXN0TmF2aWdhdGlvbiIsInVzZUxpc3ROYXZpZ2F0aW9uIiwib25OYXZpZ2F0ZSIsImVuYWJsZWQiLCJsb29wIiwidmlydHVhbCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImdldFJlZmVyZW5jZVByb3BzIiwiZ2V0RmxvYXRpbmdQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImZpcnN0RW5hYmxlZEluZGV4IiwidXNlRWZmZWN0IiwicHJldiIsIl9hIiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwic2xpY2UiLCJzZXRTZWFyY2hJbnB1dFJlZiIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJnZXRNdWx0aXBsZVZhbHVlIiwiaW5jbHVkZXMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJLRVlCT0FSRCIsIkVOVEVSIiwiU1BBQ0UiLCJwcmV2ZW50RGVmYXVsdCIsIkFSUk9XX0RPV04iLCJBUlJPV19VUCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaW5kZXgiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJmaW5kRW5hYmxlZEluZGV4IiwiZGlyZWN0aW9uIiwic3RhcnQiLCJzdGVwIiwiY2FuZGlkYXRlIiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIm5leHQiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJmb250U2l6ZSIsImdldEZvbnRTaXplIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJpY29uU2l6ZSIsImFjdGl2ZU9wdGlvbklkIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJfanN4cyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJjaGlsZHJlbiIsImFzc2lnbiIsInR5cGUiLCJvbktleURvd24iLCJfanN4IiwiU2VsZWN0VmFsdWVDb250ZW50Iiwib25SZW1vdmUiLCJvblJlbW92ZUNsaWNrIiwib25SZW1vdmVNb3VzZURvd24iLCJTcGlubmVyIiwic3Ryb2tlV2lkdGgiLCJJY29ucyIsImNvbG9yIiwicGFuZWxOb2RlIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsImFjdGl2ZURlc2NlbmRhbnQiLCJUeXBvZ3JhcGh5Qm9keSIsIlNFTEVDVF9UWVBPR1JBUEhZIiwiZW1wdHkiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsIlR5cG9ncmFwaHlMYWJlbCIsImdyb3VwTGFiZWwiLCJzdHJvbmciLCJvcHRpb25GbGF0SW5kZXgiLCJzZWxlY3RlZCIsImlzT3B0aW9uU2VsZWN0ZWQiLCJhY3RpdmUiLCJvcHRpb25NZXRhIiwiZXh0cmFjdE9wdGlvblRleHQiLCJyb2xlIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJjb250ZW50IiwiRmxvYXRpbmdQb3J0YWwiLCJkaXNwbGF5TmFtZSIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQU9BLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBQyx1QkFBQSxDQUFBVixPQUFBO0FBZ0JBLElBQUFXLGlCQUFBLEdBQUFQLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBWSxvQkFBQSxHQUFBUixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQWEsb0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFjLG1CQUFBLEdBQUFWLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBZSxnQkFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFVBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIsTUFBQSxHQUFBakIsT0FBQTtBQWNBQSxPQUFBO0FBQWlCLFNBQUFrQix5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVQsd0JBQUFT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TyxTQUFTLEVBQUUyRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUF5SixRQUFBLEVBQUdsTDtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBLENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUcsSUFBQWlMLGVBQUEsRUFBQ29DLHFCQUFjLEVBQUE7UUFBQXhDLFFBQUEsRUFBRWE7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEclAsTUFBTSxDQUFDaVIsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUFqUixPQUFBLDJCQUVmLElBQUFrUixZQUFJLEVBQUNuUixNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IFNlbGVjdE9wdGlvbkNvbnRlbnQgZnJvbSAnLi9TZWxlY3RPcHRpb25Db250ZW50JztcbmltcG9ydCBTZWxlY3RTZWFyY2hDb250cm9sIGZyb20gJy4vU2VsZWN0U2VhcmNoQ29udHJvbCc7XG5pbXBvcnQgU2VsZWN0VmFsdWVDb250ZW50IGZyb20gJy4vU2VsZWN0VmFsdWVDb250ZW50JztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRGb250U2l6ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgcmVhZE9ubHkgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBtYXhWaXNpYmxlVmFsdWVzLCBzZWFyY2hhYmxlID0gZmFsc2UsIHNlYXJjaFBsYWNlaG9sZGVyID0gJ1NlYXJjaCcsIHNlYXJjaFZhbHVlLCBkZWZhdWx0U2VhcmNoVmFsdWUgPSAnJywgZmlsdGVySW5wdXRBdXRvRm9jdXMgPSB0cnVlLCBsYWJlbCwgbGFiZWxDbGFzc05hbWUsIGluZm8sIGRlc2NyaXB0aW9uLCBmZWVkYmFjaywgcmVxdWlyZWQgPSB0cnVlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxIZWFkZXIsIHBhbmVsRm9vdGVyLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBhbGxvd0Rlc2VsZWN0ID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGdyb3VwTGFiZWxDbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9mZnNldCwgYW5pbWF0aW9uLCBvbkNoYW5nZSwgb25PcGVuQ2hhbmdlLCBvblNlYXJjaENoYW5nZSwgb25CbHVyLCBmaWx0ZXJPcHRpb24sIHJlbmRlck9wdGlvbiwgcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWUsIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IG9wdGlvbklkUHJlZml4ID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuOiBpbm5lck9wZW4sIHNldE9wZW46IGhhbmRsZU9wZW5DaGFuZ2UsIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICB2aXJ0dWFsOiBzZWFyY2hhYmxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICBjb25zdCBzZXRTZWFyY2hJbnB1dFJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChub2RlICYmIGlubmVyT3BlbiAmJiBmaWx0ZXJJbnB1dEF1dG9Gb2N1cykge1xuICAgICAgICAgICAgbm9kZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbiwgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoIWludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgaWYgKGlubmVyT3BlbiAmJlxuICAgICAgICAgICAgICAgIGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZmluZEVuYWJsZWRJbmRleCA9IHVzZUV2ZW50Q2FsbGJhY2soKGN1cnJlbnQsIGRpcmVjdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB2b2lkIDAgPyBjdXJyZW50IDogKGRpcmVjdGlvbiA9PT0gMSA/IC0xIDogbGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gbGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9ICgoc3RhcnQgKyBkaXJlY3Rpb24gKiBzdGVwKSAlIGxlbmd0aCArIGxlbmd0aCkgJSBsZW5ndGg7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbY2FuZGlkYXRlXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAxKTtcbiAgICAgICAgICAgIGlmIChuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgLTEpO1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUikge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgc2l6ZTogbm9ybWFsaXplZFNpemUsXG4gICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAvLyBBIGN1c3RvbSBgcmVuZGVyVmFsdWVgIHByb2R1Y2VzIGl0cyBvd24gc2luZ2xlLWxpbmUgc3VtbWFyeSwgc28gdGhlXG4gICAgICAgIC8vIG11bHRpLXZhbHVlIGNoaXAgbGF5b3V0IChoZWlnaHQ6YXV0byArIHZlcnRpY2FsIHBhZGRpbmcgKyBmbGV4LXdyYXApXG4gICAgICAgIC8vIG11c3Qgbm90IGtpY2sgaW4gYW5kIGluZmxhdGUgdGhlIHRyaWdnZXIgaGVpZ2h0LlxuICAgICAgICAhcmVuZGVyVmFsdWUpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJyksIHJlYWRPbmx5ICYmICFkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLXJlYWRvbmx5JykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnbGFyZ2UnID8gMjAgOiAxNjtcbiAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IHNlYXJjaGFibGUgJiYgaW5uZXJPcGVuICYmIGFjdGl2ZUluZGV4ICE9PSBudWxsXG4gICAgICAgID8gYCR7b3B0aW9uSWRQcmVmaXh9LSR7YWN0aXZlSW5kZXh9YFxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCByZWFkT25seTogcmVhZE9ubHksIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgbGFiZWxDbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcmVhZG9ubHknOiByZWFkT25seSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZWFkT25seVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSksIGlzTW91bnRlZCAmJiBpbnRlcmFjdGl2ZSAmJiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsTm9kZSA9IChfanN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQ6IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgaW5pdGlhbEZvY3VzOiAtMSwgcmV0dXJuRm9jdXM6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNldEZsb2F0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3BhbmVsJyksIHBhbmVsQ2xhc3NOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgdHJhbnNpdGlvblN0eWxlcyksXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2V0U2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaXplPXtub3JtYWxpemVkU2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogXCJzbWFsbFwiLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBhY3RpdmVEZXNjZW5kYW50OiBhY3RpdmVPcHRpb25JZCwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogW3BhbmVsSGVhZGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlcicpLCBjaGlsZHJlbjogcGFuZWxIZWFkZXIgfSkpLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmxhdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJywgZ3JvdXBMYWJlbENsYXNzTmFtZSksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25NZXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IG9wdGlvbkZsYXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRJdGVtUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7b3B0aW9uSWRQcmVmaXh9LSR7b3B0aW9uRmxhdEluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCBjb250ZW50OiByZW5kZXJPcHRpb25Db250ZW50ID09PSBudWxsIHx8IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbmRlck9wdGlvbkNvbnRlbnQob3B0aW9uLCBvcHRpb25NZXRhKSB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkpXSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
595
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl91c2VDb250cm9sbGVkU3RhdGU1IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VFdmVudENhbGxiYWNrIiwiX2NvbnRleHQiLCJfSWNvbnMiLCJfU3Bpbm5lciIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9hIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImlkIiwibmFtZSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5IiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkb3B0aW9ucyIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsInNpemVQcm9wIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImRpc2FibGVkUHJvcCIsIl9wcm9wcyRyZWFkT25seSIsInJlYWRPbmx5IiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiX3Byb3BzJG11bHRpcGxlIiwibXVsdGlwbGUiLCJtYXhWaXNpYmxlVmFsdWVzIiwiX3Byb3BzJHNlYXJjaGFibGUiLCJzZWFyY2hhYmxlIiwiX3Byb3BzJHNlYXJjaFBsYWNlaG9sIiwic2VhcmNoUGxhY2Vob2xkZXIiLCJzZWFyY2hWYWx1ZSIsIl9wcm9wcyRkZWZhdWx0U2VhcmNoViIsImRlZmF1bHRTZWFyY2hWYWx1ZSIsIl9wcm9wcyRmaWx0ZXJJbnB1dEF1dCIsImZpbHRlcklucHV0QXV0b0ZvY3VzIiwibGFiZWwiLCJsYWJlbENsYXNzTmFtZSIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkZW1wdHlDb250ZW50IiwiZW1wdHlDb250ZW50IiwicGFuZWxIZWFkZXIiLCJwYW5lbEZvb3RlciIsIm9wZW4iLCJfcHJvcHMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9wcm9wcyRwb3J0YWwiLCJwb3J0YWwiLCJfcHJvcHMkYWxsb3dEZXNlbGVjdCIsImFsbG93RGVzZWxlY3QiLCJwYW5lbENsYXNzTmFtZSIsIm9wdGlvbkNsYXNzTmFtZSIsImdyb3VwTGFiZWxDbGFzc05hbWUiLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJvZmZzZXQiLCJhbmltYXRpb24iLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uQ29udGVudCIsInJlbmRlclZhbHVlIiwicmVmIiwiY29udGV4dFNpemUiLCJ1c2VGb3JtQ29udHJvbFNpemUiLCJpbnRlcmFjdGl2ZSIsImNsYXNzZXMiLCJyb290Q2xhc3NuYW1lcyIsImF1dG9JZCIsInVzZUlkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwib3B0aW9uSWRQcmVmaXgiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub3JtYWxpemVkU2l6ZSIsIm5vcm1hbGl6ZVNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJ1c2VNZW1vIiwibm9ybWFsaXplT3B0aW9uR3JvdXBzIiwiYWxsRmxhdE9wdGlvbnMiLCJmbGF0dGVuT3B0aW9uR3JvdXBzIiwidmlzaWJsZU9wdGlvbkdyb3VwcyIsImZpbHRlck9wdGlvbkdyb3VwcyIsInZpc2libGVGbGF0T3B0aW9ucyIsInNlbGVjdGVkT3B0aW9ucyIsImdldFNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdGVkSW5kZXgiLCJsZW5ndGgiLCJtYXRjaGVkSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJoYXNTZWxlY3Rpb24iLCJsaXN0UmVmIiwidXNlUmVmIiwibGlzdENvbnRlbnRSZWYiLCJmbG9hdGluZ1JlZiIsInRyaWdnZXJSZWYiLCJzZWFyY2hJbnB1dFJlZiIsImhhbmRsZVRyaWdnZXJSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJ1c2VTZWxlY3RTaGVsbCIsImlubmVyT3BlbiIsImlzT3BlbiIsImhhbmRsZU9wZW5DaGFuZ2UiLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJsaXN0TmF2aWdhdGlvbiIsInVzZUxpc3ROYXZpZ2F0aW9uIiwib25OYXZpZ2F0ZSIsImVuYWJsZWQiLCJsb29wIiwidmlydHVhbCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImdldFJlZmVyZW5jZVByb3BzIiwiZ2V0RmxvYXRpbmdQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImZpcnN0RW5hYmxlZEluZGV4IiwidXNlRWZmZWN0IiwicHJldiIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInNsaWNlIiwic2V0U2VhcmNoSW5wdXRSZWYiLCJub3RpZnlCbHVySWZPdXRzaWRlIiwicmVsYXRlZFRhcmdldCIsImV2ZW50IiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImhhbmRsZU9wdGlvbkJsdXIiLCJjb21taXRDaGFuZ2UiLCJuZXh0VmFsdWUiLCJuZXh0T3B0aW9uIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwidG9nZ2xlTXVsdGlwbGVWYWx1ZSIsIm5leHRPcHRpb25zIiwiZ2V0T3B0aW9uc0J5VmFsdWVzIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiZ2V0TXVsdGlwbGVWYWx1ZSIsImluY2x1ZGVzIiwicmVtb3ZlTXVsdGlwbGVWYWx1ZSIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiS0VZQk9BUkQiLCJFTlRFUiIsIlNQQUNFIiwicHJldmVudERlZmF1bHQiLCJBUlJPV19ET1dOIiwiQVJST1dfVVAiLCJoYW5kbGVJdGVtTW91c2VFbnRlciIsImluZGV4IiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiZmluZEVuYWJsZWRJbmRleCIsImRpcmVjdGlvbiIsInN0YXJ0Iiwic3RlcCIsImNhbmRpZGF0ZSIsImhhbmRsZVNlYXJjaEtleURvd24iLCJuZXh0IiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwiZm9udFNpemUiLCJnZXRGb250U2l6ZSIsInZhbHVlTGFiZWxDbGFzcyIsImlzTXVsdGlwbGVWYWx1ZUZpbGxlZCIsInRyaWdnZXJDbGFzc05hbWUiLCJqb2luQ2xzIiwiaWNvblNpemUiLCJhY3RpdmVPcHRpb25JZCIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJhc3NpZ24iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwiSWNvbnMiLCJjb2xvciIsInBhbmVsTm9kZSIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwibW9kYWwiLCJpbml0aWFsRm9jdXMiLCJyZXR1cm5Gb2N1cyIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJhY3RpdmVEZXNjZW5kYW50IiwiVHlwb2dyYXBoeUJvZHkiLCJTRUxFQ1RfVFlQT0dSQVBIWSIsImVtcHR5IiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJUeXBvZ3JhcGh5TGFiZWwiLCJncm91cExhYmVsIiwic3Ryb25nIiwib3B0aW9uRmxhdEluZGV4Iiwic2VsZWN0ZWQiLCJpc09wdGlvblNlbGVjdGVkIiwiYWN0aXZlIiwib3B0aW9uTWV0YSIsImV4dHJhY3RPcHRpb25UZXh0Iiwicm9sZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJTZWxlY3RPcHRpb25Db250ZW50IiwiY29udGVudCIsIkZsb2F0aW5nUG9ydGFsIiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFPQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQVgsT0FBQTtBQWdCQSxJQUFBWSxpQkFBQSxHQUFBUixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQWEsb0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFjLG9CQUFBLEdBQUFWLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBZSxtQkFBQSxHQUFBWCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQWdCLGdCQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLFVBQUEsR0FBQWpCLE9BQUE7QUFDQSxJQUFBa0IsTUFBQSxHQUFBbEIsT0FBQTtBQWNBQSxPQUFBO0FBQWlCLFNBQUFtQix5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5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c0JBQUMsQ0FBQTtvQkFFckQsQ0FBQSxDQUFBLEtBQUEzRyxNQUFBLENBckNPbUcsS0FBSyxDQUFDaEUsR0FBRyxPQUFBbkMsTUFBQSxDQUFJckMsTUFBTSxDQUFDMUcsS0FBSyxDQUFFLENBc0M1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQWxFTWtQLEtBQUssQ0FBQ2hFLEdBQUcsQ0FtRWI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSDtVQUFBLENBQUEsQ0FDRyxFQUNMNUksV0FBVyxJQUFJLElBQUksSUFDbEIsSUFBQXVMLGVBQUEsRUFBQSxLQUFBLEVBQUE7WUFBS3pPLFNBQVMsRUFBRTZFLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFBQXdKLFFBQUEsRUFBR25MO1VBQVcsQ0FBQSxDQUN0RDtRQUFBLENBQUEsQ0FBQTtNQUNHLENBQUEsQ0FFVDtNQUVELE9BQU9LLE1BQU0sR0FBRyxJQUFBa0wsZUFBQSxFQUFDb0MscUJBQWMsRUFBQTtRQUFBeEMsUUFBQSxFQUFFYTtNQUFTLENBQUEsQ0FBa0IsR0FBR0EsU0FBUztJQUMxRSxDQUFDLENBQUMsQ0FBRTtFQUFBLENBQUEsQ0FDYTtBQUV2QixDQUFDO0FBRUR2UCxNQUFNLENBQUNtUixXQUFXLEdBQUcsUUFBUTtBQUFDLElBQUFDLFFBQUEsR0FBQW5SLE9BQUEsMkJBRWYsSUFBQW9SLFlBQUksRUFBQ3JSLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VUeXBlYWhlYWQsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlSWQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlQ29udHJvbGxlZFN0YXRlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyB1c2VGb3JtQ29udHJvbFNpemUgfSBmcm9tICcuLi9Gb3JtTGF5b3V0L2NvbnRleHQnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IFNlbGVjdE9wdGlvbkNvbnRlbnQgZnJvbSAnLi9TZWxlY3RPcHRpb25Db250ZW50JztcbmltcG9ydCBTZWxlY3RTZWFyY2hDb250cm9sIGZyb20gJy4vU2VsZWN0U2VhcmNoQ29udHJvbCc7XG5pbXBvcnQgU2VsZWN0VmFsdWVDb250ZW50IGZyb20gJy4vU2VsZWN0VmFsdWVDb250ZW50JztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRGb250U2l6ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplOiBzaXplUHJvcCwgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIHJlYWRPbmx5ID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gdHJ1ZSwgbGFiZWwsIGxhYmVsQ2xhc3NOYW1lLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gdHJ1ZSwgcHJlZml4LCBlbXB0eUNvbnRlbnQgPSAnTm8gb3B0aW9ucycsIHBhbmVsSGVhZGVyLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBwYW5lbENsYXNzTmFtZSwgb3B0aW9uQ2xhc3NOYW1lLCBncm91cExhYmVsQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9NQVhfSEVJR0hULCBvZmZzZXQsIGFuaW1hdGlvbiwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlck9wdGlvbkNvbnRlbnQsIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICAvLyBCYXJlLWNvbnRyb2wgc2l6ZSBkZWZhdWx0OiBhbiBleHBsaWNpdCBgc2l6ZWAgd2luczsgaW5zaWRlIGEgRm9ybUxheW91dFxuICAgIC8vIHRoZSB2YXJpYW50J3MgY29udHJvbFNpemUgYXBwbGllczsgZWxzZXdoZXJlICdsYXJnZScuXG4gICAgY29uc3QgY29udGV4dFNpemUgPSB1c2VGb3JtQ29udHJvbFNpemUoKTtcbiAgICBjb25zdCBzaXplID0gKF9hID0gc2l6ZVByb3AgIT09IG51bGwgJiYgc2l6ZVByb3AgIT09IHZvaWQgMCA/IHNpemVQcm9wIDogY29udGV4dFNpemUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdsYXJnZSc7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBpbnRlcmFjdGl2ZSA9ICFkaXNhYmxlZCAmJiAhcmVhZE9ubHk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHJvb3RDbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb25JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZmVlZGJhY2tJZCA9IHVzZUlkKCk7XG4gICAgY29uc3Qgb3B0aW9uSWRQcmVmaXggPSB1c2VJZCgpO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAobXVsdGlwbGUgPyBbXSA6IHVuZGVmaW5lZCksIHZhbHVlKTtcbiAgICBjb25zdCBbaW5uZXJTZWFyY2hWYWx1ZSwgc2V0SW5uZXJTZWFyY2hWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFNlYXJjaFZhbHVlLCBzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgYWxsT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVPcHRpb25Hcm91cHMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHZpc2libGVPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IChzZWFyY2hhYmxlXG4gICAgICAgID8gZmlsdGVyT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcywgaW5uZXJTZWFyY2hWYWx1ZSwgZmlsdGVyT3B0aW9uKVxuICAgICAgICA6IGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHMsIGZpbHRlck9wdGlvbiwgaW5uZXJTZWFyY2hWYWx1ZSwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IHZpc2libGVGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3Vwcyh2aXNpYmxlT3B0aW9uR3JvdXBzKSwgW3Zpc2libGVPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGdldFNlbGVjdGVkT3B0aW9ucyhhbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGUpLCBbYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgeyBpc09wZW46IGlubmVyT3Blbiwgc2V0T3BlbjogaGFuZGxlT3BlbkNoYW5nZSwgcmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXMsIHRyYW5zaXRpb25TdHlsZXMsIGlzTW91bnRlZCwgYmFzZUludGVyYWN0aW9ucywgfSA9IHVzZVNlbGVjdFNoZWxsKHtcbiAgICAgICAgb3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHJlYWRPbmx5LFxuICAgICAgICBsaXN0TWF4SGVpZ2h0LFxuICAgICAgICBhbmltYXRpb24sXG4gICAgICAgIG9mZnNldCxcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWZlcmVuY2UgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBoYW5kbGVUcmlnZ2VyUmVmKG5vZGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZsb2F0aW5nID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldEZsb2F0aW5nKG5vZGUpO1xuICAgICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICBjb25zdCBsaXN0TmF2aWdhdGlvbiA9IHVzZUxpc3ROYXZpZ2F0aW9uKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIG9uTmF2aWdhdGU6IHNldEFjdGl2ZUluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4sXG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIHZpcnR1YWw6IHNlYXJjaGFibGUsXG4gICAgfSk7XG4gICAgY29uc3QgdHlwZWFoZWFkID0gdXNlVHlwZWFoZWFkKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZjogbGlzdENvbnRlbnRSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4gJiYgIXNlYXJjaGFibGUsXG4gICAgICAgIG9uTWF0Y2g6IHNldEFjdGl2ZUluZGV4LFxuICAgIH0pO1xuICAgIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMsIGdldEl0ZW1Qcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgLi4uYmFzZUludGVyYWN0aW9ucyxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRBY3RpdmVJbmRleCgocHJldikgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwgJiYgdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdICYmICF2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0RW5hYmxlZEluZGV4ID49IDAgPyBmaXJzdEVuYWJsZWRJbmRleCA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH0sIFtmaXJzdEVuYWJsZWRJbmRleCwgaW5uZXJPcGVuLCBzZWxlY3RlZEluZGV4LCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghaW5uZXJPcGVuIHx8IGFjdGl2ZUluZGV4ID09PSBudWxsIHx8IHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbYWN0aXZlSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0sIFthY3RpdmVJbmRleCwgaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGlzdFJlZi5jdXJyZW50ID0gbGlzdFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50ID0gbGlzdENvbnRlbnRSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aF0pO1xuICAgIGNvbnN0IHNldFNlYXJjaElucHV0UmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKG5vZGUgJiYgaW5uZXJPcGVuICYmIGZpbHRlcklucHV0QXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICBub2RlLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG5vdGlmeUJsdXJJZk91dHNpZGUgPSB1c2VFdmVudENhbGxiYWNrKChyZWxhdGVkVGFyZ2V0LCBldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBuZXh0VGFyZ2V0ID0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgY29uc3Qgd2l0aGluVHJpZ2dlciA9ICEhKG5leHRUYXJnZXQgJiYgKChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGNvbnN0IHdpdGhpbkZsb2F0aW5nID0gISEobmV4dFRhcmdldCAmJiAoKF9iID0gZmxvYXRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGlmICghd2l0aGluVHJpZ2dlciAmJiAhd2l0aGluRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihldmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wdGlvbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21taXRDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIG5leHRPcHRpb24pID0+IHtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9uLCBuYW1lKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdG9nZ2xlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFsbG93RGVzZWxlY3QgJiYgaW5uZXJWYWx1ZSA9PT0gb3B0aW9uLnZhbHVlKSB7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb21taXRDaGFuZ2Uob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgIChfYiA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBpZiAoaW5uZXJPcGVuICYmXG4gICAgICAgICAgICAgICAgYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBfZXZlbnQpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBmaW5kRW5hYmxlZEluZGV4ID0gdXNlRXZlbnRDYWxsYmFjaygoY3VycmVudCwgZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHZvaWQgMCA/IGN1cnJlbnQgOiAoZGlyZWN0aW9uID09PSAxID8gLTEgOiBsZW5ndGgpO1xuICAgICAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSBsZW5ndGg7IHN0ZXAgKz0gMSkge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gKChzdGFydCArIGRpcmVjdGlvbiAqIHN0ZXApICUgbGVuZ3RoICsgbGVuZ3RoKSAlIGxlbmd0aDtcbiAgICAgICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tjYW5kaWRhdGVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIDEpO1xuICAgICAgICAgICAgaWYgKG5leHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChuZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAtMSk7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSKSB7XG4gICAgICAgICAgICBpZiAoYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlclZhbHVlTWV0YSA9IHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHJlYWRPbmx5LFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgICAgICBzaXplOiBub3JtYWxpemVkU2l6ZSxcbiAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICB9O1xuICAgIGNvbnN0IHZhbHVlTGFiZWxDbGFzcyA9IGhhc1NlbGVjdGlvbiA/ICd2YWx1ZScgOiAncGxhY2Vob2xkZXInO1xuICAgIGNvbnN0IGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCA9IChtdWx0aXBsZSAmJlxuICAgICAgICBoYXNTZWxlY3Rpb24gJiZcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgIC8vIEEgY3VzdG9tIGByZW5kZXJWYWx1ZWAgcHJvZHVjZXMgaXRzIG93biBzaW5nbGUtbGluZSBzdW1tYXJ5LCBzbyB0aGVcbiAgICAgICAgLy8gbXVsdGktdmFsdWUgY2hpcCBsYXlvdXQgKGhlaWdodDphdXRvICsgdmVydGljYWwgcGFkZGluZyArIGZsZXgtd3JhcClcbiAgICAgICAgLy8gbXVzdCBub3Qga2ljayBpbiBhbmQgaW5mbGF0ZSB0aGUgdHJpZ2dlciBoZWlnaHQuXG4gICAgICAgICFyZW5kZXJWYWx1ZSk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgIWRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItcmVhZG9ubHknKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdsYXJnZScgPyAyMCA6IDE2O1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbklkID0gc2VhcmNoYWJsZSAmJiBpbm5lck9wZW4gJiYgYWN0aXZlSW5kZXggIT09IG51bGxcbiAgICAgICAgPyBgJHtvcHRpb25JZFByZWZpeH0tJHthY3RpdmVJbmRleH1gXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkT25seSwgbG9hZGluZzogbG9hZGluZywgbGFiZWw6IGxhYmVsLCBsYWJlbENsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAnYXJpYS1yZWFkb25seSc6IHJlYWRPbmx5IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSldIH0pKSwgaXNNb3VudGVkICYmIGludGVyYWN0aXZlICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZXRTZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpemU9e25vcm1hbGl6ZWRTaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiBcInNtYWxsXCIsIHBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgdmFsdWU6IGlubmVyU2VhcmNoVmFsdWUsIGFjdGl2ZURlc2NlbmRhbnQ6IGFjdGl2ZU9wdGlvbklkLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiBbcGFuZWxIZWFkZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaGVhZGVyJyksIGNoaWxkcmVuOiBwYW5lbEhlYWRlciB9KSksIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlT3B0aW9uR3JvdXBzLm1hcCgoZ3JvdXApID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAnKSwgY2hpbGRyZW46IFtncm91cC5sYWJlbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtbGFiZWwnLCBncm91cExhYmVsQ2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmdyb3VwTGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ3JvdXAubGFiZWwgfSkgfSkpLCBncm91cC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXNPcHRpb25TZWxlY3RlZChpbm5lclZhbHVlLCBtdWx0aXBsZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHtvcHRpb25JZFByZWZpeH0tJHtvcHRpb25GbGF0SW5kZXh9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSwgb3B0aW9uQ2xhc3NOYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCwgc2l6ZTogbm9ybWFsaXplZFNpemUsIGNvbnRlbnQ6IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IG51bGwgfHwgcmVuZGVyT3B0aW9uQ29udGVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVuZGVyT3B0aW9uQ29udGVudChvcHRpb24sIG9wdGlvbk1ldGEpIH0pKSB9KSwgYCR7Z3JvdXAua2V5fS0ke29wdGlvbi52YWx1ZX1gKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSldIH0pLCBwYW5lbEZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1mb290ZXInKSwgY2hpbGRyZW46IHBhbmVsRm9vdGVyIH0pKV0gfSkpIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9ydGFsID8gX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogcGFuZWxOb2RlIH0pIDogcGFuZWxOb2RlO1xuICAgICAgICAgICAgfSkoKV0gfSkpO1xufTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9ICdTZWxlY3QnO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3QpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==