payload 2.0.0-beta.8 → 2.0.0

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 (351) hide show
  1. package/README.md +132 -0
  2. package/config.d.ts +1 -0
  3. package/config.js +5 -1
  4. package/database.d.ts +1 -2
  5. package/database.js +1 -8
  6. package/dist/admin/Root.d.ts +5 -1
  7. package/dist/admin/Root.d.ts.map +1 -1
  8. package/dist/admin/Root.js +3 -3
  9. package/dist/admin/components/elements/ArrayAction/index.js +2 -2
  10. package/dist/admin/components/elements/DocumentControls/index.d.ts +1 -1
  11. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  12. package/dist/admin/components/elements/DocumentControls/index.js +2 -3
  13. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  14. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +5 -2
  15. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  16. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +7 -3
  17. package/dist/admin/components/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  18. package/dist/admin/components/elements/DocumentHeader/Tabs/index.js +4 -2
  19. package/dist/admin/components/elements/DocumentHeader/Tabs/index.scss +6 -10
  20. package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.d.ts.map +1 -1
  21. package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.js +10 -2
  22. package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts +4 -0
  23. package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts.map +1 -1
  24. package/dist/admin/components/elements/Drawer/index.d.ts.map +1 -1
  25. package/dist/admin/components/elements/Drawer/index.js +4 -3
  26. package/dist/admin/components/elements/Drawer/types.d.ts +1 -0
  27. package/dist/admin/components/elements/Drawer/types.d.ts.map +1 -1
  28. package/dist/admin/components/elements/Dropzone/index.d.ts +10 -0
  29. package/dist/admin/components/elements/Dropzone/index.d.ts.map +1 -0
  30. package/dist/admin/components/elements/Dropzone/index.js +120 -0
  31. package/dist/admin/components/elements/Dropzone/index.scss +52 -0
  32. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  33. package/dist/admin/components/elements/DuplicateDocument/index.js +4 -3
  34. package/dist/admin/components/elements/EditUpload/index.d.ts +13 -0
  35. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -0
  36. package/dist/admin/components/elements/EditUpload/index.js +378 -0
  37. package/dist/admin/components/elements/EditUpload/index.scss +218 -0
  38. package/dist/admin/components/elements/FileDetails/index.d.ts.map +1 -1
  39. package/dist/admin/components/elements/FileDetails/index.js +14 -99
  40. package/dist/admin/components/elements/FileDetails/index.scss +21 -0
  41. package/dist/admin/components/elements/FileDetails/types.d.ts +3 -0
  42. package/dist/admin/components/elements/FileDetails/types.d.ts.map +1 -1
  43. package/dist/admin/components/elements/Hamburger/index.d.ts.map +1 -1
  44. package/dist/admin/components/elements/Hamburger/index.js +12 -16
  45. package/dist/admin/components/elements/Hamburger/index.scss +41 -54
  46. package/dist/admin/components/elements/Header/index.d.ts.map +1 -1
  47. package/dist/admin/components/elements/Header/index.js +6 -6
  48. package/dist/admin/components/elements/Header/index.scss +6 -1
  49. package/dist/admin/components/elements/Localizer/index.d.ts.map +1 -1
  50. package/dist/admin/components/elements/Localizer/index.js +1 -3
  51. package/dist/admin/components/elements/Nav/NavToggler/index.d.ts.map +1 -1
  52. package/dist/admin/components/elements/Nav/NavToggler/index.js +2 -1
  53. package/dist/admin/components/elements/Nav/NavToggler/index.scss +4 -0
  54. package/dist/admin/components/elements/Nav/context.d.ts +1 -1
  55. package/dist/admin/components/elements/Nav/context.d.ts.map +1 -1
  56. package/dist/admin/components/elements/Nav/context.js +12 -7
  57. package/dist/admin/components/elements/Nav/index.d.ts.map +1 -1
  58. package/dist/admin/components/elements/Nav/index.js +19 -18
  59. package/dist/admin/components/elements/Nav/index.scss +3 -1
  60. package/dist/admin/components/elements/PreviewSizes/index.d.ts +14 -0
  61. package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -0
  62. package/dist/admin/components/elements/PreviewSizes/index.js +146 -0
  63. package/dist/admin/components/elements/PreviewSizes/index.scss +146 -0
  64. package/dist/admin/components/elements/Thumbnail/index.d.ts.map +1 -1
  65. package/dist/admin/components/elements/Thumbnail/index.js +61 -7
  66. package/dist/admin/components/elements/Thumbnail/types.d.ts +4 -2
  67. package/dist/admin/components/elements/Thumbnail/types.d.ts.map +1 -1
  68. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +6 -6
  69. package/dist/admin/components/elements/WhereBuilder/field-types.js +2 -2
  70. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts +3 -1
  71. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  72. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +12 -6
  73. package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts +4 -2
  74. package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts.map +1 -1
  75. package/dist/admin/components/forms/Form/buildStateFromSchema/index.js +3 -2
  76. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts +3 -1
  77. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  78. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +3 -2
  79. package/dist/admin/components/forms/Form/fieldReducer.js +7 -7
  80. package/dist/admin/components/forms/Form/index.d.ts.map +1 -1
  81. package/dist/admin/components/forms/Form/index.js +23 -8
  82. package/dist/admin/components/forms/Form/types.d.ts +1 -0
  83. package/dist/admin/components/forms/Form/types.d.ts.map +1 -1
  84. package/dist/admin/components/forms/field-types/Array/index.d.ts.map +1 -1
  85. package/dist/admin/components/forms/field-types/Array/index.js +10 -10
  86. package/dist/admin/components/forms/field-types/Blocks/index.js +8 -8
  87. package/dist/admin/components/forms/field-types/Checkbox/index.scss +4 -0
  88. package/dist/admin/components/forms/field-types/RichText/index.d.ts.map +1 -1
  89. package/dist/admin/components/forms/field-types/RichText/index.js +2 -4
  90. package/dist/admin/components/forms/field-types/RichText/types.d.ts +2 -1
  91. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  92. package/dist/admin/components/forms/field-types/Select/Input.d.ts.map +1 -1
  93. package/dist/admin/components/forms/field-types/Select/Input.js +4 -4
  94. package/dist/admin/components/forms/field-types/Upload/index.scss +1 -5
  95. package/dist/admin/components/forms/useField/index.d.ts.map +1 -1
  96. package/dist/admin/components/forms/useField/index.js +4 -1
  97. package/dist/admin/components/icons/MinimizeMaximize/index.d.ts +8 -0
  98. package/dist/admin/components/icons/MinimizeMaximize/index.d.ts.map +1 -0
  99. package/dist/admin/components/icons/MinimizeMaximize/index.js +85 -0
  100. package/dist/admin/components/templates/Default/index.d.ts.map +1 -1
  101. package/dist/admin/components/templates/Default/index.js +10 -10
  102. package/dist/admin/components/templates/Default/index.scss +39 -6
  103. package/dist/admin/components/utilities/FormQueryParams/index.d.ts +17 -0
  104. package/dist/admin/components/utilities/FormQueryParams/index.d.ts.map +1 -0
  105. package/dist/admin/components/utilities/FormQueryParams/index.js +23 -0
  106. package/dist/admin/components/utilities/Locale/index.d.ts +2 -2
  107. package/dist/admin/components/utilities/Locale/index.d.ts.map +1 -1
  108. package/dist/admin/components/utilities/Locale/index.js +2 -2
  109. package/dist/admin/components/utilities/OperationProvider/index.d.ts +1 -1
  110. package/dist/admin/components/utilities/OperationProvider/index.d.ts.map +1 -1
  111. package/dist/admin/components/utilities/OperationProvider/index.js +2 -2
  112. package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts +1 -1
  113. package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts.map +1 -1
  114. package/dist/admin/components/views/API/index.d.ts +6 -0
  115. package/dist/admin/components/views/API/index.d.ts.map +1 -0
  116. package/dist/admin/components/views/API/index.js +283 -0
  117. package/dist/admin/components/views/API/index.scss +203 -0
  118. package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
  119. package/dist/admin/components/views/Account/Default.js +4 -4
  120. package/dist/admin/components/views/Account/index.d.ts.map +1 -1
  121. package/dist/admin/components/views/Account/index.js +15 -10
  122. package/dist/admin/components/views/Dashboard/index.d.ts.map +1 -1
  123. package/dist/admin/components/views/Dashboard/index.js +3 -5
  124. package/dist/admin/components/views/Global/Default/index.scss +12 -0
  125. package/dist/admin/components/views/Global/Routes/CustomComponent.d.ts.map +1 -1
  126. package/dist/admin/components/views/Global/Routes/CustomComponent.js +3 -2
  127. package/dist/admin/components/views/Global/Routes/custom.d.ts +2 -2
  128. package/dist/admin/components/views/Global/Routes/custom.d.ts.map +1 -1
  129. package/dist/admin/components/views/Global/Routes/custom.js +27 -18
  130. package/dist/admin/components/views/Global/Routes/index.d.ts.map +1 -1
  131. package/dist/admin/components/views/Global/Routes/index.js +11 -3
  132. package/dist/admin/components/views/Global/index.d.ts.map +1 -1
  133. package/dist/admin/components/views/Global/index.js +11 -4
  134. package/dist/admin/components/views/LivePreview/Context/context.d.ts +4 -4
  135. package/dist/admin/components/views/LivePreview/Context/context.d.ts.map +1 -1
  136. package/dist/admin/components/views/LivePreview/Context/context.js +1 -1
  137. package/dist/admin/components/views/LivePreview/Context/index.d.ts +2 -2
  138. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  139. package/dist/admin/components/views/LivePreview/Context/index.js +1 -1
  140. package/dist/admin/components/views/LivePreview/Device/index.js +2 -2
  141. package/dist/admin/components/views/LivePreview/DeviceContainer/index.js +3 -3
  142. package/dist/admin/components/views/LivePreview/Preview/index.d.ts +2 -0
  143. package/dist/admin/components/views/LivePreview/Preview/index.d.ts.map +1 -1
  144. package/dist/admin/components/views/LivePreview/Preview/index.js +30 -20
  145. package/dist/admin/components/views/LivePreview/Preview/index.scss +20 -6
  146. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts +5 -0
  147. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -0
  148. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +71 -0
  149. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.scss +54 -0
  150. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts +4 -1
  151. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  152. package/dist/admin/components/views/LivePreview/Toolbar/index.js +24 -51
  153. package/dist/admin/components/views/LivePreview/Toolbar/index.scss +19 -60
  154. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  155. package/dist/admin/components/views/LivePreview/index.js +26 -5
  156. package/dist/admin/components/views/LivePreview/index.scss +6 -2
  157. package/dist/admin/components/views/Login/index.js +3 -3
  158. package/dist/admin/components/views/Routes/collections.d.ts.map +1 -1
  159. package/dist/admin/components/views/Routes/collections.js +1 -1
  160. package/dist/admin/components/views/Routes/custom.d.ts +5 -4
  161. package/dist/admin/components/views/Routes/custom.d.ts.map +1 -1
  162. package/dist/admin/components/views/Routes/custom.js +23 -7
  163. package/dist/admin/components/views/Routes/globals.d.ts.map +1 -1
  164. package/dist/admin/components/views/Routes/globals.js +1 -1
  165. package/dist/admin/components/views/Routes/index.d.ts.map +1 -1
  166. package/dist/admin/components/views/Routes/index.js +12 -8
  167. package/dist/admin/components/views/Verify/index.js +1 -1
  168. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  169. package/dist/admin/components/views/collections/Edit/Default/index.js +6 -6
  170. package/dist/admin/components/views/collections/Edit/Default/index.scss +12 -0
  171. package/dist/admin/components/views/collections/Edit/Routes/CustomComponent.js +3 -3
  172. package/dist/admin/components/views/collections/Edit/Routes/custom.d.ts.map +1 -1
  173. package/dist/admin/components/views/collections/Edit/Routes/custom.js +27 -18
  174. package/dist/admin/components/views/collections/Edit/Routes/index.d.ts.map +1 -1
  175. package/dist/admin/components/views/collections/Edit/Routes/index.js +4 -3
  176. package/dist/admin/components/views/collections/Edit/SetStepNav.js +3 -3
  177. package/dist/admin/components/views/collections/Edit/Upload/index.d.ts +7 -2
  178. package/dist/admin/components/views/collections/Edit/Upload/index.d.ts.map +1 -1
  179. package/dist/admin/components/views/collections/Edit/Upload/index.js +116 -121
  180. package/dist/admin/components/views/collections/Edit/Upload/index.scss +68 -68
  181. package/dist/admin/components/views/collections/Edit/Upload/types.d.ts +2 -3
  182. package/dist/admin/components/views/collections/Edit/Upload/types.d.ts.map +1 -1
  183. package/dist/admin/components/views/collections/Edit/formatFields.d.ts +1 -1
  184. package/dist/admin/components/views/collections/Edit/formatFields.d.ts.map +1 -1
  185. package/dist/admin/components/views/collections/Edit/formatFields.js +1 -1
  186. package/dist/admin/components/views/collections/Edit/index.d.ts.map +1 -1
  187. package/dist/admin/components/views/collections/Edit/index.js +36 -7
  188. package/dist/admin/components/views/collections/Edit/types.d.ts +12 -0
  189. package/dist/admin/components/views/collections/Edit/types.d.ts.map +1 -1
  190. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.d.ts +4 -1
  191. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.d.ts.map +1 -1
  192. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.js +7 -3
  193. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.scss +7 -2
  194. package/dist/admin/components/views/collections/List/Cell/field-types/Richtext/index.d.ts.map +1 -1
  195. package/dist/admin/components/views/collections/List/Cell/field-types/Richtext/index.js +2 -4
  196. package/dist/admin/components/views/collections/List/Cell/field-types/index.d.ts +1 -1
  197. package/dist/admin/components/views/collections/List/Cell/index.d.ts.map +1 -1
  198. package/dist/admin/components/views/collections/List/Cell/index.js +11 -1
  199. package/dist/admin/components/views/types.d.ts +8 -8
  200. package/dist/admin/components/views/types.d.ts.map +1 -1
  201. package/dist/auth/operations/me.d.ts.map +1 -1
  202. package/dist/auth/operations/me.js +13 -5
  203. package/dist/auth/strategies/jwt.js +3 -3
  204. package/dist/bin/build.d.ts.map +1 -1
  205. package/dist/bin/build.js +9 -5
  206. package/dist/bin/generateGraphQLSchema.js +2 -2
  207. package/dist/bin/index.js +3 -3
  208. package/dist/bin/migrate.d.ts +2 -1
  209. package/dist/bin/migrate.d.ts.map +1 -1
  210. package/dist/bin/migrate.js +16 -4
  211. package/dist/collections/config/sanitize.js +4 -4
  212. package/dist/collections/config/schema.d.ts.map +1 -1
  213. package/dist/collections/config/schema.js +7 -10
  214. package/dist/collections/config/types.d.ts +5 -41
  215. package/dist/collections/config/types.d.ts.map +1 -1
  216. package/dist/collections/config/types.js +1 -1
  217. package/dist/collections/dataloader.js +2 -2
  218. package/dist/config/defaults.js +2 -2
  219. package/dist/config/schema.d.ts.map +1 -1
  220. package/dist/config/schema.js +14 -8
  221. package/dist/config/shared/adminViewSchema.d.ts +3 -0
  222. package/dist/config/shared/adminViewSchema.d.ts.map +1 -0
  223. package/dist/config/shared/adminViewSchema.js +26 -0
  224. package/dist/config/shared/componentSchema.d.ts +4 -0
  225. package/dist/config/shared/componentSchema.d.ts.map +1 -1
  226. package/dist/config/shared/componentSchema.js +13 -1
  227. package/dist/config/types.d.ts +55 -37
  228. package/dist/config/types.d.ts.map +1 -1
  229. package/dist/config/types.js +1 -1
  230. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  231. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  232. package/dist/database/createDatabaseAdapter.js +1 -10
  233. package/dist/database/migrations/createMigration.js +2 -2
  234. package/dist/database/migrations/getMigrations.d.ts +3 -0
  235. package/dist/database/migrations/getMigrations.d.ts.map +1 -1
  236. package/dist/database/migrations/getMigrations.js +7 -2
  237. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  238. package/dist/database/migrations/migrateDown.js +5 -6
  239. package/dist/database/migrations/migrateRefresh.d.ts +1 -1
  240. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  241. package/dist/database/migrations/migrateRefresh.js +63 -8
  242. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  243. package/dist/database/migrations/migrateReset.js +17 -1
  244. package/dist/database/migrations/migrationTemplate.d.ts +1 -1
  245. package/dist/database/migrations/migrationTemplate.d.ts.map +1 -1
  246. package/dist/database/migrations/migrationTemplate.js +2 -2
  247. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  248. package/dist/database/migrations/migrationsCollection.js +1 -5
  249. package/dist/database/types.d.ts +5 -15
  250. package/dist/database/types.d.ts.map +1 -1
  251. package/dist/exports/config.d.ts +1 -0
  252. package/dist/exports/config.d.ts.map +1 -1
  253. package/dist/exports/config.js +5 -1
  254. package/dist/exports/database.d.ts +1 -2
  255. package/dist/exports/database.d.ts.map +1 -1
  256. package/dist/exports/database.js +1 -8
  257. package/dist/exports/utilities.d.ts +2 -0
  258. package/dist/exports/utilities.d.ts.map +1 -1
  259. package/dist/exports/utilities.js +9 -1
  260. package/dist/fields/config/sanitize.d.ts +7 -3
  261. package/dist/fields/config/sanitize.d.ts.map +1 -1
  262. package/dist/fields/config/sanitize.js +17 -12
  263. package/dist/fields/config/sanitize.spec.js +19 -24
  264. package/dist/fields/config/schema.d.ts.map +1 -1
  265. package/dist/fields/config/schema.js +3 -2
  266. package/dist/fields/config/types.d.ts +2 -0
  267. package/dist/fields/config/types.d.ts.map +1 -1
  268. package/dist/fields/config/types.js +1 -1
  269. package/dist/fields/hooks/afterRead/promise.js +2 -2
  270. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  271. package/dist/fields/hooks/beforeChange/promise.js +3 -9
  272. package/dist/fields/validations.d.ts +3 -1
  273. package/dist/fields/validations.d.ts.map +1 -1
  274. package/dist/fields/validations.js +41 -32
  275. package/dist/globals/config/sanitize.js +4 -4
  276. package/dist/globals/config/schema.d.ts.map +1 -1
  277. package/dist/globals/config/schema.js +5 -10
  278. package/dist/globals/config/types.d.ts +6 -3
  279. package/dist/globals/config/types.d.ts.map +1 -1
  280. package/dist/graphql/schema/buildObjectType.js +2 -2
  281. package/dist/payload.d.ts.map +1 -1
  282. package/dist/payload.js +2 -2
  283. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  284. package/dist/preferences/deleteUserPreferences.js +13 -7
  285. package/dist/preferences/preferencesCollection.d.ts.map +1 -1
  286. package/dist/preferences/preferencesCollection.js +1 -13
  287. package/dist/translations/ar.json +14 -2
  288. package/dist/translations/az.json +14 -2
  289. package/dist/translations/bg.json +14 -2
  290. package/dist/translations/cs.json +14 -2
  291. package/dist/translations/de.json +14 -2
  292. package/dist/translations/en.json +12 -0
  293. package/dist/translations/es.json +14 -2
  294. package/dist/translations/fa.json +14 -2
  295. package/dist/translations/fr.json +14 -2
  296. package/dist/translations/hr.json +14 -2
  297. package/dist/translations/hu.json +14 -2
  298. package/dist/translations/index.d.ts +340 -26
  299. package/dist/translations/index.d.ts.map +1 -1
  300. package/dist/translations/it.json +16 -3
  301. package/dist/translations/ja.json +14 -2
  302. package/dist/translations/my.json +14 -2
  303. package/dist/translations/nb.json +14 -2
  304. package/dist/translations/nl.json +14 -2
  305. package/dist/translations/pl.json +15 -2
  306. package/dist/translations/pt.json +14 -2
  307. package/dist/translations/ro.json +14 -2
  308. package/dist/translations/ru.json +14 -2
  309. package/dist/translations/sv.json +14 -2
  310. package/dist/translations/th.json +14 -2
  311. package/dist/translations/tr.json +14 -2
  312. package/dist/translations/translation-schema.json +36 -0
  313. package/dist/translations/ua.json +14 -2
  314. package/dist/translations/vi.json +14 -2
  315. package/dist/translations/zh.json +14 -2
  316. package/dist/uploads/cropImage.d.ts +12 -0
  317. package/dist/uploads/cropImage.d.ts.map +1 -0
  318. package/dist/uploads/cropImage.js +47 -0
  319. package/dist/uploads/generateFileData.d.ts.map +1 -1
  320. package/dist/uploads/generateFileData.js +49 -14
  321. package/dist/uploads/imageResizer.d.ts +6 -1
  322. package/dist/uploads/imageResizer.d.ts.map +1 -1
  323. package/dist/uploads/imageResizer.js +48 -3
  324. package/dist/uploads/types.d.ts +5 -1
  325. package/dist/uploads/types.d.ts.map +1 -1
  326. package/dist/uploads/types.js +1 -1
  327. package/dist/utilities/fieldSchemaToJSON.d.ts +3 -0
  328. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -0
  329. package/dist/utilities/fieldSchemaToJSON.js +77 -0
  330. package/dist/utilities/getIDType.d.ts +2 -1
  331. package/dist/utilities/getIDType.d.ts.map +1 -1
  332. package/dist/utilities/getIDType.js +3 -3
  333. package/dist/utilities/isValidID.js +2 -2
  334. package/package.json +2 -5
  335. package/utilities.d.ts +2 -0
  336. package/utilities.js +9 -1
  337. package/components/rich-text.d.ts +0 -4
  338. package/components/rich-text.js +0 -31
  339. package/dist/admin/components/views/LivePreview/useLivePreview.d.ts +0 -8
  340. package/dist/admin/components/views/LivePreview/useLivePreview.d.ts.map +0 -1
  341. package/dist/admin/components/views/LivePreview/useLivePreview.js +0 -43
  342. package/dist/admin/components/views/RestAPI/index.d.ts +0 -4
  343. package/dist/admin/components/views/RestAPI/index.d.ts.map +0 -1
  344. package/dist/admin/components/views/RestAPI/index.js +0 -113
  345. package/dist/admin/components/views/RestAPI/index.scss +0 -107
  346. package/dist/config/shared/routeSchema.d.ts +0 -3
  347. package/dist/config/shared/routeSchema.d.ts.map +0 -1
  348. package/dist/config/shared/routeSchema.js +0 -26
  349. package/dist/database/transaction.d.ts +0 -3
  350. package/dist/database/transaction.d.ts.map +0 -1
  351. package/dist/database/transaction.js +0 -21
@@ -314,7 +314,7 @@ function buildObjectType({ name, baseFields = {}, fields, forceNullable, parentN
314
314
  async resolve (parent, args, context) {
315
315
  let depth = payload.config.defaultDepth;
316
316
  if (typeof args.depth !== 'undefined') depth = args.depth;
317
- const editor = field?.editor || payload?.config?.editor;
317
+ const editor = field?.editor;
318
318
  if (editor?.afterReadPromise) {
319
319
  await editor?.afterReadPromise({
320
320
  depth,
@@ -469,4 +469,4 @@ function buildObjectType({ name, baseFields = {}, fields, forceNullable, parentN
469
469
  }
470
470
  const _default = buildObjectType;
471
471
 
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE9iamVjdFR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFMRmllbGRDb25maWcsIEdyYXBoUUxUeXBlIH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHtcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxPYmplY3RUeXBlLFxuICBHcmFwaFFMU3RyaW5nLFxuICBHcmFwaFFMVW5pb25UeXBlLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHsgR3JhcGhRTEpTT04gfSBmcm9tICdncmFwaHFsLXR5cGUtanNvbidcblxuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEdyb3VwRmllbGQsXG4gIEpTT05GaWVsZCxcbiAgTnVtYmVyRmllbGQsXG4gIFBvaW50RmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFJlbGF0aW9uc2hpcEZpZWxkLFxuICBSaWNoVGV4dEZpZWxkLFxuICBSb3dGaWVsZCxcbiAgU2VsZWN0RmllbGQsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5cbmltcG9ydCB7IHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHsgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgY29tYmluZVBhcmVudE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2NvbWJpbmVQYXJlbnROYW1lJ1xuaW1wb3J0IGZvcm1hdE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZm9ybWF0T3B0aW9ucyBmcm9tICcuLi91dGlsaXRpZXMvZm9ybWF0T3B0aW9ucydcbmltcG9ydCBidWlsZFdoZXJlSW5wdXRUeXBlIGZyb20gJy4vYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBpc0ZpZWxkTnVsbGFibGUgZnJvbSAnLi9pc0ZpZWxkTnVsbGFibGUnXG5pbXBvcnQgd2l0aE51bGxhYmxlVHlwZSBmcm9tICcuL3dpdGhOdWxsYWJsZVR5cGUnXG5cbnR5cGUgTG9jYWxlSW5wdXRUeXBlID0ge1xuICBmYWxsYmFja0xvY2FsZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbiAgbG9jYWxlOiB7XG4gICAgdHlwZTogR3JhcGhRTFR5cGVcbiAgfVxuICB3aGVyZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZUNvbmZpZyA9IHtcbiAgW3BhdGg6IHN0cmluZ106IEdyYXBoUUxGaWVsZENvbmZpZzxhbnksIGFueT5cbn1cblxudHlwZSBBcmdzID0ge1xuICBiYXNlRmllbGRzPzogT2JqZWN0VHlwZUNvbmZpZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VOdWxsYWJsZT86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudE5hbWU6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG59XG5cbmZ1bmN0aW9uIGJ1aWxkT2JqZWN0VHlwZSh7XG4gIG5hbWUsXG4gIGJhc2VGaWVsZHMgPSB7fSxcbiAgZmllbGRzLFxuICBmb3JjZU51bGxhYmxlLFxuICBwYXJlbnROYW1lLFxuICBwYXlsb2FkLFxufTogQXJncyk6IEdyYXBoUUxPYmplY3RUeXBlIHtcbiAgY29uc3QgZmllbGRUb1NjaGVtYU1hcCA9IHtcbiAgICBhcnJheTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBBcnJheUZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuYXJyYXlUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJyYXlUeXBlID0gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbChwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgYXJyYXlUeXBlKSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgYmxvY2tzOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEJsb2NrRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrVHlwZXMgPSBmaWVsZC5ibG9ja3MubWFwKChibG9jaykgPT4ge1xuICAgICAgICBpZiAoIXBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXSkge1xuICAgICAgICAgIGNvbnN0IGludGVyZmFjZU5hbWUgPVxuICAgICAgICAgICAgYmxvY2s/LmludGVyZmFjZU5hbWUgfHwgYmxvY2s/LmdyYXBoUUw/LnNpbmd1bGFyTmFtZSB8fCB0b1dvcmRzKGJsb2NrLnNsdWcsIHRydWUpXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgcGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgIG5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgLi4uYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Jsb2NrVHlwZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXVxuICAgICAgfSlcblxuICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpKVxuXG4gICAgICBjb25zdCB0eXBlID0gbmV3IEdyYXBoUUxMaXN0KFxuICAgICAgICBuZXcgR3JhcGhRTE5vbk51bGwoXG4gICAgICAgICAgbmV3IEdyYXBoUUxVbmlvblR5cGUoe1xuICAgICAgICAgICAgbmFtZTogZnVsbE5hbWUsXG4gICAgICAgICAgICByZXNvbHZlVHlwZTogKGRhdGEpID0+IHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tkYXRhLmJsb2NrVHlwZV0ubmFtZSxcbiAgICAgICAgICAgIHR5cGVzOiBibG9ja1R5cGVzLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSkgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNoZWNrYm94OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENoZWNrYm94RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxCb29sZWFuLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvZGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29kZUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvbGxhcHNpYmxlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRTdWJGaWVsZCA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZFN1YkZpZWxkKSByZXR1cm4gYWRkU3ViRmllbGQob2JqZWN0VHlwZUNvbmZpZ1dpdGhDb2xsYXBzaWJsZUZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzXG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICBkYXRlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IERhdGVGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgRGF0ZVRpbWVSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBlbWFpbDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBFbWFpbEZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBFbWFpbEFkZHJlc3NSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBncm91cDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBHcm91cEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAganNvbjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIG51bWJlcjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZmllbGQ/Lmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUG9pbnRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxGbG9hdCkpLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJhZGlvOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKSxcbiAgICAgICAgICAgIHZhbHVlczogZm9ybWF0T3B0aW9ucyhmaWVsZCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVsYXRpb25zaGlwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICBjb25zdCBpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkocmVsYXRpb25UbylcbiAgICAgIGNvbnN0IGhhc01hbnlWYWx1ZXMgPSBmaWVsZC5oYXNNYW55XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgbGV0IHR5cGVcbiAgICAgIGxldCByZWxhdGlvblRvVHlwZSA9IG51bGxcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykpIHtcbiAgICAgICAgcmVsYXRpb25Ub1R5cGUgPSBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxhdGlvbnNoaXBOYW1lfV9SZWxhdGlvblRvYCxcbiAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgcmVsYXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnJlbGF0aW9ucyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUocmVsYXRpb24pXToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZWxhdGlvbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCB0eXBlcyA9IHJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4gcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvbl0uZ3JhcGhRTC50eXBlKVxuXG4gICAgICAgIHR5cGUgPSBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGAke3JlbGF0aW9uc2hpcE5hbWV9X1JlbGF0aW9uc2hpcGAsXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICByZWxhdGlvblRvOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHJlbGF0aW9uVG9UeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMVW5pb25UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiByZWxhdGlvbnNoaXBOYW1lLFxuICAgICAgICAgICAgICAgIGFzeW5jIHJlc29sdmVUeXBlKGRhdGEsIHsgcmVxIH0pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkLmNvbGxlY3Rpb25zW2RhdGEuY29sbGVjdGlvbl0uZ3JhcGhRTC50eXBlLm5hbWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGVzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsoeyB0eXBlIH0gPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dLmdyYXBoUUwpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSByZWxhdGlvbnNoaXBUeXBlIGlzIHVuZGVmaW5lZCBhdCB0aGlzIHBvaW50LFxuICAgICAgLy8gaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGlzIGJsb2NrVHlwZSBjYW4gaGF2ZSBhIHJlbGF0aW9uc2hpcFxuICAgICAgLy8gdG8gaXRzZWxmLiBUaGVyZWZvcmUsIHdlIHNldCB0aGUgcmVsYXRpb25zaGlwVHlwZSBlcXVhbCB0byB0aGUgYmxvY2tUeXBlXG4gICAgICAvLyB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjcmVhdGVkLlxuXG4gICAgICB0eXBlID0gdHlwZSB8fCBuZXdseUNyZWF0ZWRCbG9ja1R5cGVcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwQXJnczoge1xuICAgICAgICBmYWxsYmFja0xvY2FsZT86IHVua25vd25cbiAgICAgICAgbGltaXQ/OiB1bmtub3duXG4gICAgICAgIGxvY2FsZT86IHVua25vd25cbiAgICAgICAgcGFnZT86IHVua25vd25cbiAgICAgICAgd2hlcmU/OiB1bmtub3duXG4gICAgICB9ID0ge31cblxuICAgICAgaWYgKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmxvY2FsZSA9IHtcbiAgICAgICAgICB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbGF0aW9uc2hpcEFyZ3MuZmFsbGJhY2tMb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSB7XG4gICAgICAgIGFyZ3M6IHJlbGF0aW9uc2hpcEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMTAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGxldCByZWxhdGVkQ29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICBpZiAoaGFzTWFueVZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjb25zdCByZXN1bHRQcm9taXNlcyA9IFtdXG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVBvcHVsYXRpb25Qcm9taXNlID0gYXN5bmMgKHJlbGF0ZWREb2MsIGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGlkID0gcmVsYXRlZERvY1xuICAgICAgICAgICAgICBsZXQgY29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGVkRG9jLnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBpZCA9IHJlbGF0ZWREb2MudmFsdWVcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0c1tpXSA9IHJlc3VsdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYywgaSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdFByb21pc2VzLnB1c2goY3JlYXRlUG9wdWxhdGlvblByb21pc2UocmVsYXRlZERvYywgaSkpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHJlc3VsdFByb21pc2VzKVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgaWQgPSB2YWx1ZVxuICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgaWQgPSB2YWx1ZS52YWx1ZVxuICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gdmFsdWUucmVsYXRpb25Ub1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZERvY3VtZW50KSB7XG4gICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiByZWxhdGVkQ29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZWxhdGVkRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlbGF0ZWREb2N1bWVudFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgaGFzTWFueVZhbHVlcyA/IG5ldyBHcmFwaFFMTGlzdChuZXcgR3JhcGhRTE5vbk51bGwodHlwZSkpIDogdHlwZSxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICApLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHJlbGF0aW9uc2hpcCxcbiAgICAgIH1cbiAgICB9LFxuICAgIHJpY2hUZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJpY2hUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBkZXB0aDoge1xuICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhc3luYyByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dCkge1xuICAgICAgICAgIGxldCBkZXB0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHREZXB0aFxuICAgICAgICAgIGlmICh0eXBlb2YgYXJncy5kZXB0aCAhPT0gJ3VuZGVmaW5lZCcpIGRlcHRoID0gYXJncy5kZXB0aFxuICAgICAgICAgIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gZmllbGQ/LmVkaXRvciB8fCBwYXlsb2FkPy5jb25maWc/LmVkaXRvclxuXG4gICAgICAgICAgaWYgKGVkaXRvcj8uYWZ0ZXJSZWFkUHJvbWlzZSkge1xuICAgICAgICAgICAgYXdhaXQgZWRpdG9yPy5hZnRlclJlYWRQcm9taXNlKHtcbiAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICByZXE6IGNvbnRleHQucmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogcGFyZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcGFyZW50W2ZpZWxkLm5hbWVdXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcm93OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJvd0ZpZWxkKSA9PlxuICAgICAgZmllbGQuZmllbGRzLnJlZHVjZSgob2JqZWN0VHlwZUNvbmZpZ1dpdGhSb3dGaWVsZHMsIHN1YkZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkc1xuICAgICAgfSwgb2JqZWN0VHlwZUNvbmZpZyksXG4gICAgc2VsZWN0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFNlbGVjdEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpXG5cbiAgICAgIGxldCB0eXBlOiBHcmFwaFFMVHlwZSA9IG5ldyBHcmFwaFFMRW51bVR5cGUoe1xuICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgdmFsdWVzOiBmb3JtYXRPcHRpb25zKGZpZWxkKSxcbiAgICAgIH0pXG5cbiAgICAgIHR5cGUgPSBmaWVsZC5oYXNNYW55ID8gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbCh0eXBlKSkgOiB0eXBlXG4gICAgICB0eXBlID0gd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSwgZm9yY2VOdWxsYWJsZSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYnM6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGFic0ZpZWxkKSA9PlxuICAgICAgZmllbGQudGFicy5yZWR1Y2UoKHRhYlNjaGVtYSwgdGFiKSA9PiB7XG4gICAgICAgIGlmICh0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgICAgIHRhYj8uaW50ZXJmYWNlTmFtZSB8fCBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKHRhYi5uYW1lLCB0cnVlKSlcblxuICAgICAgICAgIGlmICghcGF5bG9hZC50eXBlcy50YWJUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGFiU2NoZW1hLFxuICAgICAgICAgICAgW3RhYi5uYW1lXTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50YWJTY2hlbWEsXG4gICAgICAgICAgLi4udGFiLmZpZWxkcy5yZWR1Y2UoKHN1YkZpZWxkU2NoZW1hLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpXG4gICAgICAgICAgICByZXR1cm4gc3ViRmllbGRTY2hlbWFcbiAgICAgICAgICB9LCB0YWJTY2hlbWEpLFxuICAgICAgICB9XG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICB0ZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICB0ZXh0YXJlYTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0YXJlYUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHVwbG9hZDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBVcGxvYWRGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgeyByZWxhdGlvblRvIH0gPSBmaWVsZFxuXG4gICAgICBjb25zdCB1cGxvYWROYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgLy8gSWYgdGhlIHJlbGF0aW9uc2hpcFR5cGUgaXMgdW5kZWZpbmVkIGF0IHRoaXMgcG9pbnQsXG4gICAgICAvLyBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IHRoaXMgYmxvY2tUeXBlIGNhbiBoYXZlIGEgcmVsYXRpb25zaGlwXG4gICAgICAvLyB0byBpdHNlbGYuIFRoZXJlZm9yZSwgd2Ugc2V0IHRoZSByZWxhdGlvbnNoaXBUeXBlIGVxdWFsIHRvIHRoZSBibG9ja1R5cGVcbiAgICAgIC8vIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGNyZWF0ZWQuXG5cbiAgICAgIGNvbnN0IHR5cGUgPSB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5ncmFwaFFMLnR5cGUgfHwgbmV3bHlDcmVhdGVkQmxvY2tUeXBlLFxuICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgKVxuXG4gICAgICBjb25zdCB1cGxvYWRBcmdzID0ge30gYXMgTG9jYWxlSW5wdXRUeXBlXG5cbiAgICAgIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgdXBsb2FkQXJncy5sb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cblxuICAgICAgICB1cGxvYWRBcmdzLmZhbGxiYWNrTG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gZmllbGQucmVsYXRpb25Ub1xuXG4gICAgICBjb25zdCB1cGxvYWQgPSB7XG4gICAgICAgIGFyZ3M6IHVwbG9hZEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMjAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGNvbnN0IGlkID0gdmFsdWVcblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICByZXR1cm4gcmVsYXRlZERvY3VtZW50IHx8IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9LFxuICAgICAgICB0eXBlLFxuICAgICAgfVxuXG4gICAgICBjb25zdCB3aGVyZUZpZWxkcyA9IHBheWxvYWQuY29sbGVjdGlvbnNbcmVsYXRpb25Ub10uY29uZmlnLmZpZWxkc1xuXG4gICAgICB1cGxvYWQuYXJncy53aGVyZSA9IHtcbiAgICAgICAgdHlwZTogYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICAgICAgbmFtZTogdXBsb2FkTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IHdoZXJlRmllbGRzLFxuICAgICAgICAgIHBhcmVudE5hbWU6IHVwbG9hZE5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSksXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogdXBsb2FkLFxuICAgICAgfVxuICAgIH0sXG4gIH1cblxuICBjb25zdCBvYmplY3RTY2hlbWEgPSB7XG4gICAgbmFtZSxcbiAgICBmaWVsZHM6ICgpID0+XG4gICAgICBmaWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkU2NoZW1hICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgICAuLi5maWVsZFNjaGVtYShvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCksXG4gICAgICAgIH1cbiAgICAgIH0sIGJhc2VGaWVsZHMpLFxuICB9XG5cbiAgY29uc3QgbmV3bHlDcmVhdGVkQmxvY2tUeXBlID0gbmV3IEdyYXBoUUxPYmplY3RUeXBlKG9iamVjdFNjaGVtYSlcblxuICByZXR1cm4gbmV3bHlDcmVhdGVkQmxvY2tUeXBlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkT2JqZWN0VHlwZVxuIl0sIm5hbWVzIjpbImJ1aWxkT2JqZWN0VHlwZSIsIm5hbWUiLCJiYXNlRmllbGRzIiwiZmllbGRzIiwiZm9yY2VOdWxsYWJsZSIsInBhcmVudE5hbWUiLCJwYXlsb2FkIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5Iiwib2JqZWN0VHlwZUNvbmZpZyIsImZpZWxkIiwiaW50ZXJmYWNlTmFtZSIsImNvbWJpbmVQYXJlbnROYW1lIiwidG9Xb3JkcyIsInR5cGVzIiwiYXJyYXlUeXBlcyIsImlzRmllbGROdWxsYWJsZSIsImFycmF5VHlwZSIsIkdyYXBoUUxMaXN0IiwiR3JhcGhRTE5vbk51bGwiLCJ0eXBlIiwid2l0aE51bGxhYmxlVHlwZSIsImJsb2NrcyIsImJsb2NrVHlwZXMiLCJtYXAiLCJibG9jayIsInNsdWciLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiZnVsbE5hbWUiLCJHcmFwaFFMVW5pb25UeXBlIiwicmVzb2x2ZVR5cGUiLCJkYXRhIiwiYmxvY2tUeXBlIiwiY2hlY2tib3giLCJHcmFwaFFMQm9vbGVhbiIsImNvZGUiLCJHcmFwaFFMU3RyaW5nIiwiY29sbGFwc2libGUiLCJyZWR1Y2UiLCJvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzIiwic3ViRmllbGQiLCJhZGRTdWJGaWVsZCIsImRhdGUiLCJEYXRlVGltZVJlc29sdmVyIiwiZW1haWwiLCJFbWFpbEFkZHJlc3NSZXNvbHZlciIsImdyb3VwIiwiZ3JvdXBUeXBlcyIsImpzb24iLCJHcmFwaFFMSlNPTiIsIm51bWJlciIsIkdyYXBoUUxJbnQiLCJHcmFwaFFMRmxvYXQiLCJoYXNNYW55IiwicG9pbnQiLCJyYWRpbyIsIkdyYXBoUUxFbnVtVHlwZSIsInZhbHVlcyIsImZvcm1hdE9wdGlvbnMiLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvblRvIiwiaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNNYW55VmFsdWVzIiwicmVsYXRpb25zaGlwTmFtZSIsInJlbGF0aW9uVG9UeXBlIiwicmVsYXRpb25zIiwicmVsYXRpb24iLCJmb3JtYXROYW1lIiwidmFsdWUiLCJjb2xsZWN0aW9ucyIsIkdyYXBoUUxPYmplY3RUeXBlIiwicmVxIiwiY29sbGVjdGlvbiIsIm5ld2x5Q3JlYXRlZEJsb2NrVHlwZSIsInJlbGF0aW9uc2hpcEFyZ3MiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJmYWxsYmFja0xvY2FsZSIsImZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwiYXJncyIsImV4dGVuc2lvbnMiLCJjb21wbGV4aXR5IiwicmVzb2x2ZSIsInBhcmVudCIsImNvbnRleHQiLCJyZWxhdGVkQ29sbGVjdGlvblNsdWciLCJyZXN1bHRzIiwicmVzdWx0UHJvbWlzZXMiLCJjcmVhdGVQb3B1bGF0aW9uUHJvbWlzZSIsInJlbGF0ZWREb2MiLCJpIiwiaWQiLCJjb2xsZWN0aW9uU2x1ZyIsInJlc3VsdCIsInBheWxvYWREYXRhTG9hZGVyIiwibG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmFuc2FjdGlvbklEIiwiZm9yRWFjaCIsInB1c2giLCJQcm9taXNlIiwiYWxsIiwicmVsYXRlZERvY3VtZW50IiwicmljaFRleHQiLCJkZXB0aCIsImRlZmF1bHREZXB0aCIsImVkaXRvciIsImFmdGVyUmVhZFByb21pc2UiLCJzaG93SGlkZGVuRmllbGRzIiwic2libGluZ0RvYyIsInJvdyIsIm9iamVjdFR5cGVDb25maWdXaXRoUm93RmllbGRzIiwic2VsZWN0IiwidGFicyIsInRhYlNjaGVtYSIsInRhYiIsInRhYkhhc05hbWUiLCJ0YWJUeXBlcyIsInN1YkZpZWxkU2NoZW1hIiwidGV4dCIsInRleHRhcmVhIiwidXBsb2FkIiwidXBsb2FkTmFtZSIsInVwbG9hZEFyZ3MiLCJ3aGVyZUZpZWxkcyIsIndoZXJlIiwiYnVpbGRXaGVyZUlucHV0VHlwZSIsIm9iamVjdFNjaGVtYSIsImZpZWxkU2NoZW1hIl0sIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQsR0FDMUQsbUNBQW1DLEdBQ25DLHVDQUF1Qzs7OzsrQkFnbUJ2Qzs7O2VBQUE7Ozt5QkFubEJPO2dDQUNnRDtpQ0FFM0I7dUJBNEJEOzhCQUNIOzBFQUNNO21FQUNQO3NFQUNHOzRFQUNNO3dFQUNKO3lFQUNDOzs7Ozs7QUEyQjdCLFNBQVNBLGdCQUFnQixFQUN2QkMsSUFBSSxFQUNKQyxhQUFhLENBQUMsQ0FBQyxFQUNmQyxNQUFNLEVBQ05DLGFBQWEsRUFDYkMsVUFBVSxFQUNWQyxPQUFPLEVBQ0Y7SUFDTCxNQUFNQyxtQkFBbUI7UUFDdkJDLE9BQU8sQ0FBQ0Msa0JBQW9DQztZQUMxQyxNQUFNQyxnQkFDSkQsT0FBT0MsaUJBQWlCQyxJQUFBQSwwQkFBaUIsRUFBQ1AsWUFBWVEsSUFBQUEscUJBQU8sRUFBQ0gsTUFBTVQsSUFBSSxFQUFFO1lBRTVFLElBQUksQ0FBQ0ssUUFBUVEsS0FBSyxDQUFDQyxVQUFVLENBQUNKLGNBQWMsRUFBRTtnQkFDNUMsNkNBQTZDO2dCQUM3Q0wsUUFBUVEsS0FBSyxDQUFDQyxVQUFVLENBQUNKLGNBQWMsR0FBR1gsZ0JBQWdCO29CQUN4REMsTUFBTVU7b0JBQ05SLFFBQVFPLE1BQU1QLE1BQU07b0JBQ3BCQyxlQUFlWSxJQUFBQSx3QkFBZSxFQUFDTixPQUFPTjtvQkFDdENDLFlBQVlNO29CQUNaTDtnQkFDRjtZQUNGO1lBRUEsTUFBTVcsWUFBWSxJQUFJQyxvQkFBVyxDQUFDLElBQUlDLHVCQUFjLENBQUNiLFFBQVFRLEtBQUssQ0FBQ0MsVUFBVSxDQUFDSixjQUFjO1lBRTVGLE9BQU87Z0JBQ0wsR0FBR0YsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFBRW1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPTztnQkFBVztZQUMzRDtRQUNGO1FBQ0FLLFFBQVEsQ0FBQ2Isa0JBQW9DQztZQUMzQyxNQUFNYSxhQUFhYixNQUFNWSxNQUFNLENBQUNFLEdBQUcsQ0FBQyxDQUFDQztnQkFDbkMsSUFBSSxDQUFDbkIsUUFBUVEsS0FBSyxDQUFDUyxVQUFVLENBQUNFLE1BQU1DLElBQUksQ0FBQyxFQUFFO29CQUN6QyxNQUFNZixnQkFDSmMsT0FBT2QsaUJBQWlCYyxPQUFPRSxTQUFTQyxnQkFBZ0JmLElBQUFBLHFCQUFPLEVBQUNZLE1BQU1DLElBQUksRUFBRTtvQkFDOUUsNkNBQTZDO29CQUM3Q3BCLFFBQVFRLEtBQUssQ0FBQ1MsVUFBVSxDQUFDRSxNQUFNQyxJQUFJLENBQUMsR0FBRzFCLGdCQUFnQjt3QkFDckRDLE1BQU1VO3dCQUNOUixRQUFROytCQUNIc0IsTUFBTXRCLE1BQU07NEJBQ2Y7Z0NBQ0VGLE1BQU07Z0NBQ05tQixNQUFNOzRCQUNSO3lCQUNEO3dCQUNEaEI7d0JBQ0FDLFlBQVlNO3dCQUNaTDtvQkFDRjtnQkFDRjtnQkFFQSxPQUFPQSxRQUFRUSxLQUFLLENBQUNTLFVBQVUsQ0FBQ0UsTUFBTUMsSUFBSSxDQUFDO1lBQzdDO1lBRUEsTUFBTUcsV0FBV2pCLElBQUFBLDBCQUFpQixFQUFDUCxZQUFZUSxJQUFBQSxxQkFBTyxFQUFDSCxNQUFNVCxJQUFJLEVBQUU7WUFFbkUsTUFBTW1CLE9BQU8sSUFBSUYsb0JBQVcsQ0FDMUIsSUFBSUMsdUJBQWMsQ0FDaEIsSUFBSVcseUJBQWdCLENBQUM7Z0JBQ25CN0IsTUFBTTRCO2dCQUNORSxhQUFhLENBQUNDLE9BQVMxQixRQUFRUSxLQUFLLENBQUNTLFVBQVUsQ0FBQ1MsS0FBS0MsU0FBUyxDQUFDLENBQUNoQyxJQUFJO2dCQUNwRWEsT0FBT1M7WUFDVDtZQUlKLE9BQU87Z0JBQ0wsR0FBR2QsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFBRW1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPVTtnQkFBTTtZQUN0RDtRQUNGO1FBQ0FjLFVBQVUsQ0FBQ3pCLGtCQUFvQ0MsUUFBMEIsQ0FBQTtnQkFDdkUsR0FBR0QsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFBRW1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPeUIsdUJBQWMsRUFBRS9CO2dCQUFlO1lBQy9FLENBQUE7UUFDQWdDLE1BQU0sQ0FBQzNCLGtCQUFvQ0MsUUFBc0IsQ0FBQTtnQkFDL0QsR0FBR0QsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFBRW1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPMkIsc0JBQWEsRUFBRWpDO2dCQUFlO1lBQzlFLENBQUE7UUFDQWtDLGFBQWEsQ0FBQzdCLGtCQUFvQ0MsUUFDaERBLE1BQU1QLE1BQU0sQ0FBQ29DLE1BQU0sQ0FBQyxDQUFDQyx1Q0FBdUNDO2dCQUMxRCxNQUFNQyxjQUFjbkMsZ0JBQWdCLENBQUNrQyxTQUFTckIsSUFBSSxDQUFDO2dCQUNuRCxJQUFJc0IsYUFBYSxPQUFPQSxZQUFZRix1Q0FBdUNDO2dCQUMzRSxPQUFPRDtZQUNULEdBQUcvQjtRQUNMa0MsTUFBTSxDQUFDbEMsa0JBQW9DQyxRQUFzQixDQUFBO2dCQUMvRCxHQUFHRCxnQkFBZ0I7Z0JBQ25CLENBQUNDLE1BQU1ULElBQUksQ0FBQyxFQUFFO29CQUFFbUIsTUFBTUMsSUFBQUEseUJBQWdCLEVBQUNYLE9BQU9rQyxnQ0FBZ0IsRUFBRXhDO2dCQUFlO1lBQ2pGLENBQUE7UUFDQXlDLE9BQU8sQ0FBQ3BDLGtCQUFvQ0MsUUFBdUIsQ0FBQTtnQkFDakUsR0FBR0QsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFBRW1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPb0Msb0NBQW9CLEVBQUUxQztnQkFBZTtZQUNyRixDQUFBO1FBQ0EyQyxPQUFPLENBQUN0QyxrQkFBb0NDO1lBQzFDLE1BQU1DLGdCQUNKRCxPQUFPQyxpQkFBaUJDLElBQUFBLDBCQUFpQixFQUFDUCxZQUFZUSxJQUFBQSxxQkFBTyxFQUFDSCxNQUFNVCxJQUFJLEVBQUU7WUFFNUUsSUFBSSxDQUFDSyxRQUFRUSxLQUFLLENBQUNrQyxVQUFVLENBQUNyQyxjQUFjLEVBQUU7Z0JBQzVDLDZDQUE2QztnQkFDN0NMLFFBQVFRLEtBQUssQ0FBQ2tDLFVBQVUsQ0FBQ3JDLGNBQWMsR0FBR1gsZ0JBQWdCO29CQUN4REMsTUFBTVU7b0JBQ05SLFFBQVFPLE1BQU1QLE1BQU07b0JBQ3BCQyxlQUFlWSxJQUFBQSx3QkFBZSxFQUFDTixPQUFPTjtvQkFDdENDLFlBQVlNO29CQUNaTDtnQkFDRjtZQUNGO1lBRUEsT0FBTztnQkFDTCxHQUFHRyxnQkFBZ0I7Z0JBQ25CLENBQUNDLE1BQU1ULElBQUksQ0FBQyxFQUFFO29CQUFFbUIsTUFBTWQsUUFBUVEsS0FBSyxDQUFDa0MsVUFBVSxDQUFDckMsY0FBYztnQkFBQztZQUNoRTtRQUNGO1FBQ0FzQyxNQUFNLENBQUN4QyxrQkFBb0NDLFFBQXNCLENBQUE7Z0JBQy9ELEdBQUdELGdCQUFnQjtnQkFDbkIsQ0FBQ0MsTUFBTVQsSUFBSSxDQUFDLEVBQUU7b0JBQUVtQixNQUFNQyxJQUFBQSx5QkFBZ0IsRUFBQ1gsT0FBT3dDLDRCQUFXLEVBQUU5QztnQkFBZTtZQUM1RSxDQUFBO1FBQ0ErQyxRQUFRLENBQUMxQyxrQkFBb0NDO1lBQzNDLE1BQU1VLE9BQU9WLE9BQU9ULFNBQVMsT0FBT21ELG1CQUFVLEdBQUdDLHFCQUFZO1lBQzdELE9BQU87Z0JBQ0wsR0FBRzVDLGdCQUFnQjtnQkFDbkIsQ0FBQ0MsTUFBTVQsSUFBSSxDQUFDLEVBQUU7b0JBQ1ptQixNQUFNQyxJQUFBQSx5QkFBZ0IsRUFDcEJYLE9BQ0FBLE9BQU80QyxZQUFZLE9BQU8sSUFBSXBDLG9CQUFXLENBQUNFLFFBQVFBLE1BQ2xEaEI7Z0JBRUo7WUFDRjtRQUNGO1FBQ0FtRCxPQUFPLENBQUM5QyxrQkFBb0NDLFFBQXVCLENBQUE7Z0JBQ2pFLEdBQUdELGdCQUFnQjtnQkFDbkIsQ0FBQ0MsTUFBTVQsSUFBSSxDQUFDLEVBQUU7b0JBQ1ptQixNQUFNQyxJQUFBQSx5QkFBZ0IsRUFDcEJYLE9BQ0EsSUFBSVEsb0JBQVcsQ0FBQyxJQUFJQyx1QkFBYyxDQUFDa0MscUJBQVksSUFDL0NqRDtnQkFFSjtZQUNGLENBQUE7UUFDQW9ELE9BQU8sQ0FBQy9DLGtCQUFvQ0MsUUFBdUIsQ0FBQTtnQkFDakUsR0FBR0QsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFDWm1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUNwQlgsT0FDQSxJQUFJK0Msd0JBQWUsQ0FBQzt3QkFDbEJ4RCxNQUFNVyxJQUFBQSwwQkFBaUIsRUFBQ1AsWUFBWUssTUFBTVQsSUFBSTt3QkFDOUN5RCxRQUFRQyxJQUFBQSxzQkFBYSxFQUFDakQ7b0JBQ3hCLElBQ0FOO2dCQUVKO1lBQ0YsQ0FBQTtRQUNBd0QsY0FBYyxDQUFDbkQsa0JBQW9DQztZQUNqRCxNQUFNLEVBQUVtRCxVQUFVLEVBQUUsR0FBR25EO1lBQ3ZCLE1BQU1vRCw2QkFBNkJDLE1BQU1DLE9BQU8sQ0FBQ0g7WUFDakQsTUFBTUksZ0JBQWdCdkQsTUFBTTRDLE9BQU87WUFDbkMsTUFBTVksbUJBQW1CdEQsSUFBQUEsMEJBQWlCLEVBQUNQLFlBQVlRLElBQUFBLHFCQUFPLEVBQUNILE1BQU1ULElBQUksRUFBRTtZQUUzRSxJQUFJbUI7WUFDSixJQUFJK0MsaUJBQWlCO1lBRXJCLElBQUlKLE1BQU1DLE9BQU8sQ0FBQ0gsYUFBYTtnQkFDN0JNLGlCQUFpQixJQUFJVix3QkFBZSxDQUFDO29CQUNuQ3hELE1BQU0sQ0FBQyxFQUFFaUUsaUJBQWlCLFdBQVcsQ0FBQztvQkFDdENSLFFBQVFHLFdBQVd0QixNQUFNLENBQ3ZCLENBQUM2QixXQUFXQyxXQUFjLENBQUE7NEJBQ3hCLEdBQUdELFNBQVM7NEJBQ1osQ0FBQ0UsSUFBQUEsbUJBQVUsRUFBQ0QsVUFBVSxFQUFFO2dDQUN0QkUsT0FBT0Y7NEJBQ1Q7d0JBQ0YsQ0FBQSxHQUNBLENBQUM7Z0JBRUw7Z0JBRUEsTUFBTXZELFFBQVErQyxXQUFXckMsR0FBRyxDQUFDLENBQUM2QyxXQUFhL0QsUUFBUWtFLFdBQVcsQ0FBQ0gsU0FBUyxDQUFDMUMsT0FBTyxDQUFDUCxJQUFJO2dCQUVyRkEsT0FBTyxJQUFJcUQsMEJBQWlCLENBQUM7b0JBQzNCeEUsTUFBTSxDQUFDLEVBQUVpRSxpQkFBaUIsYUFBYSxDQUFDO29CQUN4Qy9ELFFBQVE7d0JBQ04wRCxZQUFZOzRCQUNWekMsTUFBTStDO3dCQUNSO3dCQUNBSSxPQUFPOzRCQUNMbkQsTUFBTSxJQUFJVSx5QkFBZ0IsQ0FBQztnQ0FDekI3QixNQUFNaUU7Z0NBQ04sTUFBTW5DLGFBQVlDLElBQUksRUFBRSxFQUFFMEMsR0FBRyxFQUFFO29DQUM3QixPQUFPcEUsUUFBUWtFLFdBQVcsQ0FBQ3hDLEtBQUsyQyxVQUFVLENBQUMsQ0FBQ2hELE9BQU8sQ0FBQ1AsSUFBSSxDQUFDbkIsSUFBSTtnQ0FDL0Q7Z0NBQ0FhOzRCQUNGO3dCQUNGO29CQUNGO2dCQUNGO1lBQ0YsT0FBTztnQkFDSCxDQUFBLEVBQUVNLElBQUksRUFBRSxHQUFHZCxRQUFRa0UsV0FBVyxDQUFDWCxXQUFXLENBQUNsQyxPQUFPLEFBQUQ7WUFDckQ7WUFFQSxzREFBc0Q7WUFDdEQsZ0VBQWdFO1lBQ2hFLDJFQUEyRTtZQUMzRSxtQ0FBbUM7WUFFbkNQLE9BQU9BLFFBQVF3RDtZQUVmLE1BQU1DLG1CQU1GLENBQUM7WUFFTCxJQUFJdkUsUUFBUXdFLE1BQU0sQ0FBQ0MsWUFBWSxFQUFFO2dCQUMvQkYsaUJBQWlCRyxNQUFNLEdBQUc7b0JBQ3hCNUQsTUFBTWQsUUFBUVEsS0FBSyxDQUFDbUUsZUFBZTtnQkFDckM7Z0JBRUFKLGlCQUFpQkssY0FBYyxHQUFHO29CQUNoQzlELE1BQU1kLFFBQVFRLEtBQUssQ0FBQ3FFLHVCQUF1QjtnQkFDN0M7WUFDRjtZQUVBLE1BQU12QixlQUFlO2dCQUNuQndCLE1BQU1QO2dCQUNOUSxZQUFZO29CQUFFQyxZQUFZO2dCQUFHO2dCQUM3QixNQUFNQyxTQUFRQyxNQUFNLEVBQUVKLElBQUksRUFBRUssT0FBTztvQkFDakMsTUFBTWxCLFFBQVFpQixNQUFNLENBQUM5RSxNQUFNVCxJQUFJLENBQUM7b0JBQ2hDLE1BQU0rRSxTQUFTSSxLQUFLSixNQUFNLElBQUlTLFFBQVFmLEdBQUcsQ0FBQ00sTUFBTTtvQkFDaEQsTUFBTUUsaUJBQWlCRSxLQUFLRixjQUFjLElBQUlPLFFBQVFmLEdBQUcsQ0FBQ1EsY0FBYztvQkFDeEUsSUFBSVEsd0JBQXdCaEYsTUFBTW1ELFVBQVU7b0JBRTVDLElBQUlJLGVBQWU7d0JBQ2pCLE1BQU0wQixVQUFVLEVBQUU7d0JBQ2xCLE1BQU1DLGlCQUFpQixFQUFFO3dCQUV6QixNQUFNQywwQkFBMEIsT0FBT0MsWUFBWUM7NEJBQ2pELElBQUlDLEtBQUtGOzRCQUNULElBQUlHLGlCQUFpQnZGLE1BQU1tRCxVQUFVOzRCQUVyQyxJQUFJQyw0QkFBNEI7Z0NBQzlCbUMsaUJBQWlCSCxXQUFXakMsVUFBVTtnQ0FDdENtQyxLQUFLRixXQUFXdkIsS0FBSzs0QkFDdkI7NEJBRUEsTUFBTTJCLFNBQVMsTUFBTVQsUUFBUWYsR0FBRyxDQUFDeUIsaUJBQWlCLENBQUNDLElBQUksQ0FDckRDLEtBQUtDLFNBQVMsQ0FBQztnQ0FDYmIsUUFBUWYsR0FBRyxDQUFDNkIsYUFBYTtnQ0FDekJOO2dDQUNBRDtnQ0FDQTtnQ0FDQTtnQ0FDQWhCO2dDQUNBRTtnQ0FDQTtnQ0FDQTs2QkFDRDs0QkFHSCxJQUFJZ0IsUUFBUTtnQ0FDVixJQUFJcEMsNEJBQTRCO29DQUM5QjZCLE9BQU8sQ0FBQ0ksRUFBRSxHQUFHO3dDQUNYbEMsWUFBWW9DO3dDQUNaMUIsT0FBTzs0Q0FDTCxHQUFHMkIsTUFBTTs0Q0FDVHZCLFlBQVlzQjt3Q0FDZDtvQ0FDRjtnQ0FDRixPQUFPO29DQUNMTixPQUFPLENBQUNJLEVBQUUsR0FBR0c7Z0NBQ2Y7NEJBQ0Y7d0JBQ0Y7d0JBRUEsSUFBSTNCLE9BQU87NEJBQ1RBLE1BQU1pQyxPQUFPLENBQUMsQ0FBQ1YsWUFBWUM7Z0NBQ3pCSCxlQUFlYSxJQUFJLENBQUNaLHdCQUF3QkMsWUFBWUM7NEJBQzFEO3dCQUNGO3dCQUVBLE1BQU1XLFFBQVFDLEdBQUcsQ0FBQ2Y7d0JBQ2xCLE9BQU9EO29CQUNUO29CQUVBLElBQUlLLEtBQUt6QjtvQkFDVCxJQUFJVCw4QkFBOEJTLE9BQU87d0JBQ3ZDeUIsS0FBS3pCLE1BQU1BLEtBQUs7d0JBQ2hCbUIsd0JBQXdCbkIsTUFBTVYsVUFBVTtvQkFDMUM7b0JBRUEsSUFBSW1DLElBQUk7d0JBQ04sTUFBTVksa0JBQWtCLE1BQU1uQixRQUFRZixHQUFHLENBQUN5QixpQkFBaUIsQ0FBQ0MsSUFBSSxDQUM5REMsS0FBS0MsU0FBUyxDQUFDOzRCQUNiYixRQUFRZixHQUFHLENBQUM2QixhQUFhOzRCQUN6QmI7NEJBQ0FNOzRCQUNBOzRCQUNBOzRCQUNBaEI7NEJBQ0FFOzRCQUNBOzRCQUNBO3lCQUNEO3dCQUdILElBQUkwQixpQkFBaUI7NEJBQ25CLElBQUk5Qyw0QkFBNEI7Z0NBQzlCLE9BQU87b0NBQ0xELFlBQVk2QjtvQ0FDWm5CLE9BQU87d0NBQ0wsR0FBR3FDLGVBQWU7d0NBQ2xCakMsWUFBWWU7b0NBQ2Q7Z0NBQ0Y7NEJBQ0Y7NEJBRUEsT0FBT2tCO3dCQUNUO3dCQUVBLE9BQU87b0JBQ1Q7b0JBRUEsT0FBTztnQkFDVDtnQkFDQXhGLE1BQU1DLElBQUFBLHlCQUFnQixFQUNwQlgsT0FDQXVELGdCQUFnQixJQUFJL0Msb0JBQVcsQ0FBQyxJQUFJQyx1QkFBYyxDQUFDQyxTQUFTQSxNQUM1RGhCO1lBRUo7WUFFQSxPQUFPO2dCQUNMLEdBQUdLLGdCQUFnQjtnQkFDbkIsQ0FBQ0MsTUFBTVQsSUFBSSxDQUFDLEVBQUUyRDtZQUNoQjtRQUNGO1FBQ0FpRCxVQUFVLENBQUNwRyxrQkFBb0NDLFFBQTBCLENBQUE7Z0JBQ3ZFLEdBQUdELGdCQUFnQjtnQkFDbkIsQ0FBQ0MsTUFBTVQsSUFBSSxDQUFDLEVBQUU7b0JBQ1ptRixNQUFNO3dCQUNKMEIsT0FBTzs0QkFDTDFGLE1BQU1nQyxtQkFBVTt3QkFDbEI7b0JBQ0Y7b0JBQ0EsTUFBTW1DLFNBQVFDLE1BQU0sRUFBRUosSUFBSSxFQUFFSyxPQUFPO3dCQUNqQyxJQUFJcUIsUUFBUXhHLFFBQVF3RSxNQUFNLENBQUNpQyxZQUFZO3dCQUN2QyxJQUFJLE9BQU8zQixLQUFLMEIsS0FBSyxLQUFLLGFBQWFBLFFBQVExQixLQUFLMEIsS0FBSzt3QkFDekQsTUFBTUUsU0FBMEJ0RyxPQUFPc0csVUFBVTFHLFNBQVN3RSxRQUFRa0M7d0JBRWxFLElBQUlBLFFBQVFDLGtCQUFrQjs0QkFDNUIsTUFBTUQsUUFBUUMsaUJBQWlCO2dDQUM3Qkg7Z0NBQ0FwRztnQ0FDQWdFLEtBQUtlLFFBQVFmLEdBQUc7Z0NBQ2hCd0Msa0JBQWtCO2dDQUNsQkMsWUFBWTNCOzRCQUNkO3dCQUNGO3dCQUVBLE9BQU9BLE1BQU0sQ0FBQzlFLE1BQU1ULElBQUksQ0FBQztvQkFDM0I7b0JBQ0FtQixNQUFNQyxJQUFBQSx5QkFBZ0IsRUFBQ1gsT0FBT3dDLDRCQUFXLEVBQUU5QztnQkFDN0M7WUFDRixDQUFBO1FBQ0FnSCxLQUFLLENBQUMzRyxrQkFBb0NDLFFBQ3hDQSxNQUFNUCxNQUFNLENBQUNvQyxNQUFNLENBQUMsQ0FBQzhFLCtCQUErQjVFO2dCQUNsRCxNQUFNQyxjQUFjbkMsZ0JBQWdCLENBQUNrQyxTQUFTckIsSUFBSSxDQUFDO2dCQUNuRCxJQUFJc0IsYUFBYSxPQUFPQSxZQUFZMkUsK0JBQStCNUU7Z0JBQ25FLE9BQU80RTtZQUNULEdBQUc1RztRQUNMNkcsUUFBUSxDQUFDN0csa0JBQW9DQztZQUMzQyxNQUFNbUIsV0FBV2pCLElBQUFBLDBCQUFpQixFQUFDUCxZQUFZSyxNQUFNVCxJQUFJO1lBRXpELElBQUltQixPQUFvQixJQUFJcUMsd0JBQWUsQ0FBQztnQkFDMUN4RCxNQUFNNEI7Z0JBQ042QixRQUFRQyxJQUFBQSxzQkFBYSxFQUFDakQ7WUFDeEI7WUFFQVUsT0FBT1YsTUFBTTRDLE9BQU8sR0FBRyxJQUFJcEMsb0JBQVcsQ0FBQyxJQUFJQyx1QkFBYyxDQUFDQyxTQUFTQTtZQUNuRUEsT0FBT0MsSUFBQUEseUJBQWdCLEVBQUNYLE9BQU9VLE1BQU1oQjtZQUVyQyxPQUFPO2dCQUNMLEdBQUdLLGdCQUFnQjtnQkFDbkIsQ0FBQ0MsTUFBTVQsSUFBSSxDQUFDLEVBQUU7b0JBQUVtQjtnQkFBSztZQUN2QjtRQUNGO1FBQ0FtRyxNQUFNLENBQUM5RyxrQkFBb0NDLFFBQ3pDQSxNQUFNNkcsSUFBSSxDQUFDaEYsTUFBTSxDQUFDLENBQUNpRixXQUFXQztnQkFDNUIsSUFBSUMsSUFBQUEsaUJBQVUsRUFBQ0QsTUFBTTtvQkFDbkIsTUFBTTlHLGdCQUNKOEcsS0FBSzlHLGlCQUFpQkMsSUFBQUEsMEJBQWlCLEVBQUNQLFlBQVlRLElBQUFBLHFCQUFPLEVBQUM0RyxJQUFJeEgsSUFBSSxFQUFFO29CQUV4RSxJQUFJLENBQUNLLFFBQVFRLEtBQUssQ0FBQzZHLFFBQVEsQ0FBQ2hILGNBQWMsRUFBRTt3QkFDMUMsNkNBQTZDO3dCQUM3Q0wsUUFBUVEsS0FBSyxDQUFDNkcsUUFBUSxDQUFDaEgsY0FBYyxHQUFHWCxnQkFBZ0I7NEJBQ3REQyxNQUFNVTs0QkFDTlIsUUFBUXNILElBQUl0SCxNQUFNOzRCQUNsQkM7NEJBQ0FDLFlBQVlNOzRCQUNaTDt3QkFDRjtvQkFDRjtvQkFFQSxPQUFPO3dCQUNMLEdBQUdrSCxTQUFTO3dCQUNaLENBQUNDLElBQUl4SCxJQUFJLENBQUMsRUFBRTs0QkFBRW1CLE1BQU1kLFFBQVFRLEtBQUssQ0FBQzZHLFFBQVEsQ0FBQ2hILGNBQWM7d0JBQUM7b0JBQzVEO2dCQUNGO2dCQUVBLE9BQU87b0JBQ0wsR0FBRzZHLFNBQVM7b0JBQ1osR0FBR0MsSUFBSXRILE1BQU0sQ0FBQ29DLE1BQU0sQ0FBQyxDQUFDcUYsZ0JBQWdCbkY7d0JBQ3BDLE1BQU1DLGNBQWNuQyxnQkFBZ0IsQ0FBQ2tDLFNBQVNyQixJQUFJLENBQUM7d0JBQ25ELElBQUlzQixhQUFhLE9BQU9BLFlBQVlrRixnQkFBZ0JuRjt3QkFDcEQsT0FBT21GO29CQUNULEdBQUdKLFVBQVU7Z0JBQ2Y7WUFDRixHQUFHL0c7UUFDTG9ILE1BQU0sQ0FBQ3BILGtCQUFvQ0MsUUFBc0IsQ0FBQTtnQkFDL0QsR0FBR0QsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFBRW1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPMkIsc0JBQWEsRUFBRWpDO2dCQUFlO1lBQzlFLENBQUE7UUFDQTBILFVBQVUsQ0FBQ3JILGtCQUFvQ0MsUUFBMEIsQ0FBQTtnQkFDdkUsR0FBR0QsZ0JBQWdCO2dCQUNuQixDQUFDQyxNQUFNVCxJQUFJLENBQUMsRUFBRTtvQkFBRW1CLE1BQU1DLElBQUFBLHlCQUFnQixFQUFDWCxPQUFPMkIsc0JBQWEsRUFBRWpDO2dCQUFlO1lBQzlFLENBQUE7UUFDQTJILFFBQVEsQ0FBQ3RILGtCQUFvQ0M7WUFDM0MsTUFBTSxFQUFFbUQsVUFBVSxFQUFFLEdBQUduRDtZQUV2QixNQUFNc0gsYUFBYXBILElBQUFBLDBCQUFpQixFQUFDUCxZQUFZUSxJQUFBQSxxQkFBTyxFQUFDSCxNQUFNVCxJQUFJLEVBQUU7WUFFckUsc0RBQXNEO1lBQ3RELGdFQUFnRTtZQUNoRSwyRUFBMkU7WUFDM0UsbUNBQW1DO1lBRW5DLE1BQU1tQixPQUFPQyxJQUFBQSx5QkFBZ0IsRUFDM0JYLE9BQ0FKLFFBQVFrRSxXQUFXLENBQUNYLFdBQVcsQ0FBQ2xDLE9BQU8sQ0FBQ1AsSUFBSSxJQUFJd0QsdUJBQ2hEeEU7WUFHRixNQUFNNkgsYUFBYSxDQUFDO1lBRXBCLElBQUkzSCxRQUFRd0UsTUFBTSxDQUFDQyxZQUFZLEVBQUU7Z0JBQy9Ca0QsV0FBV2pELE1BQU0sR0FBRztvQkFDbEI1RCxNQUFNZCxRQUFRUSxLQUFLLENBQUNtRSxlQUFlO2dCQUNyQztnQkFFQWdELFdBQVcvQyxjQUFjLEdBQUc7b0JBQzFCOUQsTUFBTWQsUUFBUVEsS0FBSyxDQUFDcUUsdUJBQXVCO2dCQUM3QztZQUNGO1lBRUEsTUFBTU8sd0JBQXdCaEYsTUFBTW1ELFVBQVU7WUFFOUMsTUFBTWtFLFNBQVM7Z0JBQ2IzQyxNQUFNNkM7Z0JBQ041QyxZQUFZO29CQUFFQyxZQUFZO2dCQUFHO2dCQUM3QixNQUFNQyxTQUFRQyxNQUFNLEVBQUVKLElBQUksRUFBRUssT0FBTztvQkFDakMsTUFBTWxCLFFBQVFpQixNQUFNLENBQUM5RSxNQUFNVCxJQUFJLENBQUM7b0JBQ2hDLE1BQU0rRSxTQUFTSSxLQUFLSixNQUFNLElBQUlTLFFBQVFmLEdBQUcsQ0FBQ00sTUFBTTtvQkFDaEQsTUFBTUUsaUJBQWlCRSxLQUFLRixjQUFjLElBQUlPLFFBQVFmLEdBQUcsQ0FBQ1EsY0FBYztvQkFDeEUsTUFBTWMsS0FBS3pCO29CQUVYLElBQUl5QixJQUFJO3dCQUNOLE1BQU1ZLGtCQUFrQixNQUFNbkIsUUFBUWYsR0FBRyxDQUFDeUIsaUJBQWlCLENBQUNDLElBQUksQ0FDOURDLEtBQUtDLFNBQVMsQ0FBQzs0QkFDYmIsUUFBUWYsR0FBRyxDQUFDNkIsYUFBYTs0QkFDekJiOzRCQUNBTTs0QkFDQTs0QkFDQTs0QkFDQWhCOzRCQUNBRTs0QkFDQTs0QkFDQTt5QkFDRDt3QkFHSCxPQUFPMEIsbUJBQW1CO29CQUM1QjtvQkFFQSxPQUFPO2dCQUNUO2dCQUNBeEY7WUFDRjtZQUVBLE1BQU04RyxjQUFjNUgsUUFBUWtFLFdBQVcsQ0FBQ1gsV0FBVyxDQUFDaUIsTUFBTSxDQUFDM0UsTUFBTTtZQUVqRTRILE9BQU8zQyxJQUFJLENBQUMrQyxLQUFLLEdBQUc7Z0JBQ2xCL0csTUFBTWdILElBQUFBLDRCQUFtQixFQUFDO29CQUN4Qm5JLE1BQU0rSDtvQkFDTjdILFFBQVErSDtvQkFDUjdILFlBQVkySDtvQkFDWjFIO2dCQUNGO1lBQ0Y7WUFFQSxPQUFPO2dCQUNMLEdBQUdHLGdCQUFnQjtnQkFDbkIsQ0FBQ0MsTUFBTVQsSUFBSSxDQUFDLEVBQUU4SDtZQUNoQjtRQUNGO0lBQ0Y7SUFFQSxNQUFNTSxlQUFlO1FBQ25CcEk7UUFDQUUsUUFBUSxJQUNOQSxPQUFPb0MsTUFBTSxDQUFDLENBQUM5QixrQkFBa0JDO2dCQUMvQixNQUFNNEgsY0FBYy9ILGdCQUFnQixDQUFDRyxNQUFNVSxJQUFJLENBQUM7Z0JBRWhELElBQUksT0FBT2tILGdCQUFnQixZQUFZO29CQUNyQyxPQUFPN0g7Z0JBQ1Q7Z0JBRUEsT0FBTztvQkFDTCxHQUFHQSxnQkFBZ0I7b0JBQ25CLEdBQUc2SCxZQUFZN0gsa0JBQWtCQyxNQUFNO2dCQUN6QztZQUNGLEdBQUdSO0lBQ1A7SUFFQSxNQUFNMEUsd0JBQXdCLElBQUlILDBCQUFpQixDQUFDNEQ7SUFFcEQsT0FBT3pEO0FBQ1Q7TUFFQSxXQUFlNUUifQ==
472
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE9iamVjdFR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFMRmllbGRDb25maWcsIEdyYXBoUUxUeXBlIH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHtcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxPYmplY3RUeXBlLFxuICBHcmFwaFFMU3RyaW5nLFxuICBHcmFwaFFMVW5pb25UeXBlLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHsgR3JhcGhRTEpTT04gfSBmcm9tICdncmFwaHFsLXR5cGUtanNvbidcblxuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEdyb3VwRmllbGQsXG4gIEpTT05GaWVsZCxcbiAgTnVtYmVyRmllbGQsXG4gIFBvaW50RmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFJlbGF0aW9uc2hpcEZpZWxkLFxuICBSaWNoVGV4dEZpZWxkLFxuICBSb3dGaWVsZCxcbiAgU2VsZWN0RmllbGQsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5cbmltcG9ydCB7IHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHsgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgY29tYmluZVBhcmVudE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2NvbWJpbmVQYXJlbnROYW1lJ1xuaW1wb3J0IGZvcm1hdE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZm9ybWF0T3B0aW9ucyBmcm9tICcuLi91dGlsaXRpZXMvZm9ybWF0T3B0aW9ucydcbmltcG9ydCBidWlsZFdoZXJlSW5wdXRUeXBlIGZyb20gJy4vYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBpc0ZpZWxkTnVsbGFibGUgZnJvbSAnLi9pc0ZpZWxkTnVsbGFibGUnXG5pbXBvcnQgd2l0aE51bGxhYmxlVHlwZSBmcm9tICcuL3dpdGhOdWxsYWJsZVR5cGUnXG5cbnR5cGUgTG9jYWxlSW5wdXRUeXBlID0ge1xuICBmYWxsYmFja0xvY2FsZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbiAgbG9jYWxlOiB7XG4gICAgdHlwZTogR3JhcGhRTFR5cGVcbiAgfVxuICB3aGVyZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZUNvbmZpZyA9IHtcbiAgW3BhdGg6IHN0cmluZ106IEdyYXBoUUxGaWVsZENvbmZpZzxhbnksIGFueT5cbn1cblxudHlwZSBBcmdzID0ge1xuICBiYXNlRmllbGRzPzogT2JqZWN0VHlwZUNvbmZpZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VOdWxsYWJsZT86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudE5hbWU6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG59XG5cbmZ1bmN0aW9uIGJ1aWxkT2JqZWN0VHlwZSh7XG4gIG5hbWUsXG4gIGJhc2VGaWVsZHMgPSB7fSxcbiAgZmllbGRzLFxuICBmb3JjZU51bGxhYmxlLFxuICBwYXJlbnROYW1lLFxuICBwYXlsb2FkLFxufTogQXJncyk6IEdyYXBoUUxPYmplY3RUeXBlIHtcbiAgY29uc3QgZmllbGRUb1NjaGVtYU1hcCA9IHtcbiAgICBhcnJheTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBBcnJheUZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuYXJyYXlUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJyYXlUeXBlID0gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbChwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgYXJyYXlUeXBlKSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgYmxvY2tzOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEJsb2NrRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrVHlwZXMgPSBmaWVsZC5ibG9ja3MubWFwKChibG9jaykgPT4ge1xuICAgICAgICBpZiAoIXBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXSkge1xuICAgICAgICAgIGNvbnN0IGludGVyZmFjZU5hbWUgPVxuICAgICAgICAgICAgYmxvY2s/LmludGVyZmFjZU5hbWUgfHwgYmxvY2s/LmdyYXBoUUw/LnNpbmd1bGFyTmFtZSB8fCB0b1dvcmRzKGJsb2NrLnNsdWcsIHRydWUpXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgcGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgIG5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgLi4uYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Jsb2NrVHlwZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXVxuICAgICAgfSlcblxuICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpKVxuXG4gICAgICBjb25zdCB0eXBlID0gbmV3IEdyYXBoUUxMaXN0KFxuICAgICAgICBuZXcgR3JhcGhRTE5vbk51bGwoXG4gICAgICAgICAgbmV3IEdyYXBoUUxVbmlvblR5cGUoe1xuICAgICAgICAgICAgbmFtZTogZnVsbE5hbWUsXG4gICAgICAgICAgICByZXNvbHZlVHlwZTogKGRhdGEpID0+IHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tkYXRhLmJsb2NrVHlwZV0ubmFtZSxcbiAgICAgICAgICAgIHR5cGVzOiBibG9ja1R5cGVzLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSkgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNoZWNrYm94OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENoZWNrYm94RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxCb29sZWFuLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvZGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29kZUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvbGxhcHNpYmxlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRTdWJGaWVsZCA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZFN1YkZpZWxkKSByZXR1cm4gYWRkU3ViRmllbGQob2JqZWN0VHlwZUNvbmZpZ1dpdGhDb2xsYXBzaWJsZUZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzXG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICBkYXRlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IERhdGVGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgRGF0ZVRpbWVSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBlbWFpbDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBFbWFpbEZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBFbWFpbEFkZHJlc3NSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBncm91cDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBHcm91cEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAganNvbjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIG51bWJlcjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZmllbGQ/Lmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUG9pbnRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxGbG9hdCkpLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJhZGlvOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKSxcbiAgICAgICAgICAgIHZhbHVlczogZm9ybWF0T3B0aW9ucyhmaWVsZCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVsYXRpb25zaGlwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICBjb25zdCBpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkocmVsYXRpb25UbylcbiAgICAgIGNvbnN0IGhhc01hbnlWYWx1ZXMgPSBmaWVsZC5oYXNNYW55XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgbGV0IHR5cGVcbiAgICAgIGxldCByZWxhdGlvblRvVHlwZSA9IG51bGxcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykpIHtcbiAgICAgICAgcmVsYXRpb25Ub1R5cGUgPSBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxhdGlvbnNoaXBOYW1lfV9SZWxhdGlvblRvYCxcbiAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgcmVsYXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnJlbGF0aW9ucyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUocmVsYXRpb24pXToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZWxhdGlvbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCB0eXBlcyA9IHJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4gcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvbl0uZ3JhcGhRTC50eXBlKVxuXG4gICAgICAgIHR5cGUgPSBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGAke3JlbGF0aW9uc2hpcE5hbWV9X1JlbGF0aW9uc2hpcGAsXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICByZWxhdGlvblRvOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHJlbGF0aW9uVG9UeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMVW5pb25UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiByZWxhdGlvbnNoaXBOYW1lLFxuICAgICAgICAgICAgICAgIGFzeW5jIHJlc29sdmVUeXBlKGRhdGEsIHsgcmVxIH0pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkLmNvbGxlY3Rpb25zW2RhdGEuY29sbGVjdGlvbl0uZ3JhcGhRTC50eXBlLm5hbWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGVzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsoeyB0eXBlIH0gPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dLmdyYXBoUUwpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSByZWxhdGlvbnNoaXBUeXBlIGlzIHVuZGVmaW5lZCBhdCB0aGlzIHBvaW50LFxuICAgICAgLy8gaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGlzIGJsb2NrVHlwZSBjYW4gaGF2ZSBhIHJlbGF0aW9uc2hpcFxuICAgICAgLy8gdG8gaXRzZWxmLiBUaGVyZWZvcmUsIHdlIHNldCB0aGUgcmVsYXRpb25zaGlwVHlwZSBlcXVhbCB0byB0aGUgYmxvY2tUeXBlXG4gICAgICAvLyB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjcmVhdGVkLlxuXG4gICAgICB0eXBlID0gdHlwZSB8fCBuZXdseUNyZWF0ZWRCbG9ja1R5cGVcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwQXJnczoge1xuICAgICAgICBmYWxsYmFja0xvY2FsZT86IHVua25vd25cbiAgICAgICAgbGltaXQ/OiB1bmtub3duXG4gICAgICAgIGxvY2FsZT86IHVua25vd25cbiAgICAgICAgcGFnZT86IHVua25vd25cbiAgICAgICAgd2hlcmU/OiB1bmtub3duXG4gICAgICB9ID0ge31cblxuICAgICAgaWYgKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmxvY2FsZSA9IHtcbiAgICAgICAgICB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbGF0aW9uc2hpcEFyZ3MuZmFsbGJhY2tMb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSB7XG4gICAgICAgIGFyZ3M6IHJlbGF0aW9uc2hpcEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMTAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGxldCByZWxhdGVkQ29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICBpZiAoaGFzTWFueVZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjb25zdCByZXN1bHRQcm9taXNlcyA9IFtdXG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVBvcHVsYXRpb25Qcm9taXNlID0gYXN5bmMgKHJlbGF0ZWREb2MsIGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGlkID0gcmVsYXRlZERvY1xuICAgICAgICAgICAgICBsZXQgY29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGVkRG9jLnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBpZCA9IHJlbGF0ZWREb2MudmFsdWVcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0c1tpXSA9IHJlc3VsdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYywgaSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdFByb21pc2VzLnB1c2goY3JlYXRlUG9wdWxhdGlvblByb21pc2UocmVsYXRlZERvYywgaSkpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHJlc3VsdFByb21pc2VzKVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgaWQgPSB2YWx1ZVxuICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgaWQgPSB2YWx1ZS52YWx1ZVxuICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gdmFsdWUucmVsYXRpb25Ub1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZERvY3VtZW50KSB7XG4gICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiByZWxhdGVkQ29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZWxhdGVkRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlbGF0ZWREb2N1bWVudFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgaGFzTWFueVZhbHVlcyA/IG5ldyBHcmFwaFFMTGlzdChuZXcgR3JhcGhRTE5vbk51bGwodHlwZSkpIDogdHlwZSxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICApLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHJlbGF0aW9uc2hpcCxcbiAgICAgIH1cbiAgICB9LFxuICAgIHJpY2hUZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJpY2hUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBkZXB0aDoge1xuICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhc3luYyByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dCkge1xuICAgICAgICAgIGxldCBkZXB0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHREZXB0aFxuICAgICAgICAgIGlmICh0eXBlb2YgYXJncy5kZXB0aCAhPT0gJ3VuZGVmaW5lZCcpIGRlcHRoID0gYXJncy5kZXB0aFxuICAgICAgICAgIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gZmllbGQ/LmVkaXRvclxuXG4gICAgICAgICAgaWYgKGVkaXRvcj8uYWZ0ZXJSZWFkUHJvbWlzZSkge1xuICAgICAgICAgICAgYXdhaXQgZWRpdG9yPy5hZnRlclJlYWRQcm9taXNlKHtcbiAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICByZXE6IGNvbnRleHQucmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogcGFyZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcGFyZW50W2ZpZWxkLm5hbWVdXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcm93OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJvd0ZpZWxkKSA9PlxuICAgICAgZmllbGQuZmllbGRzLnJlZHVjZSgob2JqZWN0VHlwZUNvbmZpZ1dpdGhSb3dGaWVsZHMsIHN1YkZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkc1xuICAgICAgfSwgb2JqZWN0VHlwZUNvbmZpZyksXG4gICAgc2VsZWN0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFNlbGVjdEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpXG5cbiAgICAgIGxldCB0eXBlOiBHcmFwaFFMVHlwZSA9IG5ldyBHcmFwaFFMRW51bVR5cGUoe1xuICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgdmFsdWVzOiBmb3JtYXRPcHRpb25zKGZpZWxkKSxcbiAgICAgIH0pXG5cbiAgICAgIHR5cGUgPSBmaWVsZC5oYXNNYW55ID8gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbCh0eXBlKSkgOiB0eXBlXG4gICAgICB0eXBlID0gd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSwgZm9yY2VOdWxsYWJsZSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYnM6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGFic0ZpZWxkKSA9PlxuICAgICAgZmllbGQudGFicy5yZWR1Y2UoKHRhYlNjaGVtYSwgdGFiKSA9PiB7XG4gICAgICAgIGlmICh0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgICAgIHRhYj8uaW50ZXJmYWNlTmFtZSB8fCBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKHRhYi5uYW1lLCB0cnVlKSlcblxuICAgICAgICAgIGlmICghcGF5bG9hZC50eXBlcy50YWJUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGFiU2NoZW1hLFxuICAgICAgICAgICAgW3RhYi5uYW1lXTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50YWJTY2hlbWEsXG4gICAgICAgICAgLi4udGFiLmZpZWxkcy5yZWR1Y2UoKHN1YkZpZWxkU2NoZW1hLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpXG4gICAgICAgICAgICByZXR1cm4gc3ViRmllbGRTY2hlbWFcbiAgICAgICAgICB9LCB0YWJTY2hlbWEpLFxuICAgICAgICB9XG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICB0ZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICB0ZXh0YXJlYTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0YXJlYUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHVwbG9hZDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBVcGxvYWRGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgeyByZWxhdGlvblRvIH0gPSBmaWVsZFxuXG4gICAgICBjb25zdCB1cGxvYWROYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgLy8gSWYgdGhlIHJlbGF0aW9uc2hpcFR5cGUgaXMgdW5kZWZpbmVkIGF0IHRoaXMgcG9pbnQsXG4gICAgICAvLyBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IHRoaXMgYmxvY2tUeXBlIGNhbiBoYXZlIGEgcmVsYXRpb25zaGlwXG4gICAgICAvLyB0byBpdHNlbGYuIFRoZXJlZm9yZSwgd2Ugc2V0IHRoZSByZWxhdGlvbnNoaXBUeXBlIGVxdWFsIHRvIHRoZSBibG9ja1R5cGVcbiAgICAgIC8vIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGNyZWF0ZWQuXG5cbiAgICAgIGNvbnN0IHR5cGUgPSB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5ncmFwaFFMLnR5cGUgfHwgbmV3bHlDcmVhdGVkQmxvY2tUeXBlLFxuICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgKVxuXG4gICAgICBjb25zdCB1cGxvYWRBcmdzID0ge30gYXMgTG9jYWxlSW5wdXRUeXBlXG5cbiAgICAgIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgdXBsb2FkQXJncy5sb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cblxuICAgICAgICB1cGxvYWRBcmdzLmZhbGxiYWNrTG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gZmllbGQucmVsYXRpb25Ub1xuXG4gICAgICBjb25zdCB1cGxvYWQgPSB7XG4gICAgICAgIGFyZ3M6IHVwbG9hZEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMjAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGNvbnN0IGlkID0gdmFsdWVcblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICByZXR1cm4gcmVsYXRlZERvY3VtZW50IHx8IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9LFxuICAgICAgICB0eXBlLFxuICAgICAgfVxuXG4gICAgICBjb25zdCB3aGVyZUZpZWxkcyA9IHBheWxvYWQuY29sbGVjdGlvbnNbcmVsYXRpb25Ub10uY29uZmlnLmZpZWxkc1xuXG4gICAgICB1cGxvYWQuYXJncy53aGVyZSA9IHtcbiAgICAgICAgdHlwZTogYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICAgICAgbmFtZTogdXBsb2FkTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IHdoZXJlRmllbGRzLFxuICAgICAgICAgIHBhcmVudE5hbWU6IHVwbG9hZE5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSksXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogdXBsb2FkLFxuICAgICAgfVxuICAgIH0sXG4gIH1cblxuICBjb25zdCBvYmplY3RTY2hlbWEgPSB7XG4gICAgbmFtZSxcbiAgICBmaWVsZHM6ICgpID0+XG4gICAgICBmaWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkU2NoZW1hICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgICAuLi5maWVsZFNjaGVtYShvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCksXG4gICAgICAgIH1cbiAgICAgIH0sIGJhc2VGaWVsZHMpLFxuICB9XG5cbiAgY29uc3QgbmV3bHlDcmVhdGVkQmxvY2tUeXBlID0gbmV3IEdyYXBoUUxPYmplY3RUeXBlKG9iamVjdFNjaGVtYSlcblxuICByZXR1cm4gbmV3bHlDcmVhdGVkQmxvY2tUeXBlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkT2JqZWN0VHlwZVxuIl0sIm5hbWVzIjpbImJ1aWxkT2JqZWN0VHlwZSIsIm5hbWUiLCJiYXNlRmllbGRzIiwiZmllbGRzIiwiZm9yY2VOdWxsYWJsZSIsInBhcmVudE5hbWUiLCJwYXlsb2FkIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5Iiwib2JqZWN0VHlwZUNvbmZpZyIsImZpZWxkIiwiaW50ZXJmYWNlTmFtZSIsImNvbWJpbmVQYXJlbnROYW1lIiwidG9Xb3JkcyIsInR5cGVzIiwiYXJyYXlUeXBlcyIsImlzRmllbGROdWxsYWJsZSIsImFycmF5VHlwZSIsIkdyYXBoUUxMaXN0IiwiR3JhcGhRTE5vbk51bGwiLCJ0eXBlIiwid2l0aE51bGxhYmxlVHlwZSIsImJsb2NrcyIsImJsb2NrVHlwZXMiLCJtYXAiLCJibG9jayIsInNsdWciLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiZnVsbE5hbWUiLCJHcmFwaFFMVW5pb25UeXBlIiwicmVzb2x2ZVR5cGUiLCJkYXRhIiwiYmxvY2tUeXBlIiwiY2hlY2tib3giLCJHcmFwaFFMQm9vbGVhbiIsImNvZGUiLCJHcmFwaFFMU3RyaW5nIiwiY29sbGFwc2libGUiLCJyZWR1Y2UiLCJvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzIiwic3ViRmllbGQiLCJhZGRTdWJGaWVsZCIsImRhdGUiLCJEYXRlVGltZVJlc29sdmVyIiwiZW1haWwiLCJFbWFpbEFkZHJlc3NSZXNvbHZlciIsImdyb3VwIiwiZ3JvdXBUeXBlcyIsImpzb24iLCJHcmFwaFFMSlNPTiIsIm51bWJlciIsIkdyYXBoUUxJbnQiLCJHcmFwaFFMRmxvYXQiLCJoYXNNYW55IiwicG9pbnQiLCJyYWRpbyIsIkdyYXBoUUxFbnVtVHlwZSIsInZhbHVlcyIsImZvcm1hdE9wdGlvbnMiLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvblRvIiwiaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNNYW55VmFsdWVzIiwicmVsYXRpb25zaGlwTmFtZSIsInJlbGF0aW9uVG9UeXBlIiwicmVsYXRpb25zIiwicmVsYXRpb24iLCJmb3JtYXROYW1lIiwidmFsdWUiLCJjb2xsZWN0aW9ucyIsIkdyYXBoUUxPYmplY3RUeXBlIiwicmVxIiwiY29sbGVjdGlvbiIsIm5ld2x5Q3JlYXRlZEJsb2NrVHlwZSIsInJlbGF0aW9uc2hpcEFyZ3MiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJmYWxsYmFja0xvY2FsZSIsImZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwiYXJncyIsImV4dGVuc2lvbnMiLCJjb21wbGV4aXR5IiwicmVzb2x2ZSIsInBhcmVudCIsImNvbnRleHQiLCJyZWxhdGVkQ29sbGVjdGlvblNsdWciLCJyZXN1bHRzIiwicmVzdWx0UHJvbWlzZXMiLCJjcmVhdGVQb3B1bGF0aW9uUHJvbWlzZSIsInJlbGF0ZWREb2MiLCJpIiwiaWQiLCJjb2xsZWN0aW9uU2x1ZyIsInJlc3VsdCIsInBheWxvYWREYXRhTG9hZGVyIiwibG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmFuc2FjdGlvbklEIiwiZm9yRWFjaCIsInB1c2giLCJQcm9taXNlIiwiYWxsIiwicmVsYXRlZERvY3VtZW50IiwicmljaFRleHQiLCJkZXB0aCIsImRlZmF1bHREZXB0aCIsImVkaXRvciIsImFmdGVyUmVhZFByb21pc2UiLCJzaG93SGlkZGVuRmllbGRzIiwic2libGluZ0RvYyIsInJvdyIsIm9iamVjdFR5cGVDb25maWdXaXRoUm93RmllbGRzIiwic2VsZWN0IiwidGFicyIsInRhYlNjaGVtYSIsInRhYiIsInRhYkhhc05hbWUiLCJ0YWJUeXBlcyIsInN1YkZpZWxkU2NoZW1hIiwidGV4dCIsInRleHRhcmVhIiwidXBsb2FkIiwidXBsb2FkTmFtZSIsInVwbG9hZEFyZ3MiLCJ3aGVyZUZpZWxkcyIsIndoZXJlIiwiYnVpbGRXaGVyZUlucHV0VHlwZSIsIm9iamVjdFNjaGVtYSIsImZpZWxkU2NoZW1hIl0sIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQsR0FDMUQsbUNBQW1DLEdBQ25DLHVDQUF1Qzs7OzsrQkFnbUJ2Qzs7O2VBQUE7Ozt5QkFubEJPO2dDQUNnRDtpQ0FFM0I7dUJBNEJEOzhCQUNIOzBFQUNNO21FQUNQO3NFQUNHOzRFQUNNO3dFQUNKO3lFQUNDOzs7Ozs7QUEyQjdCLFNBQVNBLGdCQUFnQixFQUN2QkMsSUFBSSxFQUNKQyxhQUFhLENBQUMsQ0FBQyxFQUNmQyxNQUFNLEVBQ05DLGFBQWEsRUFDYkMsVUFBVSxFQUNWQyxPQUFPLEVBQ0Y7SUFDTCxNQUFNQyxtQkFBbUI7UUFDdkJDLE9BQU8sQ0FBQ0Msa0JBQW9DQztZQUMxQyxNQUFNQyxnQkFDSkQsT0FBT0MsaUJBQWlCQyxJQUFBQSwwQkFBaUIsRUFBQ1AsWUFBWVEsSUFBQUEscUJBQU8sRUFBQ0gsTUFBTVQsSUFBSSxFQUFFO1lBRTVFLElBQUksQ0FBQ0ssUUFBUVEsS0FBSyxDQUFDQyxVQUFVLENBQUNKLGNBQWMsRUFBRTtnQkFDNUMsNkNBQTZDO2dCQUM3Q0wsUUFBUVEsS0FBSyxDQUFDQyxVQUFVLENBQUNKLGNBQWMsR0FBR1gsZ0JBQWdCO29CQUN4REMsTUFBTVU7b0JBQ05SLFFBQVFPLE1BQU1QLE1BQU07b0JBQ3BCQyxlQUFlWSxJQUFBQSx3QkFBZSxFQUFDTixPQUFPTjtvQkFDdENDLFlBQVlNO29CQUNa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
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../src/payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../src/payload.ts"],"names":[],"mappings":"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"}
package/dist/payload.js CHANGED
@@ -175,7 +175,6 @@ class BasePayload {
175
175
  */ // @ts-expect-error // TODO: TypeScript hallucinating again. fix later
176
176
  async init(options) {
177
177
  this.logger = (0, _logger.default)('payload', options.loggerOptions, options.loggerDestination);
178
- this.logger.info('Starting Payload...');
179
178
  if (!options.secret) {
180
179
  throw new Error('Error: missing secret key. A secret key is needed to secure Payload.');
181
180
  }
@@ -215,6 +214,7 @@ class BasePayload {
215
214
  if (!options.disableDBConnect && this.db.connect) {
216
215
  await this.db.connect(this);
217
216
  }
217
+ this.logger.info('Starting Payload...');
218
218
  // Configure email service
219
219
  const emailOptions = options.email ? {
220
220
  ...options.email
@@ -264,4 +264,4 @@ const getPayload = async (options)=>{
264
264
  return cached.payload;
265
265
  };
266
266
 
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXlsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXhwcmVzcywgUm91dGVyIH0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCB0eXBlIHsgRXhlY3V0aW9uUmVzdWx0LCBHcmFwaFFMU2NoZW1hLCBWYWxpZGF0aW9uUnVsZSB9IGZyb20gJ2dyYXBocWwnXG4vLyBAdHMtZXhwZWN0LWVycm9yIC8vIFRPRE8gRml4IHRoaXMgLSBtb2R1bGVSZXNvbHV0aW9uIDE2IGJyZWFrcyB0aGlzIGltcG9ydFxuaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25BcmdzLCBSZXF1ZXN0IGFzIGdyYXBoUUxSZXF1ZXN0IH0gZnJvbSAnZ3JhcGhxbC1odHRwL2xpYi9oYW5kbGVyJ1xuaW1wb3J0IHR5cGUgeyBTZW5kTWFpbE9wdGlvbnMgfSBmcm9tICdub2RlbWFpbGVyJ1xuaW1wb3J0IHR5cGUgcGlubyBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0bydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VBZGFwdGVyLCBHZW5lcmF0ZWRUeXBlcyB9IGZyb20gJy4vJyAvLyBNdXN0IGltcG9ydCBmcm9tIFBheWxvYWQgdG8gc3VwcG9ydCBkZWNsYXJlIG1vZHVsZVxuaW1wb3J0IHR5cGUgeyBSZXN1bHQgYXMgRm9yZ290UGFzc3dvcmRSZXN1bHQgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9mb3Jnb3RQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGb3Jnb3RQYXNzd29yZE9wdGlvbnMgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2NhbC9mb3Jnb3RQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBMb2dpbk9wdGlvbnMgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2NhbC9sb2dpbidcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBSZXNldFBhc3N3b3JkT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL3Jlc2V0UGFzc3dvcmQnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgVW5sb2NrT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL3VubG9jaydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBWZXJpZnlFbWFpbE9wdGlvbnMgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2NhbC92ZXJpZnlFbWFpbCdcbmltcG9ydCB0eXBlIHsgUmVzdWx0IGFzIExvZ2luUmVzdWx0IH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvbG9naW4nXG5pbXBvcnQgdHlwZSB7IFJlc3VsdCBhcyBSZXNldFBhc3N3b3JkUmVzdWx0IH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgQnVsa09wZXJhdGlvblJlc3VsdCwgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIENyZWF0ZU9wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvY3JlYXRlJ1xuaW1wb3J0IHR5cGUge1xuICBCeUlET3B0aW9ucyBhcyBEZWxldGVCeUlET3B0aW9ucyxcbiAgTWFueU9wdGlvbnMgYXMgRGVsZXRlTWFueU9wdGlvbnMsXG4gIE9wdGlvbnMgYXMgRGVsZXRlT3B0aW9ucyxcbn0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2RlbGV0ZSdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kT3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9maW5kJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRCeUlET3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9maW5kQnlJRCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kVmVyc2lvbkJ5SURPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRWZXJzaW9uQnlJRCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kVmVyc2lvbnNPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRWZXJzaW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBSZXN0b3JlVmVyc2lvbk9wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvcmVzdG9yZVZlcnNpb24nXG5pbXBvcnQgdHlwZSB7XG4gIEJ5SURPcHRpb25zIGFzIFVwZGF0ZUJ5SURPcHRpb25zLFxuICBNYW55T3B0aW9ucyBhcyBVcGRhdGVNYW55T3B0aW9ucyxcbiAgT3B0aW9ucyBhcyBVcGRhdGVPcHRpb25zLFxufSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvdXBkYXRlJ1xuaW1wb3J0IHR5cGUgeyBFbWFpbE9wdGlvbnMsIEluaXRPcHRpb25zLCBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGFnaW5hdGVkRG9jcyB9IGZyb20gJy4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJ1aWxkRW1haWxSZXN1bHQgfSBmcm9tICcuL2VtYWlsL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkQXV0aGVudGljYXRlIH0gZnJvbSAnLi9leHByZXNzL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJ1xuaW1wb3J0IHR5cGUgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuL2V4cHJlc3MvbWlkZGxld2FyZS9lcnJvckhhbmRsZXInXG5pbXBvcnQgdHlwZSB7IEdsb2JhbHMgfSBmcm9tICcuL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRHbG9iYWxPcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvZmluZE9uZSdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kR2xvYmFsVmVyc2lvbkJ5SURPcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvZmluZFZlcnNpb25CeUlEJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRHbG9iYWxWZXJzaW9uc09wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9maW5kVmVyc2lvbnMnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgUmVzdG9yZUdsb2JhbFZlcnNpb25PcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvcmVzdG9yZVZlcnNpb24nXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgVXBkYXRlR2xvYmFsT3B0aW9ucyB9IGZyb20gJy4vZ2xvYmFscy9vcGVyYXRpb25zL2xvY2FsL3VwZGF0ZSdcbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhWZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9ucy90eXBlcydcblxuaW1wb3J0IHsgZGVjcnlwdCwgZW5jcnlwdCB9IGZyb20gJy4vYXV0aC9jcnlwdG8nXG5pbXBvcnQgbG9jYWxPcGVyYXRpb25zIGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbCdcbmltcG9ydCBmaW5kQ29uZmlnIGZyb20gJy4vY29uZmlnL2ZpbmQnXG5pbXBvcnQgYnVpbGRFbWFpbCBmcm9tICcuL2VtYWlsL2J1aWxkJ1xuaW1wb3J0IHsgZGVmYXVsdHMgYXMgZW1haWxEZWZhdWx0cyB9IGZyb20gJy4vZW1haWwvZGVmYXVsdHMnXG5pbXBvcnQgc2VuZEVtYWlsIGZyb20gJy4vZW1haWwvc2VuZEVtYWlsJ1xuaW1wb3J0IGxvY2FsR2xvYmFsT3BlcmF0aW9ucyBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbCdcbmltcG9ydCByZWdpc3RlckdyYXBoUUxTY2hlbWEgZnJvbSAnLi9ncmFwaHFsL3JlZ2lzdGVyU2NoZW1hJ1xuaW1wb3J0IExvZ2dlciBmcm9tICcuL3V0aWxpdGllcy9sb2dnZXInXG5pbXBvcnQgeyBzZXJ2ZXJJbml0IGFzIHNlcnZlckluaXRUZWxlbWV0cnkgfSBmcm9tICcuL3V0aWxpdGllcy90ZWxlbWV0cnkvZXZlbnRzL3NlcnZlckluaXQnXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFBheWxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VQYXlsb2FkPFRHZW5lcmF0ZWRUeXBlcyBleHRlbmRzIEdlbmVyYXRlZFR5cGVzPiB7XG4gIE11dGF0aW9uOiB7IGZpZWxkczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTsgbmFtZTogc3RyaW5nIH0gPSB7IG5hbWU6ICdNdXRhdGlvbicsIGZpZWxkczoge30gfVxuXG4gIFF1ZXJ5OiB7IGZpZWxkczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTsgbmFtZTogc3RyaW5nIH0gPSB7IG5hbWU6ICdRdWVyeScsIGZpZWxkczoge30gfVxuXG4gIGF1dGhlbnRpY2F0ZTogUGF5bG9hZEF1dGhlbnRpY2F0ZVxuXG4gIGNvbGxlY3Rpb25zOiB7XG4gICAgW3NsdWc6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IENvbGxlY3Rpb25cbiAgfSA9IHt9XG5cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm1zIGNyZWF0ZSBvcGVyYXRpb25cbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgY3JlYXRlZCBkb2N1bWVudFxuICAgKi9cbiAgY3JlYXRlID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IENyZWF0ZU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGUgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBjcmVhdGU8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIGRiOiBEYXRhYmFzZUFkYXB0ZXJcblxuICBkZWNyeXB0ID0gZGVjcnlwdFxuXG4gIGVtYWlsOiBCdWlsZEVtYWlsUmVzdWx0XG5cbiAgZW1haWxPcHRpb25zOiBFbWFpbE9wdGlvbnNcblxuICBlbmNyeXB0ID0gZW5jcnlwdFxuXG4gIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyXG5cbiAgZXhwcmVzcz86IEV4cHJlc3NcblxuICBleHRlbnNpb25zOiAoYXJnczoge1xuICAgIGFyZ3M6IE9wZXJhdGlvbkFyZ3M8YW55PlxuICAgIHJlcTogZ3JhcGhRTFJlcXVlc3Q8dW5rbm93biwgdW5rbm93bj5cbiAgICByZXN1bHQ6IEV4ZWN1dGlvblJlc3VsdFxuICB9KSA9PiBQcm9taXNlPGFueT5cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZG9jdW1lbnRzIHdpdGggY3JpdGVyaWFcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZG9jdW1lbnRzIHNhdGlzZnlpbmcgcXVlcnlcbiAgICovXG4gIGZpbmQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8UGFnaW5hdGVkRG9jczxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgZmluZEJ5SUQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZEJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4gPT4ge1xuICAgIGNvbnN0IHsgZmluZEJ5SUQgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kQnlJRDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgZmluZEdsb2JhbCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IEZpbmRHbG9iYWxPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBmaW5kT25lIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZE9uZTxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5kIGdsb2JhbCB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIGdsb2JhbCB2ZXJzaW9uIHdpdGggc3BlY2lmaWVkIElEXG4gICAqL1xuICBmaW5kR2xvYmFsVmVyc2lvbkJ5SUQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddPihcbiAgICBvcHRpb25zOiBGaW5kR2xvYmFsVmVyc2lvbkJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUXT4+ID0+IHtcbiAgICBjb25zdCB7IGZpbmRWZXJzaW9uQnlJRCB9ID0gbG9jYWxHbG9iYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGZpbmRWZXJzaW9uQnlJRDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5kIGdsb2JhbCB2ZXJzaW9ucyB3aXRoIGNyaXRlcmlhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb25zIHNhdGlzZnlpbmcgcXVlcnlcbiAgICovXG4gIGZpbmRHbG9iYWxWZXJzaW9ucyA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IEZpbmRHbG9iYWxWZXJzaW9uc09wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8UGFnaW5hdGVkRG9jczxUeXBlV2l0aFZlcnNpb248VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+Pj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25zIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25zPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgdmVyc2lvbiBieSBJRFxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB2ZXJzaW9uIHdpdGggc3BlY2lmaWVkIElEXG4gICAqL1xuICBmaW5kVmVyc2lvbkJ5SUQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZFZlcnNpb25CeUlET3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUeXBlV2l0aFZlcnNpb248VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25CeUlEIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25CeUlEPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgdmVyc2lvbnMgd2l0aCBjcml0ZXJpYVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB2ZXJzaW9ucyBzYXRpc2Z5aW5nIHF1ZXJ5XG4gICAqL1xuICBmaW5kVmVyc2lvbnMgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZFZlcnNpb25zT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWREb2NzPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+Pj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25zIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25zPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBmb3Jnb3RQYXNzd29yZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGb3Jnb3RQYXNzd29yZE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8Rm9yZ290UGFzc3dvcmRSZXN1bHQ+ID0+IHtcbiAgICBjb25zdCB7IGZvcmdvdFBhc3N3b3JkIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiBmb3Jnb3RQYXNzd29yZDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgZ2V0QVBJVVJMID0gKCk6IHN0cmluZyA9PiBgJHt0aGlzLmNvbmZpZy5zZXJ2ZXJVUkx9JHt0aGlzLmNvbmZpZy5yb3V0ZXMuYXBpfWBcblxuICBnZXRBZG1pblVSTCA9ICgpOiBzdHJpbmcgPT4gYCR7dGhpcy5jb25maWcuc2VydmVyVVJMfSR7dGhpcy5jb25maWcucm91dGVzLmFkbWlufWBcblxuICBnbG9iYWxzOiBHbG9iYWxzXG5cbiAgbG9jYWw6IGJvb2xlYW5cblxuICBsb2dnZXI6IHBpbm8uTG9nZ2VyXG5cbiAgbG9naW4gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogTG9naW5PcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPExvZ2luUmVzdWx0ICYgeyB1c2VyOiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0gfT4gPT4ge1xuICAgIGNvbnN0IHsgbG9naW4gfSA9IGxvY2FsT3BlcmF0aW9ucy5hdXRoXG4gICAgcmV0dXJuIGxvZ2luPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZG9jdW1lbnQgYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZG9jdW1lbnQgd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG5cbiAgcmVzZXRQYXNzd29yZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBSZXNldFBhc3N3b3JkT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxSZXNldFBhc3N3b3JkUmVzdWx0PiA9PiB7XG4gICAgY29uc3QgeyByZXNldFBhc3N3b3JkIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiByZXNldFBhc3N3b3JkPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc3RvcmUgZ2xvYmFsIHZlcnNpb24gYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgdmVyc2lvbiB3aXRoIHNwZWNpZmllZCBJRFxuICAgKi9cbiAgcmVzdG9yZUdsb2JhbFZlcnNpb24gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddPihcbiAgICBvcHRpb25zOiBSZXN0b3JlR2xvYmFsVmVyc2lvbk9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVzdG9yZSB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIHJlc3RvcmVWZXJzaW9uID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFJlc3RvcmVWZXJzaW9uT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHJvdXRlcj86IFJvdXRlclxuXG4gIHNjaGVtYTogR3JhcGhRTFNjaGVtYVxuXG4gIHNlY3JldDogc3RyaW5nXG5cbiAgc2VuZEVtYWlsOiAobWVzc2FnZTogU2VuZE1haWxPcHRpb25zKSA9PiBQcm9taXNlPHVua25vd24+XG5cbiAgdHlwZXM6IHtcbiAgICBhcnJheVR5cGVzOiBhbnlcbiAgICBibG9ja0lucHV0VHlwZXM6IGFueVxuICAgIGJsb2NrVHlwZXM6IGFueVxuICAgIGZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgZ3JvdXBUeXBlczogYW55XG4gICAgbG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgdGFiVHlwZXM6IGFueVxuICB9XG5cbiAgdW5sb2NrID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVubG9ja09wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB1bmxvY2sodGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHVwZGF0ZUdsb2JhbCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZUdsb2JhbE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHVwZGF0ZSB9ID0gbG9jYWxHbG9iYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIHVwZGF0ZTxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmFsaWRhdGlvblJ1bGVzOiAoYXJnczogT3BlcmF0aW9uQXJnczxhbnk+KSA9PiBWYWxpZGF0aW9uUnVsZVtdXG5cbiAgdmVyaWZ5RW1haWwgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogVmVyaWZ5RW1haWxPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCB7IHZlcmlmeUVtYWlsIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB2ZXJpZnlFbWFpbCh0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmVyc2lvbnM6IHtcbiAgICBbc2x1Zzogc3RyaW5nXTogYW55IC8vIFRPRE86IFR5cGUgdGhpc1xuICB9ID0ge31cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxCdWxrT3BlcmF0aW9uUmVzdWx0PFQ+IHwgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiB7XG4gICAgY29uc3QgeyBkZWxldGVMb2NhbCB9ID0gbG9jYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGRlbGV0ZUxvY2FsPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGRlbGV0ZSBvbmUgb3IgbW9yZSBkb2N1bWVudHNcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgVXBkYXRlZCBkb2N1bWVudChzKVxuICAgKi9cbiAgZGVsZXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IERlbGV0ZUJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT5cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlTWFueU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPj5cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIFBheWxvYWRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLy8gVE9ETzogVHlwZVNjcmlwdCBoYWxsdWNpbmF0aW5nIGFnYWluLiBmaXggbGF0ZXJcbiAgYXN5bmMgaW5pdChvcHRpb25zOiBJbml0T3B0aW9ucyk6IFByb21pc2U8UGF5bG9hZD4ge1xuICAgIHRoaXMubG9nZ2VyID0gTG9nZ2VyKCdwYXlsb2FkJywgb3B0aW9ucy5sb2dnZXJPcHRpb25zLCBvcHRpb25zLmxvZ2dlckRlc3RpbmF0aW9uKVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbygnU3RhcnRpbmcgUGF5bG9hZC4uLicpXG4gICAgaWYgKCFvcHRpb25zLnNlY3JldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvcjogbWlzc2luZyBzZWNyZXQga2V5LiBBIHNlY3JldCBrZXkgaXMgbmVlZGVkIHRvIHNlY3VyZSBQYXlsb2FkLicpXG4gICAgfVxuXG4gICAgdGhpcy5zZWNyZXQgPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKG9wdGlvbnMuc2VjcmV0KS5kaWdlc3QoJ2hleCcpLnNsaWNlKDAsIDMyKVxuXG4gICAgdGhpcy5sb2NhbCA9IG9wdGlvbnMubG9jYWxcblxuICAgIGlmIChvcHRpb25zLmNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWcgPSBhd2FpdCBvcHRpb25zLmNvbmZpZ1xuICAgICAgY29uc3QgY29uZmlnUGF0aCA9IGZpbmRDb25maWcoKVxuXG4gICAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgICAgIHBhdGhzOiB7XG4gICAgICAgICAgY29uZmlnOiBjb25maWdQYXRoLFxuICAgICAgICAgIGNvbmZpZ0RpcjogcGF0aC5kaXJuYW1lKGNvbmZpZ1BhdGgpLFxuICAgICAgICAgIHJhd0NvbmZpZzogY29uZmlnUGF0aCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXMsIGdsb2JhbC1yZXF1aXJlXG4gICAgICBjb25zdCBsb2FkQ29uZmlnID0gcmVxdWlyZSgnLi9jb25maWcvbG9hZCcpLmRlZmF1bHRcbiAgICAgIHRoaXMuY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyh0aGlzLmxvZ2dlcilcbiAgICB9XG5cbiAgICB0aGlzLmdsb2JhbHMgPSB7XG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLmdsb2JhbHMsXG4gICAgfVxuICAgIHRoaXMuY29uZmlnLmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuY29sbGVjdGlvbnNbY29sbGVjdGlvbi5zbHVnXSA9IHtcbiAgICAgICAgY29uZmlnOiBjb2xsZWN0aW9uLFxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLmRiID0gdGhpcy5jb25maWcuZGIoeyBwYXlsb2FkOiB0aGlzIH0pXG4gICAgdGhpcy5kYi5wYXlsb2FkID0gdGhpc1xuXG4gICAgaWYgKHRoaXMuZGI/LmluaXQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGIuaW5pdCh0aGlzKVxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlREJDb25uZWN0ICYmIHRoaXMuZGIuY29ubmVjdCkge1xuICAgICAgYXdhaXQgdGhpcy5kYi5jb25uZWN0KHRoaXMpXG4gICAgfVxuXG4gICAgLy8gQ29uZmlndXJlIGVtYWlsIHNlcnZpY2VcbiAgICBjb25zdCBlbWFpbE9wdGlvbnMgPSBvcHRpb25zLmVtYWlsID8geyAuLi5vcHRpb25zLmVtYWlsIH0gOiB0aGlzLmNvbmZpZy5lbWFpbFxuICAgIGlmIChvcHRpb25zLmVtYWlsICYmIHRoaXMuY29uZmlnLmVtYWlsKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAnRW1haWwgb3B0aW9ucyBwcm92aWRlZCBpbiBib3RoIGluaXQgb3B0aW9ucyBhbmQgY29uZmlnLiBVc2luZyBpbml0IG9wdGlvbnMuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICB0aGlzLmVtYWlsT3B0aW9ucyA9IGVtYWlsT3B0aW9ucyA/PyBlbWFpbERlZmF1bHRzXG4gICAgdGhpcy5lbWFpbCA9IGJ1aWxkRW1haWwodGhpcy5lbWFpbE9wdGlvbnMsIHRoaXMubG9nZ2VyKVxuICAgIHRoaXMuc2VuZEVtYWlsID0gc2VuZEVtYWlsLmJpbmQodGhpcylcblxuICAgIGlmICghdGhpcy5jb25maWcuZ3JhcGhRTC5kaXNhYmxlKSB7XG4gICAgICByZWdpc3RlckdyYXBoUUxTY2hlbWEodGhpcylcbiAgICB9XG5cbiAgICBzZXJ2ZXJJbml0VGVsZW1ldHJ5KHRoaXMpXG5cbiAgICBpZiAoIW9wdGlvbnMuZGlzYWJsZU9uSW5pdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm9uSW5pdCA9PT0gJ2Z1bmN0aW9uJykgYXdhaXQgb3B0aW9ucy5vbkluaXQodGhpcylcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcub25Jbml0ID09PSAnZnVuY3Rpb24nKSBhd2FpdCB0aGlzLmNvbmZpZy5vbkluaXQodGhpcylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgdXBkYXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZU1hbnlPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPEJ1bGtPcGVyYXRpb25SZXN1bHQ8VD4+XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgb25lIG9yIG1vcmUgZG9jdW1lbnRzXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIFVwZGF0ZWQgZG9jdW1lbnQocylcbiAgICovXG4gIHVwZGF0ZTxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBVcGRhdGVCeUlET3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+XG5cbiAgdXBkYXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPiB8IFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4ge1xuICAgIGNvbnN0IHsgdXBkYXRlIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gdXBkYXRlPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgUGF5bG9hZCA9IEJhc2VQYXlsb2FkPEdlbmVyYXRlZFR5cGVzPlxuXG5sZXQgY2FjaGVkID0gZ2xvYmFsLl9wYXlsb2FkXG5cbmlmICghY2FjaGVkKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tdWx0aS1hc3NpZ25cbiAgY2FjaGVkID0gZ2xvYmFsLl9wYXlsb2FkID0geyBwYXlsb2FkOiBudWxsLCBwcm9taXNlOiBudWxsIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFBheWxvYWQgPSBhc3luYyAob3B0aW9uczogSW5pdE9wdGlvbnMpOiBQcm9taXNlPFBheWxvYWQ+ID0+IHtcbiAgaWYgKGNhY2hlZC5wYXlsb2FkKSB7XG4gICAgcmV0dXJuIGNhY2hlZC5wYXlsb2FkXG4gIH1cblxuICBpZiAoIWNhY2hlZC5wcm9taXNlKSB7XG4gICAgY2FjaGVkLnByb21pc2UgPSBuZXcgQmFzZVBheWxvYWQ8R2VuZXJhdGVkVHlwZXM+KCkuaW5pdChvcHRpb25zKVxuICB9XG5cbiAgdHJ5IHtcbiAgICBjYWNoZWQucGF5bG9hZCA9IGF3YWl0IGNhY2hlZC5wcm9taXNlXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjYWNoZWQucHJvbWlzZSA9IG51bGxcbiAgICB0aHJvdyBlXG4gIH1cblxuICByZXR1cm4gY2FjaGVkLnBheWxvYWRcbn1cbiJdLCJuYW1lcyI6WyJCYXNlUGF5bG9hZCIsImdldFBheWxvYWQiLCJNdXRhdGlvbiIsIm5hbWUiLCJmaWVsZHMiLCJRdWVyeSIsImF1dGhlbnRpY2F0ZSIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwiY3JlYXRlIiwib3B0aW9ucyIsImxvY2FsT3BlcmF0aW9ucyIsImRiIiwiZGVjcnlwdCIsImVtYWlsIiwiZW1haWxPcHRpb25zIiwiZW5jcnlwdCIsImVycm9ySGFuZGxlciIsImV4cHJlc3MiLCJleHRlbnNpb25zIiwiZmluZCIsImZpbmRCeUlEIiwiZmluZEdsb2JhbCIsImZpbmRPbmUiLCJsb2NhbEdsb2JhbE9wZXJhdGlvbnMiLCJmaW5kR2xvYmFsVmVyc2lvbkJ5SUQiLCJmaW5kVmVyc2lvbkJ5SUQiLCJmaW5kR2xvYmFsVmVyc2lvbnMiLCJmaW5kVmVyc2lvbnMiLCJmb3Jnb3RQYXNzd29yZCIsImF1dGgiLCJnZXRBUElVUkwiLCJzZXJ2ZXJVUkwiLCJyb3V0ZXMiLCJhcGkiLCJnZXRBZG1pblVSTCIsImFkbWluIiwiZ2xvYmFscyIsImxvY2FsIiwibG9nZ2VyIiwibG9naW4iLCJyZXNldFBhc3N3b3JkIiwicmVzdG9yZUdsb2JhbFZlcnNpb24iLCJyZXN0b3JlVmVyc2lvbiIsInJvdXRlciIsInNjaGVtYSIsInNlY3JldCIsInNlbmRFbWFpbCIsInR5cGVzIiwidW5sb2NrIiwidXBkYXRlR2xvYmFsIiwidXBkYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidmVyaWZ5RW1haWwiLCJ2ZXJzaW9ucyIsImRlbGV0ZSIsImRlbGV0ZUxvY2FsIiwiaW5pdCIsIkxvZ2dlciIsImxvZ2dlck9wdGlvbnMiLCJsb2dnZXJEZXN0aW5hdGlvbiIsImluZm8iLCJFcnJvciIsImNyeXB0byIsImNyZWF0ZUhhc2giLCJkaWdlc3QiLCJzbGljZSIsImNvbmZpZ1BhdGgiLCJmaW5kQ29uZmlnIiwicGF0aHMiLCJjb25maWdEaXIiLCJwYXRoIiwiZGlybmFtZSIsInJhd0NvbmZpZyIsImxvYWRDb25maWciLCJyZXF1aXJlIiwiZGVmYXVsdCIsImZvckVhY2giLCJjb2xsZWN0aW9uIiwic2x1ZyIsInBheWxvYWQiLCJkaXNhYmxlREJDb25uZWN0IiwiY29ubmVjdCIsIndhcm4iLCJlbWFpbERlZmF1bHRzIiwiYnVpbGRFbWFpbCIsImJpbmQiLCJncmFwaFFMIiwiZGlzYWJsZSIsInJlZ2lzdGVyR3JhcGhRTFNjaGVtYSIsInNlcnZlckluaXRUZWxlbWV0cnkiLCJkaXNhYmxlT25Jbml0Iiwib25Jbml0IiwiY2FjaGVkIiwiZ2xvYmFsIiwiX3BheWxvYWQiLCJwcm9taXNlIiwiZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUErRGFBLFdBQVc7ZUFBWEE7O0lBb1dBQyxVQUFVO2VBQVZBOzs7K0RBNVpNOzZEQUNGO3lCQXlDZ0I7OERBQ0w7NkRBQ0w7OERBQ0E7MEJBQ21CO2tFQUNwQjsrREFDWTt1RUFDQTsrREFDZjs0QkFDK0I7Ozs7OztBQUszQyxNQUFNRDtJQUNYRSxXQUE2RDtRQUFFQyxNQUFNO1FBQVlDLFFBQVEs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
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXlsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXhwcmVzcywgUm91dGVyIH0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCB0eXBlIHsgRXhlY3V0aW9uUmVzdWx0LCBHcmFwaFFMU2NoZW1hLCBWYWxpZGF0aW9uUnVsZSB9IGZyb20gJ2dyYXBocWwnXG4vLyBAdHMtZXhwZWN0LWVycm9yIC8vIFRPRE8gRml4IHRoaXMgLSBtb2R1bGVSZXNvbHV0aW9uIDE2IGJyZWFrcyB0aGlzIGltcG9ydFxuaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25BcmdzLCBSZXF1ZXN0IGFzIGdyYXBoUUxSZXF1ZXN0IH0gZnJvbSAnZ3JhcGhxbC1odHRwL2xpYi9oYW5kbGVyJ1xuaW1wb3J0IHR5cGUgeyBTZW5kTWFpbE9wdGlvbnMgfSBmcm9tICdub2RlbWFpbGVyJ1xuaW1wb3J0IHR5cGUgcGlubyBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0bydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VBZGFwdGVyLCBHZW5lcmF0ZWRUeXBlcyB9IGZyb20gJy4vJyAvLyBNdXN0IGltcG9ydCBmcm9tIFBheWxvYWQgdG8gc3VwcG9ydCBkZWNsYXJlIG1vZHVsZVxuaW1wb3J0IHR5cGUgeyBSZXN1bHQgYXMgRm9yZ290UGFzc3dvcmRSZXN1bHQgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9mb3Jnb3RQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGb3Jnb3RQYXNzd29yZE9wdGlvbnMgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2NhbC9mb3Jnb3RQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBMb2dpbk9wdGlvbnMgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2NhbC9sb2dpbidcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBSZXNldFBhc3N3b3JkT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL3Jlc2V0UGFzc3dvcmQnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgVW5sb2NrT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL3VubG9jaydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBWZXJpZnlFbWFpbE9wdGlvbnMgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2NhbC92ZXJpZnlFbWFpbCdcbmltcG9ydCB0eXBlIHsgUmVzdWx0IGFzIExvZ2luUmVzdWx0IH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvbG9naW4nXG5pbXBvcnQgdHlwZSB7IFJlc3VsdCBhcyBSZXNldFBhc3N3b3JkUmVzdWx0IH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgQnVsa09wZXJhdGlvblJlc3VsdCwgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIENyZWF0ZU9wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvY3JlYXRlJ1xuaW1wb3J0IHR5cGUge1xuICBCeUlET3B0aW9ucyBhcyBEZWxldGVCeUlET3B0aW9ucyxcbiAgTWFueU9wdGlvbnMgYXMgRGVsZXRlTWFueU9wdGlvbnMsXG4gIE9wdGlvbnMgYXMgRGVsZXRlT3B0aW9ucyxcbn0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2RlbGV0ZSdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kT3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9maW5kJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRCeUlET3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9maW5kQnlJRCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kVmVyc2lvbkJ5SURPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRWZXJzaW9uQnlJRCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kVmVyc2lvbnNPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRWZXJzaW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBSZXN0b3JlVmVyc2lvbk9wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvcmVzdG9yZVZlcnNpb24nXG5pbXBvcnQgdHlwZSB7XG4gIEJ5SURPcHRpb25zIGFzIFVwZGF0ZUJ5SURPcHRpb25zLFxuICBNYW55T3B0aW9ucyBhcyBVcGRhdGVNYW55T3B0aW9ucyxcbiAgT3B0aW9ucyBhcyBVcGRhdGVPcHRpb25zLFxufSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvdXBkYXRlJ1xuaW1wb3J0IHR5cGUgeyBFbWFpbE9wdGlvbnMsIEluaXRPcHRpb25zLCBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGFnaW5hdGVkRG9jcyB9IGZyb20gJy4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJ1aWxkRW1haWxSZXN1bHQgfSBmcm9tICcuL2VtYWlsL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkQXV0aGVudGljYXRlIH0gZnJvbSAnLi9leHByZXNzL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJ1xuaW1wb3J0IHR5cGUgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuL2V4cHJlc3MvbWlkZGxld2FyZS9lcnJvckhhbmRsZXInXG5pbXBvcnQgdHlwZSB7IEdsb2JhbHMgfSBmcm9tICcuL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRHbG9iYWxPcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvZmluZE9uZSdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBGaW5kR2xvYmFsVmVyc2lvbkJ5SURPcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvZmluZFZlcnNpb25CeUlEJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRHbG9iYWxWZXJzaW9uc09wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9maW5kVmVyc2lvbnMnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgUmVzdG9yZUdsb2JhbFZlcnNpb25PcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvcmVzdG9yZVZlcnNpb24nXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgVXBkYXRlR2xvYmFsT3B0aW9ucyB9IGZyb20gJy4vZ2xvYmFscy9vcGVyYXRpb25zL2xvY2FsL3VwZGF0ZSdcbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhWZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9ucy90eXBlcydcblxuaW1wb3J0IHsgZGVjcnlwdCwgZW5jcnlwdCB9IGZyb20gJy4vYXV0aC9jcnlwdG8nXG5pbXBvcnQgbG9jYWxPcGVyYXRpb25zIGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbCdcbmltcG9ydCBmaW5kQ29uZmlnIGZyb20gJy4vY29uZmlnL2ZpbmQnXG5pbXBvcnQgYnVpbGRFbWFpbCBmcm9tICcuL2VtYWlsL2J1aWxkJ1xuaW1wb3J0IHsgZGVmYXVsdHMgYXMgZW1haWxEZWZhdWx0cyB9IGZyb20gJy4vZW1haWwvZGVmYXVsdHMnXG5pbXBvcnQgc2VuZEVtYWlsIGZyb20gJy4vZW1haWwvc2VuZEVtYWlsJ1xuaW1wb3J0IGxvY2FsR2xvYmFsT3BlcmF0aW9ucyBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbCdcbmltcG9ydCByZWdpc3RlckdyYXBoUUxTY2hlbWEgZnJvbSAnLi9ncmFwaHFsL3JlZ2lzdGVyU2NoZW1hJ1xuaW1wb3J0IExvZ2dlciBmcm9tICcuL3V0aWxpdGllcy9sb2dnZXInXG5pbXBvcnQgeyBzZXJ2ZXJJbml0IGFzIHNlcnZlckluaXRUZWxlbWV0cnkgfSBmcm9tICcuL3V0aWxpdGllcy90ZWxlbWV0cnkvZXZlbnRzL3NlcnZlckluaXQnXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFBheWxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VQYXlsb2FkPFRHZW5lcmF0ZWRUeXBlcyBleHRlbmRzIEdlbmVyYXRlZFR5cGVzPiB7XG4gIE11dGF0aW9uOiB7IGZpZWxkczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTsgbmFtZTogc3RyaW5nIH0gPSB7IG5hbWU6ICdNdXRhdGlvbicsIGZpZWxkczoge30gfVxuXG4gIFF1ZXJ5OiB7IGZpZWxkczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTsgbmFtZTogc3RyaW5nIH0gPSB7IG5hbWU6ICdRdWVyeScsIGZpZWxkczoge30gfVxuXG4gIGF1dGhlbnRpY2F0ZTogUGF5bG9hZEF1dGhlbnRpY2F0ZVxuXG4gIGNvbGxlY3Rpb25zOiB7XG4gICAgW3NsdWc6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IENvbGxlY3Rpb25cbiAgfSA9IHt9XG5cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm1zIGNyZWF0ZSBvcGVyYXRpb25cbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgY3JlYXRlZCBkb2N1bWVudFxuICAgKi9cbiAgY3JlYXRlID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IENyZWF0ZU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGUgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBjcmVhdGU8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIGRiOiBEYXRhYmFzZUFkYXB0ZXJcblxuICBkZWNyeXB0ID0gZGVjcnlwdFxuXG4gIGVtYWlsOiBCdWlsZEVtYWlsUmVzdWx0XG5cbiAgZW1haWxPcHRpb25zOiBFbWFpbE9wdGlvbnNcblxuICBlbmNyeXB0ID0gZW5jcnlwdFxuXG4gIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyXG5cbiAgZXhwcmVzcz86IEV4cHJlc3NcblxuICBleHRlbnNpb25zOiAoYXJnczoge1xuICAgIGFyZ3M6IE9wZXJhdGlvbkFyZ3M8YW55PlxuICAgIHJlcTogZ3JhcGhRTFJlcXVlc3Q8dW5rbm93biwgdW5rbm93bj5cbiAgICByZXN1bHQ6IEV4ZWN1dGlvblJlc3VsdFxuICB9KSA9PiBQcm9taXNlPGFueT5cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZG9jdW1lbnRzIHdpdGggY3JpdGVyaWFcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZG9jdW1lbnRzIHNhdGlzZnlpbmcgcXVlcnlcbiAgICovXG4gIGZpbmQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8UGFnaW5hdGVkRG9jczxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgZmluZEJ5SUQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZEJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4gPT4ge1xuICAgIGNvbnN0IHsgZmluZEJ5SUQgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kQnlJRDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgZmluZEdsb2JhbCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IEZpbmRHbG9iYWxPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBmaW5kT25lIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZE9uZTxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5kIGdsb2JhbCB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIGdsb2JhbCB2ZXJzaW9uIHdpdGggc3BlY2lmaWVkIElEXG4gICAqL1xuICBmaW5kR2xvYmFsVmVyc2lvbkJ5SUQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddPihcbiAgICBvcHRpb25zOiBGaW5kR2xvYmFsVmVyc2lvbkJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUXT4+ID0+IHtcbiAgICBjb25zdCB7IGZpbmRWZXJzaW9uQnlJRCB9ID0gbG9jYWxHbG9iYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGZpbmRWZXJzaW9uQnlJRDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5kIGdsb2JhbCB2ZXJzaW9ucyB3aXRoIGNyaXRlcmlhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb25zIHNhdGlzZnlpbmcgcXVlcnlcbiAgICovXG4gIGZpbmRHbG9iYWxWZXJzaW9ucyA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IEZpbmRHbG9iYWxWZXJzaW9uc09wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8UGFnaW5hdGVkRG9jczxUeXBlV2l0aFZlcnNpb248VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+Pj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25zIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25zPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgdmVyc2lvbiBieSBJRFxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB2ZXJzaW9uIHdpdGggc3BlY2lmaWVkIElEXG4gICAqL1xuICBmaW5kVmVyc2lvbkJ5SUQgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZFZlcnNpb25CeUlET3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUeXBlV2l0aFZlcnNpb248VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25CeUlEIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25CeUlEPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgdmVyc2lvbnMgd2l0aCBjcml0ZXJpYVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB2ZXJzaW9ucyBzYXRpc2Z5aW5nIHF1ZXJ5XG4gICAqL1xuICBmaW5kVmVyc2lvbnMgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRmluZFZlcnNpb25zT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWREb2NzPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+Pj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25zIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25zPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBmb3Jnb3RQYXNzd29yZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGb3Jnb3RQYXNzd29yZE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8Rm9yZ290UGFzc3dvcmRSZXN1bHQ+ID0+IHtcbiAgICBjb25zdCB7IGZvcmdvdFBhc3N3b3JkIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiBmb3Jnb3RQYXNzd29yZDxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgZ2V0QVBJVVJMID0gKCk6IHN0cmluZyA9PiBgJHt0aGlzLmNvbmZpZy5zZXJ2ZXJVUkx9JHt0aGlzLmNvbmZpZy5yb3V0ZXMuYXBpfWBcblxuICBnZXRBZG1pblVSTCA9ICgpOiBzdHJpbmcgPT4gYCR7dGhpcy5jb25maWcuc2VydmVyVVJMfSR7dGhpcy5jb25maWcucm91dGVzLmFkbWlufWBcblxuICBnbG9iYWxzOiBHbG9iYWxzXG5cbiAgbG9jYWw6IGJvb2xlYW5cblxuICBsb2dnZXI6IHBpbm8uTG9nZ2VyXG5cbiAgbG9naW4gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogTG9naW5PcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPExvZ2luUmVzdWx0ICYgeyB1c2VyOiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0gfT4gPT4ge1xuICAgIGNvbnN0IHsgbG9naW4gfSA9IGxvY2FsT3BlcmF0aW9ucy5hdXRoXG4gICAgcmV0dXJuIGxvZ2luPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZG9jdW1lbnQgYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZG9jdW1lbnQgd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG5cbiAgcmVzZXRQYXNzd29yZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBSZXNldFBhc3N3b3JkT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxSZXNldFBhc3N3b3JkUmVzdWx0PiA9PiB7XG4gICAgY29uc3QgeyByZXNldFBhc3N3b3JkIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiByZXNldFBhc3N3b3JkPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc3RvcmUgZ2xvYmFsIHZlcnNpb24gYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgdmVyc2lvbiB3aXRoIHNwZWNpZmllZCBJRFxuICAgKi9cbiAgcmVzdG9yZUdsb2JhbFZlcnNpb24gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddPihcbiAgICBvcHRpb25zOiBSZXN0b3JlR2xvYmFsVmVyc2lvbk9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVzdG9yZSB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIHJlc3RvcmVWZXJzaW9uID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFJlc3RvcmVWZXJzaW9uT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHJvdXRlcj86IFJvdXRlclxuXG4gIHNjaGVtYTogR3JhcGhRTFNjaGVtYVxuXG4gIHNlY3JldDogc3RyaW5nXG5cbiAgc2VuZEVtYWlsOiAobWVzc2FnZTogU2VuZE1haWxPcHRpb25zKSA9PiBQcm9taXNlPHVua25vd24+XG5cbiAgdHlwZXM6IHtcbiAgICBhcnJheVR5cGVzOiBhbnlcbiAgICBibG9ja0lucHV0VHlwZXM6IGFueVxuICAgIGJsb2NrVHlwZXM6IGFueVxuICAgIGZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgZ3JvdXBUeXBlczogYW55XG4gICAgbG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgdGFiVHlwZXM6IGFueVxuICB9XG5cbiAgdW5sb2NrID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVubG9ja09wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB1bmxvY2sodGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHVwZGF0ZUdsb2JhbCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZUdsb2JhbE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHVwZGF0ZSB9ID0gbG9jYWxHbG9iYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIHVwZGF0ZTxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmFsaWRhdGlvblJ1bGVzOiAoYXJnczogT3BlcmF0aW9uQXJnczxhbnk+KSA9PiBWYWxpZGF0aW9uUnVsZVtdXG5cbiAgdmVyaWZ5RW1haWwgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogVmVyaWZ5RW1haWxPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCB7IHZlcmlmeUVtYWlsIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB2ZXJpZnlFbWFpbCh0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmVyc2lvbnM6IHtcbiAgICBbc2x1Zzogc3RyaW5nXTogYW55IC8vIFRPRE86IFR5cGUgdGhpc1xuICB9ID0ge31cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxCdWxrT3BlcmF0aW9uUmVzdWx0PFQ+IHwgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiB7XG4gICAgY29uc3QgeyBkZWxldGVMb2NhbCB9ID0gbG9jYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGRlbGV0ZUxvY2FsPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGRlbGV0ZSBvbmUgb3IgbW9yZSBkb2N1bWVudHNcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgVXBkYXRlZCBkb2N1bWVudChzKVxuICAgKi9cbiAgZGVsZXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IERlbGV0ZUJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT5cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlTWFueU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPj5cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIFBheWxvYWRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLy8gVE9ETzogVHlwZVNjcmlwdCBoYWxsdWNpbmF0aW5nIGFnYWluLiBmaXggbGF0ZXJcbiAgYXN5bmMgaW5pdChvcHRpb25zOiBJbml0T3B0aW9ucyk6IFByb21pc2U8UGF5bG9hZD4ge1xuICAgIHRoaXMubG9nZ2VyID0gTG9nZ2VyKCdwYXlsb2FkJywgb3B0aW9ucy5sb2dnZXJPcHRpb25zLCBvcHRpb25zLmxvZ2dlckRlc3RpbmF0aW9uKVxuXG4gICAgaWYgKCFvcHRpb25zLnNlY3JldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvcjogbWlzc2luZyBzZWNyZXQga2V5LiBBIHNlY3JldCBrZXkgaXMgbmVlZGVkIHRvIHNlY3VyZSBQYXlsb2FkLicpXG4gICAgfVxuXG4gICAgdGhpcy5zZWNyZXQgPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKG9wdGlvbnMuc2VjcmV0KS5kaWdlc3QoJ2hleCcpLnNsaWNlKDAsIDMyKVxuXG4gICAgdGhpcy5sb2NhbCA9IG9wdGlvbnMubG9jYWxcblxuICAgIGlmIChvcHRpb25zLmNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWcgPSBhd2FpdCBvcHRpb25zLmNvbmZpZ1xuICAgICAgY29uc3QgY29uZmlnUGF0aCA9IGZpbmRDb25maWcoKVxuXG4gICAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgICAgLi4udGhpcy5jb25maWcsXG4gICAgICAgIHBhdGhzOiB7XG4gICAgICAgICAgY29uZmlnOiBjb25maWdQYXRoLFxuICAgICAgICAgIGNvbmZpZ0RpcjogcGF0aC5kaXJuYW1lKGNvbmZpZ1BhdGgpLFxuICAgICAgICAgIHJhd0NvbmZpZzogY29uZmlnUGF0aCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXMsIGdsb2JhbC1yZXF1aXJlXG4gICAgICBjb25zdCBsb2FkQ29uZmlnID0gcmVxdWlyZSgnLi9jb25maWcvbG9hZCcpLmRlZmF1bHRcbiAgICAgIHRoaXMuY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyh0aGlzLmxvZ2dlcilcbiAgICB9XG5cbiAgICB0aGlzLmdsb2JhbHMgPSB7XG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLmdsb2JhbHMsXG4gICAgfVxuICAgIHRoaXMuY29uZmlnLmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuY29sbGVjdGlvbnNbY29sbGVjdGlvbi5zbHVnXSA9IHtcbiAgICAgICAgY29uZmlnOiBjb2xsZWN0aW9uLFxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLmRiID0gdGhpcy5jb25maWcuZGIoeyBwYXlsb2FkOiB0aGlzIH0pXG4gICAgdGhpcy5kYi5wYXlsb2FkID0gdGhpc1xuXG4gICAgaWYgKHRoaXMuZGI/LmluaXQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGIuaW5pdCh0aGlzKVxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlREJDb25uZWN0ICYmIHRoaXMuZGIuY29ubmVjdCkge1xuICAgICAgYXdhaXQgdGhpcy5kYi5jb25uZWN0KHRoaXMpXG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbygnU3RhcnRpbmcgUGF5bG9hZC4uLicpXG5cbiAgICAvLyBDb25maWd1cmUgZW1haWwgc2VydmljZVxuICAgIGNvbnN0IGVtYWlsT3B0aW9ucyA9IG9wdGlvbnMuZW1haWwgPyB7IC4uLm9wdGlvbnMuZW1haWwgfSA6IHRoaXMuY29uZmlnLmVtYWlsXG4gICAgaWYgKG9wdGlvbnMuZW1haWwgJiYgdGhpcy5jb25maWcuZW1haWwpIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICAgICdFbWFpbCBvcHRpb25zIHByb3ZpZGVkIGluIGJvdGggaW5pdCBvcHRpb25zIGFuZCBjb25maWcuIFVzaW5nIGluaXQgb3B0aW9ucy4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIHRoaXMuZW1haWxPcHRpb25zID0gZW1haWxPcHRpb25zID8/IGVtYWlsRGVmYXVsdHNcbiAgICB0aGlzLmVtYWlsID0gYnVpbGRFbWFpbCh0aGlzLmVtYWlsT3B0aW9ucywgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy5zZW5kRW1haWwgPSBzZW5kRW1haWwuYmluZCh0aGlzKVxuXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5ncmFwaFFMLmRpc2FibGUpIHtcbiAgICAgIHJlZ2lzdGVyR3JhcGhRTFNjaGVtYSh0aGlzKVxuICAgIH1cblxuICAgIHNlcnZlckluaXRUZWxlbWV0cnkodGhpcylcblxuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlT25Jbml0KSB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMub25Jbml0ID09PSAnZnVuY3Rpb24nKSBhd2FpdCBvcHRpb25zLm9uSW5pdCh0aGlzKVxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5vbkluaXQgPT09ICdmdW5jdGlvbicpIGF3YWl0IHRoaXMuY29uZmlnLm9uSW5pdCh0aGlzKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICB1cGRhdGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogVXBkYXRlTWFueU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPj5cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBvbmUgb3IgbW9yZSBkb2N1bWVudHNcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgVXBkYXRlZCBkb2N1bWVudChzKVxuICAgKi9cbiAgdXBkYXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZUJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT5cblxuICB1cGRhdGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogVXBkYXRlT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxCdWxrT3BlcmF0aW9uUmVzdWx0PFQ+IHwgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiB7XG4gICAgY29uc3QgeyB1cGRhdGUgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiB1cGRhdGU8VD4odGhpcywgb3B0aW9ucylcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBQYXlsb2FkID0gQmFzZVBheWxvYWQ8R2VuZXJhdGVkVHlwZXM+XG5cbmxldCBjYWNoZWQgPSBnbG9iYWwuX3BheWxvYWRcblxuaWYgKCFjYWNoZWQpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW11bHRpLWFzc2lnblxuICBjYWNoZWQgPSBnbG9iYWwuX3BheWxvYWQgPSB7IHBheWxvYWQ6IG51bGwsIHByb21pc2U6IG51bGwgfVxufVxuXG5leHBvcnQgY29uc3QgZ2V0UGF5bG9hZCA9IGFzeW5jIChvcHRpb25zOiBJbml0T3B0aW9ucyk6IFByb21pc2U8UGF5bG9hZD4gPT4ge1xuICBpZiAoY2FjaGVkLnBheWxvYWQpIHtcbiAgICByZXR1cm4gY2FjaGVkLnBheWxvYWRcbiAgfVxuXG4gIGlmICghY2FjaGVkLnByb21pc2UpIHtcbiAgICBjYWNoZWQucHJvbWlzZSA9IG5ldyBCYXNlUGF5bG9hZDxHZW5lcmF0ZWRUeXBlcz4oKS5pbml0KG9wdGlvbnMpXG4gIH1cblxuICB0cnkge1xuICAgIGNhY2hlZC5wYXlsb2FkID0gYXdhaXQgY2FjaGVkLnByb21pc2VcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNhY2hlZC5wcm9taXNlID0gbnVsbFxuICAgIHRocm93IGVcbiAgfVxuXG4gIHJldHVybiBjYWNoZWQucGF5bG9hZFxufVxuIl0sIm5hbWVzIjpbIkJhc2VQYXlsb2FkIiwiZ2V0UGF5bG9hZCIsIk11dGF0aW9uIiwibmFtZSIsImZpZWxkcyIsIlF1ZXJ5IiwiYXV0aGVudGljYXRlIiwiY29sbGVjdGlvbnMiLCJjb25maWciLCJjcmVhdGUiLCJvcHRpb25zIiwibG9jYWxPcGVyYXRpb25zIiwiZGIiLCJkZWNyeXB0IiwiZW1haWwiLCJlbWFpbE9wdGlvbnMiLCJlbmNyeXB0IiwiZXJyb3JIYW5kbGVyIiwiZXhwcmVzcyIsImV4dGVuc2lvbnMiLCJmaW5kIiwiZmluZEJ5SUQiLCJmaW5kR2xvYmFsIiwiZmluZE9uZSIsImxvY2FsR2xvYmFsT3BlcmF0aW9ucyIsImZpbmRHbG9iYWxWZXJzaW9uQnlJRCIsImZpbmRWZXJzaW9uQnlJRCIsImZpbmRHbG9iYWxWZXJzaW9ucyIsImZpbmRWZXJzaW9ucyIsImZvcmdvdFBhc3N3b3JkIiwiYXV0aCIsImdldEFQSVVSTCIsInNlcnZlclVSTCIsInJvdXRlcyIsImFwaSIsImdldEFkbWluVVJMIiwiYWRtaW4iLCJnbG9iYWxzIiwibG9jYWwiLCJsb2dnZXIiLCJsb2dpbiIsInJlc2V0UGFzc3dvcmQiLCJyZXN0b3JlR2xvYmFsVmVyc2lvbiIsInJlc3RvcmVWZXJzaW9uIiwicm91dGVyIiwic2NoZW1hIiwic2VjcmV0Iiwic2VuZEVtYWlsIiwidHlwZXMiLCJ1bmxvY2siLCJ1cGRhdGVHbG9iYWwiLCJ1cGRhdGUiLCJ2YWxpZGF0aW9uUnVsZXMiLCJ2ZXJpZnlFbWFpbCIsInZlcnNpb25zIiwiZGVsZXRlIiwiZGVsZXRlTG9jYWwiLCJpbml0IiwiTG9nZ2VyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckRlc3RpbmF0aW9uIiwiRXJyb3IiLCJjcnlwdG8iLCJjcmVhdGVIYXNoIiwiZGlnZXN0Iiwic2xpY2UiLCJjb25maWdQYXRoIiwiZmluZENvbmZpZyIsInBhdGhzIiwiY29uZmlnRGlyIiwicGF0aCIsImRpcm5hbWUiLCJyYXdDb25maWciLCJsb2FkQ29uZmlnIiwicmVxdWlyZSIsImRlZmF1bHQiLCJmb3JFYWNoIiwiY29sbGVjdGlvbiIsInNsdWciLCJwYXlsb2FkIiwiZGlzYWJsZURCQ29ubmVjdCIsImNvbm5lY3QiLCJpbmZvIiwid2FybiIsImVtYWlsRGVmYXVsdHMiLCJidWlsZEVtYWlsIiwiYmluZCIsImdyYXBoUUwiLCJkaXNhYmxlIiwicmVnaXN0ZXJHcmFwaFFMU2NoZW1hIiwic2VydmVySW5pdFRlbGVtZXRyeSIsImRpc2FibGVPbkluaXQiLCJvbkluaXQiLCJjYWNoZWQiLCJnbG9iYWwiLCJfcGF5bG9hZCIsInByb21pc2UiLCJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQStEYUEsV0FBVztlQUFYQTs7SUFxV0FDLFVBQVU7ZUFBVkE7OzsrREE3Wk07NkRBQ0Y7eUJBeUNnQjs4REFDTDs2REFDTDs4REFDQTswQkFDbUI7a0VBQ3BCOytEQUNZO3VFQUNBOytEQUNmOzRCQUMrQjs7Ozs7O0FBSzNDLE1BQU1EO0lBQ1hFLFdBQTZEO1FBQUVDLE1BQU07UUFBWUMsUUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"deleteUserPreferences.d.ts","sourceRoot":"","sources":["../../src/preferences/deleteUserPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEvC,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C;;OAEG;IACH,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,qBAAqB,4CAAmD,IAAI,kBAoBxF,CAAA"}
1
+ {"version":3,"file":"deleteUserPreferences.d.ts","sourceRoot":"","sources":["../../src/preferences/deleteUserPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEvC,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C;;OAEG;IACH,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,qBAAqB,4CAAmD,IAAI,kBAwBxF,CAAA"}
@@ -14,12 +14,18 @@ const deleteUserPreferences = async ({ collectionConfig, ids, payload, req })=>{
14
14
  collection: 'payload-preferences',
15
15
  req,
16
16
  where: {
17
- user: {
18
- in: ids
19
- },
20
- userCollection: {
21
- equals: collectionConfig.slug
22
- }
17
+ and: [
18
+ {
19
+ 'user.value': {
20
+ in: ids
21
+ }
22
+ },
23
+ {
24
+ 'user.relationTo': {
25
+ equals: collectionConfig.slug
26
+ }
27
+ }
28
+ ]
23
29
  }
24
30
  });
25
31
  }
@@ -34,4 +40,4 @@ const deleteUserPreferences = async ({ collectionConfig, ids, payload, req })=>{
34
40
  });
35
41
  };
36
42
 
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcmVmZXJlbmNlcy9kZWxldGVVc2VyUHJlZmVyZW5jZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi9pbmRleCdcblxudHlwZSBBcmdzID0ge1xuICBjb2xsZWN0aW9uQ29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIC8qKlxuICAgKiBVc2VyIElEcyB0byBkZWxldGVcbiAgICovXG4gIGlkczogKG51bWJlciB8IHN0cmluZylbXVxuICBwYXlsb2FkOiBQYXlsb2FkXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Rcbn1cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyUHJlZmVyZW5jZXMgPSBhc3luYyAoeyBjb2xsZWN0aW9uQ29uZmlnLCBpZHMsIHBheWxvYWQsIHJlcSB9OiBBcmdzKSA9PiB7XG4gIGlmIChjb2xsZWN0aW9uQ29uZmlnLmF1dGgpIHtcbiAgICBhd2FpdCBwYXlsb2FkLmRiLmRlbGV0ZU1hbnkoe1xuICAgICAgY29sbGVjdGlvbjogJ3BheWxvYWQtcHJlZmVyZW5jZXMnLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgdXNlcjogeyBpbjogaWRzIH0sXG4gICAgICAgIHVzZXJDb2xsZWN0aW9uOiB7XG4gICAgICAgICAgZXF1YWxzOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cbiAgYXdhaXQgcGF5bG9hZC5kYi5kZWxldGVNYW55KHtcbiAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1wcmVmZXJlbmNlcycsXG4gICAgcmVxLFxuICAgIHdoZXJlOiB7XG4gICAgICBrZXk6IHsgaW46IGlkcy5tYXAoKGlkKSA9PiBgY29sbGVjdGlvbi0ke2NvbGxlY3Rpb25Db25maWcuc2x1Z30tJHtpZH1gKSB9LFxuICAgIH0sXG4gIH0pXG59XG4iXSwibmFtZXMiOlsiZGVsZXRlVXNlclByZWZlcmVuY2VzIiwiY29sbGVjdGlvbkNvbmZpZyIsImlkcyIsInBheWxvYWQiLCJyZXEiLCJhdXRoIiwiZGIiLCJkZWxldGVNYW55IiwiY29sbGVjdGlvbiIsIndoZXJlIiwidXNlciIsImluIiwidXNlckNvbGxlY3Rpb24iLCJlcXVhbHMiLCJzbHVnIiwia2V5IiwibWFwIiwiaWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBYWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHdCQUF3QixPQUFPLEVBQUVDLGdCQUFnQixFQUFFQyxHQUFHLEVBQUVDLE9BQU8sRUFBRUMsR0FBRyxFQUFRO0lBQ3ZGLElBQUlILGlCQUFpQkksSUFBSSxFQUFFO1FBQ3pCLE1BQU1GLFFBQVFHLEVBQUUsQ0FBQ0MsVUFBVSxDQUFDO1lBQzFCQyxZQUFZO1lBQ1pKO1lBQ0FLLE9BQU87Z0JBQ0xDLE1BQU07b0JBQUVDLElBQUlUO2dCQUFJO2dCQUNoQlUsZ0JBQWdCO29CQUNkQyxRQUFRWixpQkFBaUJhLElBQUk7Z0JBQy9CO1lBQ0Y7UUFDRjtJQUNGO0lBQ0EsTUFBTVgsUUFBUUcsRUFBRSxDQUFDQyxVQUFVLENBQUM7UUFDMUJDLFlBQVk7UUFDWko7UUFDQUssT0FBTztZQUNMTSxLQUFLO2dCQUFFSixJQUFJVCxJQUFJYyxHQUFHLENBQUMsQ0FBQ0MsS0FBTyxDQUFDLFdBQVcsRUFBRWhCLGlCQUFpQmEsSUFBSSxDQUFDLENBQUMsRUFBRUcsR0FBRyxDQUFDO1lBQUU7UUFDMUU7SUFDRjtBQUNGIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcmVmZXJlbmNlcy9kZWxldGVVc2VyUHJlZmVyZW5jZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi9pbmRleCdcblxudHlwZSBBcmdzID0ge1xuICBjb2xsZWN0aW9uQ29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIC8qKlxuICAgKiBVc2VyIElEcyB0byBkZWxldGVcbiAgICovXG4gIGlkczogKG51bWJlciB8IHN0cmluZylbXVxuICBwYXlsb2FkOiBQYXlsb2FkXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Rcbn1cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyUHJlZmVyZW5jZXMgPSBhc3luYyAoeyBjb2xsZWN0aW9uQ29uZmlnLCBpZHMsIHBheWxvYWQsIHJlcSB9OiBBcmdzKSA9PiB7XG4gIGlmIChjb2xsZWN0aW9uQ29uZmlnLmF1dGgpIHtcbiAgICBhd2FpdCBwYXlsb2FkLmRiLmRlbGV0ZU1hbnkoe1xuICAgICAgY29sbGVjdGlvbjogJ3BheWxvYWQtcHJlZmVyZW5jZXMnLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmU6IHtcbiAgICAgICAgYW5kOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgJ3VzZXIudmFsdWUnOiB7IGluOiBpZHMgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgICd1c2VyLnJlbGF0aW9uVG8nOiB7IGVxdWFsczogY29sbGVjdGlvbkNvbmZpZy5zbHVnIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuICBhd2FpdCBwYXlsb2FkLmRiLmRlbGV0ZU1hbnkoe1xuICAgIGNvbGxlY3Rpb246ICdwYXlsb2FkLXByZWZlcmVuY2VzJyxcbiAgICByZXEsXG4gICAgd2hlcmU6IHtcbiAgICAgIGtleTogeyBpbjogaWRzLm1hcCgoaWQpID0+IGBjb2xsZWN0aW9uLSR7Y29sbGVjdGlvbkNvbmZpZy5zbHVnfS0ke2lkfWApIH0sXG4gICAgfSxcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJkZWxldGVVc2VyUHJlZmVyZW5jZXMiLCJjb2xsZWN0aW9uQ29uZmlnIiwiaWRzIiwicGF5bG9hZCIsInJlcSIsImF1dGgiLCJkYiIsImRlbGV0ZU1hbnkiLCJjb2xsZWN0aW9uIiwid2hlcmUiLCJhbmQiLCJpbiIsImVxdWFscyIsInNsdWciLCJrZXkiLCJtYXAiLCJpZCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFhYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsd0JBQXdCLE9BQU8sRUFBRUMsZ0JBQWdCLEVBQUVDLEdBQUcsRUFBRUMsT0FBTyxFQUFFQyxHQUFHLEVBQVE7SUFDdkYsSUFBSUgsaUJBQWlCSSxJQUFJLEVBQUU7UUFDekIsTUFBTUYsUUFBUUcsRUFBRSxDQUFDQyxVQUFVLENBQUM7WUFDMUJDLFlBQVk7WUFDWko7WUFDQUssT0FBTztnQkFDTEMsS0FBSztvQkFDSDt3QkFDRSxjQUFjOzRCQUFFQyxJQUFJVDt3QkFBSTtvQkFDMUI7b0JBQ0E7d0JBQ0UsbUJBQW1COzRCQUFFVSxRQUFRWCxpQkFBaUJZLElBQUk7d0JBQUM7b0JBQ3JEO2lCQUNEO1lBQ0g7UUFDRjtJQUNGO0lBQ0EsTUFBTVYsUUFBUUcsRUFBRSxDQUFDQyxVQUFVLENBQUM7UUFDMUJDLFlBQVk7UUFDWko7UUFDQUssT0FBTztZQUNMSyxLQUFLO2dCQUFFSCxJQUFJVCxJQUFJYSxHQUFHLENBQUMsQ0FBQ0MsS0FBTyxDQUFDLFdBQVcsRUFBRWYsaUJBQWlCWSxJQUFJLENBQUMsQ0FBQyxFQUFFRyxHQUFHLENBQUM7WUFBRTtRQUMxRTtJQUNGO0FBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"preferencesCollection.d.ts","sourceRoot":"","sources":["../../src/preferences/preferencesCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAYrD,QAAA,MAAM,wBAAwB,WAAY,MAAM,KAAG,gBAqEjD,CAAA;AAEF,eAAe,wBAAwB,CAAA"}
1
+ {"version":3,"file":"preferencesCollection.d.ts","sourceRoot":"","sources":["../../src/preferences/preferencesCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAYrD,QAAA,MAAM,wBAAwB,WAAY,MAAM,KAAG,gBAyDjD,CAAA;AAEF,eAAe,wBAAwB,CAAA"}
@@ -75,20 +75,8 @@ const getPreferencesCollection = (config)=>({
75
75
  type: 'json'
76
76
  }
77
77
  ],
78
- indexes: [
79
- {
80
- fields: {
81
- key: 1,
82
- 'user.relationTo': 1,
83
- 'user.value': 1
84
- },
85
- options: {
86
- unique: true
87
- }
88
- }
89
- ],
90
78
  slug: 'payload-preferences'
91
79
  });
92
80
  const _default = getPreferencesCollection;
93
81
 
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlc0NvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBY2Nlc3MsIENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGRlbGV0ZUhhbmRsZXIgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZGVsZXRlJ1xuaW1wb3J0IGZpbmRPbmUgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZE9uZSdcbmltcG9ydCB1cGRhdGUgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvdXBkYXRlJ1xuXG5jb25zdCBwcmVmZXJlbmNlQWNjZXNzOiBBY2Nlc3MgPSAoeyByZXEgfSkgPT4gKHtcbiAgJ3VzZXIudmFsdWUnOiB7XG4gICAgZXF1YWxzOiByZXE/LnVzZXI/LmlkLFxuICB9LFxufSlcblxuY29uc3QgZ2V0UHJlZmVyZW5jZXNDb2xsZWN0aW9uID0gKGNvbmZpZzogQ29uZmlnKTogQ29sbGVjdGlvbkNvbmZpZyA9PiAoe1xuICBhY2Nlc3M6IHtcbiAgICBkZWxldGU6IHByZWZlcmVuY2VBY2Nlc3MsXG4gICAgcmVhZDogcHJlZmVyZW5jZUFjY2VzcyxcbiAgfSxcbiAgYWRtaW46IHtcbiAgICBoaWRkZW46IHRydWUsXG4gIH0sXG4gIGVuZHBvaW50czogW1xuICAgIHtcbiAgICAgIGhhbmRsZXI6IGZpbmRPbmUsXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcGF0aDogJy86a2V5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhhbmRsZXI6IGRlbGV0ZUhhbmRsZXIsXG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgcGF0aDogJy86a2V5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhhbmRsZXI6IHVwZGF0ZSxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgcGF0aDogJy86a2V5JyxcbiAgICB9LFxuICBdLFxuICBmaWVsZHM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAndXNlcicsXG4gICAgICBob29rczoge1xuICAgICAgICBiZWZvcmVWYWxpZGF0ZTogW1xuICAgICAgICAgICh7IHJlcSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlcT8udXNlcikge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcmVsYXRpb25UbzogcmVxPy51c2VyLmNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIHZhbHVlOiByZXE/LnVzZXIuaWQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICByZWxhdGlvblRvOiBjb25maWcuY29sbGVjdGlvbnNcbiAgICAgICAgLmZpbHRlcigoY29sbGVjdGlvbkNvbmZpZykgPT4gY29sbGVjdGlvbkNvbmZpZy5hdXRoKVxuICAgICAgICAubWFwKChjb2xsZWN0aW9uQ29uZmlnKSA9PiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcpLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB0eXBlOiAncmVsYXRpb25zaGlwJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdrZXknLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3ZhbHVlJyxcbiAgICAgIHR5cGU6ICdqc29uJyxcbiAgICB9LFxuICBdLFxuICBpbmRleGVzOiBbXG4gICAge1xuICAgICAgZmllbGRzOiB7XG4gICAgICAgIGtleTogMSxcbiAgICAgICAgJ3VzZXIucmVsYXRpb25Ubyc6IDEsXG4gICAgICAgICd1c2VyLnZhbHVlJzogMSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHVuaXF1ZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgc2x1ZzogJ3BheWxvYWQtcHJlZmVyZW5jZXMnLFxufSlcblxuZXhwb3J0IGRlZmF1bHQgZ2V0UHJlZmVyZW5jZXNDb2xsZWN0aW9uXG4iXSwibmFtZXMiOlsicHJlZmVyZW5jZUFjY2VzcyIsInJlcSIsImVxdWFscyIsInVzZXIiLCJpZCIsImdldFByZWZlcmVuY2VzQ29sbGVjdGlvbiIsImNvbmZpZyIsImFjY2VzcyIsImRlbGV0ZSIsInJlYWQiLCJhZG1pbiIsImhpZGRlbiIsImVuZHBvaW50cyIsImhhbmRsZXIiLCJmaW5kT25lIiwibWV0aG9kIiwicGF0aCIsImRlbGV0ZUhhbmRsZXIiLCJ1cGRhdGUiLCJmaWVsZHMiLCJuYW1lIiwiaG9va3MiLCJiZWZvcmVWYWxpZGF0ZSIsInJlbGF0aW9uVG8iLCJjb2xsZWN0aW9uIiwidmFsdWUiLCJjb2xsZWN0aW9ucyIsImZpbHRlciIsImNvbGxlY3Rpb25Db25maWciLCJhdXRoIiwibWFwIiwic2x1ZyIsInJlcXVpcmVkIiwidHlwZSIsImluZGV4ZXMiLCJrZXkiLCJvcHRpb25zIiwidW5pcXVlIl0sIm1hcHBpbmdzIjoiOzs7OytCQW9GQTs7O2VBQUE7OzsrREFqRjBCO2dFQUNOOytEQUNEOzs7Ozs7QUFFbkIsTUFBTUEsbUJBQTJCLENBQUMsRUFBRUMsR0FBRyxFQUFFLEdBQU0sQ0FBQTtRQUM3QyxjQUFjO1lBQ1pDLFFBQVFELEtBQUtFLE1BQU1DO1FBQ3JCO0lBQ0YsQ0FBQTtBQUVBLE1BQU1DLDJCQUEyQixDQUFDQyxTQUFzQyxDQUFBO1FBQ3RFQyxRQUFRO1lBQ05DLFFBQVFSO1lBQ1JTLE1BQU1UO1FBQ1I7UUFDQVUsT0FBTztZQUNMQyxRQUFRO1FBQ1Y7UUFDQUMsV0FBVztZQUNUO2dCQUNFQyxTQUFTQyxnQkFBTztnQkFDaEJDLFFBQVE7Z0JBQ1JDLE1BQU07WUFDUjtZQUNBO2dCQUNFSCxTQUFTSSxlQUFhO2dCQUN0QkYsUUFBUTtnQkFDUkMsTUFBTTtZQUNSO1lBQ0E7Z0JBQ0VILFNBQVNLLGVBQU07Z0JBQ2ZILFFBQVE7Z0JBQ1JDLE1BQU07WUFDUjtTQUNEO1FBQ0RHLFFBQVE7WUFDTjtnQkFDRUMsTUFBTTtnQkFDTkMsT0FBTztvQkFDTEMsZ0JBQWdCO3dCQUNkLENBQUMsRUFBRXJCLEdBQUcsRUFBRTs0QkFDTixJQUFJLENBQUNBLEtBQUtFLE1BQU07Z0NBQ2QsT0FBTzs0QkFDVDs0QkFDQSxPQUFPO2dDQUNMb0IsWUFBWXRCLEtBQUtFLEtBQUtxQjtnQ0FDdEJDLE9BQU94QixLQUFLRSxLQUFLQzs0QkFDbkI7d0JBQ0Y7cUJBQ0Q7Z0JBQ0g7Z0JBQ0FtQixZQUFZakIsT0FBT29CLFdBQVcsQ0FDM0JDLE1BQU0sQ0FBQyxDQUFDQyxtQkFBcUJBLGlCQUFpQkMsSUFBSSxFQUNsREMsR0FBRyxDQUFDLENBQUNGLG1CQUFxQkEsaUJBQWlCRyxJQUFJO2dCQUNsREMsVUFBVTtnQkFDVkMsTUFBTTtZQUNSO1lBQ0E7Z0JBQ0ViLE1BQU07Z0JBQ05hLE1BQU07WUFDUjtZQUNBO2dCQUNFYixNQUFNO2dCQUNOYSxNQUFNO1lBQ1I7U0FDRDtRQUNEQyxTQUFTO1lBQ1A7Z0JBQ0VmLFFBQVE7b0JBQ05nQixLQUFLO29CQUNMLG1CQUFtQjtvQkFDbkIsY0FBYztnQkFDaEI7Z0JBQ0FDLFNBQVM7b0JBQ1BDLFFBQVE7Z0JBQ1Y7WUFDRjtTQUNEO1FBQ0ROLE1BQU07SUFDUixDQUFBO01BRUEsV0FBZTFCIn0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlc0NvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBY2Nlc3MsIENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGRlbGV0ZUhhbmRsZXIgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZGVsZXRlJ1xuaW1wb3J0IGZpbmRPbmUgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZE9uZSdcbmltcG9ydCB1cGRhdGUgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvdXBkYXRlJ1xuXG5jb25zdCBwcmVmZXJlbmNlQWNjZXNzOiBBY2Nlc3MgPSAoeyByZXEgfSkgPT4gKHtcbiAgJ3VzZXIudmFsdWUnOiB7XG4gICAgZXF1YWxzOiByZXE/LnVzZXI/LmlkLFxuICB9LFxufSlcblxuY29uc3QgZ2V0UHJlZmVyZW5jZXNDb2xsZWN0aW9uID0gKGNvbmZpZzogQ29uZmlnKTogQ29sbGVjdGlvbkNvbmZpZyA9PiAoe1xuICBhY2Nlc3M6IHtcbiAgICBkZWxldGU6IHByZWZlcmVuY2VBY2Nlc3MsXG4gICAgcmVhZDogcHJlZmVyZW5jZUFjY2VzcyxcbiAgfSxcbiAgYWRtaW46IHtcbiAgICBoaWRkZW46IHRydWUsXG4gIH0sXG4gIGVuZHBvaW50czogW1xuICAgIHtcbiAgICAgIGhhbmRsZXI6IGZpbmRPbmUsXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcGF0aDogJy86a2V5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhhbmRsZXI6IGRlbGV0ZUhhbmRsZXIsXG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgcGF0aDogJy86a2V5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhhbmRsZXI6IHVwZGF0ZSxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgcGF0aDogJy86a2V5JyxcbiAgICB9LFxuICBdLFxuICBmaWVsZHM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAndXNlcicsXG4gICAgICBob29rczoge1xuICAgICAgICBiZWZvcmVWYWxpZGF0ZTogW1xuICAgICAgICAgICh7IHJlcSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlcT8udXNlcikge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcmVsYXRpb25UbzogcmVxPy51c2VyLmNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIHZhbHVlOiByZXE/LnVzZXIuaWQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICByZWxhdGlvblRvOiBjb25maWcuY29sbGVjdGlvbnNcbiAgICAgICAgLmZpbHRlcigoY29sbGVjdGlvbkNvbmZpZykgPT4gY29sbGVjdGlvbkNvbmZpZy5hdXRoKVxuICAgICAgICAubWFwKChjb2xsZWN0aW9uQ29uZmlnKSA9PiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcpLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB0eXBlOiAncmVsYXRpb25zaGlwJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdrZXknLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3ZhbHVlJyxcbiAgICAgIHR5cGU6ICdqc29uJyxcbiAgICB9LFxuICBdLFxuICBzbHVnOiAncGF5bG9hZC1wcmVmZXJlbmNlcycsXG59KVxuXG5leHBvcnQgZGVmYXVsdCBnZXRQcmVmZXJlbmNlc0NvbGxlY3Rpb25cbiJdLCJuYW1lcyI6WyJwcmVmZXJlbmNlQWNjZXNzIiwicmVxIiwiZXF1YWxzIiwidXNlciIsImlkIiwiZ2V0UHJlZmVyZW5jZXNDb2xsZWN0aW9uIiwiY29uZmlnIiwiYWNjZXNzIiwiZGVsZXRlIiwicmVhZCIsImFkbWluIiwiaGlkZGVuIiwiZW5kcG9pbnRzIiwiaGFuZGxlciIsImZpbmRPbmUiLCJtZXRob2QiLCJwYXRoIiwiZGVsZXRlSGFuZGxlciIsInVwZGF0ZSIsImZpZWxkcyIsIm5hbWUiLCJob29rcyIsImJlZm9yZVZhbGlkYXRlIiwicmVsYXRpb25UbyIsImNvbGxlY3Rpb24iLCJ2YWx1ZSIsImNvbGxlY3Rpb25zIiwiZmlsdGVyIiwiY29sbGVjdGlvbkNvbmZpZyIsImF1dGgiLCJtYXAiLCJzbHVnIiwicmVxdWlyZWQiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdFQTs7O2VBQUE7OzsrREFyRTBCO2dFQUNOOytEQUNEOzs7Ozs7QUFFbkIsTUFBTUEsbUJBQTJCLENBQUMsRUFBRUMsR0FBRyxFQUFFLEdBQU0sQ0FBQTtRQUM3QyxjQUFjO1lBQ1pDLFFBQVFELEtBQUtFLE1BQU1DO1FBQ3JCO0lBQ0YsQ0FBQTtBQUVBLE1BQU1DLDJCQUEyQixDQUFDQyxTQUFzQyxDQUFBO1FBQ3RFQyxRQUFRO1lBQ05DLFFBQVFSO1lBQ1JTLE1BQU1UO1FBQ1I7UUFDQVUsT0FBTztZQUNMQyxRQUFRO1FBQ1Y7UUFDQUMsV0FBVztZQUNUO2dCQUNFQyxTQUFTQyxnQkFBTztnQkFDaEJDLFFBQVE7Z0JBQ1JDLE1BQU07WUFDUjtZQUNBO2dCQUNFSCxTQUFTSSxlQUFhO2dCQUN0QkYsUUFBUTtnQkFDUkMsTUFBTTtZQUNSO1lBQ0E7Z0JBQ0VILFNBQVNLLGVBQU07Z0JBQ2ZILFFBQVE7Z0JBQ1JDLE1BQU07WUFDUjtTQUNEO1FBQ0RHLFFBQVE7WUFDTjtnQkFDRUMsTUFBTTtnQkFDTkMsT0FBTztvQkFDTEMsZ0JBQWdCO3dCQUNkLENBQUMsRUFBRXJCLEdBQUcsRUFBRTs0QkFDTixJQUFJLENBQUNBLEtBQUtFLE1BQU07Z0NBQ2QsT0FBTzs0QkFDVDs0QkFDQSxPQUFPO2dDQUNMb0IsWUFBWXRCLEtBQUtFLEtBQUtxQjtnQ0FDdEJDLE9BQU94QixLQUFLRSxLQUFLQzs0QkFDbkI7d0JBQ0Y7cUJBQ0Q7Z0JBQ0g7Z0JBQ0FtQixZQUFZakIsT0FBT29CLFdBQVcsQ0FDM0JDLE1BQU0sQ0FBQyxDQUFDQyxtQkFBcUJBLGlCQUFpQkMsSUFBSSxFQUNsREMsR0FBRyxDQUFDLENBQUNGLG1CQUFxQkEsaUJBQWlCRyxJQUFJO2dCQUNsREMsVUFBVTtnQkFDVkMsTUFBTTtZQUNSO1lBQ0E7Z0JBQ0ViLE1BQU07Z0JBQ05hLE1BQU07WUFDUjtZQUNBO2dCQUNFYixNQUFNO2dCQUNOYSxNQUFNO1lBQ1I7U0FDRDtRQUNERixNQUFNO0lBQ1IsQ0FBQTtNQUVBLFdBQWUxQiJ9
@@ -146,6 +146,7 @@
146
146
  "addFilter": "أضف فلتر",
147
147
  "adminTheme": "شكل واجهة المستخدم",
148
148
  "and": "و",
149
+ "applyChanges": "طبق التغييرات",
149
150
  "ascending": "تصاعدي",
150
151
  "automatic": "تلقائي",
151
152
  "backToDashboard": "العودة للوحة التّحكّم",
@@ -164,10 +165,10 @@
164
165
  "create": "إنشاء",
165
166
  "createNew": "أنشاء جديد",
166
167
  "createNewLabel": "إنشاء {{label}} جديد",
167
- "creatingNewLabel": "جاري إنشاء {{label}} جديد",
168
168
  "created": "تمّ الإنشاء",
169
169
  "createdAt": "تمّ الإنشاء في",
170
170
  "creating": "يتمّ الإنشاء",
171
+ "creatingNewLabel": "جاري إنشاء {{label}} جديد",
171
172
  "dark": "غامق",
172
173
  "dashboard": "لوحة التّحكّم",
173
174
  "delete": "حذف",
@@ -216,12 +217,14 @@
216
217
  "nothingFound": "لم يتم العثور على شيء",
217
218
  "of": "من",
218
219
  "or": "أو",
220
+ "open": "فتح",
219
221
  "order": "التّرتيب",
220
222
  "pageNotFound": "الصّفحة غير موجودة",
221
223
  "password": "كلمة المرور",
222
224
  "payloadSettings": "الإعدادات",
223
225
  "perPage": "لكلّ صفحة: {{limit}}",
224
226
  "remove": "إزالة",
227
+ "reset": "إعادة تعيين",
225
228
  "row": "سطر",
226
229
  "rows": "أسطُر",
227
230
  "save": "حفظ",
@@ -270,16 +273,25 @@
270
273
  "near": "قريب من"
271
274
  },
272
275
  "upload": {
276
+ "crop": "محصول",
277
+ "cropToolDescription": "اسحب الزوايا المحددة للمنطقة، رسم منطقة جديدة أو قم بضبط القيم أدناه.",
273
278
  "dragAndDrop": "قم بسحب وإسقاط ملفّ",
274
279
  "dragAndDropHere": "أو اسحب الملفّ وأفلته هنا",
280
+ "editImage": "تعديل الصورة",
275
281
  "fileName": "اسم الملفّ",
276
282
  "fileSize": "حجم الملفّ",
283
+ "focalPoint": "نقطة التركيز",
284
+ "focalPointDescription": "اسحب النقطة المركزية مباشرة على المعاينة أو قم بضبط القيم أدناه.",
277
285
  "height": "الطّول",
278
286
  "lessInfo": "معلومات أقلّ",
279
287
  "moreInfo": "معلومات أكثر",
288
+ "previewSizes": "أحجام المعاينة",
280
289
  "selectCollectionToBrowse": "حدّد مجموعة لاستعراضها",
281
290
  "selectFile": "اختر ملفّ",
291
+ "setCropArea": "حدد منطقة القص",
292
+ "setFocalPoint": "حدد النقطة البؤرية",
282
293
  "sizes": "الاحجام",
294
+ "sizesFor": "أحجام لـ {{label}}",
283
295
  "width": "العرض"
284
296
  },
285
297
  "validation": {
@@ -356,4 +368,4 @@
356
368
  "viewingVersions": "يتمّ استعراض النُّسَخ ل {{entityLabel}} {{documentTitle}}",
357
369
  "viewingVersionsGlobal": "يتمّ استعراض النُّسَخ للاعداد العامّ {{entityLabel}}"
358
370
  }
359
- }
371
+ }
@@ -147,6 +147,7 @@
147
147
  "addFilter": "Filter əlavə et",
148
148
  "adminTheme": "Admin Mövzusu",
149
149
  "and": "Və",
150
+ "applyChanges": "Dəyişiklikləri Tətbiq Edin",
150
151
  "ascending": "Artan",
151
152
  "automatic": "Avtomatik",
152
153
  "backToDashboard": "Panelə qayıdın",
@@ -165,10 +166,10 @@
165
166
  "create": "Yarat",
166
167
  "createNew": "Yeni yarat",
167
168
  "createNewLabel": "Yeni {{label}} yarat",
168
- "creatingNewLabel": "Yeni {{label}} yaradılır",
169
169
  "created": "Yaradıldı",
170
170
  "createdAt": "Yaradıldığı tarix",
171
171
  "creating": "Yaradılır",
172
+ "creatingNewLabel": "Yeni {{label}} yaradılır",
172
173
  "dark": "Tünd",
173
174
  "dashboard": "Panel",
174
175
  "delete": "Sil",
@@ -217,12 +218,14 @@
217
218
  "nothingFound": "Heç nə tapılmadı",
218
219
  "of": "dən",
219
220
  "or": "Və ya",
221
+ "open": "Aç",
220
222
  "order": "Sıra",
221
223
  "pageNotFound": "Səhifə tapılmadı",
222
224
  "password": "Şifrə",
223
225
  "payloadSettings": "Payload Parametrləri",
224
226
  "perPage": "Hər səhifədə: {{limit}}",
225
227
  "remove": "Sil",
228
+ "reset": "Yenidən başlat",
226
229
  "row": "Sətir",
227
230
  "rows": "Sətirlər",
228
231
  "save": "Saxla",
@@ -271,16 +274,25 @@
271
274
  "near": "yaxın"
272
275
  },
273
276
  "upload": {
277
+ "crop": "Məhsul",
278
+ "cropToolDescription": "Seçilmiş sahənin köşələrini sürükləyin, yeni bir sahə çəkin və ya aşağıdakı dəyərləri düzəltin.",
274
279
  "dragAndDrop": "Faylı buraya sürükləyin və buraxın",
275
280
  "dragAndDropHere": "və ya faylı buraya sürükləyin və buraxın",
281
+ "editImage": "Şəkili Redaktə Et",
276
282
  "fileName": "Faylın Adı",
277
283
  "fileSize": "Faylım Ölçüsü",
284
+ "focalPoint": "Mərkəzi Nöqtə",
285
+ "focalPointDescription": "Fokus nöqtəsini birbaşa önizləməyə sürükləyin və ya aşağıdakı dəyərləri düzəltin.",
278
286
  "height": "Hündürlük",
279
287
  "lessInfo": "Daha az məlumat",
280
288
  "moreInfo": "Daha çox məlumat",
289
+ "previewSizes": "Öncədən baxış ölçüləri",
281
290
  "selectCollectionToBrowse": "Gözdən keçirmək üçün bir Kolleksiya seçin",
282
291
  "selectFile": "Fayl seçin",
292
+ "setCropArea": "Məhsul sahəsini təyin et",
293
+ "setFocalPoint": "Fokus nöqtəsi təyin et",
283
294
  "sizes": "Ölçülər",
295
+ "sizesFor": "{{label}} üçün ölçülər",
284
296
  "width": "En"
285
297
  },
286
298
  "validation": {
@@ -357,4 +369,4 @@
357
369
  "viewingVersions": "{{entityLabel}} {{documentTitle}} üçün versiyaları göstərir",
358
370
  "viewingVersionsGlobal": "Qlobal {{entityLabel}} üçün versiyaları göstərir"
359
371
  }
360
- }
372
+ }