@agilemotion/oui-react-js 2.0.3 → 2.0.6

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 (253) hide show
  1. package/dist/ApplicationManager.js +2 -1
  2. package/dist/BasicApp.js +2 -1
  3. package/dist/BasicAppHome.js +2 -1
  4. package/dist/DateUtils.js +2 -1
  5. package/dist/DynamicJS.js +2 -1
  6. package/dist/InteractionPortalApp.js +2 -1
  7. package/dist/InteractionPortalAppHome.js +2 -1
  8. package/dist/InteractionPortalApp_old.js +2 -1
  9. package/dist/MouseTracker.js +2 -1
  10. package/dist/RestService.js +2 -1
  11. package/dist/RestUtils.js +2 -1
  12. package/dist/TypedValue.js +2 -1
  13. package/dist/Utils.js +2 -1
  14. package/dist/ViewContext.js +2 -1
  15. package/dist/WithRouter.js +2 -1
  16. package/dist/assets/jss/components/authNavbarStyle.js +2 -1
  17. package/dist/assets/jss/components/buttonStyle.js +2 -1
  18. package/dist/assets/jss/components/cardAvatarStyle.js +2 -1
  19. package/dist/assets/jss/components/cardBodyStyle.js +2 -1
  20. package/dist/assets/jss/components/cardFooterStyle.js +2 -1
  21. package/dist/assets/jss/components/cardHeaderStyle.js +2 -1
  22. package/dist/assets/jss/components/cardIconStyle.js +2 -1
  23. package/dist/assets/jss/components/cardStyle.js +2 -1
  24. package/dist/assets/jss/components/cardTextStyle.js +2 -1
  25. package/dist/assets/jss/components/customDropdownStyle.js +2 -1
  26. package/dist/assets/jss/components/customInputStyle.js +2 -1
  27. package/dist/assets/jss/components/dropdownStyle.js +2 -1
  28. package/dist/assets/jss/components/footerStyle.js +2 -1
  29. package/dist/assets/jss/components/headerLinksStyle.js +2 -1
  30. package/dist/assets/jss/components/headerStyle.js +2 -1
  31. package/dist/assets/jss/components/navbarLinksStyle.js +2 -1
  32. package/dist/assets/jss/components/navbarStyle.js +2 -1
  33. package/dist/assets/jss/components/sidebarStyle.js +2 -1
  34. package/dist/assets/jss/components/typographyStyle.js +2 -1
  35. package/dist/assets/jss/rootStyle.js +2 -1
  36. package/dist/assets/jss/views/layoutStyle.js +2 -1
  37. package/dist/assets/jss/views/loginBasicStyle.js +2 -1
  38. package/dist/assets/jss/views/loginBusinessPortalStyle.js +2 -1
  39. package/dist/assets/jss/views/loginStyle.js +2 -1
  40. package/dist/components/AlertBar.js +2 -1
  41. package/dist/components/AlertItem.js +2 -1
  42. package/dist/components/AlertTemplate.js +2 -1
  43. package/dist/components/Button.js +2 -1
  44. package/dist/components/Calendar.js +2 -1
  45. package/dist/components/Chart.js +2 -1
  46. package/dist/components/ConfirmationDialog.js +2 -1
  47. package/dist/components/DataGrid.js +2 -1
  48. package/dist/components/DataGridColumn.js +2 -1
  49. package/dist/components/DataGridFilter.js +2 -1
  50. package/dist/components/DataGridHeading.js +2 -1
  51. package/dist/components/Dialog.js +2 -1
  52. package/dist/components/DocumentTemplateDesigner.js +2 -1
  53. package/dist/components/DocumentTemplateDesignerComponent.js +2 -1
  54. package/dist/components/DocumentTemplatePlaceholderDialog.js +2 -1
  55. package/dist/components/DocumentViewer.js +2 -1
  56. package/dist/components/ElementResizeHandler.js +2 -1
  57. package/dist/components/FaceApi.js +2 -1
  58. package/dist/components/FileThumb.js +2 -1
  59. package/dist/components/Graph.js +2 -1
  60. package/dist/components/GraphNode.js +2 -1
  61. package/dist/components/HtmlPanel.js +2 -1
  62. package/dist/components/Icon.js +2 -1
  63. package/dist/components/LoadingIndicator.js +2 -1
  64. package/dist/components/LottieIcon.js +2 -1
  65. package/dist/components/PDFDesignerComponent.js +2 -1
  66. package/dist/components/PDFViewer.js +2 -1
  67. package/dist/components/PopupView.js +2 -1
  68. package/dist/components/Portlet.js +2 -1
  69. package/dist/components/ProgressTracker.js +2 -1
  70. package/dist/components/RegularButton.js +2 -1
  71. package/dist/components/SignaturePanel.js +2 -1
  72. package/dist/components/SocketManager.js +2 -1
  73. package/dist/components/Spinner.js +2 -1
  74. package/dist/components/StepperTitleBar.js +2 -1
  75. package/dist/components/TabPage.js +2 -1
  76. package/dist/components/TabPanel.js +2 -1
  77. package/dist/components/TableCellContent.js +2 -1
  78. package/dist/components/TemplateDesigner.js +2 -1
  79. package/dist/components/TemplateItemEventHandler.js +2 -1
  80. package/dist/components/TemplateTable.js +2 -1
  81. package/dist/components/TitleBar.js +2 -1
  82. package/dist/components/Toolbar.js +2 -1
  83. package/dist/components/Tooltip.js +2 -1
  84. package/dist/components/Tree.js +2 -1
  85. package/dist/components/UseIsVisible.js +2 -1
  86. package/dist/components/WordDocumentViewer.js +2 -1
  87. package/dist/components/card/Card.js +2 -1
  88. package/dist/components/card/CardAvatar.js +2 -1
  89. package/dist/components/card/CardBody.js +2 -1
  90. package/dist/components/card/CardFooter.js +2 -1
  91. package/dist/components/card/CardHeader.js +2 -1
  92. package/dist/components/card/CardIcon.js +2 -1
  93. package/dist/components/card/CardText.js +2 -1
  94. package/dist/components/customInput/CustomInput.js +2 -1
  95. package/dist/components/customInput/File.js +2 -1
  96. package/dist/components/dashboard/FoldingSideTabDashboard.bck.js +2 -1
  97. package/dist/components/dashboard/FoldingSideTabDashboard.js +2 -1
  98. package/dist/components/dashboard/SideMenuModuleDashboard.js +2 -1
  99. package/dist/components/dashboard/TopMenuModuleDashboard.js +2 -1
  100. package/dist/components/dashboard/components/Header.js +2 -1
  101. package/dist/components/dashboard/components/LeftDrawer.js +2 -1
  102. package/dist/components/dashboard/components/UserIdentity.js +2 -1
  103. package/dist/components/dashboard/components/blackDashboard/fixedPlugin/FixedPlugin.js +2 -1
  104. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.bck.js +2 -1
  105. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +2 -1
  106. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenu.js +2 -1
  107. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenuSidebar.js +2 -1
  108. package/dist/components/dashboard/components/portal/Timeline.js +2 -1
  109. package/dist/components/dashboard/components/portal/Workspace.js +2 -1
  110. package/dist/components/facialRecognition/FaceRecognitionComponent.js +2 -1
  111. package/dist/components/facialRecognition/FacialRegistration.js +2 -1
  112. package/dist/components/facialRecognition/FacialVerification.js +2 -1
  113. package/dist/components/facialRecognition/Modal.js +2 -1
  114. package/dist/components/facialRecognition/service/faceApi.js +2 -1
  115. package/dist/components/footer/Footer.js +2 -1
  116. package/dist/components/footer/HomeFooter.js +2 -1
  117. package/dist/components/form/AddressSearch.js +2 -1
  118. package/dist/components/form/AutoComplete.js +2 -1
  119. package/dist/components/form/BaseField.js +46 -5
  120. package/dist/components/form/Checkbox.js +2 -1
  121. package/dist/components/form/CurrencyField.js +2 -1
  122. package/dist/components/form/DatePicker.js +2 -1
  123. package/dist/components/form/FieldSet.js +2 -1
  124. package/dist/components/form/Form.js +62 -32
  125. package/dist/components/form/GridField.js +2 -1
  126. package/dist/components/form/IconField.js +2 -1
  127. package/dist/components/form/ImageEditor.js +2 -1
  128. package/dist/components/form/LabelField.js +2 -1
  129. package/dist/components/form/LookupField.js +2 -1
  130. package/dist/components/form/MultiFileUploadField.js +2 -1
  131. package/dist/components/form/RadioGroup.js +2 -1
  132. package/dist/components/form/Section.js +2 -1
  133. package/dist/components/form/SelectItem.js +2 -1
  134. package/dist/components/form/SignatureTemplateDesignerField.js +2 -1
  135. package/dist/components/form/Switch.js +2 -1
  136. package/dist/components/form/TextField.js +23 -6
  137. package/dist/components/form/TimePicker.js +2 -1
  138. package/dist/components/form/TransferList.js +2 -1
  139. package/dist/components/form/UploadField.js +2 -1
  140. package/dist/components/grid/GridContainer.js +2 -1
  141. package/dist/components/grid/GridItem.js +2 -1
  142. package/dist/components/layout/CollapsiblePanel.js +2 -1
  143. package/dist/components/layout/Layout.js +2 -1
  144. package/dist/components/layout/View.js +2 -1
  145. package/dist/components/layout/ViewContainer.js +2 -1
  146. package/dist/components/layout/ViewPort.js +2 -1
  147. package/dist/components/layout/Window.js +2 -1
  148. package/dist/components/layout/WindowDialog.js +2 -1
  149. package/dist/components/layout/WindowViewPort.js +2 -1
  150. package/dist/components/media/Chat.js +2 -1
  151. package/dist/components/media/ClosablePanel.js +2 -1
  152. package/dist/components/media/LobbyWaitingList.js +2 -1
  153. package/dist/components/media/MediaSoupHelper.js +2 -1
  154. package/dist/components/media/SideBarContent.js +2 -1
  155. package/dist/components/media/SocketRequest.js +2 -1
  156. package/dist/components/media/SocketResponse.js +2 -1
  157. package/dist/components/media/Timer.js +2 -1
  158. package/dist/components/media/Toolbar.js +2 -1
  159. package/dist/components/media/ToolbarButton.js +2 -1
  160. package/dist/components/media/Toolbar_bck.js +2 -1
  161. package/dist/components/media/Tracks.js +2 -1
  162. package/dist/components/media/TrainingRoom.js +2 -1
  163. package/dist/components/media/Transports.js +2 -1
  164. package/dist/components/media/VCEventManager.js +2 -1
  165. package/dist/components/media/VCEventType.js +2 -1
  166. package/dist/components/media/VCParticipantList.js +2 -1
  167. package/dist/components/media/VCParticipantListItem.js +2 -1
  168. package/dist/components/media/VCRoom.js +2 -1
  169. package/dist/components/media/VCRoomParticipant.js +2 -1
  170. package/dist/components/media/VCRoomRecorder.js +2 -1
  171. package/dist/components/media/VCRoomWorkspace.js +2 -1
  172. package/dist/components/media/Video.js +2 -1
  173. package/dist/components/media/VideoPlayer.js +2 -1
  174. package/dist/components/media/chat/ChatPoll.js +2 -1
  175. package/dist/components/media/chat/ChatRoom.js +2 -1
  176. package/dist/components/media/chat/ChatRoomItem.js +2 -1
  177. package/dist/components/media/chat/ChatRoomList.js +2 -1
  178. package/dist/components/media/chat/ChatRoomWrapper.js +2 -1
  179. package/dist/components/media/chat/PollContainer.js +2 -1
  180. package/dist/components/media/chat/PollResult.js +2 -1
  181. package/dist/components/media/chat/Styles.js +2 -1
  182. package/dist/components/menu/CollapsibleMenu.js +2 -1
  183. package/dist/components/menu/MenuBars.js +2 -1
  184. package/dist/components/menu/MenuButton.js +2 -1
  185. package/dist/components/menu/MenuItem.js +2 -1
  186. package/dist/components/menu/MenuLink.js +2 -1
  187. package/dist/components/menu/PopupMenu.js +2 -1
  188. package/dist/components/navbars/AuthNavbar.js +2 -1
  189. package/dist/components/navbars/HomeNavbar.js +2 -1
  190. package/dist/components/navbars/PortalNavbar.js +2 -1
  191. package/dist/components/observers/useOnFullyVisible.js +2 -1
  192. package/dist/components/observers/useResizeObserver.js +2 -1
  193. package/dist/components/signatures/AgilitySignaturePanel.js +2 -1
  194. package/dist/components/signatures/AlertItem.js +2 -1
  195. package/dist/components/signatures/Card.js +2 -1
  196. package/dist/components/signatures/DynamicSignatureDocumentContainer.js +2 -1
  197. package/dist/components/signatures/HtmlSignatureDocumentContainer.js +2 -1
  198. package/dist/components/signatures/ImageSignatureInput.js +2 -1
  199. package/dist/components/signatures/MenuButton.js +2 -1
  200. package/dist/components/signatures/Prompt.js +2 -1
  201. package/dist/components/signatures/ResponsiveTable.js +2 -1
  202. package/dist/components/signatures/SearchView.js +2 -1
  203. package/dist/components/signatures/SignatorySearch.js +2 -1
  204. package/dist/components/signatures/SignatorySearchForm.js +2 -1
  205. package/dist/components/signatures/SignatureInput.js +2 -1
  206. package/dist/components/signatures/SignatureInputProps.js +2 -1
  207. package/dist/components/signatures/SignatureTemplateDesigner.js +2 -1
  208. package/dist/components/signatures/Toolbar.js +2 -1
  209. package/dist/components/signatures/ViewUtils.js +2 -1
  210. package/dist/components/typography/Danger.js +2 -1
  211. package/dist/components/typography/Info.js +2 -1
  212. package/dist/components/typography/Link.js +2 -1
  213. package/dist/event/ActionHandlers.js +2 -1
  214. package/dist/event/Event.js +2 -1
  215. package/dist/event/EventListener.js +2 -1
  216. package/dist/event/EventType.js +2 -1
  217. package/dist/event/LoadDataActionHandler.js +2 -1
  218. package/dist/event/Observable.js +2 -1
  219. package/dist/event/RouteActionHandler.js +2 -1
  220. package/dist/event/ScriptActionHandler.js +2 -1
  221. package/dist/event/ServiceCallActionHandler.js +2 -1
  222. package/dist/event/SignalGraphActionHandler.js +2 -1
  223. package/dist/interaction/CursorOverlay.js +2 -1
  224. package/dist/interaction/DragContext.js +2 -1
  225. package/dist/interaction/GrabContext.js +2 -1
  226. package/dist/js/Addresses.js +2 -1
  227. package/dist/js/Calendar.js +2 -1
  228. package/dist/js/Docs.js +3 -2
  229. package/dist/js/DynamicLib.js +2 -1
  230. package/dist/js/Media.js +2 -1
  231. package/dist/js/ProcurementMeetings.js +2 -1
  232. package/dist/js/Validators.js +2 -1
  233. package/dist/js/Windows.js +2 -1
  234. package/dist/redux/store/ConfigureStore.js +2 -1
  235. package/dist/redux/store/DashboardStore.js +2 -1
  236. package/dist/redux/store/History.js +2 -1
  237. package/dist/redux/store/SecurityStore.js +2 -1
  238. package/dist/security/TokenManager.js +2 -1
  239. package/dist/theme-default.js +2 -1
  240. package/dist/view/Dashboard.js +2 -1
  241. package/dist/view/PortalDashboard.js +2 -1
  242. package/dist/view/Settings.js +2 -1
  243. package/dist/view/Views.js +2 -1
  244. package/dist/view/security/ChangePasswordBasic.js +2 -1
  245. package/dist/view/security/ForgotPassword.js +2 -1
  246. package/dist/view/security/ForgotPasswordBasic.js +2 -1
  247. package/dist/view/security/Login.js +2 -1
  248. package/dist/view/security/LoginBasic.js +2 -1
  249. package/dist/view/security/LoginInteractionPortal.js +2 -1
  250. package/dist/view/security/ResetPassword.js +2 -1
  251. package/dist/view/security/ResetPasswordBasic.js +2 -1
  252. package/dist/view/security/Security.js +2 -1
  253. package/package.json +2 -2
@@ -150,4 +150,5 @@ const AutoComplete = props => {
150
150
  base: base
151
151
  }, props)));
152
152
  };
153
- var _default = exports.default = AutoComplete;
153
+ var _default = exports.default = AutoComplete;
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfQXV0b2NvbXBsZXRlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5Iiwic3RhdHVzIiwicmVzcG9uc2UiLCJvayIsIlByb21pc2UiLCJyZXNvbHZlIiwiZXJyb3IiLCJFcnJvciIsInN0YXR1c1RleHQiLCJjb2RlIiwicmVqZWN0IiwianNvbiIsInRleHQiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJBdXRvQ29tcGxldGVXcmFwcGVyIiwicHJvcHMiLCJiYXNlIiwidmFsdWUiLCJ1c2VSZWYiLCJpbnB1dFZhbHVlIiwic2V0SW5wdXRWYWx1ZSIsInVzZVN0YXRlIiwiYmFzZVZhbHVlIiwib3B0aW9ucyIsInNldE9wdGlvbnMiLCJlbnRpdHlTdG9yZSIsIlJlYWN0IiwidXNlRWZmZWN0IiwibWluTGVuIiwiVXRpbHMiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjb25maWciLCJmZXRjaE9wdGlvbnMiLCJjdXJyZW50IiwiQXJyYXkiLCJpc0FycmF5IiwicmVkdWNlIiwia2V5cyIsImN1cnJWYWx1ZSIsInB1c2giLCJhdHRyaWJ1dGVzIiwic2VhcmNoQXR0cmlidXRlIiwidmFsdWVFbGVtZW50IiwiZmV0Y2giLCJlbmNvZGVVUkkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsIm9wdGlvbnNVcmxQYXRoIiwibWV0aG9kIiwiaGVhZGVycyIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiY29uY2F0IiwidGhlbiIsImRhdGEiLCJyZWNvcmRzIiwicGFyc2UiLCJuZXdPcHRpb25zIiwicmVjb3JkIiwiX2Jhc2VWYWx1ZSRjdXJyZW50IiwiZmluZCIsInVzZXJuYW1lIiwiY2F0Y2giLCJpZ25vcmVkIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJldmVudCIsIm5ld1ZhbHVlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwibWFyZ2luVG9wIiwibXVsdGlwbGUiLCJkaXNhYmxlZCIsImRpc2FibGVDbGVhcmFibGUiLCJnZXRPcHRpb25MYWJlbCIsIm9wdGlvbiIsIm9uSW5wdXRDaGFuZ2UiLCJvbkNoYW5nZSIsInJlYXNvbiIsInZhbCIsIm5ld1ZhbHVlRWxlbWVudCIsImRhdGFSZWNvcmREZXNjcmlwdGlvbiIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiaWQiLCJyZW5kZXJJbnB1dCIsInBhcmFtcyIsInJlcXVpcmVkIiwiaGFzRXJyb3IiLCJoZWxwZXJUZXh0IiwiZXJyb3JNZXNzYWdlIiwidmFyaWFudCIsImJvcmRlcmxlc3MiLCJsYWJlbCIsIkF1dG9Db21wbGV0ZSIsIkJhc2VGaWVsZCIsImhhbmRsZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0F1dG9Db21wbGV0ZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICdAbXVpL21hdGVyaWFsL1RleHRGaWVsZCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5pbXBvcnQgQXV0b2NvbXBsZXRlIGZyb20gJ0BtdWkvbGFiL0F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgXCIuL0Zvcm0uY3NzXCJcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuXG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1c1RleHQpO1xuICAgICAgICBlcnJvci5jb2RlID0gcmVzcG9uc2Uuc3RhdHVzO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxufTtcblxuY29uc3QganNvbiA9IChyZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59O1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmNvbnN0IEF1dG9Db21wbGV0ZVdyYXBwZXIgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCB2YWx1ZSA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgW2lucHV0VmFsdWUsIHNldElucHV0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IGJhc2VWYWx1ZSA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbb3B0aW9ucywgc2V0T3B0aW9uc10gPSB1c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2VudGl0eVN0b3JlXSA9IHVzZVN0YXRlKFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxldCBtaW5MZW4gPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbWluU2VhcmNoQXR0cmlidXRlTGVuZ3RoJywgMSk7XG4gICAgICAgIGlmKGlucHV0VmFsdWUgJiYgaW5wdXRWYWx1ZS5sZW5ndGggPj0gbWluTGVuKSB7XG4gICAgICAgICAgICBmZXRjaE9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgIH0sIFtpbnB1dFZhbHVlXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZighYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUuY3VycmVudCA9IFtdO1xuICAgICAgICB9IGVsc2UgaWYoQXJyYXkuaXNBcnJheShiYXNlLnZhbHVlKSl7XG4gICAgICAgICAgICB2YWx1ZS5jdXJyZW50ID0gYmFzZS52YWx1ZS5yZWR1Y2UoKGtleXMsIGN1cnJWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmKGN1cnJWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2goY3VyclZhbHVlW3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnNlYXJjaEF0dHJpYnV0ZV0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0sIFtdKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZUVsZW1lbnQgb2YgYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGVudGl0eVN0b3JlLnB1c2godmFsdWVFbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYmFzZVZhbHVlLmN1cnJlbnQgPSBiYXNlLnZhbHVlO1xuICAgICAgICAgICAgc2V0T3B0aW9ucyh2YWx1ZS5jdXJyZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vdmFsdWUuY3VycmVudCA9IGJhc2UudmFsdWU7XG4gICAgICAgICAgICAvL2Jhc2VWYWx1ZS5jdXJyZW50ID0gYmFzZS52YWx1ZTtcbiAgICAgICAgICAgIC8vc2V0T3B0aW9ucyhbYmFzZS52YWx1ZV0pO1xuICAgICAgICB9XG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIGNvbnN0IGZldGNoT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgZmV0Y2goZW5jb2RlVVJJKGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5vcHRpb25zVXJsUGF0aCksIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKSxcbiAgICAgICAgICAgICAgICAnaWRUb2tlbic6IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIFwicGFyYW1ldGVyc1wiOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBgJHtwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zZWFyY2hBdHRyaWJ1dGV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjogaW5wdXRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcInBhZ2VTaXplXCI6IDYwLFxuICAgICAgICAgICAgICAgIFwiY3VycmVudFBhZ2VcIjogMFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCByZWNvcmRzID0gSlNPTi5wYXJzZShkYXRhKS5yZWNvcmRzO1xuICAgICAgICAgICAgICAgIGxldCBuZXdPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgICAgICAgICBpZighYmFzZVZhbHVlLmN1cnJlbnQ/LmZpbmQoKG8pID0+IG9bcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc2VhcmNoQXR0cmlidXRlXSA9PT0gcmVjb3JkW3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnNlYXJjaEF0dHJpYnV0ZV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb25zLnB1c2gocmVjb3JkW3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnNlYXJjaEF0dHJpYnV0ZV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYoIWVudGl0eVN0b3JlLmZpbmQoKG8pID0+IG8udXNlcm5hbWUgPT09IHJlY29yZC51c2VybmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eVN0b3JlLnB1c2gocmVjb3JkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNldE9wdGlvbnMobmV3T3B0aW9ucyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChpZ25vcmVkKSA9PiB7XG4gICAgICAgICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gKGV2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZXRJbnB1dFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QXV0b2NvbXBsZXRlXG4gICAgICAgICAgICBzdHlsZT17e21hcmdpblRvcDogJzhweCd9fVxuICAgICAgICAgICAgaW5wdXRWYWx1ZT17aW5wdXRWYWx1ZX1cbiAgICAgICAgICAgIG11bHRpcGxlPXtVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbXVsdGlwbGUnLCB0cnVlKX1cbiAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlLmN1cnJlbnR9XG4gICAgICAgICAgICBkaXNhYmxlQ2xlYXJhYmxlPXshVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ211bHRpcGxlJywgdHJ1ZSl9XG4gICAgICAgICAgICBnZXRPcHRpb25MYWJlbD17KG9wdGlvbikgPT4gb3B0aW9uID8gb3B0aW9uIDogJyd9XG4gICAgICAgICAgICBvbklucHV0Q2hhbmdlPXsoZXZlbnQsIG5ld1ZhbHVlKSA9PiBoYW5kbGVJbnB1dENoYW5nZShldmVudCwgbmV3VmFsdWUpfVxuICAgICAgICAgICAgb25DaGFuZ2U9e1xuICAgICAgICAgICAgICAgIChlLCBuZXdWYWx1ZSwgcmVhc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWwgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbmV3VmFsdWVFbGVtZW50IG9mIG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbmQgPSBlbnRpdHlTdG9yZS5maW5kKChlKSA9PiBlW3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnNlYXJjaEF0dHJpYnV0ZV0gPT09IG5ld1ZhbHVlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZmluZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kLmRhdGFSZWNvcmREZXNjcmlwdGlvbiA9IGZpbmRbcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc2VhcmNoQXR0cmlidXRlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLnB1c2goZmluZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5jdXJyZW50ID0gbmV3VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaW5kID0gZW50aXR5U3RvcmUuZmluZCgoZSkgPT4gZVtwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zZWFyY2hBdHRyaWJ1dGVdID09PSBuZXdWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZihmaW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gZmluZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwuZGF0YVJlY29yZERlc2NyaXB0aW9uID0gdmFsW3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnNlYXJjaEF0dHJpYnV0ZV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmN1cnJlbnQgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UodmFsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgICBpZD17cHJvcHMuY29uZmlnLmlkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXQ9e3BhcmFtcyA9PiA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgZXJyb3I9e2Jhc2UuaGFzRXJyb3J9XG4gICAgICAgICAgICAgICAgaGVscGVyVGV4dD17YmFzZS5lcnJvck1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgdmFyaWFudD17cHJvcHMuYm9yZGVybGVzcyA/ICdzdGFuZGFyZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgIHsuLi5wYXJhbXN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e1V0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdsYWJlbCcsICcnKX0vPn1cbiAgICAgICAgLz5cbiAgICApXG59O1xuXG5jb25zdCBBdXRvQ29tcGxldGUgPSAocHJvcHMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9PlxuICAgICAgICAgICAge2Jhc2UgPT5cbiAgICAgICAgICAgICAgICA8QXV0b0NvbXBsZXRlV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvQXV0b0NvbXBsZXRlV3JhcHBlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF1dG9Db21wbGV0ZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FB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
@@ -35,6 +35,12 @@ const BaseField = props => {
35
35
  const initialValueBound = _react.default.useRef(false);
36
36
  const ref = _react.default.useRef(null);
37
37
  const valid = _react.default.useRef(false);
38
+ // Memo of the last (currentValue, required, markers) tuple + its result.valid.
39
+ // doValidation short-circuits when the inputs are unchanged so repeated reads
40
+ // of @#{form}.value (which iterates fields and calls validate on each in
41
+ // Form.jsx get value()) don't keep firing setErrorMessage/setHasError and
42
+ // re-render-loop the whole form.
43
+ const lastValidation = _react.default.useRef(null);
38
44
  _react.default.useEffect(() => {
39
45
  initialValueBound.current = false;
40
46
  bind();
@@ -78,6 +84,11 @@ const BaseField = props => {
78
84
  }, [required]);
79
85
  const doValidation = (values, currentValue) => {
80
86
  if (config) {
87
+ const markers = _ApplicationManager.default.isFormMarkersEnabled();
88
+ const last = lastValidation.current;
89
+ if (last !== null && last.currentValue === currentValue && last.required === required && last.markers === markers) {
90
+ return last.valid;
91
+ }
81
92
  let path = props.form().getValuePath(config.dataBinding || config.id);
82
93
  let result = {
83
94
  valid: true
@@ -91,12 +102,29 @@ const BaseField = props => {
91
102
  if (result.valid) {
92
103
  result = _Utils.default.validateField(path.valueProperty, required, path.valueObject, currentValue, config.validator);
93
104
  }
94
- setErrorMessage(_ApplicationManager.default.isFormMarkersEnabled() || result.forceMarker ? result.message : '');
95
- setHasError(!result.valid && (_ApplicationManager.default.isFormMarkersEnabled() || result.forceMarker));
96
- valid.current = result.valid && (_ApplicationManager.default.isFormMarkersEnabled() || result.forceMarker);
97
- if (_ApplicationManager.default.isFormMarkersEnabled()) {
105
+ setErrorMessage(markers || result.forceMarker ? result.message : '');
106
+ setHasError(!result.valid && (markers || result.forceMarker));
107
+ valid.current = result.valid && (markers || result.forceMarker);
108
+ if (markers) {
98
109
  props.form().setFieldError(config.id, typeof result.message === 'undefined' ? null : result.message);
99
110
  }
111
+ lastValidation.current = {
112
+ currentValue,
113
+ required,
114
+ markers,
115
+ valid: result.valid
116
+ };
117
+
118
+ // Publish to the form's validity register. Single source of truth
119
+ // for "is this field valid?" — form.value reads from here without
120
+ // calling back into the field (kills the bi-directional chain).
121
+ if (typeof props.form === 'function' && typeof props.form().setFieldValidity === 'function') {
122
+ props.form().setFieldValidity(config.id || config.dataBinding, {
123
+ valid: result.valid,
124
+ message: result.message,
125
+ forceMarker: result.forceMarker
126
+ });
127
+ }
100
128
  return result.valid;
101
129
  }
102
130
  return false;
@@ -144,6 +172,18 @@ const BaseField = props => {
144
172
  setErrorMessage(field.error);
145
173
  }
146
174
  }
175
+ // Intentionally do NOT validate on mount: valueRef.current is not
176
+ // yet bound from the form's master data at this point — bind()
177
+ // runs in a later render cycle via the [valueObject] useEffect.
178
+ // Validating here would mark every field-with-master-value as
179
+ // invalid (currentValue=null), permanently flipping form.value to
180
+ // null. Register stays empty for this field until either user
181
+ // interaction (handleChange → validateField → doValidation →
182
+ // setFieldValidity) or an explicit form.api.validateAll() runs.
183
+ // form.value treats empty-register as "optimistically valid" — so
184
+ // any save flow MUST call form.api.validateAll() before reading
185
+ // form.value, or invalid data will pass through silently.
186
+ loadingRef.current = false;
147
187
  }
148
188
  });
149
189
  _react.default.useEffect(() => {
@@ -338,4 +378,5 @@ const BaseField = props => {
338
378
  loadingRef: loadingRef
339
379
  }))) : null;
340
380
  };
341
- exports.BaseField = BaseField;
381
+ exports.BaseField = BaseField;
382
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfRHluYW1pY0pTIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiQmFzZUZpZWxkIiwicHJvcHMiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsIlJlYWN0IiwidXNlU3RhdGUiLCJlcnJvck1lc3NhZ2UiLCJzZXRFcnJvck1lc3NhZ2UiLCJ2YWx1ZU9iamVjdCIsInNldFZhbHVlT2JqZWN0IiwidmFsdWVQcm9wZXJ0eSIsInNldFZhbHVlUHJvcGVydHkiLCJsb2FkaW5nUmVmIiwidXNlUmVmIiwiY29uZmlnIiwic2V0Q29uZmlnIiwidmFsdWUiLCJzZXRWYWx1ZSIsIlV0aWxzIiwiaXNOdWxsIiwidmFsdWVSZWYiLCJzZWxlY3RPcHRpb25zIiwic2V0U2VsZWN0T3B0aW9ucyIsImRpc2FibGVkIiwic2V0RGlzYWJsZWQiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsInJlcXVpcmVkIiwic2V0UmVxdWlyZWQiLCJtaW5EYXRlIiwic2V0TWluRGF0ZSIsIm1heERhdGUiLCJzZXRNYXhEYXRlIiwicmVzZXRTd2l0Y2giLCJzZXRSZXNldFN3aXRjaCIsInZhbGlkYXRlT25DaGFuZ2UiLCJpbml0aWFsVmFsdWVCb3VuZCIsInJlZiIsInZhbGlkIiwibGFzdFZhbGlkYXRpb24iLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiYmluZCIsImJvdW5kVmFsdWUiLCJmaWVsZFR5cGUiLCJpZCIsInZhbHVlUGFyc2VyIiwiZm9ybSIsInZhbGlkYXRlUGFyZW50IiwiZGF0YUJpbmRpbmciLCJkb1ZhbGlkYXRpb24iLCJ2YWx1ZXMiLCJjdXJyZW50VmFsdWUiLCJtYXJrZXJzIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiaXNGb3JtTWFya2Vyc0VuYWJsZWQiLCJsYXN0IiwicGF0aCIsImdldFZhbHVlUGF0aCIsInJlc3VsdCIsInZhbGlkYXRvciIsInNjcmlwdCIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHRPYmplY3QiLCJjb25jYXQiLCJtZXNzYWdlIiwidmFsaWRhdGVGaWVsZCIsImZvcmNlTWFya2VyIiwic2V0RmllbGRFcnJvciIsInNldEZpZWxkVmFsaWRpdHkiLCJoYW5kbGUiLCJhcGkiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJldmVudCIsIkV2ZW50IiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiQ09NUE9ORU5UX0xPQUQiLCJzY3JpcHRWYWx1ZSIsImlzRXhwcmVzc2lvbiIsImV4ZWN1dGVTY3JpcHQiLCJyZXBsYWNlIiwidmFsIiwiaW5zdGFuY2VUeXBlIiwiaGFuZGxlQ2hhbmdlIiwiZmllbGQiLCJhZGRGaWVsZCIsInBhcmVudElkIiwiYmluZFZhbHVlVG9Gb3JtIiwiZXJyb3IiLCJsZW5ndGgiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwicmVtb3ZlRmllbGQiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsIm5ld1ZhbHVlIiwidmFsdWVDaGFuZ2VkIiwiSlNPTiIsInN0cmluZ2lmeSIsInNwbGljZSIsIm5ld1ZhbHVlRWxlbWVudCIsInB1c2giLCJzZWxlY3RJdGVtQ2hhbmdlIiwiaGFuZGxlU2VsZWN0SXRlbUNoYW5nZSIsInNlbGVjdE9wdGlvbiIsInZhbHVlQ2hhbmdlSGFuZGxlciIsIlZBTFVFX0NIQU5HRSIsInZhbGlkYXRlIiwicGFyc2VWYWx1ZSIsImluYm91bmQiLCJyb3dzIiwicm93c0hhbmRsZXIiLCJnZXRWYWxpZGF0aW9uR3JvdXAiLCJncm91cCIsImNsZWFyIiwiY2xlYXJIYW5kbGVyIiwic2Nyb2xsVG8iLCJzY3JvbGxJbnRvVmlldyIsImJlaGF2aW9yIiwiYmxvY2siLCJ2YWx1ZUNoYW5nZUNhbGxiYWNrIiwiaGFuZGxlTG9hZENvbXBsZXRlIiwicmVmcmVzaCIsInJlcXVpcmVkTmV3VmFsIiwibnVsbGFibGUiLCJpc1JlcXVpcmVkIiwicmVzZXQiLCJzZXRGaWVsZFJlcXVpcmVkIiwibmV3VmFsIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiZ2V0Q2hpbGRyZW4iLCJsb2FkRGF0YSIsImxvYWREYXRhSGFuZGxlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJrZXkiLCJzdHlsZSIsInRleHRBbGlnbiIsIm1hcmdpbkxlZnQiLCJhdHRyaWJ1dGVzIiwiaW5kZXgiLCJkaXNwbGF5IiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiY2hpbGRyZW4iLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vQmFzZUZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tICcuLi8uLi9EeW5hbWljSlMnO1xuXG5leHBvcnQgY29uc3QgQmFzZUZpZWxkID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2hhc0Vycm9yLCBzZXRIYXNFcnJvcl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2Vycm9yTWVzc2FnZSwgc2V0RXJyb3JNZXNzYWdlXSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBbdmFsdWVPYmplY3QsIHNldFZhbHVlT2JqZWN0XSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbdmFsdWVQcm9wZXJ0eSwgc2V0VmFsdWVQcm9wZXJ0eV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBsb2FkaW5nUmVmID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICAgIGNvbnN0IFtjb25maWcsIHNldENvbmZpZ10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICAvLyBUT0RPIDogUmVwbGFjZSB0aGUgc3RhdGUgdmFsdWUgd2l0aCB0aGUgdmFsdWVSZWYgYmVsb3cuIFRoZSBzdGF0ZSB2YWx1ZSBpcyBvY2NhdGlvbmFseSBub3QgYXZhaWxhYmxlIGluIHRpbWUgZm9yIGV2ZW50IHNjcmlwdHNcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMudmFsdWUpID8gcHJvcHMudmFsdWUgOiBudWxsKTtcbiAgICAvLyBUT0RPIDogUmVwbGFjZSB0aGUgc3RhdGUgdmFsdWUgd2l0aCB0aGlzIHJlZiBmb3IgdGhlIHJlYXNvbiBtZW5zaW9uZWQgYWJvdmVcbiAgICBjb25zdCB2YWx1ZVJlZiA9IFJlYWN0LnVzZVJlZighVXRpbHMuaXNOdWxsKHByb3BzLnZhbHVlKSA/IHByb3BzLnZhbHVlIDogbnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdE9wdGlvbnMsIHNldFNlbGVjdE9wdGlvbnNdID0gUmVhY3QudXNlU3RhdGUoW10pO1xuICAgIGNvbnN0IFtkaXNhYmxlZCwgc2V0RGlzYWJsZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcmVxdWlyZWQsIHNldFJlcXVpcmVkXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFttaW5EYXRlLCBzZXRNaW5EYXRlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFttYXhEYXRlLCBzZXRNYXhEYXRlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtyZXNldFN3aXRjaCwgc2V0UmVzZXRTd2l0Y2hdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHZhbGlkYXRlT25DaGFuZ2UgPSBSZWFjdC51c2VSZWYoKTtcbiAgICBjb25zdCBpbml0aWFsVmFsdWVCb3VuZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHZhbGlkID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICAvLyBNZW1vIG9mIHRoZSBsYXN0IChjdXJyZW50VmFsdWUsIHJlcXVpcmVkLCBtYXJrZXJzKSB0dXBsZSArIGl0cyByZXN1bHQudmFsaWQuXG4gICAgLy8gZG9WYWxpZGF0aW9uIHNob3J0LWNpcmN1aXRzIHdoZW4gdGhlIGlucHV0cyBhcmUgdW5jaGFuZ2VkIHNvIHJlcGVhdGVkIHJlYWRzXG4gICAgLy8gb2YgQCN7Zm9ybX0udmFsdWUgKHdoaWNoIGl0ZXJhdGVzIGZpZWxkcyBhbmQgY2FsbHMgdmFsaWRhdGUgb24gZWFjaCBpblxuICAgIC8vIEZvcm0uanN4IGdldCB2YWx1ZSgpKSBkb24ndCBrZWVwIGZpcmluZyBzZXRFcnJvck1lc3NhZ2Uvc2V0SGFzRXJyb3IgYW5kXG4gICAgLy8gcmUtcmVuZGVyLWxvb3AgdGhlIHdob2xlIGZvcm0uXG4gICAgY29uc3QgbGFzdFZhbGlkYXRpb24gPSBSZWFjdC51c2VSZWYobnVsbCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpbml0aWFsVmFsdWVCb3VuZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIGJpbmQoKTtcbiAgICB9LCBbdmFsdWVPYmplY3RdKTtcblxuICAgIGZ1bmN0aW9uIGJpbmQoKSB7XG4gICAgICAgIGxldCBib3VuZFZhbHVlID0gdmFsdWVPYmplY3RbdmFsdWVQcm9wZXJ0eV07XG4gICAgICAgIGlmIChib3VuZFZhbHVlICYmICFpbml0aWFsVmFsdWVCb3VuZC5jdXJyZW50KSB7XG4gICAgICAgICAgICBpbml0aWFsVmFsdWVCb3VuZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChwcm9wcy5jb25maWcuZmllbGRUeXBlID09PSAnU0VMRUNUJyB8fCBwcm9wcy5jb25maWcuZmllbGRUeXBlID09PSAnTE9PS1VQJykge1xuICAgICAgICAgICAgICAgIGlmICghYm91bmRWYWx1ZSB8fCBVdGlscy5pc051bGwoYm91bmRWYWx1ZS5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmKHByb3BzLnZhbHVlUGFyc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShwcm9wcy52YWx1ZVBhcnNlcihib3VuZFZhbHVlLCB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShib3VuZFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlUmVmLmN1cnJlbnQgPSBib3VuZFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYocHJvcHMudmFsdWVQYXJzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUocHJvcHMudmFsdWVQYXJzZXIoYm91bmRWYWx1ZSwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGJvdW5kVmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhbHVlUmVmLmN1cnJlbnQgPSBib3VuZFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgYmluZCgpO1xuICAgIH0sIFt2YWx1ZU9iamVjdFt2YWx1ZVByb3BlcnR5XV0pO1xuXG4gICAgLy8gQ2hhbmdlIHRoZSByZXF1aXJlZCB2YWx1ZSBhbmQgcmUtdmFsaWRhdGUgZmllbGQgaWYgbmVjZXNzYXJ5XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29uZmlnKSAmJiB2YWxpZGF0ZU9uQ2hhbmdlLmN1cnJlbnQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgIC52YWxpZGF0ZVBhcmVudChjb25maWcuZGF0YUJpbmRpbmcgfHwgY29uZmlnLmlkLCBkb1ZhbGlkYXRpb24ocHJvcHMudmFsdWVzLCB2YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsaWRhdGVPbkNoYW5nZS5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbcmVxdWlyZWRdKTtcblxuICAgIGNvbnN0IGRvVmFsaWRhdGlvbiA9ICh2YWx1ZXMsIGN1cnJlbnRWYWx1ZSkgPT4ge1xuICAgICAgICBpZihjb25maWcpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlcnMgPSBhcHBsaWNhdGlvbk1hbmFnZXIuaXNGb3JtTWFya2Vyc0VuYWJsZWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBsYXN0VmFsaWRhdGlvbi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKGxhc3QgIT09IG51bGxcbiAgICAgICAgICAgICAgICAmJiBsYXN0LmN1cnJlbnRWYWx1ZSA9PT0gY3VycmVudFZhbHVlXG4gICAgICAgICAgICAgICAgJiYgbGFzdC5yZXF1aXJlZCA9PT0gcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAmJiBsYXN0Lm1hcmtlcnMgPT09IG1hcmtlcnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdC52YWxpZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHBhdGggPSBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAuZ2V0VmFsdWVQYXRoKGNvbmZpZy5kYXRhQmluZGluZyB8fCBjb25maWcuaWQpO1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHt2YWxpZDogdHJ1ZX07XG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb25maWcudmFsaWRhdG9yKSAmJiAhVXRpbHMuaXNOdWxsKGNvbmZpZy52YWxpZGF0b3Iuc2NyaXB0KSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0T2JqZWN0KGAke2NvbmZpZy5pZH1WYWxpZGF0b3JgLCBjb25maWcudmFsaWRhdG9yLnNjcmlwdCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm1lc3NhZ2UgPSByZXN1bHQubWVzc2FnZSA/IHJlc3VsdC5tZXNzYWdlIDogY29uZmlnLnZhbGlkYXRvci5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3VsdC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IFV0aWxzLnZhbGlkYXRlRmllbGQocGF0aC52YWx1ZVByb3BlcnR5LCByZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aC52YWx1ZU9iamVjdCwgY3VycmVudFZhbHVlLCBjb25maWcudmFsaWRhdG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0RXJyb3JNZXNzYWdlKG1hcmtlcnMgfHwgcmVzdWx0LmZvcmNlTWFya2VyID8gcmVzdWx0Lm1lc3NhZ2UgOiAnJyk7XG4gICAgICAgICAgICBzZXRIYXNFcnJvcighcmVzdWx0LnZhbGlkICYmIChtYXJrZXJzIHx8IHJlc3VsdC5mb3JjZU1hcmtlcikpO1xuICAgICAgICAgICAgdmFsaWQuY3VycmVudCA9IHJlc3VsdC52YWxpZCAmJiAobWFya2VycyB8fCByZXN1bHQuZm9yY2VNYXJrZXIpO1xuXG4gICAgICAgICAgICBpZiAobWFya2Vycykge1xuICAgICAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgICAgICAuc2V0RmllbGRFcnJvcihjb25maWcuaWQsIHR5cGVvZiByZXN1bHQubWVzc2FnZSA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogcmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYXN0VmFsaWRhdGlvbi5jdXJyZW50ID0geyBjdXJyZW50VmFsdWUsIHJlcXVpcmVkLCBtYXJrZXJzLCB2YWxpZDogcmVzdWx0LnZhbGlkIH07XG5cbiAgICAgICAgICAgIC8vIFB1Ymxpc2ggdG8gdGhlIGZvcm0ncyB2YWxpZGl0eSByZWdpc3Rlci4gU2luZ2xlIHNvdXJjZSBvZiB0cnV0aFxuICAgICAgICAgICAgLy8gZm9yIFwiaXMgdGhpcyBmaWVsZCB2YWxpZD9cIiDigJQgZm9ybS52YWx1ZSByZWFkcyBmcm9tIGhlcmUgd2l0aG91dFxuICAgICAgICAgICAgLy8gY2FsbGluZyBiYWNrIGludG8gdGhlIGZpZWxkIChraWxscyB0aGUgYmktZGlyZWN0aW9uYWwgY2hhaW4pLlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wcy5mb3JtID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBwcm9wcy5mb3JtKCkuc2V0RmllbGRWYWxpZGl0eSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHByb3BzLmZvcm0oKS5zZXRGaWVsZFZhbGlkaXR5KGNvbmZpZy5pZCB8fCBjb25maWcuZGF0YUJpbmRpbmcsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IHJlc3VsdC52YWxpZCxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzdWx0Lm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGZvcmNlTWFya2VyOiByZXN1bHQuZm9yY2VNYXJrZXJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC52YWxpZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb25maWcpKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMocGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5hZGRTeXN0ZW1TdWJzY3JpcHRpb25zKHByb3BzLnZpZXdJZCwgcGFyc2VkQ29uZmlnKTtcbiAgICAgICAgICAgIHNldENvbmZpZyhwYXJzZWRDb25maWcpO1xuICAgICAgICAgICAgc2V0VmlzaWJsZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQsIHRydWUpKTtcbiAgICAgICAgICAgIHNldERpc2FibGVkKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyc2VkQ29uZmlnLmRpc2FibGVkLCBwYXJzZWRDb25maWcuaWQsIGZhbHNlKSk7XG5cbiAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgbnVsbCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5DT01QT05FTlRfTE9BRCwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMudmFsdWVzKSAmJiAhVXRpbHMuaXNOdWxsKGNvbmZpZykpIHtcbiAgICAgICAgICAgIGxldCBwYXRoID0gcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgLmdldFZhbHVlUGF0aChjb25maWcuZGF0YUJpbmRpbmcgfHwgY29uZmlnLmlkLCBwcm9wcy52YWx1ZXMpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGF0aC52YWx1ZU9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZU9iamVjdChwYXRoLnZhbHVlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZVByb3BlcnR5KHBhdGgudmFsdWVQcm9wZXJ0eSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgc2NyaXB0VmFsdWUgPSBhcHBsaWNhdGlvbk1hbmFnZXIuaXNFeHByZXNzaW9uKHByb3BzLmNvbmZpZy52YWx1ZSkgP1xuICAgICAgICAgICAgICAgICAgICBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdChwcm9wcy5jb25maWcuaWQucmVwbGFjZSgnLicsICdfJykgKyAnVmFsdWUnLCBwcm9wcy5jb25maWcudmFsdWUpIDpcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc2NyaXB0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWwgPSBzY3JpcHRWYWx1ZS5pbnN0YW5jZVR5cGUgPT09ICdUeXBlZFZhbHVlJyA/IHNjcmlwdFZhbHVlLnZhbHVlIDogc2NyaXB0VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlT2JqZWN0W3ZhbHVlUHJvcGVydHldID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZVJlZi5jdXJyZW50ID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5oYW5kbGVDaGFuZ2UoY29uZmlnLmRhdGFCaW5kaW5nIHx8IGNvbmZpZy5pZCwgdmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMudmFsdWVzLCBjb25maWddKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChsb2FkaW5nUmVmLmN1cnJlbnQgPT09IHRydWUgJiYgIVV0aWxzLmlzTnVsbChjb25maWcpKSB7XG4gICAgICAgICAgICBsZXQgZmllbGQgPSBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAuYWRkRmllbGQoY29uZmlnLmlkIHx8IGNvbmZpZy5kYXRhQmluZGluZywgcHJvcHMuaGFuZGxlLCBwcm9wcy5wYXJlbnRJZCwgcHJvcHMuYmluZFZhbHVlVG9Gb3JtKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGZpZWxkKSAmJiAhVXRpbHMuaXNOdWxsKGZpZWxkLmVycm9yKSkge1xuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5lcnJvci5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEhhc0Vycm9yKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2UoZmllbGQuZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgZG8gTk9UIHZhbGlkYXRlIG9uIG1vdW50OiB2YWx1ZVJlZi5jdXJyZW50IGlzIG5vdFxuICAgICAgICAgICAgLy8geWV0IGJvdW5kIGZyb20gdGhlIGZvcm0ncyBtYXN0ZXIgZGF0YSBhdCB0aGlzIHBvaW50IOKAlCBiaW5kKClcbiAgICAgICAgICAgIC8vIHJ1bnMgaW4gYSBsYXRlciByZW5kZXIgY3ljbGUgdmlhIHRoZSBbdmFsdWVPYmplY3RdIHVzZUVmZmVjdC5cbiAgICAgICAgICAgIC8vIFZhbGlkYXRpbmcgaGVyZSB3b3VsZCBtYXJrIGV2ZXJ5IGZpZWxkLXdpdGgtbWFzdGVyLXZhbHVlIGFzXG4gICAgICAgICAgICAvLyBpbnZhbGlkIChjdXJyZW50VmFsdWU9bnVsbCksIHBlcm1hbmVudGx5IGZsaXBwaW5nIGZvcm0udmFsdWUgdG9cbiAgICAgICAgICAgIC8vIG51bGwuIFJlZ2lzdGVyIHN0YXlzIGVtcHR5IGZvciB0aGlzIGZpZWxkIHVudGlsIGVpdGhlciB1c2VyXG4gICAgICAgICAgICAvLyBpbnRlcmFjdGlvbiAoaGFuZGxlQ2hhbmdlIOKGkiB2YWxpZGF0ZUZpZWxkIOKGkiBkb1ZhbGlkYXRpb24g4oaSXG4gICAgICAgICAgICAvLyBzZXRGaWVsZFZhbGlkaXR5KSBvciBhbiBleHBsaWNpdCBmb3JtLmFwaS52YWxpZGF0ZUFsbCgpIHJ1bnMuXG4gICAgICAgICAgICAvLyBmb3JtLnZhbHVlIHRyZWF0cyBlbXB0eS1yZWdpc3RlciBhcyBcIm9wdGltaXN0aWNhbGx5IHZhbGlkXCIg4oCUIHNvXG4gICAgICAgICAgICAvLyBhbnkgc2F2ZSBmbG93IE1VU1QgY2FsbCBmb3JtLmFwaS52YWxpZGF0ZUFsbCgpIGJlZm9yZSByZWFkaW5nXG4gICAgICAgICAgICAvLyBmb3JtLnZhbHVlLCBvciBpbnZhbGlkIGRhdGEgd2lsbCBwYXNzIHRocm91Z2ggc2lsZW50bHkuXG4gICAgICAgICAgICBsb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmZvcm0oKSkpIHtcbiAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyhwcm9wcy5oYW5kbGUpO1xuICAgICAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgICAgICAucmVtb3ZlRmllbGQocHJvcHMuY29uZmlnLmRhdGFCaW5kaW5nIHx8IHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgaGFuZGxlVmFsdWVDaGFuZ2UgPSAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgaW5pdGlhbFZhbHVlQm91bmQuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxldCB2YWx1ZUNoYW5nZWQgPSBuZXdWYWx1ZSAhPT0gdmFsdWVSZWYuY3VycmVudDtcblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChuZXdWYWx1ZSkgJiYgIVV0aWxzLmlzTnVsbCh2YWx1ZVJlZi5jdXJyZW50KSkge1xuICAgICAgICAgICAgaWYgKHByb3BzLmNvbmZpZy5maWVsZFR5cGUgPT09ICdTRUxFQ1QnIHx8IHByb3BzLmNvbmZpZy5maWVsZFR5cGUgPT09ICdMT09LVVAnKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VkID0gbmV3VmFsdWUuaWQgIT09IHZhbHVlUmVmLmN1cnJlbnQuaWQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLmNvbmZpZy5maWVsZFR5cGUgPT09ICdEQVRFJyB8fCBwcm9wcy5jb25maWcuZmllbGRUeXBlID09PSAnVElNRScpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZWQgPSBuZXdWYWx1ZSAhPT0gdmFsdWVSZWYuY3VycmVudDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VkID0gSlNPTi5zdHJpbmdpZnkodmFsdWVSZWYuY3VycmVudCkgIT09IEpTT04uc3RyaW5naWZ5KG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wcy5jb25maWcuZmllbGRUeXBlID09PSAnR1JJRCcgJiYgdmFsdWVPYmplY3RbdmFsdWVQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgIHZhbHVlT2JqZWN0W3ZhbHVlUHJvcGVydHldLnNwbGljZSgwLCB2YWx1ZU9iamVjdFt2YWx1ZVByb3BlcnR5XS5sZW5ndGgpO1xuXG4gICAgICAgICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5ld1ZhbHVlRWxlbWVudCBvZiBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZU9iamVjdFt2YWx1ZVByb3BlcnR5XS5wdXNoKG5ld1ZhbHVlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgaWQgPSBwcm9wcy5jb25maWcuZGF0YUJpbmRpbmcgPyBwcm9wcy5jb25maWcuZGF0YUJpbmRpbmcgOiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAuaGFuZGxlQ2hhbmdlKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmRhdGFCaW5kaW5nKSA/IHByb3BzLmNvbmZpZy5kYXRhQmluZGluZyA6IGlkLCBuZXdWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgICAgICBsZXQgaWQgPSBwcm9wcy5jb25maWcuZGF0YUJpbmRpbmcgPyBwcm9wcy5jb25maWcuZGF0YUJpbmRpbmcgOiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICAvL2FwcGxpY2F0aW9uTWFuYWdlci5lbmFibGVGb3JtTWFya2Vycyh0cnVlKTtcbiAgICAgICAgICAgIGlmIChwcm9wcy5jb25maWcuZmllbGRUeXBlID09PSAnU0VMRUNUJykge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RJdGVtQ2hhbmdlID0gcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgIC5oYW5kbGVTZWxlY3RJdGVtQ2hhbmdlKGlkLCBzZWxlY3RPcHRpb25zLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoc2VsZWN0SXRlbUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgdmFsdWVSZWYuY3VycmVudCA9IHNlbGVjdEl0ZW1DaGFuZ2U7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzZWxlY3RPcHRpb24gb2Ygc2VsZWN0T3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0T3B0aW9uLmlkID09PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBzZWxlY3RPcHRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIHZhbHVlUmVmLmN1cnJlbnQgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAgICAgLmhhbmRsZUNoYW5nZSghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5kYXRhQmluZGluZykgPyBwcm9wcy5jb25maWcuZGF0YUJpbmRpbmcgOiBpZCwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy52YWx1ZUNoYW5nZUhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgcHJvcHMudmFsdWVDaGFuZ2VIYW5kbGVyKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5WQUxVRV9DSEFOR0UsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlcywgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvVmFsaWRhdGlvbih2YWx1ZXMsIGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFyc2VWYWx1ZTogKHZhbHVlLCBpbmJvdW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMudmFsdWVQYXJzZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy52YWx1ZVBhcnNlcih2YWx1ZSwgaW5ib3VuZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCB2YWxpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWQuY3VycmVudDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgcm93cygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMucm93c0hhbmRsZXIgPyBwcm9wcy5yb3dzSGFuZGxlcigpIDogbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRWYWxpZGF0aW9uR3JvdXA6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIVV0aWxzLmlzTnVsbChjb25maWcudmFsaWRhdG9yKSA/IGNvbmZpZy52YWxpZGF0b3IuZ3JvdXAgOiBudWxsO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVmFsdWVDaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY2xlYXJIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5jbGVhckhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2Nyb2xsVG86ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLmN1cnJlbnQuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jazogXCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbHVlT2JqZWN0KSAmJiAhVXRpbHMuaXNOdWxsKHZhbHVlUHJvcGVydHkpICYmICFVdGlscy5pc051bGwodmFsdWVPYmplY3RbdmFsdWVQcm9wZXJ0eV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhVXRpbHMuaXNOdWxsKHByb3BzLnZhbHVlUGFyc2VyKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy52YWx1ZVBhcnNlcih2YWx1ZU9iamVjdFt2YWx1ZVByb3BlcnR5XSwgZmFsc2UpIDogdmFsdWVPYmplY3RbdmFsdWVQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZU9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVPYmplY3RbdmFsdWVQcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy52YWx1ZVBhcnNlciA/IHByb3BzLnZhbHVlUGFyc2VyKHZhbHVlLCBmYWxzZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVmFsdWVDaGFuZ2UodmFsKTtcblxuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnZhbHVlQ2hhbmdlQ2FsbGJhY2spKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLnZhbHVlQ2hhbmdlQ2FsbGJhY2sodmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCB2aXNpYmxlKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKHZpc2libGUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhbmRsZUxvYWRDb21wbGV0ZSgpIHtcbiAgICAgICAgICAgICAgICBsb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoKCkge1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQsIHRydWUpKTtcbiAgICAgICAgICAgICAgICBzZXREaXNhYmxlZChVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy5kaXNhYmxlZCwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgbGV0IHJlcXVpcmVkTmV3VmFsID0gIVV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmFsaWRhdG9yKSA/XG4gICAgICAgICAgICAgICAgICAgICFVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52YWxpZGF0b3IubnVsbGFibGUsIHBhcnNlZENvbmZpZy5pZCwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgfHwgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmFsaWRhdG9yLnJlcXVpcmVkLCBwYXJzZWRDb25maWcuaWQsIGZhbHNlKSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIHZhbGlkYXRlT25DaGFuZ2UuY3VycmVudCA9IHJlcXVpcmVkICE9PSBudWxsICYmIHJlcXVpcmVkICE9PSByZXF1aXJlZE5ld1ZhbCAmJiBsb2FkaW5nUmVmLmN1cnJlbnQgPT09IGZhbHNlO1xuICAgICAgICAgICAgICAgIHNldFJlcXVpcmVkKHJlcXVpcmVkTmV3VmFsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVpcmVkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCByZXF1aXJlZChpc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgc2V0UmVxdWlyZWQoaXNSZXF1aXJlZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IG1pbkRhdGUobWluRGF0ZSkge1xuICAgICAgICAgICAgICAgIHNldE1pbkRhdGUobWluRGF0ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IG1heERhdGUobWF4RGF0ZSkge1xuICAgICAgICAgICAgICAgIHNldE1heERhdGUobWF4RGF0ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHNlbGVjdE9wdGlvbnMoc2VsZWN0T3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdE9wdGlvbnMoc2VsZWN0T3B0aW9ucyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgc2V0UmVzZXRTd2l0Y2goIXJlc2V0U3dpdGNoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRGaWVsZFJlcXVpcmVkKG5ld1ZhbCwgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGVPbkNoYW5nZS5jdXJyZW50ID0gdmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgc2V0UmVxdWlyZWQobmV3VmFsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmdldENoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuZ2V0Q2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9hZERhdGEoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLmxvYWREYXRhSGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5sb2FkRGF0YUhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiBjb25maWcgP1xuICAgICAgICA8ZGl2IHJlZj17cmVmfSBjbGFzc05hbWU9XCJjb2wtKi0qXCIga2V5PXtjb25maWcuaWR9IHN0eWxlPXt7XG4gICAgICAgICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5tYXJnaW5MZWZ0KSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWFyZ2luTGVmdCA6XG4gICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmluZGV4ID09PSAwID8gMCA6ICc4cHgnLFxuICAgICAgICAgICAgZGlzcGxheTogIXZpc2libGUgfHwgVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKGNvbmZpZywgJ2hpZGRlbicsIGZhbHNlKSA9PT0gdHJ1ZSA/ICdub25lJyA6ICdibG9jaydcbiAgICAgICAgfX0+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW4oe1xuICAgICAgICAgICAgbWluRGF0ZTogbWluRGF0ZSxcbiAgICAgICAgICAgIG1heERhdGU6IG1heERhdGUsXG4gICAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWQsXG4gICAgICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICAgICAgICB2YWx1ZU9iamVjdDogdmFsdWVPYmplY3QsXG4gICAgICAgICAgICB2YWx1ZVByb3BlcnR5OiB2YWx1ZVByb3BlcnR5LFxuICAgICAgICAgICAgaGFuZGxlVmFsdWVDaGFuZ2U6IGhhbmRsZVZhbHVlQ2hhbmdlLFxuICAgICAgICAgICAgc2V0VmFsdWU6IHNldFZhbHVlLFxuICAgICAgICAgICAgc2V0U2VsZWN0T3B0aW9uczogc2V0U2VsZWN0T3B0aW9ucyxcbiAgICAgICAgICAgIHNlbGVjdE9wdGlvbnM6IHNlbGVjdE9wdGlvbnMsXG4gICAgICAgICAgICBzZXRSZXNldFN3aXRjaDogc2V0UmVzZXRTd2l0Y2gsXG4gICAgICAgICAgICByZXNldFN3aXRjaDogcmVzZXRTd2l0Y2gsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICBoYXNFcnJvcjogaGFzRXJyb3IsXG4gICAgICAgICAgICBkb1ZhbGlkYXRpb246IGRvVmFsaWRhdGlvbixcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgbG9hZGluZ1JlZjogbG9hZGluZ1JlZlxuICAgICAgICB9KX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOiBudWxsO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsbUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUF3QyxTQUFBRCx1QkFBQVEsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVqQyxNQUFNRyxT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Q0FBQytCLEVBQUc7SUFBQ2tHLEtBQUssRUFBRTtNQUN0REMsU0FBUyxFQUFFLE1BQU07TUFDakJDLFVBQVUsRUFBRSxDQUFDL0gsY0FBSyxDQUFDQyxNQUFNLEVBQUFuQixxQkFBQSxHQUFDRCxLQUFLLENBQUNlLE1BQU0sQ0FBQ29JLFVBQVUsY0FBQWxKLHFCQUFBLGdCQUFBQSxxQkFBQSxHQUF2QkEscUJBQUEsQ0FBeUIrSSxLQUFLLGNBQUEvSSxxQkFBQSx1QkFBOUJBLHFCQUFBLENBQWdDaUosVUFBVSxDQUFDLElBQUFoSixzQkFBQSxHQUFHRixLQUFLLENBQUNlLE1BQU0sQ0FBQ29JLFVBQVUsY0FBQWpKLHNCQUFBLGdCQUFBQSxzQkFBQSxHQUF2QkEsc0JBQUEsQ0FBeUI4SSxLQUFLLGNBQUE5SSxzQkFBQSx1QkFBOUJBLHNCQUFBLENBQWdDZ0osVUFBVSxHQUM5R2xKLEtBQUssQ0FBQ2UsTUFBTSxDQUFDcUksS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSztNQUN4Q0MsT0FBTyxFQUFFLENBQUMzSCxPQUFPLElBQUlQLGNBQUssQ0FBQ21JLHFCQUFxQixDQUFDdkksTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsTUFBTSxHQUFHO0lBQ2xHO0VBQUUsZ0JBQ0Y1QixNQUFBLENBQUFXLE9BQUEsQ0FBQStJLGFBQUEsZUFDQzdJLEtBQUssQ0FBQ3VKLFFBQVEsQ0FBQztJQUNaekgsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCRSxPQUFPLEVBQUVBLE9BQU87SUFDaEJKLFFBQVEsRUFBRUEsUUFBUTtJQUNsQkosUUFBUSxFQUFFQSxRQUFRO0lBQ2xCZixXQUFXLEVBQUVBLFdBQVc7SUFDeEJFLGFBQWEsRUFBRUEsYUFBYTtJQUM1QjBGLGlCQUFpQixFQUFFQSxpQkFBaUI7SUFDcENuRixRQUFRLEVBQUVBLFFBQVE7SUFDbEJLLGdCQUFnQixFQUFFQSxnQkFBZ0I7SUFDbENELGFBQWEsRUFBRUEsYUFBYTtJQUM1QmEsY0FBYyxFQUFFQSxjQUFjO0lBQzlCRCxXQUFXLEVBQUVBLFdBQVc7SUFDeEJqQixLQUFLLEVBQUVBLEtBQUs7SUFDWmQsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCZ0QsWUFBWSxFQUFFQSxZQUFZO0lBQzFCNUMsWUFBWSxFQUFFQSxZQUFZO0lBQzFCTSxVQUFVLEVBQUVBO0VBQ2hCLENBQUMsQ0FDSyxDQUNELENBQUMsR0FDSixJQUFJO0FBQ2QsQ0FBQztBQUFDMkksT0FBQSxDQUFBekosU0FBQSxHQUFBQSxTQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -40,4 +40,5 @@ const Checkbox = /*#__PURE__*/_react.default.memo(props => {
40
40
  base: base
41
41
  }, props)));
42
42
  });
43
- var _default = exports.default = Checkbox;
43
+ var _default = exports.default = Checkbox;
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DaGVja2JveCIsIl9Gb3JtQ29udHJvbExhYmVsIiwiX0Jhc2VGaWVsZCIsIl9VdGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5IiwiQ2hlY2tib3hXcmFwcGVyIiwiUmVhY3QiLCJtZW1vIiwicHJvcHMiLCJiYXNlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29udHJvbCIsImNoZWNrZWQiLCJ2YWx1ZSIsIlV0aWxzIiwibWVyZ2VTdHlsZXMiLCJjb25maWciLCJrZXkiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwiaGFuZGxlVmFsdWVDaGFuZ2UiLCJ0YXJnZXQiLCJlcnJvciIsImVycm9yTWVzc2FnZSIsInNpemUiLCJpbnB1dFByb3BzIiwibGFiZWwiLCJhdHRyaWJ1dGVzIiwiQ2hlY2tib3giLCJCYXNlRmllbGQiLCJoYW5kbGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9DaGVja2JveC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBDaGVja2JveENvbXBvbmVudCBmcm9tICdAbXVpL21hdGVyaWFsL0NoZWNrYm94JztcbmltcG9ydCBGb3JtQ29udHJvbExhYmVsIGZyb20gJ0BtdWkvbWF0ZXJpYWwvRm9ybUNvbnRyb2xMYWJlbCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5cbmNvbnN0IENoZWNrYm94V3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Rm9ybUNvbnRyb2xMYWJlbFxuICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5Cb3R0b206IDB9fVxuICAgICAgICAgICAgY29udHJvbD17XG4gICAgICAgICAgICAgICAgPENoZWNrYm94Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2Jhc2UudmFsdWUgfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7fSwgcHJvcHMuY29uZmlnKX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtwcm9wcy5rZXl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtiYXNlLnZhbHVlIHx8IGZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e1xuICAgICAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGUudGFyZ2V0LmNoZWNrZWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVycm9yPXtwcm9wcy5iYXNlLmVycm9yTWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRQcm9wcz17cHJvcHMuaW5wdXRQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGFiZWw9e3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzWydsYWJlbCddfVxuICAgICAgICAvPlxuICAgICk7XG59KTtcblxuY29uc3QgQ2hlY2tib3ggPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxDaGVja2JveFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0NoZWNrYm94V3JhcHBlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVja2JveDsiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFBZ0MsU0FBQUQsdUJBQUFNLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFXLENBQUEsSUFBQUQsQ0FBQSxPQUFBRSxjQUFBLENBQUFDLElBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLE1BQUFKLENBQUEsQ0FBQUksQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsYUFBQUosQ0FBQSxLQUFBSixRQUFBLENBQUFXLEtBQUEsT0FBQU4sU0FBQTtBQUVoQyxNQUFNTyxlQUFlLGdCQUFHQyxjQUFLLENBQUNDLElBQUksQ0FBRUMsS0FBSyxJQUFLO0VBQzFDLE1BQU1DLElBQUksR0FBR0QsS0FBSyxDQUFDQyxJQUFJO0VBRXZCLG9CQUNJMUIsTUFBQSxDQUFBUyxPQUFBLENBQUFrQixhQUFBLENBQUN2QixpQkFBQSxDQUFBSyxPQUFnQjtJQUNibUIsS0FBSyxFQUFFO01BQUNDLFlBQVksRUFBRTtJQUFDLENBQUU7SUFDekJDLE9BQU8sZUFDSDlCLE1BQUEsQ0FBQVMsT0FBQSxDQUFBa0IsYUFBQSxDQUFDeEIsU0FBQSxDQUFBTSxPQUFpQjtNQUNkc0IsT0FBTyxFQUFFTCxJQUFJLENBQUNNLEtBQUssSUFBSSxLQUFNO01BQzdCSixLQUFLLEVBQUVLLGNBQUssQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFVCxLQUFLLENBQUNVLE1BQU0sQ0FBRTtNQUMzQ0MsR0FBRyxFQUFFWCxLQUFLLENBQUNXLEdBQUk7TUFDZkosS0FBSyxFQUFFTixJQUFJLENBQUNNLEtBQUssSUFBSSxLQUFNO01BQzNCSyxRQUFRLEVBQUVYLElBQUksQ0FBQ1csUUFBUztNQUN4QkMsUUFBUSxFQUNIL0IsQ0FBQyxJQUFLO1FBQ0htQixJQUFJLENBQUNhLGlCQUFpQixDQUFDaEMsQ0FBQyxDQUFDaUMsTUFBTSxDQUFDVCxPQUFPLENBQUM7TUFDNUMsQ0FDSDtNQUNEVSxLQUFLLEVBQUVoQixLQUFLLENBQUNDLElBQUksQ0FBQ2dCLFlBQWE7TUFDL0JDLElBQUksRUFBQyxPQUFPO01BQ1pDLFVBQVUsRUFBRW5CLEtBQUssQ0FBQ21CO0lBQVcsQ0FDaEMsQ0FDSjtJQUNEQyxLQUFLLEVBQUVwQixLQUFLLENBQUNVLE1BQU0sQ0FBQ1csVUFBVSxDQUFDLE9BQU87RUFBRSxDQUMzQyxDQUFDO0FBRVYsQ0FBQyxDQUFDO0FBRUYsTUFBTUMsUUFBUSxnQkFBR3hCLGNBQUssQ0FBQ0MsSUFBSSxDQUFFQyxLQUFLLElBQUs7RUFDbkMsb0JBQ0l6QixNQUFBLENBQUFTLE9BQUEsQ0FBQWtCLGFBQUEsQ0FBQ3RCLFVBQUEsQ0FBQTJDLFNBQVMsRUFBQXRDLFFBQUEsS0FBS2UsS0FBSztJQUFFd0IsTUFBTSxFQUFFeEIsS0FBSyxDQUFDd0I7RUFBTyxJQUN0Q3ZCLElBQUksaUJBQ0QxQixNQUFBLENBQUFTLE9BQUEsQ0FBQWtCLGFBQUEsQ0FBQ0wsZUFBZSxFQUFBWixRQUFBO0lBQ1pnQixJQUFJLEVBQUVBO0VBQUssR0FDUEQsS0FBSyxDQUVJLENBRWQsQ0FBQztBQUVwQixDQUFDLENBQUM7QUFBQyxJQUFBeUIsUUFBQSxHQUFBQyxPQUFBLENBQUExQyxPQUFBLEdBRVlzQyxRQUFRIiwiaWdub3JlTGlzdCI6W119
@@ -105,4 +105,5 @@ const CurrencyField = /*#__PURE__*/_react.default.memo(props => {
105
105
  base: base
106
106
  }, props)));
107
107
  });
108
- var _default = exports.default = CurrencyField;
108
+ var _default = exports.default = CurrencyField;
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9JbnB1dEFkb3JubWVudCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfcmVhY3RSZWR1eCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiQ3VycmVuY3lGaWVsZFdyYXBwZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1NCIsIl9wcm9wcyRjb25maWckYXR0cmlidTUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnU2IiwiYmFzZSIsIndpZHRoIiwiVXRpbHMiLCJpc051bGwiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwic3R5bGUiLCJtYXhXaWR0aCIsIm1pbldpZHRoIiwiaGVpZ2h0IiwiY3VycmVuY3kiLCJjdXJyZW5jeVN5bWJvbCIsInRleHRSZWYiLCJ1c2VSZWYiLCJkaXNwbGF5VmFsdWUiLCJzZXREaXNwbGF5VmFsdWUiLCJ1c2VTdGF0ZSIsImZvcm1hdHRlciIsIkludGwiLCJOdW1iZXJGb3JtYXQiLCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLCJmb3JtYXROdW1iZXJXaXRoQ29tbWFzIiwiaW5wdXQiLCJ0b1N0cmluZyIsInJlcGxhY2UiLCJ1c2VFZmZlY3QiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImhhbmRsZUlucHV0Q2hhbmdlIiwiZXZlbnQiLCJyYXciLCJ0YXJnZXQiLCJwYXJ0cyIsInNwbGl0IiwibWF0Y2giLCJwcmV2ZW50RGVmYXVsdCIsIm51bWVyaWMiLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJoYW5kbGVWYWx1ZUNoYW5nZSIsImhhbmRsZUJsdXIiLCJmb3JtYXQiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJ0eXBlIiwicmVxdWlyZWQiLCJpbnB1dFJlZiIsImxhYmVsIiwib25LZXlVcCIsImtleUhhbmRsZXIiLCJlcnJvciIsImhhc0Vycm9yIiwiaGVscGVyVGV4dCIsImVycm9yTWVzc2FnZSIsIm1hcmdpbiIsImRpc2FibGVkIiwic2l6ZSIsImNvbG9yIiwidmFyaWFudCIsIm9uQ2hhbmdlIiwib25CbHVyIiwiQ3VycmVuY3lGaWVsZCIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsIm51bVZhbHVlIiwiTWF0aCIsInJvdW5kIiwiTnVtYmVyIiwiRVBTSUxPTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0N1cnJlbmN5RmllbGQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCwge3VzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRleHRGaWVsZENvbXBvbmVudCBmcm9tICdAbXVpL21hdGVyaWFsL1RleHRGaWVsZCc7XG5pbXBvcnQgSW5wdXRBZG9ybm1lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9JbnB1dEFkb3JubWVudCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuY29uc3QgQ3VycmVuY3lGaWVsZFdyYXBwZXIgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuICAgIGNvbnN0IHdpZHRoID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoIDogXCIxMDAlXCI7XG4gICAgY29uc3QgbWF4V2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWF4V2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUubWF4V2lkdGggOiBudWxsO1xuICAgIGNvbnN0IG1pbldpZHRoID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/Lm1pbldpZHRoKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoIDogXCIyMzJweFwiO1xuICAgIGNvbnN0IGhlaWdodCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0IDogbnVsbDtcbiAgICBjb25zdCBjdXJyZW5jeSA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmN1cnJlbmN5KSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLmN1cnJlbmN5IDogXCJaQVJcIjtcbiAgICBjb25zdCBjdXJyZW5jeVN5bWJvbCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmN1cnJlbmN5U3ltYm9sKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLmN1cnJlbmN5U3ltYm9sIDogXCJSXCI7XG4gICAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbZGlzcGxheVZhbHVlLCBzZXREaXNwbGF5VmFsdWVdID0gdXNlU3RhdGUoXCJcIik7XG5cbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoXCJlbi1aQVwiLCB7XG4gICAgICAgIHN0eWxlOiBcImN1cnJlbmN5XCIsXG4gICAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeSxcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBmb3JtYXROdW1iZXJXaXRoQ29tbWFzKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dC50b1N0cmluZygpLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKTtcbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoYmFzZS52YWx1ZSA9PT0gbnVsbCB8fCBiYXNlLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNldERpc3BsYXlWYWx1ZShcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldERpc3BsYXlWYWx1ZShjdXJyZW5jeVN5bWJvbCArIGZvcm1hdE51bWJlcldpdGhDb21tYXMoYmFzZS52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGV2ZW50LnRhcmdldC52YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCBcIlwiKTtcblxuICAgICAgICBjb25zdCBwYXJ0cyA9IHJhdy5zcGxpdCgnLicpO1xuICAgICAgICBpZiAoKHBhcnRzLmxlbmd0aCA9PT0gMiAmJiBwYXJ0c1sxXS5sZW5ndGggPiAyKSB8fCBVdGlscy5pc051bGwocmF3Lm1hdGNoKFwiXlxcXFxkKyhcXFxcLlxcXFxkezAsMn0pPyRcIikpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IHBhcnNlRmxvYXQocmF3KTtcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG51bWVyaWMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXREaXNwbGF5VmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgICAgICBpZiAoYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgc2V0RGlzcGxheVZhbHVlKGZvcm1hdHRlci5mb3JtYXQoYmFzZS52YWx1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0RGlzcGxheVZhbHVlKFwiXCIpO1xuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRGaWVsZENvbXBvbmVudFxuICAgICAgICAgICAgaWQ9e3Byb3BzLmlkfVxuICAgICAgICAgICAgdHlwZT17cHJvcHMudHlwZX1cbiAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgaW5wdXRSZWY9e3RleHRSZWZ9XG4gICAgICAgICAgICBsYWJlbD17IVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSA6IG51bGx9XG4gICAgICAgICAgICBvbktleVVwPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgZXJyb3I9e2Jhc2UuaGFzRXJyb3J9XG4gICAgICAgICAgICBoZWxwZXJUZXh0PXtiYXNlLmVycm9yTWVzc2FnZX1cbiAgICAgICAgICAgIG1hcmdpbj1cImRlbnNlXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbWluV2lkdGg6IG1pbldpZHRoLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogbWF4V2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdzZWNvbmRhcnknXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgIHZhbHVlPXtkaXNwbGF5VmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlSW5wdXRDaGFuZ2V9XG4gICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgIC8+XG4gICAgKTtcbn0pO1xuXG5jb25zdCBDdXJyZW5jeUZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkXG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICBoYW5kbGU9e3Byb3BzLmhhbmRsZX1cbiAgICAgICAgICAgIHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGluYm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnVtVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTmFOKG51bVZhbHVlKSA/IG51bGwgOiBNYXRoLnJvdW5kKChudW1WYWx1ZSArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPEN1cnJlbmN5RmllbGRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9DdXJyZW5jeUZpZWxkV3JhcHBlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBDdXJyZW5jeUZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFOLE9BQUE7QUFBMEMsU0FBQUUsdUJBQUFLLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBUix3QkFBQVEsQ0FBQSxFQUFBRyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9B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QUFFckQsSUFBSSxDQUFDc0QsWUFBYTtJQUM5QkMsTUFBTSxFQUFDLE9BQU87SUFDZEMsUUFBUSxFQUFFeEQsSUFBSSxDQUFDd0QsUUFBUztJQUN4QkMsSUFBSSxFQUFDLE9BQU87SUFDWm5ELEtBQUssRUFBRTtNQUNIRSxRQUFRLEVBQUVBLFFBQVE7TUFDbEJQLEtBQUssRUFBRUEsS0FBSztNQUNaTSxRQUFRLEVBQUVBLFFBQVE7TUFDbEJFLE1BQU0sRUFBRUEsTUFBTTtNQUNkaUQsS0FBSyxFQUFFO0lBQ1gsQ0FBRTtJQUNGQyxPQUFPLEVBQUMsVUFBVTtJQUNsQmhDLEtBQUssRUFBRWIsWUFBYTtJQUNwQjhDLFFBQVEsRUFBRS9CLGlCQUFrQjtJQUM1QmdDLE1BQU0sRUFBRXBCO0VBQVcsQ0FDdEIsQ0FBQztBQUVWLENBQUMsQ0FBQztBQUVGLE1BQU1xQixhQUFhLGdCQUFHdkUsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUN4QyxvQkFDSXJDLE1BQUEsQ0FBQVcsT0FBQSxDQUFBNEUsYUFBQSxDQUFDakYsVUFBQSxDQUFBcUcsU0FBUyxFQUFBL0UsUUFBQSxLQUNGUyxLQUFLO0lBQ1R1RSxNQUFNLEVBQUV2RSxLQUFLLENBQUN1RSxNQUFPO0lBQ3JCQyxXQUFXLEVBQUVBLENBQUN0QyxLQUFLLEVBQUV1QyxPQUFPLEtBQUs7TUFDN0IsSUFBSXZDLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0MsU0FBUyxJQUFJRCxLQUFLLEtBQUssRUFBRSxFQUFFO1FBQ3ZELE9BQU8sSUFBSTtNQUNmO01BRUEsSUFBSXVDLE9BQU8sRUFBRTtRQUNULE1BQU1DLFFBQVEsR0FBRzdCLFVBQVUsQ0FBQ1gsS0FBSyxDQUFDO1FBQ2xDLE9BQU9ZLEtBQUssQ0FBQzRCLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUMsQ0FBQ0YsUUFBUSxHQUFHRyxNQUFNLENBQUNDLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHO01BQ3ZGLENBQUMsTUFBTTtRQUNILE9BQU81QyxLQUFLO01BQ2hCO0lBQ0o7RUFBRSxJQUVEM0IsSUFBSSxpQkFDRDVDLE1BQUEsQ0FBQVcsT0FBQSxDQUFBNEUsYUFBQSxDQUFDckQsb0JBQW9CLEVBQUFOLFFBQUE7SUFDakJnQixJQUFJLEVBQUVBO0VBQUssR0FDUFAsS0FBSyxDQUVTLENBRW5CLENBQUM7QUFFcEIsQ0FBQyxDQUFDO0FBQUMsSUFBQStFLFFBQUEsR0FBQUMsT0FBQSxDQUFBMUcsT0FBQSxHQUVZK0YsYUFBYSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -119,4 +119,5 @@ const DatePicker = props => {
119
119
  base: base
120
120
  }, props)));
121
121
  };
122
- var _default = exports.default = DatePicker;
122
+ var _default = exports.default = DatePicker;
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9CYXNlRmllbGQiLCJfcmVhY3RSZWR1eCIsIl9EeW5hbWljSlMiLCJfeERhdGVQaWNrZXJzIiwiX0FkYXB0ZXJEYXlqcyIsIl9kYXlqcyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5IiwiQ3VzdG9tRGF0ZVBpY2tlckNvbXBvbmVudCIsInByb3BzIiwibWluRGF0ZSIsInNldE1pbkRhdGUiLCJSZWFjdCIsInVzZVN0YXRlIiwibWF4RGF0ZSIsInNldE1heERhdGUiLCJiYXNlIiwiZGVmYXVsdERhdGUiLCJVdGlscyIsImlzTnVsbCIsInZhbHVlT2JqZWN0IiwidmFsdWVQcm9wZXJ0eSIsIkRhdGUiLCJtaW5XaWR0aCIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImNvbmZpZyIsIndpZHRoIiwiaGFuZGxlRGF0ZUNoYW5nZSIsImRhdGUiLCJzZXRWYWx1ZSIsImhhbmRsZVZhbHVlQ2hhbmdlIiwidXNlRWZmZWN0IiwiZm9ybWF0TnVtYmVyIiwiZ2V0TGltaXREYXRlIiwiaWQiLCJkYXRlQXR0ciIsImF0dHJpYnV0ZXMiLCJ0b1N0cmluZyIsImluY2x1ZGVzIiwib3BlcmF0b3IiLCJ0b2tlbnMiLCJzcGxpdCIsImRheXMiLCJwYXJzZUZsb2F0IiwicmVwbGFjZSIsInRyaW0iLCJsaW1pdCIsInNldERhdGUiLCJnZXREYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwic2Vjb25kYXJ5Q29sb3IiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZGFzaGJvYXJkIiwic2Vjb25kYXJ5VGhlbWVDb2xvciIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJ0ZXh0QWxpZ24iLCJjcmVhdGVFbGVtZW50IiwiTG9jYWxpemF0aW9uUHJvdmlkZXIiLCJkYXRlQWRhcHRlciIsIkFkYXB0ZXJEYXlqcyIsIkRhdGVQaWNrZXIiLCJkaXNhYmxlZCIsImxhYmVsIiwidmFsdWUiLCJkYXlqcyIsImNsYXNzTmFtZSIsIm9uQ2hhbmdlIiwibmV3VmFsdWUiLCJ0b0RhdGUiLCJlcnJvciIsImhhc0Vycm9yIiwiZm9ybWF0Iiwic2xvdFByb3BzIiwidGV4dEZpZWxkIiwidmFyaWFudCIsIm1hcmdpbiIsInNpemUiLCJyZXF1aXJlZCIsImhlbHBlclRleHQiLCJlcnJvck1lc3NhZ2UiLCJCYXNlRmllbGQiLCJoYW5kbGUiLCJ2YWx1ZVBhcnNlciIsImluYm91bmQiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJyZXZlcnNlIiwiam9pbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0RhdGVQaWNrZXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJ2RhdGUtZm5zJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQge3VzZVNlbGVjdG9yfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uLy4uL0R5bmFtaWNKU1wiO1xuaW1wb3J0IHtEYXRlUGlja2VyIGFzIE11aURhdGVQaWNrZXIsIExvY2FsaXphdGlvblByb3ZpZGVyfSBmcm9tIFwiQG11aS94LWRhdGUtcGlja2Vyc1wiO1xuaW1wb3J0IHtBZGFwdGVyRGF5anN9IGZyb20gXCJAbXVpL3gtZGF0ZS1waWNrZXJzL0FkYXB0ZXJEYXlqc1wiO1xuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xuXG5jb25zdCBDdXN0b21EYXRlUGlja2VyQ29tcG9uZW50ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW21pbkRhdGUsIHNldE1pbkRhdGVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW21heERhdGUsIHNldE1heERhdGVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG4gICAgY29uc3QgZGVmYXVsdERhdGUgPSAhVXRpbHMuaXNOdWxsKGJhc2UudmFsdWVPYmplY3RbYmFzZS52YWx1ZVByb3BlcnR5XSkgPyBuZXcgRGF0ZShiYXNlLnZhbHVlT2JqZWN0W2Jhc2UudmFsdWVQcm9wZXJ0eV0pIDogbnVsbDtcbiAgICBsZXQgbWluV2lkdGggPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbWluV2lkdGgnLCAnMjQwcHgnKTtcbiAgICBsZXQgd2lkdGggPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnd2lkdGgnLCAnMTAwJScpO1xuXG4gICAgY29uc3QgaGFuZGxlRGF0ZUNoYW5nZSA9IGRhdGUgPT4ge1xuICAgICAgICBiYXNlLnNldFZhbHVlKGRhdGUpO1xuICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGRhdGUpO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBiYXNlLnNldFZhbHVlKGRlZmF1bHREYXRlKTtcbiAgICB9LCBbcHJvcHMuYmFzZS52YWx1ZU9iamVjdFtwcm9wcy5iYXNlLnZhbHVlUHJvcGVydHldXSk7XG5cbiAgICBjb25zdCBmb3JtYXROdW1iZXIgPSAobikgPT4ge1xuICAgICAgICByZXR1cm4gbiA8IDEwID8gJzAnICsgbiA6IG47XG4gICAgfTtcblxuICAgIGNvbnN0IGdldExpbWl0RGF0ZSA9IChpZCkgPT4ge1xuICAgICAgICBsZXQgZGF0ZUF0dHIgPSBwcm9wcy5jb25maWcuYXR0cmlidXRlcyA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzW2lkXSA6IG51bGw7XG4gICAgICAgIGlmIChkYXRlQXR0cikge1xuICAgICAgICAgICAgaWYgKGRhdGVBdHRyLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ25vdycpKSB7XG4gICAgICAgICAgICAgICAgbGV0IG9wZXJhdG9yID0gZGF0ZUF0dHIudG9TdHJpbmcoKS5pbmNsdWRlcyhcIi1cIikgPyAnLScgOiAnKyc7XG4gICAgICAgICAgICAgICAgbGV0IHRva2VucyA9IGRhdGVBdHRyLnRvU3RyaW5nKCkuc3BsaXQob3BlcmF0b3IpO1xuICAgICAgICAgICAgICAgIGxldCBkYXlzID0gMDtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDAgJiYgIVV0aWxzLmlzTnVsbCh0b2tlbnNbMV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGRheXMgPSBwYXJzZUZsb2F0KHRva2Vuc1sxXS5yZXBsYWNlKCdkJywgJycpLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGxpbWl0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAoXCItXCIgPT09IG9wZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbWl0LnNldERhdGUobGltaXQuZ2V0RGF0ZSgpIC0gZGF5cyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGltaXQuc2V0RGF0ZShsaW1pdC5nZXREYXRlKCkgKyBkYXlzKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbGltaXQuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgZm9ybWF0TnVtYmVyKGxpbWl0LmdldE1vbnRoKCkgKyAxKSArIFwiLVwiICsgZm9ybWF0TnVtYmVyKGxpbWl0LmdldERhdGUoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBsaW1pdCA9IGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0KHByb3BzLmNvbmZpZy5pZCArIFwiLVwiICsgaWQsIGRhdGVBdHRyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGltaXQuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgZm9ybWF0TnVtYmVyKGxpbWl0LmdldE1vbnRoKCkgKyAxKSArIFwiLVwiICsgZm9ybWF0TnVtYmVyKGxpbWl0LmdldERhdGUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWQgPT09IFwibWluRGF0ZVwiID8gXCIxOTcwLTAxLTAxXCIgOiBcIjkwMDAtMTItMzFcIjtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0TWluRGF0ZShwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubWluRGF0ZSk7XG4gICAgICAgIHNldE1heERhdGUocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/Lm1heERhdGUpO1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChtaW5EYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRNaW5EYXRlKGdldExpbWl0RGF0ZShcIm1pbkRhdGVcIikpO1xuICAgICAgICB9XG4gICAgfSwgW21pbkRhdGVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChtYXhEYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRNYXhEYXRlKGdldExpbWl0RGF0ZShcIm1heERhdGVcIikpO1xuICAgICAgICB9XG4gICAgfSwgW21heERhdGVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldE1pbkRhdGUoYmFzZS5taW5EYXRlKTtcbiAgICB9LCBbYmFzZS5taW5EYXRlXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRNYXhEYXRlKGJhc2UubWF4RGF0ZSk7XG4gICAgfSwgW21heERhdGVdKTtcblxuICAgIGNvbnN0IHNlY29uZGFyeUNvbG9yID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc3RhdGUuZGFzaGJvYXJkLnNlY29uZGFyeVRoZW1lQ29sb3IpO1xuICAgIGNvbnN0IHN0eWxlID0gVXRpbHMubWVyZ2VTdHlsZXMoe21pbldpZHRoOiBtaW5XaWR0aCwgd2lkdGg6IHdpZHRoLCB0ZXh0QWxpZ246ICdsZWZ0J30sIHByb3BzLmNvbmZpZyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8TG9jYWxpemF0aW9uUHJvdmlkZXIgZGF0ZUFkYXB0ZXI9e0FkYXB0ZXJEYXlqc30+XG4gICAgICAgICAgICA8TXVpRGF0ZVBpY2tlclxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17YmFzZS52YWx1ZSA/IGRheWpzKGJhc2UudmFsdWUpIDogbnVsbH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9eydvdWktZm9ybS1pdGVtJyArIHByb3BzLmNsYXNzTmFtZSA/ICcgJyArIHByb3BzLmNsYXNzTmFtZSA6ICcnfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsobmV3VmFsdWUpID0+IGhhbmRsZURhdGVDaGFuZ2UobmV3VmFsdWUudG9EYXRlKCkpfVxuICAgICAgICAgICAgICAgIGVycm9yPXtiYXNlLmhhc0Vycm9yfVxuICAgICAgICAgICAgICAgIGZvcm1hdD1cIkREL01NL1lZWVlcIlxuICAgICAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6IFwib3V0bGluZWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogXCJkZW5zZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogXCJzbWFsbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGJhc2UuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogYmFzZS5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBiYXNlLmhhc0Vycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dDogYmFzZS5lcnJvck1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG1pbkRhdGU9e2RheWpzKG1pbkRhdGUpfVxuICAgICAgICAgICAgICAgIG1heERhdGU9e2RheWpzKG1heERhdGUpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9Mb2NhbGl6YXRpb25Qcm92aWRlcj5cbiAgICApO1xufTtcblxuY29uc3QgRGF0ZVBpY2tlciA9ICgocHJvcHMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkICB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZVBhcnNlcj17KHZhbHVlLCBpbmJvdW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIVV0aWxzLmlzTnVsbCh2YWx1ZSkgPyAoaW5ib3VuZCA/IG5ldyBEYXRlKHZhbHVlLnRvU3RyaW5nKCkpIDogbmV3IERhdGUodmFsdWUpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tR0InKS5zcGxpdCgnLycpLnJldmVyc2UoKS5qb2luKCctJykpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21EYXRlUGlja2VyQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc30+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21EYXRlUGlja2VyQ29tcG9uZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVQaWNrZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNEQSxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQTBCLFNBQUFELHVCQUFBUyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsU0FBQSxXQUFBQSxRQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxHQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsSUFBQSxlQUFBQyxDQUFBLGFBQUFQLENBQUEsTUFBQUEsQ0FBQSxHQUFBUSxTQUFBLENBQUFDLE1BQUEsRUFBQVQsQ0FBQSxVQUFBVSxDQUFBLEdBQUFGLFNBQUEsQ0FBQVIsQ0FBQSxZQUFBVyxDQUFBLElBQUFELENBQUEsT0FBQUUsY0FBQSxDQUFBQyxJQUFBLENBQUFILENBQUEsRUFBQUMsQ0FBQSxNQUFBSixDQUFBLENBQUFJLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLGFBQUFKLENB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
@@ -529,4 +529,5 @@ const FieldSet = /*#__PURE__*/_react.default.memo(props => {
529
529
  className: 'fieldSetTitle'
530
530
  }, props.config.attributes['label']) : null, !_Utils.default.isNull(fieldGrid) ? render(props.config) : null);
531
531
  });
532
- var _default = exports.default = FieldSet;
532
+ var _default = exports.default = FieldSet;
533
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX1RleHRGaWVsZCIsIl9DdXJyZW5jeUZpZWxkIiwiX0FkZHJlc3NTZWFyY2giLCJfTG9va3VwRmllbGQiLCJfU2VsZWN0SXRlbSIsIl9EYXRlUGlja2VyIiwiX1RpbWVQaWNrZXIiLCJfQ2hlY2tib3giLCJfTGFiZWxGaWVsZCIsIl9VcGxvYWRGaWVsZCIsIl9UcmFuc2Zlckxpc3QiLCJfR3JpZEZpZWxkIiwiX0ltYWdlRWRpdG9yIiwiX1JhZGlvR3JvdXAiLCJfRXZlbnQiLCJfRXZlbnRUeXBlIiwiX1Jlc3RTZXJ2aWNlIiwiX1NpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXJGaWVsZCIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfQnV0dG9uIiwiX0h0bWxQYW5lbCIsIl9BdXRvQ29tcGxldGUiLCJfTXVsdGlGaWxlVXBsb2FkRmllbGQiLCJfSWNvbiIsIl9Td2l0Y2giLCJfSWNvbkZpZWxkIiwiX0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lciIsIl9EeW5hbWljSlMiLCJfTGF5b3V0IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiRmllbGRTZXQiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImZpZWxkR3JpZCIsInVzZVN0YXRlIiwiVXRpbHMiLCJnZXRGaWVsZEdyaWQiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwiZmllbGRzIiwiY29tcG9uZW50SGFuZGxlcyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwiY3JlYXRlQ29tcG9uZW50SGFuZGxlIiwiZmllbGQiLCJpc051bGwiLCJpZCIsImhhbmRsZSIsInVzZUVmZmVjdCIsImFwaSIsInVzZUxheW91dEVmZmVjdCIsInJlZnJlc2giLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImRpc2FibGVkIiwidXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZSIsImZpcmVDaGFuZ2VFdmVudCIsImV2ZW50IiwiRXZlbnQiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJWQUxVRV9DSEFOR0UiLCJwcm9wZXJ0aWVzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3BlcnR5IiwiY29tcG9uZW50SGFuZGxlIiwicmVmcmVzaENvbXBvbmVudHMiLCJyZW5kZXJDb21wb25lbnQiLCJjb21wb25lbnQiLCJmaWVsZFR5cGUiLCJjb25zb2xlIiwiZXJyb3IiLCJpc0Rpc2FibGVkIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImNyZWF0ZUVsZW1lbnQiLCJrZXlIYW5kbGVyIiwiZm9ybSIsInBhcmVudElkIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwidmFsdWVzIiwidHlwZSIsIm11bHRpbGluZSIsInN0eWxlIiwiTGF5b3V0IiwiZmllbGREYXRhQmluZGluZ3MiLCJmaWVsZE5hbWVzIiwicHVzaCIsImRhdGFCaW5kaW5nIiwiY2xlYXIiLCJjb21wb25lbnRSZWYiLCJ2YWx1ZSIsImdldENoaWxkcmVuIiwiY2hpbGRyZW4iLCJtb2RlbCIsImZvcm1WYWx1ZSIsImxvYWREYXRhIiwiYWN0aW9uQ29uZmlnIiwiYWN0aW9uRXZlbnQiLCJzZXJ2aWNlIiwiZGF0YVNlcnZpY2UiLCJjb21wb25lbnRWYWx1ZSIsImlzRXZlbnREYXRhIiwidG9TdHJpbmciLCJzdGFydHNXaXRoIiwiaXNFcHJlc3Npb24iLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0V4cHJlc3Npb24iLCJ2YWwiLCJyZXNvbHZlRXhwcmVzc2lvblZhbHVlIiwiZGF0YSIsImJpbmREYXRhIiwiREFUQV9BUlJJVkVEIiwibWV0aG9kIiwiaW52b2tlUnBjIiwiaW52b2tlUmVzdCIsInJlZiIsImN1cnJlbnQiLCJ0aGVuIiwicmVzdWx0IiwiY2F0Y2giLCJwdWJsaXNoRXJyb3JNZXNzYWdlIiwicmVuZGVyIiwiZmllbGRTZXQiLCJsZW5ndGgiLCJyb3dzIiwibWFwIiwicm93IiwiaSIsImNsYXNzTmFtZSIsImtleSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImluZGV4IiwiX2ZpZWxkJGF0dHJpYnV0ZXMiLCJfZmllbGQkYXR0cmlidXRlczIiLCJjb2xzcGFuIiwid2lkdGgiLCJjb2xzcGFuVmFsIiwiZ2V0RmllbGRDb2xzcGFuIiwibWF4Q29sUGVyUm93IiwiY29udGFpbmVyU3R5bGUiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsIm1pbldpZHRoIiwibWVyZ2VPYmplY3RzIiwibWVyZ2VTdHlsZXMiLCJkaXNwbGF5IiwibWFyZ2luIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vRmllbGRTZXQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi8uLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBUZXh0RmllbGQgZnJvbSAnLi9UZXh0RmllbGQnO1xuaW1wb3J0IEN1cnJlbmN5RmllbGQgZnJvbSAnLi9DdXJyZW5jeUZpZWxkJztcbmltcG9ydCBBZGRyZXNzU2VhcmNoIGZyb20gJy4vQWRkcmVzc1NlYXJjaCc7XG5pbXBvcnQgTG9va3VwRmllbGQgZnJvbSAnLi9Mb29rdXBGaWVsZCc7XG5pbXBvcnQgU2VsZWN0SXRlbSBmcm9tICcuL1NlbGVjdEl0ZW0nO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9EYXRlUGlja2VyJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vVGltZVBpY2tlcic7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnLi9DaGVja2JveCc7XG5pbXBvcnQgTGFiZWxGaWVsZCBmcm9tICcuL0xhYmVsRmllbGQnO1xuaW1wb3J0IFVwbG9hZEZpZWxkIGZyb20gJy4vVXBsb2FkRmllbGQnO1xuaW1wb3J0IFRyYW5zZmVyTGlzdCBmcm9tICcuL1RyYW5zZmVyTGlzdCc7XG5pbXBvcnQgR3JpZEZpZWxkIGZyb20gJy4vR3JpZEZpZWxkJztcbmltcG9ydCBJbWFnZUVkaXRvciBmcm9tICcuL0ltYWdlRWRpdG9yJztcbmltcG9ydCBSYWRpb0dyb3VwIGZyb20gJy4vUmFkaW9Hcm91cCc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IHtpbnZva2VSZXN0LCBpbnZva2VScGN9IGZyb20gJy4uLy4uL1Jlc3RTZXJ2aWNlJztcbmltcG9ydCBTaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQgZnJvbSAnLi9TaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0ICcuL2ZpZWxkc2V0LmNzcyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgSHRtbFBhbmVsIGZyb20gJy4uL0h0bWxQYW5lbCc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlIGZyb20gJy4vQXV0b0NvbXBsZXRlJztcbmltcG9ydCBNdWx0aUZpbGVVcGxvYWRGaWVsZCBmcm9tICcuL011bHRpRmlsZVVwbG9hZEZpZWxkJztcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IFN3aXRjaCBmcm9tICcuL1N3aXRjaCc7XG5pbXBvcnQgSWNvbkZpZWxkIGZyb20gJy4vSWNvbkZpZWxkJztcbmltcG9ydCBEb2N1bWVudFRlbXBsYXRlRGVzaWduZXIgZnJvbSBcIi4uL0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lclwiO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tIFwiLi4vLi4vRHluYW1pY0pTXCI7XG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4uL2xheW91dC9MYXlvdXRcIjtcblxuY29uc3QgRmllbGRTZXQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWVsZEdyaWRdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuZ2V0RmllbGRHcmlkKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLCBwcm9wcy5jb25maWcuZmllbGRzKSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChmaWVsZCkgPT4ge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdKSkge1xuICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHt9O1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSk7XG5cbiAgICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbXBvbmVudERpc2FibGVkU3RhdGUocHJvcHMuZGlzYWJsZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbcHJvcHMuZGlzYWJsZWRdKTtcblxuICAgIGZ1bmN0aW9uIGZpcmVDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuVkFMVUVfQ0hBTkdFLCBldmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGNvbXBvbmVudEhhbmRsZS5hcGkuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlZnJlc2hDb21wb25lbnRzKCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGlmKGNvbXBvbmVudEhhbmRsZS5hcGkpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRIYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudChjb21wb25lbnQpIHtcbiAgICAgICAgaWYgKCFjb21wb25lbnQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUiBSRU5ESU5HIENPTVBPTkVOVCA6ICcgKyBjb21wb25lbnQuaWQgKyAnIC0gTk8gRklFTEQgVFlQRSBTUEVDSUZJRUQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuZGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnQuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoY29tcG9uZW50LmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnTE9PS1VQJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvb2t1cEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0ZJRUxEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRleHRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0NVUlJFTkNZJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEN1cnJlbmN5RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnUEFTU1dPUkQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9eydwYXNzd29yZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0FSRUEnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0FERFJFU1NfU0VBUkNIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEFkZHJlc3NTZWFyY2gga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpbGluZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTRUxFQ1QnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2VsZWN0SXRlbSBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdEQVRFJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERhdGVQaWNrZXIga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQVVUT19DT01QTEVURSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdXRvQ29tcGxldGUga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdDSEVDS0JPWCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDaGVja2JveCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnU1dJVENIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFN3aXRjaCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0xBQkVMJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExhYmVsRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnRklMRV9VUExPQUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VXBsb2FkRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxVcGxvYWRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXsnSU1BR0UnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdNVUxUSV9GSUxFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxNdWx0aUZpbGVVcGxvYWRGaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdUUkFOU0ZFUl9MSVNUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRyYW5zZmVyTGlzdCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0dSSUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8R3JpZEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnVElNRSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUaW1lUGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX0VESVRPUic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxJbWFnZUVkaXRvclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdSQURJT19HUk9VUCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSYWRpb0dyb3VwXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0JVVFRPTic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSFRNTF9QQU5FTCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxIdG1sUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnTEFZT1VUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExheW91dFxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdJQ09OJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEljb25GaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTSUdOQVRVUkVfVEVNUExBVEVfREVTSUdORVInOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0RPQ1VNRU5UX1RFTVBMQVRFX0RFU0lHTkVSJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERvY3VtZW50VGVtcGxhdGVEZXNpZ25lclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2PnsnVW5zdXBwb3J0ZWQgZmllbGRzZXQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC5maWVsZFR5cGUgKyAnIC0gJyArIGNvbXBvbmVudC5pZH08L2Rpdj47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgZmllbGREYXRhQmluZGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpZWxkTmFtZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lcy5wdXNoKCFVdGlscy5pc051bGwoZmllbGQuZGF0YUJpbmRpbmcpID8gZmllbGQuZGF0YUJpbmRpbmcgOiBmaWVsZC5pZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkTmFtZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXIoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IG1vZGVsKG1vZGVsKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmZvcm0oKS5tb2RlbFtmaWVsZC5pZF0gPSBtb2RlbFtmaWVsZC5pZF07XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbW9kZWxbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZSA9IHByb3BzLmZvcm0oKS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChmb3JtVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlW2ZpZWxkLmlkXSA9IGZvcm1WYWx1ZVtmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxvYWREYXRhOiAoYWN0aW9uQ29uZmlnLCBhY3Rpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlID0gIVV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcuZGF0YVNlcnZpY2UpID8gYWN0aW9uQ29uZmlnLmRhdGFTZXJ2aWNlIDpcbiAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpID8gcHJvcHMuY29uZmlnLmRhdGFTZXJ2aWNlIDogbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50VmFsdWUgPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52YWx1ZSkgPyBwcm9wcy5jb25maWcudmFsdWUgOlxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db25maWcudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGlzRXZlbnREYXRhID0gY29tcG9uZW50VmFsdWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN0YXJ0c1dpdGgoJyRldmVudC5kYXRhJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpc0VwcmVzc2lvbiA9IGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24oY29tcG9uZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsID0gaXNFdmVudERhdGEgfHwgaXNFcHJlc3Npb24gPyBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUV4cHJlc3Npb25WYWx1ZShjb21wb25lbnRWYWx1ZSwgYWN0aW9uRXZlbnQgPyBhY3Rpb25FdmVudC5kYXRhIDogbnVsbCkgOiBjb21wb25lbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEodmFsKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRBVEFfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWV0aG9kID0gc2VydmljZS50eXBlID09PSAncnBjJyA/IGludm9rZVJwYyA6IGludm9rZVJlc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiByZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ6IHByb3BzLnZpZXdJZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBzZXJ2aWNlLnR5cGUgPT09ICdycGMnID8gcmVzdWx0LmRhdGEgOiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEoZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuREFUQV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnB1Ymxpc2hFcnJvck1lc3NhZ2UoZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52aXNpYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLnZpc2libGUsIHByb3BzLmNvbmZpZy5pZCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5kaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmVmcmVzaENvbXBvbmVudHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVuZGVyKGZpZWxkU2V0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoVXRpbHMuaXNOdWxsKGZpZWxkU2V0LmZpZWxkcykgfHwgZmllbGRTZXQuZmllbGRzLmxlbmd0aCA9PT0gMCkgP1xuICAgICAgICAgICAgICAgIDxkaXY+IEVycm9yOiBBIGZpZWxkU2V0IG11c3QgaGF2ZSBmaWVsZHM8L2Rpdj5cbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRHcmlkLnJvd3MubWFwKChyb3csIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJyb3dcIiBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5maWVsZHMubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sc3BhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGZpZWxkLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChmaWVsZC5hdHRyaWJ1dGVzLmNvbHNwYW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xzcGFuVmFsID0gVXRpbHMuZ2V0RmllbGRDb2xzcGFuKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHNwYW5WYWwgPiBmaWVsZEdyaWQubWF4Q29sUGVyUm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzcGFuID0gZmllbGRHcmlkLm1heENvbFBlclJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSBjb2xzcGFuVmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBjb2xzcGFuIC8gZmllbGRHcmlkLm1heENvbFBlclJvdyAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyU3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggKyAnJSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3R5bGUgPSBmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLm1lcmdlT2JqZWN0cyhmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSwgY29udGFpbmVyU3R5bGUpIDogY29udGFpbmVyU3R5bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXsoaSArIDEpICogaW5kZXh9IGNsYXNzTmFtZT1cImNvbC0qLSogb3VpLWZvcm0taXRlbS1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb21wb25lbnQoZmllbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J2ZpZWxkU2V0V3JhcHBlcid9IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyhcbiAgICAgICAge1xuICAgICAgICAgICAgZGlzcGxheTogdmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZScsXG4gICAgICAgICAgICBtYXJnaW46ICcwJ1xuICAgICAgICB9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAge1xuICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmllbGRTZXRUaXRsZSd9PlxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXNbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGZpZWxkR3JpZCkgP1xuICAgICAgICAgICAgICAgIHJlbmRlcihwcm9wcy5jb25maWcpXG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgIDwvZGl2Pjtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBGaWVsZFNldDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFB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QUFLLENBQUNOLFVBQVUsY0FBQXFHLGlCQUFBLGVBQWhCQSxpQkFBQSxDQUFrQk8sY0FBYyxHQUN4Qy9HLGNBQUssQ0FBQ21ILFlBQVksRUFBQVYsa0JBQUEsR0FBQ2hHLEtBQUssQ0FBQ04sVUFBVSxjQUFBc0csa0JBQUEsdUJBQWhCQSxrQkFBQSxDQUFrQk0sY0FBYyxFQUFFQSxjQUFjLENBQUMsR0FBR0EsY0FBYztRQUN6RixvQkFBTzFKLE1BQUEsQ0FBQW9DLE9BQUEsQ0FBQW9ELGFBQUE7VUFBS3VELEdBQUcsRUFBRSxDQUFDRixDQUFDLEdBQUcsQ0FBQyxJQUFJSyxLQUFNO1VBQUNKLFNBQVMsRUFBQyxpQ0FBaUM7VUFBQzlDLEtBQUssRUFBRUE7UUFBTSxHQUVuRmYsZUFBZSxDQUFDN0IsS0FBSyxDQUV4QixDQUFDO01BQ1YsQ0FBQyxDQUVKLENBQUM7SUFDVixDQUFDLENBRUosQ0FBQztFQUVsQjtFQUVBLG9CQUFPcEQsTUFBQSxDQUFBb0MsT0FBQSxDQUFBb0QsYUFBQTtJQUFLc0QsU0FBUyxFQUFFLGlCQUFrQjtJQUFDOUMsS0FBSyxFQUFFckQsY0FBSyxDQUFDb0gsV0FBVyxDQUM5RDtNQUNJQyxPQUFPLEVBQUUvRyxPQUFPLEdBQUcsT0FBTyxHQUFHLE1BQU07TUFDbkNnSCxNQUFNLEVBQUU7SUFDWixDQUFDLEVBQUV6SCxLQUFLLENBQUNLLE1BQU07RUFBRSxHQUViLENBQUNGLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQ0gsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQ3JGOUMsTUFBQSxDQUFBb0MsT0FBQSxDQUFBb0QsYUFBQTtJQUFLc0QsU0FBUyxFQUFFO0VBQWdCLEdBQzNCdEcsS0FBSyxDQUFDSyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxPQUFPLENBQy9CLENBQUMsR0FFTixJQUFJLEVBR1IsQ0FBQ0gsY0FBSyxDQUFDVSxNQUFNLENBQUNaLFNBQVMsQ0FBQyxHQUNwQjhGLE1BQU0sQ0FBQy9GLEtBQUssQ0FBQ0ssTUFBTSxDQUFDLEdBRXBCLElBRVAsQ0FBQztBQUNWLENBQUMsQ0FBQztBQUFDLElBQUFxSCxRQUFBLEdBQUFDLE9BQUEsQ0FBQS9ILE9BQUEsR0FFWUMsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==