@apollo-annotation/jbrowse-plugin-apollo 0.3.10 → 0.3.12

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 (395) hide show
  1. package/dist/ApolloInternetAccount/components/AuthTypeSelector.d.ts +6 -0
  2. package/dist/ApolloInternetAccount/components/AuthTypeSelector.d.ts.map +1 -0
  3. package/dist/ApolloInternetAccount/components/LoginButtons.d.ts +5 -0
  4. package/dist/ApolloInternetAccount/components/LoginButtons.d.ts.map +1 -0
  5. package/dist/ApolloInternetAccount/components/LoginIcons.d.ts +4 -0
  6. package/dist/ApolloInternetAccount/components/LoginIcons.d.ts.map +1 -0
  7. package/dist/ApolloInternetAccount/index.d.ts +3 -0
  8. package/dist/ApolloInternetAccount/index.d.ts.map +1 -0
  9. package/dist/ApolloJobModel.d.ts +53 -0
  10. package/dist/ApolloJobModel.d.ts.map +1 -0
  11. package/dist/ApolloRefNameAliasAdapter/ApolloRefNameAliasAdapter.d.ts +12 -0
  12. package/dist/ApolloRefNameAliasAdapter/ApolloRefNameAliasAdapter.d.ts.map +1 -0
  13. package/dist/ApolloRefNameAliasAdapter/index.d.ts +3 -0
  14. package/dist/ApolloRefNameAliasAdapter/index.d.ts.map +1 -0
  15. package/dist/ApolloSequenceAdapter/ApolloSequenceAdapter.d.ts +27 -0
  16. package/dist/ApolloSequenceAdapter/ApolloSequenceAdapter.d.ts.map +1 -0
  17. package/dist/ApolloSequenceAdapter/index.d.ts +3 -0
  18. package/dist/ApolloSequenceAdapter/index.d.ts.map +1 -0
  19. package/dist/ApolloTextSearchAdapter/ApolloTextSearchAdapter.d.ts +13 -0
  20. package/dist/ApolloTextSearchAdapter/ApolloTextSearchAdapter.d.ts.map +1 -0
  21. package/dist/ApolloTextSearchAdapter/index.d.ts +3 -0
  22. package/dist/ApolloTextSearchAdapter/index.d.ts.map +1 -0
  23. package/dist/BackendDrivers/BackendDriver.d.ts +26 -0
  24. package/dist/BackendDrivers/BackendDriver.d.ts.map +1 -0
  25. package/dist/BackendDrivers/CollaborationServerDriver.d.ts +206 -0
  26. package/dist/BackendDrivers/CollaborationServerDriver.d.ts.map +1 -0
  27. package/dist/BackendDrivers/DesktopFileDriver.d.ts +160 -0
  28. package/dist/BackendDrivers/DesktopFileDriver.d.ts.map +1 -0
  29. package/dist/BackendDrivers/InMemoryFileDriver.d.ts +162 -0
  30. package/dist/BackendDrivers/InMemoryFileDriver.d.ts.map +1 -0
  31. package/dist/BackendDrivers/index.d.ts +5 -0
  32. package/dist/BackendDrivers/index.d.ts.map +1 -0
  33. package/dist/ChangeManager.d.ts +24 -0
  34. package/dist/ChangeManager.d.ts.map +1 -0
  35. package/dist/FeatureDetailsWidget/ApolloFeatureDetailsWidget.d.ts +6 -0
  36. package/dist/FeatureDetailsWidget/ApolloFeatureDetailsWidget.d.ts.map +1 -0
  37. package/dist/FeatureDetailsWidget/ApolloTranscriptDetailsWidget.d.ts +12 -0
  38. package/dist/FeatureDetailsWidget/ApolloTranscriptDetailsWidget.d.ts.map +1 -0
  39. package/dist/FeatureDetailsWidget/AttributeKey.d.ts +4 -0
  40. package/dist/FeatureDetailsWidget/AttributeKey.d.ts.map +1 -0
  41. package/dist/FeatureDetailsWidget/AttributeKeySelector.d.ts +6 -0
  42. package/dist/FeatureDetailsWidget/AttributeKeySelector.d.ts.map +1 -0
  43. package/dist/FeatureDetailsWidget/Attributes.d.ts +9 -0
  44. package/dist/FeatureDetailsWidget/Attributes.d.ts.map +1 -0
  45. package/dist/FeatureDetailsWidget/BasicInformation.d.ts +8 -0
  46. package/dist/FeatureDetailsWidget/BasicInformation.d.ts.map +1 -0
  47. package/dist/FeatureDetailsWidget/DefaultAttributeEditor.d.ts +9 -0
  48. package/dist/FeatureDetailsWidget/DefaultAttributeEditor.d.ts.map +1 -0
  49. package/dist/FeatureDetailsWidget/DefaultAttributeViewer.d.ts +5 -0
  50. package/dist/FeatureDetailsWidget/DefaultAttributeViewer.d.ts.map +1 -0
  51. package/dist/FeatureDetailsWidget/FeatureDetailsNavigation.d.ts +7 -0
  52. package/dist/FeatureDetailsWidget/FeatureDetailsNavigation.d.ts.map +1 -0
  53. package/dist/FeatureDetailsWidget/NumberTextField.d.ts +8 -0
  54. package/dist/FeatureDetailsWidget/NumberTextField.d.ts.map +1 -0
  55. package/dist/FeatureDetailsWidget/Sequence.d.ts +10 -0
  56. package/dist/FeatureDetailsWidget/Sequence.d.ts.map +1 -0
  57. package/dist/FeatureDetailsWidget/StringTextField.d.ts +8 -0
  58. package/dist/FeatureDetailsWidget/StringTextField.d.ts.map +1 -0
  59. package/dist/FeatureDetailsWidget/TranscriptSequence.d.ts +10 -0
  60. package/dist/FeatureDetailsWidget/TranscriptSequence.d.ts.map +1 -0
  61. package/dist/FeatureDetailsWidget/TranscriptWidgetEditLocation.d.ts +9 -0
  62. package/dist/FeatureDetailsWidget/TranscriptWidgetEditLocation.d.ts.map +1 -0
  63. package/dist/FeatureDetailsWidget/TranscriptWidgetSummary.d.ts +6 -0
  64. package/dist/FeatureDetailsWidget/TranscriptWidgetSummary.d.ts.map +1 -0
  65. package/dist/FeatureDetailsWidget/index.d.ts +5 -0
  66. package/dist/FeatureDetailsWidget/index.d.ts.map +1 -0
  67. package/dist/FeatureDetailsWidget/model.d.ts +123 -0
  68. package/dist/FeatureDetailsWidget/model.d.ts.map +1 -0
  69. package/dist/LinearApolloDisplay/components/CheckResultWarnings.d.ts +5 -0
  70. package/dist/LinearApolloDisplay/components/CheckResultWarnings.d.ts.map +1 -0
  71. package/dist/LinearApolloDisplay/components/LinearApolloDisplay.d.ts +7 -0
  72. package/dist/LinearApolloDisplay/components/LinearApolloDisplay.d.ts.map +1 -0
  73. package/dist/LinearApolloDisplay/components/index.d.ts +2 -0
  74. package/dist/LinearApolloDisplay/components/index.d.ts.map +1 -0
  75. package/dist/LinearApolloDisplay/glyphs/BoxGlyph.d.ts +4 -0
  76. package/dist/LinearApolloDisplay/glyphs/BoxGlyph.d.ts.map +1 -0
  77. package/dist/LinearApolloDisplay/glyphs/GeneGlyph.d.ts +3 -0
  78. package/dist/LinearApolloDisplay/glyphs/GeneGlyph.d.ts.map +1 -0
  79. package/dist/LinearApolloDisplay/glyphs/GenericChildGlyph.d.ts +3 -0
  80. package/dist/LinearApolloDisplay/glyphs/GenericChildGlyph.d.ts.map +1 -0
  81. package/dist/LinearApolloDisplay/glyphs/Glyph.d.ts +26 -0
  82. package/dist/LinearApolloDisplay/glyphs/Glyph.d.ts.map +1 -0
  83. package/dist/LinearApolloDisplay/glyphs/index.d.ts +4 -0
  84. package/dist/LinearApolloDisplay/glyphs/index.d.ts.map +1 -0
  85. package/dist/LinearApolloDisplay/glyphs/util.d.ts +12 -0
  86. package/dist/LinearApolloDisplay/glyphs/util.d.ts.map +1 -0
  87. package/dist/LinearApolloDisplay/index.d.ts +3 -0
  88. package/dist/LinearApolloDisplay/index.d.ts.map +1 -0
  89. package/dist/LinearApolloDisplay/stateModel/base.d.ts +254 -0
  90. package/dist/LinearApolloDisplay/stateModel/base.d.ts.map +1 -0
  91. package/dist/LinearApolloDisplay/stateModel/index.d.ts +349 -0
  92. package/dist/LinearApolloDisplay/stateModel/index.d.ts.map +1 -0
  93. package/dist/LinearApolloDisplay/stateModel/layouts.d.ts +273 -0
  94. package/dist/LinearApolloDisplay/stateModel/layouts.d.ts.map +1 -0
  95. package/dist/LinearApolloDisplay/stateModel/mouseEvents.d.ts +656 -0
  96. package/dist/LinearApolloDisplay/stateModel/mouseEvents.d.ts.map +1 -0
  97. package/dist/LinearApolloDisplay/stateModel/rendering.d.ts +300 -0
  98. package/dist/LinearApolloDisplay/stateModel/rendering.d.ts.map +1 -0
  99. package/dist/LinearApolloDisplay/types.d.ts +2 -0
  100. package/dist/LinearApolloDisplay/types.d.ts.map +1 -0
  101. package/dist/LinearApolloReferenceSequenceDisplay/components/LinearApolloReferenceSequenceDisplay.d.ts +7 -0
  102. package/dist/LinearApolloReferenceSequenceDisplay/components/LinearApolloReferenceSequenceDisplay.d.ts.map +1 -0
  103. package/dist/LinearApolloReferenceSequenceDisplay/components/index.d.ts +2 -0
  104. package/dist/LinearApolloReferenceSequenceDisplay/components/index.d.ts.map +1 -0
  105. package/dist/LinearApolloReferenceSequenceDisplay/drawSequenceOverlay.d.ts +6 -0
  106. package/dist/LinearApolloReferenceSequenceDisplay/drawSequenceOverlay.d.ts.map +1 -0
  107. package/dist/LinearApolloReferenceSequenceDisplay/drawSequenceTrack.d.ts +5 -0
  108. package/dist/LinearApolloReferenceSequenceDisplay/drawSequenceTrack.d.ts.map +1 -0
  109. package/dist/LinearApolloReferenceSequenceDisplay/index.d.ts +4 -0
  110. package/dist/LinearApolloReferenceSequenceDisplay/index.d.ts.map +1 -0
  111. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/base.d.ts +236 -0
  112. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/base.d.ts.map +1 -0
  113. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/index.d.ts +245 -0
  114. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/index.d.ts.map +1 -0
  115. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/rendering.d.ts +246 -0
  116. package/dist/LinearApolloReferenceSequenceDisplay/stateModel/rendering.d.ts.map +1 -0
  117. package/dist/LinearApolloSixFrameDisplay/components/LinearApolloSixFrameDisplay.d.ts +7 -0
  118. package/dist/LinearApolloSixFrameDisplay/components/LinearApolloSixFrameDisplay.d.ts.map +1 -0
  119. package/dist/LinearApolloSixFrameDisplay/components/TrackLines.d.ts +8 -0
  120. package/dist/LinearApolloSixFrameDisplay/components/TrackLines.d.ts.map +1 -0
  121. package/dist/LinearApolloSixFrameDisplay/components/index.d.ts +3 -0
  122. package/dist/LinearApolloSixFrameDisplay/components/index.d.ts.map +1 -0
  123. package/dist/LinearApolloSixFrameDisplay/glyphs/GeneGlyph.d.ts +3 -0
  124. package/dist/LinearApolloSixFrameDisplay/glyphs/GeneGlyph.d.ts.map +1 -0
  125. package/dist/LinearApolloSixFrameDisplay/glyphs/Glyph.d.ts +20 -0
  126. package/dist/LinearApolloSixFrameDisplay/glyphs/Glyph.d.ts.map +1 -0
  127. package/dist/LinearApolloSixFrameDisplay/glyphs/index.d.ts +2 -0
  128. package/dist/LinearApolloSixFrameDisplay/glyphs/index.d.ts.map +1 -0
  129. package/dist/LinearApolloSixFrameDisplay/index.d.ts +3 -0
  130. package/dist/LinearApolloSixFrameDisplay/index.d.ts.map +1 -0
  131. package/dist/LinearApolloSixFrameDisplay/stateModel/base.d.ts +257 -0
  132. package/dist/LinearApolloSixFrameDisplay/stateModel/base.d.ts.map +1 -0
  133. package/dist/LinearApolloSixFrameDisplay/stateModel/index.d.ts +355 -0
  134. package/dist/LinearApolloSixFrameDisplay/stateModel/index.d.ts.map +1 -0
  135. package/dist/LinearApolloSixFrameDisplay/stateModel/layouts.d.ts +283 -0
  136. package/dist/LinearApolloSixFrameDisplay/stateModel/layouts.d.ts.map +1 -0
  137. package/dist/LinearApolloSixFrameDisplay/stateModel/mouseEvents.d.ts +668 -0
  138. package/dist/LinearApolloSixFrameDisplay/stateModel/mouseEvents.d.ts.map +1 -0
  139. package/dist/LinearApolloSixFrameDisplay/stateModel/rendering.d.ts +306 -0
  140. package/dist/LinearApolloSixFrameDisplay/stateModel/rendering.d.ts.map +1 -0
  141. package/dist/LinearApolloSixFrameDisplay/types.d.ts +2 -0
  142. package/dist/LinearApolloSixFrameDisplay/types.d.ts.map +1 -0
  143. package/dist/OntologyManager/OntologyStore/fulltext-stopwords.d.ts +8 -0
  144. package/dist/OntologyManager/OntologyStore/fulltext-stopwords.d.ts.map +1 -0
  145. package/dist/OntologyManager/OntologyStore/fulltext.d.ts +27 -0
  146. package/dist/OntologyManager/OntologyStore/fulltext.d.ts.map +1 -0
  147. package/dist/OntologyManager/OntologyStore/index.d.ts +93 -0
  148. package/dist/OntologyManager/OntologyStore/index.d.ts.map +1 -0
  149. package/dist/OntologyManager/OntologyStore/indexeddb-schema.d.ts +71 -0
  150. package/dist/OntologyManager/OntologyStore/indexeddb-schema.d.ts.map +1 -0
  151. package/dist/OntologyManager/OntologyStore/indexeddb-storage.d.ts +11 -0
  152. package/dist/OntologyManager/OntologyStore/indexeddb-storage.d.ts.map +1 -0
  153. package/dist/OntologyManager/OntologyStore/obo-graph-json-schema.d.ts +107 -0
  154. package/dist/OntologyManager/OntologyStore/obo-graph-json-schema.d.ts.map +1 -0
  155. package/dist/OntologyManager/OntologyStore/prefixes.d.ts +20 -0
  156. package/dist/OntologyManager/OntologyStore/prefixes.d.ts.map +1 -0
  157. package/dist/OntologyManager/util.d.ts +4 -0
  158. package/dist/OntologyManager/util.d.ts.map +1 -0
  159. package/dist/TabularEditor/HybridGrid/ChangeHandling.d.ts +6 -0
  160. package/dist/TabularEditor/HybridGrid/ChangeHandling.d.ts.map +1 -0
  161. package/dist/TabularEditor/HybridGrid/Feature.d.ts +13 -0
  162. package/dist/TabularEditor/HybridGrid/Feature.d.ts.map +1 -0
  163. package/dist/TabularEditor/HybridGrid/FeatureAttributes.d.ts +6 -0
  164. package/dist/TabularEditor/HybridGrid/FeatureAttributes.d.ts.map +1 -0
  165. package/dist/TabularEditor/HybridGrid/Highlight.d.ts +6 -0
  166. package/dist/TabularEditor/HybridGrid/Highlight.d.ts.map +1 -0
  167. package/dist/TabularEditor/HybridGrid/HybridGrid.d.ts +14 -0
  168. package/dist/TabularEditor/HybridGrid/HybridGrid.d.ts.map +1 -0
  169. package/dist/TabularEditor/HybridGrid/NumberCell.d.ts +8 -0
  170. package/dist/TabularEditor/HybridGrid/NumberCell.d.ts.map +1 -0
  171. package/dist/TabularEditor/HybridGrid/ToolBar.d.ts +5 -0
  172. package/dist/TabularEditor/HybridGrid/ToolBar.d.ts.map +1 -0
  173. package/dist/TabularEditor/HybridGrid/featureContextMenuItems.d.ts +11 -0
  174. package/dist/TabularEditor/HybridGrid/featureContextMenuItems.d.ts.map +1 -0
  175. package/dist/TabularEditor/HybridGrid/index.d.ts +2 -0
  176. package/dist/TabularEditor/HybridGrid/index.d.ts.map +1 -0
  177. package/dist/TabularEditor/TabularEditorPane.d.ts +5 -0
  178. package/dist/TabularEditor/TabularEditorPane.d.ts.map +1 -0
  179. package/dist/TabularEditor/index.d.ts +3 -0
  180. package/dist/TabularEditor/index.d.ts.map +1 -0
  181. package/dist/TabularEditor/model.d.ts +17 -0
  182. package/dist/TabularEditor/model.d.ts.map +1 -0
  183. package/dist/TabularEditor/types.d.ts +4 -0
  184. package/dist/TabularEditor/types.d.ts.map +1 -0
  185. package/dist/components/AddAssembly.d.ts +10 -0
  186. package/dist/components/AddAssembly.d.ts.map +1 -0
  187. package/dist/components/AddAssemblyAliases.d.ts +10 -0
  188. package/dist/components/AddAssemblyAliases.d.ts.map +1 -0
  189. package/dist/components/AddChildFeature.d.ts +13 -0
  190. package/dist/components/AddChildFeature.d.ts.map +1 -0
  191. package/dist/components/AddFeature.d.ts +12 -0
  192. package/dist/components/AddFeature.d.ts.map +1 -0
  193. package/dist/components/AddRefSeqAliases.d.ts +10 -0
  194. package/dist/components/AddRefSeqAliases.d.ts.map +1 -0
  195. package/dist/components/CopyFeature.d.ts +13 -0
  196. package/dist/components/CopyFeature.d.ts.map +1 -0
  197. package/dist/components/CreateApolloAnnotation.d.ts +20 -0
  198. package/dist/components/CreateApolloAnnotation.d.ts.map +1 -0
  199. package/dist/components/DeleteAssembly.d.ts +10 -0
  200. package/dist/components/DeleteAssembly.d.ts.map +1 -0
  201. package/dist/components/DeleteFeature.d.ts +15 -0
  202. package/dist/components/DeleteFeature.d.ts.map +1 -0
  203. package/dist/components/Dialog.d.ts +7 -0
  204. package/dist/components/Dialog.d.ts.map +1 -0
  205. package/dist/components/DownloadGFF3.d.ts +8 -0
  206. package/dist/components/DownloadGFF3.d.ts.map +1 -0
  207. package/dist/components/DuplicateTranscript.d.ts +15 -0
  208. package/dist/components/DuplicateTranscript.d.ts.map +1 -0
  209. package/dist/components/EditZoomThresholdDialog.d.ts +11 -0
  210. package/dist/components/EditZoomThresholdDialog.d.ts.map +1 -0
  211. package/dist/components/FilterFeatures.d.ts +10 -0
  212. package/dist/components/FilterFeatures.d.ts.map +1 -0
  213. package/dist/components/FilterTranscripts.d.ts +10 -0
  214. package/dist/components/FilterTranscripts.d.ts.map +1 -0
  215. package/dist/components/ImportFeatures.d.ts +10 -0
  216. package/dist/components/ImportFeatures.d.ts.map +1 -0
  217. package/dist/components/LogOut.d.ts +8 -0
  218. package/dist/components/LogOut.d.ts.map +1 -0
  219. package/dist/components/ManageChecks.d.ts +8 -0
  220. package/dist/components/ManageChecks.d.ts.map +1 -0
  221. package/dist/components/ManageUsers.d.ts +10 -0
  222. package/dist/components/ManageUsers.d.ts.map +1 -0
  223. package/dist/components/MergeExons.d.ts +15 -0
  224. package/dist/components/MergeExons.d.ts.map +1 -0
  225. package/dist/components/MergeTranscripts.d.ts +15 -0
  226. package/dist/components/MergeTranscripts.d.ts.map +1 -0
  227. package/dist/components/OntologyTermAutocomplete.d.ts +25 -0
  228. package/dist/components/OntologyTermAutocomplete.d.ts.map +1 -0
  229. package/dist/components/OntologyTermMultiSelect.d.ts +12 -0
  230. package/dist/components/OntologyTermMultiSelect.d.ts.map +1 -0
  231. package/dist/components/OpenLocalFile.d.ts +15 -0
  232. package/dist/components/OpenLocalFile.d.ts.map +1 -0
  233. package/dist/components/SplitExon.d.ts +15 -0
  234. package/dist/components/SplitExon.d.ts.map +1 -0
  235. package/dist/components/ViewChangeLog.d.ts +8 -0
  236. package/dist/components/ViewChangeLog.d.ts.map +1 -0
  237. package/dist/components/ViewCheckResults.d.ts +8 -0
  238. package/dist/components/ViewCheckResults.d.ts.map +1 -0
  239. package/dist/components/index.d.ts +21 -0
  240. package/dist/components/index.d.ts.map +1 -0
  241. package/dist/extensions/annotationFromJBrowseFeature.d.ts +6 -0
  242. package/dist/extensions/annotationFromJBrowseFeature.d.ts.map +1 -0
  243. package/dist/extensions/annotationFromPileup.d.ts +3 -0
  244. package/dist/extensions/annotationFromPileup.d.ts.map +1 -0
  245. package/dist/extensions/index.d.ts +3 -0
  246. package/dist/extensions/index.d.ts.map +1 -0
  247. package/dist/index.esm.js +843 -1330
  248. package/dist/index.esm.js.map +1 -1
  249. package/dist/jbrowse-plugin-apollo.cjs.development.js +919 -1455
  250. package/dist/jbrowse-plugin-apollo.cjs.development.js.map +1 -1
  251. package/dist/jbrowse-plugin-apollo.cjs.production.min.js +1 -1
  252. package/dist/jbrowse-plugin-apollo.cjs.production.min.js.map +1 -1
  253. package/dist/jbrowse-plugin-apollo.umd.development.js +46351 -63619
  254. package/dist/jbrowse-plugin-apollo.umd.development.js.map +1 -1
  255. package/dist/jbrowse-plugin-apollo.umd.production.min.js +1 -1
  256. package/dist/jbrowse-plugin-apollo.umd.production.min.js.map +1 -1
  257. package/dist/makeDisplayComponent.d.ts +9 -0
  258. package/dist/makeDisplayComponent.d.ts.map +1 -0
  259. package/dist/menus/index.d.ts +2 -0
  260. package/dist/menus/index.d.ts.map +1 -0
  261. package/dist/menus/topLevelMenu.d.ts +3 -0
  262. package/dist/menus/topLevelMenu.d.ts.map +1 -0
  263. package/dist/menus/topLevelMenuAdmin.d.ts +3 -0
  264. package/dist/menus/topLevelMenuAdmin.d.ts.map +1 -0
  265. package/dist/session/index.d.ts +2 -0
  266. package/dist/session/index.d.ts.map +1 -0
  267. package/dist/types.d.ts +10 -0
  268. package/dist/types.d.ts.map +1 -0
  269. package/dist/util/annotationFeatureUtils.d.ts +7 -0
  270. package/dist/util/annotationFeatureUtils.d.ts.map +1 -0
  271. package/dist/util/copyToClipboard.d.ts +2 -0
  272. package/dist/util/copyToClipboard.d.ts.map +1 -0
  273. package/dist/util/glyphUtils.d.ts +31 -0
  274. package/dist/util/glyphUtils.d.ts.map +1 -0
  275. package/dist/util/index.d.ts +10 -0
  276. package/dist/util/index.d.ts.map +1 -0
  277. package/dist/util/loadAssemblyIntoClient.d.ts +5 -0
  278. package/dist/util/loadAssemblyIntoClient.d.ts.map +1 -0
  279. package/dist/util/mouseEventsUtils.d.ts +25 -0
  280. package/dist/util/mouseEventsUtils.d.ts.map +1 -0
  281. package/package.json +48 -25
  282. package/src/ApolloInternetAccount/components/AuthTypeSelector.tsx +7 -2
  283. package/src/ApolloInternetAccount/components/LoginButtons.tsx +1 -1
  284. package/src/ApolloInternetAccount/configSchema.ts +1 -1
  285. package/src/ApolloInternetAccount/model.ts +13 -6
  286. package/src/ApolloJobModel.ts +3 -3
  287. package/src/ApolloRefNameAliasAdapter/ApolloRefNameAliasAdapter.ts +2 -2
  288. package/src/ApolloSequenceAdapter/ApolloSequenceAdapter.ts +2 -2
  289. package/src/ApolloTextSearchAdapter/ApolloTextSearchAdapter.ts +28 -5
  290. package/src/BackendDrivers/BackendDriver.ts +8 -8
  291. package/src/BackendDrivers/CollaborationServerDriver.ts +6 -6
  292. package/src/BackendDrivers/DesktopFileDriver.ts +4 -4
  293. package/src/BackendDrivers/InMemoryFileDriver.ts +5 -8
  294. package/src/ChangeManager.ts +8 -3
  295. package/src/FeatureDetailsWidget/ApolloFeatureDetailsWidget.tsx +3 -3
  296. package/src/FeatureDetailsWidget/ApolloTranscriptDetailsWidget.tsx +7 -7
  297. package/src/FeatureDetailsWidget/AttributeKey.tsx +1 -1
  298. package/src/FeatureDetailsWidget/AttributeKeySelector.tsx +1 -1
  299. package/src/FeatureDetailsWidget/Attributes.tsx +4 -4
  300. package/src/FeatureDetailsWidget/BasicInformation.tsx +3 -3
  301. package/src/FeatureDetailsWidget/DefaultAttributeEditor.tsx +1 -1
  302. package/src/FeatureDetailsWidget/FeatureDetailsNavigation.tsx +2 -2
  303. package/src/FeatureDetailsWidget/Sequence.tsx +3 -3
  304. package/src/FeatureDetailsWidget/TranscriptSequence.tsx +2 -2
  305. package/src/FeatureDetailsWidget/TranscriptWidgetEditLocation.tsx +3 -6
  306. package/src/FeatureDetailsWidget/TranscriptWidgetSummary.tsx +1 -1
  307. package/src/FeatureDetailsWidget/model.ts +3 -3
  308. package/src/LinearApolloDisplay/components/CheckResultWarnings.tsx +2 -2
  309. package/src/LinearApolloDisplay/components/LinearApolloDisplay.tsx +6 -4
  310. package/src/LinearApolloDisplay/glyphs/BoxGlyph.ts +7 -7
  311. package/src/LinearApolloDisplay/glyphs/GeneGlyph.ts +56 -30
  312. package/src/LinearApolloDisplay/glyphs/GenericChildGlyph.ts +6 -6
  313. package/src/LinearApolloDisplay/glyphs/Glyph.ts +7 -7
  314. package/src/LinearApolloDisplay/glyphs/util.ts +2 -2
  315. package/src/LinearApolloDisplay/stateModel/base.ts +17 -8
  316. package/src/LinearApolloDisplay/stateModel/index.ts +2 -2
  317. package/src/LinearApolloDisplay/stateModel/layouts.ts +4 -4
  318. package/src/LinearApolloDisplay/stateModel/mouseEvents.ts +6 -6
  319. package/src/LinearApolloDisplay/stateModel/rendering.ts +3 -3
  320. package/src/LinearApolloReferenceSequenceDisplay/components/LinearApolloReferenceSequenceDisplay.tsx +4 -2
  321. package/src/LinearApolloReferenceSequenceDisplay/drawSequenceOverlay.ts +4 -4
  322. package/src/LinearApolloReferenceSequenceDisplay/drawSequenceTrack.ts +3 -3
  323. package/src/LinearApolloReferenceSequenceDisplay/stateModel/base.ts +11 -8
  324. package/src/LinearApolloReferenceSequenceDisplay/stateModel/index.ts +2 -2
  325. package/src/LinearApolloReferenceSequenceDisplay/stateModel/rendering.ts +2 -2
  326. package/src/LinearApolloSixFrameDisplay/components/LinearApolloSixFrameDisplay.tsx +17 -9
  327. package/src/LinearApolloSixFrameDisplay/components/TrackLines.tsx +1 -1
  328. package/src/LinearApolloSixFrameDisplay/glyphs/GeneGlyph.ts +36 -23
  329. package/src/LinearApolloSixFrameDisplay/glyphs/Glyph.ts +6 -6
  330. package/src/LinearApolloSixFrameDisplay/stateModel/base.ts +17 -8
  331. package/src/LinearApolloSixFrameDisplay/stateModel/index.ts +2 -2
  332. package/src/LinearApolloSixFrameDisplay/stateModel/layouts.ts +12 -8
  333. package/src/LinearApolloSixFrameDisplay/stateModel/mouseEvents.ts +11 -10
  334. package/src/LinearApolloSixFrameDisplay/stateModel/rendering.ts +3 -3
  335. package/src/OntologyManager/OntologyStore/fulltext.test.ts +1 -1
  336. package/src/OntologyManager/OntologyStore/fulltext.ts +11 -4
  337. package/src/OntologyManager/OntologyStore/index.test.ts +3 -0
  338. package/src/OntologyManager/OntologyStore/indexeddb-schema.ts +6 -6
  339. package/src/OntologyManager/OntologyStore/indexeddb-storage.ts +2 -1
  340. package/src/OntologyManager/index.ts +4 -4
  341. package/src/OntologyManager/util.ts +1 -1
  342. package/src/TabularEditor/HybridGrid/ChangeHandling.ts +2 -2
  343. package/src/TabularEditor/HybridGrid/Feature.tsx +6 -6
  344. package/src/TabularEditor/HybridGrid/FeatureAttributes.tsx +2 -2
  345. package/src/TabularEditor/HybridGrid/Highlight.tsx +1 -1
  346. package/src/TabularEditor/HybridGrid/HybridGrid.tsx +2 -2
  347. package/src/TabularEditor/HybridGrid/NumberCell.tsx +1 -1
  348. package/src/TabularEditor/HybridGrid/ToolBar.tsx +3 -2
  349. package/src/TabularEditor/HybridGrid/featureContextMenuItems.ts +26 -4
  350. package/src/TabularEditor/TabularEditorPane.tsx +1 -1
  351. package/src/TabularEditor/model.ts +2 -2
  352. package/src/TabularEditor/types.ts +2 -2
  353. package/src/components/AddAssembly.tsx +61 -42
  354. package/src/components/AddAssemblyAliases.tsx +5 -5
  355. package/src/components/AddChildFeature.tsx +3 -3
  356. package/src/components/AddFeature.tsx +4 -4
  357. package/src/components/AddRefSeqAliases.tsx +7 -7
  358. package/src/components/CopyFeature.tsx +8 -8
  359. package/src/components/CreateApolloAnnotation.tsx +5 -5
  360. package/src/components/DeleteAssembly.tsx +8 -8
  361. package/src/components/DeleteFeature.tsx +4 -4
  362. package/src/components/Dialog.tsx +1 -1
  363. package/src/components/DownloadGFF3.tsx +8 -8
  364. package/src/components/DuplicateTranscript.tsx +132 -0
  365. package/src/components/FilterFeatures.tsx +1 -1
  366. package/src/components/FilterTranscripts.tsx +1 -1
  367. package/src/components/ImportFeatures.tsx +51 -33
  368. package/src/components/LogOut.tsx +4 -4
  369. package/src/components/ManageChecks.tsx +8 -8
  370. package/src/components/ManageUsers.tsx +18 -26
  371. package/src/components/MergeExons.tsx +4 -4
  372. package/src/components/MergeTranscripts.tsx +4 -4
  373. package/src/components/OntologyTermAutocomplete.tsx +14 -4
  374. package/src/components/OntologyTermMultiSelect.tsx +12 -5
  375. package/src/components/OpenLocalFile.tsx +2 -2
  376. package/src/components/SplitExon.tsx +6 -6
  377. package/src/components/ViewChangeLog.tsx +8 -8
  378. package/src/components/ViewCheckResults.tsx +4 -4
  379. package/src/components/index.ts +1 -0
  380. package/src/config.ts +1 -1
  381. package/src/extensions/annotationFromJBrowseFeature.ts +29 -24
  382. package/src/extensions/annotationFromPileup.ts +8 -6
  383. package/src/index.ts +25 -1
  384. package/src/makeDisplayComponent.tsx +8 -5
  385. package/src/menus/topLevelMenu.ts +4 -4
  386. package/src/menus/topLevelMenuAdmin.ts +4 -4
  387. package/src/session/ClientDataStore.ts +20 -15
  388. package/src/session/session.ts +30 -19
  389. package/src/types.ts +10 -4
  390. package/src/util/annotationFeatureUtils.ts +1 -1
  391. package/src/util/displayUtils.ts +3 -3
  392. package/src/util/glyphUtils.ts +10 -10
  393. package/src/util/index.ts +4 -4
  394. package/src/util/loadAssemblyIntoClient.ts +4 -4
  395. package/src/util/mouseEventsUtils.ts +2 -2
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jbrowse/core/Plugin"),require("@jbrowse/core/util"),require("mobx-state-tree"),require("@jbrowse/core/configuration"),require("@jbrowse/core/pluggableElementTypes"),require("react/jsx-runtime"),require("@mui/material/utils"),require("@mui/material"),require("mobx"),require("react"),require("tss-react/mui"),require("@mui/x-data-grid"),require("@jbrowse/core/ui"),require("mobx-react"),require("@jbrowse/core/util/types/mst"),require("@jbrowse/core/util/io"),require("@mui/material/Checkbox"),require("@mui/material/FormControlLabel"),require("@mui/material/LinearProgress"),require("@jbrowse/core/pluggableElementTypes/AdapterType"),require("@jbrowse/core/data_adapters/BaseAdapter"),require("@jbrowse/core/util/rxjs"),require("@jbrowse/core/util/tracks")):"function"==typeof define&&define.amd?define(["exports","@jbrowse/core/Plugin","@jbrowse/core/util","mobx-state-tree","@jbrowse/core/configuration","@jbrowse/core/pluggableElementTypes","react/jsx-runtime","@mui/material/utils","@mui/material","mobx","react","tss-react/mui","@mui/x-data-grid","@jbrowse/core/ui","mobx-react","@jbrowse/core/util/types/mst","@jbrowse/core/util/io","@mui/material/Checkbox","@mui/material/FormControlLabel","@mui/material/LinearProgress","@jbrowse/core/pluggableElementTypes/AdapterType","@jbrowse/core/data_adapters/BaseAdapter","@jbrowse/core/util/rxjs","@jbrowse/core/util/tracks"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBrowsePluginApollo={},e.JBrowseExports["@jbrowse/core/Plugin"],e.JBrowseExports["@jbrowse/core/util"],e.JBrowseExports["mobx-state-tree"],e.JBrowseExports["@jbrowse/core/configuration"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes"],e.JBrowseExports["react/jsx-runtime"],e.JBrowseExports["@mui/material/utils"],e.JBrowseExports["@mui/material"],e.JBrowseExports.mobx,e.JBrowseExports.react,e.JBrowseExports["tss-react/mui"],e.JBrowseExports["@mui/x-data-grid"],e.JBrowseExports["@jbrowse/core/ui"],e.JBrowseExports["mobx-react"],e.JBrowseExports["@jbrowse/core/util/types/mst"],e.JBrowseExports["@jbrowse/core/util/io"],e.JBrowseExports["@mui/material/Checkbox"],e.JBrowseExports["@mui/material/FormControlLabel"],e.JBrowseExports["@mui/material/LinearProgress"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes/AdapterType"],e.JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],e.JBrowseExports["@jbrowse/core/util/rxjs"],e.JBrowseExports["@jbrowse/core/util/tracks"])}(this,(function(e,t,n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S){"use strict";function E(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function k(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,t}var C=E(t),A=E(n),O=E(r),T=E(u),N=k(u),I=E(y),R=E(v),F=E(b),P=E(_),M="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function D(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t}function j(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var L={};function q(e){var t,n;function r(t,n){try{var o=e[t](n),i=o.value,s=i instanceof B;Promise.resolve(s?i.v:i).then((function(n){if(s){var l="return"===t?"return":"next";if(!i.k||n.done)return r(l,n);n=e[l](n).value}a(o.done?"return":"normal",n)}),(function(e){r("throw",e)}))}catch(e){a("throw",e)}}function a(e,a){switch(e){case"return":t.resolve({value:a,done:!0});break;case"throw":t.reject(a);break;default:t.resolve({value:a,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,a){return new Promise((function(o,i){var s={key:e,arg:a,resolve:o,reject:i,next:null};n?n=n.next=s:(t=n=s,r(e,a))}))},"function"!=typeof e.return&&(this.return=void 0)}function B(e,t){this.v=e,this.k=t}function U(e){var t,n,r,a=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);a--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new z(t.call(e));n="@@asyncIterator",r="@@iterator"}throw new TypeError("Object is not async iterable")}function z(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return z=function(e){this.s=e,this.n=e.next},z.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new z(e)}function G(e){return new B(e,0)}function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?H(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function V(){V=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=Object.create((t&&t.prototype instanceof y?t:y).prototype),i=new N(r||[]);return a(o,"_invoke",{value:C(e,n,i)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var f="suspendedStart",p="suspendedYield",h="executing",m="completed",g={};function y(){}function v(){}function b(){}var _={};c(_,i,(function(){return this}));var w=Object.getPrototypeOf,x=w&&w(w(I([])));x&&x!==n&&r.call(x,i)&&(_=x);var S=b.prototype=y.prototype=Object.create(_);function E(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(a,o,i,s){var l=d(e[a],e,o);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(u).then((function(e){c.value=e,i(c)}),(function(e){return n("throw",e,i,s)}))}s(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function C(t,n,r){var a=f;return function(o,i){if(a===h)throw new Error("Generator is already running");if(a===m){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var s=r.delegate;if(s){var l=A(s,r);if(l){if(l===g)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===f)throw a=m,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=h;var c=d(t,n,r);if("normal"===c.type){if(a=r.done?m:p,c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(a=m,r.method="throw",r.arg=c.arg)}}}function A(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,A(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,g;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function N(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return v.prototype=b,a(S,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:v,configurable:!0}),v.displayName=c(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,c(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},E(k.prototype),c(k.prototype,s,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new k(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},E(S),c(S,l,"Generator"),c(S,i,(function(){return this})),c(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,N.prototype={constructor:N,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return s.type="throw",s.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(l&&c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;T(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}function W(e){return W="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},W(e)}function J(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Y(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){J(o,r,a,i,s,"next",e)}function s(e){J(o,r,a,i,s,"throw",e)}i(void 0)}))}}function K(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Z(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,be(r.key),r)}}function X(e,t,n){return t&&Z(e.prototype,t),n&&Z(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Q(e,t,n){return(t=be(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ee(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ne(e,t)}function te(e){return te=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},te(e)}function ne(e,t){return ne=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ne(e,t)}function re(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function ae(e,t,n){return ae=re()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&ne(a,n.prototype),a},ae.apply(null,arguments)}function oe(e){var t="function"==typeof Map?new Map:void 0;return oe=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return ae(e,arguments,te(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),ne(n,e)},oe(e)}function ie(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function se(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function le(e){var t=re();return function(){var n,r=te(e);if(t){var a=te(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return se(e)}(this,n)}}function ce(){return ce="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=te(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(arguments.length<3?e:n):a.value}},ce.apply(this,arguments)}function ue(e,t){return pe(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw a}}return s}}(e,t)||me(e,t)||ye()}function de(e){return pe(e)||he(e)||me(e)||ye()}function fe(e){return function(e){if(Array.isArray(e))return ge(e)}(e)||he(e)||me(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pe(e){if(Array.isArray(e))return e}function he(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function me(e,t){if(e){if("string"==typeof e)return ge(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ge(e,t):void 0}}function ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ye(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ve(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=me(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw o}}}}function be(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}q.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},q.prototype.next=function(e){return this._invoke("next",e)},q.prototype.throw=function(e){return this._invoke("throw",e)},q.prototype.return=function(e){return this._invoke("return",e)};var _e=function(e,t){return _e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},_e(e,t)};function we(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}_e(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var xe=function(){return xe=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},xe.apply(this,arguments)};function Se(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function Ee(e,t,n,r){var a,o=arguments.length,i=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":W(Reflect))&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(i=(o<3?a(i):o>3?a(t,n,i):a(t,n))||i);return o>3&&i&&Object.defineProperty(t,n,i),i}function ke(e,t){return function(n,r){t(n,r,e)}}function Ce(e,t){if("object"===("undefined"==typeof Reflect?"undefined":W(Reflect))&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function Ae(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){e.done?a(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(i,s)}l((r=r.apply(e,t||[])).next())}))}function Oe(e,t){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(a=2&s[0]?r.return:s[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,s[1])).done)return a;switch(r=0,a&&(s=[2&s[0],a.value]),s[0]){case 0:case 1:a=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((a=(a=i.trys).length>0&&a[a.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!a||s[1]>a[0]&&s[1]<a[3])){i.label=s[1];break}if(6===s[0]&&i.label<a[1]){i.label=a[1],a=s;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(s);break}a[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],r=0}finally{n=a=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}var Te=Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function Ne(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||Te(t,e,n)}function Ie(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Re(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i}function Fe(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Re(arguments[t]));return e}function Pe(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),a=0;for(t=0;t<n;t++)for(var o=arguments[t],i=0,s=o.length;i<s;i++,a++)r[a]=o[i];return r}function Me(e,t,n){if(n||2===arguments.length)for(var r,a=0,o=t.length;a<o;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}function De(e){return this instanceof De?(this.v=e,this):new De(e)}function je(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||s(e,t)}))})}function s(e,t){try{!function(e){e.value instanceof De?Promise.resolve(e.value.v).then(l,c):u(o[0][2],e)}(a[e](t))}catch(e){u(o[0][3],e)}}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),o.shift(),o.length&&s(o[0][0],o[0][1])}}function Le(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(n=!n)?{value:De(e[r](t)),done:!1}:a?a(t):t}:a}}function qe(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=Ie(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){!function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}(r,a,(t=e[n](t)).done,t.value)}))}}}function Be(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var Ue=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function ze(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&Te(t,e,n);return Ue(t,e),t}function Ge(e){return e&&e.__esModule?e:{default:e}}function He(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function $e(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}function Ve(e,t){if(null===t||"object"!==W(t)&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function We(e,t,n){if(null!=t){if("object"!==W(t)&&"function"!=typeof t)throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if("function"!=typeof r)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var Je="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function Ye(e){function t(t){e.error=e.hasError?new Je(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var r=e.stack.pop();try{var a=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(a).then(n,(function(e){return t(e),n()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()}var Ke={__proto__:null,__extends:we,get __assign(){return xe},__rest:Se,__decorate:Ee,__param:ke,__esDecorate:function(e,t,n,r,a,o){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=r.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var h={};for(var m in r)h[m]="access"===m?{}:r[m];for(var m in r.access)h.access[m]=r.access[m];h.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var g=(0,n[p])("accessor"===l?{get:d.get,set:d.set}:d[c],h);if("accessor"===l){if(void 0===g)continue;if(null===g||"object"!==W(g))throw new TypeError("Object expected");(s=i(g.get))&&(d.get=s),(s=i(g.set))&&(d.set=s),(s=i(g.init))&&a.unshift(s)}else(s=i(g))&&("field"===l?a.unshift(s):d[c]=s)}u&&Object.defineProperty(u,r.name,d),f=!0},__runInitializers:function(e,t,n){for(var r=arguments.length>2,a=0;a<t.length;a++)n=r?t[a].call(e,n):t[a].call(e);return r?n:void 0},__propKey:function(e){return"symbol"===W(e)?e:"".concat(e)},__setFunctionName:function(e,t,n){return"symbol"===W(t)&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})},__metadata:Ce,__awaiter:Ae,__generator:Oe,__createBinding:Te,__exportStar:Ne,__values:Ie,__read:Re,__spread:Fe,__spreadArrays:Pe,__spreadArray:Me,__await:De,__asyncGenerator:je,__asyncDelegator:Le,__asyncValues:qe,__makeTemplateObject:Be,__importStar:ze,__importDefault:Ge,__classPrivateFieldGet:He,__classPrivateFieldSet:$e,__classPrivateFieldIn:Ve,__addDisposableResource:We,__disposeResources:Ye,default:{__extends:we,__assign:xe,__rest:Se,__decorate:Ee,__param:ke,__metadata:Ce,__awaiter:Ae,__generator:Oe,__createBinding:Te,__exportStar:Ne,__values:Ie,__read:Re,__spread:Fe,__spreadArrays:Pe,__spreadArray:Me,__await:De,__asyncGenerator:je,__asyncDelegator:Le,__asyncValues:qe,__makeTemplateObject:Be,__importStar:ze,__importDefault:Ge,__classPrivateFieldGet:He,__classPrivateFieldSet:$e,__classPrivateFieldIn:Ve,__addDisposableResource:We,__disposeResources:Ye}},Ze=D(Ke),Xe={};Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.ApolloPlugin=void 0;var Qe=function(e){ee(n,e);var t=le(n);function n(){return K(this,n),t.apply(this,arguments)}return X(n,[{key:"apolloInstall",value:function(e){}}]),n}(Ze.__importDefault(C.default).default);Xe.ApolloPlugin=Qe;var et={},tt={},nt={};Object.defineProperty(nt,"__esModule",{value:!0}),nt.changeRegistry=void 0,nt.changeRegistry=new(function(){function e(){K(this,e),this.changes=new Map}return X(e,[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}]),e}());var rt={};Object.defineProperty(rt,"__esModule",{value:!0}),rt.Operation=void 0;var at=function(){function e(t,n){var r;K(this,e),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}var t;return X(e,[{key:"execute",value:(t=Y(V().mark((function e(t){var n,r;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("Server"!==(n=t.typeName)){e.next=4;break}return r=this.executeOnServer(t),e.abrupt("return",t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 4:if("LocalGFF3"!==n){e.next=6;break}return e.abrupt("return",this.executeOnLocalGFF3(t));case 6:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}();rt.Operation=at,Object.defineProperty(tt,"__esModule",{value:!0}),tt.Change=void 0,tt.isChange=function(e){return void 0!==e.executeOnClient};var ot=nt,it=function(e){ee(r,e);var t,n=le(r);function r(){return K(this,r),n.apply(this,arguments)}return X(r,[{key:"notification",get:function(){return""}},{key:"execute",value:(t=Y(V().mark((function e(t){var n;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("LocalGFF3"!==(n=t.typeName)&&"Server"!==n){e.next=3;break}return e.abrupt("return",ce(te(r.prototype),"execute",this).call(this,t));case 3:if("Client"!==n){e.next=5;break}return e.abrupt("return",this.executeOnClient(t));case 5:throw new Error("no change implementation for backend type '".concat(n,"'"));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(ot.changeRegistry.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]),r}(rt.Operation);tt.Change=it,Object.defineProperty(et,"__esModule",{value:!0}),et.AssemblySpecificChange=void 0,et.isAssemblySpecificChange=function(e){return(0,st.isChange)(e)&&void 0!==e.assembly};var st=tt,lt=function(e){ee(n,e);var t=le(n);function n(e,r){var a;return K(this,n),(a=t.call(this,e,r)).assembly=e.assembly,a}return X(n,[{key:"getIndexedIds",value:function(e,t){var n,r,a=[],o=ve(null!=t?t:[]);try{for(o.s();!(r=o.n()).done;){var i=null===(n=e.attributes)||void 0===n?void 0:n[r.value];i&&a.push(i[0])}}catch(e){o.e(e)}finally{o.f()}if(e.children)for(var s=0,l=Object.values(e.children);s<l.length;s++){var c=this.getIndexedIds(l[s],t);a.push.apply(a,fe(c))}return a}}]),n}(st.Change);et.AssemblySpecificChange=lt;var ct={};Object.defineProperty(ct,"__esModule",{value:!0}),ct.Check=void 0,ct.Check=X((function e(){K(this,e)}));var ut={};Object.defineProperty(ut,"__esModule",{value:!0}),ut.checkRegistry=void 0,ut.checkRegistry=new(function(){function e(){K(this,e),this.checks=new Map}return X(e,[{key:"registerCheck",value:function(e,t){if(this.checks.has(e))throw new Error('check "'.concat(e,'" has already been registered'));this.checks.set(e,t)}},{key:"getCheck",value:function(e){var t=this.checks.get(e);if(!t)throw new Error('No check constructor registered for "'.concat(e,'"'));return t}},{key:"getChecks",value:function(){return this.checks}}]),e}());var dt={},ft="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function pt(){throw new Error("setTimeout has not been defined")}function ht(){throw new Error("clearTimeout has not been defined")}var mt=pt,gt=ht;function yt(e){if(mt===setTimeout)return setTimeout(e,0);if((mt===pt||!mt)&&setTimeout)return mt=setTimeout,setTimeout(e,0);try{return mt(e,0)}catch(t){try{return mt.call(null,e,0)}catch(t){return mt.call(this,e,0)}}}"function"==typeof ft.setTimeout&&(mt=setTimeout),"function"==typeof ft.clearTimeout&&(gt=clearTimeout);var vt,bt=[],_t=!1,wt=-1;function xt(){_t&&vt&&(_t=!1,vt.length?bt=vt.concat(bt):wt=-1,bt.length&&St())}function St(){if(!_t){var e=yt(xt);_t=!0;for(var t=bt.length;t;){for(vt=bt,bt=[];++wt<t;)vt&&vt[wt].run();wt=-1,t=bt.length}vt=null,_t=!1,function(e){if(gt===clearTimeout)return clearTimeout(e);if((gt===ht||!gt)&&clearTimeout)return gt=clearTimeout,clearTimeout(e);try{return gt(e)}catch(t){try{return gt.call(null,e)}catch(t){return gt.call(this,e)}}}(e)}}function Et(e,t){this.fun=e,this.array=t}function kt(){}Et.prototype.run=function(){this.fun.apply(null,this.array)};var Ct=kt,At=kt,Ot=kt,Tt=kt,Nt=kt,It=kt,Rt=kt,Ft=ft.performance||{},Pt=Ft.now||Ft.mozNow||Ft.msNow||Ft.oNow||Ft.webkitNow||function(){return(new Date).getTime()},Mt=new Date,Dt={nextTick:function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];bt.push(new Et(e,t)),1!==bt.length||_t||yt(St)},title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:Ct,addListener:At,once:Ot,off:Tt,removeListener:Nt,removeAllListeners:It,emit:Rt,binding:function(e){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(e){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(e){var t=.001*Pt.call(Ft),n=Math.floor(t),r=Math.floor(t%1*1e9);return e&&(n-=e[0],(r-=e[1])<0&&(n--,r+=1e9)),[n,r]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-Mt)/1e3}},jt=[],Lt=[],qt="undefined"!=typeof Uint8Array?Uint8Array:Array,Bt=!1;function Ut(){Bt=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)jt[t]=e[t],Lt[e.charCodeAt(t)]=t;Lt["-".charCodeAt(0)]=62,Lt["_".charCodeAt(0)]=63}function zt(e,t,n){for(var r,a=[],o=t;o<n;o+=3)a.push(jt[(r=(e[o]<<16)+(e[o+1]<<8)+e[o+2])>>18&63]+jt[r>>12&63]+jt[r>>6&63]+jt[63&r]);return a.join("")}function Gt(e,t,n,r,a){var o,i,s=8*a-r-1,l=(1<<s)-1,c=l>>1,u=-7,d=n?a-1:0,f=n?-1:1,p=e[t+d];for(d+=f,o=p&(1<<-u)-1,p>>=-u,u+=s;u>0;o=256*o+e[t+d],d+=f,u-=8);for(i=o&(1<<-u)-1,o>>=-u,u+=r;u>0;i=256*i+e[t+d],d+=f,u-=8);if(0===o)o=1-c;else{if(o===l)return i?NaN:Infinity*(p?-1:1);i+=Math.pow(2,r),o-=c}return(p?-1:1)*i*Math.pow(2,o-r)}function Ht(e,t,n,r,a,o){var i,s,l,c=8*o-a-1,u=(1<<c)-1,d=u>>1,f=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||Infinity===t?(s=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),(t+=i+d>=1?f/l:f*Math.pow(2,1-d))*l>=2&&(i++,l/=2),i+d>=u?(s=0,i=u):i+d>=1?(s=(t*l-1)*Math.pow(2,a),i+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,a),i=0));a>=8;e[n+p]=255&s,p+=h,s/=256,a-=8);for(i=i<<a|s,c+=a;c>0;e[n+p]=255&i,p+=h,i/=256,c-=8);e[n+p-h]|=128*m}var $t={}.toString,Vt=Array.isArray||function(e){return"[object Array]"==$t.call(e)};function Wt(){return Yt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Jt(e,t){if(Wt()<t)throw new RangeError("Invalid typed array length");return Yt.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=Yt.prototype:(null===e&&(e=new Yt(t)),e.length=t),e}function Yt(e,t,n){if(!(Yt.TYPED_ARRAY_SUPPORT||this instanceof Yt))return new Yt(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return Xt(this,e)}return Kt(this,e,t,n)}function Kt(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),Yt.TYPED_ARRAY_SUPPORT?(e=t).__proto__=Yt.prototype:e=Qt(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!Yt.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|nn(t,n),a=(e=Jt(e,r)).write(t,n);return a!==r&&(e=e.slice(0,a)),e}(e,t,n):function(e,t){if(tn(t)){var n=0|en(t.length);return 0===(e=Jt(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?Jt(e,0):Qt(e,t);if("Buffer"===t.type&&Vt(t.data))return Qt(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function Zt(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function Xt(e,t){if(Zt(t),e=Jt(e,t<0?0:0|en(t)),!Yt.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function Qt(e,t){var n=t.length<0?0:0|en(t.length);e=Jt(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function en(e){if(e>=Wt())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Wt().toString(16)+" bytes");return 0|e}function tn(e){return!(null==e||!e._isBuffer)}function nn(e,t){if(tn(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return Nn(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return In(e).length;default:if(r)return Nn(e).length;t=(""+t).toLowerCase(),r=!0}}function rn(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return bn(this,t,n);case"utf8":case"utf-8":return mn(this,t,n);case"ascii":return yn(this,t,n);case"latin1":case"binary":return vn(this,t,n);case"base64":return hn(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _n(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function an(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function on(e,t,n,r,a){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=a?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(a)return-1;n=e.length-1}else if(n<0){if(!a)return-1;n=0}if("string"==typeof t&&(t=Yt.from(t,r)),tn(t))return 0===t.length?-1:sn(e,t,n,r,a);if("number"==typeof t)return t&=255,Yt.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):sn(e,[t],n,r,a);throw new TypeError("val must be string, number or Buffer")}function sn(e,t,n,r,a){var o,i=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;i=2,s/=2,l/=2,n/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(a){var u=-1;for(o=n;o<s;o++)if(c(e,o)===c(t,-1===u?0:o-u)){if(-1===u&&(u=o),o-u+1===l)return u*i}else-1!==u&&(o-=o-u),u=-1}else for(n+l>s&&(n=s-l),o=n;o>=0;o--){for(var d=!0,f=0;f<l;f++)if(c(e,o+f)!==c(t,f)){d=!1;break}if(d)return o}return-1}function ln(e,t,n,r){n=Number(n)||0;var a=e.length-n;r?(r=Number(r))>a&&(r=a):r=a;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var i=0;i<r;++i){var s=parseInt(t.substr(2*i,2),16);if(isNaN(s))return i;e[n+i]=s}return i}function cn(e,t,n,r){return Rn(Nn(t,e.length-n),e,n,r)}function un(e,t,n,r){return Rn(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function dn(e,t,n,r){return un(e,t,n,r)}function fn(e,t,n,r){return Rn(In(t),e,n,r)}function pn(e,t,n,r){return Rn(function(e,t){for(var n,r,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,a.push(n%256),a.push(r);return a}(t,e.length-n),e,n,r)}function hn(e,t,n){return function(e){var t;Bt||Ut();for(var n=e.length,r=n%3,a="",o=[],i=16383,s=0,l=n-r;s<l;s+=i)o.push(zt(e,s,s+i>l?l:s+i));return 1===r?(a+=jt[(t=e[n-1])>>2],a+=jt[t<<4&63],a+="=="):2===r&&(a+=jt[(t=(e[n-2]<<8)+e[n-1])>>10],a+=jt[t>>4&63],a+=jt[t<<2&63],a+="="),o.push(a),o.join("")}(0===t&&n===e.length?e:e.slice(t,n))}function mn(e,t,n){n=Math.min(e.length,n);for(var r=[],a=t;a<n;){var o,i,s,l,c=e[a],u=null,d=c>239?4:c>223?3:c>191?2:1;if(a+d<=n)switch(d){case 1:c<128&&(u=c);break;case 2:128==(192&(o=e[a+1]))&&(l=(31&c)<<6|63&o)>127&&(u=l);break;case 3:i=e[a+2],128==(192&(o=e[a+1]))&&128==(192&i)&&(l=(15&c)<<12|(63&o)<<6|63&i)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:i=e[a+2],s=e[a+3],128==(192&(o=e[a+1]))&&128==(192&i)&&128==(192&s)&&(l=(15&c)<<18|(63&o)<<12|(63&i)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,d=1):u>65535&&(r.push((u-=65536)>>>10&1023|55296),u=56320|1023&u),r.push(u),a+=d}return function(e){var t=e.length;if(t<=gn)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=gn));return n}(r)}Yt.TYPED_ARRAY_SUPPORT=void 0===ft.TYPED_ARRAY_SUPPORT||ft.TYPED_ARRAY_SUPPORT,Yt.poolSize=8192,Yt._augment=function(e){return e.__proto__=Yt.prototype,e},Yt.from=function(e,t,n){return Kt(null,e,t,n)},Yt.TYPED_ARRAY_SUPPORT&&(Yt.prototype.__proto__=Uint8Array.prototype,Yt.__proto__=Uint8Array),Yt.alloc=function(e,t,n){return function(e,t,n,r){return Zt(t),t<=0?Jt(e,t):void 0!==n?"string"==typeof r?Jt(e,t).fill(n,r):Jt(e,t).fill(n):Jt(e,t)}(null,e,t,n)},Yt.allocUnsafe=function(e){return Xt(null,e)},Yt.allocUnsafeSlow=function(e){return Xt(null,e)},Yt.isBuffer=function(e){return null!=e&&(!!e._isBuffer||Fn(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Fn(e.slice(0,0))}(e))},Yt.compare=function(e,t){if(!tn(e)||!tn(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,a=0,o=Math.min(n,r);a<o;++a)if(e[a]!==t[a]){n=e[a],r=t[a];break}return n<r?-1:r<n?1:0},Yt.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Yt.concat=function(e,t){if(!Vt(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return Yt.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=Yt.allocUnsafe(t),a=0;for(n=0;n<e.length;++n){var o=e[n];if(!tn(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,a),a+=o.length}return r},Yt.byteLength=nn,Yt.prototype._isBuffer=!0,Yt.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)an(this,t,t+1);return this},Yt.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)an(this,t,t+3),an(this,t+1,t+2);return this},Yt.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)an(this,t,t+7),an(this,t+1,t+6),an(this,t+2,t+5),an(this,t+3,t+4);return this},Yt.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?mn(this,0,e):rn.apply(this,arguments)},Yt.prototype.equals=function(e){if(!tn(e))throw new TypeError("Argument must be a Buffer");return this===e||0===Yt.compare(this,e)},Yt.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},Yt.prototype.compare=function(e,t,n,r,a){if(!tn(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===a&&(a=this.length),t<0||n>e.length||r<0||a>this.length)throw new RangeError("out of range index");if(r>=a&&t>=n)return 0;if(r>=a)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(a>>>=0)-(r>>>=0),i=(n>>>=0)-(t>>>=0),s=Math.min(o,i),l=this.slice(r,a),c=e.slice(t,n),u=0;u<s;++u)if(l[u]!==c[u]){o=l[u],i=c[u];break}return o<i?-1:i<o?1:0},Yt.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},Yt.prototype.indexOf=function(e,t,n){return on(this,e,t,n,!0)},Yt.prototype.lastIndexOf=function(e,t,n){return on(this,e,t,n,!1)},Yt.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var a=this.length-t;if((void 0===n||n>a)&&(n=a),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return ln(this,e,t,n);case"utf8":case"utf-8":return cn(this,e,t,n);case"ascii":return un(this,e,t,n);case"latin1":case"binary":return dn(this,e,t,n);case"base64":return fn(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return pn(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},Yt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var gn=4096;function yn(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(127&e[a]);return r}function vn(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(e[a]);return r}function bn(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var a="",o=t;o<n;++o)a+=Tn(e[o]);return a}function _n(e,t,n){for(var r=e.slice(t,n),a="",o=0;o<r.length;o+=2)a+=String.fromCharCode(r[o]+256*r[o+1]);return a}function wn(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function xn(e,t,n,r,a,o){if(!tn(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||t<o)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function Sn(e,t,n,r){t<0&&(t=65535+t+1);for(var a=0,o=Math.min(e.length-n,2);a<o;++a)e[n+a]=(t&255<<8*(r?a:1-a))>>>8*(r?a:1-a)}function En(e,t,n,r){t<0&&(t=4294967295+t+1);for(var a=0,o=Math.min(e.length-n,4);a<o;++a)e[n+a]=t>>>8*(r?a:3-a)&255}function kn(e,t,n,r,a,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function Cn(e,t,n,r,a){return a||kn(e,0,n,4),Ht(e,t,n,r,23,4),n+4}function An(e,t,n,r,a){return a||kn(e,0,n,8),Ht(e,t,n,r,52,8),n+8}Yt.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),Yt.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=Yt.prototype;else{var a=t-e;n=new Yt(a,void 0);for(var o=0;o<a;++o)n[o]=this[o+e]}return n},Yt.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||wn(e,t,this.length);for(var r=this[e],a=1,o=0;++o<t&&(a*=256);)r+=this[e+o]*a;return r},Yt.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||wn(e,t,this.length);for(var r=this[e+--t],a=1;t>0&&(a*=256);)r+=this[e+--t]*a;return r},Yt.prototype.readUInt8=function(e,t){return t||wn(e,1,this.length),this[e]},Yt.prototype.readUInt16LE=function(e,t){return t||wn(e,2,this.length),this[e]|this[e+1]<<8},Yt.prototype.readUInt16BE=function(e,t){return t||wn(e,2,this.length),this[e]<<8|this[e+1]},Yt.prototype.readUInt32LE=function(e,t){return t||wn(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Yt.prototype.readUInt32BE=function(e,t){return t||wn(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Yt.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||wn(e,t,this.length);for(var r=this[e],a=1,o=0;++o<t&&(a*=256);)r+=this[e+o]*a;return r>=(a*=128)&&(r-=Math.pow(2,8*t)),r},Yt.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||wn(e,t,this.length);for(var r=t,a=1,o=this[e+--r];r>0&&(a*=256);)o+=this[e+--r]*a;return o>=(a*=128)&&(o-=Math.pow(2,8*t)),o},Yt.prototype.readInt8=function(e,t){return t||wn(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Yt.prototype.readInt16LE=function(e,t){t||wn(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Yt.prototype.readInt16BE=function(e,t){t||wn(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Yt.prototype.readInt32LE=function(e,t){return t||wn(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Yt.prototype.readInt32BE=function(e,t){return t||wn(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Yt.prototype.readFloatLE=function(e,t){return t||wn(e,4,this.length),Gt(this,e,!0,23,4)},Yt.prototype.readFloatBE=function(e,t){return t||wn(e,4,this.length),Gt(this,e,!1,23,4)},Yt.prototype.readDoubleLE=function(e,t){return t||wn(e,8,this.length),Gt(this,e,!0,52,8)},Yt.prototype.readDoubleBE=function(e,t){return t||wn(e,8,this.length),Gt(this,e,!1,52,8)},Yt.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||xn(this,e,t,n,Math.pow(2,8*n)-1,0);var a=1,o=0;for(this[t]=255&e;++o<n&&(a*=256);)this[t+o]=e/a&255;return t+n},Yt.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||xn(this,e,t,n,Math.pow(2,8*n)-1,0);var a=n-1,o=1;for(this[t+a]=255&e;--a>=0&&(o*=256);)this[t+a]=e/o&255;return t+n},Yt.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,1,255,0),Yt.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Yt.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,2,65535,0),Yt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Sn(this,e,t,!0),t+2},Yt.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,2,65535,0),Yt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Sn(this,e,t,!1),t+2},Yt.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,4,4294967295,0),Yt.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):En(this,e,t,!0),t+4},Yt.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,4,4294967295,0),Yt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):En(this,e,t,!1),t+4},Yt.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);xn(this,e,t,n,a-1,-a)}var o=0,i=1,s=0;for(this[t]=255&e;++o<n&&(i*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/i>>0)-s&255;return t+n},Yt.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);xn(this,e,t,n,a-1,-a)}var o=n-1,i=1,s=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/i>>0)-s&255;return t+n},Yt.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,1,127,-128),Yt.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Yt.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,2,32767,-32768),Yt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Sn(this,e,t,!0),t+2},Yt.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,2,32767,-32768),Yt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Sn(this,e,t,!1),t+2},Yt.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,4,2147483647,-2147483648),Yt.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):En(this,e,t,!0),t+4},Yt.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||xn(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Yt.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):En(this,e,t,!1),t+4},Yt.prototype.writeFloatLE=function(e,t,n){return Cn(this,e,t,!0,n)},Yt.prototype.writeFloatBE=function(e,t,n){return Cn(this,e,t,!1,n)},Yt.prototype.writeDoubleLE=function(e,t,n){return An(this,e,t,!0,n)},Yt.prototype.writeDoubleBE=function(e,t,n){return An(this,e,t,!1,n)},Yt.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var a,o=r-n;if(this===e&&n<t&&t<r)for(a=o-1;a>=0;--a)e[a+t]=this[a+n];else if(o<1e3||!Yt.TYPED_ARRAY_SUPPORT)for(a=0;a<o;++a)e[a+t]=this[a+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+o),t);return o},Yt.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var a=e.charCodeAt(0);a<256&&(e=a)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Yt.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var o;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o<n;++o)this[o]=e;else{var i=tn(e)?e:Nn(new Yt(e,r).toString()),s=i.length;for(o=0;o<n-t;++o)this[o+t]=i[o%s]}return this};var On=/[^+\/0-9A-Za-z-_]/g;function Tn(e){return e<16?"0"+e.toString(16):e.toString(16)}function Nn(e,t){var n;t=t||Infinity;for(var r=e.length,a=null,o=[],i=0;i<r;++i){if((n=e.charCodeAt(i))>55295&&n<57344){if(!a){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(i+1===r){(t-=3)>-1&&o.push(239,191,189);continue}a=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),a=n;continue}n=65536+(a-55296<<10|n-56320)}else a&&(t-=3)>-1&&o.push(239,191,189);if(a=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function In(e){return function(e){var t,n,r,a,o,i;Bt||Ut();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i=new qt(3*s/4-(o="="===e[s-2]?2:"="===e[s-1]?1:0)),r=o>0?s-4:s;var l=0;for(t=0,n=0;t<r;t+=4,n+=3)a=Lt[e.charCodeAt(t)]<<18|Lt[e.charCodeAt(t+1)]<<12|Lt[e.charCodeAt(t+2)]<<6|Lt[e.charCodeAt(t+3)],i[l++]=a>>16&255,i[l++]=a>>8&255,i[l++]=255&a;return 2===o?(a=Lt[e.charCodeAt(t)]<<2|Lt[e.charCodeAt(t+1)]>>4,i[l++]=255&a):1===o&&(a=Lt[e.charCodeAt(t)]<<10|Lt[e.charCodeAt(t+1)]<<4|Lt[e.charCodeAt(t+2)]>>2,i[l++]=a>>8&255,i[l++]=255&a),i}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(On,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Rn(e,t,n,r){for(var a=0;a<r&&!(a+n>=t.length||a>=e.length);++a)t[a+n]=e[a];return a}function Fn(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}for(var Pn=Math.floor(16777215*Math.random()),Mn=Gn.index=parseInt(16777215*Math.random(),10),Dn=(void 0===Dt||"number"!=typeof Dt.pid?Math.floor(1e5*Math.random()):Dt.pid)%65535,jn=function(){try{return _Buffer}catch(e){try{return Yt}catch(e){return null}}}(),Ln=function(e){return!(null==e||!e.constructor||"function"!=typeof e.constructor.isBuffer||!e.constructor.isBuffer(e))},qn=[],Bn=0;Bn<256;Bn++)qn[Bn]=(Bn<=15?"0":"")+Bn.toString(16);var Un=new RegExp("^[0-9a-fA-F]{24}$"),zn=[];for(Bn=0;Bn<10;)zn[48+Bn]=Bn++;for(;Bn<16;)zn[55+Bn]=zn[87+Bn]=Bn++;function Gn(e){if(!(this instanceof Gn))return new Gn(e);if(e&&(e instanceof Gn||"ObjectID"===e._bsontype))return e;if(this._bsontype="ObjectID",null!=e&&"number"!=typeof e){var t=Gn.isValid(e);if(!t&&null!=e)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");if(t&&"string"==typeof e&&24===e.length)return Gn.createFromHexString(e);if(null==e||12!==e.length){if(null!=e&&"function"==typeof e.toHexString)return e;throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters")}this.id=e}else this.id=this.generate(e)}var Hn=Gn;Gn.default=Gn,Gn.createFromTime=function(e){return new Gn(function(e,t){return 8===(t=t.toString(16)).length?t:"00000000".substring(t.length,8)+t}(0,e=parseInt(e,10)%4294967295)+"0000000000000000")},Gn.createFromHexString=function(e){if(void 0===e||null!=e&&24!==e.length)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");for(var t="",n=0;n<24;)t+=String.fromCharCode(zn[e.charCodeAt(n++)]<<4|zn[e.charCodeAt(n++)]);return new Gn(t)},Gn.isValid=function(e){return null!=e&&("number"==typeof e||("string"==typeof e?12===e.length||24===e.length&&Un.test(e):e instanceof Gn||(Ln(e)?Gn.isValid(e.toString("hex")):!("function"!=typeof e.toHexString||!jn||!(e.id instanceof jn||"string"==typeof e.id))&&(12===e.id.length||24===e.id.length&&Un.test(e.id)))))},Gn.prototype={constructor:Gn,toHexString:function(){if(!this.id||!this.id.length)throw new Error("invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is ["+JSON.stringify(this.id)+"]");if(24===this.id.length)return this.id;if(Ln(this.id))return this.id.toString("hex");for(var e="",t=0;t<this.id.length;t++)e+=qn[this.id.charCodeAt(t)];return e},equals:function(e){return e instanceof Gn?this.toString()===e.toString():"string"==typeof e&&Gn.isValid(e)&&12===e.length&&Ln(this.id)?e===this.id.toString("binary"):"string"==typeof e&&Gn.isValid(e)&&24===e.length?e.toLowerCase()===this.toHexString():"string"==typeof e&&Gn.isValid(e)&&12===e.length?e===this.id:!(null==e||!(e instanceof Gn||e.toHexString))&&e.toHexString()===this.toHexString()},getTimestamp:function(){var e,t=new Date;return e=Ln(this.id)?this.id[3]|this.id[2]<<8|this.id[1]<<16|this.id[0]<<24:this.id.charCodeAt(3)|this.id.charCodeAt(2)<<8|this.id.charCodeAt(1)<<16|this.id.charCodeAt(0)<<24,t.setTime(1e3*Math.floor(e)),t},generate:function(e){"number"!=typeof e&&(e=~~(Date.now()/1e3)),e=parseInt(e,10)%4294967295;var t=Mn=(Mn+1)%16777215;return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e,Pn>>16&255,Pn>>8&255,255&Pn,Dn>>8&255,255&Dn,t>>16&255,t>>8&255,255&t)}};var $n=Symbol&&Symbol.for&&Symbol.for("nodejs.util.inspect.custom")||"inspect";Gn.prototype[$n]=function(){return"ObjectID("+this+")"},Gn.prototype.toJSON=Gn.prototype.toHexString,Gn.prototype.toString=Gn.prototype.toHexString,Object.defineProperty(dt,"__esModule",{value:!0}),dt.FeatureChange=void 0,dt.isFeatureChange=function(e){return(0,Wn.isAssemblySpecificChange)(e)&&void 0!==e.changedIds};var Vn=Ze.__importDefault(Hn),Wn=et,Jn=function(e){ee(n,e);var t=le(n);function n(e,r){var a;return K(this,n),(a=t.call(this,e,r)).changedIds=e.changedIds,a}return X(n,[{key:"getFeatureFromId",value:function(e,t){var n,r,a,o,i=this.logger;if(null===(n=i.verbose)||void 0===n||n.call(i,"Entry=".concat(JSON.stringify(e))),e._id.equals(t))return null===(r=i.debug)||void 0===r||r.call(i,"Top level featureId matches in the object ".concat(JSON.stringify(e))),e;null===(a=i.debug)||void 0===a||a.call(i,"FeatureId was not found on top level so lets make recursive call...");var s,l=ve(null!==(o=e.children)&&void 0!==o?o:new Map);try{for(l.s();!(s=l.n()).done;){var c=ue(s.value,2),u=this.getFeatureFromId(c[1],t);if(u)return u}}catch(e){l.e(e)}finally{l.f()}return null}},{key:"getChildFeatureIds",value:function(e){if(!e.children)return[];var t,n=[],r=ve((e.children instanceof Map?e.children:new Map(Object.entries(e.children)))||new Map);try{for(r.s();!(t=r.n()).done;){var a=ue(t.value,2);n.push.apply(n,[a[0]].concat(fe(this.getChildFeatureIds(a[1]))))}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"generateNewIds",value:function(e,t){var n=(new Vn.default).toHexString();t.push(n);var r={};if(e.children)for(var a=0,o=Object.values(e.children);a<o.length;a++){var i=this.generateNewIds(o[a],t);r[i._id]=i}var s="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return $($({},e),{},{refSeq:s,children:e.children&&r,_id:n})}},{key:"addChild",value:function(e,t){var n;if(!(null===(n=e.attributes)||void 0===n?void 0:n._id)){var r=e.attributes;r||(r={}),r=$({_id:[e._id.toString()]},JSON.parse(JSON.stringify(r))),e.attributes=r}var a=t._id;e.children||(e.children=new Map),e.children.set(a,$($({allIds:[]},t),{},{_id:a})),e.children=new Map(fe(e.children.entries()).sort((function(e,t){return e[1].min-t[1].min})))}},{key:"findAndDeleteChildFeature",value:function(e,t){if(!e.children)throw new Error("Feature ".concat(e._id.toHexString()," has no children"));var n=e._id,r=e.children,a=r.get(t);if(a){var o=this.getChildFeatureIds(a);return r.delete(t),o}var i,s=ve(r);try{for(s.s();!(i=s.n()).done;){var l=ue(i.value,2)[1];try{return this.findAndDeleteChildFeature(l,t)}catch(e){}}}catch(e){s.e(e)}finally{s.f()}throw new Error('Feature "'.concat(t,'" not found in ').concat(n.toHexString()))}}]),n}(Wn.AssemblySpecificChange);dt.FeatureChange=Jn;var Yn={};Object.defineProperty(Yn,"__esModule",{value:!0}),Yn.operationRegistry=void 0,Yn.operationRegistry=new(function(){function e(){K(this,e),this.operations=new Map}return X(e,[{key:"registerOperation",value:function(e,t){if(this.operations.has(e))throw new Error('operation type "'.concat(e,'" has already been registered'));this.operations.set(e,t)}},{key:"getOperationType",value:function(e){var t=this.operations.get(e);if(!t)throw new Error('No operation constructor registered for "'.concat(e,'"'));return t}}]),e}());var Kn={};Object.defineProperty(Kn,"__esModule",{value:!0}),Kn.Validation=void 0,Kn.isContext=function(e){return"context"in e&&"reflector"in e};var Zn=function(){function e(){K(this,e)}var t,n,r,a,o;return X(e,[{key:"frontendPreValidate",value:(o=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Y(V().mark((function e(t,n){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Y(V().mark((function e(t,n){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();Kn.Validation=Zn,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ze;t.__exportStar(Xe,e),t.__exportStar(et,e),t.__exportStar(tt,e),t.__exportStar(nt,e),t.__exportStar(ct,e),t.__exportStar(ut,e),t.__exportStar(dt,e),t.__exportStar(rt,e),t.__exportStar(Yn,e),t.__exportStar(Kn,e)}(L);var Xn={},Qn={},er={},tr={},nr={};Object.defineProperty(nr,"__esModule",{value:!0}),nr.ApolloPlugin=void 0;var rr=function(e){ee(n,e);var t=le(n);function n(){return K(this,n),t.apply(this,arguments)}return X(n,[{key:"apolloInstall",value:function(e){}}]),n}(Ze.__importDefault(C.default).default);nr.ApolloPlugin=rr;var ar={},or={},ir={};Object.defineProperty(ir,"__esModule",{value:!0}),ir.changeRegistry=void 0,ir.changeRegistry=new(function(){function e(){K(this,e),this.changes=new Map}return X(e,[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}]),e}());var sr={};Object.defineProperty(sr,"__esModule",{value:!0}),sr.Operation=void 0;var lr=function(){function e(t,n){var r;K(this,e),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}var t;return X(e,[{key:"execute",value:(t=Y(V().mark((function e(t){var n,r;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("Server"!==(n=t.typeName)){e.next=4;break}return r=this.executeOnServer(t),e.abrupt("return",t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 4:if("LocalGFF3"!==n){e.next=6;break}return e.abrupt("return",this.executeOnLocalGFF3(t));case 6:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}();sr.Operation=lr,Object.defineProperty(or,"__esModule",{value:!0}),or.Change=void 0,or.isChange=function(e){return void 0!==e.executeOnClient};var cr=ir,ur=function(e){ee(r,e);var t,n=le(r);function r(){return K(this,r),n.apply(this,arguments)}return X(r,[{key:"notification",get:function(){return""}},{key:"execute",value:(t=Y(V().mark((function e(t){var n;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("LocalGFF3"!==(n=t.typeName)&&"Server"!==n){e.next=3;break}return e.abrupt("return",ce(te(r.prototype),"execute",this).call(this,t));case 3:if("Client"!==n){e.next=5;break}return e.abrupt("return",this.executeOnClient(t));case 5:throw new Error("no change implementation for backend type '".concat(n,"'"));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(cr.changeRegistry.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]),r}(sr.Operation);or.Change=ur,Object.defineProperty(ar,"__esModule",{value:!0}),ar.AssemblySpecificChange=void 0,ar.isAssemblySpecificChange=function(e){return(0,dr.isChange)(e)&&void 0!==e.assembly};var dr=or,fr=function(e){ee(n,e);var t=le(n);function n(e,r){var a;return K(this,n),(a=t.call(this,e,r)).assembly=e.assembly,a}return X(n,[{key:"getIndexedIds",value:function(e,t){var n,r,a=[],o=ve(null!=t?t:[]);try{for(o.s();!(r=o.n()).done;){var i=null===(n=e.attributes)||void 0===n?void 0:n[r.value];i&&a.push(i[0])}}catch(e){o.e(e)}finally{o.f()}if(e.children)for(var s=0,l=Object.values(e.children);s<l.length;s++){var c=this.getIndexedIds(l[s],t);a.push.apply(a,fe(c))}return a}}]),n}(dr.Change);ar.AssemblySpecificChange=fr;var pr={};Object.defineProperty(pr,"__esModule",{value:!0}),pr.Check=void 0,pr.Check=X((function e(){K(this,e)}));var hr={};Object.defineProperty(hr,"__esModule",{value:!0}),hr.checkRegistry=void 0,hr.checkRegistry=new(function(){function e(){K(this,e),this.checks=new Map}return X(e,[{key:"registerCheck",value:function(e,t){if(this.checks.has(e))throw new Error('check "'.concat(e,'" has already been registered'));this.checks.set(e,t)}},{key:"getCheck",value:function(e){var t=this.checks.get(e);if(!t)throw new Error('No check constructor registered for "'.concat(e,'"'));return t}},{key:"getChecks",value:function(){return this.checks}}]),e}());var mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.FeatureChange=void 0,mr.isFeatureChange=function(e){return(0,yr.isAssemblySpecificChange)(e)&&void 0!==e.changedIds};var gr=Ze.__importDefault(Hn),yr=ar,vr=function(e){ee(n,e);var t=le(n);function n(e,r){var a;return K(this,n),(a=t.call(this,e,r)).changedIds=e.changedIds,a}return X(n,[{key:"getFeatureFromId",value:function(e,t){var n,r,a,o,i=this.logger;if(null===(n=i.verbose)||void 0===n||n.call(i,"Entry=".concat(JSON.stringify(e))),e._id.equals(t))return null===(r=i.debug)||void 0===r||r.call(i,"Top level featureId matches in the object ".concat(JSON.stringify(e))),e;null===(a=i.debug)||void 0===a||a.call(i,"FeatureId was not found on top level so lets make recursive call...");var s,l=ve(null!==(o=e.children)&&void 0!==o?o:new Map);try{for(l.s();!(s=l.n()).done;){var c=ue(s.value,2),u=this.getFeatureFromId(c[1],t);if(u)return u}}catch(e){l.e(e)}finally{l.f()}return null}},{key:"getChildFeatureIds",value:function(e){if(!e.children)return[];var t,n=[],r=ve((e.children instanceof Map?e.children:new Map(Object.entries(e.children)))||new Map);try{for(r.s();!(t=r.n()).done;){var a=ue(t.value,2);n.push.apply(n,[a[0]].concat(fe(this.getChildFeatureIds(a[1]))))}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"generateNewIds",value:function(e,t){var n=(new gr.default).toHexString();t.push(n);var r={};if(e.children)for(var a=0,o=Object.values(e.children);a<o.length;a++){var i=this.generateNewIds(o[a],t);r[i._id]=i}var s="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return $($({},e),{},{refSeq:s,children:e.children&&r,_id:n})}},{key:"addChild",value:function(e,t){var n;if(!(null===(n=e.attributes)||void 0===n?void 0:n._id)){var r=e.attributes;r||(r={}),r=$({_id:[e._id.toString()]},JSON.parse(JSON.stringify(r))),e.attributes=r}var a=t._id;e.children||(e.children=new Map),e.children.set(a,$($({allIds:[]},t),{},{_id:a})),e.children=new Map(fe(e.children.entries()).sort((function(e,t){return e[1].min-t[1].min})))}},{key:"findAndDeleteChildFeature",value:function(e,t){if(!e.children)throw new Error("Feature ".concat(e._id.toHexString()," has no children"));var n=e._id,r=e.children,a=r.get(t);if(a){var o=this.getChildFeatureIds(a);return r.delete(t),o}var i,s=ve(r);try{for(s.s();!(i=s.n()).done;){var l=ue(i.value,2)[1];try{return this.findAndDeleteChildFeature(l,t)}catch(e){}}}catch(e){s.e(e)}finally{s.f()}throw new Error('Feature "'.concat(t,'" not found in ').concat(n.toHexString()))}}]),n}(yr.AssemblySpecificChange);mr.FeatureChange=vr;var br={};Object.defineProperty(br,"__esModule",{value:!0}),br.operationRegistry=void 0,br.operationRegistry=new(function(){function e(){K(this,e),this.operations=new Map}return X(e,[{key:"registerOperation",value:function(e,t){if(this.operations.has(e))throw new Error('operation type "'.concat(e,'" has already been registered'));this.operations.set(e,t)}},{key:"getOperationType",value:function(e){var t=this.operations.get(e);if(!t)throw new Error('No operation constructor registered for "'.concat(e,'"'));return t}}]),e}());var _r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.Validation=void 0,_r.isContext=function(e){return"context"in e&&"reflector"in e};var wr=function(){function e(){K(this,e)}var t,n,r,a,o;return X(e,[{key:"frontendPreValidate",value:(o=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Y(V().mark((function e(t,n){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Y(V().mark((function e(t,n){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();_r.Validation=wr,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ze;t.__exportStar(nr,e),t.__exportStar(ar,e),t.__exportStar(or,e),t.__exportStar(ir,e),t.__exportStar(pr,e),t.__exportStar(hr,e),t.__exportStar(mr,e),t.__exportStar(sr,e),t.__exportStar(br,e),t.__exportStar(_r,e)}(tr),Object.defineProperty(er,"__esModule",{value:!0}),er.AddAssemblyAliasesChange=void 0;var xr=A.default,Sr=function(e){ee(r,e);var t,n=le(r);function r(e,t){var a;return K(this,r),Q(se(a=n.call(this,e,t)),"typeName","AddAssemblyAliasesChange"),Q(se(a),"aliases",void 0),a.aliases=e.aliases,a}return X(r,[{key:"executeOnClient",value:function(e){var t=(0,xr.getSession)(e).assemblyManager.get(this.assembly);if(!t)throw new Error("assembly ".concat(this.assembly," not found"));return t.configuration.aliases.set(this.aliases),Promise.resolve()}},{key:"getInverse",value:function(){throw new Error("Method not implemented.")}},{key:"toJSON",value:function(){return{assembly:this.assembly,typeName:this.typeName,aliases:this.aliases}}},{key:"executeOnServer",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.assemblyModel,a=this.assembly,i=this.aliases,null===(n=(o=this.logger).debug)||void 0===n||n.call(o,"Updating assembly aliases for assembly: ".concat(a,", aliases: ").concat(JSON.stringify(i))),e.next=5,r.findById(a);case 5:if(s=e.sent){e.next=8;break}throw new Error("Assembly with ID ".concat(a," not found"));case 8:return s.aliases=i,e.next=11,s.save();case 11:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:function(e){throw new Error("Method not implemented.")}},{key:"notification",get:function(){return"Assembly aliases have been added."}}]),r}(tr.AssemblySpecificChange);er.AddAssemblyAliasesChange=Sr;var Er={},kr={},Cr={},Ar={};Object.defineProperty(Ar,"__esModule",{value:!0}),Ar.annotationFeatureToGFF3=Tr;var Or=A.default;function Tr(e,t,n){var r,a,o,i,s=JSON.parse(JSON.stringify(null!==(r=e.attributes)&&void 0!==r?r:{})),l=[],c=null!==(a=null===(o=e.attributes)||void 0===o||null===(o=o.gff_source)||void 0===o?void 0:o[0])&&void 0!==a?a:null;delete s.gff_source,t&&(s.Parent=[t]),s.gff_id?(s.ID=s.gff_id,delete s.gff_id):e.children&&(s.ID=[e._id]),s.gff_name&&(s.Name=s.gff_name,delete s.gff_name),s.gff_alias&&(s.Alias=s.gff_alias,delete s.gff_alias),s.gff_target&&(s.Target=s.gff_target,delete s.gff_target),s.gff_gap&&(s.Gap=s.gff_gap,delete s.gff_gap),s.gff_derives_from&&(s.Derives_from=s.gff_derives_from,delete s.gff_derives_from),s.gff_note&&(s.Note=s.gff_note,delete s.gff_note),s.gff_dbxref&&(s.Dbxref=s.gff_dbxref,delete s.gff_dbxref),s.gff_is_circular&&(s.Is_circular=s.gff_is_circular,delete s.gff_is_circular),s.gff_ontology_term&&(l.push.apply(l,fe(s.gff_ontology_term)),delete s.gff_ontology_term),s["Gene Ontology"]&&(l.push.apply(l,fe(s["Gene Ontology"])),delete s["Gene Ontology"]),s["Sequence Ontology"]&&(l.push.apply(l,fe(s["Sequence Ontology"])),delete s["Sequence Ontology"]),l.length>0&&(s.Ontology_term=l);var u=null===(i=e.attributes)||void 0===i?void 0:i.gff_score,d=null;return u&&u.length>0&&(u[0]&&(d=Number(u[0]),Number.isNaN(d)&&(d=null)),delete s.gff_score),[{start:e.min,end:e.max}].map((function(t){var r,a;return{start:Number(t.start)+1,end:Number(t.end),seq_id:n?null!==(r=n[e.refSeq])&&void 0!==r?r:null:e.refSeq,source:c,type:e.type,score:d,strand:e.strand?1===e.strand?"+":"-":null,phase:null,attributes:Object.keys(s).length>0?s:null,derived_features:[],child_features:Nr(e,null===(a=s.ID)||void 0===a?void 0:a[0],n)}}))}function Nr(e,t,n){if(!e.children)return[];if("mRNA"===e.type){for(var r=[],a=function(e){var t=[];try{t=function(e){if("mRNA"!==e.type)throw new Error('Only features of type "mRNA" or equivalent can calculate CDS locations');if(!e.children)throw new Error("no CDS or exons in mRNA");var t=Object.values(e.children),n=t.filter((function(e){return"CDS"===e.type}));if(0===n.length)throw new Error("no CDS in mRNA");var r,a=[],o=ve(n);try{var i=function(){for(var n=r.value,o=n.max,i=n.min,s=[],l=!1,c=[],u=0,d=t;u<d.length;u++){var f=d[u];"exon"===f.type&&c.push({min:f.min,max:f.max})}c.sort((function(e,t){return e.min-t.min}));for(var p=0,h=c;p<h.length;p++){var m=h[p],g=s.at(-1);g&&s.push({min:g.max,max:m.min,type:"intron"});var y,v=ue((0,Or.intersection2)(i,o,m.min,m.max),2),b=v[0],_=v[1];y=l?1===e.strand?"threePrimeUTR":"fivePrimeUTR":1===e.strand?"fivePrimeUTR":"threePrimeUTR",void 0!==b&&void 0!==_?(l=!0,b===m.min&&_===m.max?s.push({min:b,max:_,phase:0,type:"CDS"}):b===m.min?s.push({min:b,max:_,phase:0,type:"CDS"},{min:_,max:m.max,type:y}):_===m.max?s.push({min:m.min,max:b,type:y},{min:b,max:_,phase:0,type:"CDS"}):s.push({min:m.min,max:b,type:y},{min:b,max:_,phase:0,type:"CDS"},{min:_,max:m.max,type:"fivePrimeUTR"===y?"threePrimeUTR":"fivePrimeUTR"})):s.push({min:m.min,max:m.max,type:y})}s.sort((function(e,t){return e.min-t.min})),-1===e.strand&&s.reverse();var w=0,x=s.map((function(e){if("CDS"!==e.type)return e;var t=w;return w=(3-(e.max-e.min-t+3)%3)%3,$($({},e),{},{phase:t})}));a.push(x)};for(o.s();!(r=o.n()).done;)i()}catch(e){o.e(e)}finally{o.f()}return a}(e)}catch(e){return[]}return t.map((function(e){return e.filter((function(e){return"CDS"===e.type}))}))}(e),o=0,i=0,s=Object.values(e.children);i<s.length;i++){var l=s[i],c=Tr(l,t,n);if("CDS"===l.type){var u,d=ve(a[o]);try{for(d.s();!(u=d.n()).done;){var f=u.value,p=JSON.parse(JSON.stringify(c));if(1!=p.length)throw new Error("Unexpected CDS: ".concat(JSON.stringify(p,null,2)));p[0].start=f.min+1,p[0].end=f.max,p[0].phase=f.phase.toString(),p[0].type=f.type,r.push(p)}}catch(e){d.e(e)}finally{d.f()}o++}else r.push(c)}return r}return Object.values(e.children).map((function(e){return Tr(e,t,n)}))}var Ir={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.gffInternalToColumn=e.gffColumnToInternal=e.internalToGFF=e.gffToInternal=void 0,e.isGFFReservedAttribute=function(t){return t in e.gffToInternal},e.isGFFInternalAttribute=function(t){return t in e.internalToGFF},e.isGFFColumn=function(t){return t in e.gffColumnToInternal},e.isGFFColumnInternal=function(t){return t in e.gffInternalToColumn},e.gffToInternal={ID:"gff_id",Name:"gff_name",Alias:"gff_alias",Parent:"gff_parent",Target:"gff_target",Gap:"gff_gap",Derives_from:"gff_derives_from",Note:"gff_note",Dbxref:"gff_dbxref",Ontology_term:"gff_ontology_term",Is_circular:"gff_is_circular"},e.internalToGFF={gff_id:"ID",gff_name:"Name",gff_alias:"Alias",gff_parent:"Parent",gff_target:"Target",gff_gap:"Gap",gff_derives_from:"Derives_from",gff_note:"Note",gff_dbxref:"Dbxref",gff_ontology_term:"Ontology_term",gff_is_circular:"Is_circular"},e.gffColumnToInternal={score:"gff_score",source:"gff_source"},e.gffInternalToColumn={gff_score:"score",gff_source:"source"}}(Ir);var Rr={};Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.gff3ToAnnotationFeature=function e(t,n){var r=ue(t,1)[0],a=r.end,o=r.seq_id,i=r.start,s=r.strand,l=r.type;if(!o)throw new Error("feature does not have seq_id: ".concat(JSON.stringify(r)));if(!l)throw new Error("feature does not have type: ".concat(JSON.stringify(r)));if(null===i)throw new Error("feature does not have start: ".concat(JSON.stringify(r)));if(null===a)throw new Error("feature does not have end: ".concat(JSON.stringify(r)));var c=ue(function(e){if(e.length>1&&!e.every((function(e){return"CDS"===e.type})))throw new Error("GFF3 features has multiple locations but is not a CDS");var t=e.map((function(e){return e.start})).filter((function(e){return null!==e})),n=e.map((function(e){return e.end})).filter((function(e){return null!==e}));return[Math.min.apply(Math,fe(t))-1,Math.max.apply(Math,fe(n))]}(t),2),u=c[0],d=c[1],f=function(t,n,r){var a={},o=t.filter((function(e){return e.child_features.length>0}));if(o.length>1)throw new Error("Features with multiple locations may not have children");if(0!==o.length){var i,s=[],l=[],c=[],u=ve(ue(o,1)[0].child_features);try{for(u.s();!(i=u.n()).done;){var d=i.value,f=ue(d,1)[0];if("exon"===f.type&&l.push(d),"three_prime_UTR"!==f.type&&"five_prime_UTR"!==f.type||c.push(d),"three_prime_UTR"!==f.type&&"five_prime_UTR"!==f.type&&"intron"!==f.type&&"start_codon"!==f.type&&"stop_codon"!==f.type)if("CDS"===f.type)s.push(d);else{var p=e(d,n);a[p._id]=p}}}catch(e){u.e(e)}finally{u.f()}if(s.length>0){var h,m=function(t,n){var r=t.map((function(e){return e.length}));if(r.some((function(e){return e>1})))return t.map((function(t){return e(t,n)}));var a=t.map((function(e){return e[0]})).filter((function(e){return null!==e.start&&null!==e.end})).sort((function(e,t){return e.start-t.start}));if(!a.some((function(e,t){var n=a.at(t+1);return!!n&&(0,Fr.doesIntersect2)(e.start,e.end,n.start,n.end)})))return[e(a,n)];var o,i=t.map((function(e){return e[0]})),s=[],l=ve(i);try{var c=function(){var e=o.value,t=s.at(-1);if(!t)return s.push([e]),1;t.some((function(t){return(0,Fr.doesIntersect2)(t.start,t.end,e.start,e.end)}))?s.push([e]):t.push(e)};for(l.s();!(o=l.n()).done;)c()}catch(e){l.e(e)}finally{l.f()}return s.map((function(t){return e(t,n)}))}(s,n),g=ve(m);try{for(g.s();!(h=g.n()).done;){var y=h.value;a[y._id]=y}}catch(e){g.e(e)}finally{g.f()}var v,b=function(e,t,n,r,a){var o,i=[],s=ve(n);try{for(s.s();!(o=s.n()).done;){var l,c=ve(o.value);try{for(c.s();!(l=c.n()).done;){var u=l.value;if(!u.start||!u.end)throw new Error("UTR has undefined start and/or end\n: ".concat(JSON.stringify(u,null,2)));var d=void 0;"+"===u.strand?d=1:"-"===u.strand&&(d=-1),i.push({_id:(new Pr.default).toHexString(),refSeq:r,type:"exon",min:u.start-1,max:u.end,strand:d})}}catch(e){c.e(e)}finally{c.f()}}}catch(e){s.e(e)}finally{s.f()}i.sort((function(e,t){return e.min-t.min}));var f,p=[],h=ve(e);try{for(h.s();!(f=h.n()).done;){var m=f.value;m.sort((function(e,t){if(!e.start||!t.start)throw new Error("CDS has undefined start");return e.start-t.start}));for(var g=0;g<m.length;g++){var y,v=m[g],b=!1,_=ve(t);try{for(_.s();!(y=_.n()).done;){var w=y.value;if(1!=w.length)throw new Error("Unexpected number of exons");var x=ue(w,1)[0];if(x.start&&x.end&&v.start&&v.end&&x.start<=v.start&&x.end>=v.end){b=!0;break}}}catch(e){_.e(e)}finally{_.f()}if(!b){if(!v.start||!v.end)throw new Error("CDS has undefined start and/or end: ".concat(JSON.stringify(v,null,2)));var S=void 0;"+"===v.strand?S=1:"-"===v.strand&&(S=-1);var E={_id:(new Pr.default).toHexString(),refSeq:r,type:"exon",min:v.start-1,max:v.end,strand:S};if(0===g){var k,C=ve(i);try{for(C.s();!(k=C.n()).done;){var A=k.value;if(A.max>E.min)break;A.max===E.min?E.min=A.min:p.push(A)}}catch(e){C.e(e)}finally{C.f()}}if(g===m.length-1){var O,T=ve(i);try{for(T.s();!(O=T.n()).done;){var N=O.value;N.min<E.max||(N.min===E.max?E.max=N.max:p.push(N))}}catch(e){T.e(e)}finally{T.f()}}p.push(E)}}}}catch(e){h.e(e)}finally{h.f()}var I=function(e){if(0===e.length)return[];e.sort((function(e,t){return e.min-t.min}));var t=[];t.push(e[0]);for(var n=1;n<e.length;n++){var r=t.at(-1),a=e[n];r&&a.min<=r.max?r.max=Math.max(r.max,a.max):t.push(a)}return t}(p);return I}(s,l,c,m[0].refSeq),_=ve(b);try{for(_.s();!(v=_.n()).done;){var w=v.value;a[w._id]=w}}catch(e){_.e(e)}finally{_.f()}}return Object.keys(a).length>0?a:void 0}}(t,n),p=function(e){var t={},n=e.map((function(e){return e.score})).filter((function(e){return null!==e})),r=e.map((function(e){return e.source})).filter((function(e){return null!==e})),a=e.map((function(e){return e.attributes})).filter((function(e){return null!==e}));if(n.length>0){var o=ue(n,1)[0];n.length>1&&(o=n.reduce((function(e,t){return e+t}),0)/n.length),t.gff_score=[String(o)]}if(r.length>0){var i=ue(r,1)[0];r.length>1&&(i=fe(new Set(r)).join(",")),t.gff_source=[i]}if(a.length>0){var s,l=ve(a);try{for(l.s();!(s=l.n()).done;)for(var c=0,u=Object.entries(s.value);c<u.length;c++){var d=ue(u[c],2),f=d[0],p=d[1];if("Parent"!==f){var h=(0,Mr.isGFFReservedAttribute)(f)?Mr.gffToInternal[f]:f,m=t[h];if(m){var g=new Set([].concat(fe(m),fe(p)));t[h]=fe(g)}else t[h]=p}}}catch(e){l.e(e)}finally{l.f()}}if(Object.keys(t).length>0)return t}(t),h={_id:(new Pr.default).toHexString(),refSeq:null!=n?n:o,type:l,min:u,max:d};if(s)if("+"===s)h.strand=1;else{if("-"!==s)throw new Error('Unknown strand: "'.concat(s,'"'));h.strand=-1}return f&&(h.children=f),p&&(h.attributes=p),h};var Fr=A.default,Pr=Ze.__importDefault(Hn),Mr=Ir;!function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ze;t.__exportStar(Ar,e),t.__exportStar(Ir,e),t.__exportStar(Rr,e)}(Cr),Object.defineProperty(kr,"__esModule",{value:!0}),kr.FromFileBaseChange=void 0;var Dr=Cr,jr=function(e){ee(o,e);var t,n,r,a=le(o);function o(){var e;K(this,o);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return Q(se(e=a.call.apply(a,[this].concat(n))),"refSeqCache",new Map),e}return X(o,[{key:"addRefSeqIntoDb",value:(r=Y(V().mark((function e(t,n,r){var a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C,A,O,T,N,I,R,F,P,M,D,j,L,q,B,z,G,H,W,J,Y,K,Z;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=this.logger,i=r.filesService,s=r.refSeqChunkModel,l=r.refSeqModel,c=r.user,d=(u=Dt.env.CHUNK_SIZE)&&Number(u),f=0,p=0,m="text/x-gff3"!==t.type,g=i.getFileStream(t),y="",v="",b=!0,_=!1,null===(a=o.debug)||void 0===a||a.call(o,"starting sequence stream"),w=0,x=new TextDecoder,S=!1,E=!1,e.prev=17,C=U(g);case 19:return e.next=21,C.next();case 21:if(!(S=!(A=e.sent).done)){e.next=91;break}O=x.decode(A.value),b=!O.endsWith("\n"),T=O.split(/\r?\n/),v&&(T[0]="".concat(v).concat(T[0]),v=""),b&&(v=null!==(N=T.pop())&&void 0!==N?N:""),I=ve(T),e.prev=29,I.s();case 31:if((R=I.n()).done){e.next=80;break}if(F=R.value,++w%1e6==0&&(null===(P=o.debug)||void 0===P||P.call(o,"Processed ".concat(w," lines"))),m){e.next=38;break}return"##FASTA"===F.trim()&&(m=!0),e.abrupt("continue",78);case 38:if(!(M=/^>\s*(\S+)\s*(.*)/.exec(F))){e.next=64;break}if(_=!0,null===(D=o.debug)||void 0===D||D.call(o,'Reference sequence information line "'.concat(M[0],'"')),""===y){e.next=49;break}if(h){e.next=45;break}throw new Error("No refSeq document found");case 45:return p+=y.length,e.next=48,s.create([{refSeq:h._id,n:f,sequence:y,user:c,status:-1}]);case 48:y="";case 49:return e.next=51,null===(j=h)||void 0===j?void 0:j.updateOne({length:p});case 51:return p=0,f=0,q=M[1].trim(),B=M[2]?M[2].trim():"",e.next=57,l.create([$($({name:q,description:B,assembly:n,length:0},d?{chunkSize:d}:null),{},{user:c,status:-1})]);case 57:z=ue(e.sent,1),G=z[0],null===(L=o.debug)||void 0===L||L.call(o,'Added new refSeq "'.concat(q,'", desc "').concat(B,'", docId "').concat(G._id,'"')),h=G,e.next=78;break;case 64:if(!/\S/.test(F)){e.next=78;break}if(h){e.next=67;break}throw new Error("No refSeq document found");case 67:W=(H=h)._id,J=H.chunkSize,y+=F.replaceAll(/\s/g,"");case 69:if(!(y.length>=J)){e.next=78;break}return Y=y.slice(0,J),p+=Y.length,e.next=74,s.create([{refSeq:W,n:f,sequence:Y,user:c,status:-1}]);case 74:f++,y=y.slice(J),e.next=69;break;case 78:e.next=31;break;case 80:e.next=85;break;case 82:e.prev=82,e.t0=e.catch(29),I.e(e.t0);case 85:return e.prev=85,I.f(),e.finish(85);case 88:S=!1,e.next=19;break;case 91:e.next=97;break;case 93:e.prev=93,e.t1=e.catch(17),E=!0,k=e.t1;case 97:if(e.prev=97,e.prev=98,!S||null==C.return){e.next=102;break}return e.next=102,C.return();case 102:if(e.prev=102,!E){e.next=105;break}throw k;case 105:return e.finish(102);case 106:return e.finish(97);case 107:if(_){e.next=109;break}throw new Error("No reference sequences found in file");case 109:if(!y&&!b){e.next=120;break}if(h){e.next=112;break}throw new Error("No refSeq document found");case 112:return b&&(y+=v),p+=y.length,null===(K=o.verbose)||void 0===K||K.call(o,'*** Add the very last chunk to ref seq ("'.concat(h._id,'", index ').concat(f," and total length for ref seq is ").concat(p,'): "').concat(y,'"')),null===(Z=o.debug)||void 0===Z||Z.call(o,"Creating refSeq chunk number ".concat(f,' of "').concat(h._id,'"')),e.next=118,s.create([{refSeq:h._id,n:f,sequence:y,user:c,status:-1}]);case 118:return e.next=120,h.updateOne({length:p});case 120:case"end":return e.stop()}}),e,this,[[17,93,97,107],[29,82,85,88],[98,,102,106]])}))),function(e,t,n){return r.apply(this,arguments)})},{key:"removeExistingFeatures",value:(n=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.featureModel,a=t.refSeqModel,o=this.assembly,null===(n=(i=this.logger).debug)||void 0===n||n.call(i,"Removing existing features for assembly = ".concat(o)),e.next=5,a.find({assembly:o}).exec();case 5:s=ve(e.sent),e.prev=7,s.s();case 9:if((l=s.n()).done){e.next=15;break}return c=l.value,e.next=13,r.deleteMany({refSeq:c._id});case 13:e.next=9;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(7),s.e(e.t0);case 20:return e.prev=20,s.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,this,[[7,17,20,23]])}))),function(e){return n.apply(this,arguments)})},{key:"addFeatureIntoDb",value:(t=Y(V().mark((function e(t,n){var r,a,o,i,s,l,c,u,d,f,p,h,m,g;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((r=Dt.env.INDEXED_IDS)&&(a=r.split(",")),o=this.assembly,i=this.refSeqCache,s=n.featureModel,l=n.refSeqModel,c=n.user,u=ue(t,1),d=u[0].seq_id){e.next=7;break}throw new Error("Valid seq_id not found in feature ".concat(JSON.stringify(t)));case 7:if(f=i.get(d)){e.next=22;break}return e.next=11,l.findOne({assembly:o,name:d}).exec();case 11:if(e.t1=p=e.sent,e.t0=null!==e.t1,!e.t0){e.next=15;break}e.t0=void 0!==p;case 15:if(!e.t0){e.next=19;break}e.t2=p,e.next=20;break;case 19:e.t2=void 0;case 20:(f=e.t2)&&i.set(d,f);case 22:if(f){e.next=24;break}throw new Error('RefSeq was not found by assembly "'.concat(o,'" and seq_id "').concat(d,'" not found'));case 24:return h=(0,Dr.gff3ToAnnotationFeature)(t,f._id),m=this.getAllIds(h),g=this.getIndexedIds(h,a),e.next=29,s.create([$($({allIds:m,indexedIds:g},h),{},{user:c,status:-1})]);case 29:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"getAllIds",value:function(e){var t=[e._id];if(e.children)for(var n=0,r=Object.values(e.children);n<r.length;n++){var a=this.getAllIds(r[n]);t.push.apply(t,fe(a))}return t}}]),o}(tr.AssemblySpecificChange);kr.FromFileBaseChange=jr,Object.defineProperty(Er,"__esModule",{value:!0}),Er.AddAssemblyAndFeaturesFromFileChange=void 0;var Lr=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","AddAssemblyAndFeaturesFromFileChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=ue(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileIds:r.fileIds}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C,A,O,T,N,I;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.assemblyModel,r=t.checkModel,a=t.fileModel,o=t.filesService,i=t.user,s=this.assembly,l=this.logger,c=ve(this.changes),e.prev=3,c.s();case 5:if((u=c.n()).done){e.next=71;break}if(m=(h=u.value).assemblyName,g=h.parseOptions,y=h.fileIds.fa,Dt.env.FILE_UPLOAD_FOLDER){e.next=12;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 12:return e.next=14,a.findById(y).exec();case 14:if(v=e.sent){e.next=17;break}throw new Error('File "'.concat(y,'" not found in Mongo'));case 17:return null===(d=l.debug)||void 0===d||d.call(l,'FileId "'.concat(y,'", checksum "').concat(v.checksum,'"')),e.next=20,n.findOne({name:m}).exec();case 20:if(!e.sent){e.next=23;break}throw new Error('Assembly "'.concat(m,'" already exists'));case 23:return e.next=25,r.find({isDefault:!0}).exec();case 25:return b=e.sent.map((function(e){return e._id.toHexString()})),e.next=29,n.create([{_id:s,name:m,user:i,status:-1,fileId:y,checks:b}]);case 29:return _=ue(e.sent,1),w=_[0],null===(f=l.debug)||void 0===f||f.call(l,'Added new assembly "'.concat(m,'", docId "').concat(w._id.toHexString(),'"')),null===(p=l.debug)||void 0===p||p.call(l,'File type: "'.concat(v.type,'"')),e.next=36,this.addRefSeqIntoDb(v,w._id.toString(),t);case 36:S=void 0===(x=(null!=g?g:{}).bufferSize)?1e4:x,E=o.parseGFF3(o.getFileStream(v),{bufferSize:S}),k=!1,C=!1,e.prev=40,O=U(E);case 42:return e.next=44,O.next();case 44:if(!(k=!(T=e.sent).done)){e.next=53;break}return I=T.value,null===(N=l.verbose)||void 0===N||N.call(l,"ENTRY=".concat(JSON.stringify(I))),e.next=50,this.addFeatureIntoDb(I,t);case 50:k=!1,e.next=42;break;case 53:e.next=59;break;case 55:e.prev=55,e.t0=e.catch(40),C=!0,A=e.t0;case 59:if(e.prev=59,e.prev=60,!k||null==O.return){e.next=64;break}return e.next=64,O.return();case 64:if(e.prev=64,!C){e.next=67;break}throw A;case 67:return e.finish(64);case 68:return e.finish(59);case 69:e.next=5;break;case 71:e.next=76;break;case 73:e.prev=73,e.t1=e.catch(3),c.e(e.t1);case 76:return e.prev=76,c.f(),e.finish(76);case 79:case"end":return e.stop()}}),e,this,[[3,73,76,79],[40,55,59,69],[60,,64,68]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new o({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),o}(kr.FromFileBaseChange);Er.AddAssemblyAndFeaturesFromFileChange=Lr;var qr={},Br={},Ur=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};K(this,e),this.baseOverrides={},this.url=t;var r=n.fetch||globalThis.fetch.bind(globalThis);if(!r)throw new TypeError("no fetch function supplied, and none found in global environment");n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}var t,n,r,a,o,i;return X(e,[{key:"getBufferFromResponse",value:(i=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!=typeof t.buffer){e.next=4;break}return e.abrupt("return",t.buffer());case 4:if("function"!=typeof t.arrayBuffer){e.next=11;break}return e.next=7,t.arrayBuffer();case 7:return e.abrupt("return",Yt.from(e.sent));case 11:throw new TypeError("invalid HTTP response object, has no buffer method, and no arrayBuffer method");case 12:case"end":return e.stop()}}),e)}))),function(e){return i.apply(this,arguments)})},{key:"fetch",value:(o=Y(V().mark((function e(t,n){var r;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.fetchImplementation(t,n);case 3:case 12:r=e.sent,e.next=16;break;case 6:if(e.prev=6,e.t0=e.catch(0),!"".concat(e.t0).includes("Failed to fetch")){e.next=15;break}return console.warn("generic-filehandle: refetching ".concat(t," to attempt to work around chrome CORS header caching bug")),e.next=12,this.fetchImplementation(t,$($({},n),{},{cache:"reload"}));case 15:throw e.t0;case 16:return e.abrupt("return",r);case 17:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t){return o.apply(this,arguments)})},{key:"read",value:(a=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y=arguments;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=y.length>1&&void 0!==y[1]?y[1]:0,a=y.length>3&&void 0!==y[3]?y[3]:0,s=void 0===(i=(o=y.length>4&&void 0!==y[4]?y[4]:{}).headers)?{}:i,l=o.signal,u=void 0===(c=o.overrides)?{}:c,(r=y.length>2?y[2]:void 0)<Infinity?s.range="bytes=".concat(a,"-").concat(a+r):Infinity===r&&0!==a&&(s.range="bytes=".concat(a,"-")),d=$($($({},this.baseOverrides),u),{},{headers:$($($({},s),u.headers),this.baseOverrides.headers),method:"GET",redirect:"follow",mode:"cors",signal:l}),e.next=9,this.fetch(this.url,d);case 9:if((f=e.sent).ok){e.next=12;break}throw new Error("HTTP ".concat(f.status," ").concat(f.statusText," ").concat(this.url));case 12:if((200!==f.status||0!==a)&&206!==f.status){e.next=21;break}return e.next=15,this.getBufferFromResponse(f);case 15:return h=(p=e.sent).copy(t,n,0,Math.min(r,p.length)),m=f.headers.get("content-range"),(g=/\/(\d+)$/.exec(m||""))&&g[1]&&(this._stat={size:parseInt(g[1],10)}),e.abrupt("return",{bytesRead:h,buffer:t});case 21:if(200!==f.status){e.next=23;break}throw new Error("${this.url} fetch returned status 200, expected 206");case 23:throw new Error("HTTP ".concat(f.status," fetching ").concat(this.url));case 24:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"readFile",value:(r=Y(V().mark((function e(){var t,n,r,a,o,i,s,l,c,u=arguments;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof(t=u.length>0&&void 0!==u[0]?u[0]:{})?(n=t,r={}):(n=t.encoding,delete(r=t).encoding),s=void 0===(i=(a=r).overrides)?{}:i,l=$($({headers:void 0===(o=a.headers)?{}:o,method:"GET",redirect:"follow",mode:"cors",signal:a.signal},this.baseOverrides),s),e.next=6,this.fetch(this.url,l);case 6:if(c=e.sent){e.next=9;break}throw new Error("generic-filehandle failed to fetch");case 9:if(200===c.status){e.next=11;break}throw Object.assign(new Error("HTTP ".concat(c.status," fetching ").concat(this.url)),{status:c.status});case 11:if("utf8"!==n){e.next=13;break}return e.abrupt("return",c.text());case 13:if(!n){e.next=15;break}throw new Error("unsupported encoding: ".concat(n));case 15:return e.abrupt("return",this.getBufferFromResponse(c));case 16:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"stat",value:(n=Y(V().mark((function e(){var t;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._stat){e.next=6;break}return t=Yt.allocUnsafe(10),e.next=4,this.read(t,0,10,0);case 4:if(this._stat){e.next=6;break}throw new Error("unable to determine size of file at ".concat(this.url));case 6:return e.abrupt("return",this._stat);case 7:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"close",value:(t=Y(V().mark((function e(){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return");case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}]),e}();function zr(e){var t=new FileReader;return new Promise((function(n,r){t.onerror=function(){t.abort(),r(new Error("problem reading blob"))},t.onabort=function(){r(new Error("blob reading was aborted"))},t.onload=function(){t.result&&"string"!=typeof t.result?n(t.result):r(new Error("unknown error reading blob"))},t.readAsArrayBuffer(e)}))}function Gr(e){var t=new FileReader;return new Promise((function(n,r){t.onerror=function(){t.abort(),r(new Error("problem reading blob"))},t.onabort=function(){r(new Error("blob reading was aborted"))},t.onload=function(){t.result&&"string"==typeof t.result?n(t.result):r(new Error("unknown error reading blob"))},t.readAsText(e)}))}var Hr=function(){function e(t){K(this,e),this.blob=t,this.size=t.size}var t,n,r,a;return X(e,[{key:"read",value:(a=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c=arguments;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=c.length>1&&void 0!==c[1]?c[1]:0,a=c.length>3&&void 0!==c[3]?c[3]:0,r=c.length>2?c[2]:void 0){e.next=5;break}return e.abrupt("return",{bytesRead:0,buffer:t});case 5:return i=(o=a)+r,e.next=9,zr(this.blob.slice(o,i));case 9:return s=Yt.from(e.sent),l=s.copy(t,n),e.abrupt("return",{bytesRead:l,buffer:s});case 13:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"readFile",value:(r=Y(V().mark((function e(t){var n;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("utf8"!==(n="string"==typeof t?t:t&&t.encoding)){e.next=3;break}return e.abrupt("return",Gr(this.blob));case 3:if(!n){e.next=5;break}throw new Error("unsupported encoding: ".concat(n));case 5:return e.next=7,zr(this.blob);case 7:return e.abrupt("return",Yt.from(e.sent));case 9:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"stat",value:(n=Y(V().mark((function e(){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{size:this.size});case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"close",value:(t=Y(V().mark((function e(){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return");case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})}]),e}();function $r(e){return new Ur(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}var Vr={__proto__:null,open:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(void 0!==n)return n;if(void 0!==e)return $r(e,r);if(void 0!==t)return new Br(t,r);throw new Error("no url, path, or filehandle provided, cannot open")},fromUrl:$r,RemoteFile:Ur,LocalFile:Br,BlobFile:Hr},Wr={};!function(e){var t="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!==W(r))throw new TypeError(r+"must be non-object");for(var a in r)n(r,a)&&(e[a]=r[a])}}return e},e.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var r={arraySet:function(e,t,n,r,a){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),a);else for(var o=0;o<r;o++)e[a+o]=t[n+o]},flattenChunks:function(e){var t,n,r,a,o,i;for(r=0,t=0,n=e.length;t<n;t++)r+=e[t].length;for(i=new Uint8Array(r),a=0,t=0,n=e.length;t<n;t++)i.set(o=e[t],a),a+=o.length;return i}},a={arraySet:function(e,t,n,r,a){for(var o=0;o<r;o++)e[a+o]=t[n+o]},flattenChunks:function(e){return[].concat.apply([],e)}};e.setTyped=function(t){t?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,r)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,a))},e.setTyped(t)}(Wr);var Jr={},Yr={},Kr={},Zr=Wr;function Xr(e){for(var t=e.length;--t>=0;)e[t]=0}var Qr=15,ea=16,ta=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],na=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ra=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],aa=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],oa=new Array(576);Xr(oa);var ia=new Array(60);Xr(ia);var sa=new Array(512);Xr(sa);var la=new Array(256);Xr(la);var ca=new Array(29);Xr(ca);var ua,da,fa,pa=new Array(30);function ha(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length}function ma(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function ga(e){return e<256?sa[e]:sa[256+(e>>>7)]}function ya(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function va(e,t,n){e.bi_valid>ea-n?(e.bi_buf|=t<<e.bi_valid&65535,ya(e,e.bi_buf),e.bi_buf=t>>ea-e.bi_valid,e.bi_valid+=n-ea):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function ba(e,t,n){va(e,n[2*t],n[2*t+1])}function _a(e,t){var n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}function wa(e,t,n){var r,a,o=new Array(Qr+1),i=0;for(r=1;r<=Qr;r++)o[r]=i=i+n[r-1]<<1;for(a=0;a<=t;a++){var s=e[2*a+1];0!==s&&(e[2*a]=_a(o[s]++,s))}}function xa(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Sa(e){e.bi_valid>8?ya(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Ea(e,t,n,r){var a=2*t,o=2*n;return e[a]<e[o]||e[a]===e[o]&&r[t]<=r[n]}function ka(e,t,n){for(var r=e.heap[n],a=n<<1;a<=e.heap_len&&(a<e.heap_len&&Ea(t,e.heap[a+1],e.heap[a],e.depth)&&a++,!Ea(t,r,e.heap[a],e.depth));)e.heap[n]=e.heap[a],n=a,a<<=1;e.heap[n]=r}function Ca(e,t,n){var r,a,o,i,s=0;if(0!==e.last_lit)do{r=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],a=e.pending_buf[e.l_buf+s],s++,0===r?ba(e,a,t):(ba(e,(o=la[a])+256+1,t),0!==(i=ta[o])&&va(e,a-=ca[o],i),ba(e,o=ga(--r),n),0!==(i=na[o])&&va(e,r-=pa[o],i))}while(s<e.last_lit);ba(e,256,t)}function Aa(e,t){var n,r,a,o=t.dyn_tree,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=573,n=0;n<l;n++)0!==o[2*n]?(e.heap[++e.heap_len]=c=n,e.depth[n]=0):o[2*n+1]=0;for(;e.heap_len<2;)o[2*(a=e.heap[++e.heap_len]=c<2?++c:0)]=1,e.depth[a]=0,e.opt_len--,s&&(e.static_len-=i[2*a+1]);for(t.max_code=c,n=e.heap_len>>1;n>=1;n--)ka(e,o,n);a=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],ka(e,o,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,o[2*a]=o[2*n]+o[2*r],e.depth[a]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,o[2*n+1]=o[2*r+1]=a,e.heap[1]=a++,ka(e,o,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,a,o,i,s,l=t.dyn_tree,c=t.max_code,u=t.stat_desc.static_tree,d=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,p=t.stat_desc.extra_base,h=t.stat_desc.max_length,m=0;for(o=0;o<=Qr;o++)e.bl_count[o]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)(o=l[2*l[2*(r=e.heap[n])+1]+1]+1)>h&&(o=h,m++),l[2*r+1]=o,r>c||(e.bl_count[o]++,i=0,r>=p&&(i=f[r-p]),e.opt_len+=(s=l[2*r])*(o+i),d&&(e.static_len+=s*(u[2*r+1]+i)));if(0!==m){do{for(o=h-1;0===e.bl_count[o];)o--;e.bl_count[o]--,e.bl_count[o+1]+=2,e.bl_count[h]--,m-=2}while(m>0);for(o=h;0!==o;o--)for(r=e.bl_count[o];0!==r;)(a=e.heap[--n])>c||(l[2*a+1]!==o&&(e.opt_len+=(o-l[2*a+1])*l[2*a],l[2*a+1]=o),r--)}}(e,t),wa(o,c,e.bl_count)}function Oa(e,t,n){var r,a,o=-1,i=t[1],s=0,l=7,c=4;for(0===i&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)a=i,i=t[2*(r+1)+1],++s<l&&a===i||(s<c?e.bl_tree[2*a]+=s:0!==a?(a!==o&&e.bl_tree[2*a]++,e.bl_tree[32]++):s<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=0,o=a,0===i?(l=138,c=3):a===i?(l=6,c=3):(l=7,c=4))}function Ta(e,t,n){var r,a,o=-1,i=t[1],s=0,l=7,c=4;for(0===i&&(l=138,c=3),r=0;r<=n;r++)if(a=i,i=t[2*(r+1)+1],!(++s<l&&a===i)){if(s<c)do{ba(e,a,e.bl_tree)}while(0!=--s);else 0!==a?(a!==o&&(ba(e,a,e.bl_tree),s--),ba(e,16,e.bl_tree),va(e,s-3,2)):s<=10?(ba(e,17,e.bl_tree),va(e,s-3,3)):(ba(e,18,e.bl_tree),va(e,s-11,7));s=0,o=a,0===i?(l=138,c=3):a===i?(l=6,c=3):(l=7,c=4)}}Xr(pa);var Na=!1;function Ia(e,t,n,r){va(e,0+(r?1:0),3),function(e,t,n,r){Sa(e),ya(e,n),ya(e,~n),Zr.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n)}Kr._tr_init=function(e){Na||(function(){var e,t,n,r,a,o=new Array(Qr+1);for(n=0,r=0;r<28;r++)for(ca[r]=n,e=0;e<1<<ta[r];e++)la[n++]=r;for(la[n-1]=r,a=0,r=0;r<16;r++)for(pa[r]=a,e=0;e<1<<na[r];e++)sa[a++]=r;for(a>>=7;r<30;r++)for(pa[r]=a<<7,e=0;e<1<<na[r]-7;e++)sa[256+a++]=r;for(t=0;t<=Qr;t++)o[t]=0;for(e=0;e<=143;)oa[2*e+1]=8,e++,o[8]++;for(;e<=255;)oa[2*e+1]=9,e++,o[9]++;for(;e<=279;)oa[2*e+1]=7,e++,o[7]++;for(;e<=287;)oa[2*e+1]=8,e++,o[8]++;for(wa(oa,287,o),e=0;e<30;e++)ia[2*e+1]=5,ia[2*e]=_a(e,5);ua=new ha(oa,ta,257,286,Qr),da=new ha(ia,na,0,30,Qr),fa=new ha(new Array(0),ra,0,19,7)}(),Na=!0),e.l_desc=new ma(e.dyn_ltree,ua),e.d_desc=new ma(e.dyn_dtree,da),e.bl_desc=new ma(e.bl_tree,fa),e.bi_buf=0,e.bi_valid=0,xa(e)},Kr._tr_stored_block=Ia,Kr._tr_flush_block=function(e,t,n,r){var a,o,i=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),Aa(e,e.l_desc),Aa(e,e.d_desc),i=function(e){var t;for(Oa(e,e.dyn_ltree,e.l_desc.max_code),Oa(e,e.dyn_dtree,e.d_desc.max_code),Aa(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*aa[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),(o=e.static_len+3+7>>>3)<=(a=e.opt_len+3+7>>>3)&&(a=o)):a=o=n+5,n+4<=a&&-1!==t?Ia(e,t,n,r):4===e.strategy||o===a?(va(e,2+(r?1:0),3),Ca(e,oa,ia)):(va(e,4+(r?1:0),3),function(e,t,n,r){var a;for(va(e,t-257,5),va(e,n-1,5),va(e,r-4,4),a=0;a<r;a++)va(e,e.bl_tree[2*aa[a]+1],3);Ta(e,e.dyn_ltree,t-1),Ta(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,i+1),Ca(e,e.dyn_ltree,e.dyn_dtree)),xa(e),r&&Sa(e)},Kr._tr_tally=function(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(la[n]+256+1)]++,e.dyn_dtree[2*ga(t)]++),e.last_lit===e.lit_bufsize-1},Kr._tr_align=function(e){va(e,2,3),ba(e,256,oa),function(e){16===e.bi_valid?(ya(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)};var Ra=function(e,t,n,r){for(var a=65535&e|0,o=e>>>16&65535|0,i=0;0!==n;){n-=i=n>2e3?2e3:n;do{o=o+(a=a+t[r++]|0)|0}while(--i);a%=65521,o%=65521}return a|o<<16|0};function Fa(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}var Pa,Ma=Fa(),Da=function(e,t,n,r){var a=Ma,o=r+n;e^=-1;for(var i=r;i<o;i++)e=e>>>8^a[255&(e^t[i])];return-1^e},ja={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},La=Wr,qa=Kr,Ba=Ra,Ua=Da,za=ja,Ga=0,Ha=0,$a=-2,Va=2,Wa=8,Ja=286,Ya=30,Ka=19,Za=2*Ja+1,Xa=15,Qa=3,eo=258,to=eo+Qa+1,no=42,ro=103,ao=113,oo=666;function io(e,t){return e.msg=za[t],t}function so(e){return(e<<1)-(e>4?9:0)}function lo(e){for(var t=e.length;--t>=0;)e[t]=0}function co(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(La.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function uo(e,t){qa._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,co(e.strm)}function fo(e,t){e.pending_buf[e.pending++]=t}function po(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function ho(e,t){var n,r,a=e.max_chain_length,o=e.strstart,i=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-to?e.strstart-(e.w_size-to):0,c=e.window,u=e.w_mask,d=e.prev,f=e.strstart+eo,p=c[o+i-1],h=c[o+i];e.prev_length>=e.good_match&&(a>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(n=t)+i]===h&&c[n+i-1]===p&&c[n]===c[o]&&c[++n]===c[o+1]){o+=2,n++;do{}while(c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&o<f);if(r=eo-(f-o),o=f-eo,r>i){if(e.match_start=t,i=r,r>=s)break;p=c[o+i-1],h=c[o+i]}}}while((t=d[t&u])>l&&0!=--a);return i<=e.lookahead?i:e.lookahead}function mo(e){var t,n,r,a,o,i,s,l,c,u,d=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=d+(d-to)){La.arraySet(e.window,e.window,d,d,0),e.match_start-=d,e.strstart-=d,e.block_start-=d,t=n=e.hash_size;do{r=e.head[--t],e.head[t]=r>=d?r-d:0}while(--n);t=n=d;do{r=e.prev[--t],e.prev[t]=r>=d?r-d:0}while(--n);a+=d}if(0===e.strm.avail_in)break;if(s=e.window,l=e.strstart+e.lookahead,u=void 0,(u=(i=e.strm).avail_in)>(c=a)&&(u=c),n=0===u?0:(i.avail_in-=u,La.arraySet(s,i.input,i.next_in,u,l),1===i.state.wrap?i.adler=Ba(i.adler,s,u,l):2===i.state.wrap&&(i.adler=Ua(i.adler,s,u,l)),i.next_in+=u,i.total_in+=u,u),e.lookahead+=n,e.lookahead+e.insert>=Qa)for(e.ins_h=e.window[o=e.strstart-e.insert],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+Qa-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<Qa)););}while(e.lookahead<to&&0!==e.strm.avail_in)}function go(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(mo(e),0===e.lookahead&&t===Ga)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,uo(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-to&&(uo(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(uo(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&uo(e,!1),1)}function yo(e,t){for(var n,r;;){if(e.lookahead<to){if(mo(e),e.lookahead<to&&t===Ga)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=Qa&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Qa-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-to&&(e.match_length=ho(e,n)),e.match_length>=Qa)if(r=qa._tr_tally(e,e.strstart-e.match_start,e.match_length-Qa),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Qa){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Qa-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=qa._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(uo(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<Qa-1?e.strstart:Qa-1,4===t?(uo(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(uo(e,!1),0===e.strm.avail_out)?1:2}function vo(e,t){for(var n,r,a;;){if(e.lookahead<to){if(mo(e),e.lookahead<to&&t===Ga)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=Qa&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Qa-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Qa-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-to&&(e.match_length=ho(e,n),e.match_length<=5&&(1===e.strategy||e.match_length===Qa&&e.strstart-e.match_start>4096)&&(e.match_length=Qa-1)),e.prev_length>=Qa&&e.match_length<=e.prev_length){a=e.strstart+e.lookahead-Qa,r=qa._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-Qa),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=a&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+Qa-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=Qa-1,e.strstart++,r&&(uo(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((r=qa._tr_tally(e,0,e.window[e.strstart-1]))&&uo(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=qa._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Qa-1?e.strstart:Qa-1,4===t?(uo(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(uo(e,!1),0===e.strm.avail_out)?1:2}function bo(e,t,n,r,a){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=a}function _o(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Wa,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new La.Buf16(2*Za),this.dyn_dtree=new La.Buf16(2*(2*Ya+1)),this.bl_tree=new La.Buf16(2*(2*Ka+1)),lo(this.dyn_ltree),lo(this.dyn_dtree),lo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new La.Buf16(Xa+1),this.heap=new La.Buf16(2*Ja+1),lo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new La.Buf16(2*Ja+1),lo(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function wo(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=Va,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?no:ao,e.adler=2===t.wrap?0:1,t.last_flush=Ga,qa._tr_init(t),Ha):io(e,$a)}function xo(e){var t,n=wo(e);return n===Ha&&((t=e.state).window_size=2*t.w_size,lo(t.head),t.max_lazy_match=Pa[t.level].max_lazy,t.good_match=Pa[t.level].good_length,t.nice_match=Pa[t.level].nice_length,t.max_chain_length=Pa[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Qa-1,t.match_available=0,t.ins_h=0),n}function So(e,t,n,r,a,o){if(!e)return $a;var i=1;if(-1===t&&(t=6),r<0?(i=0,r=-r):r>15&&(i=2,r-=16),a<1||a>9||n!==Wa||r<8||r>15||t<0||t>9||o<0||o>4)return io(e,$a);8===r&&(r=9);var s=new _o;return e.state=s,s.strm=e,s.wrap=i,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=a+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+Qa-1)/Qa),s.window=new La.Buf8(2*s.w_size),s.head=new La.Buf16(s.hash_size),s.prev=new La.Buf16(s.w_size),s.lit_bufsize=1<<a+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new La.Buf8(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=o,s.method=n,xo(e)}Pa=[new bo(0,0,0,0,go),new bo(4,4,8,4,yo),new bo(4,5,16,8,yo),new bo(4,6,32,32,yo),new bo(4,4,16,16,vo),new bo(8,16,32,32,vo),new bo(8,16,128,128,vo),new bo(8,32,128,256,vo),new bo(32,128,258,1024,vo),new bo(32,258,258,4096,vo)],Yr.deflateInit=function(e,t){return So(e,t,Wa,15,8,0)},Yr.deflateInit2=So,Yr.deflateReset=xo,Yr.deflateResetKeep=wo,Yr.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?$a:(e.state.gzhead=t,Ha):$a},Yr.deflate=function(e,t){var n,r,a,o;if(!e||!e.state||t>5||t<0)return e?io(e,$a):$a;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===oo&&4!==t)return io(e,0===e.avail_out?-5:$a);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===no)if(2===r.wrap)e.adler=0,fo(r,31),fo(r,139),fo(r,8),r.gzhead?(fo(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),fo(r,255&r.gzhead.time),fo(r,r.gzhead.time>>8&255),fo(r,r.gzhead.time>>16&255),fo(r,r.gzhead.time>>24&255),fo(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),fo(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(fo(r,255&r.gzhead.extra.length),fo(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Ua(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(fo(r,0),fo(r,0),fo(r,0),fo(r,0),fo(r,0),fo(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),fo(r,3),r.status=ao);else{var i=Wa+(r.w_bits-8<<4)<<8;i|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(i|=32),i+=31-i%31,r.status=ao,po(r,i),0!==r.strstart&&(po(r,e.adler>>>16),po(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>a&&(e.adler=Ua(e.adler,r.pending_buf,r.pending-a,a)),co(e),a=r.pending,r.pending!==r.pending_buf_size));)fo(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(e.adler=Ua(e.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Ua(e.adler,r.pending_buf,r.pending-a,a)),co(e),a=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,fo(r,o)}while(0!==o);r.gzhead.hcrc&&r.pending>a&&(e.adler=Ua(e.adler,r.pending_buf,r.pending-a,a)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(e.adler=Ua(e.adler,r.pending_buf,r.pending-a,a)),co(e),a=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,fo(r,o)}while(0!==o);r.gzhead.hcrc&&r.pending>a&&(e.adler=Ua(e.adler,r.pending_buf,r.pending-a,a)),0===o&&(r.status=ro)}else r.status=ro;if(r.status===ro&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&co(e),r.pending+2<=r.pending_buf_size&&(fo(r,255&e.adler),fo(r,e.adler>>8&255),e.adler=0,r.status=ao)):r.status=ao),0!==r.pending){if(co(e),0===e.avail_out)return r.last_flush=-1,Ha}else if(0===e.avail_in&&so(t)<=so(n)&&4!==t)return io(e,-5);if(r.status===oo&&0!==e.avail_in)return io(e,-5);if(0!==e.avail_in||0!==r.lookahead||t!==Ga&&r.status!==oo){var s=2===r.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(mo(e),0===e.lookahead)){if(t===Ga)return 1;break}if(e.match_length=0,n=qa._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(uo(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(uo(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(uo(e,!1),0===e.strm.avail_out)?1:2}(r,t):3===r.strategy?function(e,t){for(var n,r,a,o,i=e.window;;){if(e.lookahead<=eo){if(mo(e),e.lookahead<=eo&&t===Ga)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=Qa&&e.strstart>0&&(r=i[a=e.strstart-1])===i[++a]&&r===i[++a]&&r===i[++a]){o=e.strstart+eo;do{}while(r===i[++a]&&r===i[++a]&&r===i[++a]&&r===i[++a]&&r===i[++a]&&r===i[++a]&&r===i[++a]&&r===i[++a]&&a<o);e.match_length=eo-(o-a),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Qa?(n=qa._tr_tally(e,1,e.match_length-Qa),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=qa._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(uo(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(uo(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(uo(e,!1),0===e.strm.avail_out)?1:2}(r,t):Pa[r.level].func(r,t);if(3!==s&&4!==s||(r.status=oo),1===s||3===s)return 0===e.avail_out&&(r.last_flush=-1),Ha;if(2===s&&(1===t?qa._tr_align(r):5!==t&&(qa._tr_stored_block(r,0,0,!1),3===t&&(lo(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),co(e),0===e.avail_out))return r.last_flush=-1,Ha}return 4!==t?Ha:r.wrap<=0?1:(2===r.wrap?(fo(r,255&e.adler),fo(r,e.adler>>8&255),fo(r,e.adler>>16&255),fo(r,e.adler>>24&255),fo(r,255&e.total_in),fo(r,e.total_in>>8&255),fo(r,e.total_in>>16&255),fo(r,e.total_in>>24&255)):(po(r,e.adler>>>16),po(r,65535&e.adler)),co(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?Ha:1)},Yr.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==no&&69!==t&&73!==t&&91!==t&&t!==ro&&t!==ao&&t!==oo?io(e,$a):(e.state=null,t===ao?io(e,-3):Ha):$a},Yr.deflateSetDictionary=function(e,t){var n,r,a,o,i,s,l,c,u=t.length;if(!e||!e.state)return $a;if(2===(o=(n=e.state).wrap)||1===o&&n.status!==no||n.lookahead)return $a;for(1===o&&(e.adler=Ba(e.adler,t,u,0)),n.wrap=0,u>=n.w_size&&(0===o&&(lo(n.head),n.strstart=0,n.block_start=0,n.insert=0),c=new La.Buf8(n.w_size),La.arraySet(c,t,u-n.w_size,n.w_size,0),t=c,u=n.w_size),i=e.avail_in,s=e.next_in,l=e.input,e.avail_in=u,e.next_in=0,e.input=t,mo(n);n.lookahead>=Qa;){r=n.strstart,a=n.lookahead-(Qa-1);do{n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+Qa-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++}while(--a);n.strstart=r,n.lookahead=Qa-1,mo(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Qa-1,n.match_available=0,e.next_in=s,e.input=l,e.avail_in=i,n.wrap=o,Ha},Yr.deflateInfo="pako deflate (from Nodeca project)";var Eo={},ko=Wr,Co=!0,Ao=!0;try{String.fromCharCode.apply(null,[0])}catch(e){Co=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){Ao=!1}for(var Oo=new ko.Buf8(256),To=0;To<256;To++)Oo[To]=To>=252?6:To>=248?5:To>=240?4:To>=224?3:To>=192?2:1;function No(e,t){if(t<65534&&(e.subarray&&Ao||!e.subarray&&Co))return String.fromCharCode.apply(null,ko.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}Oo[254]=Oo[254]=1,Eo.string2buf=function(e){var t,n,r,a,o,i=e.length,s=0;for(a=0;a<i;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<i&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new ko.Buf8(s),o=0,a=0;o<s;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<i&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|63&n):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|63&n):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|63&n);return t},Eo.buf2binstring=function(e){return No(e,e.length)},Eo.binstring2buf=function(e){for(var t=new ko.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},Eo.buf2string=function(e,t){var n,r,a,o,i=t||e.length,s=new Array(2*i);for(r=0,n=0;n<i;)if((a=e[n++])<128)s[r++]=a;else if((o=Oo[a])>4)s[r++]=65533,n+=o-1;else{for(a&=2===o?31:3===o?15:7;o>1&&n<i;)a=a<<6|63&e[n++],o--;o>1?s[r++]=65533:a<65536?s[r++]=a:(s[r++]=55296|(a-=65536)>>10&1023,s[r++]=56320|1023&a)}return No(s,r)},Eo.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+Oo[e[n]]>t?n:t};var Io=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Ro=Yr,Fo=Wr,Po=Eo,Mo=ja,Do=Io,jo=Object.prototype.toString,Lo=0,qo=-1,Bo=0,Uo=8;function zo(e){if(!(this instanceof zo))return new zo(e);this.options=Fo.assign({level:qo,method:Uo,chunkSize:16384,windowBits:15,memLevel:8,strategy:Bo,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Do,this.strm.avail_out=0;var n=Ro.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Lo)throw new Error(Mo[n]);if(t.header&&Ro.deflateSetHeader(this.strm,t.header),t.dictionary){var r;if(r="string"==typeof t.dictionary?Po.string2buf(t.dictionary):"[object ArrayBuffer]"===jo.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(n=Ro.deflateSetDictionary(this.strm,r))!==Lo)throw new Error(Mo[n]);this._dict_set=!0}}function Go(e,t){var n=new zo(t);if(n.push(e,!0),n.err)throw n.msg||Mo[n.err];return n.result}zo.prototype.push=function(e,t){var n,r,a=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=t===~~t?t:!0===t?4:0,a.input="string"==typeof e?Po.string2buf(e):"[object ArrayBuffer]"===jo.call(e)?new Uint8Array(e):e,a.next_in=0,a.avail_in=a.input.length;do{if(0===a.avail_out&&(a.output=new Fo.Buf8(o),a.next_out=0,a.avail_out=o),1!==(n=Ro.deflate(a,r))&&n!==Lo)return this.onEnd(n),this.ended=!0,!1;0!==a.avail_out&&(0!==a.avail_in||4!==r&&2!==r)||this.onData("string"===this.options.to?Po.buf2binstring(Fo.shrinkBuf(a.output,a.next_out)):Fo.shrinkBuf(a.output,a.next_out))}while((a.avail_in>0||0===a.avail_out)&&1!==n);return 4===r?(n=Ro.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Lo):2!==r||(this.onEnd(Lo),a.avail_out=0,!0)},zo.prototype.onData=function(e){this.chunks.push(e)},zo.prototype.onEnd=function(e){e===Lo&&(this.result="string"===this.options.to?this.chunks.join(""):Fo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},Jr.Deflate=zo,Jr.deflate=Go,Jr.deflateRaw=function(e,t){return(t=t||{}).raw=!0,Go(e,t)},Jr.gzip=function(e,t){return(t=t||{}).gzip=!0,Go(e,t)};var Ho={},$o={},Vo=Wr,Wo=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Jo=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Yo=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],Ko=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],Zo=Wr,Xo=Ra,Qo=Da,ei=function(e,t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C;k=e.input,a=(r=e.next_in)+(e.avail_in-5),C=e.output,i=(o=e.next_out)-(t-e.avail_out),s=o+(e.avail_out-257),l=(n=e.state).dmax,c=n.wsize,u=n.whave,d=n.wnext,f=n.window,p=n.hold,h=n.bits,m=n.lencode,g=n.distcode,y=(1<<n.lenbits)-1,v=(1<<n.distbits)-1;e:do{h<15&&(p+=k[r++]<<h,p+=k[r++]<<(h+=8),h+=8),b=m[p&y];t:for(;;){if(p>>>=_=b>>>24,h-=_,0==(_=b>>>16&255))C[o++]=65535&b;else{if(!(16&_)){if(0==(64&_)){b=m[(65535&b)+(p&(1<<_)-1)];continue t}if(32&_){n.mode=12;break e}e.msg="invalid literal/length code",n.mode=30;break e}w=65535&b,(_&=15)&&(h<_&&(p+=k[r++]<<h,h+=8),w+=p&(1<<_)-1,p>>>=_,h-=_),h<15&&(p+=k[r++]<<h,p+=k[r++]<<(h+=8),h+=8),b=g[p&v];n:for(;;){if(p>>>=_=b>>>24,h-=_,!(16&(_=b>>>16&255))){if(0==(64&_)){b=g[(65535&b)+(p&(1<<_)-1)];continue n}e.msg="invalid distance code",n.mode=30;break e}if(x=65535&b,h<(_&=15)&&(p+=k[r++]<<h,(h+=8)<_&&(p+=k[r++]<<h,h+=8)),(x+=p&(1<<_)-1)>l){e.msg="invalid distance too far back",n.mode=30;break e}if(p>>>=_,h-=_,x>(_=o-i)){if((_=x-_)>u&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(S=0,E=f,0===d){if(S+=c-_,_<w){w-=_;do{C[o++]=f[S++]}while(--_);S=o-x,E=C}}else if(d<_){if(S+=c+d-_,(_-=d)<w){w-=_;do{C[o++]=f[S++]}while(--_);if(S=0,d<w){w-=_=d;do{C[o++]=f[S++]}while(--_);S=o-x,E=C}}}else if(S+=d-_,_<w){w-=_;do{C[o++]=f[S++]}while(--_);S=o-x,E=C}for(;w>2;)C[o++]=E[S++],C[o++]=E[S++],C[o++]=E[S++],w-=3;w&&(C[o++]=E[S++],w>1&&(C[o++]=E[S++]))}else{S=o-x;do{C[o++]=C[S++],C[o++]=C[S++],C[o++]=C[S++],w-=3}while(w>2);w&&(C[o++]=C[S++],w>1&&(C[o++]=C[S++]))}break}}break}}while(r<a&&o<s);p&=(1<<(h-=(w=h>>3)<<3))-1,e.next_in=r-=w,e.next_out=o,e.avail_in=r<a?a-r+5:5-(r-a),e.avail_out=o<s?s-o+257:257-(o-s),n.hold=p,n.bits=h},ti=function(e,t,n,r,a,o,i,s){var l,c,u,d,f,p,h,m,g,y=s.bits,v=0,b=0,_=0,w=0,x=0,S=0,E=0,k=0,C=0,A=0,O=null,T=0,N=new Vo.Buf16(16),I=new Vo.Buf16(16),R=null,F=0;for(v=0;v<=15;v++)N[v]=0;for(b=0;b<r;b++)N[t[n+b]]++;for(x=y,w=15;w>=1&&0===N[w];w--);if(x>w&&(x=w),0===w)return a[o++]=20971520,a[o++]=20971520,s.bits=1,0;for(_=1;_<w&&0===N[_];_++);for(x<_&&(x=_),k=1,v=1;v<=15;v++)if(k<<=1,(k-=N[v])<0)return-1;if(k>0&&(0===e||1!==w))return-1;for(I[1]=0,v=1;v<15;v++)I[v+1]=I[v]+N[v];for(b=0;b<r;b++)0!==t[n+b]&&(i[I[t[n+b]]++]=b);if(0===e?(O=R=i,p=19):1===e?(O=Wo,T-=257,R=Jo,F-=257,p=256):(O=Yo,R=Ko,p=-1),A=0,b=0,v=_,f=o,S=x,E=0,u=-1,d=(C=1<<x)-1,1===e&&C>852||2===e&&C>592)return 1;for(;;){h=v-E,i[b]<p?(m=0,g=i[b]):i[b]>p?(m=R[F+i[b]],g=O[T+i[b]]):(m=96,g=0),l=1<<v-E,_=c=1<<S;do{a[f+(A>>E)+(c-=l)]=h<<24|m<<16|g|0}while(0!==c);for(l=1<<v-1;A&l;)l>>=1;if(0!==l?(A&=l-1,A+=l):A=0,b++,0==--N[v]){if(v===w)break;v=t[n+i[b]]}if(v>x&&(A&d)!==u){for(0===E&&(E=x),f+=_,k=1<<(S=v-E);S+E<w&&!((k-=N[S+E])<=0);)S++,k<<=1;if(C+=1<<S,1===e&&C>852||2===e&&C>592)return 1;a[u=A&d]=x<<24|S<<16|f-o|0}}return 0!==A&&(a[f+A]=v-E<<24|64<<16|0),s.bits=x,0},ni=0,ri=-2,ai=1,oi=12,ii=30,si=852,li=592;function ci(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function ui(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Zo.Buf16(320),this.work=new Zo.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function di(e){var t;return e&&e.state?(e.total_in=e.total_out=(t=e.state).total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=ai,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Zo.Buf32(si),t.distcode=t.distdyn=new Zo.Buf32(li),t.sane=1,t.back=-1,ni):ri}function fi(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,di(e)):ri}function pi(e,t){var n,r;return e&&e.state?(t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?ri:(null!==(r=e.state).window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,fi(e))):ri}function hi(e,t){var n,r;return e?(r=new ui,e.state=r,r.window=null,(n=pi(e,t))!==ni&&(e.state=null),n):ri}var mi,gi,yi=!0;function vi(e){if(yi){var t;for(mi=new Zo.Buf32(512),gi=new Zo.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(ti(1,e.lens,0,288,mi,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;ti(2,e.lens,0,32,gi,0,e.work,{bits:5}),yi=!1}e.lencode=mi,e.lenbits=9,e.distcode=gi,e.distbits=5}function bi(e,t,n,r){var a,o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Zo.Buf8(o.wsize)),r>=o.wsize?(Zo.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((a=o.wsize-o.wnext)>r&&(a=r),Zo.arraySet(o.window,t,n-r,a,o.wnext),(r-=a)?(Zo.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0}$o.inflateReset=fi,$o.inflateReset2=pi,$o.inflateResetKeep=di,$o.inflateInit=function(e){return hi(e,15)},$o.inflateInit2=hi,$o.inflate=function(e,t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C=0,A=new Zo.Buf8(4),O=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return ri;(n=e.state).mode===oi&&(n.mode=13),i=e.next_out,a=e.output,o=e.next_in,r=e.input,c=n.hold,u=n.bits,d=s=e.avail_in,f=l=e.avail_out,S=ni;e:for(;;)switch(n.mode){case ai:if(0===n.wrap){n.mode=13;break}for(;u<16;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(2&n.wrap&&35615===c){n.check=0,A[0]=255&c,A[1]=c>>>8&255,n.check=Qo(n.check,A,2,0),c=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=ii;break}if(8!=(15&c)){e.msg="unknown compression method",n.mode=ii;break}if(u-=4,x=8+(15&(c>>>=4)),0===n.wbits)n.wbits=x;else if(x>n.wbits){e.msg="invalid window size",n.mode=ii;break}n.dmax=1<<x,e.adler=n.check=1,n.mode=512&c?10:oi,c=0,u=0;break;case 2:for(;u<16;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(n.flags=c,8!=(255&n.flags)){e.msg="unknown compression method",n.mode=ii;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=ii;break}n.head&&(n.head.text=c>>8&1),512&n.flags&&(A[0]=255&c,A[1]=c>>>8&255,n.check=Qo(n.check,A,2,0)),c=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.time=c),512&n.flags&&(A[0]=255&c,A[1]=c>>>8&255,A[2]=c>>>16&255,A[3]=c>>>24&255,n.check=Qo(n.check,A,4,0)),c=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}n.head&&(n.head.xflags=255&c,n.head.os=c>>8),512&n.flags&&(A[0]=255&c,A[1]=c>>>8&255,n.check=Qo(n.check,A,2,0)),c=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),512&n.flags&&(A[0]=255&c,A[1]=c>>>8&255,n.check=Qo(n.check,A,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((p=n.length)>s&&(p=s),p&&(n.head&&(x=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Zo.arraySet(n.head.extra,r,o,p,x)),512&n.flags&&(n.check=Qo(n.check,r,p,o)),s-=p,o+=p,n.length-=p),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break e;p=0;do{x=r[o+p++],n.head&&x&&n.length<65536&&(n.head.name+=String.fromCharCode(x))}while(x&&p<s);if(512&n.flags&&(n.check=Qo(n.check,r,p,o)),s-=p,o+=p,x)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===s)break e;p=0;do{x=r[o+p++],n.head&&x&&n.length<65536&&(n.head.comment+=String.fromCharCode(x))}while(x&&p<s);if(512&n.flags&&(n.check=Qo(n.check,r,p,o)),s-=p,o+=p,x)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;u<16;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(c!==(65535&n.check)){e.msg="header crc mismatch",n.mode=ii;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=oi;break;case 10:for(;u<32;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}e.adler=n.check=ci(c),c=0,u=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=i,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,2;e.adler=n.check=1,n.mode=oi;case oi:if(5===t||6===t)break e;case 13:if(n.last){c>>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}switch(n.last=1&c,u-=1,3&(c>>>=1)){case 0:n.mode=14;break;case 1:if(vi(n),n.mode=20,6===t){c>>>=2,u-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=ii}c>>>=2,u-=2;break;case 14:for(c>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=ii;break}if(n.length=65535&c,c=0,u=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(p=n.length){if(p>s&&(p=s),p>l&&(p=l),0===p)break e;Zo.arraySet(a,r,o,p,i),s-=p,o+=p,l-=p,i+=p,n.length-=p;break}n.mode=oi;break;case 17:for(;u<14;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(n.nlen=257+(31&c),u-=5,n.ndist=1+(31&(c>>>=5)),u-=5,n.ncode=4+(15&(c>>>=5)),c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=ii;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;u<3;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}n.lens[O[n.have++]]=7&c,c>>>=3,u-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S=ti(0,n.lens,0,19,n.lencode,0,n.work,E={bits:n.lenbits}),n.lenbits=E.bits,S){e.msg="invalid code lengths set",n.mode=ii;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;y=(C=n.lencode[c&(1<<n.lenbits)-1])>>>16&255,v=65535&C,!((g=C>>>24)<=u);){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(v<16)c>>>=g,u-=g,n.lens[n.have++]=v;else{if(16===v){for(k=g+2;u<k;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(c>>>=g,u-=g,0===n.have){e.msg="invalid bit length repeat",n.mode=ii;break}x=n.lens[n.have-1],p=3+(3&c),c>>>=2,u-=2}else if(17===v){for(k=g+3;u<k;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}u-=g,x=0,p=3+(7&(c>>>=g)),c>>>=3,u-=3}else{for(k=g+7;u<k;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}u-=g,x=0,p=11+(127&(c>>>=g)),c>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=ii;break}for(;p--;)n.lens[n.have++]=x}}if(n.mode===ii)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=ii;break}if(n.lenbits=9,S=ti(1,n.lens,0,n.nlen,n.lencode,0,n.work,E={bits:n.lenbits}),n.lenbits=E.bits,S){e.msg="invalid literal/lengths set",n.mode=ii;break}if(n.distbits=6,n.distcode=n.distdyn,S=ti(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E={bits:n.distbits}),n.distbits=E.bits,S){e.msg="invalid distances set",n.mode=ii;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(s>=6&&l>=258){e.next_out=i,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,ei(e,f),i=e.next_out,a=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,c=n.hold,u=n.bits,n.mode===oi&&(n.back=-1);break}for(n.back=0;y=(C=n.lencode[c&(1<<n.lenbits)-1])>>>16&255,v=65535&C,!((g=C>>>24)<=u);){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(y&&0==(240&y)){for(b=g,_=y,w=v;y=(C=n.lencode[w+((c&(1<<b+_)-1)>>b)])>>>16&255,v=65535&C,!(b+(g=C>>>24)<=u);){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}c>>>=b,u-=b,n.back+=b}if(c>>>=g,u-=g,n.back+=g,n.length=v,0===y){n.mode=26;break}if(32&y){n.back=-1,n.mode=oi;break}if(64&y){e.msg="invalid literal/length code",n.mode=ii;break}n.extra=15&y,n.mode=22;case 22:if(n.extra){for(k=n.extra;u<k;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;y=(C=n.distcode[c&(1<<n.distbits)-1])>>>16&255,v=65535&C,!((g=C>>>24)<=u);){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(0==(240&y)){for(b=g,_=y,w=v;y=(C=n.distcode[w+((c&(1<<b+_)-1)>>b)])>>>16&255,v=65535&C,!(b+(g=C>>>24)<=u);){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}c>>>=b,u-=b,n.back+=b}if(c>>>=g,u-=g,n.back+=g,64&y){e.msg="invalid distance code",n.mode=ii;break}n.offset=v,n.extra=15&y,n.mode=24;case 24:if(n.extra){for(k=n.extra;u<k;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=ii;break}n.mode=25;case 25:if(0===l)break e;if(n.offset>(p=f-l)){if((p=n.offset-p)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=ii;break}h=p>n.wnext?n.wsize-(p-=n.wnext):n.wnext-p,p>n.length&&(p=n.length),m=n.window}else m=a,h=i-n.offset,p=n.length;p>l&&(p=l),l-=p,n.length-=p;do{a[i++]=m[h++]}while(--p);0===n.length&&(n.mode=21);break;case 26:if(0===l)break e;a[i++]=n.length,l--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break e;s--,c|=r[o++]<<u,u+=8}if(e.total_out+=f-=l,n.total+=f,f&&(e.adler=n.check=n.flags?Qo(n.check,a,f,i-f):Xo(n.check,a,f,i-f)),f=l,(n.flags?c:ci(c))!==n.check){e.msg="incorrect data check",n.mode=ii;break}c=0,u=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;u<32;){if(0===s)break e;s--,c+=r[o++]<<u,u+=8}if(c!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=ii;break}c=0,u=0}n.mode=29;case 29:S=1;break e;case ii:S=-3;break e;case 31:return-4;default:return ri}return e.next_out=i,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=c,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<ii&&(n.mode<27||4!==t))&&bi(e,e.output,e.next_out,f-e.avail_out),f-=e.avail_out,e.total_in+=d-=e.avail_in,e.total_out+=f,n.total+=f,n.wrap&&f&&(e.adler=n.check=n.flags?Qo(n.check,a,f,e.next_out-f):Xo(n.check,a,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===oi?128:0)+(20===n.mode||15===n.mode?256:0),(0===d&&0===f||4===t)&&S===ni&&(S=-5),S},$o.inflateEnd=function(e){if(!e||!e.state)return ri;var t=e.state;return t.window&&(t.window=null),e.state=null,ni},$o.inflateGetHeader=function(e,t){var n;return e&&e.state?0==(2&(n=e.state).wrap)?ri:(n.head=t,t.done=!1,ni):ri},$o.inflateSetDictionary=function(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?ri:11===n.mode&&Xo(1,t,r,0)!==n.check?-3:bi(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,ni):ri},$o.inflateInfo="pako inflate (from Nodeca project)";var _i={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},wi=$o,xi=Wr,Si=Eo,Ei=_i,ki=ja,Ci=Io,Ai=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},Oi=Object.prototype.toString;function Ti(e){if(!(this instanceof Ti))return new Ti(e);this.options=xi.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ci,this.strm.avail_out=0;var n=wi.inflateInit2(this.strm,t.windowBits);if(n!==Ei.Z_OK)throw new Error(ki[n]);if(this.header=new Ai,wi.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Si.string2buf(t.dictionary):"[object ArrayBuffer]"===Oi.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=wi.inflateSetDictionary(this.strm,t.dictionary))!==Ei.Z_OK))throw new Error(ki[n])}function Ni(e,t){var n=new Ti(t);if(n.push(e,!0),n.err)throw n.msg||ki[n.err];return n.result}Ti.prototype.push=function(e,t){var n,r,a,o,i,s=this.strm,l=this.options.chunkSize,c=this.options.dictionary,u=!1;if(this.ended)return!1;r=t===~~t?t:!0===t?Ei.Z_FINISH:Ei.Z_NO_FLUSH,s.input="string"==typeof e?Si.binstring2buf(e):"[object ArrayBuffer]"===Oi.call(e)?new Uint8Array(e):e,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new xi.Buf8(l),s.next_out=0,s.avail_out=l),(n=wi.inflate(s,Ei.Z_NO_FLUSH))===Ei.Z_NEED_DICT&&c&&(n=wi.inflateSetDictionary(this.strm,c)),n===Ei.Z_BUF_ERROR&&!0===u&&(n=Ei.Z_OK,u=!1),n!==Ei.Z_STREAM_END&&n!==Ei.Z_OK)return this.onEnd(n),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&n!==Ei.Z_STREAM_END&&(0!==s.avail_in||r!==Ei.Z_FINISH&&r!==Ei.Z_SYNC_FLUSH)||("string"===this.options.to?(a=Si.utf8border(s.output,s.next_out),o=s.next_out-a,i=Si.buf2string(s.output,a),s.next_out=o,s.avail_out=l-o,o&&xi.arraySet(s.output,s.output,a,o,0),this.onData(i)):this.onData(xi.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(u=!0)}while((s.avail_in>0||0===s.avail_out)&&n!==Ei.Z_STREAM_END);return n===Ei.Z_STREAM_END&&(r=Ei.Z_FINISH),r===Ei.Z_FINISH?(n=wi.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Ei.Z_OK):r!==Ei.Z_SYNC_FLUSH||(this.onEnd(Ei.Z_OK),s.avail_out=0,!0)},Ti.prototype.onData=function(e){this.chunks.push(e)},Ti.prototype.onEnd=function(e){e===Ei.Z_OK&&(this.result="string"===this.options.to?this.chunks.join(""):xi.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},Ho.Inflate=Ti,Ho.inflate=Ni,Ho.inflateRaw=function(e,t){return(t=t||{}).raw=!0,Ni(e,t)},Ho.ungzip=Ni;var Ii={};(0,Wr.assign)(Ii,Jr,Ho,_i);var Ri=Ii;function Fi(e){return Pi.apply(this,arguments)}function Pi(){return Pi=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,r=0,a=0,o=[],i=0;case 5:if(l=t.subarray(r),s=new Ri.Inflate,n=s.strm,s.push(l,Ri.Z_SYNC_FLUSH),!s.err){e.next=12;break}throw new Error(s.msg);case 12:r+=n.next_in,o[a]=s.result,i+=o[a].length,a+=1;case 16:if(n.avail_in){e.next=5;break}case 17:for(c=new Uint8Array(i),u=0,d=0;u<o.length;u++)c.set(o[u],d),d+=o[u].length;return e.abrupt("return",Yt.from(c));case 22:if(e.prev=22,e.t0=e.catch(0),!"".concat(e.t0).match(/incorrect header check/)){e.next=26;break}throw new Error("problem decompressing block: incorrect gzip header check");case 26:throw e.t0;case 27:case"end":return e.stop()}}),e,null,[[0,22]])}))),Pi.apply(this,arguments)}var Mi=null;try{Mi=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(Ql){}function Di(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function ji(e){return!0===(e&&e.__isLong__)}function Li(e){var t=Math.clz32(e&-e);return e?31-t:t}Object.defineProperty(Di.prototype,"__isLong__",{value:!0}),Di.isLong=ji;var qi={},Bi={};function Ui(e,t){var n,r,a;return t?(a=0<=(e>>>=0)&&e<256)&&(r=Bi[e])?r:(n=Gi(e,0,!0),a&&(Bi[e]=n),n):(a=-128<=(e|=0)&&e<128)&&(r=qi[e])?r:(n=Gi(e,e<0?-1:0,!1),a&&(qi[e]=n),n)}function zi(e,t){if(isNaN(e))return t?Xi:Zi;if(t){if(e<0)return Xi;if(e>=Ji)return rs}else{if(e<=-Yi)return as;if(e+1>=Yi)return ns}return e<0?zi(-e,t).neg():Gi(e%Wi|0,e/Wi|0,t)}function Gi(e,t,n){return new Di(e,t,n)}Di.fromInt=Ui,Di.fromNumber=zi,Di.fromBits=Gi;var Hi=Math.pow;function $i(e,t,n){if(0===e.length)throw Error("empty string");if("number"==typeof t?(n=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?Xi:Zi;if((n=n||10)<2||36<n)throw RangeError("radix");var r;if((r=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===r)return $i(e.substring(1),t,n).neg();for(var a=zi(Hi(n,8)),o=Zi,i=0;i<e.length;i+=8){var s=Math.min(8,e.length-i),l=parseInt(e.substring(i,i+s),n);if(s<8){var c=zi(Hi(n,s));o=o.mul(c).add(zi(l))}else o=(o=o.mul(a)).add(zi(l))}return o.unsigned=t,o}function Vi(e,t){return"number"==typeof e?zi(e,t):"string"==typeof e?$i(e,t):Gi(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}Di.fromString=$i,Di.fromValue=Vi;var Wi=4294967296,Ji=Wi*Wi,Yi=Ji/2,Ki=Ui(16777216),Zi=Ui(0);Di.ZERO=Zi;var Xi=Ui(0,!0);Di.UZERO=Xi;var Qi=Ui(1);Di.ONE=Qi;var es=Ui(1,!0);Di.UONE=es;var ts=Ui(-1);Di.NEG_ONE=ts;var ns=Gi(-1,2147483647,!1);Di.MAX_VALUE=ns;var rs=Gi(-1,-1,!0);Di.MAX_UNSIGNED_VALUE=rs;var as=Gi(0,-2147483648,!1);Di.MIN_VALUE=as;var os=Di.prototype;os.toInt=function(){return this.unsigned?this.low>>>0:this.low},os.toNumber=function(){return this.unsigned?(this.high>>>0)*Wi+(this.low>>>0):this.high*Wi+(this.low>>>0)},os.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(as)){var t=zi(e),n=this.div(t),r=n.mul(t).sub(this);return n.toString(e)+r.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var a=zi(Hi(e,6),this.unsigned),o=this,i="";;){var s=o.div(a),l=(o.sub(s.mul(a)).toInt()>>>0).toString(e);if((o=s).isZero())return l+i;for(;l.length<6;)l="0"+l;i=""+l+i}},os.getHighBits=function(){return this.high},os.getHighBitsUnsigned=function(){return this.high>>>0},os.getLowBits=function(){return this.low},os.getLowBitsUnsigned=function(){return this.low>>>0},os.getNumBitsAbs=function(){if(this.isNegative())return this.eq(as)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<<t);t--);return 0!=this.high?t+33:t+1},os.isZero=function(){return 0===this.high&&0===this.low},os.eqz=os.isZero,os.isNegative=function(){return!this.unsigned&&this.high<0},os.isPositive=function(){return this.unsigned||this.high>=0},os.isOdd=function(){return 1==(1&this.low)},os.isEven=function(){return 0==(1&this.low)},os.equals=function(e){return ji(e)||(e=Vi(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},os.eq=os.equals,os.notEquals=function(e){return!this.eq(e)},os.neq=os.notEquals,os.ne=os.notEquals,os.lessThan=function(e){return this.comp(e)<0},os.lt=os.lessThan,os.lessThanOrEqual=function(e){return this.comp(e)<=0},os.lte=os.lessThanOrEqual,os.le=os.lessThanOrEqual,os.greaterThan=function(e){return this.comp(e)>0},os.gt=os.greaterThan,os.greaterThanOrEqual=function(e){return this.comp(e)>=0},os.gte=os.greaterThanOrEqual,os.ge=os.greaterThanOrEqual,os.compare=function(e){if(ji(e)||(e=Vi(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},os.comp=os.compare,os.negate=function(){return!this.unsigned&&this.eq(as)?as:this.not().add(Qi)},os.neg=os.negate,os.add=function(e){ji(e)||(e=Vi(e));var t=0,n=0,r=0,a=0;return r+=(a+=(65535&this.low)+(65535&e.low))>>>16,n+=(r+=(this.low>>>16)+(e.low>>>16))>>>16,t+=(n+=(65535&this.high)+(65535&e.high))>>>16,t+=(this.high>>>16)+(e.high>>>16),Gi((r&=65535)<<16|(a&=65535),(t&=65535)<<16|(n&=65535),this.unsigned)},os.subtract=function(e){return ji(e)||(e=Vi(e)),this.add(e.neg())},os.sub=os.subtract,os.multiply=function(e){if(this.isZero())return this;if(ji(e)||(e=Vi(e)),Mi)return Gi(Mi.mul(this.low,this.high,e.low,e.high),Mi.get_high(),this.unsigned);if(e.isZero())return this.unsigned?Xi:Zi;if(this.eq(as))return e.isOdd()?as:Zi;if(e.eq(as))return this.isOdd()?as:Zi;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Ki)&&e.lt(Ki))return zi(this.toNumber()*e.toNumber(),this.unsigned);var t=65535&this.high,n=this.low>>>16,r=65535&this.low,a=65535&e.high,o=e.low>>>16,i=65535&e.low,s=0,l=0,c=0,u=0;return c+=(u+=r*i)>>>16,l+=(c+=n*i)>>>16,c&=65535,l+=(c+=r*o)>>>16,s+=(l+=t*i)>>>16,l&=65535,s+=(l+=n*o)>>>16,l&=65535,s+=(l+=r*a)>>>16,s+=(this.high>>>16)*i+t*o+n*a+r*(e.high>>>16),Gi((c&=65535)<<16|(u&=65535),(s&=65535)<<16|(l&=65535),this.unsigned)},os.mul=os.multiply,os.divide=function(e){if(ji(e)||(e=Vi(e)),e.isZero())throw Error("division by zero");var t,n,r;if(Mi)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?Gi((this.unsigned?Mi.div_u:Mi.div_s)(this.low,this.high,e.low,e.high),Mi.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?Xi:Zi;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Xi;if(e.gt(this.shru(1)))return es;r=Xi}else{if(this.eq(as))return e.eq(Qi)||e.eq(ts)?as:e.eq(as)?Qi:(t=this.shr(1).div(e).shl(1)).eq(Zi)?e.isNegative()?Qi:ts:(n=this.sub(e.mul(t)),r=t.add(n.div(e)));if(e.eq(as))return this.unsigned?Xi:Zi;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();r=Zi}for(n=this;n.gte(e);){t=Math.max(1,Math.floor(n.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(t)/Math.LN2),o=a<=48?1:Hi(2,a-48),i=zi(t),s=i.mul(e);s.isNegative()||s.gt(n);)s=(i=zi(t-=o,this.unsigned)).mul(e);i.isZero()&&(i=Qi),r=r.add(i),n=n.sub(s)}return r},os.div=os.divide,os.modulo=function(e){return ji(e)||(e=Vi(e)),Mi?Gi((this.unsigned?Mi.rem_u:Mi.rem_s)(this.low,this.high,e.low,e.high),Mi.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},os.mod=os.modulo,os.rem=os.modulo,os.not=function(){return Gi(~this.low,~this.high,this.unsigned)},os.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},os.clz=os.countLeadingZeros,os.countTrailingZeros=function(){return this.low?Li(this.low):Li(this.high)+32},os.ctz=os.countTrailingZeros,os.and=function(e){return ji(e)||(e=Vi(e)),Gi(this.low&e.low,this.high&e.high,this.unsigned)},os.or=function(e){return ji(e)||(e=Vi(e)),Gi(this.low|e.low,this.high|e.high,this.unsigned)},os.xor=function(e){return ji(e)||(e=Vi(e)),Gi(this.low^e.low,this.high^e.high,this.unsigned)},os.shiftLeft=function(e){return ji(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gi(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Gi(0,this.low<<e-32,this.unsigned)},os.shl=os.shiftLeft,os.shiftRight=function(e){return ji(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gi(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Gi(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},os.shr=os.shiftRight,os.shiftRightUnsigned=function(e){return ji(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gi(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):Gi(32===e?this.high:this.high>>>e-32,0,this.unsigned)},os.shru=os.shiftRightUnsigned,os.shr_u=os.shiftRightUnsigned,os.rotateLeft=function(e){var t;return ji(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?Gi(this.high,this.low,this.unsigned):e<32?Gi(this.low<<e|this.high>>>(t=32-e),this.high<<e|this.low>>>t,this.unsigned):Gi(this.high<<(e-=32)|this.low>>>(t=32-e),this.low<<e|this.high>>>t,this.unsigned)},os.rotl=os.rotateLeft,os.rotateRight=function(e){var t;return ji(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?Gi(this.high,this.low,this.unsigned):e<32?Gi(this.high<<(t=32-e)|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned):Gi(this.low<<(t=32-(e-=32))|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned)},os.rotr=os.rotateRight,os.toSigned=function(){return this.unsigned?Gi(this.low,this.high,!1):this},os.toUnsigned=function(){return this.unsigned?this:Gi(this.low,this.high,!0)},os.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},os.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},os.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Di.fromBytes=function(e,t,n){return n?Di.fromBytesLE(e,t):Di.fromBytesBE(e,t)},Di.fromBytesLE=function(e,t){return new Di(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Di.fromBytesBE=function(e,t){return new Di(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};var is=function(){function e(t){var n=t.filehandle,r=t.path;if(K(this,e),n)this.filehandle=n;else{if(!r)throw new TypeError("either filehandle or path must be defined");this.filehandle=new Br(r)}}var t,n,r;return X(e,[{key:"_readLongWithOverflow",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Di.fromBytesLE(e.slice(t,t+8),n);if(r.greaterThan(Number.MAX_SAFE_INTEGER)||r.lessThan(Number.MIN_SAFE_INTEGER))throw new TypeError("integer overflow");return r.toNumber()}},{key:"_getIndex",value:function(){return this.index||(this.index=this._readIndex()),this.index}},{key:"_readIndex",value:(r=Y(V().mark((function e(){var t,n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Yt.allocUnsafe(8),e.next=3,this.filehandle.read(t,0,8,0);case 3:if(n=this._readLongWithOverflow(t,0,!0)){e.next=6;break}return e.abrupt("return",[[0,0]]);case 6:if((r=new Array(n+1))[0]=[0,0],!((a=16*n)>Number.MAX_SAFE_INTEGER)){e.next=11;break}throw new TypeError("integer overflow");case 11:return t=Yt.allocUnsafe(a),e.next=14,this.filehandle.read(t,0,a,8);case 14:for(o=0;o<n;o+=1)i=this._readLongWithOverflow(t,16*o),s=this._readLongWithOverflow(t,16*o+8),r[o+1]=[i,s];return e.abrupt("return",r);case 16:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"getLastBlock",value:(n=Y(V().mark((function e(){var t;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndex();case 2:if((t=e.sent).length){e.next=5;break}return e.abrupt("return",void 0);case 5:return e.abrupt("return",t[t.length-1]);case 6:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getRelevantBlocksForRead",value:(t=Y(V().mark((function e(t,n){var r,a,o,i,s,l,c,u,d;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n+t,0!==t){e.next=3;break}return e.abrupt("return",[]);case 3:return e.next=5,this._getIndex();case 5:for(o=[],i=function(e,t){var r=e[1];return r<=n&&(t?t[1]:Infinity)>n?0:r<n?-1:1},s=0,l=(a=e.sent).length-1,c=Math.floor(a.length/2),u=i(a[c],a[c+1]);0!==u;)u>0?l=c-1:u<0&&(s=c+1),c=Math.ceil((l-s)/2)+s,u=i(a[c],a[c+1]);o.push(a[c]),d=c+1;case 15:if(!(d<a.length)){e.next=22;break}if(o.push(a[d]),!(a[d][1]>=r)){e.next=19;break}return e.abrupt("break",22);case 19:d+=1,e.next=15;break;case 22:return o[o.length-1][1]<r&&o.push([]),e.abrupt("return",o);case 24:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),e}(),ss=function(){function e(t){var n=t.filehandle,r=t.path,a=t.gziFilehandle,o=t.gziPath;if(K(this,e),n)this.filehandle=n;else{if(!r)throw new TypeError("either filehandle or path must be defined");this.filehandle=new Br(r)}if(!a&&!o&&!r)throw new TypeError("either gziFilehandle or gziPath must be defined");this.gzi=new is({filehandle:a,path:a||o||!r?"".concat(r,".gzi"):o})}var t,n,r,a;return X(e,[{key:"stat",value:(a=Y(V().mark((function e(){var t;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.filehandle.stat();case 2:return t=e.sent,e.t0=Object,e.t1=t,e.next=7,this.getUncompressedFileSize();case 7:return e.t2=e.sent,e.t3=void 0,e.t4=void 0,e.t5={size:e.t2,blocks:e.t3,blksize:e.t4},e.abrupt("return",e.t0.assign.call(e.t0,e.t1,e.t5));case 12:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getUncompressedFileSize",value:(r=Y(V().mark((function e(){var t,n,r,a,o;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.gzi.getLastBlock();case 2:return t=ue(e.sent,2),n=t[1],e.next=7,this.filehandle.stat();case 7:return r=e.sent.size,a=Yt.allocUnsafe(4),e.next=12,this.filehandle.read(a,0,4,r-28-4);case 12:if(4===e.sent.bytesRead){e.next=16;break}throw new Error("read error");case 16:return o=a.readUInt32LE(0),e.abrupt("return",n+o);case 18:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"_readAndUncompressBlock",value:(n=Y(V().mark((function e(t,n,r){var a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=ue(n,1)[0],o=ue(r,1)[0]){e.next=7;break}return e.next=6,this.filehandle.stat();case 6:o=e.sent.size;case 7:return i=o-a,e.next=10,this.filehandle.read(t,0,i,a);case 10:return e.next=12,Fi(t.slice(0,i));case 12:return e.abrupt("return",e.sent);case 14:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"read",value:(t=Y(V().mark((function e(t,n,r,a){var o,i,s,l,c,u,d,f,p,h;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.gzi.getRelevantBlocksForRead(r,a);case 2:o=e.sent,i=Yt.allocUnsafe(65536),s=n,l=0,c=0;case 7:if(!(c<o.length-1)){e.next=18;break}return e.next=10,this._readAndUncompressBlock(i,o[c],o[c+1]);case 10:u=e.sent,d=ue(o[c],2),p=(f=d[1])>=a?0:a-f,h=Math.min(a+r,f+u.length)-f,p>=0&&p<u.length&&(u.copy(t,s,p,h),s+=h-p,l+=h-p);case 15:c+=1,e.next=7;break;case 18:return e.abrupt("return",{bytesRead:l,buffer:t});case 19:case"end":return e.stop()}}),e,this)}))),function(e,n,r,a){return t.apply(this,arguments)})}]),e}();function ls(e,t){return e.offset+e.lineBytes*Math.floor(t/e.lineLength)+t%e.lineLength}function cs(e,t){return us.apply(this,arguments)}function us(){return us=Y(V().mark((function e(t,n){var r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.readFile(n);case 2:if((r=e.sent)&&r.length){e.next=5;break}throw new Error("No data read from FASTA index (FAI) file");case 5:return a=0,i=r.toString("utf8").split(/\r?\n/).filter((function(e){return/\S/.test(e)})).map((function(e){return e.split("\t")})).filter((function(e){return""!==e[0]})).map((function(e){return o&&o.name===e[0]||(o={name:e[0],id:a},a+=1),{id:o.id,name:e[0],length:+e[1],start:0,end:+e[1],offset:+e[2],lineLength:+e[3],lineBytes:+e[4]}})),e.abrupt("return",{name:Object.fromEntries(i.map((function(e){return[e.name,e]}))),id:Object.fromEntries(i.map((function(e){return[e.id,e]})))});case 8:case"end":return e.stop()}}),e)}))),us.apply(this,arguments)}var ds=function(){function e(t){var n=t.fasta,r=t.fai,a=t.path,o=t.faiPath;if(K(this,e),n)this.fasta=n;else{if(!a)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new Br(a)}if(r)this.fai=r;else if(o)this.fai=new Br(o);else{if(!a)throw new Error("Need to pass filehandle for or path to localfile");this.fai=new Br("".concat(a,".fai"))}}var t,n,r,a,o,i,s,l,c;return X(e,[{key:"_getIndexes",value:(c=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.indexes||(this.indexes=cs(this.fai,t)),e.abrupt("return",this.indexes);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"getSequenceNames",value:(l=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Object,e.next=3,this._getIndexes(t);case 3:return e.t1=e.sent.name,e.abrupt("return",e.t0.keys.call(e.t0,e.t1));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"getSequenceSizes",value:(s=Y(V().mark((function e(t){var n,r,a;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={},e.next=3,this._getIndexes(t);case 3:for(r=Object.values(e.sent.id),a=0;a<r.length;a+=1)n[r[a].name]=r[a].length;return e.abrupt("return",n);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"getSequenceSize",value:(i=Y(V().mark((function e(t,n){var r;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(n);case 2:return e.abrupt("return",null===(r=e.sent.name[t])||void 0===r?void 0:r.length);case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"hasReferenceSequence",value:(o=Y(V().mark((function e(t,n){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(n);case 2:return e.t0=t,e.abrupt("return",!!e.sent.name[e.t0]);case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"getResiduesById",value:(a=Y(V().mark((function e(t,n,r,a){var o;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(a);case 2:if(e.t0=t,o=e.sent.id[e.t0]){e.next=6;break}return e.abrupt("return",void 0);case 6:return e.abrupt("return",this._fetchFromIndexEntry(o,n,r,a));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n,r){return a.apply(this,arguments)})},{key:"getResiduesByName",value:(r=Y(V().mark((function e(t,n,r,a){var o;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getIndexes(a);case 2:if(e.t0=t,o=e.sent.name[e.t0]){e.next=6;break}return e.abrupt("return",void 0);case 6:return e.abrupt("return",this._fetchFromIndexEntry(o,n,r,a));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n,a){return r.apply(this,arguments)})},{key:"getSequence",value:(n=Y(V().mark((function e(t,n,r,a){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getResiduesByName(t,n,r,a));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t,r,a){return n.apply(this,arguments)})},{key:"_fetchFromIndexEntry",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s,l=arguments;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=l.length>3?l[3]:void 0,a=l.length>2?l[2]:void 0,!((n=l.length>1&&void 0!==l[1]?l[1]:0)<0)){e.next=6;break}throw new TypeError("regionStart cannot be less than 0");case 6:if((void 0===a||a>t.length)&&(a=t.length),!(n>=a)){e.next=9;break}return e.abrupt("return","");case 9:return o=ls(t,n),i=ls(t,a)-o,s=Yt.allocUnsafe(i),e.next=14,this.fasta.read(s,0,i,o,r);case 14:return e.abrupt("return",s.toString("utf8").replace(/\s+/g,""));case 15:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),fs=function(e){ee(n,e);var t=le(n);function n(e){var r,a=e.fasta,o=e.path,i=e.fai,s=e.faiPath,l=e.gzi,c=e.gziPath;return K(this,n),r=t.call(this,{fasta:a,path:o,fai:i,faiPath:s}),a&&l?r.fasta=new ss({filehandle:a,gziFilehandle:l}):o&&c&&(r.fasta=new ss({path:o,gziPath:c})),r}return X(n)}(ds);function ps(e){return e.split(">").filter((function(e){return/\S/.test(e)})).map((function(e){var t=de(e.split("\n")),n=t[0],r=t.slice(1),a=de(n.split(" ")),o=a[0],i=a.slice(1),s=r.join("").replace(/\s/g,"");return{id:o,description:i.join(" "),sequence:s}}))}var hs=function(){function e(t){var n=t.fasta,r=t.path;if(K(this,e),n)this.fasta=n;else{if(!r)throw new Error("Need to pass fasta or path");this.fasta=new Br(r)}this.data=this.fasta.readFile().then((function(e){return ps(e.toString("utf8"))}))}var t,n;return X(e,[{key:"fetch",value:(n=Y(V().mark((function e(t,n,r){var a,o;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data;case 2:if(a=e.sent.find((function(e){return e.id===t})),o=r-n,a){e.next=7;break}throw new Error("no sequence with id ".concat(t," exists"));case 7:return e.abrupt("return",a.sequence.substr(n,o));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"getSequenceNames",value:(t=Y(V().mark((function e(){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data;case 2:return e.abrupt("return",e.sent.map((function(e){return e.id})));case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),ms=D({__proto__:null,parseSmallFasta:ps,FetchableSmallFasta:hs,IndexedFasta:ds,BgzipIndexedFasta:fs}),gs=D(Vr);Object.defineProperty(qr,"__esModule",{value:!0}),qr.AddAssemblyFromExternalChange=void 0;var ys=ms,vs=gs,bs=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","AddAssemblyFromExternalChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=ue(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,externalLocation:r.externalLocation}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C,A,O;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.assemblyModel,r=t.checkModel,a=t.refSeqModel,o=t.user,i=this.assembly,s=this.changes,l=this.logger,u=(c=Dt.env.CHUNK_SIZE)&&Number(c),d=ve(s),e.prev=5,d.s();case 7:if((f=d.n()).done){e.next=45;break}return m=(h=f.value).assemblyName,y=(g=h.externalLocation).fa,v=g.fai,_=(b=g.gzi)?new ys.BgzipIndexedFasta({fasta:new vs.RemoteFile(y,{fetch:fetch}),fai:new vs.RemoteFile(v,{fetch:fetch}),gzi:new vs.RemoteFile(b,{fetch:fetch})}):new ys.IndexedFasta({fasta:new vs.RemoteFile(y,{fetch:fetch}),fai:new vs.RemoteFile(v,{fetch:fetch})}),e.next=14,_.getSequenceSizes();case 14:if(w=e.sent){e.next=17;break}throw new Error("No data read from indexed fasta getSequenceSizes");case 17:return e.next=19,n.findOne({name:m}).exec();case 19:if(!e.sent){e.next=22;break}throw new Error('Assembly "'.concat(m,'" already exists'));case 22:return e.next=24,r.find({default:!0}).exec();case 24:return x=e.sent.map((function(e){return e._id.toHexString()})),e.next=28,n.create([{_id:i,name:m,user:o,status:-1,externalLocation:g,checks:x}]);case 28:S=ue(e.sent,1),E=S[0],null===(p=l.debug)||void 0===p||p.call(l,'Added new assembly "'.concat(m,'", docId "').concat(E._id,'"')),e.t0=V().keys(w);case 33:if((e.t1=e.t0()).done){e.next=43;break}return k=e.t1.value,e.next=37,a.create([$($({name:k,assembly:E._id,length:w[k]},u?{chunkSize:u}:null),{},{user:o,status:-1})]);case 37:A=ue(e.sent,1),O=A[0],null===(C=l.debug)||void 0===C||C.call(l,'Added new refSeq "'.concat(k,'", docId "').concat(O._id,'"')),e.next=33;break;case 43:e.next=7;break;case 45:e.next=50;break;case 47:e.prev=47,e.t2=e.catch(5),d.e(e.t2);case 50:return e.prev=50,d.f(),e.finish(50);case 53:case"end":return e.stop()}}),e,this,[[5,47,50,53]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new o({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),o}(tr.AssemblySpecificChange);qr.AddAssemblyFromExternalChange=bs;var _s={};Object.defineProperty(_s,"__esModule",{value:!0}),_s.AddAssemblyFromFileChange=void 0;var ws=ms,xs=function(e){ee(s,e);var t,n,r,a,o,i=le(s);function s(e,t){var n;return K(this,s),Q(se(n=i.call(this,e,t)),"typeName","AddAssemblyFromFileChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(s,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=ue(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileIds:r.fileIds}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(o=Y(V().mark((function e(t){var n,r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=ve(this.changes),e.prev=2,n.s();case 4:if((r=n.n()).done){e.next=11;break}return o=(a=r.value).assemblyName,i=a.fileIds,e.next=9,"gzi"in i?this.executeOnServerIndexed(t,o,i):this.executeOnServerFasta(t,o,i.fa);case 9:e.next=4;break;case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(2),n.e(e.t0);case 16:return e.prev=16,n.f(),e.finish(16);case 19:case"end":return e.stop()}}),e,this,[[2,13,16,19]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnServerIndexed",value:(a=Y(V().mark((function e(t,n,r){var a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C,A,O,T,N,I,R;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=(i=Dt.env.CHUNK_SIZE)&&Number(i),Dt.env.FILE_UPLOAD_FOLDER){e.next=5;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 5:return l=r.fa,c=r.fai,u=r.gzi,d=t.assemblyModel,f=t.checkModel,p=t.fileModel,h=t.filesService,m=t.refSeqModel,g=t.user,e.next=9,p.findById(l);case 9:if(null==(y=e.sent)?void 0:y.checksum){e.next=13;break}throw new Error("No checksum for file document ".concat(null==y?void 0:y.id));case 13:return e.next=15,p.findById(c);case 15:if(null==(v=e.sent)?void 0:v.checksum){e.next=19;break}throw new Error("No checksum for file document ".concat(null==v?void 0:v.id));case 19:return e.next=21,p.findById(u);case 21:if(null==(b=e.sent)?void 0:b.checksum){e.next=25;break}throw new Error("No checksum for file document ".concat(null==b?void 0:b.id));case 25:return _=h.getFileHandle(y),w=h.getFileHandle(v),x=h.getFileHandle(b),S=new ws.BgzipIndexedFasta({fasta:_,fai:w,gzi:x}),e.next=31,S.getSequenceSizes();case 31:return E=e.sent,e.next=34,Promise.all([_.close(),w.close(),x.close()]);case 34:return e.next=36,d.findOne({name:n}).exec();case 36:if(!e.sent){e.next=39;break}throw new Error('Assembly "'.concat(n,'" already exists'));case 39:return e.next=41,f.find({isDefault:!0}).exec();case 41:return k=e.sent.map((function(e){return e._id.toHexString()})),e.next=45,d.create([{_id:this.assembly,name:n,user:g,status:-1,fileIds:r,checks:k}]);case 45:C=ue(e.sent,1),A=C[0],null===(a=(o=this.logger).debug)||void 0===a||a.call(o,'Added new assembly "'.concat(n,'", docId "').concat(A._id,'"')),e.t0=V().keys(E);case 50:if((e.t1=e.t0()).done){e.next=60;break}return O=e.t1.value,e.next=54,m.create([$($({name:O,assembly:A._id,length:E[O]},s?{chunkSize:s}:null),{},{user:g,status:-1})]);case 54:I=ue(e.sent,1),R=I[0],null===(T=(N=this.logger).debug)||void 0===T||T.call(N,'Added new refSeq "'.concat(O,'", docId "').concat(R._id,'"')),e.next=50;break;case 60:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return a.apply(this,arguments)})},{key:"executeOnServerFasta",value:(r=Y(V().mark((function e(t,n,r){var a,o,i,s,l,c,u,d,f,p,h,m,g,y;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=t.assemblyModel,d=t.checkModel,f=t.fileModel,p=t.user,e.next=3,f.findById(r).exec();case 3:if(h=e.sent){e.next=6;break}throw new Error('File "'.concat(r,'" not found in Mongo'));case 6:return null===(a=(o=this.logger).debug)||void 0===a||a.call(o,'FileId "'.concat(r,'", checksum "').concat(h.checksum,'"')),e.next=9,u.findOne({name:n}).exec();case 9:if(!e.sent){e.next=12;break}throw new Error('Assembly "'.concat(n,'" already exists'));case 12:return e.next=14,d.find({default:!0}).exec();case 14:return m=e.sent.map((function(e){return e._id.toHexString()})),e.next=18,u.create([{_id:this.assembly,name:n,user:p,status:-1,fileIds:{fa:r},checks:m}]);case 18:return g=ue(e.sent,1),y=g[0],null===(i=(s=this.logger).debug)||void 0===i||i.call(s,'Added new assembly "'.concat(n,'", docId "').concat(y._id,'"')),null===(l=(c=this.logger).debug)||void 0===l||l.call(c,'File type: "'.concat(h.type,'", assemblyId: "').concat(y._id,'"')),e.next=25,this.addRefSeqIntoDb(h,y._id.toString(),t);case 25:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new s({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),s}(kr.FromFileBaseChange);_s.AddAssemblyFromFileChange=xs;var Ss={},Es={};Object.defineProperty(Es,"__esModule",{value:!0}),Es.DeleteFeatureChange=void 0,Es.findAndDeleteChildFeature=As,Es.isDeleteFeatureChange=function(e){return"DeleteFeatureChange"===e.typeName};var ks=Ss,Cs=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","DeleteFeatureChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"notification",get:function(){return"Feature deleted successfully"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,deletedFeature:a.deletedFeature,parentFeatureId:a.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l=this;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,o=ve(this.changes),e.prev=3,s=V().mark((function e(){var t,o,s,c,u,d,f,p,h;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(o=i.value).deletedFeature,c=o.parentFeatureId,e.next=4,n.findOne({allIds:s._id}).session(r).exec();case 4:if(u=e.sent){e.next=9;break}throw d="*** ERROR: The following featureId was not found in database ='".concat(s._id,"'"),a.error(d),new Error(d);case 9:if(!u._id.equals(s._id)){e.next=16;break}if(!c){e.next=12;break}throw new Error('Feature "'.concat(s._id,'" is top-level, but received a parent feature ID'));case 12:return e.next=14,n.findByIdAndDelete(u._id);case 14:return null===(f=a.debug)||void 0===f||f.call(a,'Feature "'.concat(s._id,'" deleted from document "').concat(u._id,'". Whole document deleted.')),e.abrupt("return",1);case 16:return(p=As(u,s._id,l)).push(s._id),u.allIds=u.allIds.filter((function(e){return!p.includes(e)})),u.markModified("children"),e.prev=20,e.next=23,u.save();case 23:e.next=29;break;case 25:throw e.prev=25,e.t0=e.catch(20),null===(h=a.debug)||void 0===h||h.call(a,"*** FAILED: ".concat(e.t0)),e.t0;case 29:null===(t=a.debug)||void 0===t||t.call(a,'Feature "'.concat(s._id,'" deleted from document "').concat(u._id,'"'));case 30:case"end":return e.stop()}}),e,null,[[20,25]])})),o.s();case 6:if((i=o.n()).done){e.next=12;break}return e.delegateYield(s(),"t0",8);case 8:if(!e.t0){e.next=10;break}return e.abrupt("continue",10);case 10:e.next=6;break;case 12:e.next=17;break;case 14:e.prev=14,e.t1=e.catch(3),o.e(e.t1);case 17:return e.prev=17,o.f(),e.finish(17);case 20:case"end":return e.stop()}}),e,this,[[3,14,17,20]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changes),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=18;break}if(o=(a=r.value).deletedFeature,!(i=a.parentFeatureId)){e.next=15;break}if(s=t.getFeature(i)){e.next=12;break}throw new Error('Could not find parent feature "'.concat(i,'"'));case 12:s.deleteChild(o._id),e.next=16;break;case 15:t.getFeature(o._id)&&t.deleteFeature(o._id);case 16:e.next=5;break;case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(3),n.e(e.t0);case 23:return e.prev=23,n.f(),e.finish(23);case 26:case"end":return e.stop()}}),e,this,[[3,20,23,26]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,a=fe(this.changedIds).reverse(),o=fe(n).reverse().map((function(e){return{addedFeature:e.deletedFeature,parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(o),"'")),new ks.AddFeatureChange({changedIds:a,typeName:"AddFeatureChange",changes:o,assembly:t},{logger:r})}}]),o}(tr.FeatureChange);function As(e,t,n){if(!e.children)throw new Error("Feature ".concat(e._id," has no children"));var r=e._id,a=e.children,o=a.get(t);if(o){var i=n.getChildFeatureIds(o);return a.delete(t),i}var s,l=ve(a);try{for(l.s();!(s=l.n()).done;){var c=ue(s.value,2)[1];try{return As(c,t,n)}catch(e){}}}catch(e){l.e(e)}finally{l.f()}throw new Error('Feature "'.concat(t,'" not found in ').concat(r))}Es.DeleteFeatureChange=Cs,Object.defineProperty(Ss,"__esModule",{value:!0}),Ss.AddFeatureChange=void 0,Ss.isAddFeatureChange=function(e){return"AddFeatureChange"===e.typeName};var Os=Es,Ts=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","AddFeatureChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"notification",get:function(){return"Feature added successfully"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,addedFeature:a.addedFeature,parentFeatureId:a.parentFeatureId,copyFeature:a.copyFeature,allIds:a.allIds}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C,A,O,T,N,I,R,F,P,M,D,j,L,q;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.assemblyModel,o=t.featureModel,i=t.refSeqModel,s=t.session,l=t.user,c=this.assembly,u=this.changes,d=this.logger,e.next=4,a.findById(c).session(s).exec();case 4:if(e.sent){e.next=9;break}throw f='*** ERROR: Assembly with id "'.concat(c,'" not found'),d.error(f),new Error(f);case 9:p=0,null===(n=d.debug)||void 0===n||n.call(d,"changes: ".concat(JSON.stringify(u))),(h=Dt.env.INDEXED_IDS)&&(m=h.split(",")),g=ve(u),e.prev=14,g.s();case 16:if((y=g.n()).done){e.next=65;break}return b=y.value,null===(v=d.debug)||void 0===v||v.call(d,"change: ".concat(JSON.stringify(b))),w=b.allIds,x=b.copyFeature,S=b.parentFeatureId,E=(_=b.addedFeature)._id,k=_.refSeq,e.next=23,i.findById(k).session(s).exec();case 23:if(e.sent){e.next=26;break}throw new Error('RefSeq was not found by assembly "'.concat(c,'" and seq_id "').concat(k,'" not found'));case 26:if(!x){e.next=37;break}return A=this.getIndexedIds(_,m),e.next=30,o.create([$($({},_),{},{allIds:w,indexedIds:A,status:-1,user:l})],{session:s});case 30:O=ue(e.sent,1),T=O[0],null===(C=d.debug)||void 0===C||C.call(d,'Copied feature, docId "'.concat(T._id,'" to assembly "').concat(c,'"')),p++,e.next=62;break;case 37:if(!S){e.next=53;break}return e.next=40,o.findOne({allIds:S}).session(s).exec();case 40:if(I=e.sent){e.next=43;break}throw new Error('Could not find feature with ID "'.concat(S,'"'));case 43:if(R=this.getFeatureFromId(I,S)){e.next=46;break}throw new Error('Could not find feature with ID "'.concat(S,'" in feature "').concat(I._id,'"'));case 46:return this.addChild(R,_),F=this.getChildFeatureIds(_),(N=I.allIds).push.apply(N,[E].concat(fe(F))),e.next=51,I.save();case 51:e.next=62;break;case 53:return M=this.getChildFeatureIds(_),D=[E].concat(fe(M)),j=this.getIndexedIds(_,m),e.next=58,o.create([$({allIds:D,indexedIds:j,status:0},_)],{session:s});case 58:L=ue(e.sent,1),q=L[0],null===(P=d.verbose)||void 0===P||P.call(d,'Added docId "'.concat(q._id,'"'));case 62:p++;case 63:e.next=16;break;case 65:e.next=70;break;case 67:e.prev=67,e.t0=e.catch(14),g.e(e.t0);case 70:return e.prev=70,g.f(),e.finish(70);case 73:null===(r=d.debug)||void 0===r||r.call(d,"Added ".concat(p," new feature(s) into database."));case 74:case"end":return e.stop()}}),e,this,[[14,67,70,73]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s,l;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=this.assembly,r=ve(this.changes),e.prev=4,r.s();case 6:if((a=r.n()).done){e.next=24;break}if(i=(o=a.value).addedFeature,!(s=o.parentFeatureId)){e.next=21;break}if(l=t.getFeature(s)){e.next=17;break}return e.next=14,t.loadFeatures([{assemblyName:n,refName:i.refSeq,start:i.min,end:i.max}]);case 14:if(l=t.getFeature(s)){e.next=17;break}throw new Error('Could not find parent feature "'.concat(s,'"'));case 17:l.attributes.get("_id")||l.setAttribute("_id",[l._id]),l.addChild(i),e.next=22;break;case 21:t.addFeature(n,i);case 22:e.next=6;break;case 24:e.next=29;break;case 26:e.prev=26,e.t0=e.catch(4),r.e(e.t0);case 29:return e.prev=29,r.f(),e.finish(29);case 32:case"end":return e.stop()}}),e,this,[[4,26,29,32]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=fe(this.changedIds).reverse(),a=fe(t).reverse().map((function(e){return{deletedFeature:e.addedFeature,parentFeatureId:e.parentFeatureId}}));return new Os.DeleteFeatureChange({changedIds:r,typeName:"DeleteFeatureChange",changes:a,assembly:e},{logger:n})}}]),o}(tr.FeatureChange);Ss.AddFeatureChange=Ts;var Ns={};Object.defineProperty(Ns,"__esModule",{value:!0}),Ns.AddFeaturesFromFileChange=void 0;var Is=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n,r;return K(this,o),Q(se(r=a.call(this,e,t)),"typeName","AddFeaturesFromFileChange"),Q(se(r),"changes",void 0),Q(se(r),"deleteExistingFeatures",!1),r.deleteExistingFeatures=null!==(n=e.deleteExistingFeatures)&&void 0!==n&&n,r.changes="changes"in e?e.changes:[e],r}return X(o,[{key:"notification",get:function(){return"Features have been added. To see them, please refresh the page."}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.deleteExistingFeatures,r=this.typeName;return 1===t.length?{typeName:r,assembly:e,fileId:ue(t,1)[0].fileId,deleteExistingFeatures:n}:{typeName:r,assembly:e,changes:t,deleteExistingFeatures:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.fileModel,a=t.filesService,o=this.changes,i=this.logger,!this.deleteExistingFeatures){e.next=5;break}return e.next=5,this.removeExistingFeatures(t);case 5:s=ve(o),e.prev=6,s.s();case 8:if((l=s.n()).done){e.next=57;break}if(d=(u=l.value).fileId,f=u.parseOptions,Dt.env.FILE_UPLOAD_FOLDER){e.next=14;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 14:return e.next=16,r.findById(d).exec();case 16:if(p=e.sent){e.next=19;break}throw new Error('File "'.concat(d,'" not found in Mongo'));case 19:null===(c=i.debug)||void 0===c||c.call(i,'FileId "'.concat(d,'", checksum "').concat(p.checksum,'"')),m=void 0===(h=(null!=f?f:{}).bufferSize)?1e4:h,g=a.parseGFF3(a.getFileStream(p),{bufferSize:m}),y=0,v=!1,b=!1,e.prev=25,w=U(g);case 27:return e.next=29,w.next();case 29:if(!(v=!(x=e.sent).done)){e.next=39;break}return S=x.value,e.next=34,this.addFeatureIntoDb(S,t);case 34:++y%1e3==0&&(null===(E=i.debug)||void 0===E||E.call(i,"Processed ".concat(y," features")));case 36:v=!1,e.next=27;break;case 39:e.next=45;break;case 41:e.prev=41,e.t0=e.catch(25),b=!0,_=e.t0;case 45:if(e.prev=45,e.prev=46,!v||null==w.return){e.next=50;break}return e.next=50,w.return();case 50:if(e.prev=50,!b){e.next=53;break}throw _;case 53:return e.finish(50);case 54:return e.finish(45);case 55:e.next=8;break;case 57:e.next=62;break;case 59:e.prev=59,e.t1=e.catch(6),s.e(e.t1);case 62:return e.prev=62,s.f(),e.finish(62);case 65:null===(n=i.debug)||void 0===n||n.call(i,"New features added into database!");case 66:case"end":return e.stop()}}),e,this,[[6,59,62,65],[25,41,45,55],[46,,50,54]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new o({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]),o}(kr.FromFileBaseChange);Ns.AddFeaturesFromFileChange=Is;var Rs={};Object.defineProperty(Rs,"__esModule",{value:!0}),Rs.AddRefSeqAliasesChange=void 0;var Fs=A.default,Ps=function(e){ee(r,e);var t,n=le(r);function r(e,t){var a;return K(this,r),Q(se(a=n.call(this,e,t)),"typeName","AddRefSeqAliasesChange"),Q(se(a),"refSeqAliases",void 0),a.refSeqAliases=e.refSeqAliases,a}return X(r,[{key:"executeOnClient",value:function(e){var t,n=(0,Fs.getSession)(e).assemblyManager.get(this.assembly);if(!n)throw new Error("assembly ".concat(this.assembly," not found"));var r,a=null!==(t=n.refNameAliases)&&void 0!==t?t:{},o=ve(this.refSeqAliases);try{for(o.s();!(r=o.n()).done;){var i,s=r.value,l=s.refName,c=ve(s.aliases);try{for(c.s();!(i=c.n()).done;)a[i.value]=l}catch(e){c.e(e)}finally{c.f()}}}catch(e){o.e(e)}finally{o.f()}return n.setRefNameAliases(a),Promise.resolve()}},{key:"getInverse",value:function(){throw new Error("Method not implemented.")}},{key:"toJSON",value:function(){return{assembly:this.assembly,typeName:this.typeName,refSeqAliases:this.refSeqAliases}}},{key:"executeOnServer",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.refSeqModel,r=t.session,a=this.assembly,o=this.logger,i=ve(this.refSeqAliases),e.prev=3,i.s();case 5:if((s=i.n()).done){e.next=13;break}return c=s.value,null===(l=o.debug)||void 0===l||l.call(o,"Updating Refname alias for assembly: ".concat(a,", refSeqAlias: ").concat(JSON.stringify(c))),u=c.aliases,d=c.refName,e.next=11,n.updateOne({assembly:a,name:d},{$set:{aliases:u}}).session(r);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),i.e(e.t0);case 18:return e.prev=18,i.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:function(e){throw new Error("Method not implemented.")}},{key:"notification",get:function(){return"RefSeq aliases have been added."}}]),r}(tr.AssemblySpecificChange);Rs.AddRefSeqAliasesChange=Ps;var Ms={};Object.defineProperty(Ms,"__esModule",{value:!0}),Ms.DeleteAssemblyChange=void 0;var Ds=A.default,js=function(e){ee(o,e);var t,n,r,a=le(o);function o(){var e;K(this,o);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return Q(se(e=a.call.apply(a,[this].concat(n))),"typeName","DeleteAssemblyChange"),e}return X(o,[{key:"notification",get:function(){return'Assembly "'.concat(this.assembly,'" deleted successfully.')}},{key:"toJSON",value:function(){return{typeName:this.typeName,assembly:this.assembly}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.assemblyModel,a=t.featureModel,o=t.refSeqChunkModel,i=t.refSeqModel,s=t.session,l=this.assembly,c=this.logger,e.next=4,r.findById(l).session(s).exec();case 4:if(e.sent){e.next=9;break}throw u='*** ERROR: Assembly with id "'.concat(l,'" not found'),c.error(u),new Error(u);case 9:return e.next=11,i.find({assembly:l}).exec();case 11:return d=e.sent.map((function(e){return e._id})),e.next=15,o.deleteMany({refSeq:d}).exec();case 15:return e.next=17,a.deleteMany({refSeq:d}).exec();case 17:return e.next=19,i.deleteMany({assembly:l}).exec();case 19:return e.next=21,r.findByIdAndDelete(l).exec();case 21:null===(n=c.debug)||void 0===n||n.call(c,'Assembly "'.concat(l,'" deleted from database.'));case 22:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=this.assembly,t){e.next=3;break}throw new Error("No data store");case 3:return o=(0,Ds.getSession)(t),t.assemblies.has(a)&&t.deleteAssembly(a),e.next=7,null===(n=o.removeAssembly)||void 0===n?void 0:n.call(o,a);case 7:return e.next=9,null===(r=o.removeSessionAssembly)||void 0===r?void 0:r.call(o,a);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new o({typeName:"DeleteAssemblyChange",assembly:this.assembly},{logger:this.logger})}}]),o}(tr.AssemblySpecificChange);Ms.DeleteAssemblyChange=js;var Ls={};Object.defineProperty(Ls,"__esModule",{value:!0}),Ls.DeleteUserChange=void 0;var qs=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","DeleteUserChange"),Q(se(n),"changes",void 0),Q(se(n),"userId",void 0),n.changes="changes"in e?e.changes:[e],n.userId=e.userId,n}return X(o,[{key:"toJSON",value:function(){return{typeName:this.typeName,userId:this.userId}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.session,r=t.userModel,a=this.logger,o=this.userId,e.next=4,r.findOneAndDelete({_id:o}).session(n).exec();case 4:if(e.sent){e.next=9;break}throw i='*** ERROR: User with id "'.concat(o,'" not found'),a.error(i),new Error(i);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new o({typeName:this.typeName,userId:this.userId},{logger:this.logger})}}]),o}(tr.Change);Ls.DeleteUserChange=qs;var Bs={};Object.defineProperty(Bs,"__esModule",{value:!0}),Bs.FeatureAttributeChange=void 0,Bs.isFeatureAttributeChange=function(e){return"FeatureAttributeChange"===e.typeName};var Us=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","FeatureAttributeChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldAttributes:a.oldAttributes,newAttributes:a.newAttributes}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,o=this.logger,i=[],s=ve(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=26;break}return d=l.value.featureId,e.next=11,n.findOne({allIds:d}).session(r).exec();case 11:if(f=e.sent){e.next=16;break}throw p="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),o.error(p),new Error(p);case 16:if(null===(c=o.debug)||void 0===c||c.call(o,"*** Feature found: ".concat(JSON.stringify(f))),h=this.getFeatureFromId(f,d)){e.next=22;break}throw o.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:null===(u=o.debug)||void 0===u||u.call(o,"*** Found feature: ".concat(JSON.stringify(h))),i.push({feature:h,topLevelFeature:f});case 24:e.next=6;break;case 26:e.next=31;break;case 28:e.prev=28,e.t0=e.catch(4),s.e(e.t0);case 31:return e.prev=31,s.f(),e.finish(31);case 34:m=ve(a.entries()),e.prev=35,m.s();case 37:if((g=m.n()).done){e.next=55;break}return v=ue(g.value,2),w=(b=i[v[0]]).topLevelFeature,(_=b.feature).attributes=v[1].newAttributes,w._id.equals(_._id)?w.markModified("attributes"):w.markModified("children"),e.prev=43,e.next=46,w.save();case 46:e.next=52;break;case 48:throw e.prev=48,e.t1=e.catch(43),null===(x=o.debug)||void 0===x||x.call(o,"*** FAILED: ".concat(e.t1)),e.t1;case 52:null===(y=o.debug)||void 0===y||y.call(o,"*** Feature attributes modified (added, edited or deleted), docId: ".concat(JSON.stringify(w)));case 53:e.next=37;break;case 55:e.next=60;break;case 57:e.prev=57,e.t2=e.catch(35),m.e(e.t2);case 60:return e.prev=60,m.f(),e.finish(60);case 63:case"end":return e.stop()}}),e,this,[[4,28,31,34],[35,57,60,63],[43,48]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("applyToLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=ue(r.value,2),o=a[0],s=t.getFeature(i=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(i,'"'));case 10:s.setAttributes(new Map(Object.entries(this.changes[o].newAttributes)));case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger;return new o({changedIds:fe(this.changedIds).reverse(),typeName:"FeatureAttributeChange",changes:fe(t).reverse().map((function(e){return{featureId:e.featureId,oldAttributes:e.newAttributes,newAttributes:e.oldAttributes}})),assembly:e},{logger:n})}}]),o}(tr.FeatureChange);Bs.FeatureAttributeChange=Us;var zs={},Gs=["__v","_id","assemblies","configuration","internetAccounts","plugins","tracks"],Hs=["hasRole"];function $s(e){var t,n=e.assemblies,r=e.configuration,a=e.internetAccounts,o=e.plugins,i=e.tracks,s=ie(e,Gs);if(n&&(s.assemblies=n.filter((function(e){return"ApolloSequenceAdapter"!==e.sequence.adapter.type}))),null!=r&&null!==(t=r.ApolloPlugin)&&void 0!==t&&t.hasRole){var l=ie(r.ApolloPlugin,Hs);s.configuration=$($({},r),{},{ApolloPlugin:l})}return a&&(s.internetAccounts=a.filter((function(e){return"ApolloInternetAccount"!==e.type}))),o&&(s.plugins=o.filter((function(e){return"Apollo"!==e.name}))),i&&(s.tracks=i.filter((function(e){return"ApolloTrack"!==e.type}))),s}Object.defineProperty(zs,"__esModule",{value:!0}),zs.ImportJBrowseConfigChange=void 0,zs.filterJBrowseConfig=$s;var Vs=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","ImportJBrowseConfigChange"),Q(se(n),"oldJBrowseConfig",void 0),Q(se(n),"newJBrowseConfig",void 0),n.oldJBrowseConfig=e.oldJBrowseConfig,n.newJBrowseConfig=e.newJBrowseConfig,n}return X(o,[{key:"toJSON",value:function(){return{typeName:this.typeName,oldJBrowseConfig:this.oldJBrowseConfig,newJBrowseConfig:this.newJBrowseConfig}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.jbrowseConfigModel,a=this.logger,o=this.newJBrowseConfig,e.next=4,r.deleteMany();case 4:if(o){e.next=6;break}return e.abrupt("return");case 6:return i=$s(o),e.next=9,r.create(i);case 9:null===(n=a.debug)||void 0===n||n.call(a,"Stored new JBrowse Config");case 10:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new o({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:this.newJBrowseConfig,newJBrowseConfig:this.oldJBrowseConfig},{logger:this.logger})}}]),o}(tr.Change);zs.ImportJBrowseConfigChange=Vs;var Ws={};Object.defineProperty(Ws,"__esModule",{value:!0}),Ws.LocationEndChange=void 0,Ws.isLocationEndChange=function(e){return"LocationEndChange"===e.typeName};var Js=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","LocationEndChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldEnd:a.oldEnd,newEnd:a.newEnd}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,o=[],i=ve(this.changes),e.prev=4,i.s();case 6:if((s=i.n()).done){e.next=55;break}d=(u=s.value).featureId,f=u.oldEnd,p=u.newEnd,h=void 0,m=void 0,g=ve(o),e.prev=12,g.s();case 14:if((y=g.n()).done){e.next=23;break}if(!(b=this.getFeatureFromId(v=y.value,d))){e.next=21;break}return h=v,m=b,e.abrupt("break",23);case 21:e.next=14;break;case 23:e.next=28;break;case 25:e.prev=25,e.t0=e.catch(12),g.e(e.t0);case 28:return e.prev=28,g.f(),e.finish(28);case 31:if(h){e.next=36;break}return e.next=34,n.findOne({allIds:d}).session(r).exec();case 34:(h=e.sent)&&o.push(h);case 36:if(h){e.next=40;break}throw _="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),a.error(_),new Error(_);case 40:if(null===(l=a.debug)||void 0===l||l.call(a,"*** TOP level feature found: ".concat(JSON.stringify(h))),m||(m=this.getFeatureFromId(h,d)),m){e.next=46;break}throw a.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 46:if(null===(c=a.debug)||void 0===c||c.call(a,"*** Found feature: ".concat(JSON.stringify(m))),m.max===f){e.next=51;break}throw a.error("Expected previous max does not match"),new Error("Expected previous max does not match");case 51:m.max=p,h._id.equals(m._id)?h.markModified("end"):h.markModified("children");case 53:e.next=6;break;case 55:e.next=60;break;case 57:e.prev=57,e.t1=e.catch(4),i.e(e.t1);case 60:return e.prev=60,i.f(),e.finish(60);case 63:w=0,x=o;case 64:if(!(w<x.length)){e.next=78;break}return S=x[w],e.prev=66,e.next=69,S.save();case 69:e.next=75;break;case 71:throw e.prev=71,e.t2=e.catch(66),null===(E=a.debug)||void 0===E||E.call(a,"*** FAILED: ".concat(e.t2)),e.t2;case 75:w++,e.next=64;break;case 78:case"end":return e.stop()}}),e,this,[[4,57,60,63],[12,25,28,31],[66,71]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changes),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=14;break}if(i=(a=r.value).newEnd,s=t.getFeature(o=a.featureId)){e.next=11;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 11:s.setMax(i);case 12:e.next=5;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),n.e(e.t0);case 19:return e.prev=19,n.f(),e.finish(19);case 22:case"end":return e.stop()}}),e,this,[[3,16,19,22]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new o({changedIds:fe(this.changedIds).reverse(),typeName:r,changes:fe(t).reverse().map((function(e){return{featureId:e.featureId,oldEnd:e.newEnd,newEnd:e.oldEnd}})),assembly:e},{logger:n})}}]),o}(tr.FeatureChange);Ws.LocationEndChange=Js;var Ys={};Object.defineProperty(Ys,"__esModule",{value:!0}),Ys.LocationStartChange=void 0,Ys.isLocationStartChange=function(e){return"LocationStartChange"===e.typeName};var Ks=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","LocationStartChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldStart:a.oldStart,newStart:a.newStart}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,o=[],i=ve(this.changes),e.prev=4,i.s();case 6:if((s=i.n()).done){e.next=55;break}d=(u=s.value).featureId,f=u.oldStart,p=u.newStart,h=void 0,m=void 0,g=ve(o),e.prev=12,g.s();case 14:if((y=g.n()).done){e.next=23;break}if(!(b=this.getFeatureFromId(v=y.value,d))){e.next=21;break}return h=v,m=b,e.abrupt("break",23);case 21:e.next=14;break;case 23:e.next=28;break;case 25:e.prev=25,e.t0=e.catch(12),g.e(e.t0);case 28:return e.prev=28,g.f(),e.finish(28);case 31:if(h){e.next=36;break}return e.next=34,n.findOne({allIds:d}).session(r).exec();case 34:(h=e.sent)&&o.push(h);case 36:if(h){e.next=40;break}throw _="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),a.error(_),new Error(_);case 40:if(null===(l=a.debug)||void 0===l||l.call(a,"*** TOP level feature found: ".concat(JSON.stringify(h))),m||(m=this.getFeatureFromId(h,d)),m){e.next=46;break}throw a.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 46:if(null===(c=a.debug)||void 0===c||c.call(a,"*** Found feature: ".concat(JSON.stringify(m))),m.min===f){e.next=51;break}throw a.error("Expected previous max does not match"),new Error("Expected previous max does not match");case 51:m.min=p,h._id.equals(m._id)?h.markModified("start"):h.markModified("children");case 53:e.next=6;break;case 55:e.next=60;break;case 57:e.prev=57,e.t1=e.catch(4),i.e(e.t1);case 60:return e.prev=60,i.f(),e.finish(60);case 63:w=0,x=o;case 64:if(!(w<x.length)){e.next=78;break}return S=x[w],e.prev=66,e.next=69,S.save();case 69:e.next=75;break;case 71:throw e.prev=71,e.t2=e.catch(66),null===(E=a.debug)||void 0===E||E.call(a,"*** FAILED: ".concat(e.t2)),e.t2;case 75:w++,e.next=64;break;case 78:case"end":return e.stop()}}),e,this,[[4,57,60,63],[12,25,28,31],[66,71]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changes),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=14;break}if(i=(a=r.value).newStart,s=t.getFeature(o=a.featureId)){e.next=11;break}throw new Error('Could not find feature with identifier "'.concat(o,'"'));case 11:s.setMin(i);case 12:e.next=5;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),n.e(e.t0);case 19:return e.prev=19,n.f(),e.finish(19);case 22:case"end":return e.stop()}}),e,this,[[3,16,19,22]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new o({changedIds:fe(this.changedIds).reverse(),typeName:r,changes:fe(t).reverse().map((function(e){return{featureId:e.featureId,oldStart:e.newStart,newStart:e.oldStart}})),assembly:e},{logger:n})}}]),o}(tr.FeatureChange);Ys.LocationStartChange=Ks;var Zs={},Xs={};Object.defineProperty(Xs,"__esModule",{value:!0}),Xs.splitStringIntoChunks=function(e,t){for(var n=[],r=0;r<e.length;r+=t){var a=e.slice(r,r+t);n.push(a)}return n},Xs.getPrintableId=function(e){var t,n,r=e,a=null===(t=r.attributes.get("gff_id"))||void 0===t?void 0:t.join(",");if(a)return"ID=".concat(a," (_id: ").concat(e._id.toString(),")");var o=null===(n=r.attributes.get("gff_name"))||void 0===n?void 0:n.join(",");return o?"Name=".concat(o," (_id: ").concat(e._id.toString(),")"):"_id: ".concat(e._id.toString())},Xs.attributesToRecords=function(e){var t={};if(!e)return t;for(var n=0,r=Object.entries(e);n<r.length;n++){var a=ue(r[n],2),o=a[1];t[a[0]]=null==o?void 0:o.slice()}return t},Xs.stringifyAttributes=function(e){if(!e)return"";for(var t=[],n=0,r=Object.entries(e);n<r.length;n++){var a=ue(r[n],2),o=a[1],i=a[0];i.startsWith("gff_")&&(i=(i=i.slice(4)).charAt(0).toUpperCase()+i.slice(1)),t.push(o?"".concat(i,"=").concat(o.join(",")):i)}return encodeURIComponent(t.join(";"))};var Qs={};Object.defineProperty(Qs,"__esModule",{value:!0}),Qs.UndoMergeExonsChange=void 0;var el=Zs,tl=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","UndoMergeExonsChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,exonsToRestore:a.exonsToRestore,parentFeatureId:a.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=ve(this.changes),e.prev=3,a.s();case 5:if((o=a.n()).done){e.next=25;break}if(l=(i=o.value).parentFeatureId,2===(s=i.exonsToRestore).length){e.next=10;break}throw new Error("Expected exactly two exons to restore. Got :".concat(s.length));case 10:return e.next=12,n.findOne({allIds:l}).session(r).exec();case 12:if(c=e.sent){e.next=15;break}throw new Error('Could not find feature with ID "'.concat(l,'"'));case 15:if(u=this.getFeatureFromId(c,l)){e.next=18;break}throw new Error('Could not find feature with ID "'.concat(l,'" in feature "').concat(c._id.toString(),'"'));case 18:u.children||(u.children=new Map),d=ve(s);try{for(d.s();!(f=d.n()).done;)this.addChild(u,h=f.value),m=this.getChildFeatureIds(h),(p=c.allIds).push.apply(p,[h._id].concat(fe(m)))}catch(e){d.e(e)}finally{d.f()}return e.next=23,c.save();case 23:e.next=5;break;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(3),a.e(e.t0);case 30:return e.prev=30,a.f(),e.finish(30);case 33:case"end":return e.stop()}}),e,this,[[3,27,30,33]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changes),e.prev=4,n.s();case 6:if((r=n.n()).done){e.next=19;break}if(o=(a=r.value).exonsToRestore,i=a.parentFeatureId){e.next=11;break}throw new Error("Parent ID is missing");case 11:if(s=t.getFeature(i)){e.next=14;break}throw new Error('Could not find parent feature "'.concat(i,'"'));case 14:s.attributes.get("_id")||s.setAttribute("_id",[s._id]),l=ve(o);try{for(l.s();!(c=l.n()).done;)s.addChild(c.value)}catch(e){l.e(e)}finally{l.f()}case 17:e.next=6;break;case 19:e.next=24;break;case 21:e.prev=21,e.t0=e.catch(4),n.e(e.t0);case 24:return e.prev=24,n.f(),e.finish(24);case 27:case"end":return e.stop()}}),e,this,[[4,21,24,27]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=fe(this.changedIds).reverse(),a=fe(t).reverse().map((function(e){return{firstExon:e.exonsToRestore[0],secondExon:e.exonsToRestore[1],parentFeatureId:e.parentFeatureId}}));return new el.MergeExonsChange({changedIds:r,typeName:"MergeExonsChange",changes:a,assembly:e},{logger:n})}}]),o}(tr.FeatureChange);Qs.UndoMergeExonsChange=tl,Object.defineProperty(Zs,"__esModule",{value:!0}),Zs.MergeExonsChange=void 0;var nl=Xs,rl=Es,al=Qs,ol=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","MergeExonsChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"notification",get:function(){return"Exons successfully merged"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,firstExon:a.firstExon,secondExon:a.secondExon,parentFeatureId:a.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l=this;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,o=ve(this.changes),e.prev=3,s=V().mark((function e(){var t,o,s,c,u,d,f,p;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(t=i.value).firstExon,s=t.secondExon,e.next=4,n.findOne({allIds:o._id}).session(r).exec();case 4:if(c=e.sent){e.next=9;break}throw u="*** ERROR: The following featureId was not found in database ='".concat(o._id,"'"),a.error(u),new Error(u);case 9:if(d=l.getFeatureFromId(c,o._id)){e.next=14;break}throw a.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 14:return d.min=Math.min(o.min,s.min),d.max=Math.max(o.max,s.max),(f=d.attributes?JSON.parse(JSON.stringify(d.attributes)):{}).merged_with=[(0,nl.stringifyAttributes)((0,nl.attributesToRecords)(s.attributes))],d.attributes=f,(p=(0,rl.findAndDeleteChildFeature)(c,s._id,l)).push(s._id),c.allIds=c.allIds.filter((function(e){return!p.includes(e)})),e.next=24,c.save();case 24:case"end":return e.stop()}}),e)})),o.s();case 6:if((i=o.n()).done){e.next=10;break}return e.delegateYield(s(),"t0",8);case 8:e.next=6;break;case 10:e.next=15;break;case 12:e.prev=12,e.t1=e.catch(3),o.e(e.t1);case 15:return e.prev=15,o.f(),e.finish(15);case 18:case"end":return e.stop()}}),e,this,[[3,12,15,18]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changes),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=20;break}if(c=(s=r.value).secondExon,u=t.getFeature((l=s.firstExon)._id)){e.next=11;break}throw new Error('Could not find feature with identifier "'.concat(l._id,'"'));case 11:u.setMin(Math.min(l.min,c.min)),u.setMax(Math.max(l.max,c.max)),d=null!==(a=null===(o=u.attributes.get("merged_with"))||void 0===o?void 0:o.slice())&&void 0!==a?a:[],f=(0,nl.stringifyAttributes)((0,nl.attributesToRecords)(c.attributes)),d.includes(f)||d.push(f),u.setAttribute("merged_with",d),null===(i=u.parent)||void 0===i||i.deleteChild(c._id);case 18:e.next=5;break;case 20:e.next=25;break;case 22:e.prev=22,e.t0=e.catch(3),n.e(e.t0);case 25:return e.prev=25,n.f(),e.finish(25);case 28:case"end":return e.stop()}}),e,this,[[3,22,25,28]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,a=fe(this.changedIds).reverse(),o=fe(n).reverse().map((function(e){return{exonsToRestore:[e.firstExon,e.secondExon],parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(o),"'")),new al.UndoMergeExonsChange({changedIds:a,typeName:"UndoMergeExonsChange",changes:o,assembly:t},{logger:r})}}]),o}(tr.FeatureChange);Zs.MergeExonsChange=ol;var il={},sl={};Object.defineProperty(sl,"__esModule",{value:!0}),sl.UndoMergeTranscriptsChange=void 0;var ll=il,cl=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","UndoMergeTranscriptsChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,transcriptsToRestore:a.transcriptsToRestore,parentFeatureId:a.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=ve(this.changes),e.prev=3,a.s();case 5:if((o=a.n()).done){e.next=25;break}if(l=(i=o.value).parentFeatureId,2===(s=i.transcriptsToRestore).length){e.next=10;break}throw new Error("Expected exactly two transcripts to restore. Got :".concat(s.length));case 10:return e.next=12,n.findOne({allIds:l}).session(r).exec();case 12:if(c=e.sent){e.next=15;break}throw new Error('Could not find feature with ID "'.concat(l,'"'));case 15:if(u=this.getFeatureFromId(c,l)){e.next=18;break}throw new Error('Could not find feature with ID "'.concat(l,'" in feature "').concat(c._id.toString(),'"'));case 18:u.children||(u.children=new Map),d=ve(s);try{for(d.s();!(f=d.n()).done;)this.addChild(u,h=f.value),m=this.getChildFeatureIds(h),(p=c.allIds).push.apply(p,[h._id].concat(fe(m)))}catch(e){d.e(e)}finally{d.f()}return e.next=23,c.save();case 23:e.next=5;break;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(3),a.e(e.t0);case 30:return e.prev=30,a.f(),e.finish(30);case 33:case"end":return e.stop()}}),e,this,[[3,27,30,33]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changes),e.prev=4,n.s();case 6:if((r=n.n()).done){e.next=19;break}if(o=(a=r.value).transcriptsToRestore,i=a.parentFeatureId){e.next=11;break}throw new Error("Parent ID is missing");case 11:if(s=t.getFeature(i)){e.next=14;break}throw new Error('Could not find parent feature "'.concat(i,'"'));case 14:s.attributes.get("_id")||s.setAttribute("_id",[s._id]),l=ve(o);try{for(l.s();!(c=l.n()).done;)s.addChild(c.value)}catch(e){l.e(e)}finally{l.f()}case 17:e.next=6;break;case 19:e.next=24;break;case 21:e.prev=21,e.t0=e.catch(4),n.e(e.t0);case 24:return e.prev=24,n.f(),e.finish(24);case 27:case"end":return e.stop()}}),e,this,[[4,21,24,27]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=fe(this.changedIds).reverse(),a=fe(t).reverse().map((function(e){return{firstTranscript:e.transcriptsToRestore[0],secondTranscript:e.transcriptsToRestore[1],parentFeatureId:e.parentFeatureId}}));return new ll.MergeTranscriptsChange({changedIds:r,typeName:"MergeTranscriptsChange",changes:a,assembly:e},{logger:n})}}]),o}(tr.FeatureChange);sl.UndoMergeTranscriptsChange=cl,Object.defineProperty(il,"__esModule",{value:!0}),il.MergeTranscriptsChange=void 0;var ul=A.default,dl=O.default,fl=Xs,pl=Es,hl=sl,ml=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","MergeTranscriptsChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"notification",get:function(){return"Transcripts successfully merged"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,firstTranscript:a.firstTranscript,secondTranscript:a.secondTranscript,parentFeatureId:a.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l=this;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,o=ve(this.changes),e.prev=3,s=V().mark((function e(){var t,o,s,c,u,d,f;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(t=i.value).firstTranscript,s=t.secondTranscript,e.next=4,n.findOne({allIds:o._id}).session(r).exec();case 4:if(c=e.sent){e.next=9;break}throw u="*** ERROR: The following featureId was not found in database ='".concat(o._id,"'"),a.error(u),new Error(u);case 9:if(d=l.getFeatureFromId(c,o._id)){e.next=14;break}throw a.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 14:return l.mergeTranscriptsOnServer(d,s),(f=(0,pl.findAndDeleteChildFeature)(c,s._id,l)).push(s._id),c.allIds=c.allIds.filter((function(e){return!f.includes(e)})),e.next=20,c.save();case 20:case"end":return e.stop()}}),e)})),o.s();case 6:if((i=o.n()).done){e.next=10;break}return e.delegateYield(s(),"t0",8);case 8:e.next=6;break;case 10:e.next=15;break;case 12:e.prev=12,e.t1=e.catch(3),o.e(e.t1);case 15:return e.prev=15,o.f(),e.finish(15);case 18:case"end":return e.stop()}}),e,this,[[3,12,15,18]])}))),function(e){return r.apply(this,arguments)})},{key:"mergeTranscriptsOnServer",value:function(e,t){e.min=Math.min(e.min,t.min),e.max=Math.max(e.max,t.max);var n=e.attributes?JSON.parse(JSON.stringify(e.attributes)):{};if(t.attributes&&(Object.keys(n).includes("merged_with")||(n.merged_with=[]),n.merged_with.push((0,fl.stringifyAttributes)((0,fl.attributesToRecords)(t.attributes)))),e.attributes=n,t.children)for(var r=0,a=Object.entries(t.children);r<a.length;r++){var o=ue(a[r],2);this.mergeFeatureIntoTranscriptOnServer(o[1],e)}}},{key:"mergeFeatureIntoTranscriptOnServer",value:function(e,t){var n=this;t.children||(t.children=new Map);var r,a,o,i=!1,s=ve(t.children);try{for(s.s();!(o=s.n()).done;){var l=ue(o.value,2)[1];if(i&&r?a=!0:(a=!1,r=l),r.type===e.type&&r.type===l.type&&(0,ul.doesIntersect2)(e.min,e.max,r.min,r.max)&&(0,ul.doesIntersect2)(l.min,l.max,r.min,r.max)){r.min=Math.min(e.min,r.min,l.min),r.max=Math.max(e.max,r.max,l.max),r.attributes||(r.attributes={});var c=JSON.parse(JSON.stringify(r.attributes));Object.keys(c).includes("merged_with")||(c.merged_with=[]);var u=c.merged_with;if(u.push((0,fl.stringifyAttributes)((0,fl.attributesToRecords)(e.attributes))),a){var d=l.attributes?JSON.parse(JSON.stringify(l.attributes)):void 0;u.push((0,fl.stringifyAttributes)(d)),t.children.delete(l._id.toString())}c.merged_with=fe(new Set(u)),r.attributes=c,i=!0}}}catch(e){s.e(e)}finally{s.f()}i&&r&&e.children&&Object.entries(e.children).map((function(e){var t=ue(e,2);n.addChild(r,t[1])})),this.addChild(t,i&&r?r:e)}},{key:"executeOnClient",value:(n=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=15;break}if(o=ue(r.value,2),i=o[1],l=(s=this.changes[o[0]]).secondTranscript,c=t.getFeature(s.firstTranscript._id)){e.next=11;break}throw new Error('Could not find feature with identifier "'.concat(i,'"'));case 11:this.mergeTranscriptsOnClient(c,l),null===(a=c.parent)||void 0===a||a.deleteChild(l._id);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),n.e(e.t0);case 20:return e.prev=20,n.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,this,[[3,17,20,23]])}))),function(e){return n.apply(this,arguments)})},{key:"mergeTranscriptsOnClient",value:function(e,t){var n,r;e.setMin(Math.min(e.min,t.min)),e.setMax(Math.max(e.max,t.max));var a=null!==(n=null===(r=e.attributes.get("merged_with"))||void 0===r?void 0:r.slice())&&void 0!==n?n:[],o=(0,fl.stringifyAttributes)((0,fl.attributesToRecords)(t.attributes));if(a.includes(o)||a.push(o),e.setAttribute("merged_with",a),t.children)for(var i=0,s=Object.entries(t.children);i<s.length;i++){var l=ue(s[i],2);this.mergeFeatureIntoTranscriptOnClient(l[1],e)}}},{key:"mergeFeatureIntoTranscriptOnClient",value:function(e,t){t.children||(t.children=new Map);var n,r,a,o=!1,i=ve(t.children);try{for(i.s();!(a=i.n()).done;){var s=ue(a.value,2)[1];if(o&&n?r=!0:(r=!1,n=s),n.type===e.type&&n.type===s.type&&(0,ul.doesIntersect2)(e.min,e.max,n.min,n.max)&&(0,ul.doesIntersect2)(s.min,s.max,n.min,n.max)){var l,c;n.setMin(Math.min(e.min,n.min,s.min)),n.setMax(Math.max(e.max,n.max,s.max));var u=null!==(l=null===(c=n.attributes.get("merged_with"))||void 0===c?void 0:c.slice())&&void 0!==l?l:[];u.push((0,fl.stringifyAttributes)((0,fl.attributesToRecords)(e.attributes))),r&&(u.push((0,fl.stringifyAttributes)((0,dl.getSnapshot)(s).attributes)),t.deleteChild(s._id)),n.setAttribute("merged_with",fe(new Set(u))),o=!0}}}catch(e){i.e(e)}finally{i.f()}o&&n&&e.children&&Object.entries(e.children).map((function(e){var t=ue(e,2);n.addChild(t[1])})),t.addChild(o&&n?(0,dl.getSnapshot)(n):e)}},{key:"executeOnLocalGFF3",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,a=fe(this.changedIds).reverse(),o=fe(n).reverse().map((function(e){return{transcriptsToRestore:[e.firstTranscript,e.secondTranscript],parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(o),"'")),new hl.UndoMergeTranscriptsChange({changedIds:a,typeName:"UndoMergeTranscriptsChange",changes:o,assembly:t},{logger:r})}}]),o}(tr.FeatureChange);il.MergeTranscriptsChange=ml;var gl={},yl={};Object.defineProperty(yl,"__esModule",{value:!0}),yl.UndoSplitExonChange=void 0;var vl=Es,bl=gl,_l=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","UndoSplitExonChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,exonToRestore:a.exonToRestore,parentFeatureId:a.parentFeatureId,idsToDelete:a.idsToDelete,upstreamCut:a.upstreamCut,downstreamCut:a.downstreamCut,leftExonId:a.leftExonId,rightExonId:a.rightExonId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s=this;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=ve(this.changes),e.prev=3,i=V().mark((function e(){var t,a,i,l,c,u,d,f;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(a=o.value).exonToRestore,l=a.parentFeatureId,c=a.idsToDelete,e.next=4,n.findOne({allIds:l}).session(r).exec();case 4:if(u=e.sent){e.next=7;break}throw new Error('Could not find feature with ID "'.concat(l,'"'));case 7:if(d=s.getFeatureFromId(u,l)){e.next=10;break}throw new Error('Could not find feature with ID "'.concat(l,'" in feature "').concat(u._id.toString(),'"'));case 10:return d.children||(d.children=new Map),s.addChild(d,i),f=s.getChildFeatureIds(i),(t=u.allIds).push.apply(t,[i._id].concat(fe(f))),u.allIds=u.allIds.filter((function(e){return!c.includes(e)})),c.map((function(e){return(0,vl.findAndDeleteChildFeature)(u,e,s)})),e.next=18,u.save();case 18:case"end":return e.stop()}}),e)})),a.s();case 6:if((o=a.n()).done){e.next=10;break}return e.delegateYield(i(),"t0",8);case 8:e.next=6;break;case 10:e.next=15;break;case 12:e.prev=12,e.t1=e.catch(3),a.e(e.t1);case 15:return e.prev=15,a.f(),e.finish(15);case 18:case"end":return e.stop()}}),e,this,[[3,12,15,18]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changes),e.prev=4,a=V().mark((function e(){var n,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=(n=r.value).exonToRestore,i=n.idsToDelete,o=n.parentFeatureId){e.next=4;break}throw new Error("Parent ID is missing");case 4:if(s=t.getFeature(o)){e.next=7;break}throw new Error('Could not find parent feature "'.concat(o,'"'));case 7:s.attributes.get("_id")||s.setAttribute("_id",[s._id]),s.addChild(a),i.map((function(e){s.deleteChild(e)}));case 10:case"end":return e.stop()}}),e)})),n.s();case 7:if((r=n.n()).done){e.next=11;break}return e.delegateYield(a(),"t0",9);case 9:e.next=7;break;case 11:e.next=16;break;case 13:e.prev=13,e.t1=e.catch(4),n.e(e.t1);case 16:return e.prev=16,n.f(),e.finish(16);case 19:case"end":return e.stop()}}),e,this,[[4,13,16,19]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=fe(this.changedIds).reverse(),a=fe(t).reverse().map((function(e){return{parentFeatureId:e.parentFeatureId,exonToBeSplit:e.exonToRestore,upstreamCut:e.upstreamCut,downstreamCut:e.downstreamCut,leftExonId:e.leftExonId,rightExonId:e.rightExonId}}));return new bl.SplitExonChange({changedIds:r,typeName:"SplitExonChange",changes:a,assembly:e},{logger:n})}}]),o}(tr.FeatureChange);yl.UndoSplitExonChange=_l,Object.defineProperty(gl,"__esModule",{value:!0}),gl.SplitExonChange=void 0;var wl=Es,xl=yl,Sl=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","SplitExonChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"notification",get:function(){return"Exon successfully split"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,exonToBeSplit:a.exonToBeSplit,parentFeatureId:a.parentFeatureId,upstreamCut:a.upstreamCut,downstreamCut:a.downstreamCut,leftExonId:a.leftExonId,rightExonId:a.rightExonId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l=this;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,a=this.logger,o=ve(this.changes),e.prev=3,s=V().mark((function e(){var t,o,s,c,u,d,f,p,h,m,g,y,v,b,_;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(t=i.value).exonToBeSplit,s=t.parentFeatureId,c=t.upstreamCut,u=t.downstreamCut,d=t.leftExonId,f=t.rightExonId,e.next=4,n.findOne({allIds:o._id}).session(r).exec();case 4:if(p=e.sent){e.next=9;break}throw h="*** ERROR: The following featureId was not found in database ='".concat(o._id,"'"),a.error(h),new Error(h);case 9:if(null!=(m=l.getFeatureFromId(p,s))&&m.children){e.next=12;break}throw new Error("ERROR: There should be at least one child (i.e. the exon to be split)");case 12:return g=l.makeSplitExons(o,c,u,d,f),y=ue(g,2),b=y[1],m.children.set((v=y[0])._id,$($({allIds:[]},v),{},{_id:v._id})),m.children.set(b._id,$($({allIds:[]},b),{},{_id:b._id})),m.children=new Map(fe(m.children.entries()).sort((function(e,t){return e[1].min-t[1].min}))),(_=(0,wl.findAndDeleteChildFeature)(p,o._id,l)).push(o._id),p.allIds=p.allIds.filter((function(e){return!_.includes(e)})),p.allIds.push(v._id,b._id),e.next=22,p.save();case 22:case"end":return e.stop()}}),e)})),o.s();case 6:if((i=o.n()).done){e.next=10;break}return e.delegateYield(s(),"t0",8);case 8:e.next=6;break;case 10:e.next=15;break;case 12:e.prev=12,e.t1=e.catch(3),o.e(e.t1);case 15:return e.prev=15,o.f(),e.finish(15);case 18:case"end":return e.stop()}}),e,this,[[3,12,15,18]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=19;break}if(a=ue(r.value,1),i=(o=this.changes[a[0]]).exonToBeSplit,l=o.upstreamCut,c=o.downstreamCut,u=o.leftExonId,d=o.rightExonId,s=o.parentFeatureId){e.next=10;break}throw new Error("TODO: Split exon without parent");case 10:if(f=this.makeSplitExons(i,l,c,u,d),p=ue(f,2),h=p[0],m=p[1],g=t.getFeature(s)){e.next=14;break}throw new Error('Could not find parent feature "'.concat(s,'"'));case 14:g.addChild(h),g.addChild(m),t.getFeature(i._id)&&t.deleteFeature(i._id);case 17:e.next=5;break;case 19:e.next=24;break;case 21:e.prev=21,e.t0=e.catch(3),n.e(e.t0);case 24:return e.prev=24,n.f(),e.finish(24);case 27:case"end":return e.stop()}}),e,this,[[3,21,24,27]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,a=fe(this.changedIds).reverse(),o=fe(n).reverse().map((function(e){return{exonToRestore:e.exonToBeSplit,parentFeatureId:e.parentFeatureId,idsToDelete:[e.leftExonId,e.rightExonId],upstreamCut:e.upstreamCut,downstreamCut:e.downstreamCut,leftExonId:e.leftExonId,rightExonId:e.rightExonId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(o),"'")),new xl.UndoSplitExonChange({changedIds:a,typeName:"UndoSplitExonChange",changes:o,assembly:t},{logger:r})}},{key:"makeSplitExons",value:function(e,t,n,r,a){var o=JSON.parse(JSON.stringify(e));delete o.attributes._id,delete o.attributes.gff_id;var i=structuredClone(o);i._id=r,i.max=t;var s=structuredClone(o);return s.min=n,s._id=a,[i,s]}}]),o}(tr.FeatureChange);gl.SplitExonChange=Sl;var El={};Object.defineProperty(El,"__esModule",{value:!0}),El.StrandChange=void 0;var kl=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","StrandChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldStrand:a.oldStrand,newStrand:a.newStrand}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,o=this.logger,i=[],s=ve(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=30;break}return f=(d=l.value).featureId,p=d.oldStrand,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(h=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),o.error(m),new Error(m);case 16:if(null===(c=o.debug)||void 0===c||c.call(o,"*** Feature found: ".concat(JSON.stringify(h))),g=this.getFeatureFromId(h,f)){e.next=22;break}throw o.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=o.debug)||void 0===u||u.call(o,"*** Found feature: ".concat(JSON.stringify(g))),g.strand===p){e.next=27;break}throw y="*** ERROR: Feature's current strand \"".concat(h.strand,'" doesn\'t match with expected value "').concat(p,'"'),o.error(y),new Error(y);case 27:i.push({feature:g,topLevelFeature:h});case 28:e.next=6;break;case 30:e.next=35;break;case 32:e.prev=32,e.t0=e.catch(4),s.e(e.t0);case 35:return e.prev=35,s.f(),e.finish(35);case 38:v=ve(a.entries()),e.prev=39,v.s();case 41:if((b=v.n()).done){e.next=59;break}return w=ue(b.value,2),E=(x=i[w[0]]).topLevelFeature,(S=x.feature).strand=w[1].newStrand,E._id.equals(S._id)?E.markModified("strand"):E.markModified("children"),e.prev=47,e.next=50,E.save();case 50:e.next=56;break;case 52:throw e.prev=52,e.t1=e.catch(47),null===(k=o.debug)||void 0===k||k.call(o,"*** FAILED: ".concat(e.t1)),e.t1;case 56:null===(_=o.debug)||void 0===_||_.call(o,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(E)));case 57:e.next=41;break;case 59:e.next=64;break;case 61:e.prev=61,e.t2=e.catch(39),v.e(e.t2);case 64:return e.prev=64,v.f(),e.finish(64);case 67:case"end":return e.stop()}}),e,this,[[4,32,35,38],[39,61,64,67],[47,52]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=ue(r.value,2),o=a[0],s=t.getFeature(i=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(i,'"'));case 10:s.setStrand(this.changes[o].newStrand);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new o({changedIds:fe(this.changedIds).reverse(),typeName:r,changes:fe(t).reverse().map((function(e){return{featureId:e.featureId,oldStrand:e.newStrand,newStrand:e.oldStrand}})),assembly:e},{logger:n})}}]),o}(tr.FeatureChange);El.StrandChange=kl;var Cl={};Object.defineProperty(Cl,"__esModule",{value:!0}),Cl.TypeChange=void 0;var Al=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","TypeChange"),Q(se(n),"changes",void 0),n.changes="changes"in e?e.changes:[e],n}return X(o,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var a=ue(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:a.featureId,oldType:a.oldType,newType:a.newType}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.featureModel,r=t.session,o=this.logger,i=[],s=ve(a=this.changes),e.prev=4,s.s();case 6:if((l=s.n()).done){e.next=30;break}return f=(d=l.value).featureId,p=d.oldType,e.next=11,n.findOne({allIds:f}).session(r).exec();case 11:if(h=e.sent){e.next=16;break}throw m="*** ERROR: The following featureId was not found in database ='".concat(f,"'"),o.error(m),new Error(m);case 16:if(null===(c=o.debug)||void 0===c||c.call(o,"*** Feature found: ".concat(JSON.stringify(h))),g=this.getFeatureFromId(h,f)){e.next=22;break}throw o.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 22:if(null===(u=o.debug)||void 0===u||u.call(o,"*** Found feature: ".concat(JSON.stringify(g))),g.type===p){e.next=27;break}throw y="*** ERROR: Feature's current type \"".concat(h.type,'" doesn\'t match with expected value "').concat(p,'"'),o.error(y),new Error(y);case 27:i.push({feature:g,topLevelFeature:h});case 28:e.next=6;break;case 30:e.next=35;break;case 32:e.prev=32,e.t0=e.catch(4),s.e(e.t0);case 35:return e.prev=35,s.f(),e.finish(35);case 38:v=ve(a.entries()),e.prev=39,v.s();case 41:if((b=v.n()).done){e.next=59;break}return w=ue(b.value,2),E=(x=i[w[0]]).topLevelFeature,(S=x.feature).type=w[1].newType,E._id.equals(S._id)?E.markModified("type"):E.markModified("children"),e.prev=47,e.next=50,E.save();case 50:e.next=56;break;case 52:throw e.prev=52,e.t1=e.catch(47),null===(k=o.debug)||void 0===k||k.call(o,"*** FAILED: ".concat(e.t1)),e.t1;case 56:null===(_=o.debug)||void 0===_||_.call(o,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(E)));case 57:e.next=41;break;case 59:e.next=64;break;case 61:e.prev=61,e.t2=e.catch(39),v.e(e.t2);case 64:return e.prev=64,v.f(),e.finish(64);case 67:case"end":return e.stop()}}),e,this,[[4,32,35,38],[39,61,64,67],[47,52]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){var n,r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No data store");case 2:n=ve(this.changedIds.entries()),e.prev=3,n.s();case 5:if((r=n.n()).done){e.next=13;break}if(a=ue(r.value,2),o=a[0],s=t.getFeature(i=a[1])){e.next=10;break}throw new Error('Could not find feature with identifier "'.concat(i,'"'));case 10:s.setType(this.changes[o].newType);case 11:e.next=5;break;case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(3),n.e(e.t0);case 18:return e.prev=18,n.f(),e.finish(18);case 21:case"end":return e.stop()}}),e,this,[[3,15,18,21]])}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=this.typeName;return new o({changedIds:fe(this.changedIds).reverse(),typeName:r,changes:fe(t).reverse().map((function(e){return{featureId:e.featureId,oldType:e.newType,newType:e.oldType}})),assembly:e},{logger:n})}}]),o}(tr.FeatureChange);Cl.TypeChange=Al;var Ol={};Object.defineProperty(Ol,"__esModule",{value:!0}),Ol.UserChange=void 0;var Tl=function(e){ee(o,e);var t,n,r,a=le(o);function o(e,t){var n;return K(this,o),Q(se(n=a.call(this,e,t)),"typeName","UserChange"),Q(se(n),"changes",void 0),Q(se(n),"userId",void 0),n.changes="changes"in e?e.changes:[e],n.userId=e.userId,n}return X(o,[{key:"toJSON",value:function(){var e=this.changes,t=this.typeName,n=this.userId;return 1===e.length?{typeName:t,userId:n,role:ue(e,1)[0].role}:{typeName:t,userId:n,changes:e}}},{key:"executeOnServer",value:(r=Y(V().mark((function e(t){var n,r,a,o,i,s,l,c,u,d,f;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.session,r=t.userModel,o=this.logger,i=this.userId,s=ve(a=this.changes),e.prev=3,s.s();case 5:if((l=s.n()).done){e.next=18;break}return u=l.value,null===(c=o.debug)||void 0===c||c.call(o,"change: ".concat(JSON.stringify(a))),d=u.role,e.next=11,r.findByIdAndUpdate(i,{role:d}).session(n).exec();case 11:if(e.sent){e.next=16;break}throw f='*** ERROR: User with id "'.concat(i,'" not found'),o.error(f),new Error(f);case 16:e.next=5;break;case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(3),s.e(e.t0);case 23:return e.prev=23,s.f(),e.finish(23);case 26:case"end":return e.stop()}}),e,this,[[3,20,23,26]])}))),function(e){return r.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(n=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnClient",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getInverse",value:function(){return new o({typeName:this.typeName,changes:this.changes,userId:this.userId},{logger:this.logger})}}]),o}(tr.Change);Ol.UserChange=Tl,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.changes=void 0;var t=Ze;e.changes={AddAssemblyAndFeaturesFromFileChange:Er.AddAssemblyAndFeaturesFromFileChange,AddAssemblyFromFileChange:_s.AddAssemblyFromFileChange,AddAssemblyFromExternalChange:qr.AddAssemblyFromExternalChange,AddFeatureChange:Ss.AddFeatureChange,AddFeaturesFromFileChange:Ns.AddFeaturesFromFileChange,DeleteAssemblyChange:Ms.DeleteAssemblyChange,DeleteFeatureChange:Es.DeleteFeatureChange,DeleteUserChange:Ls.DeleteUserChange,FeatureAttributeChange:Bs.FeatureAttributeChange,ImportJBrowseConfigChange:zs.ImportJBrowseConfigChange,LocationEndChange:Ws.LocationEndChange,LocationStartChange:Ys.LocationStartChange,MergeExonsChange:Zs.MergeExonsChange,SplitExonChange:gl.SplitExonChange,MergeTranscriptsChange:il.MergeTranscriptsChange,UndoMergeExonsChange:Qs.UndoMergeExonsChange,UndoSplitExonChange:yl.UndoSplitExonChange,UndoMergeTranscriptsChange:sl.UndoMergeTranscriptsChange,StrandChange:El.StrandChange,TypeChange:Cl.TypeChange,UserChange:Ol.UserChange,AddRefSeqAliasesChange:Rs.AddRefSeqAliasesChange,AddAssemblyAliasesChange:er.AddAssemblyAliasesChange},t.__exportStar(Er,e),t.__exportStar(_s,e),t.__exportStar(qr,e),t.__exportStar(Ss,e),t.__exportStar(Ns,e),t.__exportStar(Ms,e),t.__exportStar(Es,e),t.__exportStar(Ls,e),t.__exportStar(Bs,e),t.__exportStar(zs,e),t.__exportStar(Ws,e),t.__exportStar(Ys,e),t.__exportStar(Zs,e),t.__exportStar(gl,e),t.__exportStar(il,e),t.__exportStar(Qs,e),t.__exportStar(yl,e),t.__exportStar(sl,e),t.__exportStar(El,e),t.__exportStar(Cl,e),t.__exportStar(Ol,e),t.__exportStar(Rs,e),t.__exportStar(er,e)}(Qn);var Nl={},Il={};Object.defineProperty(Il,"__esModule",{value:!0}),Il.GetAssembliesOperation=void 0;var Rl=function(e){ee(r,e);var t,n=le(r);function r(){var e;K(this,r);for(var t=arguments.length,a=new Array(t),o=0;o<t;o++)a[o]=arguments[o];return Q(se(e=n.call.apply(n,[this].concat(a))),"typeName","GetAssembliesOperation"),e}return X(r,[{key:"toJSON",value:function(){return{typeName:this.typeName}}},{key:"executeOnServer",value:function(e){return e.assemblyModel.find({status:0}).exec()}},{key:"executeOnLocalGFF3",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),r}(tr.Operation);Il.GetAssembliesOperation=Rl;var Fl={};Object.defineProperty(Fl,"__esModule",{value:!0}),Fl.GetFeaturesOperation=void 0;var Pl=function(e){ee(r,e);var t,n=le(r);function r(e,t){var a;return K(this,r),Q(se(a=n.call(this,e,t)),"typeName","GetFeaturesOperation"),Q(se(a),"refSeq",void 0),Q(se(a),"start",void 0),Q(se(a),"end",void 0),a.refSeq=e.refSeq,a.start=e.start,a.end=e.end,a}return X(r,[{key:"toJSON",value:function(){return{typeName:this.typeName,refSeq:this.refSeq,start:this.start,end:this.end}}},{key:"executeOnServer",value:function(e){return e.featureModel.find({refSeq:this.refSeq,min:{$lte:this.end},max:{$gte:this.start},status:0}).exec()}},{key:"executeOnLocalGFF3",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),r}(tr.Operation);Fl.GetFeaturesOperation=Pl,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.operations=void 0;var t=Ze;e.operations={GetAssembliesOperation:Il.GetAssembliesOperation,GetFeaturesOperation:Fl.GetFeaturesOperation},t.__exportStar(Il,e),t.__exportStar(Fl,e)}(Nl);var Ml={},Dl={};Object.defineProperty(Dl,"__esModule",{value:!0}),Dl.Validation=void 0,Dl.isContext=function(e){return void 0!==e.context&&void 0!==e.reflector};var jl=function(){function e(){K(this,e)}var t,n,r,a,o;return X(e,[{key:"frontendPreValidate",value:(o=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Y(V().mark((function e(t,n){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Y(V().mark((function e(t,n){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{validationName:this.name});case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",void 0);case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),e}();Dl.Validation=jl;var Ll={};Object.defineProperty(Ll,"__esModule",{value:!0}),Ll.validationRegistry=Ll.ValidationSet=Ll.ValidationResultSet=void 0;var ql=function(){function e(){K(this,e),Q(this,"results",[]),Q(this,"ok",!0)}return X(e,[{key:"resultsMessages",get:function(){return this.results.map((function(e){var t;return null===(t=e.error)||void 0===t?void 0:t.message})).filter(Boolean).join(", ")}},{key:"add",value:function(e){this.results.push(e),e.error&&(this.ok=!1)}}]),e}();Ll.ValidationResultSet=ql;var Bl=function(){function e(){K(this,e),Q(this,"validations",new Set)}var t,n,r,a,o;return X(e,[{key:"registerValidation",value:function(e){this.validations.add(e)}},{key:"frontendPreValidate",value:(o=Y(V().mark((function e(t){var n,r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new ql,r=ve(this.validations),e.prev=2,r.s();case 4:if((a=r.n()).done){e.next=14;break}return o=a.value,e.next=8,o.frontendPreValidate(t);case 8:if(n.add(i=e.sent),!i.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),r.e(e.t0);case 19:return e.prev=19,r.f(),e.finish(19);case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e){return o.apply(this,arguments)})},{key:"frontendPostValidate",value:(a=Y(V().mark((function e(t,n){var r,a,o,i,s;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=new ql,a=ve(this.validations),e.prev=2,a.s();case 4:if((o=a.n()).done){e.next=14;break}return i=o.value,e.next=8,i.frontendPostValidate(t,n);case 8:if(r.add(s=e.sent),!s.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),a.e(e.t0);case 19:return e.prev=19,a.f(),e.finish(19);case 22:return e.abrupt("return",r);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e,t){return a.apply(this,arguments)})},{key:"backendPreValidate",value:(r=Y(V().mark((function e(t){var n,r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=new ql,r=ve(this.validations),e.prev=2,r.s();case 4:if((a=r.n()).done){e.next=14;break}return o=a.value,e.next=8,o.backendPreValidate(t);case 8:if(n.add(i=e.sent),!i.error){e.next=12;break}return e.abrupt("break",14);case 12:e.next=4;break;case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),r.e(e.t0);case 19:return e.prev=19,r.f(),e.finish(19);case 22:return e.abrupt("return",n);case 23:case"end":return e.stop()}}),e,this,[[2,16,19,22]])}))),function(e){return r.apply(this,arguments)})},{key:"backendPostValidate",value:(n=Y(V().mark((function e(t,n){var r,a,o,i,s,l,c;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.featureModel,a=n.session,o=new ql,i=ve(this.validations),e.prev=3,i.s();case 5:if((s=i.n()).done){e.next=15;break}return l=s.value,e.next=9,l.backendPostValidate(t,{featureModel:r,session:a});case 9:if(o.add(c=e.sent),!c.error){e.next=13;break}return e.abrupt("break",15);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),i.e(e.t0);case 20:return e.prev=20,i.f(),e.finish(20);case 23:return e.abrupt("return",o);case 24:case"end":return e.stop()}}),e,this,[[3,17,20,23]])}))),function(e,t){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Y(V().mark((function e(t){var n,r,a,o;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=ve(this.validations),e.prev=1,n.s();case 3:if((r=n.n()).done){e.next=12;break}return a=r.value,e.next=7,a.possibleValues(t);case 7:if(!(o=e.sent)){e.next=10;break}return e.abrupt("return",o);case 10:e.next=3;break;case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),n.e(e.t0);case 17:return e.prev=17,n.f(),e.finish(17);case 20:return e.abrupt("return");case 21:case"end":return e.stop()}}),e,this,[[1,14,17,20]])}))),function(e){return t.apply(this,arguments)})}]),e}();Ll.ValidationSet=Bl,Ll.validationRegistry=new Bl;var Ul={},zl={};Object.defineProperty(zl,"__esModule",{value:!0}),zl.default=["2A_self_cleaving_peptide_region","4_methylcytosine","5S_SINE_retrotransposon","5_carboxylcytosine","5_formylcytosine","5_hydroxymethylcytosine","5_methylcytosine","7SL_SINE_retrotransposon","8_oxoadenine","8_oxoguanine","AACCCT_box","AFLP_fragment","AP_1_binding_site","ARIA","ARRET","ARS","ARS_consensus_sequence","ASPE_primer","AUG_initiated_uORF","AU_rich_element","A_box","A_box_type_1","A_box_type_2","A_minor_RNA_motif","A_to_C_transversion","A_to_G_transition","A_to_T_transversion","Ace2_UAS","Alu_deletion","Alu_insertion","BAC","BAC_cloned_genomic_insert","BAC_end","BAC_read_contig","BREd_motif","BREu_motif","B_box","Bel_Pao_LTR_retrotransposon","Bruno_response_element","C-D_H_ACA_box_scaRNA","C-D_H_ACA_box_scaRNA_gene","CAAT_signal","CAAX_box","CACTA_TIR_transposon","CAGE_cluster","CAGE_tag","CArG_box","CCAAT_motif","CCA_tail","CDRE_motif","CDS","CDS_extension","CDS_five_prime_extension","CDS_fragment","CDS_independently_known","CDS_predicted","CDS_region","CDS_supported_by_EST_or_cDNA_data","CDS_supported_by_domain_match_data","CDS_supported_by_peptide_spectrum_match","CDS_supported_by_sequence_similarity_data","CDS_three_prime_extension","CRE","CRISPR","CSL_response_element","CTCF_binding_site","CTG_start_codon","C_D_box_scaRNA","C_D_box_scaRNA_gene","C_D_box_snoRNA","C_D_box_snoRNA_gene","C_D_box_snoRNA_primary_transcript","C_box","C_cluster","C_gene_segment","C_region","C_to_A_transversion","C_to_G_transversion","C_to_T_transition","C_to_T_transition_at_pCpG_site","ChIP_seq_region","Copia_LTR_retrotransposon","CpG_island","Crick_strand","Crypton_YR_transposon","CsrB_RsmB_RNA","CuRE","DArT_marker","DCE","DCE_SI","DCE_SII","DCE_SIII","DDB_box","DHU_loop","DIRS_YR_retrotransposon","DJ_C_cluster","DJ_J_C_cluster","DJ_J_cluster","DJ_gene_segment","DMv1_motif","DMv2_motif","DMv3_motif","DMv4_motif","DMv5_motif","DNA_aptamer","DNA_binding_site","DNA_chromosome","DNA_constraint_sequence","DNA_loop","DNA_loop_anchor","DNA_motif","DNA_sequence_secondary_structure","DNA_transposon","DNAzyme","DNaseI_hypersensitive_site","DPE1_motif","DPE_motif","DRE","DRE_motif","DSR_motif","D_DJ_C_cluster","D_DJ_J_C_cluster","D_DJ_J_cluster","D_DJ_cluster","D_J_C_cluster","D_J_cluster","D_cluster","D_gene_recombination_feature","D_gene_segment","D_loop","DsrA_RNA","ER_retention_signal","EST","EST_match","E_box_motif","Endogenous_Retrovirus_LTR_retrotransposon","FLEX_element","FRE","FRT_site","GAGA_motif","GATA_box","GC_rich_promoter_region","GNA_oligo","GTT_trinucleotide_repeat","GT_dinucleotide_repeat","G_box","G_quartet","G_to_A_transition","G_to_C_transversion","G_to_T_transversion","GcvB_RNA","Gypsy_LTR_retrotransposon","H2AK5_acetylation_site","H2AK9_acetylation_site","H2AZK11_acetylation_site","H2AZK13_acetylation_site","H2AZK15_acetylation_site","H2AZK4_acetylation_site","H2AZK7_acetylation_site","H2BK120_acetylation_site","H2BK12_acetylation_site","H2BK15_acetylation_site","H2BK20_acetylation_site","H2BK5_acetylation_site","H2BK5_monomethylation_site","H2B_ubiquitination_site","H3K14_acetylation_site","H3K18_acetylation_site","H3K20_trimethylation_site","H3K23_acetylation_site","H3K23_dimethylation_site","H3K27_acetylation_site","H3K27_dimethylation_site","H3K27_methylation_site","H3K27_monomethylation_site","H3K27_trimethylation_site","H3K36_acetylation_site","H3K36_dimethylation_site","H3K36_methylation_site","H3K36_monomethylation_site","H3K36_trimethylation_site","H3K4_acetylation_site","H3K4_dimethylation_site","H3K4_methylation_site","H3K4_monomethylation_site","H3K4_trimethylation","H3K56_acetylation_site","H3K79_dimethylation_site","H3K79_methylation_site","H3K79_monomethylation_site","H3K79_trimethylation_site","H3K9_acetylation_site","H3K9_dimethylation_site","H3K9_methylation_site","H3K9_monomethylation_site","H3K9_trimethylation_site","H3R2_dimethylation_site","H3R2_monomethylation_site","H4K12_acetylation_site","H4K16_acetylation_site","H4K20_monomethylation_site","H4K4_trimethylation_site","H4K5_acetylation_site","H4K8_acetylation_site","H4K91_acetylation_site","H4K_acylation_region","H4R3_dimethylation_site","HERV_deletion","HERV_insertion","HSE","H_ACA_box_scaRNA","H_ACA_box_scaRNA_gene","H_ACA_box_snoRNA","H_ACA_box_snoRNA_gene","H_ACA_box_snoRNA_primary_transcript","H_pseudoknot","Hoogsteen_base_pair","I-box","IG_C_gene","IG_C_pseudogene","IG_D_gene","IG_J_gene","IG_J_pseudogene","IG_V_gene","IG_V_pseudogene","INR1_motif","INR_motif","IRLinv_site","IRRinv_site","ISRE","I_LINE_retrotransposon","J_C_cluster","J_cluster","J_gene_recombination_feature","J_gene_segment","J_heptamer","J_nonamer","J_spacer","Jockey_LINE_retrotransposon","KEN_box","K_turn_RNA_motif","L1_LINE_retrotransposon","LARD","LINE1_deletion","LINE1_insertion","LINE_element","LNA_oligo","LOZ1_response_element","LTR_component","LTR_retrotransposon","L_box","MCB","MITE","MNP","MNV","MNV_artifact","MTE","Mat2P","Mat3M","Merlin_TIR_transposon","MicF_RNA","Mutator_TIR_transposon","N2_2_prime_O_dimethylguanosine","N2_7_2prirme_O_trimethylguanosine","N2_7_dimethylguanosine","N2_N2_2_prime_O_trimethylguanosine","N2_N2_7_trimethylguanosine","N2_N2_dimethylguanosine","N2_methylguanosine","N4_2_prime_O_dimethylcytidine","N4_N4_2_prime_O_trimethylcytidine","N4_acetyl_2_prime_O_methylcytidine","N4_acetylcytidine","N4_methylcytidine","N6_2_prime_O_dimethyladenosine","N6_N6_2_prime_O_trimethyladenosine","N6_N6_dimethyladenosine","N6_acetyladenosine","N6_cis_hydroxyisopentenyl_adenosine","N6_glycinylcarbamoyladenosine","N6_hydroxynorvalylcarbamoyladenosine","N6_isopentenyladenosine","N6_methyl_N6_threonylcarbamoyladenosine","N6_methyladenine","N6_methyladenosine","N6_threonylcarbamoyladenosine","NDM2_motif","NDM3_motif","NMD_polymorphic_pseudogene_transcript","NMD_transcript","NSD_transcript","N_region","Ngaro_YR_retrotransposon","ORF","Okazaki_fragment","OxyS_RNA","PAC","PAC_end","PCB","PCR_product","PIF_Harbinger_TIR_transposon","PIP_box","PNA_oligo","PSE_motif","P_TIR_transposon","Penelope_retrotransposon","Phage_RNA_Polymerase_Promoter","Pho7_binding_site","QTL","R2_LINE_retrotransposon","RAPD","RFLP_fragment","RH_map","RNA_6S","RNA_7SK","RNA_7SK_gene","RNA_aptamer","RNA_chromosome","RNA_hook_turn","RNA_internal_loop","RNA_junction_loop","RNA_motif","RNA_polymerase_III_TATA_box","RNA_polymerase_II_TATA_box","RNA_sequence_secondary_structure","RNA_stability_element","RNA_thermometer","RNAi_reagent","RNApol_III_promoter","RNApol_III_promoter_type_1","RNApol_III_promoter_type_2","RNApol_III_promoter_type_3","RNApol_II_core_promoter","RNApol_II_promoter","RNApol_I_promoter","RNase_MRP_RNA","RNase_MRP_RNA_gene","RNase_P_RNA","RNase_P_RNA_gene","RRE_RNA","RR_tract","RST","RST_match","RTE_LINE_retrotransposon","R_GNA_oligo","R_LTR_region","R_five_prime_LTR_region","R_three_prime_LTR_region","Retrovirus_LTR_retrotransposon","Robertsonian_fusion","RprA_RNA","SAGE_tag","SECIS_element","SHP_box","SINE_element","SL10_acceptor_site","SL11_acceptor_site","SL12_acceptor_site","SL1_acceptor_site","SL2_acceptor_site","SL3_acceptor_site","SL4_acceptor_site","SL5_acceptor_site","SL6_acceptor_site","SL7_acceptor_site","SL8_acceptor_site","SL9_acceptor_site","SNP","SNV","SNV_artifact","SP6_RNA_Polymerase_Promoter","SRP_RNA","SRP_RNA_gene","SRP_RNA_primary_transcript","STREP_motif","STS","STS_map","SUMO_interaction_motif","SVA_deletion","SVA_insertion","S_GNA_oligo","S_region","Sap1_recognition_motif","Shine_Dalgarno_sequence","T3_RNA_Polymerase_Promoter","T7_RNA_Polymerase_Promoter","TATA_box","TCS_element","TCT_motif","TERRA","TFRS_collection","TFRS_module","TF_binding_site","TNA_oligo","TRIM","TR_C_Gene","TR_D_Gene","TR_J_Gene","TR_J_pseudogene","TR_V_Gene","TR_V_pseudogene","TR_box","TSS","T_cell_receptor_gene","T_cell_receptor_pseudogene","T_loop","T_to_A_transversion","T_to_C_transition","T_to_G_transversion","Tc1_Mariner_TIR_transposon","Transib_TIR_transposon","U11_snRNA","U12_intron","U12_snRNA","U14_snoRNA","U14_snoRNA_gene","U14_snoRNA_primary_transcript","U1_snRNA","U2_intron","U2_snRNA","U3_LTR_region","U3_five_prime_LTR_region","U3_snoRNA","U3_snoRNA_gene","U3_three_prime_LTR_region","U4_snRNA","U4atac_snRNA","U5_LTR_region","U5_five_prime_LTR_region","U5_snRNA","U5_three_prime_LTR_region","U6_snRNA","U6atac_snRNA","U7_snRNA","UAA_stop_codon_signal","UAG_stop_codon_signal","UGA_stop_codon_signal","UNAAAC_motif","UPD","UST","UST_match","UTR","UTR_intron","UTR_region","U_box","VDJ_C_cluster","VDJ_J_C_cluster","VDJ_J_cluster","VDJ_gene_segment","VD_gene_segment","VJ_C_cluster","VJ_J_C_cluster","VJ_J_cluster","VJ_gene_segment","V_DJ_C_cluster","V_DJ_J_C_cluster","V_DJ_J_cluster","V_DJ_cluster","V_D_DJ_C_cluster","V_D_DJ_J_C_cluster","V_D_DJ_J_cluster","V_D_DJ_cluster","V_D_J_C_cluster","V_D_J_cluster","V_J_C_cluster","V_J_cluster","V_VDJ_C_cluster","V_VDJ_J_C_cluster","V_VDJ_J_cluster","V_VDJ_cluster","V_VJ_C_cluster","V_VJ_J_C_cluster","V_VJ_J_cluster","V_VJ_cluster","V_cluster","V_gene_recombination_feature","V_gene_segment","V_heptamer","V_nonamer","V_region","V_spacer","Viper_YR_retrotransposon","WC_base_pair","W_region","Watson_strand","X_element","X_element_combinatorial_repeat","X_region","YAC","YAC_end","YR_retrotransposon","Y_RNA","Y_RNA_gene","Y_RNA_primary_transcript","Y_prime_element","Y_region","Z1_region","Z2_region","Zas1_recognition_motif","aberrant_processed_transcript","accessible_DNA_region","active_peptide","adaptive_island","alanine","alanine_tRNA_primary_transcript","alanyl_tRNA","allelic_pseudogene","allelic_pseudogenic_rRNA","allelic_pseudogenic_tRNA","allelically_excluded_gene","alpha_beta_motif","alpha_helix","alternate_sequence_site","alternatively_spliced_transcript","amber_stop_codon","ambisense_ssRNA_viral_sequence","amino_acid","amplification_origin","anchor_binding_site","anchor_region","androgen_response_element","anti_ARRET","anticodon","anticodon_loop","antiparallel_beta_strand","antisense_RNA","antisense_lncRNA","antisense_lncRNA_gene","antisense_primary_transcript","apicoplast_chromosome","apicoplast_gene","aptamer","archaeal_intron","archaeosine","arginine","arginine_tRNA_primary_transcript","arginyl_tRNA","asparagine","asparagine_tRNA_primary_transcript","asparaginyl_tRNA","aspartic_acid","aspartic_acid_tRNA_primary_transcript","aspartyl_tRNA","assembly","assembly_component","assembly_error_correction","asx_motif","asx_turn","asx_turn_left_handed_type_one","asx_turn_left_handed_type_two","asx_turn_right_handed_type_one","asx_turn_right_handed_type_two","asymmetric_RNA_internal_loop","attB_site","attC_site","attCtn_site","attI_site","attL_site","attP_site","attR_site","attenuator","autocatalytically_spliced_intron","bacterial_RNApol_promoter","bacterial_RNApol_promoter_sigma54_element","bacterial_RNApol_promoter_sigma_70_element","bacterial_RNApol_promoter_sigma_ecf_element","bacterial_terminator","base","base_call_error_correction","base_pair","beta_bulge","beta_bulge_loop","beta_bulge_loop_five","beta_bulge_loop_six","beta_strand","beta_turn","beta_turn_left_handed_type_one","beta_turn_left_handed_type_two","beta_turn_right_handed_type_one","beta_turn_right_handed_type_two","beta_turn_type_eight","beta_turn_type_six","beta_turn_type_six_a","beta_turn_type_six_a_one","beta_turn_type_six_a_two","beta_turn_type_six_b","bidirectional_promoter","bidirectional_promoter_lncRNA","binding_site","biochemical_region_of_peptide","biological_region","biomaterial_region","biosynthetic_gene_cluster","blocked_reading_frame","blunt_end_restriction_enzyme_cleavage_junction","blunt_end_restriction_enzyme_cleavage_site","boundary_element","branch_site","cDNA_clone","cDNA_match","c_terminal_region","candidate_gene","canonical_five_prime_splice_site","canonical_three_prime_splice_site","cap","capped_mRNA","capped_primary_transcript","cassette_pseudogene","catalytic_residue","catmat_left_handed_four","catmat_left_handed_three","catmat_right_handed_four","catmat_right_handed_three","central_hydrophobic_region_of_signal_peptide","centromere","centromere_DNA_Element_I","centromere_DNA_Element_II","centromere_DNA_Element_III","centromeric_repeat","chimeric_cDNA_clone","chloroplast_DNA_read","chloroplast_chromosome","chromatin_regulatory_region","chromoplast_chromosome","chromoplast_gene","chromosomal_regulatory_element","chromosomal_structural_element","chromosomal_translocation","chromosome","chromosome_arm","chromosome_band","chromosome_breakage_sequence","chromosome_breakpoint","chromosome_part","circular_double_stranded_DNA_chromosome","circular_double_stranded_RNA_chromosome","circular_mRNA","circular_ncRNA","circular_plasmid","circular_single_stranded_DNA_chromosome","circular_single_stranded_RNA_chromosome","cis_acting_homologous_chromosome_pairing_region","cis_regulatory_frameshift_element","cis_regulatory_module","cis_splice_site","class_II_RNA","class_I_RNA","cleaved_for_gpi_anchor_region","cleaved_initiator_methionine","cleaved_peptide_region","clip","clone","clone_end","clone_insert","clone_insert_end","clone_insert_start","cloned_cDNA_insert","cloned_genomic_insert","cloned_region","coding_conserved_region","coding_end","coding_exon","coding_region_of_exon","coding_start","coding_transcript_with_retained_intron","codon","coiled_coil","cointegrated_plasmid","common_fragile_site","complex_chromosomal_rearrangement","complex_operon","complex_regulon","complex_structural_alteration","complex_substitution","compositionally_biased_region_of_peptide","conformational_switch","conjugative_transposon","consensus_AFLP_fragment","consensus_gDNA","consensus_mRNA","consensus_region","conserved_region","constitutive_promoter","contig","contig_collection","contig_read","copy_number_gain","copy_number_loss","copy_number_variation","core_eukaryotic_promoter_element","core_prokaryotic_promoter_element","core_promoter_element","core_viral_promoter_element","cosmid","cross_genome_match","cryptic_gene","cryptic_promoter","cryptic_prophage","cryptic_splice_site","cryptogene","ct_gene","cyanelle_chromosome","cyanelle_gene","cyclic_translocation","cysteine","cysteine_tRNA_primary_transcript","cysteinyl_tRNA","cytoplasmic_polypeptide_region","cytosolic_16S_rRNA","cytosolic_18S_rRNA","cytosolic_23S_rRNA","cytosolic_25S_rRNA","cytosolic_28S_rRNA","cytosolic_2S_rRNA","cytosolic_5S_rRNA","cytosolic_5_8S_rRNA","cytosolic_LSU_rRNA","cytosolic_LSU_rRNA_gene","cytosolic_SSU_rRNA","cytosolic_SSU_rRNA_gene","cytosolic_rRNA","cytosolic_rRNA_16S_gene","cytosolic_rRNA_18S_gene","cytosolic_rRNA_23S_gene","cytosolic_rRNA_25S_gene","cytosolic_rRNA_28S_gene","cytosolic_rRNA_2S_gene","cytosolic_rRNA_5S_gene","cytosolic_rRNA_5_8S_gene","cytosolic_rRNA_gene","dCAPS_primer","databank_entry","decayed_exon","defective_conjugative_transposon","deficient_translocation","deletion","deletion_artifact","deletion_breakpoint","deletion_junction","delins","destruction_box","dg_repeat","dh_repeat","dicistronic_mRNA","dicistronic_primary_transcript","dicistronic_transcript","dif_site","dihydrouridine","dinucleotide_repeat_microsatellite_feature","direct_repeat","direct_tandem_duplication","disabled_reading_frame","dispersed_repeat","distal_duplication","distal_promoter_element","distant_three_prime_recoding_signal","double_stranded_DNA_chromosome","double_stranded_RNA_chromosome","ds_DNA_viral_sequence","ds_RNA_viral_sequence","ds_oligo","duplicated_pseudogene","duplication","duplication_artifact","dye_terminator_read","early_origin_of_replication","edited_CDS","edited_mRNA","edited_transcript","edited_transcript_by_A_to_I_substitution","edited_transcript_feature","editing_block","editing_domain","endogenous_retroviral_gene","endonuclease_spliced_intron","endosomal_localization_signal","engineered_episome","engineered_foreign_gene","engineered_foreign_region","engineered_foreign_repetitive_element","engineered_foreign_transposable_element","engineered_foreign_transposable_element_gene","engineered_fusion_gene","engineered_gene","engineered_insert","engineered_plasmid","engineered_region","engineered_rescue_region","engineered_tag","engineered_transposable_element","enhancer","enhancerRNA","enhancer_binding_site","enhancer_blocking_element","enhancer_bound_by_factor","enhancer_trap_construct","enzymatic_RNA","enzymatic_RNA_gene","epigenetically_modified_gene","epigenetically_modified_region","epigenomically_modified_region","episome","epitope","epoxyqueuosine","eukaryotic_promoter","eukaryotic_terminator","exemplar_mRNA","exon","exon_junction","exon_of_single_exon_gene","exon_region","exonic_splice_enhancer","exonic_splicing_silencer","experimental_feature","experimental_result_region","experimentally_defined_binding_region","expressed_sequence_assembly","expressed_sequence_match","extended_cis_splice_site","extended_intronic_splice_region","external_transcribed_spacer_region","extrachromosomal_mobile_genetic_element","extramembrane_polypeptide_region","fingerprint_map","five_aminomethyl_two_thiouridine","five_carbamoylmethyl_two_prime_O_methyluridine","five_carbamoylmethyluridine","five_carboxyhydroxymethyl_uridine","five_carboxyhydroxymethyl_uridine_methyl_ester","five_carboxymethylaminomethyl_two_prime_O_methyluridine","five_carboxymethylaminomethyl_two_thiouridine","five_carboxymethylaminomethyluridine","five_carboxymethyluridine","five_formyl_two_prime_O_methylcytidine","five_formylcytidine","five_hydroxymethylcytidine","five_hydroxyuridine","five_isopentenylaminomethyl_two_prime_O_methyluridine","five_isopentenylaminomethyl_two_thiouridine","five_isopentenylaminomethyl_uridine","five_methoxycarbonylmethyl_two_prime_O_methyluridine","five_methoxycarbonylmethyl_two_thiouridine","five_methoxycarbonylmethyluridine","five_methoxyuridine","five_methyl_2_thiouridine","five_methylaminomethyl_two_selenouridine","five_methylaminomethyl_two_thiouridine","five_methylaminomethyluridine","five_methylcytidine","five_methyldihydrouridine","five_methyluridine","five_prime_D_heptamer","five_prime_D_nonamer","five_prime_D_recombination_signal_sequence","five_prime_D_spacer","five_prime_EST","five_prime_LTR","five_prime_LTR_component","five_prime_RST","five_prime_UST","five_prime_UTR","five_prime_UTR_intron","five_prime_cis_splice_site","five_prime_clip","five_prime_coding_exon","five_prime_coding_exon_coding_region","five_prime_coding_exon_noncoding_region","five_prime_flanking_region","five_prime_intron","five_prime_noncoding_exon","five_prime_open_reading_frame","five_prime_recoding_site","five_prime_restriction_enzyme_junction","five_prime_sticky_end_restriction_enzyme_cleavage_site","five_prime_terminal_inverted_repeat","five_taurinomethyl_two_thiouridine","five_taurinomethyluridine","five_two_prime_O_dimethylcytidine","five_two_prime_O_dimethyluridine","flanking_region","flanking_repeat","flanking_three_prime_quadruplet_recoding_signal","floxed_gene","foldback_element","foreign_gene","foreign_transposable_element","forkhead_motif","forward_primer","fosmid","four_bp_start_codon","four_demethylwyosine","four_thiouridine","fragile_site","fragment_assembly","functional_candidate_gene","functional_gene_region","fusion_gene","gRNA_gene","galactosyl_queuosine","gamma_turn","gamma_turn_classic","gamma_turn_inverse","gap","gene","gene_array","gene_cassette","gene_cassette_array","gene_component_region","gene_fragment","gene_group","gene_member_region","gene_rearranged_at_DNA_level","gene_segment","gene_silenced_by_DNA_methylation","gene_silenced_by_DNA_modification","gene_silenced_by_RNA_interference","gene_silenced_by_histone_deacetylation","gene_silenced_by_histone_methylation","gene_silenced_by_histone_modification","gene_subarray","gene_trap_construct","gene_with_dicistronic_mRNA","gene_with_dicistronic_primary_transcript","gene_with_dicistronic_transcript","gene_with_edited_transcript","gene_with_mRNA_recoded_by_translational_bypass","gene_with_mRNA_with_frameshift","gene_with_non_canonical_start_codon","gene_with_polyadenylated_mRNA","gene_with_polycistronic_transcript","gene_with_recoded_mRNA","gene_with_start_codon_CUG","gene_with_stop_codon_read_through","gene_with_stop_codon_redefined_as_pyrrolysine","gene_with_stop_codon_redefined_as_selenocysteine","gene_with_trans_spliced_transcript","gene_with_transcript_with_translational_frameshift","genetic_marker","genomic_DNA_contig","genomic_DNA_read","genomic_clone","genomic_island","genomically_contaminated_cDNA_clone","glutamic_acid","glutamic_acid_tRNA_primary_transcript","glutamine","glutamine_tRNA_primary_transcript","glutaminyl_tRNA","glutamyl_tRNA","glycine","glycine_tRNA_primary_transcript","glycyl_tRNA","golden_path","golden_path_fragment","group_1_intron_homing_endonuclease_target_region","group_IIA_intron","group_IIB_intron","group_IIC_intron","group_III_intron","group_II_intron","group_I_intron","guide_RNA","guide_RNA_region","hAT_TIR_transposon","hammerhead_ribozyme","haplotype_block","helitron","helix_turn_helix","heptamer_of_recombination_feature_of_vertebrate_immune_system_gene","heritable_phenotypic_marker","high_identity_region","histidine","histidine_tRNA_primary_transcript","histidyl_tRNA","histone_2AZ_acetylation_site","histone_2A_acetylation_site","histone_2B_acetylation_site","histone_3_acetylation_site","histone_4_acetylation_site","histone_acetylation_site","histone_acylation_region","histone_binding_site","histone_methylation_site","histone_modification","histone_ubiqitination_site","homing_endonuclease_binding_site","homol_D_box","homol_E_box","homologous_chromosome_recognition_and_pairing_locus","homologous_region","hpRNA","hpRNA_gene","hydrophobic_region_of_peptide","hydroxywybutosine","iDNA","i_motif","immature_peptide_region","immunoglobulin_gene","immunoglobulin_pseudogene","immunoglobulin_region","imprinting_control_region","indel_artifact","inducible_promoter","inert_DNA_spacer","inosine","insertion","insertion_artifact","insertion_breakpoint","insertion_sequence","insertion_site","insulator","insulator_binding_site","integrated_mobile_genetic_element","integrated_plasmid","integration_excision_site","integron","intein","intein_encoding_region","interband","interchromosomal_breakpoint","interchromosomal_translocation","intergenic_region","interior_coding_exon","interior_exon","interior_intron","intermediate_element","internal_Shine_Dalgarno_sequence","internal_UTR","internal_eliminated_sequence","internal_guide_sequence","internal_ribosome_entry_site","internal_transcribed_spacer_region","intrachromosomal_breakpoint","intrachromosomal_translocation","intramembrane_polypeptide_region","intrinsically_unstructured_polypeptide_region","introgressed_chromosome_region","intron","intron_base_5","intron_domain","intronic_regulatory_region","intronic_splice_enhancer","intronic_splicing_silencer","invalidated_cDNA_clone","inversion","inversion_breakpoint","inversion_cum_translocation","inversion_site","inversion_site_part","inverted_intrachromosomal_transposition","inverted_repeat","inverted_tandem_duplication","iron_repressed_GATA_element","iron_responsive_element","isoleucine","isoleucine_tRNA_primary_transcript","isoleucyl_tRNA","isomiR","isowyosine","junction","kinetoplast_gene","knob","kozak_sequence","lambda_vector","lariat_intron","late_origin_of_replication","left_handed_peptide_helix","leucine","leucine_tRNA_primary_transcript","leucoplast_chromosome","leucoplast_gene","leucyl_tRNA","ligand_binding_site","ligation_based_read","lincRNA","lincRNA_gene","linear_double_stranded_DNA_chromosome","linear_double_stranded_RNA_chromosome","linear_plasmid","linear_single_stranded_DNA_chromosome","linear_single_stranded_RNA_chromosome","linkage_group","lipoprotein_signal_peptide","lncRNA","lncRNA_gene","lncRNA_primary_transcript","lncRNA_with_retained_intron","loR","locus_control_region","long_terminal_repeat","long_terminal_repeat_transcript","loop","low_complexity_region","loxP_site","lysidine","lysine","lysine_tRNA_primary_transcript","lysosomal_localization_signal","lysyl_tRNA","mRNA","mRNA_contig","mRNA_read","mRNA_recoded_by_codon_redefinition","mRNA_recoded_by_translational_bypass","mRNA_region","mRNA_with_frameshift","mRNA_with_minus_1_frameshift","mRNA_with_minus_2_frameshift","mRNA_with_plus_1_frameshift","mRNA_with_plus_2_frameshift","macronuclear_chromosome","macronucleus_destined_segment","major_TSS","mannosyl_queuosine","match","match_part","maternal_uniparental_disomy","maternally_imprinted_gene","mathematically_defined_repeat","mating_type_M_box","mating_type_region","mating_type_region_motif","mating_type_region_replication_fork_barrier","matrix_attachment_site","mature_protein_region","mature_protein_region_of_CDS","mature_transcript","mature_transcript_region","maxicircle","maxicircle_gene","meiotic_recombination_region","membrane_peptide_loop","membrane_structure","metabolic_island","metal_binding_site","methionine","methionine_tRNA_primary_transcript","methionyl_tRNA","methylated_DNA_base_feature","methylated_adenine","methylated_cytosine","methylation_guide_snoRNA","methylation_guide_snoRNA_gene","methylation_guide_snoRNA_primary_transcript","methylinosine","methylwyosine","miRNA","miRNA_antiguide","miRNA_gene","miRNA_loop","miRNA_primary_transcript","miRNA_primary_transcript_region","miRNA_stem","miRNA_target_site","miR_encoding_Y_RNA_primary_transcript","miR_encoding_lncRNA_primary_transcript","miR_encoding_shRNA_primary_transcript","miR_encoding_snoRNA_primary_transcript","miR_encoding_tRNA_primary_transcript","miR_encoding_vaultRNA_primary_transcript","miRtron","microarray_oligo","micronuclear_chromosome","microsatellite","mini_exon_donor_RNA","mini_gene","minicircle","minicircle_gene","minisatellite","minor_TSS","minus_10_signal","minus_12_signal","minus_1_translational_frameshift","minus_24_signal","minus_2_translational_frameshift","minus_35_signal","mitochondrial_DNA_read","mitochondrial_D_loop","mitochondrial_chromosome","mitochondrial_contig","mitochondrial_control_region","mitochondrial_supercontig","mitochondrial_targeting_signal","mitotic_recombination_region","moR","mobile_element_deletion","mobile_element_insertion","mobile_genetic_element","mobile_intron","modified_DNA_base","modified_L_alanine","modified_L_arginine","modified_L_asparagine","modified_L_aspartic_acid","modified_L_cysteine","modified_L_glutamic_acid","modified_L_glutamine","modified_L_histidine","modified_L_isoleucine","modified_L_leucine","modified_L_lysine","modified_L_methionine","modified_L_phenylalanine","modified_L_proline","modified_L_selenocysteine","modified_L_serine","modified_L_threonine","modified_L_tryptophan","modified_L_tyrosine","modified_L_valine","modified_RNA_base_feature","modified_adenine","modified_adenosine","modified_amino_acid_feature","modified_cytidine","modified_cytosine","modified_glycine","modified_guanine","modified_guanosine","modified_inosine","modified_uridine","molecular_contact_region","monocistronic_mRNA","monocistronic_primary_transcript","monocistronic_transcript","monomeric_repeat","morpholino_oligo","mt_LSU_rRNA","mt_LSU_rRNA_gene","mt_SSU_rRNA","mt_SSU_rRNA_gene","mt_gene","mt_rRNA","mt_rRNA_gene","mt_tRNA","multiplexing_sequence_identifier","mutated_variant_site","mutational_hotspot","n_terminal_region","natural_plasmid","natural_transposable_element","natural_variant_site","ncRNA","ncRNA_gene","nc_conserved_region","nc_primary_transcript","negative_sense_ssRNA_viral_sequence","negatively_autoregulated_gene","nested_repeat","nested_tandem_repeat","nested_transposon","no_output","no_sequence_alteration","non_AUG_initiated_uORF","non_LTR_retrotransposon","non_LTR_retrotransposon_polymeric_tract","non_adjacent_residues","non_allelic_homologous_recombination_region","non_canonical_five_prime_splice_site","non_canonical_start_codon","non_canonical_three_prime_splice_site","non_complimentary_stem","non_cytoplasmic_polypeptide_region","non_processed_pseudogene","non_terminal_residue","non_transcribed_region","nonamer_of_recombination_feature_of_vertebrate_immune_system_gene","noncoding_exon","noncoding_region_of_exon","novel_sequence_insertion","nuclear_chromosome","nuclear_export_signal","nuclear_gene","nuclear_localization_signal","nuclear_mt_pseudogene","nuclear_rim_localization_signal","nuclease_binding_site","nuclease_hypersensitive_site","nuclease_sensitive_site","nucleomorph_gene","nucleomorphic_chromosome","nucleotide_binding_site","nucleotide_cleavage_site","nucleotide_match","nucleotide_motif","nucleotide_to_protein_binding_site","ochre_stop_codon","octamer_motif","oligo","oligo_U_tail","one_methyl_three_three_amino_three_carboxypropyl_pseudouridine","one_methyladenosine","one_methylguanosine","one_methylinosine","one_methylpseudouridine","one_two_prime_O_dimethyladenosine","one_two_prime_O_dimethylguanosine","one_two_prime_O_dimethylinosine","opal_stop_codon","open_chromatin_region","operator","operon","oriC","oriT","oriV","origin_of_replication","orphan_CDS","orthologous_region","outron","overlapping_EST_set","overlapping_feature_set","paired_end_fragment","parallel_beta_strand","paralogous_region","partial_genomic_sequence_assembly","partially_processed_cDNA_clone","paternal_uniparental_disomy","paternally_imprinted_gene","pathogenic_island","peptide_coil","peptide_helix","peptide_localization_signal","peroxywybutosine","phage_sequence","phagemid","phenylalanine","phenylalanine_tRNA_primary_transcript","phenylalanyl_tRNA","pheromone_response_element","phosphorylation_site","piRNA","piRNA_gene","pi_helix","piggyBac_TIR_transposon","plasmid","plasmid_gene","plasmid_vector","plastid_LSU_rRNA","plastid_LSU_rRNA_gene","plastid_SSU_rRNA","plastid_SSU_rRNA_gene","plastid_gene","plastid_rRNA","plastid_rRNA_gene","plus_1_translational_frameshift","plus_2_translational_frameshift","point_centromere","point_mutation","polinton","polyA_primed_cDNA_clone","polyA_sequence","polyA_signal_sequence","polyA_site","polyA_site_cluster","polyadenylated_mRNA","polycistronic_mRNA","polycistronic_primary_transcript","polycistronic_transcript","polymerase_synthesis_read","polymorphic_pseudogene","polymorphic_pseudogene_processed_transcript","polymorphic_pseudogene_with_retained_intron","polypeptide","polypeptide_DNA_contact","polypeptide_binding_motif","polypeptide_calcium_ion_contact_site","polypeptide_catalytic_motif","polypeptide_cobalt_ion_contact_site","polypeptide_conserved_motif","polypeptide_conserved_region","polypeptide_copper_ion_contact_site","polypeptide_domain","polypeptide_iron_ion_contact_site","polypeptide_ligand_contact","polypeptide_magnesium_ion_contact_site","polypeptide_manganese_ion_contact_site","polypeptide_metal_contact","polypeptide_molybdenum_ion_contact_site","polypeptide_motif","polypeptide_nest_left_right_motif","polypeptide_nest_motif","polypeptide_nest_right_left_motif","polypeptide_nickel_ion_contact_site","polypeptide_region","polypeptide_repeat","polypeptide_secondary_structure","polypeptide_sequencing_information","polypeptide_structural_motif","polypeptide_structural_region","polypeptide_tungsten_ion_contact_site","polypeptide_turn_motif","polypeptide_variation_site","polypeptide_zinc_ion_contact_site","polypyrimidine_tract","positional_candidate_gene","positive_sense_ssRNA_viral_sequence","positively_autoregulated_gene","possible_assembly_error","possible_base_call_error","post_translationally_modified_region","post_translationally_regulated_gene","pre_edited_mRNA","pre_edited_region","pre_miRNA","predicted_gene","predicted_transcript","presence_absence_variation","priRNA","primary_transcript","primary_transcript_region","primer","primer_binding_site","primer_match","probe","processed_pseudogene","processed_pseudogenic_rRNA","processed_pseudogenic_tRNA","processed_transcript","prokaryotic_promoter","proline","proline_tRNA_primary_transcript","prolyl_tRNA","promoter","promoter_element","promoter_flanking_region","promoter_targeting_sequence","promoter_trap_construct","propeptide","propeptide_cleavage_site","propeptide_region_of_CDS","prophage","proplastid_gene","protease_site","protein_binding_site","protein_coding_gene","protein_coding_primary_transcript","protein_hmm_match","protein_match","protein_protein_contact","protein_stability_element","proviral_gene","proviral_region","proximal_promoter_element","pseudogene","pseudogene_by_unequal_crossing_over","pseudogene_processed_transcript","pseudogenic_CDS","pseudogenic_exon","pseudogenic_gene_segment","pseudogenic_rRNA","pseudogenic_region","pseudogenic_tRNA","pseudogenic_transcript","pseudogenic_transcript_with_retained_intron","pseudoknot","pseudouridine","pseudouridylation_guide_snoRNA","pseudouridylation_guide_snoRNA_gene","pumilio_response_element","purine_to_pyrimidine_transversion","purine_transition","pyrimidine_to_purine_transversion","pyrimidine_transition","pyrosequenced_read","pyrrolysine","pyrrolysine_tRNA_primary_transcript","pyrrolysyl_tRNA","queuosine","rDNA_intergenic_spacer_element","rDNA_replication_fork_barrier","rRNA","rRNA_21S_gene","rRNA_cleavage_RNA","rRNA_cleavage_snoRNA_primary_transcript","rRNA_gene","rRNA_large_subunit_primary_transcript","rRNA_primary_transcript","rRNA_primary_transcript_region","rRNA_small_subunit_primary_transcript","rare_fragile_site","rasiRNA","read","read_pair","reading_frame","reagent","rearrangement_region","reciprocal_chromosomal_translocation","recoded_codon","recoded_mRNA","recoding_pseudoknot","recoding_stimulatory_region","recombination_enhancer","recombination_feature","recombination_feature_of_rearranged_gene","recombination_hotspot","recombination_regulatory_region","recombination_signal_sequence","recombinationally_inverted_gene","recombinationally_rearranged_gene","recombinationally_rearranged_vertebrate_immune_system_gene","recursive_splice_site","ref_miRNA","region","regional_centromere","regional_centromere_central_core","regional_centromere_inner_repeat_region","regional_centromere_outer_repeat_region","regional_centromere_outer_repeat_transcript","regulatory_promoter_element","regulatory_region","regulon","remark","repeat_component","repeat_fragment","repeat_instability_region","repeat_region","repeat_unit","replication_regulatory_region","replication_start_site","replicon","rescue_gene","rescue_mini_gene","rescue_region","resolution_site","response_element","restriction_enzyme_assembly_scar","restriction_enzyme_binding_site","restriction_enzyme_cleavage_junction","restriction_enzyme_five_prime_single_strand_overhang","restriction_enzyme_recognition_site","restriction_enzyme_region","restriction_enzyme_single_strand_overhang","restriction_enzyme_three_prime_single_strand_overhang","restriction_fragment","retinoic_acid_responsive_element","retrogene","retron","retrotransposon","reverse_Hoogsteen_base_pair","reverse_primer","rho_dependent_bacterial_terminator","rho_independent_bacterial_terminator","ribonuclease_site","ribosome_entry_site","riboswitch","ribothymidine","ribozyme","ribozyme_gene","right_handed_peptide_helix","sORF","sarcin_like_RNA_motif","satellite_DNA","sbRNA","sbRNA_gene","scRNA","scRNA_gene","scRNA_primary_transcript","scaRNA","scaRNA_gene","schellmann_loop","schellmann_loop_seven","schellmann_loop_six","selection_marker","selenocysteine","selenocysteine_tRNA_primary_transcript","selenocysteinyl_tRNA","self_cleaving_ribozyme","sense_intronic_ncRNA","sense_intronic_ncRNA_gene","sense_overlap_ncRNA","sense_overlap_ncRNA_gene","sequence_alteration","sequence_alteration_artifact","sequence_assembly","sequence_comparison","sequence_conflict","sequence_difference","sequence_feature","sequence_length_alteration","sequence_motif","sequence_rearrangement_feature","sequence_secondary_structure","sequence_uncertainty","sequencing_primer","serine","serine_tRNA_primary_transcript","serine_threonine_motif","serine_threonine_staple_motif","serine_threonine_turn","seryl_tRNA","seven_aminomethyl_seven_deazaguanosine","seven_cyano_seven_deazaguanosine","seven_deazaguanosine","seven_methylguanine","seven_methylguanosine","sgRNA","shRNA","shRNA_primary_transcript","shadow_enhancer","short_tandem_repeat_variation","siRNA","signal_anchor","signal_peptide","signal_peptide_region_of_CDS","signature","silenced_gene","silencer","silent_mating_type_cassette_array","simple_operon","simple_regulon","simple_sequence_length_variation","single_strand_restriction_enzyme_cleavage_site","single_stranded_DNA_chromosome","single_stranded_RNA_chromosome","sisRNA","site_specific_recombination_target_region","smFISH_probe","small_regulatory_ncRNA","snRNA","snRNA_gene","snRNA_primary_transcript","sncRNA","sncRNA_gene","snoRNA","snoRNA_gene","snoRNA_primary_transcript","solo_LTR","sonicate_fragment","specific_recombination_site","splice_enhancer","splice_junction","splice_region","splice_site","spliced_leader_RNA","spliceosomal_intron","spliceosomal_intron_region","splicing_regulatory_region","spot_42_RNA","spurious_protein","ss_RNA_viral_sequence","ss_oligo","st_turn_left_handed_type_one","st_turn_left_handed_type_two","st_turn_right_handed_type_one","st_turn_right_handed_type_two","start_codon","stem","stem_loop","stem_loop_region","sterol_regulatory_element","sticky_end_restriction_enzyme_cleavage_site","stop_codon","stop_codon_read_through","stop_codon_redefined_as_pyrrolysine","stop_codon_redefined_as_selenocysteine","stop_codon_signal","structural_alteration","substitution","substitution_artifact","subtelomere","sugar_edge_base_pair","supercontig","symbiosis_island","symmetric_RNA_internal_loop","syntenic_region","synthetic_oligo","tRNA","tRNA_SINE_retrotransposon","tRNA_gene","tRNA_intron","tRNA_primary_transcript","tRNA_region","tag","tandem_duplication","tandem_repeat","target_site_duplication","targeting_vector","tasiRNA","tasiRNA_primary_transcript","teb1_recognition_motif","telomerase_RNA","telomerase_RNA_gene","telomere","telomeric_D_loop","telomeric_repeat","telomeric_transcript","template_region","terminal_inverted_repeat","terminal_inverted_repeat_element","terminal_repeat","terminator","terminator_of_type_2_RNApol_III_promoter","tetraloop","tetranucleotide_repeat_microsatellite_feature","three_methylcytidine","three_methylpseudouridine","three_methyluridine","three_prime_D_heptamer","three_prime_D_nonamer","three_prime_D_recombination_signal_sequence","three_prime_D_spacer","three_prime_EST","three_prime_LTR","three_prime_LTR_component","three_prime_RACE_clone","three_prime_RST","three_prime_UST","three_prime_UTR","three_prime_UTR_intron","three_prime_cis_splice_site","three_prime_clip","three_prime_coding_exon","three_prime_coding_exon_coding_region","three_prime_coding_exon_noncoding_region","three_prime_flanking_region","three_prime_intron","three_prime_noncoding_exon","three_prime_overlapping_ncrna","three_prime_recoding_site","three_prime_repeat_recoding_signal","three_prime_restriction_enzyme_junction","three_prime_stem_loop_structure","three_prime_sticky_end_restriction_enzyme_cleavage_site","three_prime_terminal_inverted_repeat","three_ten_helix","three_three_amino_three_carboxypropyl_uridine","three_two_prime_O_dimethyluridine","threonine","threonine_tRNA_primary_transcript","threonyl_tRNA","tiling_path","tiling_path_clone","tiling_path_fragment","tmRNA","tmRNA_acceptor_piece","tmRNA_coding_piece","tmRNA_gene","tmRNA_primary_transcript","tmRNA_region","tnaORF","topologically_associated_domain","topologically_associated_domain_boundary","topologically_defined_region","trans_splice_acceptor_site","trans_splice_donor_site","trans_splice_junction","trans_splice_site","trans_spliced_mRNA","trans_spliced_transcript","transcribed_cluster","transcribed_fragment","transcribed_processed_pseudogene","transcribed_spacer_region","transcribed_unitary_pseudogene","transcribed_unprocessed_pseudogene","transcript","transcript_bound_by_nucleic_acid","transcript_bound_by_protein","transcript_region","transcript_with_translational_frameshift","transcription_end_site","transcription_factor_regulatory_site","transcription_pause_site","transcription_start_cluster","transcription_termination_signal","transcription_unit","transcriptional_cis_regulatory_region","transgene","transgenic_insertion","transgenic_transposable_element","transit_peptide","transit_peptide_region_of_CDS","transition","translated_nucleotide_match","translated_processed_pseudogene","translated_unprocessed_pseudogene","translation_regulatory_region","translational_frameshift","translationally_regulated_gene","translocation","translocation_breakpoint","translocation_element","transmembrane_helix","transmembrane_polypeptide_region","transposable_element","transposable_element_CDS","transposable_element_flanking_region","transposable_element_gene","transposable_element_insertion_site","transposable_element_pseudogene","transposon_fragment","transversion","trinucleotide_repeat_microsatellite_feature","tryptophan","tryptophan_tRNA_primary_transcript","tryptophanyl_tRNA","twintron","two_methyladenosine","two_methylthio_N6_cis_hydroxyisopentenyl_adenosine","two_methylthio_N6_hydroxynorvalyl_carbamoyladenosine","two_methylthio_N6_isopentenyladenosine","two_methylthio_N6_methyladenosine","two_methylthio_N6_threonyl_carbamoyladenosine","two_prime_O_methyladenosine","two_prime_O_methylcytidine","two_prime_O_methylguanosine","two_prime_O_methylinosine","two_prime_O_methylpseudouridine","two_prime_O_methyluridine","two_prime_O_ribosyladenosine_phosphate","two_prime_O_ribosylguanosine_phosphate","two_thio_two_prime_O_methyluridine","two_thiocytidine","two_thiouridine","tyrosine","tyrosine_tRNA_primary_transcript","tyrosyl_tRNA","uORF","ultracontig","unassigned_supercontig","unconfirmed_transcript","undermodified_hydroxywybutosine","unedited_region","unigene_cluster","unit_of_gene_expression","unitary_pseudogene","unitary_pseudogenic_rRNA","unitary_pseudogenic_tRNA","unprocessed_pseudogenic_rRNA","unprocessed_pseudogenic_tRNA","unspecified_indel","untranslated_region_polycistronic_mRNA","upstream_AUG_codon","uridine_five_oxyacetic_acid","uridine_five_oxyacetic_acid_methyl_ester","vacuolar_sorting_signal","validated_cDNA_clone","valine","valine_tRNA_primary_transcript","valyl_tRNA","vaultRNA_primary_transcript","vault_RNA","vault_RNA_gene","vector_replicon","vertebrate_immune_system_gene","vertebrate_immune_system_gene_recombination_feature","vertebrate_immune_system_gene_recombination_signal_feature","vertebrate_immune_system_gene_recombination_spacer","vertebrate_immune_system_pseudogene","vertebrate_immunoglobulin_T_cell_receptor_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_segment","vertebrate_immunoglobulin_T_cell_receptor_segment","viral_promoter","viral_sequence","virtual_sequence","wild_type_rescue_gene","wobble_base_pair","wybutosine","wyosine","zinc_finger_binding_site","zinc_repressed_element"],Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.CoreValidation=void 0,Ul.isTypeChange=$l;var Gl=Dl,Hl=Ze.__importDefault(zl);function $l(e){return"oldType"in e&&"newType"in e}var Vl=function(e){ee(a,e);var t,n,r=le(a);function a(){var e;K(this,a);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return Q(se(e=r.call.apply(r,[this].concat(n))),"name","Core"),e}return X(a,[{key:"frontendPreValidate",value:(n=Y(V().mark((function e(t){var n,r,a;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!$l(t)){e.next=18;break}n=ve(t.changes),e.prev=2,n.s();case 4:if((r=n.n()).done){e.next=10;break}if(Hl.default.includes((a=r.value).newType)){e.next=8;break}return e.abrupt("return",{validationName:this.name,error:{message:'"'.concat(a.newType,'" is not a valid SO sequence_feature term')}});case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:return e.abrupt("return",{validationName:this.name});case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return n.apply(this,arguments)})},{key:"possibleValues",value:(t=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("type"!==t){e.next=2;break}return e.abrupt("return",Hl.default);case 2:return e.abrupt("return");case 3:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})}]),a}(Gl.Validation);Ul.CoreValidation=Vl;var Wl={};Object.defineProperty(Wl,"__esModule",{value:!0}),Wl.ParentChildValidation=void 0;var Jl=Qn,Yl=Xs,Kl=function(e){ee(a,e);var t,n,r=le(a);function a(){var e;K(this,a);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return Q(se(e=r.call.apply(r,[this].concat(n))),"name","ParentChildValidation"),e}return X(a,[{key:"backendPostValidate",value:(n=Y(V().mark((function e(t,n){var r,a;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.featureModel,a=n.session,!(0,Jl.isLocationEndChange)(t)&&!(0,Jl.isLocationStartChange)(t)){e.next=3;break}return e.abrupt("return",this.validateParentChildRelationships(t,{session:a,featureModel:r}));case 3:return e.abrupt("return",{validationName:this.name});case 4:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"validateParentChildRelationships",value:(t=Y(V().mark((function e(t,n){var r,a,o,i,s,l,c,u,d;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.featureModel,a=n.session,o=[],i=ve(t.changes),e.prev=3,l=V().mark((function e(){var t,n,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=s.value.featureId,e.next=4,r.findOne({allIds:t}).session(a).exec();case 4:if(n=e.sent){e.next=8;break}throw i="ERROR: The following featureId was not found in database ='".concat(t,"'"),new Error(i);case 8:o.some((function(e){return e._id===n._id}))||o.push(n);case 9:case"end":return e.stop()}}),e)})),i.s();case 6:if((s=i.n()).done){e.next=10;break}return e.delegateYield(l(),"t0",8);case 8:e.next=6;break;case 10:e.next=15;break;case 12:e.prev=12,e.t1=e.catch(3),i.e(e.t1);case 15:return e.prev=15,i.f(),e.finish(15);case 18:c=0,u=o;case 19:if(!(c<u.length)){e.next=31;break}d=u[c],e.prev=21,this.checkChildFeatureBoundaries(d),e.next=28;break;case 25:return e.prev=25,e.t2=e.catch(21),e.abrupt("return",{validationName:this.name,error:{message:String(e.t2)}});case 28:c++,e.next=19;break;case 31:return e.abrupt("return",{validationName:this.name});case 32:case"end":return e.stop()}}),e,this,[[3,12,15,18],[21,25]])}))),function(e,n){return t.apply(this,arguments)})},{key:"checkChildFeatureBoundaries",value:function(e){if(e.children){var t,n=ve(e.children||new Map);try{for(n.s();!(t=n.n()).done;){var r=ue(t.value,2)[1];if(null!==e.min&&null!==e.max&&null!==r.min&&null!==r.max&&(r.max>e.max||r.min<e.min))throw new Error("Feature ".concat((0,Yl.getPrintableId)(r)," exceeds the bounds of its parent, ").concat((0,Yl.getPrintableId)(e)));this.checkChildFeatureBoundaries(r)}}catch(e){n.e(e)}finally{n.f()}}}}]),a}(Dl.Validation);Wl.ParentChildValidation=Kl,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ze;t.__exportStar(Dl,e),t.__exportStar(Ll,e),t.__exportStar(Ul,e),t.__exportStar(Wl,e)}(Ml);var Zl={},Xl={};function Ql(e){this.message=e}(Ql.prototype=new Error).name="InvalidCharacterError";var ec="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new Ql("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,a=0,o=0,i="";r=t.charAt(o++);~r&&(n=a%4?64*n+r:r,a++%4)?i+=String.fromCharCode(255&n>>(-2*a&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return i};function tc(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(ec(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return ec(t)}}function nc(e){this.message=e}(nc.prototype=new Error).name="InvalidTokenError";var rc={__proto__:null,default:function(e,t){if("string"!=typeof e)throw new nc("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(tc(e.split(".")[n]))}catch(e){throw new nc("Invalid token specified: "+e.message)}},InvalidTokenError:nc},ac=D(rc);Object.defineProperty(Xl,"__esModule",{value:!0}),Xl.makeUserSessionId=function(e){var t="string"==typeof e?(0,oc.default)(e):e;return"".concat(t.id,"-").concat(t.iat)},Xl.getDecodedToken=function(e){return(0,oc.default)(e)};var oc=Ze.__importDefault(ac);!function(e){Object.defineProperty(e,"__esModule",{value:!0}),Ze.__exportStar(Xl,e)}(Zl);var ic={},sc={},lc={};Object.defineProperty(lc,"__esModule",{value:!0}),lc.getPrintableId=function(e){var t,n,r=null===(t=e.attributes)||void 0===t||null===(t=t.gff_id)||void 0===t?void 0:t.join(", ");if(r)return"".concat(r," (_id: ").concat(e._id.toString(),")");var a=null===(n=e.attributes)||void 0===n||null===(n=n.gff_name)||void 0===n?void 0:n.join(", ");return a?"".concat(a," (_id: ").concat(e._id.toString(),")"):"_id: ".concat(e._id.toString())},Object.defineProperty(sc,"__esModule",{value:!0}),sc.CDSCheck=void 0;var cc,uc,dc=tr,fc=A.default,pc=Ze.__importDefault(Hn),hc=lc;!function(e){e[e.TAG=0]="TAG",e[e.TAA=1]="TAA",e[e.TGA=2]="TGA"}(cc||(cc={})),function(e){e[e.ATG=0]="ATG"}(uc||(uc={}));var mc,gc="CDSCheck";!function(e){e[e.InternalStopCodon=0]="InternalStopCodon",e[e.MissingStartCodon=1]="MissingStartCodon",e[e.MissingStopCodon=2]="MissingStopCodon"}(mc||(mc={}));var yc={G:"C",A:"T",T:"A",C:"G",R:"Y",Y:"R",M:"K",K:"M",S:"S",W:"W",H:"D",B:"V",V:"B",D:"H",N:"N"};function vc(e){var t,n=[],r=ve(e);try{for(r.s();!(t=r.n()).done;){var a=t.value,o=yc[a.toUpperCase()];if(void 0===o)throw new TypeError('Cannot complement nucleotide: "'.concat(a,'"'));a===a.toLowerCase()?n.push(o.toLowerCase()):n.push(o)}}catch(e){r.e(e)}finally{r.f()}return n.reverse().join("")}function bc(e,t,n){return _c.apply(this,arguments)}function _c(){return(_c=Y(V().mark((function e(t,n,r){var a;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return r(e.min,e.max)})));case 2:return a=e.sent.join(""),-1===n&&(a=vc(a)),e.abrupt("return",a);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function wc(e){for(var t=[],n=0;n<=e.length-3;n+=3)t.push(e.slice(n,n+3));return t}function xc(e,t,n){return-1===n?e>t:e<t}function Sc(e,t,n){var r=structuredClone(e);r.sort(-1===t?function(e,t){return e.min<t.min?1:-1}:function(e,t){return e.min<t.min?-1:1});for(var a=0,o=void 0,i=void 0,s=0;s<r.length;s++)for(var l=r[s],c=l.phase,u=-1===t?l.min:l.max,d=-1===t?l.max-c:l.min+c;xc(d,u,t);d=-1===t?d-3:d+3){if(o=d,i=-1===t?o-3:o+3,-1===t&&i<l.min?i=r[s+1].max-r[s+1].phase:i>l.max&&(i=r[s+1].min+r[s+1].phase),a===n)return[o,i].sort((function(e,t){return e-t}));a++}}function Ec(e,t){return kc.apply(this,arguments)}function kc(){return(kc=Y(V().mark((function e(t,n){var r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v,b,_,w,x,S,E,k,C,A,O,T,N,I,R,F,P,M,D;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],a=t._id,o=t.max,i=t.min,s=t.refSeq,l=t.strand,c=Cc(t)){e.next=5;break}return e.abrupt("return",r);case 5:u=[a],d=ve(c),e.prev=7,d.s();case 9:if((f=d.n()).done){e.next=38;break}return y=f.value,e.next=13,bc(y,l,n);case 13:b=wc(v=e.sent),_=-1===l?null!==(p=null===(h=y.at(0))||void 0===h?void 0:h.min)&&void 0!==p?p:i:null!==(m=null===(g=y.at(-1))||void 0===g?void 0:g.max)&&void 0!==m?m:o,v.length%3==0?((w=b.at(0))&&!(w.toUpperCase()in uc)&&(C=-1===l?null!==(x=null===(S=y.at(-1))||void 0===S?void 0:S.max)&&void 0!==x?x:o:null!==(E=null===(k=y.at(0))||void 0===k?void 0:k.min)&&void 0!==E?E:i,C=-1===l?C-3:C,r.push({_id:(new pc.default).toHexString(),name:gc,cause:mc[mc.MissingStartCodon],ids:u,refSeq:s.toString(),start:C,end:C,message:'Unexpected start codon "'.concat(w,'" in feature "').concat((0,hc.getPrintableId)(t),'": ')})),(A=b.at(-1))&&!(A.toUpperCase()in cc)&&r.push({_id:(new pc.default).toHexString(),name:gc,cause:mc[mc.MissingStopCodon],ids:u,refSeq:s.toString(),start:_,end:_,message:'Missing stop codon in feature "'.concat((0,hc.getPrintableId)(t),'"')})):r.push({_id:(new pc.default).toHexString(),name:gc,cause:mc[mc.MissingStopCodon],ids:u,refSeq:s.toString(),start:_,end:_,message:'Missing stop codon in feature "'.concat((0,hc.getPrintableId)(t),'"')}),O=ve(b.entries()),e.prev=18,O.s();case 20:if((T=O.n()).done){e.next=28;break}if(N=ue(T.value,2),R=N[1],(I=N[0])!==b.length-1){e.next=24;break}return e.abrupt("break",28);case 24:(F=Sc(y,l,I))&&R.toUpperCase()in cc&&(P=ue(F,2),M=P[0],D=P[1],r.push({_id:(new pc.default).toHexString(),name:gc,cause:mc[mc.InternalStopCodon],ids:u,refSeq:s.toString(),start:M,end:D,message:'Internal stop codon in feature "'.concat((0,hc.getPrintableId)(t),'"')}));case 26:e.next=20;break;case 28:e.next=33;break;case 30:e.prev=30,e.t0=e.catch(18),O.e(e.t0);case 33:return e.prev=33,O.f(),e.finish(33);case 36:e.next=9;break;case 38:e.next=43;break;case 40:e.prev=40,e.t1=e.catch(7),d.e(e.t1);case 43:return e.prev=43,d.f(),e.finish(43);case 46:return e.abrupt("return",r);case 47:case"end":return e.stop()}}),e,null,[[7,40,43,46],[18,30,33,36]])})))).apply(this,arguments)}function Cc(e){if("mRNA"===e.type){var t=e.children,n=e.strand;if(t){var r=Object.values(t).filter((function(e){return"CDS"===e.type}));if(0!==r.length){var a,o=[],i=ve(r);try{var s=function(){for(var e=a.value,r=e.max,i=e.min,s=[],l=0,c=Object.values(t);l<c.length;l++){var u=c[l];if("exon"===u.type){var d=ue((0,fc.intersection2)(i,r,u.min,u.max),2),f=d[0],p=d[1];void 0!==f&&void 0!==p&&s.push({min:f,max:p})}}s.sort((function(e,t){return e.min-t.min})),-1===n&&s.reverse();var h=0,m=s.map((function(e){var t=h;return h=(3-(e.max-e.min-t+3)%3)%3,$($({},e),{},{phase:t})}));m.sort((function(e,t){return e.min<t.min?-1:1})),o.push(m)};for(i.s();!(a=i.n()).done;)s()}catch(e){i.e(e)}finally{i.f()}return o.length>1&&o.sort((function(e,t){return e[0].min<t[0].min?-1:1})),o}}}}var Ac=function(e){ee(r,e);var t,n=le(r);function r(){var e;K(this,r);for(var t=arguments.length,a=new Array(t),o=0;o<t;o++)a[o]=arguments[o];return Q(se(e=n.call.apply(n,[this].concat(a))),"name",gc),Q(se(e),"causes",Object.values(mc).filter((function(e){return Number.isNaN(Number(e))}))),Q(se(e),"version",1),Q(se(e),"isDefault",!0),e}return X(r,[{key:"checkFeature",value:(t=Y(V().mark((function e(t,n){var r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("mRNA"!==t.type){e.next=2;break}return e.abrupt("return",Ec(t,n));case 2:if(t.children){e.next=4;break}return e.abrupt("return",[]);case 4:r=[],a=0,o=Object.values(t.children);case 6:if(!(a<o.length)){e.next=19;break}return i=o[a],e.t0=r.push,e.t1=r,e.t2=fe,e.next=13,this.checkFeature(i,n);case 13:e.t3=e.sent,e.t4=(0,e.t2)(e.t3),e.t0.apply.call(e.t0,e.t1,e.t4);case 16:a++,e.next=6;break;case 19:return e.abrupt("return",r);case 20:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),r}(dc.Check);sc.CDSCheck=Ac;var Oc={};Object.defineProperty(Oc,"__esModule",{value:!0}),Oc.TranscriptCheck=void 0;var Tc,Nc=tr,Ic=A.default,Rc=Ze.__importDefault(Hn),Fc=lc;!function(e){e[e.NonCanonicalSpliceSiteAtFivePrime=0]="NonCanonicalSpliceSiteAtFivePrime",e[e.NonCanonicalSpliceSiteAtThreePrime=1]="NonCanonicalSpliceSiteAtThreePrime"}(Tc||(Tc={}));var Pc="TranscriptCheck";function Mc(e,t){return Dc.apply(this,arguments)}function Dc(){return Dc=Y(V().mark((function e(t,n){var r,a,o,i,s,l,c,u,d,f,p,h;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.children){e.next=2;break}return e.abrupt("return",[]);case 2:for(r=[],a=0,o=Object.entries(t.children);a<o.length;a++)i=ue(o[a],2),"exon"===(s=i[1]).type&&r.push(s);if(!(r.length<2)){e.next=6;break}return e.abrupt("return",[]);case 6:r.sort((function(e,t){return e.min<t.min?-1:1})),l=[],c=0;case 9:if(!(c<r.length-1)){e.next=24;break}return u=r[c].max,d=r[c+1].min,-1===t.strand?(d=(f=[u,d])[0],u=f[1],u-=2):d-=2,e.next=15,n(u,u+2);case 15:return p=e.sent,e.next=18,n(d,d+2);case 18:h=e.sent,-1===t.strand&&(h=(0,Ic.revcom)(h),p=(0,Ic.revcom)(p)),l.push({fivePrimeSeq:p,fivePrimeMin:u,threePrimeSeq:h,threePrimeMin:d});case 21:c++,e.next=9;break;case 24:return e.abrupt("return",l);case 25:case"end":return e.stop()}}),e)}))),Dc.apply(this,arguments)}function jc(e,t){return Lc.apply(this,arguments)}function Lc(){return Lc=Y(V().mark((function e(t,n){var r,a,o,i,s,l;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=[],a=new Set(["GT"]),o=new Set(["AG"]),e.next=5,Mc(t,n);case 5:i=ve(e.sent);try{for(i.s();!(s=i.n()).done;)a.has((l=s.value).fivePrimeSeq.toUpperCase())||r.push({_id:(new Rc.default).toHexString(),name:Pc,cause:Tc[Tc.NonCanonicalSpliceSiteAtFivePrime],ids:[t._id],refSeq:t.refSeq.toString(),start:l.fivePrimeMin,end:l.fivePrimeMin+2,message:'Unexpected 5′ splice site in "'.concat((0,Fc.getPrintableId)(t),'". Expected: ').concat(fe(a).join("|"),", got: ").concat(l.fivePrimeSeq)}),o.has(l.threePrimeSeq.toUpperCase())||r.push({_id:(new Rc.default).toHexString(),name:Pc,cause:Tc[Tc.NonCanonicalSpliceSiteAtThreePrime],ids:[t._id],refSeq:t.refSeq.toString(),start:l.threePrimeMin,end:l.threePrimeMin+2,message:'Unexpected 3′ splice site in "'.concat((0,Fc.getPrintableId)(t),'". Expected: ').concat(fe(o).join("|"),", got: ").concat(l.threePrimeSeq)})}catch(e){i.e(e)}finally{i.f()}return e.abrupt("return",r);case 9:case"end":return e.stop()}}),e)}))),Lc.apply(this,arguments)}var qc=function(e){ee(r,e);var t,n=le(r);function r(){var e;K(this,r);for(var t=arguments.length,a=new Array(t),o=0;o<t;o++)a[o]=arguments[o];return Q(se(e=n.call.apply(n,[this].concat(a))),"name","TranscriptCheck"),Q(se(e),"causes",Object.values(Tc).filter((function(e){return Number.isNaN(Number(e))}))),Q(se(e),"version",1),Q(se(e),"isDefault",!0),e}return X(r,[{key:"checkFeature",value:(t=Y(V().mark((function e(t,n){var r,a,o,i;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("mRNA"!==t.type&&"transcript"!==t.type&&"pseudogenic_transcript"!==t.type){e.next=2;break}return e.abrupt("return",jc(t,n));case 2:if(t.children){e.next=4;break}return e.abrupt("return",[]);case 4:r=[],a=0,o=Object.values(t.children);case 6:if(!(a<o.length)){e.next=19;break}return i=o[a],e.t0=r.push,e.t1=r,e.t2=fe,e.next=13,this.checkFeature(i,n);case 13:e.t3=e.sent,e.t4=(0,e.t2)(e.t3),e.t0.apply.call(e.t0,e.t1,e.t4);case 16:a++,e.next=6;break;case 19:return e.abrupt("return",r);case 20:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})}]),r}(Nc.Check);Oc.TranscriptCheck=qc,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ze;t.__exportStar(sc,e),t.__exportStar(Oc,e)}(ic);var Bc={};Object.defineProperty(Bc,"__esModule",{value:!0}),function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ze;t.__exportStar(Qn,e),t.__exportStar(Nl,e),t.__exportStar(Ml,e),t.__exportStar(Zl,e),t.__exportStar(ic,e),t.__exportStar(Xs,e),t.__exportStar(Bc,e),t.__exportStar(Cr,e)}(Xn);var Uc=s.createSvgIcon(i.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add");const zc=a.ConfigurationSchema("ApolloInternetAccount",{baseURL:{description:"Location of Apollo server",type:"string",defaultValue:""},tokenType:{description:"A custom name for a token to include in the header",type:"string",defaultValue:"Bearer"}},{baseConfiguration:o.BaseInternetAccountConfig,explicitlyTyped:!0});var Gc=Object.create(null);Gc.open="0",Gc.close="1",Gc.ping="2",Gc.pong="3",Gc.message="4",Gc.upgrade="5",Gc.noop="6";var Hc=Object.create(null);Object.keys(Gc).forEach((function(e){Hc[Gc[e]]=e}));var $c,Vc={type:"error",data:"parser error"},Wc="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),Jc="function"==typeof ArrayBuffer,Yc=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer},Kc=function(e,t,n){var r=e.type,a=e.data;return Wc&&a instanceof Blob?t?n(a):Zc(a,n):Jc&&(a instanceof ArrayBuffer||Yc(a))?t?n(a):Zc(new Blob([a]),n):n(Gc[r]+(a||""))},Zc=function(e,t){var n=new FileReader;return n.onload=function(){var e=n.result.split(",")[1];t("b"+(e||""))},n.readAsDataURL(e)};function Xc(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}for(var Qc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),eu=0;eu<64;eu++)Qc["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(eu)]=eu;var tu,nu="function"==typeof ArrayBuffer,ru=function(e,t){if("string"!=typeof e)return{type:"message",data:ou(e,t)};var n=e.charAt(0);return"b"===n?{type:"message",data:au(e.substring(1),t)}:Hc[n]?e.length>1?{type:Hc[n],data:e.substring(1)}:{type:Hc[n]}:Vc},au=function(e,t){if(nu){var n=function(e){var t,n,r,a,o,i=.75*e.length,s=e.length,l=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);var c=new ArrayBuffer(i),u=new Uint8Array(c);for(t=0;t<s;t+=4)n=Qc[e.charCodeAt(t)],r=Qc[e.charCodeAt(t+1)],a=Qc[e.charCodeAt(t+2)],o=Qc[e.charCodeAt(t+3)],u[l++]=n<<2|r>>4,u[l++]=(15&r)<<4|a>>2,u[l++]=(3&a)<<6|63&o;return c}(e);return ou(n,t)}return{base64:!0,data:e}},ou=function(e,t){return"blob"===t?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer},iu=String.fromCharCode(30);function su(e){return e.reduce((function(e,t){return e+t.length}),0)}function lu(e,t){if(e[0].length===t)return e.shift();for(var n=new Uint8Array(t),r=0,a=0;a<t;a++)n[a]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function cu(e){if(e)return function(e){for(var t in cu.prototype)e[t]=cu.prototype[t];return e}(e)}cu.prototype.on=cu.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},cu.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},cu.prototype.off=cu.prototype.removeListener=cu.prototype.removeAllListeners=cu.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var a=0;a<r.length;a++)if((n=r[a])===t||n.fn===t){r.splice(a,1);break}return 0===r.length&&delete this._callbacks["$"+e],this},cu.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){r=0;for(var a=(n=n.slice(0)).length;r<a;++r)n[r].apply(this,t)}return this},cu.prototype.emitReserved=cu.prototype.emit,cu.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},cu.prototype.hasListeners=function(e){return!!this.listeners(e).length};var uu=function(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()}();function du(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((function(t,n){return e.hasOwnProperty(n)&&(t[n]=e[n]),t}),{})}var fu=uu.setTimeout,pu=uu.clearTimeout;function hu(e,t){t.useNativeTimers?(e.setTimeoutFn=fu.bind(uu),e.clearTimeoutFn=pu.bind(uu)):(e.setTimeoutFn=uu.setTimeout.bind(uu),e.clearTimeoutFn=uu.clearTimeout.bind(uu))}var mu,gu=function(e){ee(n,e);var t=le(n);function n(e,r,a){var o;return K(this,n),(o=t.call(this,e)).description=r,o.context=a,o.type="TransportError",o}return X(n)}(oe(Error)),yu=function(e){ee(n,e);var t=le(n);function n(e){var r;return K(this,n),(r=t.call(this)).writable=!1,hu(se(r),e),r.opts=e,r.query=e.query,r.socket=e.socket,r}return X(n,[{key:"onError",value:function(e,t,r){return ce(te(n.prototype),"emitReserved",this).call(this,"error",new gu(e,t,r)),this}},{key:"open",value:function(){return this.readyState="opening",this.doOpen(),this}},{key:"close",value:function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}},{key:"send",value:function(e){"open"===this.readyState&&this.write(e)}},{key:"onOpen",value:function(){this.readyState="open",this.writable=!0,ce(te(n.prototype),"emitReserved",this).call(this,"open")}},{key:"onData",value:function(e){var t=ru(e,this.socket.binaryType);this.onPacket(t)}},{key:"onPacket",value:function(e){ce(te(n.prototype),"emitReserved",this).call(this,"packet",e)}},{key:"onClose",value:function(e){this.readyState="closed",ce(te(n.prototype),"emitReserved",this).call(this,"close",e)}},{key:"pause",value:function(e){}},{key:"createUri",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}},{key:"_hostname",value:function(){var e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}},{key:"_port",value:function(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}},{key:"_query",value:function(e){var t=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}(e);return t.length?"?"+t:""}}]),n}(cu),vu="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),bu=64,_u=0;function wu(e){var t="";do{t=vu[e%bu]+t,e=Math.floor(e/bu)}while(e>0);return t}function xu(){var e=wu(+new Date);return e!==mu?(_u=0,mu=e):e+"."+wu(_u++)}var Su=!1;try{Su="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(io){}var Eu=Su;function ku(e){var t=e.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||Eu))return new XMLHttpRequest}catch(e){}if(!t)try{return new(uu[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}function Cu(){}var Au=function(){return null!=new ku({xdomain:!1}).responseType}(),Ou=function(e){ee(n,e);var t=le(n);function n(e){var r;if(K(this,n),(r=t.call(this,e)).polling=!1,"undefined"!=typeof location){var a="https:"===location.protocol,o=location.port;o||(o=a?"443":"80"),r.xd="undefined"!=typeof location&&e.hostname!==location.hostname||o!==e.port}return r.supportsBinary=Au&&!(e&&e.forceBase64),r.opts.withCredentials&&(r.cookieJar=void 0),r}return X(n,[{key:"name",get:function(){return"polling"}},{key:"doOpen",value:function(){this.poll()}},{key:"pause",value:function(e){var t=this;this.readyState="pausing";var n=function(){t.readyState="paused",e()};if(this.polling||!this.writable){var r=0;this.polling&&(r++,this.once("pollComplete",(function(){--r||n()}))),this.writable||(r++,this.once("drain",(function(){--r||n()})))}else n()}},{key:"poll",value:function(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}},{key:"onData",value:function(e){var t=this;(function(e,t){for(var n=e.split(iu),r=[],a=0;a<n.length;a++){var o=ru(n[a],t);if(r.push(o),"error"===o.type)break}return r})(e,this.socket.binaryType).forEach((function(e){if("opening"===t.readyState&&"open"===e.type&&t.onOpen(),"close"===e.type)return t.onClose({description:"transport closed by the server"}),!1;t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}},{key:"doClose",value:function(){var e=this,t=function(){e.write([{type:"close"}])};"open"===this.readyState?t():this.once("open",t)}},{key:"write",value:function(e){var t=this;this.writable=!1,function(e,n){var r=e.length,a=new Array(r),o=0;e.forEach((function(e,n){Kc(e,!1,(function(e){var i;a[n]=e,++o===r&&(i=a.join(iu),t.doWrite(i,(function(){t.writable=!0,t.emitReserved("drain")})))}))}))}(e)}},{key:"uri",value:function(){var e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=xu()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new Tu(this.uri(),e)}},{key:"doWrite",value:function(e,t){var n=this,r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",(function(e,t){n.onError("xhr post error",e,t)}))}},{key:"doPoll",value:function(){var e=this,t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(function(t,n){e.onError("xhr poll error",t,n)})),this.pollXhr=t}}]),n}(yu),Tu=function(e){ee(n,e);var t=le(n);function n(e,r){var a;return K(this,n),hu(se(a=t.call(this)),r),a.opts=r,a.method=r.method||"GET",a.uri=e,a.data=void 0!==r.data?r.data:null,a.create(),a}return X(n,[{key:"create",value:function(){var e,t=this,r=du(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this.opts.xd;var a=this.xhr=new ku(r);try{a.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders)for(var o in a.setDisableHeaderCheck&&a.setDisableHeaderCheck(!0),this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(o)&&a.setRequestHeader(o,this.opts.extraHeaders[o])}catch(e){}if("POST"===this.method)try{a.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{a.setRequestHeader("Accept","*/*")}catch(e){}null===(e=this.opts.cookieJar)||void 0===e||e.addCookies(a),"withCredentials"in a&&(a.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(a.timeout=this.opts.requestTimeout),a.onreadystatechange=function(){var e;3===a.readyState&&(null===(e=t.opts.cookieJar)||void 0===e||e.parseCookies(a)),4===a.readyState&&(200===a.status||1223===a.status?t.onLoad():t.setTimeoutFn((function(){t.onError("number"==typeof a.status?a.status:0)}),0))},a.send(this.data)}catch(e){return void this.setTimeoutFn((function(){t.onError(e)}),0)}"undefined"!=typeof document&&(this.index=n.requestsCount++,n.requests[this.index]=this)}},{key:"onError",value:function(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}},{key:"cleanup",value:function(e){if(null!=this.xhr){if(this.xhr.onreadystatechange=Cu,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete n.requests[this.index],this.xhr=null}}},{key:"onLoad",value:function(){var e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}},{key:"abort",value:function(){this.cleanup()}}]),n}(cu);function Nu(){for(var e in Tu.requests)Tu.requests.hasOwnProperty(e)&&Tu.requests[e].abort()}Tu.requestsCount=0,Tu.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",Nu):"function"==typeof addEventListener&&addEventListener("onpagehide"in uu?"pagehide":"unload",Nu,!1));var Iu=function(){return"function"==typeof Promise&&"function"==typeof Promise.resolve?function(e){return Promise.resolve().then(e)}:function(e,t){return t(e,0)}}(),Ru=uu.WebSocket||uu.MozWebSocket,Fu="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),Pu=function(e){ee(n,e);var t=le(n);function n(e){var r;return K(this,n),(r=t.call(this,e)).supportsBinary=!e.forceBase64,r}return X(n,[{key:"name",get:function(){return"websocket"}},{key:"doOpen",value:function(){if(this.check()){var e=this.uri(),t=this.opts.protocols,n=Fu?{}:du(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=Fu?new Ru(e,t,n):t?new Ru(e,t):new Ru(e)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}}},{key:"addEventListeners",value:function(){var e=this;this.ws.onopen=function(){e.opts.autoUnref&&e.ws._socket.unref(),e.onOpen()},this.ws.onclose=function(t){return e.onClose({description:"websocket connection closed",context:t})},this.ws.onmessage=function(t){return e.onData(t.data)},this.ws.onerror=function(t){return e.onError("websocket error",t)}}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;Kc(e[r],t.supportsBinary,(function(e){try{t.ws.send(e)}catch(e){}n&&Iu((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}},{key:"uri",value:function(){var e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=xu()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},{key:"check",value:function(){return!!Ru}}]),n}(yu),Mu=function(e){ee(n,e);var t=le(n);function n(){return K(this,n),t.apply(this,arguments)}return X(n,[{key:"name",get:function(){return"webtransport"}},{key:"doOpen",value:function(){var e=this;"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((function(){e.onClose()})).catch((function(t){e.onError("webtransport error",t)})),this.transport.ready.then((function(){e.transport.createBidirectionalStream().then((function(t){var n=function(e,t){tu||(tu=new TextDecoder);var n=[],r=0,a=-1,o=!1;return new TransformStream({transform:function(i,s){for(n.push(i);;){if(0===r){if(su(n)<1)break;var l=lu(n,1);o=128==(128&l[0]),r=(a=127&l[0])<126?3:126===a?1:2}else if(1===r){if(su(n)<2)break;var c=lu(n,2);a=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(2===r){if(su(n)<8)break;var u=lu(n,8),d=new DataView(u.buffer,u.byteOffset,u.length),f=d.getUint32(0);if(f>Math.pow(2,21)-1){s.enqueue(Vc);break}a=f*Math.pow(2,32)+d.getUint32(4),r=3}else{if(su(n)<a)break;var p=lu(n,a);s.enqueue(ru(o?p:tu.decode(p),t)),r=0}if(0===a||a>e){s.enqueue(Vc);break}}}})}(Number.MAX_SAFE_INTEGER,e.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),a=new TransformStream({transform:function(e,t){!function(e,t){Wc&&e.data instanceof Blob?e.data.arrayBuffer().then(Xc).then(t):Jc&&(e.data instanceof ArrayBuffer||Yc(e.data))?t(Xc(e.data)):Kc(e,!1,(function(e){$c||($c=new TextEncoder),t($c.encode(e))}))}(e,(function(n){var r,a=n.length;if(a<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,a);else if(a<65536){r=new Uint8Array(3);var o=new DataView(r.buffer);o.setUint8(0,126),o.setUint16(1,a)}else{r=new Uint8Array(9);var i=new DataView(r.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(a))}e.data&&"string"!=typeof e.data&&(r[0]|=128),t.enqueue(r),t.enqueue(n)}))}});a.readable.pipeTo(t.writable),e.writer=a.writable.getWriter(),function t(){r.read().then((function(n){n.done||(e.onPacket(n.value),t())})).catch((function(e){}))}();var o={type:"open"};e.query.sid&&(o.data='{"sid":"'.concat(e.query.sid,'"}')),e.writer.write(o).then((function(){return e.onOpen()}))}))})))}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;t.writer.write(e[r]).then((function(){n&&Iu((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){var e;null===(e=this.transport)||void 0===e||e.close()}}]),n}(yu),Du={websocket:Pu,webtransport:Mu,polling:Ou},ju=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Lu=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function qu(e){var t,n,r=e,a=e.indexOf("["),o=e.indexOf("]");-1!=a&&-1!=o&&(e=e.substring(0,a)+e.substring(a,o).replace(/:/g,";")+e.substring(o,e.length));for(var i,s=ju.exec(e||""),l={},c=14;c--;)l[Lu[c]]=s[c]||"";return-1!=a&&-1!=o&&(l.source=r,l.host=l.host.substring(1,l.host.length-1).replace(/;/g,":"),l.authority=l.authority.replace("[","").replace("]","").replace(/;/g,":"),l.ipv6uri=!0),l.pathNames=(n=(t=l.path).replace(/\/{2,9}/g,"/").split("/"),"/"!=t.slice(0,1)&&0!==t.length||n.splice(0,1),"/"==t.slice(-1)&&n.splice(n.length-1,1),n),l.queryKey=(i={},l.query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,n){t&&(i[t]=n)})),i),l}var Bu=function(e){ee(n,e);var t=le(n);function n(e){var r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return K(this,n),(r=t.call(this)).binaryType="arraybuffer",r.writeBuffer=[],e&&"object"===W(e)&&(a=e,e=null),e?(e=qu(e),a.hostname=e.host,a.secure="https"===e.protocol||"wss"===e.protocol,a.port=e.port,e.query&&(a.query=e.query)):a.host&&(a.hostname=qu(a.host).host),hu(se(r),a),r.secure=null!=a.secure?a.secure:"undefined"!=typeof location&&"https:"===location.protocol,a.hostname&&!a.port&&(a.port=r.secure?"443":"80"),r.hostname=a.hostname||("undefined"!=typeof location?location.hostname:"localhost"),r.port=a.port||("undefined"!=typeof location&&location.port?location.port:r.secure?"443":"80"),r.transports=a.transports||["polling","websocket","webtransport"],r.writeBuffer=[],r.prevBufferLen=0,r.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},a),r.opts.path=r.opts.path.replace(/\/$/,"")+(r.opts.addTrailingSlash?"/":""),"string"==typeof r.opts.query&&(r.opts.query=function(e){for(var t={},n=e.split("&"),r=0,a=n.length;r<a;r++){var o=n[r].split("=");t[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return t}(r.opts.query)),r.id=null,r.upgrades=null,r.pingInterval=null,r.pingTimeout=null,r.pingTimeoutTimer=null,"function"==typeof addEventListener&&(r.opts.closeOnBeforeunload&&(r.beforeunloadEventListener=function(){r.transport&&(r.transport.removeAllListeners(),r.transport.close())},addEventListener("beforeunload",r.beforeunloadEventListener,!1)),"localhost"!==r.hostname&&(r.offlineEventListener=function(){r.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",r.offlineEventListener,!1))),r.open(),r}return X(n,[{key:"createTransport",value:function(e){var t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);var n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new Du[e](n)}},{key:"open",value:function(){var e,t=this;if(this.opts.rememberUpgrade&&n.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((function(){t.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}},{key:"setTransport",value:function(e){var t=this;this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(function(e){return t.onClose("transport close",e)}))}},{key:"probe",value:function(e){var t=this,r=this.createTransport(e),a=!1;n.priorWebsocketSuccess=!1;var o=function(){a||(r.send([{type:"ping",data:"probe"}]),r.once("packet",(function(e){if(!a)if("pong"===e.type&&"probe"===e.data){if(t.upgrading=!0,t.emitReserved("upgrading",r),!r)return;n.priorWebsocketSuccess="websocket"===r.name,t.transport.pause((function(){a||"closed"!==t.readyState&&(d(),t.setTransport(r),r.send([{type:"upgrade"}]),t.emitReserved("upgrade",r),r=null,t.upgrading=!1,t.flush())}))}else{var o=new Error("probe error");o.transport=r.name,t.emitReserved("upgradeError",o)}})))};function i(){a||(a=!0,d(),r.close(),r=null)}var s=function(e){var n=new Error("probe error: "+e);n.transport=r.name,i(),t.emitReserved("upgradeError",n)};function l(){s("transport closed")}function c(){s("socket closed")}function u(e){r&&e.name!==r.name&&i()}var d=function(){r.removeListener("open",o),r.removeListener("error",s),r.removeListener("close",l),t.off("close",c),t.off("upgrading",u)};r.once("open",o),r.once("error",s),r.once("close",l),this.once("close",c),this.once("upgrading",u),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn((function(){a||r.open()}),200):r.open()}},{key:"onOpen",value:function(){if(this.readyState="open",n.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade)for(var e=0,t=this.upgrades.length;e<t;e++)this.probe(this.upgrades[e])}},{key:"onPacket",value:function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),this.resetPingTimeout(),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data)}}},{key:"onHandshake",value:function(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.maxPayload=e.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}},{key:"resetPingTimeout",value:function(){var e=this;this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((function(){e.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}},{key:"onDrain",value:function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}},{key:"flush",value:function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}},{key:"getWritablePackets",value:function(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var e,t=1,n=0;n<this.writeBuffer.length;n++){var r=this.writeBuffer[n].data;if(r&&(t+="string"==typeof(e=r)?function(e){for(var t=0,n=0,r=0,a=e.length;r<a;r++)(t=e.charCodeAt(r))<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}(e):Math.ceil(1.33*(e.byteLength||e.size))),n>0&&t>this.maxPayload)return this.writeBuffer.slice(0,n);t+=2}return this.writeBuffer}},{key:"write",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"send",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"sendPacket",value:function(e,t,n,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof n&&(r=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){(n=n||{}).compress=!1!==n.compress;var a={type:e,data:t,options:n};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),r&&this.once("flush",r),this.flush()}}},{key:"close",value:function(){var e=this,t=function(){e.onClose("forced close"),e.transport.close()},n=function n(){e.off("upgrade",n),e.off("upgradeError",n),t()},r=function(){e.once("upgrade",n),e.once("upgradeError",n)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){e.upgrading?r():t()})):this.upgrading?r():t()),this}},{key:"onError",value:function(e){n.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}},{key:"onClose",value:function(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}},{key:"filterUpgrades",value:function(e){for(var t=[],n=0,r=e.length;n<r;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}}]),n}(cu);Bu.protocol=4;var Uu="function"==typeof ArrayBuffer,zu=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer},Gu=Object.prototype.toString,Hu="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Gu.call(Blob),$u="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===Gu.call(File);function Vu(e){return Uu&&(e instanceof ArrayBuffer||zu(e))||Hu&&e instanceof Blob||$u&&e instanceof File}function Wu(e,t){if(!e||"object"!==W(e))return!1;if(Array.isArray(e)){for(var n=0,r=e.length;n<r;n++)if(Wu(e[n]))return!0;return!1}if(Vu(e))return!0;if(e.toJSON&&"function"==typeof e.toJSON&&1===arguments.length)return Wu(e.toJSON(),!0);for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)&&Wu(e[a]))return!0;return!1}function Ju(e){var t=[],n=e;return n.data=Yu(e.data,t),n.attachments=t.length,{packet:n,buffers:t}}function Yu(e,t){if(!e)return e;if(Vu(e)){var n={_placeholder:!0,num:t.length};return t.push(e),n}if(Array.isArray(e)){for(var r=new Array(e.length),a=0;a<e.length;a++)r[a]=Yu(e[a],t);return r}if("object"===W(e)&&!(e instanceof Date)){var o={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(o[i]=Yu(e[i],t));return o}return e}function Ku(e,t){return e.data=Zu(e.data,t),delete e.attachments,e}function Zu(e,t){if(!e)return e;if(e&&!0===e._placeholder){if("number"==typeof e.num&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}if(Array.isArray(e))for(var n=0;n<e.length;n++)e[n]=Zu(e[n],t);else if("object"===W(e))for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(e[r]=Zu(e[r],t));return e}var Xu,Qu=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];!function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(Xu||(Xu={}));var ed=function(){function e(t){K(this,e),this.replacer=t}return X(e,[{key:"encode",value:function(e){return e.type!==Xu.EVENT&&e.type!==Xu.ACK||!Wu(e)?[this.encodeAsString(e)]:this.encodeAsBinary({type:e.type===Xu.EVENT?Xu.BINARY_EVENT:Xu.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}},{key:"encodeAsString",value:function(e){var t=""+e.type;return e.type!==Xu.BINARY_EVENT&&e.type!==Xu.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),t}},{key:"encodeAsBinary",value:function(e){var t=Ju(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}}]),e}();function td(e){return"[object Object]"===Object.prototype.toString.call(e)}var nd=function(e){ee(n,e);var t=le(n);function n(e){var r;return K(this,n),(r=t.call(this)).reviver=e,r}return X(n,[{key:"add",value:function(e){var t;if("string"==typeof e){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");var r=(t=this.decodeString(e)).type===Xu.BINARY_EVENT;r||t.type===Xu.BINARY_ACK?(t.type=r?Xu.EVENT:Xu.ACK,this.reconstructor=new rd(t),0===t.attachments&&ce(te(n.prototype),"emitReserved",this).call(this,"decoded",t)):ce(te(n.prototype),"emitReserved",this).call(this,"decoded",t)}else{if(!Vu(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(t=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,ce(te(n.prototype),"emitReserved",this).call(this,"decoded",t))}}},{key:"decodeString",value:function(e){var t=0,r={type:Number(e.charAt(0))};if(void 0===Xu[r.type])throw new Error("unknown packet type "+r.type);if(r.type===Xu.BINARY_EVENT||r.type===Xu.BINARY_ACK){for(var a=t+1;"-"!==e.charAt(++t)&&t!=e.length;);var o=e.substring(a,t);if(o!=Number(o)||"-"!==e.charAt(t))throw new Error("Illegal attachments");r.attachments=Number(o)}if("/"===e.charAt(t+1)){for(var i=t+1;++t&&","!==e.charAt(t)&&t!==e.length;);r.nsp=e.substring(i,t)}else r.nsp="/";var s=e.charAt(t+1);if(""!==s&&Number(s)==s){for(var l=t+1;++t;){var c=e.charAt(t);if(null==c||Number(c)!=c){--t;break}if(t===e.length)break}r.id=Number(e.substring(l,t+1))}if(e.charAt(++t)){var u=this.tryParse(e.substr(t));if(!n.isPayloadValid(r.type,u))throw new Error("invalid payload");r.data=u}return r}},{key:"tryParse",value:function(e){try{return JSON.parse(e,this.reviver)}catch(e){return!1}}},{key:"destroy",value:function(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}],[{key:"isPayloadValid",value:function(e,t){switch(e){case Xu.CONNECT:return td(t);case Xu.DISCONNECT:return void 0===t;case Xu.CONNECT_ERROR:return"string"==typeof t||td(t);case Xu.EVENT:case Xu.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===Qu.indexOf(t[0]));case Xu.ACK:case Xu.BINARY_ACK:return Array.isArray(t)}}}]),n}(cu),rd=function(){function e(t){K(this,e),this.packet=t,this.buffers=[],this.reconPack=t}return X(e,[{key:"takeBinaryData",value:function(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){var t=Ku(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}},{key:"finishedReconstruction",value:function(){this.reconPack=null,this.buffers=[]}}]),e}(),ad={__proto__:null,protocol:5,get PacketType(){return Xu},Encoder:ed,Decoder:nd};function od(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var id=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),sd=function(e){ee(n,e);var t=le(n);function n(e,r,a){var o;return K(this,n),(o=t.call(this)).connected=!1,o.recovered=!1,o.receiveBuffer=[],o.sendBuffer=[],o._queue=[],o._queueSeq=0,o.ids=0,o.acks={},o.flags={},o.io=e,o.nsp=r,a&&a.auth&&(o.auth=a.auth),o._opts=Object.assign({},a),o.io._autoConnect&&o.open(),o}return X(n,[{key:"disconnected",get:function(){return!this.connected}},{key:"subEvents",value:function(){if(!this.subs){var e=this.io;this.subs=[od(e,"open",this.onopen.bind(this)),od(e,"packet",this.onpacket.bind(this)),od(e,"error",this.onerror.bind(this)),od(e,"close",this.onclose.bind(this))]}}},{key:"active",get:function(){return!!this.subs}},{key:"connect",value:function(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}},{key:"open",value:function(){return this.connect()}},{key:"send",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.unshift("message"),this.emit.apply(this,t),this}},{key:"emit",value:function(e){if(id.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;var a={type:Xu.EVENT,data:n,options:{}};if(a.options.compress=!1!==this.flags.compress,"function"==typeof n[n.length-1]){var o=this.ids++,i=n.pop();this._registerAckCallback(o,i),a.id=o}return this.flags.volatile&&(!(this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable)||!this.connected)||(this.connected?(this.notifyOutgoingListeners(a),this.packet(a)):this.sendBuffer.push(a)),this.flags={},this}},{key:"_registerAckCallback",value:function(e,t){var n,r=this,a=null!==(n=this.flags.timeout)&&void 0!==n?n:this._opts.ackTimeout;if(void 0!==a){var o=this.io.setTimeoutFn((function(){delete r.acks[e];for(var n=0;n<r.sendBuffer.length;n++)r.sendBuffer[n].id===e&&r.sendBuffer.splice(n,1);t.call(r,new Error("operation has timed out"))}),a);this.acks[e]=function(){r.io.clearTimeoutFn(o);for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];t.apply(r,[null].concat(n))}}else this.acks[e]=t}},{key:"emitWithAck",value:function(e){for(var t=this,n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var o=void 0!==this.flags.timeout||void 0!==this._opts.ackTimeout;return new Promise((function(n,a){r.push((function(e,t){return o?e?a(e):n(t):n(e)})),t.emit.apply(t,[e].concat(r))}))}},{key:"_addToQueue",value:function(e){var t,n=this;"function"==typeof e[e.length-1]&&(t=e.pop());var r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((function(e){if(r===n._queue[0]){if(null!==e)r.tryCount>n._opts.retries&&(n._queue.shift(),t&&t(e));else if(n._queue.shift(),t){for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i<a;i++)o[i-1]=arguments[i];t.apply(void 0,[null].concat(o))}return r.pending=!1,n._drainQueue()}})),this._queue.push(r),this._drainQueue()}},{key:"_drainQueue",value:function(){if(this.connected&&0!==this._queue.length){var e=this._queue[0];e.pending&&!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}}},{key:"packet",value:function(e){e.nsp=this.nsp,this.io._packet(e)}},{key:"onopen",value:function(){var e=this;"function"==typeof this.auth?this.auth((function(t){e._sendConnectPacket(t)})):this._sendConnectPacket(this.auth)}},{key:"_sendConnectPacket",value:function(e){this.packet({type:Xu.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}},{key:"onerror",value:function(e){this.connected||this.emitReserved("connect_error",e)}},{key:"onclose",value:function(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t)}},{key:"onpacket",value:function(e){if(e.nsp===this.nsp)switch(e.type){case Xu.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Xu.EVENT:case Xu.BINARY_EVENT:this.onevent(e);break;case Xu.ACK:case Xu.BINARY_ACK:this.onack(e);break;case Xu.DISCONNECT:this.ondisconnect();break;case Xu.CONNECT_ERROR:this.destroy();var t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}},{key:"onevent",value:function(e){var t=e.data||[];null!=e.id&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}},{key:"emitEvent",value:function(e){if(this._anyListeners&&this._anyListeners.length){var t,r=ve(this._anyListeners.slice());try{for(r.s();!(t=r.n()).done;)t.value.apply(this,e)}catch(e){r.e(e)}finally{r.f()}}ce(te(n.prototype),"emit",this).apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}},{key:"ack",value:function(e){var t=this,n=!1;return function(){if(!n){n=!0;for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];t.packet({type:Xu.ACK,id:e,data:a})}}}},{key:"onack",value:function(e){var t=this.acks[e.id];"function"==typeof t&&(t.apply(this,e.data),delete this.acks[e.id])}},{key:"onconnect",value:function(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}},{key:"emitBuffered",value:function(){var e=this;this.receiveBuffer.forEach((function(t){return e.emitEvent(t)})),this.receiveBuffer=[],this.sendBuffer.forEach((function(t){e.notifyOutgoingListeners(t),e.packet(t)})),this.sendBuffer=[]}},{key:"ondisconnect",value:function(){this.destroy(),this.onclose("io server disconnect")}},{key:"destroy",value:function(){this.subs&&(this.subs.forEach((function(e){return e()})),this.subs=void 0),this.io._destroy(this)}},{key:"disconnect",value:function(){return this.connected&&this.packet({type:Xu.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}},{key:"close",value:function(){return this.disconnect()}},{key:"compress",value:function(e){return this.flags.compress=e,this}},{key:"volatile",get:function(){return this.flags.volatile=!0,this}},{key:"timeout",value:function(e){return this.flags.timeout=e,this}},{key:"onAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}},{key:"prependAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}},{key:"offAny",value:function(e){if(!this._anyListeners)return this;if(e){for(var t=this._anyListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}},{key:"listenersAny",value:function(){return this._anyListeners||[]}},{key:"onAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}},{key:"prependAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}},{key:"offAnyOutgoing",value:function(e){if(!this._anyOutgoingListeners)return this;if(e){for(var t=this._anyOutgoingListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}},{key:"listenersAnyOutgoing",value:function(){return this._anyOutgoingListeners||[]}},{key:"notifyOutgoingListeners",value:function(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){var t,n=ve(this._anyOutgoingListeners.slice());try{for(n.s();!(t=n.n()).done;)t.value.apply(this,e.data)}catch(e){n.e(e)}finally{n.f()}}}}]),n}(cu);function ld(e){this.ms=(e=e||{}).min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}ld.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},ld.prototype.reset=function(){this.attempts=0},ld.prototype.setMin=function(e){this.ms=e},ld.prototype.setMax=function(e){this.max=e},ld.prototype.setJitter=function(e){this.jitter=e};var cd=function(e){ee(n,e);var t=le(n);function n(e,r){var a,o;K(this,n),(a=t.call(this)).nsps={},a.subs=[],e&&"object"===W(e)&&(r=e,e=void 0),(r=r||{}).path=r.path||"/socket.io",a.opts=r,hu(se(a),r),a.reconnection(!1!==r.reconnection),a.reconnectionAttempts(r.reconnectionAttempts||Infinity),a.reconnectionDelay(r.reconnectionDelay||1e3),a.reconnectionDelayMax(r.reconnectionDelayMax||5e3),a.randomizationFactor(null!==(o=r.randomizationFactor)&&void 0!==o?o:.5),a.backoff=new ld({min:a.reconnectionDelay(),max:a.reconnectionDelayMax(),jitter:a.randomizationFactor()}),a.timeout(null==r.timeout?2e4:r.timeout),a._readyState="closed",a.uri=e;var i=r.parser||ad;return a.encoder=new i.Encoder,a.decoder=new i.Decoder,a._autoConnect=!1!==r.autoConnect,a._autoConnect&&a.open(),a}return X(n,[{key:"reconnection",value:function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}},{key:"reconnectionAttempts",value:function(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}},{key:"reconnectionDelay",value:function(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}},{key:"randomizationFactor",value:function(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}},{key:"reconnectionDelayMax",value:function(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}},{key:"timeout",value:function(e){return arguments.length?(this._timeout=e,this):this._timeout}},{key:"maybeReconnectOnOpen",value:function(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}},{key:"open",value:function(e){var t=this;if(~this._readyState.indexOf("open"))return this;this.engine=new Bu(this.uri,this.opts);var n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;var a=od(n,"open",(function(){r.onopen(),e&&e()})),o=function(n){t.cleanup(),t._readyState="closed",t.emitReserved("error",n),e?e(n):t.maybeReconnectOnOpen()},i=od(n,"error",o);if(!1!==this._timeout){var s=this.setTimeoutFn((function(){a(),o(new Error("timeout")),n.close()}),this._timeout);this.opts.autoUnref&&s.unref(),this.subs.push((function(){t.clearTimeoutFn(s)}))}return this.subs.push(a),this.subs.push(i),this}},{key:"connect",value:function(e){return this.open(e)}},{key:"onopen",value:function(){this.cleanup(),this._readyState="open",this.emitReserved("open");var e=this.engine;this.subs.push(od(e,"ping",this.onping.bind(this)),od(e,"data",this.ondata.bind(this)),od(e,"error",this.onerror.bind(this)),od(e,"close",this.onclose.bind(this)),od(this.decoder,"decoded",this.ondecoded.bind(this)))}},{key:"onping",value:function(){this.emitReserved("ping")}},{key:"ondata",value:function(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}},{key:"ondecoded",value:function(e){var t=this;Iu((function(){t.emitReserved("packet",e)}),this.setTimeoutFn)}},{key:"onerror",value:function(e){this.emitReserved("error",e)}},{key:"socket",value:function(e,t){var n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new sd(this,e,t),this.nsps[e]=n),n}},{key:"_destroy",value:function(e){for(var t=0,n=Object.keys(this.nsps);t<n.length;t++)if(this.nsps[n[t]].active)return;this._close()}},{key:"_packet",value:function(e){for(var t=this.encoder.encode(e),n=0;n<t.length;n++)this.engine.write(t[n],e.options)}},{key:"cleanup",value:function(){this.subs.forEach((function(e){return e()})),this.subs.length=0,this.decoder.destroy()}},{key:"_close",value:function(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}},{key:"disconnect",value:function(){return this._close()}},{key:"onclose",value:function(e,t){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}},{key:"reconnect",value:function(){var e=this;if(this._reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{var n=this.backoff.duration();this._reconnecting=!0;var r=this.setTimeoutFn((function(){t.skipReconnect||(e.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open((function(n){n?(t._reconnecting=!1,t.reconnect(),e.emitReserved("reconnect_error",n)):t.onreconnect()})))}),n);this.opts.autoUnref&&r.unref(),this.subs.push((function(){e.clearTimeoutFn(r)}))}}},{key:"onreconnect",value:function(){var e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}]),n}(cu),ud={};function dd(e,t){"object"===W(e)&&(t=e,e=void 0);var n,r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,r=e;n=n||"undefined"!=typeof location&&location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==n?n.protocol+"//"+e:"https://"+e),r=qu(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var a=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port+t,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}(e,(t=t||{}).path||"/socket.io"),a=r.source,o=r.id;return t.forceNew||t["force new connection"]||!1===t.multiplex||ud[o]&&r.path in ud[o].nsps?n=new cd(a,t):(ud[o]||(ud[o]=new cd(a,t)),n=ud[o]),r.query&&!t.query&&(t.query=r.queryKey),n.socket(r.path,t)}Object.assign(dd,{Manager:cd,Socket:sd,io:dd,connect:dd});var fd=s.createSvgIcon([i.jsx("path",{d:"M17 11c.34 0 .67.04 1 .09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55-.69-.98-1.1-2.17-1.1-3.45 0-3.31 2.69-6 6-6"},"0"),i.jsx("path",{d:"M17 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 1.38c.62 0 1.12.51 1.12 1.12s-.51 1.12-1.12 1.12-1.12-.51-1.12-1.12.5-1.12 1.12-1.12m0 5.37c-.93 0-1.74-.46-2.24-1.17.05-.72 1.51-1.08 2.24-1.08s2.19.36 2.24 1.08c-.5.71-1.31 1.17-2.24 1.17"},"1")],"AdminPanelSettings"),pd=s.createSvgIcon(i.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete"),hd=s.createSvgIcon(i.jsx("path",{d:"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2M11 16l4-4-4-4v3H1v2h10z"}),"Input"),md=s.createSvgIcon(i.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"Person"),gd=s.createSvgIcon(i.jsx("path",{d:"M16.54 11 13 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zM11 7H2v2h9zm10 6.41L19.59 12 17 14.59 14.41 12 13 13.41 15.59 16 13 18.59 14.41 20 17 17.41 19.59 20 21 18.59 18.41 16zM11 15H2v2h9z"}),"Rule"),yd=s.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),vd=s.createSvgIcon(i.jsx("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link"),bd=s.createSvgIcon(i.jsx("path",{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"}),"RadioButtonChecked"),_d=s.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"}),"RadioButtonUnchecked"),wd={},xd={},Sd={},Ed={};function kd(e){return decodeURIComponent(e)}function Cd(e,t){return String(t).replaceAll(e,(function(e){return encodeURIComponent(e).toUpperCase()}))}function Ad(e){return Cd(/[\n;\r\t=%&,\u0000-\u001f\u007f]/g,e)}function Od(e){return Cd(/[\n\r\t%\u0000-\u001f\u007f]/g,e)}function Td(e){if(null==e||!e.length||"."===e)return{};var t={};return e.replace(/\r\n|[\r\n]$/,"").split(";").forEach((function(e){var n,r,a=e.split("=",2);if(null!==(n=a[1])&&void 0!==n&&n.length){a[0]=a[0].trim();var o=t[a[0].trim()];o||(t[a[0]]=o=[]),(r=o).push.apply(r,fe(a[1].split(",").map((function(e){return e.trim()})).map(kd)))}})),t}function Nd(e){var t=[];return Object.entries(e).forEach((function(e){var n=ue(e,2),r=n[0],a=n[1].map(Ad).join(",");t.push("".concat(Ad(r),"=").concat(a))})),t.length?t.join(";"):"."}function Id(e,t){var n=null==e.attributes?".":Nd(e.attributes),r=[null===e.seq_id?".":Od(e.seq_id),null===e.source?".":Od(e.source),null===e.type?".":Od(e.type),null===e.start?".":Od(e.start),null===e.end?".":Od(e.end),null===e.score?".":Od(e.score),null===e.strand?".":Od(e.strand),null===e.phase?".":Od(e.phase),n],a="".concat(r.join("\t"),"\n");return t[a]?"":(t[a]=!0,a)}function Rd(e,t){if(Array.isArray(e))return e.map((function(e){return Rd(e,t)})).join("");var n,r=[Id(e,t)];return void 0!==(n=e).child_features&&void 0!==n.derived_features&&r.push.apply(r,fe(e.child_features.map((function(e){return Rd(e,t)}))).concat(fe(e.derived_features.map((function(e){return Rd(e,t)}))))),r.join("")}function Fd(e){return Rd(e,{})}function Pd(e){var t="##".concat(e.directive);return e.value&&(t+=" ".concat(e.value)),t+"\n"}function Md(e){return"# ".concat(e.comment,"\n")}function Dd(e){for(var t=">".concat(e.id).concat(e.description?" ".concat(e.description):"","\n"),n=Math.ceil(e.sequence.length/80),r=new Array(n),a=0;a<n;a+=1){var o=80*a;r[a]=e.sequence.slice(o,o+80)}return"".concat(t).concat(r.join("\n"),"\n")}function jd(e){return"attributes"in e?Fd(e):"directive"in e?Pd(e):"sequence"in e?Dd(e):"comment"in e?Md(e):"# (invalid item found during format)\n"}Object.defineProperty(Ed,"__esModule",{value:!0}),Ed.unescape=kd,Ed.escape=Ad,Ed.escapeColumn=Od,Ed.parseAttributes=Td,Ed.parseFeature=function(e){var t=e.trim().split("\t").map((function(e){return"."===e||""===e?null:e}));return{seq_id:t[0]&&kd(t[0]),source:t[1]&&kd(t[1]),type:t[2]&&kd(t[2]),start:null===t[3]?null:parseInt(t[3],10),end:null===t[4]?null:parseInt(t[4],10),score:null===t[5]?null:parseFloat(t[5]),strand:t[6],phase:t[7],attributes:null===t[8]?null:Td(t[8])}},Ed.parseDirective=function(e){var t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;var n=ue(t,2)[1],r=ue(t,3)[2],a={directive:n};if(r.length&&(r=r.replace(/\r\n|[\r\n]$/,""),a.value=r),"sequence-region"===n){var o,i,s=r.split(/\s+/,3);return $($({},a),{},{seq_id:s[0],start:null===(o=s[1])||void 0===o?void 0:o.replaceAll(/\D/g,""),end:null===(i=s[2])||void 0===i?void 0:i.replaceAll(/\D/g,"")})}if("genome-build"===n){var l=ue(r.split(/\s+/,2),2),c=l[0],u=l[1];return $($({},a),{},{source:c,buildName:u})}return a},Ed.formatAttributes=Nd,Ed.formatFeature=Fd,Ed.formatDirective=Pd,Ed.formatComment=Md,Ed.formatSequence=Dd,Ed.formatItem=function(e){return Array.isArray(e)?e.map(jd):jd(e)},Object.defineProperty(Sd,"__esModule",{value:!0}),Sd.GFF3Parser=Sd.FASTAParser=void 0;var Ld=Ed,qd=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};K(this,e),Q(this,"seqCallback",void 0),Q(this,"currentSequence",void 0),this.seqCallback=t,this.currentSequence=void 0}return X(e,[{key:"addLine",value:function(e){var t=/^>\s*(\S+)\s*(.*)/.exec(e);t?(this.flush(),this.currentSequence={id:t[1],sequence:""},t[2]&&(this.currentSequence.description=t[2].trim())):this.currentSequence&&/\S/.test(e)&&(this.currentSequence.sequence+=e.replaceAll(/\s/g,""))}},{key:"flush",value:function(){this.currentSequence&&this.seqCallback(this.currentSequence)}},{key:"finish",value:function(){this.flush()}}]),e}();Sd.FASTAParser=qd;var Bd=function(){function e(t){K(this,e),Q(this,"endCallback",void 0),Q(this,"disableDerivesFromReferences",void 0),Q(this,"bufferSize",void 0),Q(this,"fastaParser",void 0),Q(this,"eof",!1),Q(this,"lineNumber",0),Q(this,"underConstructionTopLevel",[]),Q(this,"underConstructionById",{}),Q(this,"completedReferences",{}),Q(this,"underConstructionOrphans",new Map),this.endCallback=t.endCallback||function(){},this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=void 0===t.bufferSize?Infinity:t.bufferSize}return X(e,[{key:"addLine",value:function(e,t){if(this.fastaParser)this.fastaParser.addLine(e);else if(!this.eof)if(this.lineNumber+=1,/^\s*[^#\s>]/.test(e))this.bufferLine(e,t);else{var n=/^\s*(#+)(.*)/.exec(e);if(n){var r=ue(n,2)[1],a=ue(n,3)[2];if(3===r.length)this.emitAllUnderConstructionFeatures(t);else if(2===r.length){var o=(0,Ld.parseDirective)(e);o&&("FASTA"===o.directive?(this.emitAllUnderConstructionFeatures(t),this.eof=!0,this.fastaParser=new qd(t.sequenceCallback)):this.emitItem(o,t))}else a=a.replace(/\s*/,""),this.emitItem({comment:a},t)}else if(/^\s*$/.test(e));else{if(!/^\s*>/.test(e)){var i=e.replaceAll(/\r\n|[\r\n]$/g,"");throw new Error("GFF3 parse error. Cannot parse '".concat(i,"'."))}this.emitAllUnderConstructionFeatures(t),this.eof=!0,this.fastaParser=new qd(t.sequenceCallback),this.fastaParser.addLine(e)}}}},{key:"finish",value:function(e){this.emitAllUnderConstructionFeatures(e),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}},{key:"emitItem",value:function(e,t){Array.isArray(e)&&t.featureCallback?t.featureCallback(e):"directive"in e&&t.directiveCallback?t.directiveCallback(e):"comment"in e&&t.commentCallback&&t.commentCallback(e)}},{key:"enforceBufferSizeLimit",value:function(){for(var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1?arguments[1]:void 0,r=function t(n){var r;n&&Array.isArray(n)&&null!==(r=n[0].attributes)&&void 0!==r&&null!==(r=r.ID)&&void 0!==r&&r[0]&&(n[0].attributes.ID.forEach((function(t){delete e.underConstructionById[t],delete e.completedReferences[t]})),n.forEach((function(e){e.child_features&&e.child_features.forEach((function(e){return t(e)})),e.derived_features&&e.derived_features.forEach((function(e){return t(e)}))})))};this.underConstructionTopLevel.length+t>this.bufferSize;){var a=this.underConstructionTopLevel.shift();a&&(this.emitItem(a,n),r(a))}}},{key:"emitAllUnderConstructionFeatures",value:function(e){var t=this;if(this.underConstructionTopLevel.forEach((function(n){return t.emitItem.bind(t)(n,e)})),this.underConstructionTopLevel=[],this.underConstructionById={},this.completedReferences={},this.underConstructionOrphans.size)throw new Error("some features reference other features that do not exist in the file (or in the same '###' scope). ".concat(Array.from(this.underConstructionOrphans.keys()).join(",")))}},{key:"bufferLine",value:function(e,t){var n,r,a,o=this,i=$($({},(0,Ld.parseFeature)(e)),{},{child_features:[],derived_features:[]}),s=(null===(n=i.attributes)||void 0===n?void 0:n.ID)||[],l=(null===(r=i.attributes)||void 0===r?void 0:r.Parent)||[],c=this.disableDerivesFromReferences?[]:(null===(a=i.attributes)||void 0===a?void 0:a.Derives_from)||[];if(s.length||l.length||c.length){var u=void 0;s.forEach((function(e){var n=o.underConstructionById[e];n?(n[n.length-1].type!==i.type&&o.parseError('multi-line feature "'.concat(e,'" has inconsistent types: "').concat(i.type,'", "').concat(n[n.length-1].type,'"'),t),n.push(i),u=n):(u=[i],o.enforceBufferSizeLimit(1,t),l.length||c.length||o.underConstructionTopLevel.push(u),o.underConstructionById[e]=u,o.resolveReferencesTo(u,e))})),this.resolveReferencesFrom(u||[i],{Parent:l,Derives_from:c},s)}else this.emitItem([i],t)}},{key:"resolveReferencesTo",value:function(e,t){var n=this.underConstructionOrphans.get(t);n&&(e.forEach((function(e){var t;(t=e.child_features).push.apply(t,fe(n.Parent))})),e.forEach((function(e){var t;(t=e.derived_features).push.apply(t,fe(n.Derives_from))})),this.underConstructionOrphans.delete(t))}},{key:"parseError",value:function(e,t){var n;this.eof=!0,null===(n=t.errorCallback)||void 0===n||n.call(t,"".concat(this.lineNumber,": ").concat(e))}},{key:"postSet",value:function(e,t,n){var r=e[t];r||(e[t]=r={});var a=r[n]||!1;return r[n]=!0,a}},{key:"resolveReferencesFrom",value:function(e,t,n){var r=this;t.Parent.forEach((function(t){var a=r.underConstructionById[t];if(a)n.filter((function(e){return r.postSet(r.completedReferences,e,"Parent,".concat(t))})).length||a.forEach((function(t){t.child_features.push(e)}));else{var o=r.underConstructionOrphans.get(t);o||r.underConstructionOrphans.set(t,o={Parent:[],Derives_from:[]}),o.Parent.push(e)}})),t.Derives_from.forEach((function(t){var a=r.underConstructionById[t];if(a)n.filter((function(e){return r.postSet(r.completedReferences,e,"Derives_from,".concat(t))})).length||a.forEach((function(t){t.derived_features.push(e)}));else{var o=r.underConstructionOrphans.get(t);o||r.underConstructionOrphans.set(t,o={Parent:[],Derives_from:[]}),o.Derives_from.push(e)}}))}}]),e}();Sd.GFF3Parser=Bd,Object.defineProperty(xd,"__esModule",{value:!0}),xd.GFFFormattingTransformer=xd.GFFTransformer=void 0,xd.parseStringSync=function(e,t){if(!e)return[];var n=Gd(null!=t?t:{}),r=[],a=r.push.bind(r),o={errorCallback:function(e){throw new Error(e)}};n.parseFeatures&&(o.featureCallback=a),n.parseDirectives&&(o.directiveCallback=a),n.parseComments&&(o.commentCallback=a),n.parseSequences&&(o.sequenceCallback=a);var i=new Ud.GFF3Parser({disableDerivesFromReferences:n.disableDerivesFromReferences||!1,bufferSize:Infinity});return e.split(/\r\n|[\r\n]/).forEach((function(e){return i.addLine.bind(i)(e,o)})),i.finish(o),r},xd.formatSync=function(e){var t=[],n=[];e.forEach((function(e){"sequence"in e?n.push(e):t.push(e)}));var r=t.map((function(e){return Array.isArray(e)?(0,zd.formatItem)(e).join(""):(0,zd.formatItem)(e)})).join("");return n.length&&(r+="##FASTA\n",r+=n.map(zd.formatSequence).join("")),r};var Ud=Sd,zd=Ed;function Gd(e){return $({parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:Infinity,disableDerivesFromReferences:!1},e)}var Hd=function(){function e(t){K(this,e),Q(this,"decoder",void 0),Q(this,"parser",void 0),Q(this,"lastString",""),Q(this,"parseFeatures",void 0),Q(this,"parseDirectives",void 0),Q(this,"parseComments",void 0),Q(this,"parseSequences",void 0),this.decoder=new TextDecoder;var n=Gd(null!=t?t:{});this.parser=new Ud.GFF3Parser({bufferSize:n.bufferSize,disableDerivesFromReferences:n.disableDerivesFromReferences}),this.parseFeatures=n.parseFeatures,this.parseDirectives=n.parseDirectives,this.parseComments=n.parseComments,this.parseSequences=n.parseSequences}return X(e,[{key:"makeCallbacks",value:function(e){var t={errorCallback:this.emitErrorMessage.bind(this,e)};return this.parseFeatures&&(t.featureCallback=function(t){e.enqueue(t)}),this.parseDirectives&&(t.directiveCallback=function(t){e.enqueue(t)}),this.parseComments&&(t.commentCallback=function(t){e.enqueue(t)}),this.parseSequences&&(t.sequenceCallback=function(t){e.enqueue(t)}),t}},{key:"emitErrorMessage",value:function(e,t){e.error(t)}},{key:"transform",value:function(e,t){var n="".concat(this.lastString).concat(this.decoder.decode(e,{stream:!0})).split(/\r\n|[\r\n]/g);this.lastString=n.pop()||"";var r,a=ve(n);try{for(a.s();!(r=a.n()).done;)this.parser.addLine(r.value,this.makeCallbacks(t))}catch(e){a.e(e)}finally{a.f()}}},{key:"flush",value:function(e){var t=this.makeCallbacks(e);this.lastString="".concat(this.lastString).concat(this.decoder.decode()),this.lastString&&(this.parser.addLine(this.lastString,t),this.lastString=""),this.parser.finish(t)}}]),e}();xd.GFFTransformer=Hd;var $d=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};K(this,e),Q(this,"linesSinceLastSyncMark",0),Q(this,"haveWeEmittedData",!1),Q(this,"fastaMode",!1),Q(this,"minLinesBetweenSyncMarks",void 0),Q(this,"insertVersionDirective",void 0),this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=!1!==t.insertVersionDirective}return X(e,[{key:"transform",value:function(e,t){!this.haveWeEmittedData&&this.insertVersionDirective&&(!("directive"in e)||"directive"in e&&"gff-version"!==e.directive)&&t.enqueue("##gff-version 3\n"),"sequence"in e&&!this.fastaMode&&(t.enqueue("##FASTA\n"),this.fastaMode=!0);var n=Array.isArray(e)?e.map((function(e){return(0,zd.formatItem)(e)})).join(""):(0,zd.formatItem)(e);if(t.enqueue(n),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)t.enqueue("###\n"),this.linesSinceLastSyncMark=0;else{for(var r=0,a=0;a<n.length;a+=1)"\n"===n[a]&&(r+=1);this.linesSinceLastSyncMark+=r}this.haveWeEmittedData=!0}}]),e}();async function Vd(e,t,n){const r=wd.parseStringSync(t,{parseSequences:!0,parseComments:!0,parseDirectives:!1,parseFeatures:!0});if(0===r.length)throw new Error("No features found in GFF3 file");let a=0,o=n.assemblies.get(e);o||(o=n.addAssembly(e,"InMemoryFileDriver"));for(const e of r)if(Array.isArray(e)){const t=Xn.gff3ToAnnotationFeature(e),n=o.refSeqs.get(t.refSeq)??o.addRefSeq(t.refSeq,t.refSeq);n.features.has(t._id)||n.addFeature(t)}else if("comment"in e)o.addComment(e.comment);else{a++;let t=o.refSeqs.get(e.id);t||(t=o.addRefSeq(e.id,e.id,e.description)),e.description&&!t.description&&t.setDescription(e.description),t.addSequence({start:0,stop:e.sequence.length,sequence:e.sequence})}if(0===a)throw new Error("No embedded FASTA section found in GFF3");const i=await Wd(o);return n.addCheckResults(i),o}async function Wd(e){const t=[];for(const n of e.refSeqs.values())for(const e of n.features.values())for(const a of L.checkRegistry.getChecks().values()){const o=await a.checkFeature(r.getSnapshot(e),((e,t)=>Promise.resolve(n.getSequence(e,t))));t.push(...o)}return t}function Jd(e){const{attributes:t}=e,n=t.get("gff_name");return n?n[0]:""}function Yd(e){const{attributes:t}=e,n=t.get("gff_id"),r=t.get("transcript_id"),a=t.get("exon_id"),o=t.get("protein_id");return n?n[0]:r?r[0]:a?a[0]:o?o[0]:""}function Kd(e){const t=Jd(e),n=Yd(e);return t?`: ${t}`:n?`: ${n}`:""}function Zd(e,t,n=!1){const r=[];r.push(e);for(const t of function(e){const t=[];let{parent:n}=e;for(;n;)t.push(n),({parent:n}=n);return t}(e))r.push(t);const a=function(e){const t=[];if(e.children)for(const[,n]of e.children)t.push(n);return t}(e);for(const e of a)e.min<t&&e.max>=t&&r.push(e);if(!n)return r;if(e.parent){const n=e.parent.children;if(n)for(const[,a]of n)a._id!=e._id&&a.min<t&&a.max>=t&&r.push(a)}return r}xd.GFFFormattingTransformer=$d,function(e){var t=M&&M.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=M&&M.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=M&&M.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(r){if(r&&r.__esModule)return r;var a={};if(null!=r)for(var o=e(r),i=0;i<o.length;i++)"default"!==o[i]&&t(a,r,o[i]);return n(a,r),a}}(),a=M&&M.__exportStar||function(e,n){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(n,r)||t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.util=e.defaultExport=void 0;var o=r(xd);a(xd,e);var i=r(Ed);e.defaultExport=$($({},o),{},{util:i}),e.default=e.defaultExport,e.util=r(Ed)}(wd);var Xd=s.createSvgIcon(i.jsx("path",{d:"m7.58 16.89 5.77-4.07c.56-.4.56-1.24 0-1.63L7.58 7.11C6.91 6.65 6 7.12 6 7.93v8.14c0 .81.91 1.28 1.58.82M16 7v10c0 .55.45 1 1 1s1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1"}),"SkipNextRounded"),Qd=s.createSvgIcon(i.jsx("path",{d:"M7 6c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1s-1-.45-1-1V7c0-.55.45-1 1-1m3.66 6.82 5.77 4.07c.66.47 1.58-.01 1.58-.82V7.93c0-.81-.91-1.28-1.58-.82l-5.77 4.07c-.57.4-.57 1.24 0 1.64"}),"SkipPreviousRounded");function ef(e,t){if(e.apolloDragging)return;e.setSelectedFeature(t);const{session:n}=e,{apolloDataStore:r}=n,{featureTypeOntology:a}=r.ontologyManager;if(!a)throw new Error("featureTypeOntology is undefined");let o=!1;for(const[,e]of t.children??[])if(a.isTypeOf(e.type,"CDS")||a.isTypeOf(e.type,"exon")){o=!0;break}(a.isTypeOf(t.type,"transcript")||a.isTypeOf(t.type,"pseudogenic_transcript"))&&o?e.showFeatureDetailsWidget(t,["ApolloTranscriptDetails","apolloTranscriptDetails"]):e.showFeatureDetailsWidget(t)}function tf(e,t){const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"transcript")||n.isTypeOf(e.type,"pseudogenic_transcript")}function nf(e,t){const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"exon")}function rf(e,t){const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"CDS")}function af(e,t,r,a){const o=n.getContainingView(t),i=r.bp-o.bpPerPx*r.x,s=i+o.coarseTotalBp;if(!e.parent)return{upstream:void 0,downstream:void 0};const l=e.parent;if(!l.children)throw new Error(`Error getting children of ${l._id}`);const{featureTypeOntology:c}=a.apolloDataStore.ontologyManager;if(!c)throw new Error("featureTypeOntology is undefined");let u=[];for(const[,e]of l.children)c.isTypeOf(e.type,"exon")&&u.push(e);const d={upstream:void 0,downstream:void 0};u=u.sort(((e,t)=>e.min<t.min?-1:1));for(const e of u)if(e.min>s){d.downstream=e;break}u=u.sort(((e,t)=>e.min>t.min?-1:1));for(const e of u)if(e.max<i){d.upstream=e;break}if(-1===l.strand){const e=d.downstream;d.downstream=d.upstream,d.upstream=e}return d}function of(e,t,n){let r=Xd;return-1===e&&(r=Qd),t&&(r=r===Qd?Xd:Qd),n&&(r=r===Qd?Xd:Qd),r}function sf(e,t,n,r){const a=r.bpToPx({refName:t,coord:e.min,regionNumber:n}),o=r.bpToPx({refName:t,coord:e.max,regionNumber:n});if(void 0===a||void 0===o)return;const{offsetPx:i}=r;return[a.offsetPx-i,o.offsetPx-i]}function lf(e,t,n){const[r,a]=n;if(!(Math.abs(a-r)<8))return Math.abs(r-t)<4?{feature:e,edge:"min"}:Math.abs(a-t)<4?{feature:e,edge:"max"}:void 0}function cf(e,t){return Boolean(t&&e._id===t._id)}function uf(e,t){return!!t&&(e._id===t._id||e.hasDescendant(t._id))}function df(e){let t;t=e.attributes.get("gff_name")?e.attributes.get("gff_name")?.join(","):e.attributes.get("gff_id")?e.attributes.get("gff_id")?.join(","):e._id;const n=`(${(e.min+1).toLocaleString("en")}..${e.max.toLocaleString("en")})`;if(t&&t.length+n.length>65){const e=60-n.length;t=e>0?t.slice(0,e):"",t=`${t}[...]`}return`${t} ${n}`}function ff(e,t){const{apolloInternetAccount:r,changeManager:a,regions:o,selectedFeature:i,session:s}=e,l=[],c=r?r.role:"admin",u="admin"===c,d=!(c&&["admin","user"].includes(c)),[f]=o,p=e.getAssemblyId(f.assemblyName),h=e.getAssemblyId(f.assemblyName);return l.push({label:df(t),type:"subHeader"},{label:"Add child feature",disabled:d,onClick:()=>{s.queueDialog((e=>[FT,{session:s,handleClose:()=>{e()},changeManager:a,sourceFeature:t,sourceAssemblyId:p,internetAccount:r}]))}},{label:"Copy features and annotations",disabled:d,onClick:()=>{s.queueDialog((e=>[GT,{session:s,handleClose:()=>{e()},changeManager:a,sourceFeature:t,sourceAssemblyId:h}]))}},{label:"Delete feature",disabled:!u,onClick:()=>{s.queueDialog((n=>[$T,{session:s,handleClose:()=>{n()},changeManager:a,sourceFeature:t,sourceAssemblyId:h,selectedFeature:i,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}}),n.isSessionModelWithWidgets(s)&&l.push({label:"Open feature details",onClick:()=>{const e=s.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:t,assembly:h,refName:f.refName});s.showWidget(e)}}),l}function pf(e,t,n){const r=(e.max-e.min)*t,a=Math.max(e.min-r,1),o=Math.min(e.max+r,n);return{refName:e.refSeq,start:a,end:o}}function hf(e,t,n){const r=[{featureId:e._id,oldLocation:e[n],newLocation:t}],{parent:a}=e;return a&&("min"===n&&a[n]>t||"max"===n&&a[n]<t)&&r.push(...hf(a,t,n)),r}function mf(e,t,n,r,a){const o=e._id,i=[{featureId:o,oldLocation:e[n],newLocation:t}],{parent:s,children:l}=e;if(l)for(const[,e]of l)e._id!==a&&("min"===n&&e[n]<t||"max"===n&&e[n]>t)&&i.push(...mf(e,t,n,r));if(s&&r){const e=[];if(s.children)for(const[,t]of s.children)t._id!==o&&e.push(t);if(0===e.length)i.push(...mf(s,t,n,r,o));else{const a=s[n],l=Math[n](...e.map((e=>e[n])),t);l!==a&&i.push(...mf(s,l,n,r,o))}}return i}function gf(e,t,n,r=!1){const a=e[n];if(t===a)throw new Error(`New and existing locations are the same: "${t}"`);return"min"===n?t>a?mf(e,t,n,r):hf(e,t,n):t<a?mf(e,t,n,r):hf(e,t,n)}function yf(e){return"feature"in e}function vf(e,t){const n=e.currentTarget,{clientX:r,clientY:a}=e,{left:o,top:i}=n.getBoundingClientRect(),s=r-o,l=a-i,{coord:c,index:u,refName:d}=t.pxToBp(s);return{x:s,y:l,refName:d,bp:c,regionNumber:u}}async function bf(e,t){let n;try{n=await e.text()}catch{n=""}return`${t?`${t} — `:""}${e.status} ${e.statusText}${n?` (${n})`:""}`}var _f=s.createSvgIcon(i.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");const wf=d.makeStyles()((e=>({dialogTitle:{background:e.palette.primary.main,color:e.palette.primary.contrastText,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1.5),color:e.palette.primary.contrastText}}))),xf=h.observer((function(e){const{classes:t}=wf(),{handleClose:n,title:r,...a}=e;return T.default.createElement(p.Dialog,{...a,header:T.default.createElement(T.default.Fragment,null,T.default.createElement(l.DialogTitle,{className:t.dialogTitle},r),T.default.createElement(l.IconButton,{"aria-label":"close",onClick:n,className:t.closeButton},T.default.createElement(_f,null)))})}));var Sf;!function(e){e.GFF3="text/x-gff3",e.FASTA="text/x-fasta",e.BGZIP_FASTA="application/x-bgzip-fasta",e.FAI="text/x-fai",e.GZI="application/x-gzi",e.EXTERNAL="text/x-external"}(Sf||(Sf={}));const Ef=d.makeStyles()((e=>({accordion:{border:`1px solid ${e.palette.divider}`,"&:not(:last-child)":{borderBottom:0}},accordionSummary:{flexDirection:"row-reverse"},accordionDetails:{padding:e.spacing(2),borderTop:"1px solid rgba(0, 0, 0, .125)"},radioIcon:{color:e.palette.tertiary.contrastText},dialog:{minWidth:550,maxWidth:800}})));function kf(e,t,n,r,a,o,i,s,l){return!(!e||!(t&&r||n===Sf.GFF3&&r||r&&a&&o||i&&s&&l))}function Cf({changeManager:e,handleClose:t,session:n}){const{classes:o}=Ef(),{internetAccounts:i}=r.getRoot(n),{notify:s}=n,c=i.filter((e=>"ApolloInternetAccount"===e.type));if(0===c.length)throw new Error("No Apollo internet account found");const[d,f]=u.useState(""),[p,h]=u.useState(""),[m,g]=u.useState(!1),[y,v]=u.useState(Sf.BGZIP_FASTA),[b,_]=u.useState(!0),[w,x]=u.useState(!1),[S,E]=u.useState(!1),[k,C]=u.useState(null),[A,O]=u.useState(null),[N,I]=u.useState(null),[R,F]=u.useState(""),[P,M]=u.useState(""),[D,j]=u.useState(""),[L,q]=u.useState(!1),[B,U]=u.useState(!1),[z,G]=u.useState(!1);async function H(e,t){const{jobsManager:r}=n,a=new AbortController,[{baseURL:o,getFetcher:i}]=c,s=new URL("files",o);s.searchParams.set("type",t);const l=s.href,u=new FormData;let f=e.name;const p=t===Sf.BGZIP_FASTA||t===Sf.FASTA&&(!w||B)||t===Sf.GFF3&&z;p&&!e.name.toLocaleLowerCase().endsWith(".gz")?f=`${f}.gz`:!p&&e.name.toLocaleLowerCase().endsWith(".gz")&&(f=`${f}.txt`),u.append("file",e,f),u.append("type",t);const m=i({locationType:"UriLocation",uri:l});if(m){const t={name:`UploadAssemblyFile for ${d}`,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{a.abort("AddAssembly"),r.abortJob(t.name)}};r.runJob(t),r.update(t.name,`Uploading ${e.name}, this may take awhile`);const{signal:n}=a,o=await m(l,{method:"POST",body:u,signal:n});if(!o.ok){const e=await bf(o,"Error when inserting new assembly (while uploading file)");return r.abortJob(t.name,e),h(e),""}const i=(await o.json())._id;return r.done(t),i}throw new Error("Failed to fetch")}let $=!1;try{const e=new URL(R);"http:"!==e.protocol&&"https:"!==e.protocol||($=!0)}catch{}let V=!1;try{const e=new URL(P);"http:"!==e.protocol&&"https:"!==e.protocol||(V=!0)}catch{}let W=!1;try{const e=new URL(D);"http:"!==e.protocol&&"https:"!==e.protocol||(W=!0)}catch{}const[J,Y]=T.default.useState("panelFastaInput"),K=e=>(t,n)=>{n&&Y(e)};return T.default.createElement(xf,{open:!0,handleClose:t,"data-testid":"add-assembly-dialog",title:"Add new assembly",maxWidth:!1},T.default.createElement("form",{onSubmit:async function(n){let r;if(n.preventDefault(),h(""),E(!0),q(!0),s(`Assembly "${d}" is being added`,"info"),t(),n.preventDefault(),y===Sf.EXTERNAL)r=new Xn.AddAssemblyFromExternalChange({typeName:"AddAssemblyFromExternalChange",assembly:(new Hn).toHexString(),assemblyName:d,externalLocation:{fa:R,fai:P,gzi:D}});else{if(!k)throw new Error("Missing fasta file");if(y===Sf.GFF3&&b){const e=await H(k,Sf.GFF3);r=new Xn.AddAssemblyAndFeaturesFromFileChange({typeName:"AddAssemblyAndFeaturesFromFileChange",assembly:(new Hn).toHexString(),assemblyName:d,fileIds:{fa:e}})}else if(y===Sf.GFF3){const e=await H(k,Sf.GFF3);r=new Xn.AddAssemblyFromFileChange({typeName:"AddAssemblyFromFileChange",assembly:(new Hn).toHexString(),assemblyName:d,fileIds:{fa:e}})}else if(w){const e=await H(k,Sf.FASTA);r=new Xn.AddAssemblyFromFileChange({typeName:"AddAssemblyFromFileChange",assembly:(new Hn).toHexString(),assemblyName:d,fileIds:{fa:e}})}else{if(!A||!N)throw new Error("Missing fasta index files");const e=await H(k,Sf.BGZIP_FASTA),t=await H(A,Sf.FAI),n=await H(N,Sf.GZI);r=new Xn.AddAssemblyFromFileChange({typeName:"AddAssemblyFromFileChange",assembly:(new Hn).toHexString(),assemblyName:d,fileIds:{fa:e,fai:t,gzi:n}})}}const[{internetAccountId:a}]=c;await e.submit(r,{internetAccountId:a,updateJobsManager:!0}),E(!1),q(!1)},"data-testid":"submit-form"},T.default.createElement(l.DialogContent,{className:o.dialog},L?T.default.createElement(l.LinearProgress,null):null,T.default.createElement(l.TextField,{margin:"dense",id:"name",label:"Assembly name",type:"TextField",fullWidth:!0,variant:"outlined",onChange:e=>{E(!1),f(e.target.value),function(e){const{assemblies:t}=n;t.find((t=>a.readConfObject(t,"displayName")===e))?(g(!1),h(`Assembly ${e} already exists.`)):(g(!0),h(""))}(e.target.value)},disabled:S&&!p}),T.default.createElement(l.Accordion,{disableGutters:!0,elevation:0,square:!0,className:o.accordion,expanded:"panelFastaInput"===J,onChange:K("panelFastaInput")},T.default.createElement(l.AccordionSummary,{className:o.accordionSummary,expandIcon:"panelFastaInput"===J?T.default.createElement(bd,{className:o.radioIcon,sx:{fontSize:"1.2rem",ml:5}}):T.default.createElement(_d,{className:o.radioIcon,sx:{fontSize:"1.2rem",mr:5}}),"aria-controls":"panelFastaInputd-content",id:"panelFastaInputd-header"},T.default.createElement(l.Typography,{component:"span"},"FASTA input")),T.default.createElement(l.AccordionDetails,{className:o.accordionDetails},T.default.createElement(l.FormGroup,null,T.default.createElement(l.FormControlLabel,{"data-testid":"files-on-url-checkbox",control:T.default.createElement(l.Checkbox,{onChange:()=>{v(y===Sf.EXTERNAL?Sf.BGZIP_FASTA:Sf.EXTERNAL),y===Sf.EXTERNAL&&x(!1)},checked:y===Sf.EXTERNAL,disabled:w&&y!==Sf.GFF3}),label:T.default.createElement(l.Box,{display:"flex",alignItems:"center"},"Use external URLs",T.default.createElement(l.Tooltip,{title:"Use external URLs to provide FASTA and index files. Does not copy the files to the Apollo collaboration server, so ensure the URLs are stable.",placement:"top-start"},T.default.createElement(l.IconButton,{size:"small"},T.default.createElement(yd,{sx:{fontSize:18}}))))}),T.default.createElement(l.FormControlLabel,{"data-testid":"sequence-is-editable-checkbox",control:T.default.createElement(l.Checkbox,{onChange:()=>{x(!w)}}),checked:w,disabled:y===Sf.EXTERNAL,label:T.default.createElement(l.Box,{display:"flex",alignItems:"center"},"Store sequence in database",T.default.createElement(l.Tooltip,{title:"Enables users to edit the genomic sequence, but comes with performance impacts. Use with care.",placement:"top-start"},T.default.createElement(l.IconButton,{size:"small"},T.default.createElement(yd,{sx:{fontSize:18}}))))}),T.default.createElement(l.FormControlLabel,{"data-testid":"fasta-is-gzip-checkbox",control:T.default.createElement(l.Checkbox,{checked:!w||B,onChange:()=>{U(!w||!B)},disabled:!w}),label:"FASTA is gzip compressed"}),T.default.createElement(l.Table,{size:"small",sx:{mt:2}},y===Sf.BGZIP_FASTA||y===Sf.GFF3?T.default.createElement(l.TableBody,null,T.default.createElement(l.TableRow,null,T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement(l.Box,{display:"flex",alignItems:"center"},T.default.createElement("span",null,"FASTA"),T.default.createElement(l.Tooltip,{title:'Unless "Store sequence in database" enabled, FASTA input must be compressed with bgzip and indexed with samtools faidx (or equivalent). Compression is optional for sequences stored in the database.'},T.default.createElement(l.IconButton,{size:"small"},T.default.createElement(yd,{sx:{fontSize:18}}))))),T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement("input",{"data-testid":"fasta-input-file",type:"file",onChange:e=>{const t=e.target.files?.item(0);t&&(C(t),t.name.endsWith(".gz")&&U(!0))},disabled:S&&!p}))),T.default.createElement(l.TableRow,null,T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},"FASTA index (.fai)"),T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement("input",{"data-testid":"fai-input-file",type:"file",onChange:e=>{O(e.target.files?.item(0)??null)},disabled:S&&!p||w}))),T.default.createElement(l.TableRow,null,T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},"FASTA binary index (.gzi)"),T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement("input",{"data-testid":"gzi-input-file",type:"file",onChange:e=>{I(e.target.files?.item(0)??null)},disabled:S&&!p||w})))):T.default.createElement(l.TableBody,null,T.default.createElement(l.TableRow,null,T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement(l.Box,{display:"flex",alignItems:"center"},T.default.createElement("span",null,"FASTA"),T.default.createElement(l.Tooltip,{title:"Remote FASTA input must be compressed with bgzip and indexed with samtools faidx (or equivalent)"},T.default.createElement(l.IconButton,{size:"small"},T.default.createElement(yd,{sx:{fontSize:18}}))))),T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement(l.TextField,{"data-testid":"fasta-input-url",variant:"outlined",value:R,error:!$,onChange:e=>{const{value:t}=e.target;F(t),M(t?`${t}.fai`:""),j(t?`${t}.gzi`:"")},disabled:S&&!p,slotProps:{input:{startAdornment:T.default.createElement(l.InputAdornment,{position:"start"},T.default.createElement(vd,null))}}}))),T.default.createElement(l.TableRow,null,T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},"FASTA index (.fai)"),T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement(l.TextField,{"data-testid":"fai-input-url",variant:"outlined",value:P,error:!V,onChange:e=>{M(e.target.value)},disabled:S&&!p,slotProps:{input:{startAdornment:T.default.createElement(l.InputAdornment,{position:"start"},T.default.createElement(vd,null))}}}))),T.default.createElement(l.TableRow,null,T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},"FASTA binary index (.gzi)"),T.default.createElement(l.TableCell,{style:{borderBottomWidth:0}},T.default.createElement(l.TextField,{"data-testid":"gzi-input-url",variant:"outlined",value:D,error:!W,onChange:e=>{j(e.target.value)},disabled:S&&!p,slotProps:{input:{startAdornment:T.default.createElement(l.InputAdornment,{position:"start"},T.default.createElement(vd,null))}}})))))))),T.default.createElement(l.Accordion,{disableGutters:!0,elevation:0,square:!0,className:o.accordion,expanded:"panelGffInput"===J,onChange:K("panelGffInput")},T.default.createElement(l.AccordionSummary,{className:o.accordionSummary,expandIcon:"panelGffInput"===J?T.default.createElement(bd,{className:o.radioIcon,sx:{fontSize:"1.2rem",ml:5}}):T.default.createElement(_d,{className:o.radioIcon,sx:{fontSize:"1.2rem",mr:5}}),"aria-controls":"panelGffInputd-content"},T.default.createElement(l.Typography,{component:"span"},"GFF3 input",T.default.createElement(l.Tooltip,{title:"GFF3 must includes FASTA sequences. File can be gzip compressed."},T.default.createElement(yd,{className:o.radioIcon,sx:{fontSize:18}})))),T.default.createElement(l.AccordionDetails,{className:o.accordionDetails},T.default.createElement(l.Box,{style:{marginTop:20}},T.default.createElement("input",{"data-testid":"gff3-input-file",type:"file",disabled:S&&!p,onChange:e=>{const t=e.target.files?.item(0);t&&(C(t),v(Sf.GFF3),t.name.endsWith(".gz")&&G(!0))}}),T.default.createElement(l.FormGroup,{style:{display:"grid"}},T.default.createElement(l.FormControlLabel,{control:T.default.createElement(l.Checkbox,{checked:b,onChange:()=>{_(!b)},disabled:S&&!p}),label:"Load features from GFF3 file"}),T.default.createElement(l.FormControlLabel,{"data-testid":"gff3-is-gzip-checkbox",control:T.default.createElement(l.Checkbox,{checked:z,onChange:()=>{G(!z)},disabled:S&&!p}),label:"GFF3 is gzip compressed"})))))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{disabled:!kf(m,w,y,k,A,N,$,V,W)||S,variant:"contained",type:"submit","data-testid":"submit-button"},S?"Submitting...":"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),p?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},p)):null)}const Af=[{field:"name",headerName:"Assembly Name",width:150,editable:!1},{field:"aliases",headerName:"Aliases",width:300,editable:!0}];function Of({changeManager:e,handleClose:t,session:n}){const{apolloDataStore:r}=n,{collaborationServerDriver:a}=r,o=a.getAssemblies().map((e=>({id:e.name,name:e.displayName,aliases:e.aliases.join(", ")}))),[i,s]=T.default.useState("");return T.default.createElement(xf,{open:!0,title:"Add assembly aliases",handleClose:t,maxWidth:"sm","data-testid":"add-assembly-alias",fullWidth:!0},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.Box,{sx:{height:400,width:"100%"}},T.default.createElement(f.DataGrid,{rows:o,columns:Af,initialState:{pagination:{paginationModel:{pageSize:5}}},pageSizeOptions:[5],processRowUpdate:(n,r)=>{const a=new Xn.AddAssemblyAliasesChange({typeName:"AddAssemblyAliasesChange",assembly:n.id,aliases:n.aliases.split(",")});return e.submit(a).catch((()=>{s("Error submitting change")})),t(),n},disableRowSelectionOnClick:!0}))),i?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},i)):null)}var Tf,Nf,If=function(e,t){return t.some((function(t){return e instanceof t}))},Rf=new WeakMap,Ff=new WeakMap,Pf=new WeakMap,Mf=new WeakMap,Df=new WeakMap,jf={get:function(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Ff.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Pf.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return qf(e[t])},set:function(e,t,n){return e[t]=n,!0},has:function(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function Lf(e){jf=e(jf)}function qf(e){if(e instanceof IDBRequest)return t=e,(n=new Promise((function(e,n){var r=function(){t.removeEventListener("success",a),t.removeEventListener("error",o)},a=function(){e(qf(t.result)),r()},o=function(){n(t.error),r()};t.addEventListener("success",a),t.addEventListener("error",o)}))).then((function(e){e instanceof IDBCursor&&Rf.set(e,t)})).catch((function(){})),Df.set(n,t),n;var t,n;if(Mf.has(e))return Mf.get(e);var r=function(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(Nf||(Nf=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.apply(Bf(this),n),qf(Rf.get(this))}:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return qf(t.apply(Bf(this),n))}:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var o=t.call.apply(t,[Bf(this),e].concat(r));return Pf.set(o,e.sort?e.sort():[e]),qf(o)}:(e instanceof IDBTransaction&&function(e){if(!Ff.has(e)){var t=new Promise((function(t,n){var r=function(){e.removeEventListener("complete",a),e.removeEventListener("error",o),e.removeEventListener("abort",o)},a=function(){t(),r()},o=function(){n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",a),e.addEventListener("error",o),e.addEventListener("abort",o)}));Ff.set(e,t)}}(e),If(e,Tf||(Tf=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,jf):e);var t}(e);return r!==e&&(Mf.set(e,r),Df.set(r,e)),r}var Bf=function(e){return Df.get(e)},Uf=["get","getKey","getAll","getAllKeys","count"],zf=["put","add","delete","clear"],Gf=new Map;function Hf(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(Gf.get(t))return Gf.get(t);var n=t.replace(/FromIndex$/,""),r=t!==n,a=zf.includes(n);if(n in(r?IDBIndex:IDBObjectStore).prototype&&(a||Uf.includes(n))){var o=function(){var e=Y(V().mark((function e(t){var o,i,s,l,c,u,d=arguments;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(i=this.transaction(t,a?"readwrite":"readonly"),s=i.store,l=d.length,c=new Array(l>1?l-1:0),u=1;u<l;u++)c[u-1]=d[u];return r&&(s=s.index(c.shift())),e.next=6,Promise.all([(o=s)[n].apply(o,c),a&&i.done]);case 6:return e.abrupt("return",e.sent[0]);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}();return Gf.set(t,o),o}}}Lf((function(e){return $($({},e),{},{get:function(t,n,r){return Hf(t,n)||e.get(t,n,r)},has:function(t,n){return!!Hf(t,n)||e.has(t,n)}})}));var $f=["continue","continuePrimaryKey","advance"],Vf={},Wf=new WeakMap,Jf=new WeakMap,Yf={get:function(e,t){if(!$f.includes(t))return e[t];var n=Vf[t];return n||(n=Vf[t]=function(){var e;Wf.set(this,(e=Jf.get(this))[t].apply(e,arguments))}),n}};function Kf(){return Zf.apply(this,arguments)}function Zf(){var e;return e=V().mark((function e(){var t,n,r,a=arguments;return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((t=this)instanceof IDBCursor){e.next=5;break}return e.next=4,G((n=t).openCursor.apply(n,a));case 4:t=e.sent;case 5:if(t){e.next=7;break}return e.abrupt("return");case 7:r=new Proxy(t,Yf),Jf.set(r,t),Df.set(r,Bf(t));case 11:if(!t){e.next=20;break}return e.next=14,r;case 14:return e.next=16,G(Wf.get(r)||t.continue());case 16:t=e.sent,Wf.delete(r),e.next=11;break;case 20:case"end":return e.stop()}}),e,this)})),Zf=function(){return new q(e.apply(this,arguments))},Zf.apply(this,arguments)}function Xf(e,t){return t===Symbol.asyncIterator&&If(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&If(e,[IDBIndex,IDBObjectStore])}Lf((function(e){return $($({},e),{},{get:function(t,n,r){return Xf(t,n)?Kf:e.get(t,n,r)},has:function(t,n){return Xf(t,n)||e.has(t,n)}})}));var Qf={},ep={},tp={},np={},rp={};Object.defineProperty(rp,"__esModule",{value:!0}),rp.isFunction=void 0,rp.isFunction=function(e){return"function"==typeof e};var ap={},op={},ip={};Object.defineProperty(ip,"__esModule",{value:!0}),ip.createErrorClass=void 0,ip.createErrorClass=function(e){var t=e((function(e){Error.call(e),e.stack=(new Error).stack}));return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t},Object.defineProperty(op,"__esModule",{value:!0}),op.UnsubscriptionError=void 0,op.UnsubscriptionError=ip.createErrorClass((function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}));var sp={};Object.defineProperty(sp,"__esModule",{value:!0}),sp.arrRemove=void 0,sp.arrRemove=function(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}};var lp=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},cp=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},up=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(ap,"__esModule",{value:!0}),ap.isSubscription=ap.EMPTY_SUBSCRIPTION=ap.Subscription=void 0;var dp=rp,fp=op,pp=sp,hp=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,n,r,a;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var i=lp(o),s=i.next();!s.done;s=i.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}else o.remove(this);var l=this.initialTeardown;if(dp.isFunction(l))try{l()}catch(e){a=e instanceof fp.UnsubscriptionError?e.errors:[e]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var u=lp(c),d=u.next();!d.done;d=u.next()){var f=d.value;try{mp(f)}catch(e){a=null!=a?a:[],e instanceof fp.UnsubscriptionError?a=up(up([],cp(a)),cp(e.errors)):a.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(a)throw new fp.UnsubscriptionError(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)mp(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&pp.arrRemove(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&pp.arrRemove(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();function mp(e){dp.isFunction(e)?e():e.unsubscribe()}ap.Subscription=hp,ap.EMPTY_SUBSCRIPTION=hp.EMPTY,ap.isSubscription=function(e){return e instanceof hp||e&&"closed"in e&&dp.isFunction(e.remove)&&dp.isFunction(e.add)&&dp.isFunction(e.unsubscribe)};var gp={};Object.defineProperty(gp,"__esModule",{value:!0}),gp.config=void 0,gp.config={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var yp={},vp={};!function(e){var t=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},n=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(e,"__esModule",{value:!0}),e.timeoutProvider=void 0,e.timeoutProvider={setTimeout:function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(r,a){for(var o=[],i=2;i<arguments.length;i++)o[i-2]=arguments[i];var s=e.timeoutProvider.delegate;return(null==s?void 0:s.setTimeout)?s.setTimeout.apply(s,n([r,a],t(o))):setTimeout.apply(void 0,n([r,a],t(o)))})),clearTimeout:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(t){var n=e.timeoutProvider.delegate;return((null==n?void 0:n.clearTimeout)||clearTimeout)(t)})),delegate:void 0}}(vp),Object.defineProperty(yp,"__esModule",{value:!0}),yp.reportUnhandledError=void 0;var bp=gp,_p=vp;yp.reportUnhandledError=function(e){_p.timeoutProvider.setTimeout((function(){var t=bp.config.onUnhandledError;if(!t)throw e;t(e)}))};var wp={};Object.defineProperty(wp,"__esModule",{value:!0}),wp.noop=void 0,wp.noop=function(){};var xp={};function Sp(e,t,n){return{kind:e,value:t,error:n}}Object.defineProperty(xp,"__esModule",{value:!0}),xp.createNotification=xp.nextNotification=xp.errorNotification=xp.COMPLETE_NOTIFICATION=void 0,xp.COMPLETE_NOTIFICATION=function(){return Sp("C",void 0,void 0)}(),xp.errorNotification=function(e){return Sp("E",void 0,e)},xp.nextNotification=function(e){return Sp("N",e,void 0)},xp.createNotification=Sp;var Ep={};Object.defineProperty(Ep,"__esModule",{value:!0}),Ep.captureError=Ep.errorContext=void 0;var kp=gp,Cp=null;Ep.errorContext=function(e){if(kp.config.useDeprecatedSynchronousErrorHandling){var t=!Cp;if(t&&(Cp={errorThrown:!1,error:null}),e(),t){var n=Cp;if(Cp=null,n.errorThrown)throw n.error}}else e()},Ep.captureError=function(e){kp.config.useDeprecatedSynchronousErrorHandling&&Cp&&(Cp.errorThrown=!0,Cp.error=e)},function(e){var t=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0}),e.EMPTY_OBSERVER=e.SafeSubscriber=e.Subscriber=void 0;var n=rp,r=ap,a=gp,o=yp,i=wp,s=xp,l=vp,c=Ep,u=function(n){function a(t){var a=n.call(this)||this;return a.isStopped=!1,t?(a.destination=t,r.isSubscription(t)&&t.add(a)):a.destination=e.EMPTY_OBSERVER,a}return t(a,n),a.create=function(e,t,n){return new h(e,t,n)},a.prototype.next=function(e){this.isStopped?g(s.nextNotification(e),this):this._next(e)},a.prototype.error=function(e){this.isStopped?g(s.errorNotification(e),this):(this.isStopped=!0,this._error(e))},a.prototype.complete=function(){this.isStopped?g(s.COMPLETE_NOTIFICATION,this):(this.isStopped=!0,this._complete())},a.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,n.prototype.unsubscribe.call(this),this.destination=null)},a.prototype._next=function(e){this.destination.next(e)},a.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},a.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},a}(r.Subscription);e.Subscriber=u;var d=Function.prototype.bind;function f(e,t){return d.call(e,t)}var p=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){m(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){m(e)}else m(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){m(e)}},e}(),h=function(e){function r(t,r,o){var i,s,l=e.call(this)||this;return n.isFunction(t)||!t?i={next:null!=t?t:void 0,error:null!=r?r:void 0,complete:null!=o?o:void 0}:l&&a.config.useDeprecatedNextContext?((s=Object.create(t)).unsubscribe=function(){return l.unsubscribe()},i={next:t.next&&f(t.next,s),error:t.error&&f(t.error,s),complete:t.complete&&f(t.complete,s)}):i=t,l.destination=new p(i),l}return t(r,e),r}(u);function m(e){a.config.useDeprecatedSynchronousErrorHandling?c.captureError(e):o.reportUnhandledError(e)}function g(e,t){var n=a.config.onStoppedNotification;n&&l.timeoutProvider.setTimeout((function(){return n(e,t)}))}e.SafeSubscriber=h,e.EMPTY_OBSERVER={closed:!0,next:i.noop,error:function(e){throw e},complete:i.noop}}(np);var Ap={};Object.defineProperty(Ap,"__esModule",{value:!0}),Ap.observable=void 0,Ap.observable=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}();var Op={},Tp={};Object.defineProperty(Tp,"__esModule",{value:!0}),Tp.identity=void 0,Tp.identity=function(e){return e},Object.defineProperty(Op,"__esModule",{value:!0}),Op.pipeFromArray=Op.pipe=void 0;var Np=Tp;function Ip(e){return 0===e.length?Np.identity:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}Op.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Ip(e)},Op.pipeFromArray=Ip,Object.defineProperty(tp,"__esModule",{value:!0}),tp.Observable=void 0;var Rp=np,Fp=ap,Pp=Ap,Mp=Op,Dp=gp,jp=rp,Lp=Ep,qp=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this,a=function(e){return e&&e instanceof Rp.Subscriber||function(e){return e&&jp.isFunction(e.next)&&jp.isFunction(e.error)&&jp.isFunction(e.complete)}(e)&&Fp.isSubscription(e)}(e)?e:new Rp.SafeSubscriber(e,t,n);return Lp.errorContext((function(){var e=r.operator,t=r.source;a.add(e?e.call(a,t):t?r._subscribe(a):r._trySubscribe(a))})),a},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=Bp(t))((function(t,r){var a=new Rp.SafeSubscriber({next:function(t){try{e(t)}catch(e){r(e),a.unsubscribe()}},error:r,complete:t});n.subscribe(a)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[Pp.observable]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Mp.pipeFromArray(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=Bp(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function Bp(e){var t;return null!==(t=null!=e?e:Dp.config.Promise)&&void 0!==t?t:Promise}tp.Observable=qp;var Up={},zp={},Gp={};Object.defineProperty(Gp,"__esModule",{value:!0}),Gp.operate=Gp.hasLift=void 0;var Hp=rp;function $p(e){return Hp.isFunction(null==e?void 0:e.lift)}Gp.hasLift=$p,Gp.operate=function(e){return function(t){if($p(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}};var Vp={},Wp=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Vp,"__esModule",{value:!0}),Vp.OperatorSubscriber=Vp.createOperatorSubscriber=void 0;var Jp=np;Vp.createOperatorSubscriber=function(e,t,n,r,a){return new Yp(e,t,n,r,a)};var Yp=function(e){function t(t,n,r,a,o,i){var s=e.call(this,t)||this;return s.onFinalize=o,s.shouldUnsubscribe=i,s._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,s._error=a?function(e){try{a(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,s._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,s}return Wp(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(Jp.Subscriber);Vp.OperatorSubscriber=Yp,Object.defineProperty(zp,"__esModule",{value:!0}),zp.refCount=void 0;var Kp=Gp,Zp=Vp;zp.refCount=function(){return Kp.operate((function(e,t){var n=null;e._refCount++;var r=Zp.createOperatorSubscriber(t,void 0,void 0,void 0,(function(){if(!e||e._refCount<=0||0<--e._refCount)n=null;else{var r=e._connection,a=n;n=null,!r||a&&r!==a||r.unsubscribe(),t.unsubscribe()}}));e.subscribe(r),r.closed||(n=e.connect())}))};var Xp=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Up,"__esModule",{value:!0}),Up.ConnectableObservable=void 0;var Qp=ap,eh=zp,th=Vp,nh=Gp,rh=function(e){function t(t,n){var r=e.call(this)||this;return r.source=t,r.subjectFactory=n,r._subject=null,r._refCount=0,r._connection=null,nh.hasLift(t)&&(r.lift=t.lift),r}return Xp(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype._teardown=function(){this._refCount=0;var e=this._connection;this._subject=this._connection=null,null==e||e.unsubscribe()},t.prototype.connect=function(){var e=this,t=this._connection;if(!t){t=this._connection=new Qp.Subscription;var n=this.getSubject();t.add(this.source.subscribe(th.createOperatorSubscriber(n,void 0,(function(){e._teardown(),n.complete()}),(function(t){e._teardown(),n.error(t)}),(function(){return e._teardown()})))),t.closed&&(this._connection=null,t=Qp.Subscription.EMPTY)}return t},t.prototype.refCount=function(){return eh.refCount()(this)},t}(tp.Observable);Up.ConnectableObservable=rh;var ah={},oh={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.performanceTimestampProvider=void 0,e.performanceTimestampProvider={now:function(){return(e.performanceTimestampProvider.delegate||performance).now()},delegate:void 0}}(oh);var ih={};!function(e){var t=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},n=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(e,"__esModule",{value:!0}),e.animationFrameProvider=void 0;var r=ap;e.animationFrameProvider={schedule:function(t){var n=requestAnimationFrame,a=cancelAnimationFrame,o=e.animationFrameProvider.delegate;o&&(n=o.requestAnimationFrame,a=o.cancelAnimationFrame);var i=n((function(e){a=void 0,t(e)}));return new r.Subscription((function(){return null==a?void 0:a(i)}))},requestAnimationFrame:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){for(var r=[],a=0;a<arguments.length;a++)r[a]=arguments[a];var o=e.animationFrameProvider.delegate;return((null==o?void 0:o.requestAnimationFrame)||requestAnimationFrame).apply(void 0,n([],t(r)))})),cancelAnimationFrame:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(){for(var r=[],a=0;a<arguments.length;a++)r[a]=arguments[a];var o=e.animationFrameProvider.delegate;return((null==o?void 0:o.cancelAnimationFrame)||cancelAnimationFrame).apply(void 0,n([],t(r)))})),delegate:void 0}}(ih),Object.defineProperty(ah,"__esModule",{value:!0}),ah.animationFrames=void 0;var sh=tp,lh=oh,ch=ih;function uh(e){return new sh.Observable((function(t){var n=e||lh.performanceTimestampProvider,r=n.now(),a=0;return function o(){t.closed||(a=ch.animationFrameProvider.requestAnimationFrame((function(i){a=0;var s=n.now();t.next({timestamp:e?s:i,elapsed:s-r}),o()})))}(),function(){a&&ch.animationFrameProvider.cancelAnimationFrame(a)}}))}ah.animationFrames=function(e){return e?uh(e):dh};var dh=uh(),fh={},ph={};Object.defineProperty(ph,"__esModule",{value:!0}),ph.ObjectUnsubscribedError=void 0,ph.ObjectUnsubscribedError=ip.createErrorClass((function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}));var hh=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),mh=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(fh,"__esModule",{value:!0}),fh.AnonymousSubject=fh.Subject=void 0;var gh=tp,yh=ap,vh=ph,bh=sp,_h=Ep,wh=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return hh(t,e),t.prototype.lift=function(e){var t=new xh(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new vh.ObjectUnsubscribedError},t.prototype.next=function(e){var t=this;_h.errorContext((function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var a=mh(t.currentObservers),o=a.next();!o.done;o=a.next())o.value.next(e)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}}}))},t.prototype.error=function(e){var t=this;_h.errorContext((function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var n=t.observers;n.length;)n.shift().error(e)}}))},t.prototype.complete=function(){var e=this;_h.errorContext((function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}}))},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.observers;return n.hasError||n.isStopped?yh.EMPTY_SUBSCRIPTION:(this.currentObservers=null,r.push(e),new yh.Subscription((function(){t.currentObservers=null,bh.arrRemove(r,e)})))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.isStopped;t.hasError?e.error(t.thrownError):n&&e.complete()},t.prototype.asObservable=function(){var e=new gh.Observable;return e.source=this,e},t.create=function(e,t){return new xh(e,t)},t}(gh.Observable);fh.Subject=wh;var xh=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return hh(t,e),t.prototype.next=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)},t.prototype.error=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:yh.EMPTY_SUBSCRIPTION},t}(wh);fh.AnonymousSubject=xh;var Sh={},Eh=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Sh,"__esModule",{value:!0}),Sh.BehaviorSubject=void 0;var kh=function(e){function t(t){var n=e.call(this)||this;return n._value=t,n}return Eh(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){var e=this,t=e._value;if(e.hasError)throw e.thrownError;return this._throwIfClosed(),t},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(fh.Subject);Sh.BehaviorSubject=kh;var Ch={},Ah={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.dateTimestampProvider=void 0,e.dateTimestampProvider={now:function(){return(e.dateTimestampProvider.delegate||Date).now()},delegate:void 0}}(Ah);var Oh=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Ch,"__esModule",{value:!0}),Ch.ReplaySubject=void 0;var Th=Ah,Nh=function(e){function t(t,n,r){void 0===t&&(t=Infinity),void 0===n&&(n=Infinity),void 0===r&&(r=Th.dateTimestampProvider);var a=e.call(this)||this;return a._bufferSize=t,a._windowTime=n,a._timestampProvider=r,a._buffer=[],a._infiniteTimeWindow=!0,a._infiniteTimeWindow=Infinity===n,a._bufferSize=Math.max(1,t),a._windowTime=Math.max(1,n),a}return Oh(t,e),t.prototype.next=function(t){var n=this,r=n._buffer,a=n._infiniteTimeWindow,o=n._timestampProvider,i=n._windowTime;n.isStopped||(r.push(t),!a&&r.push(o.now()+i)),this._trimBuffer(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var t=this._innerSubscribe(e),n=this._infiniteTimeWindow,r=this._buffer.slice(),a=0;a<r.length&&!e.closed;a+=n?1:2)e.next(r[a]);return this._checkFinalizedStatuses(e),t},t.prototype._trimBuffer=function(){var e=this,t=e._bufferSize,n=e._timestampProvider,r=e._buffer,a=e._infiniteTimeWindow,o=(a?1:2)*t;if(t<Infinity&&o<r.length&&r.splice(0,r.length-o),!a){for(var i=n.now(),s=0,l=1;l<r.length&&r[l]<=i;l+=2)s=l;s&&r.splice(0,s+1)}},t}(fh.Subject);Ch.ReplaySubject=Nh;var Ih={},Rh=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Ih,"__esModule",{value:!0}),Ih.AsyncSubject=void 0;var Fh=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._value=null,t._hasValue=!1,t._isComplete=!1,t}return Rh(t,e),t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t._hasValue,r=t._value,a=t.isStopped,o=t._isComplete;t.hasError?e.error(t.thrownError):(a||o)&&(n&&e.next(r),e.complete())},t.prototype.next=function(e){this.isStopped||(this._value=e,this._hasValue=!0)},t.prototype.complete=function(){var t=this,n=t._hasValue,r=t._value;t._isComplete||(this._isComplete=!0,n&&e.prototype.next.call(this,r),e.prototype.complete.call(this))},t}(fh.Subject);Ih.AsyncSubject=Fh;var Ph={},Mh={},Dh={},jh={},Lh=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(jh,"__esModule",{value:!0}),jh.Action=void 0,jh.Action=function(e){function t(t,n){return e.call(this)||this}return Lh(t,e),t.prototype.schedule=function(e,t){return this},t}(ap.Subscription);var qh={};!function(e){var t=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},n=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(e,"__esModule",{value:!0}),e.intervalProvider=void 0,e.intervalProvider={setInterval:function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(r,a){for(var o=[],i=2;i<arguments.length;i++)o[i-2]=arguments[i];var s=e.intervalProvider.delegate;return(null==s?void 0:s.setInterval)?s.setInterval.apply(s,n([r,a],t(o))):setInterval.apply(void 0,n([r,a],t(o)))})),clearInterval:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(t){var n=e.intervalProvider.delegate;return((null==n?void 0:n.clearInterval)||clearInterval)(t)})),delegate:void 0}}(qh);var Bh=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Dh,"__esModule",{value:!0}),Dh.AsyncAction=void 0;var Uh=qh,zh=sp,Gh=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return Bh(t,e),t.prototype.schedule=function(e,t){var n;if(void 0===t&&(t=0),this.closed)return this;this.state=e;var r=this.id,a=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(a,r,t)),this.pending=!0,this.delay=t,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(a,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),Uh.intervalProvider.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;null!=t&&Uh.intervalProvider.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,zh.arrRemove(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(jh.Action);Dh.AsyncAction=Gh;var Hh={},$h={};Object.defineProperty($h,"__esModule",{value:!0}),$h.TestTools=$h.Immediate=void 0;var Vh,Wh=1,Jh={};function Yh(e){return e in Jh&&(delete Jh[e],!0)}$h.Immediate={setImmediate:function(e){var t=Wh++;return Jh[t]=!0,Vh||(Vh=Promise.resolve()),Vh.then((function(){return Yh(t)&&e()})),t},clearImmediate:function(e){Yh(e)}},$h.TestTools={pending:function(){return Object.keys(Jh).length}},function(e){var t=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},n=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(e,"__esModule",{value:!0}),e.immediateProvider=void 0;var r=$h.Immediate.setImmediate,a=$h.Immediate.clearImmediate;e.immediateProvider={setImmediate:function(){for(var a=[],o=0;o<arguments.length;o++)a[o]=arguments[o];var i=e.immediateProvider.delegate;return((null==i?void 0:i.setImmediate)||r).apply(void 0,n([],t(a)))},clearImmediate:function(t){var n=e.immediateProvider.delegate;return((null==n?void 0:n.clearImmediate)||a)(t)},delegate:void 0}}(Hh);var Kh=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Mh,"__esModule",{value:!0}),Mh.AsapAction=void 0;var Zh=Hh;Mh.AsapAction=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return Kh(t,e),t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t._scheduled||(t._scheduled=Zh.immediateProvider.setImmediate(t.flush.bind(t,void 0))))},t.prototype.recycleAsyncId=function(t,n,r){var a;if(void 0===r&&(r=0),null!=r?r>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);var o=t.actions;null!=n&&(null===(a=o[o.length-1])||void 0===a?void 0:a.id)!==n&&(Zh.immediateProvider.clearImmediate(n),t._scheduled===n&&(t._scheduled=void 0))},t}(Dh.AsyncAction);var Xh={},Qh={},em={};Object.defineProperty(em,"__esModule",{value:!0}),em.Scheduler=void 0;var tm=Ah;em.Scheduler=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=tm.dateTimestampProvider.now,e}();var nm=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Qh,"__esModule",{value:!0}),Qh.AsyncScheduler=void 0;var rm=em;Qh.AsyncScheduler=function(e){function t(t,n){void 0===n&&(n=rm.Scheduler.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r}return nm(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(rm.Scheduler);var am=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(Xh,"__esModule",{value:!0}),Xh.AsapScheduler=void 0;var om=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return am(t,e),t.prototype.flush=function(e){this._active=!0;var t=this._scheduled;this._scheduled=void 0;var n,r=this.actions;e=e||r.shift();do{if(n=e.execute(e.state,e.delay))break}while((e=r[0])&&e.id===t&&r.shift());if(this._active=!1,n){for(;(e=r[0])&&e.id===t&&r.shift();)e.unsubscribe();throw n}},t}(Qh.AsyncScheduler);Xh.AsapScheduler=om,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.asap=e.asapScheduler=void 0,e.asapScheduler=new Xh.AsapScheduler(Mh.AsapAction),e.asap=e.asapScheduler}(Ph);var im={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.async=e.asyncScheduler=void 0,e.asyncScheduler=new Qh.AsyncScheduler(Dh.AsyncAction),e.async=e.asyncScheduler}(im);var sm={},lm={},cm=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(lm,"__esModule",{value:!0}),lm.QueueAction=void 0,lm.QueueAction=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return cm(t,e),t.prototype.schedule=function(t,n){return void 0===n&&(n=0),n>0?e.prototype.schedule.call(this,t,n):(this.delay=n,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,n){return n>0||this.closed?e.prototype.execute.call(this,t,n):this._execute(t,n)},t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!=r&&r>0||null==r&&this.delay>0?e.prototype.requestAsyncId.call(this,t,n,r):(t.flush(this),0)},t}(Dh.AsyncAction);var um={},dm=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(um,"__esModule",{value:!0}),um.QueueScheduler=void 0;var fm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return dm(t,e),t}(Qh.AsyncScheduler);um.QueueScheduler=fm,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.queue=e.queueScheduler=void 0,e.queueScheduler=new um.QueueScheduler(lm.QueueAction),e.queue=e.queueScheduler}(sm);var pm={},hm={},mm=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(hm,"__esModule",{value:!0}),hm.AnimationFrameAction=void 0;var gm=ih;hm.AnimationFrameAction=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return mm(t,e),t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t._scheduled||(t._scheduled=gm.animationFrameProvider.requestAnimationFrame((function(){return t.flush(void 0)}))))},t.prototype.recycleAsyncId=function(t,n,r){var a;if(void 0===r&&(r=0),null!=r?r>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);var o=t.actions;null!=n&&(null===(a=o[o.length-1])||void 0===a?void 0:a.id)!==n&&(gm.animationFrameProvider.cancelAnimationFrame(n),t._scheduled=void 0)},t}(Dh.AsyncAction);var ym={},vm=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(ym,"__esModule",{value:!0}),ym.AnimationFrameScheduler=void 0;var bm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return vm(t,e),t.prototype.flush=function(e){this._active=!0;var t=this._scheduled;this._scheduled=void 0;var n,r=this.actions;e=e||r.shift();do{if(n=e.execute(e.state,e.delay))break}while((e=r[0])&&e.id===t&&r.shift());if(this._active=!1,n){for(;(e=r[0])&&e.id===t&&r.shift();)e.unsubscribe();throw n}},t}(Qh.AsyncScheduler);ym.AnimationFrameScheduler=bm,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.animationFrame=e.animationFrameScheduler=void 0,e.animationFrameScheduler=new ym.AnimationFrameScheduler(hm.AnimationFrameAction),e.animationFrame=e.animationFrameScheduler}(pm);var _m={},wm=M&&M.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(_m,"__esModule",{value:!0}),_m.VirtualAction=_m.VirtualTimeScheduler=void 0;var xm=Dh,Sm=ap;_m.VirtualTimeScheduler=function(e){function t(t,n){void 0===t&&(t=Em),void 0===n&&(n=Infinity);var r=e.call(this,t,(function(){return r.frame}))||this;return r.maxFrames=n,r.frame=0,r.index=-1,r}return wm(t,e),t.prototype.flush=function(){for(var e,t,n=this.actions,r=this.maxFrames;(t=n[0])&&t.delay<=r&&(n.shift(),this.frame=t.delay,!(e=t.execute(t.state,t.delay))););if(e){for(;t=n.shift();)t.unsubscribe();throw e}},t.frameTimeFactor=10,t}(Qh.AsyncScheduler);var Em=function(e){function t(t,n,r){void 0===r&&(r=t.index+=1);var a=e.call(this,t,n)||this;return a.scheduler=t,a.work=n,a.index=r,a.active=!0,a.index=t.index=r,a}return wm(t,e),t.prototype.schedule=function(n,r){if(void 0===r&&(r=0),Number.isFinite(r)){if(!this.id)return e.prototype.schedule.call(this,n,r);this.active=!1;var a=new t(this.scheduler,this.work);return this.add(a),a.schedule(n,r)}return Sm.Subscription.EMPTY},t.prototype.requestAsyncId=function(e,n,r){void 0===r&&(r=0),this.delay=e.frame+r;var a=e.actions;return a.push(this),a.sort(t.sortActions),1},t.prototype.recycleAsyncId=function(e,t,n){},t.prototype._execute=function(t,n){if(!0===this.active)return e.prototype._execute.call(this,t,n)},t.sortActions=function(e,t){return e.delay===t.delay?e.index===t.index?0:e.index>t.index?1:-1:e.delay>t.delay?1:-1},t}(xm.AsyncAction);_m.VirtualAction=Em;var km={},Cm={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.empty=e.EMPTY=void 0;var t=tp;e.EMPTY=new t.Observable((function(e){return e.complete()})),e.empty=function(n){return n?function(e){return new t.Observable((function(t){return e.schedule((function(){return t.complete()}))}))}(n):e.EMPTY}}(Cm);var Am={},Om={},Tm={};Object.defineProperty(Tm,"__esModule",{value:!0}),Tm.isScheduler=void 0;var Nm=rp;Tm.isScheduler=function(e){return e&&Nm.isFunction(e.schedule)},Object.defineProperty(Om,"__esModule",{value:!0}),Om.popNumber=Om.popScheduler=Om.popResultSelector=void 0;var Im=rp,Rm=Tm;function Fm(e){return e[e.length-1]}Om.popResultSelector=function(e){return Im.isFunction(Fm(e))?e.pop():void 0},Om.popScheduler=function(e){return Rm.isScheduler(Fm(e))?e.pop():void 0},Om.popNumber=function(e,t){return"number"==typeof Fm(e)?e.pop():t};var Pm={},Mm={},Dm={},jm={},Lm={};Object.defineProperty(Lm,"__esModule",{value:!0}),Lm.isArrayLike=void 0,Lm.isArrayLike=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};var qm={};Object.defineProperty(qm,"__esModule",{value:!0}),qm.isPromise=void 0;var Bm=rp;qm.isPromise=function(e){return Bm.isFunction(null==e?void 0:e.then)};var Um={};Object.defineProperty(Um,"__esModule",{value:!0}),Um.isInteropObservable=void 0;var zm=Ap,Gm=rp;Um.isInteropObservable=function(e){return Gm.isFunction(e[zm.observable])};var Hm={};Object.defineProperty(Hm,"__esModule",{value:!0}),Hm.isAsyncIterable=void 0;var $m=rp;Hm.isAsyncIterable=function(e){return Symbol.asyncIterator&&$m.isFunction(null==e?void 0:e[Symbol.asyncIterator])};var Vm={};Object.defineProperty(Vm,"__esModule",{value:!0}),Vm.createInvalidObservableTypeError=void 0,Vm.createInvalidObservableTypeError=function(e){return new TypeError("You provided "+(null!==e&&"object"===W(e)?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")};var Wm={},Jm={};function Ym(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}Object.defineProperty(Jm,"__esModule",{value:!0}),Jm.iterator=Jm.getSymbolIterator=void 0,Jm.getSymbolIterator=Ym,Jm.iterator=Ym(),Object.defineProperty(Wm,"__esModule",{value:!0}),Wm.isIterable=void 0;var Km=Jm,Zm=rp;Wm.isIterable=function(e){return Zm.isFunction(null==e?void 0:e[Km.iterator])};var Xm={},Qm=M&&M.__generator||function(e,t){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!((a=(a=i.trys).length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],r=0}finally{n=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},eg=M&&M.__await||function(e){return this instanceof eg?(this.v=e,this):new eg(e)},tg=M&&M.__asyncGenerator||function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,a=n.apply(e,t||[]),o=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){a[e]&&(r[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||s(e,t)}))})}function s(e,t){try{!function(e){e.value instanceof eg?Promise.resolve(e.value.v).then(l,c):u(o[0][2],e)}(a[e](t))}catch(e){u(o[0][3],e)}}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),o.shift(),o.length&&s(o[0][0],o[0][1])}};Object.defineProperty(Xm,"__esModule",{value:!0}),Xm.isReadableStreamLike=Xm.readableStreamLikeToAsyncGenerator=void 0;var ng=rp;Xm.readableStreamLikeToAsyncGenerator=function(e){return tg(this,arguments,(function(){var t,n,r;return Qm(this,(function(a){switch(a.label){case 0:t=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,eg(t.read())];case 3:return n=a.sent(),r=n.value,n.done?[4,eg(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,eg(r)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))},Xm.isReadableStreamLike=function(e){return ng.isFunction(null==e?void 0:e.getReader)};var rg=M&&M.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){e.done?a(e.value):function(e){return e instanceof n?e:new n((function(t){t(e)}))}(e.value).then(i,s)}l((r=r.apply(e,t||[])).next())}))},ag=M&&M.__generator||function(e,t){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!((a=(a=i.trys).length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],r=0}finally{n=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},og=M&&M.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof ig?ig(e):e[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){!function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}(r,a,(t=e[n](t)).done,t.value)}))}}},ig=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(jm,"__esModule",{value:!0}),jm.fromReadableStreamLike=jm.fromAsyncIterable=jm.fromIterable=jm.fromPromise=jm.fromArrayLike=jm.fromInteropObservable=jm.innerFrom=void 0;var sg=Lm,lg=qm,cg=tp,ug=Um,dg=Hm,fg=Vm,pg=Wm,hg=Xm,mg=rp,gg=yp,yg=Ap;function vg(e){return new cg.Observable((function(t){var n=e[yg.observable]();if(mg.isFunction(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")}))}function bg(e){return new cg.Observable((function(t){for(var n=0;n<e.length&&!t.closed;n++)t.next(e[n]);t.complete()}))}function _g(e){return new cg.Observable((function(t){e.then((function(e){t.closed||(t.next(e),t.complete())}),(function(e){return t.error(e)})).then(null,gg.reportUnhandledError)}))}function wg(e){return new cg.Observable((function(t){var n,r;try{for(var a=ig(e),o=a.next();!o.done;o=a.next())if(t.next(o.value),t.closed)return}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}t.complete()}))}function xg(e){return new cg.Observable((function(t){(function(e,t){var n,r,a,o;return rg(this,void 0,void 0,(function(){var i;return ag(this,(function(s){switch(s.label){case 0:s.trys.push([0,5,6,11]),n=og(e),s.label=1;case 1:return[4,n.next()];case 2:if((r=s.sent()).done)return[3,4];if(t.next(r.value),t.closed)return[2];s.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return i=s.sent(),a={error:i},[3,11];case 6:return s.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:s.sent(),s.label=8;case 8:return[3,10];case 9:if(a)throw a.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function Sg(e){return xg(hg.readableStreamLikeToAsyncGenerator(e))}jm.innerFrom=function(e){if(e instanceof cg.Observable)return e;if(null!=e){if(ug.isInteropObservable(e))return vg(e);if(sg.isArrayLike(e))return bg(e);if(lg.isPromise(e))return _g(e);if(dg.isAsyncIterable(e))return xg(e);if(pg.isIterable(e))return wg(e);if(hg.isReadableStreamLike(e))return Sg(e)}throw fg.createInvalidObservableTypeError(e)},jm.fromInteropObservable=vg,jm.fromArrayLike=bg,jm.fromPromise=_g,jm.fromIterable=wg,jm.fromAsyncIterable=xg,jm.fromReadableStreamLike=Sg;var Eg={},kg={};Object.defineProperty(kg,"__esModule",{value:!0}),kg.executeSchedule=void 0,kg.executeSchedule=function(e,t,n,r,a){void 0===r&&(r=0),void 0===a&&(a=!1);var o=t.schedule((function(){n(),a?e.add(this.schedule(null,r)):this.unsubscribe()}),r);if(e.add(o),!a)return o},Object.defineProperty(Eg,"__esModule",{value:!0}),Eg.observeOn=void 0;var Cg=kg,Ag=Gp,Og=Vp;Eg.observeOn=function(e,t){return void 0===t&&(t=0),Ag.operate((function(n,r){n.subscribe(Og.createOperatorSubscriber(r,(function(n){return Cg.executeSchedule(r,e,(function(){return r.next(n)}),t)}),(function(){return Cg.executeSchedule(r,e,(function(){return r.complete()}),t)}),(function(n){return Cg.executeSchedule(r,e,(function(){return r.error(n)}),t)})))}))};var Tg={};Object.defineProperty(Tg,"__esModule",{value:!0}),Tg.subscribeOn=void 0;var Ng=Gp;Tg.subscribeOn=function(e,t){return void 0===t&&(t=0),Ng.operate((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))},Object.defineProperty(Dm,"__esModule",{value:!0}),Dm.scheduleObservable=void 0;var Ig=jm,Rg=Eg,Fg=Tg;Dm.scheduleObservable=function(e,t){return Ig.innerFrom(e).pipe(Fg.subscribeOn(t),Rg.observeOn(t))};var Pg={};Object.defineProperty(Pg,"__esModule",{value:!0}),Pg.schedulePromise=void 0;var Mg=jm,Dg=Eg,jg=Tg;Pg.schedulePromise=function(e,t){return Mg.innerFrom(e).pipe(jg.subscribeOn(t),Dg.observeOn(t))};var Lg={};Object.defineProperty(Lg,"__esModule",{value:!0}),Lg.scheduleArray=void 0;var qg=tp;Lg.scheduleArray=function(e,t){return new qg.Observable((function(n){var r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))}))};var Bg={};Object.defineProperty(Bg,"__esModule",{value:!0}),Bg.scheduleIterable=void 0;var Ug=tp,zg=Jm,Gg=rp,Hg=kg;Bg.scheduleIterable=function(e,t){return new Ug.Observable((function(n){var r;return Hg.executeSchedule(n,t,(function(){r=e[zg.iterator](),Hg.executeSchedule(n,t,(function(){var e,t,a;try{t=(e=r.next()).value,a=e.done}catch(e){return void n.error(e)}a?n.complete():n.next(t)}),0,!0)})),function(){return Gg.isFunction(null==r?void 0:r.return)&&r.return()}}))};var $g={};Object.defineProperty($g,"__esModule",{value:!0}),$g.scheduleAsyncIterable=void 0;var Vg=tp,Wg=kg;$g.scheduleAsyncIterable=function(e,t){if(!e)throw new Error("Iterable cannot be null");return new Vg.Observable((function(n){Wg.executeSchedule(n,t,(function(){var r=e[Symbol.asyncIterator]();Wg.executeSchedule(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))};var Jg={};Object.defineProperty(Jg,"__esModule",{value:!0}),Jg.scheduleReadableStreamLike=void 0;var Yg=$g,Kg=Xm;Jg.scheduleReadableStreamLike=function(e,t){return Yg.scheduleAsyncIterable(Kg.readableStreamLikeToAsyncGenerator(e),t)},Object.defineProperty(Mm,"__esModule",{value:!0}),Mm.scheduled=void 0;var Zg=Dm,Xg=Pg,Qg=Lg,ey=Bg,ty=$g,ny=Um,ry=qm,ay=Lm,oy=Wm,iy=Hm,sy=Vm,ly=Xm,cy=Jg;Mm.scheduled=function(e,t){if(null!=e){if(ny.isInteropObservable(e))return Zg.scheduleObservable(e,t);if(ay.isArrayLike(e))return Qg.scheduleArray(e,t);if(ry.isPromise(e))return Xg.schedulePromise(e,t);if(iy.isAsyncIterable(e))return ty.scheduleAsyncIterable(e,t);if(oy.isIterable(e))return ey.scheduleIterable(e,t);if(ly.isReadableStreamLike(e))return cy.scheduleReadableStreamLike(e,t)}throw sy.createInvalidObservableTypeError(e)},Object.defineProperty(Pm,"__esModule",{value:!0}),Pm.from=void 0;var uy=Mm,dy=jm;Pm.from=function(e,t){return t?uy.scheduled(e,t):dy.innerFrom(e)},Object.defineProperty(Am,"__esModule",{value:!0}),Am.of=void 0;var fy=Om,py=Pm;Am.of=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=fy.popScheduler(e);return py.from(e,n)};var hy={};Object.defineProperty(hy,"__esModule",{value:!0}),hy.throwError=void 0;var my=tp,gy=rp;hy.throwError=function(e,t){var n=gy.isFunction(e)?e:function(){return e},r=function(e){return e.error(n())};return new my.Observable(t?function(e){return t.schedule(r,0,e)}:r)},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.observeNotification=e.Notification=e.NotificationKind=void 0;var t,n=Cm,r=Am,a=hy,o=rp;(t=e.NotificationKind||(e.NotificationKind={})).NEXT="N",t.ERROR="E",t.COMPLETE="C";var i=function(){function e(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}return e.prototype.observe=function(e){return s(this,e)},e.prototype.do=function(e,t,n){var r=this,a=r.kind,o=r.error;return"N"===a?null==e?void 0:e(r.value):"E"===a?null==t?void 0:t(o):null==n?void 0:n()},e.prototype.accept=function(e,t,n){var r;return o.isFunction(null===(r=e)||void 0===r?void 0:r.next)?this.observe(e):this.do(e,t,n)},e.prototype.toObservable=function(){var e=this,t=e.kind,o=e.error,i="N"===t?r.of(e.value):"E"===t?a.throwError((function(){return o})):"C"===t?n.EMPTY:0;if(!i)throw new TypeError("Unexpected notification kind "+t);return i},e.createNext=function(t){return new e("N",t)},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e}();function s(e,t){var n,r,a,o=e.kind,i=e.value,s=e.error;if("string"!=typeof o)throw new TypeError('Invalid notification, missing "kind"');"N"===o?null===(n=t.next)||void 0===n||n.call(t,i):"E"===o?null===(r=t.error)||void 0===r||r.call(t,s):null===(a=t.complete)||void 0===a||a.call(t)}e.Notification=i,e.observeNotification=s}(km);var yy={};Object.defineProperty(yy,"__esModule",{value:!0}),yy.isObservable=void 0;var vy=tp,by=rp;yy.isObservable=function(e){return!!e&&(e instanceof vy.Observable||by.isFunction(e.lift)&&by.isFunction(e.subscribe))};var _y={},wy={};Object.defineProperty(wy,"__esModule",{value:!0}),wy.EmptyError=void 0,wy.EmptyError=ip.createErrorClass((function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}})),Object.defineProperty(_y,"__esModule",{value:!0}),_y.lastValueFrom=void 0;var xy=wy;_y.lastValueFrom=function(e,t){var n="object"===W(t);return new Promise((function(r,a){var o,i=!1;e.subscribe({next:function(e){o=e,i=!0},error:a,complete:function(){i?r(o):n?r(t.defaultValue):a(new xy.EmptyError)}})}))};var Sy={};Object.defineProperty(Sy,"__esModule",{value:!0}),Sy.firstValueFrom=void 0;var Ey=wy,ky=np;Sy.firstValueFrom=function(e,t){var n="object"===W(t);return new Promise((function(r,a){var o=new ky.SafeSubscriber({next:function(e){r(e),o.unsubscribe()},error:a,complete:function(){n?r(t.defaultValue):a(new Ey.EmptyError)}});e.subscribe(o)}))};var Cy={};Object.defineProperty(Cy,"__esModule",{value:!0}),Cy.ArgumentOutOfRangeError=void 0,Cy.ArgumentOutOfRangeError=ip.createErrorClass((function(e){return function(){e(this),this.name="ArgumentOutOfRangeError",this.message="argument out of range"}}));var Ay={};Object.defineProperty(Ay,"__esModule",{value:!0}),Ay.NotFoundError=void 0,Ay.NotFoundError=ip.createErrorClass((function(e){return function(t){e(this),this.name="NotFoundError",this.message=t}}));var Oy={};Object.defineProperty(Oy,"__esModule",{value:!0}),Oy.SequenceError=void 0,Oy.SequenceError=ip.createErrorClass((function(e){return function(t){e(this),this.name="SequenceError",this.message=t}}));var Ty={},Ny={};Object.defineProperty(Ny,"__esModule",{value:!0}),Ny.isValidDate=void 0,Ny.isValidDate=function(e){return e instanceof Date&&!isNaN(e)},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.timeout=e.TimeoutError=void 0;var t=im,n=Ny,r=Gp,a=jm,o=Vp,i=kg;function s(t){throw new e.TimeoutError(t)}e.TimeoutError=ip.createErrorClass((function(e){return function(t){void 0===t&&(t=null),e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=t}})),e.timeout=function(e,l){var c=n.isValidDate(e)?{first:e}:"number"==typeof e?{each:e}:e,u=c.first,d=c.each,f=c.with,p=void 0===f?s:f,h=c.scheduler,m=void 0===h?null!=l?l:t.asyncScheduler:h,g=c.meta,y=void 0===g?null:g;if(null==u&&null==d)throw new TypeError("No timeout provided.");return r.operate((function(e,t){var n,r,s=null,l=0,c=function(e){r=i.executeSchedule(t,m,(function(){try{n.unsubscribe(),a.innerFrom(p({meta:y,lastValue:s,seen:l})).subscribe(t)}catch(e){t.error(e)}}),e)};n=e.subscribe(o.createOperatorSubscriber(t,(function(e){null==r||r.unsubscribe(),l++,t.next(s=e),d>0&&c(d)}),void 0,void 0,(function(){(null==r?void 0:r.closed)||null==r||r.unsubscribe(),s=null}))),!l&&c(null!=u?"number"==typeof u?u:+u-m.now():d)}))}}(Ty);var Iy={},Ry={},Fy={},Py={};Object.defineProperty(Py,"__esModule",{value:!0}),Py.map=void 0;var My=Gp,Dy=Vp;Py.map=function(e,t){return My.operate((function(n,r){var a=0;n.subscribe(Dy.createOperatorSubscriber(r,(function(n){r.next(e.call(t,n,a++))})))}))};var jy=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},Ly=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(Fy,"__esModule",{value:!0}),Fy.mapOneOrManyArgs=void 0;var qy=Py,By=Array.isArray;Fy.mapOneOrManyArgs=function(e){return qy.map((function(t){return function(e,t){return By(t)?e.apply(void 0,Ly([],jy(t))):e(t)}(e,t)}))};var Uy=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},zy=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(Ry,"__esModule",{value:!0}),Ry.bindCallbackInternals=void 0;var Gy=Tm,Hy=tp,$y=Tg,Vy=Fy,Wy=Eg,Jy=Ih;Ry.bindCallbackInternals=function e(t,n,r,a){if(r){if(!Gy.isScheduler(r))return function(){for(var o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return e(t,n,a).apply(this,o).pipe(Vy.mapOneOrManyArgs(r))};a=r}return a?function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];return e(t,n).apply(this,r).pipe($y.subscribeOn(a),Wy.observeOn(a))}:function(){for(var e=this,r=[],a=0;a<arguments.length;a++)r[a]=arguments[a];var o=new Jy.AsyncSubject,i=!0;return new Hy.Observable((function(a){var s=o.subscribe(a);if(i){i=!1;var l=!1,c=!1;n.apply(e,zy(zy([],Uy(r)),[function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(t){var r=e.shift();if(null!=r)return void o.error(r)}o.next(1<e.length?e:e[0]),c=!0,l&&o.complete()}])),c&&o.complete(),l=!0}return s}))}},Object.defineProperty(Iy,"__esModule",{value:!0}),Iy.bindCallback=void 0;var Yy=Ry;Iy.bindCallback=function(e,t,n){return Yy.bindCallbackInternals(!1,e,t,n)};var Ky={};Object.defineProperty(Ky,"__esModule",{value:!0}),Ky.bindNodeCallback=void 0;var Zy=Ry;Ky.bindNodeCallback=function(e,t,n){return Zy.bindCallbackInternals(!0,e,t,n)};var Xy={},Qy={};Object.defineProperty(Qy,"__esModule",{value:!0}),Qy.argsArgArrayOrObject=void 0;var ev=Array.isArray,tv=Object.getPrototypeOf,nv=Object.prototype,rv=Object.keys;Qy.argsArgArrayOrObject=function(e){if(1===e.length){var t=e[0];if(ev(t))return{args:t,keys:null};if((r=t)&&"object"===W(r)&&tv(r)===nv){var n=rv(t);return{args:n.map((function(e){return t[e]})),keys:n}}}var r;return{args:e,keys:null}};var av={};Object.defineProperty(av,"__esModule",{value:!0}),av.createObject=void 0,av.createObject=function(e,t){return e.reduce((function(e,n,r){return e[n]=t[r],e}),{})},Object.defineProperty(Xy,"__esModule",{value:!0}),Xy.combineLatestInit=Xy.combineLatest=void 0;var ov=tp,iv=Qy,sv=Pm,lv=Tp,cv=Fy,uv=Om,dv=av,fv=Vp,pv=kg;function hv(e,t,n){return void 0===n&&(n=lv.identity),function(r){mv(t,(function(){for(var a=e.length,o=new Array(a),i=a,s=a,l=function(a){mv(t,(function(){var l=sv.from(e[a],t),c=!1;l.subscribe(fv.createOperatorSubscriber(r,(function(e){o[a]=e,c||(c=!0,s--),s||r.next(n(o.slice()))}),(function(){--i||r.complete()})))}),r)},c=0;c<a;c++)l(c)}),r)}}function mv(e,t,n){e?pv.executeSchedule(n,e,t):t()}Xy.combineLatest=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=uv.popScheduler(e),r=uv.popResultSelector(e),a=iv.argsArgArrayOrObject(e),o=a.args,i=a.keys;if(0===o.length)return sv.from([],n);var s=new ov.Observable(hv(o,n,i?function(e){return dv.createObject(i,e)}:lv.identity));return r?s.pipe(cv.mapOneOrManyArgs(r)):s},Xy.combineLatestInit=hv;var gv={},yv={},vv={},bv={},_v={};Object.defineProperty(_v,"__esModule",{value:!0}),_v.mergeInternals=void 0;var wv=jm,xv=kg,Sv=Vp;_v.mergeInternals=function(e,t,n,r,a,o,i,s){var l=[],c=0,u=0,d=!1,f=function(){!d||l.length||c||t.complete()},p=function(e){return c<r?h(e):l.push(e)},h=function e(s){o&&t.next(s),c++;var d=!1;wv.innerFrom(n(s,u++)).subscribe(Sv.createOperatorSubscriber(t,(function(e){null==a||a(e),o?p(e):t.next(e)}),(function(){d=!0}),void 0,(function(){if(d)try{c--;for(var n=function(){var n=l.shift();i?xv.executeSchedule(t,i,(function(){return e(n)})):e(n)};l.length&&c<r;)n();f()}catch(e){t.error(e)}})))};return e.subscribe(Sv.createOperatorSubscriber(t,p,(function(){d=!0,f()}))),function(){null==s||s()}},Object.defineProperty(bv,"__esModule",{value:!0}),bv.mergeMap=void 0;var Ev=Py,kv=jm,Cv=Gp,Av=_v,Ov=rp;bv.mergeMap=function e(t,n,r){return void 0===r&&(r=Infinity),Ov.isFunction(n)?e((function(e,r){return Ev.map((function(t,a){return n(e,t,r,a)}))(kv.innerFrom(t(e,r)))}),r):("number"==typeof n&&(r=n),Cv.operate((function(e,n){return Av.mergeInternals(e,n,t,r)})))},Object.defineProperty(vv,"__esModule",{value:!0}),vv.mergeAll=void 0;var Tv=bv,Nv=Tp;vv.mergeAll=function(e){return void 0===e&&(e=Infinity),Tv.mergeMap(Nv.identity,e)},Object.defineProperty(yv,"__esModule",{value:!0}),yv.concatAll=void 0;var Iv=vv;yv.concatAll=function(){return Iv.mergeAll(1)},Object.defineProperty(gv,"__esModule",{value:!0}),gv.concat=void 0;var Rv=yv,Fv=Om,Pv=Pm;gv.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Rv.concatAll()(Pv.from(e,Fv.popScheduler(e)))};var Mv={},Dv={};Object.defineProperty(Dv,"__esModule",{value:!0}),Dv.defer=void 0;var jv=tp,Lv=jm;Dv.defer=function(e){return new jv.Observable((function(t){Lv.innerFrom(e()).subscribe(t)}))},Object.defineProperty(Mv,"__esModule",{value:!0}),Mv.connectable=void 0;var qv=fh,Bv=tp,Uv=Dv,zv={connector:function(){return new qv.Subject},resetOnDisconnect:!0};Mv.connectable=function(e,t){void 0===t&&(t=zv);var n=null,r=t.connector,a=t.resetOnDisconnect,o=void 0===a||a,i=r(),s=new Bv.Observable((function(e){return i.subscribe(e)}));return s.connect=function(){return n&&!n.closed||(n=Uv.defer((function(){return e})).subscribe(i),o&&n.add((function(){return i=r()}))),n},s};var Gv={};Object.defineProperty(Gv,"__esModule",{value:!0}),Gv.forkJoin=void 0;var Hv=tp,$v=Qy,Vv=jm,Wv=Om,Jv=Vp,Yv=Fy,Kv=av;Gv.forkJoin=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Wv.popResultSelector(e),r=$v.argsArgArrayOrObject(e),a=r.args,o=r.keys,i=new Hv.Observable((function(e){var t=a.length;if(t)for(var n=new Array(t),r=t,i=t,s=function(t){var s=!1;Vv.innerFrom(a[t]).subscribe(Jv.createOperatorSubscriber(e,(function(e){s||(s=!0,i--),n[t]=e}),(function(){return r--}),void 0,(function(){r&&s||(i||e.next(o?Kv.createObject(o,n):n),e.complete())})))},l=0;l<t;l++)s(l);else e.complete()}));return n?i.pipe(Yv.mapOneOrManyArgs(n)):i};var Zv={},Xv=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i};Object.defineProperty(Zv,"__esModule",{value:!0}),Zv.fromEvent=void 0;var Qv=jm,eb=tp,tb=bv,nb=Lm,rb=rp,ab=Fy,ob=["addListener","removeListener"],ib=["addEventListener","removeEventListener"],sb=["on","off"];function lb(e,t){return function(n){return function(r){return e[n](t,r)}}}Zv.fromEvent=function e(t,n,r,a){if(rb.isFunction(r)&&(a=r,r=void 0),a)return e(t,n,r).pipe(ab.mapOneOrManyArgs(a));var o=Xv(function(e){return rb.isFunction(e.addEventListener)&&rb.isFunction(e.removeEventListener)}(t)?ib.map((function(e){return function(a){return t[e](n,a,r)}})):function(e){return rb.isFunction(e.addListener)&&rb.isFunction(e.removeListener)}(t)?ob.map(lb(t,n)):function(e){return rb.isFunction(e.on)&&rb.isFunction(e.off)}(t)?sb.map(lb(t,n)):[],2),i=o[0],s=o[1];if(!i&&nb.isArrayLike(t))return tb.mergeMap((function(t){return e(t,n,r)}))(Qv.innerFrom(t));if(!i)throw new TypeError("Invalid event target");return new eb.Observable((function(e){var t=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.next(1<t.length?t:t[0])};return i(t),function(){return s(t)}}))};var cb={};Object.defineProperty(cb,"__esModule",{value:!0}),cb.fromEventPattern=void 0;var ub=tp,db=rp,fb=Fy;cb.fromEventPattern=function e(t,n,r){return r?e(t,n).pipe(fb.mapOneOrManyArgs(r)):new ub.Observable((function(e){var r=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return e.next(1===t.length?t[0]:t)},a=t(r);return db.isFunction(n)?function(){return n(r,a)}:void 0}))};var pb={},hb=M&&M.__generator||function(e,t){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,r=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!((a=(a=i.trys).length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(6===o[0]&&i.label<a[1]){i.label=a[1],a=o;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(o);break}a[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],r=0}finally{n=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}};Object.defineProperty(pb,"__esModule",{value:!0}),pb.generate=void 0;var mb=Tp,gb=Tm,yb=Dv,vb=Bg;pb.generate=function(e,t,n,r,a){var o,i,s,l;function c(){var e;return hb(this,(function(r){switch(r.label){case 0:e=l,r.label=1;case 1:return t&&!t(e)?[3,4]:[4,s(e)];case 2:r.sent(),r.label=3;case 3:return e=n(e),[3,1];case 4:return[2]}}))}return 1===arguments.length?(l=(o=e).initialState,t=o.condition,n=o.iterate,s=void 0===(i=o.resultSelector)?mb.identity:i,a=o.scheduler):(l=e,!r||gb.isScheduler(r)?(s=mb.identity,a=r):s=r),yb.defer(a?function(){return vb.scheduleIterable(c(),a)}:c)};var bb={};Object.defineProperty(bb,"__esModule",{value:!0}),bb.iif=void 0;var _b=Dv;bb.iif=function(e,t,n){return _b.defer((function(){return e()?t:n}))};var wb={},xb={};Object.defineProperty(xb,"__esModule",{value:!0}),xb.timer=void 0;var Sb=tp,Eb=im,kb=Tm,Cb=Ny;xb.timer=function(e,t,n){void 0===e&&(e=0),void 0===n&&(n=Eb.async);var r=-1;return null!=t&&(kb.isScheduler(t)?n=t:r=t),new Sb.Observable((function(t){var a=Cb.isValidDate(e)?+e-n.now():e;a<0&&(a=0);var o=0;return n.schedule((function(){t.closed||(t.next(o++),0<=r?this.schedule(void 0,r):t.complete())}),a)}))},Object.defineProperty(wb,"__esModule",{value:!0}),wb.interval=void 0;var Ab=im,Ob=xb;wb.interval=function(e,t){return void 0===e&&(e=0),void 0===t&&(t=Ab.asyncScheduler),e<0&&(e=0),Ob.timer(e,e,t)};var Tb={};Object.defineProperty(Tb,"__esModule",{value:!0}),Tb.merge=void 0;var Nb=vv,Ib=jm,Rb=Cm,Fb=Om,Pb=Pm;Tb.merge=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Fb.popScheduler(e),r=Fb.popNumber(e,Infinity),a=e;return a.length?1===a.length?Ib.innerFrom(a[0]):Nb.mergeAll(r)(Pb.from(a,n)):Rb.EMPTY};var Mb={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.never=e.NEVER=void 0,e.NEVER=new tp.Observable(wp.noop),e.never=function(){return e.NEVER}}(Mb);var Db={},jb={};Object.defineProperty(jb,"__esModule",{value:!0}),jb.argsOrArgArray=void 0;var Lb=Array.isArray;jb.argsOrArgArray=function(e){return 1===e.length&&Lb(e[0])?e[0]:e},Object.defineProperty(Db,"__esModule",{value:!0}),Db.onErrorResumeNext=void 0;var qb=tp,Bb=jb,Ub=Vp,zb=wp,Gb=jm;Db.onErrorResumeNext=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Bb.argsOrArgArray(e);return new qb.Observable((function(e){var t=0;!function r(){if(t<n.length){var a=void 0;try{a=Gb.innerFrom(n[t++])}catch(e){return void r()}var o=new Ub.OperatorSubscriber(e,void 0,zb.noop,zb.noop);a.subscribe(o),o.add(r)}else e.complete()}()}))};var Hb={};Object.defineProperty(Hb,"__esModule",{value:!0}),Hb.pairs=void 0;var $b=Pm;Hb.pairs=function(e,t){return $b.from(Object.entries(e),t)};var Vb={},Wb={};Object.defineProperty(Wb,"__esModule",{value:!0}),Wb.not=void 0,Wb.not=function(e,t){return function(n,r){return!e.call(t,n,r)}};var Jb={};Object.defineProperty(Jb,"__esModule",{value:!0}),Jb.filter=void 0;var Yb=Gp,Kb=Vp;Jb.filter=function(e,t){return Yb.operate((function(n,r){var a=0;n.subscribe(Kb.createOperatorSubscriber(r,(function(n){return e.call(t,n,a++)&&r.next(n)})))}))},Object.defineProperty(Vb,"__esModule",{value:!0}),Vb.partition=void 0;var Zb=Wb,Xb=Jb,Qb=jm;Vb.partition=function(e,t,n){return[Xb.filter(t,n)(Qb.innerFrom(e)),Xb.filter(Zb.not(t,n))(Qb.innerFrom(e))]};var e_={};Object.defineProperty(e_,"__esModule",{value:!0}),e_.raceInit=e_.race=void 0;var t_=tp,n_=jm,r_=jb,a_=Vp;function o_(e){return function(t){for(var n=[],r=function(r){n.push(n_.innerFrom(e[r]).subscribe(a_.createOperatorSubscriber(t,(function(e){if(n){for(var a=0;a<n.length;a++)a!==r&&n[a].unsubscribe();n=null}t.next(e)}))))},a=0;n&&!t.closed&&a<e.length;a++)r(a)}}e_.race=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 1===(e=r_.argsOrArgArray(e)).length?n_.innerFrom(e[0]):new t_.Observable(o_(e))},e_.raceInit=o_;var i_={};Object.defineProperty(i_,"__esModule",{value:!0}),i_.range=void 0;var s_=tp,l_=Cm;i_.range=function(e,t,n){if(null==t&&(t=e,e=0),t<=0)return l_.EMPTY;var r=t+e;return new s_.Observable(n?function(t){var a=e;return n.schedule((function(){a<r?(t.next(a++),this.schedule()):t.complete()}))}:function(t){for(var n=e;n<r&&!t.closed;)t.next(n++);t.complete()})};var c_={};Object.defineProperty(c_,"__esModule",{value:!0}),c_.using=void 0;var u_=tp,d_=jm,f_=Cm;c_.using=function(e,t){return new u_.Observable((function(n){var r=e(),a=t(r);return(a?d_.innerFrom(a):f_.EMPTY).subscribe(n),function(){r&&r.unsubscribe()}}))};var p_={},h_=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},m_=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(p_,"__esModule",{value:!0}),p_.zip=void 0;var g_=tp,y_=jm,v_=jb,b_=Cm,__=Vp,w_=Om;p_.zip=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=w_.popResultSelector(e),r=v_.argsOrArgArray(e);return r.length?new g_.Observable((function(e){var t=r.map((function(){return[]})),a=r.map((function(){return!1}));e.add((function(){t=a=null}));for(var o=function(o){y_.innerFrom(r[o]).subscribe(__.createOperatorSubscriber(e,(function(r){if(t[o].push(r),t.every((function(e){return e.length}))){var i=t.map((function(e){return e.shift()}));e.next(n?n.apply(void 0,m_([],h_(i))):i),t.some((function(e,t){return!e.length&&a[t]}))&&e.complete()}}),(function(){a[o]=!0,!t[o].length&&e.complete()})))},i=0;!e.closed&&i<r.length;i++)o(i);return function(){t=a=null}})):b_.EMPTY};var x_={};Object.defineProperty(x_,"__esModule",{value:!0});var S_={};Object.defineProperty(S_,"__esModule",{value:!0}),S_.audit=void 0;var E_=Gp,k_=jm,C_=Vp;S_.audit=function(e){return E_.operate((function(t,n){var r=!1,a=null,o=null,i=!1,s=function(){if(null==o||o.unsubscribe(),o=null,r){r=!1;var e=a;a=null,n.next(e)}i&&n.complete()},l=function(){o=null,i&&n.complete()};t.subscribe(C_.createOperatorSubscriber(n,(function(t){r=!0,a=t,o||k_.innerFrom(e(t)).subscribe(o=C_.createOperatorSubscriber(n,s,l))}),(function(){i=!0,(!r||!o||o.closed)&&n.complete()})))}))};var A_={};Object.defineProperty(A_,"__esModule",{value:!0}),A_.auditTime=void 0;var O_=im,T_=S_,N_=xb;A_.auditTime=function(e,t){return void 0===t&&(t=O_.asyncScheduler),T_.audit((function(){return N_.timer(e,t)}))};var I_={};Object.defineProperty(I_,"__esModule",{value:!0}),I_.buffer=void 0;var R_=Gp,F_=wp,P_=Vp,M_=jm;I_.buffer=function(e){return R_.operate((function(t,n){var r=[];return t.subscribe(P_.createOperatorSubscriber(n,(function(e){return r.push(e)}),(function(){n.next(r),n.complete()}))),M_.innerFrom(e).subscribe(P_.createOperatorSubscriber(n,(function(){var e=r;r=[],n.next(e)}),F_.noop)),function(){r=null}}))};var D_={},j_=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(D_,"__esModule",{value:!0}),D_.bufferCount=void 0;var L_=Gp,q_=Vp,B_=sp;D_.bufferCount=function(e,t){return void 0===t&&(t=null),t=null!=t?t:e,L_.operate((function(n,r){var a=[],o=0;n.subscribe(q_.createOperatorSubscriber(r,(function(n){var i,s,l,c,u=null;o++%t==0&&a.push([]);try{for(var d=j_(a),f=d.next();!f.done;f=d.next())(m=f.value).push(n),e<=m.length&&(u=null!=u?u:[]).push(m)}catch(e){i={error:e}}finally{try{f&&!f.done&&(s=d.return)&&s.call(d)}finally{if(i)throw i.error}}if(u)try{for(var p=j_(u),h=p.next();!h.done;h=p.next()){var m;B_.arrRemove(a,m=h.value),r.next(m)}}catch(e){l={error:e}}finally{try{h&&!h.done&&(c=p.return)&&c.call(p)}finally{if(l)throw l.error}}}),(function(){var e,t;try{for(var n=j_(a),o=n.next();!o.done;o=n.next())r.next(o.value)}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}r.complete()}),void 0,(function(){a=null})))}))};var U_={},z_=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(U_,"__esModule",{value:!0}),U_.bufferTime=void 0;var G_=ap,H_=Gp,$_=Vp,V_=sp,W_=im,J_=Om,Y_=kg;U_.bufferTime=function(e){for(var t,n,r=[],a=1;a<arguments.length;a++)r[a-1]=arguments[a];var o=null!==(t=J_.popScheduler(r))&&void 0!==t?t:W_.asyncScheduler,i=null!==(n=r[0])&&void 0!==n?n:null,s=r[1]||Infinity;return H_.operate((function(t,n){var r=[],a=!1,l=function(e){var t=e.buffer;e.subs.unsubscribe(),V_.arrRemove(r,e),n.next(t),a&&c()},c=function(){if(r){var t=new G_.Subscription;n.add(t);var a={buffer:[],subs:t};r.push(a),Y_.executeSchedule(t,o,(function(){return l(a)}),e)}};null!==i&&i>=0?Y_.executeSchedule(n,o,c,i,!0):a=!0,c();var u=$_.createOperatorSubscriber(n,(function(e){var t,n,a=r.slice();try{for(var o=z_(a),i=o.next();!i.done;i=o.next()){var c=i.value,u=c.buffer;u.push(e),s<=u.length&&l(c)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}}),(function(){for(;null==r?void 0:r.length;)n.next(r.shift().buffer);null==u||u.unsubscribe(),n.complete(),n.unsubscribe()}),void 0,(function(){return r=null}));t.subscribe(u)}))};var K_={},Z_=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(K_,"__esModule",{value:!0}),K_.bufferToggle=void 0;var X_=ap,Q_=Gp,ew=jm,tw=Vp,nw=wp,rw=sp;K_.bufferToggle=function(e,t){return Q_.operate((function(n,r){var a=[];ew.innerFrom(e).subscribe(tw.createOperatorSubscriber(r,(function(e){var n=[];a.push(n);var o=new X_.Subscription;o.add(ew.innerFrom(t(e)).subscribe(tw.createOperatorSubscriber(r,(function(){rw.arrRemove(a,n),r.next(n),o.unsubscribe()}),nw.noop)))}),nw.noop)),n.subscribe(tw.createOperatorSubscriber(r,(function(e){var t,n;try{for(var r=Z_(a),o=r.next();!o.done;o=r.next())o.value.push(e)}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}}),(function(){for(;a.length>0;)r.next(a.shift());r.complete()})))}))};var aw={};Object.defineProperty(aw,"__esModule",{value:!0}),aw.bufferWhen=void 0;var ow=Gp,iw=wp,sw=Vp,lw=jm;aw.bufferWhen=function(e){return ow.operate((function(t,n){var r=null,a=null;!function t(){null==a||a.unsubscribe();var o=r;r=[],o&&n.next(o),lw.innerFrom(e()).subscribe(a=sw.createOperatorSubscriber(n,t,iw.noop))}(),t.subscribe(sw.createOperatorSubscriber(n,(function(e){return null==r?void 0:r.push(e)}),(function(){r&&n.next(r),n.complete()}),void 0,(function(){return r=a=null})))}))};var cw={};Object.defineProperty(cw,"__esModule",{value:!0}),cw.catchError=void 0;var uw=jm,dw=Vp,fw=Gp;cw.catchError=function e(t){return fw.operate((function(n,r){var a,o=null,i=!1;o=n.subscribe(dw.createOperatorSubscriber(r,void 0,void 0,(function(s){a=uw.innerFrom(t(s,e(t)(n))),o?(o.unsubscribe(),o=null,a.subscribe(r)):i=!0}))),i&&(o.unsubscribe(),o=null,a.subscribe(r))}))};var pw={},hw={},mw={},gw={},yw={},vw={};Object.defineProperty(vw,"__esModule",{value:!0}),vw.scanInternals=void 0;var bw=Vp;vw.scanInternals=function(e,t,n,r,a){return function(o,i){var s=n,l=t,c=0;o.subscribe(bw.createOperatorSubscriber(i,(function(t){var n=c++;l=s?e(l,t,n):(s=!0,t),r&&i.next(l)}),a&&function(){s&&i.next(l),i.complete()}))}},Object.defineProperty(yw,"__esModule",{value:!0}),yw.reduce=void 0;var _w=vw,ww=Gp;yw.reduce=function(e,t){return ww.operate(_w.scanInternals(e,t,arguments.length>=2,!1,!0))},Object.defineProperty(gw,"__esModule",{value:!0}),gw.toArray=void 0;var xw=yw,Sw=Gp,Ew=function(e,t){return e.push(t),e};gw.toArray=function(){return Sw.operate((function(e,t){xw.reduce(Ew,[])(e).subscribe(t)}))},Object.defineProperty(mw,"__esModule",{value:!0}),mw.joinAllInternals=void 0;var kw=Tp,Cw=Fy,Aw=Op,Ow=bv,Tw=gw;mw.joinAllInternals=function(e,t){return Aw.pipe(Tw.toArray(),Ow.mergeMap((function(t){return e(t)})),t?Cw.mapOneOrManyArgs(t):kw.identity)},Object.defineProperty(hw,"__esModule",{value:!0}),hw.combineLatestAll=void 0;var Nw=Xy,Iw=mw;hw.combineLatestAll=function(e){return Iw.joinAllInternals(Nw.combineLatest,e)},Object.defineProperty(pw,"__esModule",{value:!0}),pw.combineAll=void 0,pw.combineAll=hw.combineLatestAll;var Rw={},Fw={},Pw=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},Mw=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(Fw,"__esModule",{value:!0}),Fw.combineLatest=void 0;var Dw=Xy,jw=Gp,Lw=jb,qw=Fy,Bw=Op,Uw=Om;Fw.combineLatest=function e(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=Uw.popResultSelector(t);return r?Bw.pipe(e.apply(void 0,Mw([],Pw(t))),qw.mapOneOrManyArgs(r)):jw.operate((function(e,n){Dw.combineLatestInit(Mw([e],Pw(Lw.argsOrArgArray(t))))(n)}))};var zw=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},Gw=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(Rw,"__esModule",{value:!0}),Rw.combineLatestWith=void 0;var Hw=Fw;Rw.combineLatestWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Hw.combineLatest.apply(void 0,Gw([],zw(e)))};var $w={};Object.defineProperty($w,"__esModule",{value:!0}),$w.concatMap=void 0;var Vw=bv,Ww=rp;$w.concatMap=function(e,t){return Ww.isFunction(t)?Vw.mergeMap(e,t,1):Vw.mergeMap(e,1)};var Jw={};Object.defineProperty(Jw,"__esModule",{value:!0}),Jw.concatMapTo=void 0;var Yw=$w,Kw=rp;Jw.concatMapTo=function(e,t){return Kw.isFunction(t)?Yw.concatMap((function(){return e}),t):Yw.concatMap((function(){return e}))};var Zw={},Xw={},Qw=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},ex=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(Xw,"__esModule",{value:!0}),Xw.concat=void 0;var tx=Gp,nx=yv,rx=Om,ax=Pm;Xw.concat=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=rx.popScheduler(e);return tx.operate((function(t,r){nx.concatAll()(ax.from(ex([t],Qw(e)),n)).subscribe(r)}))};var ox=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},ix=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(Zw,"__esModule",{value:!0}),Zw.concatWith=void 0;var sx=Xw;Zw.concatWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return sx.concat.apply(void 0,ix([],ox(e)))};var lx={},cx={};Object.defineProperty(cx,"__esModule",{value:!0}),cx.fromSubscribable=void 0;var ux=tp;cx.fromSubscribable=function(e){return new ux.Observable((function(t){return e.subscribe(t)}))},Object.defineProperty(lx,"__esModule",{value:!0}),lx.connect=void 0;var dx=fh,fx=jm,px=Gp,hx=cx,mx={connector:function(){return new dx.Subject}};lx.connect=function(e,t){void 0===t&&(t=mx);var n=t.connector;return px.operate((function(t,r){var a=n();fx.innerFrom(e(hx.fromSubscribable(a))).subscribe(r),r.add(t.subscribe(a))}))};var gx={};Object.defineProperty(gx,"__esModule",{value:!0}),gx.count=void 0;var yx=yw;gx.count=function(e){return yx.reduce((function(t,n,r){return!e||e(n,r)?t+1:t}),0)};var vx={};Object.defineProperty(vx,"__esModule",{value:!0}),vx.debounce=void 0;var bx=Gp,_x=wp,wx=Vp,xx=jm;vx.debounce=function(e){return bx.operate((function(t,n){var r=!1,a=null,o=null,i=function(){if(null==o||o.unsubscribe(),o=null,r){r=!1;var e=a;a=null,n.next(e)}};t.subscribe(wx.createOperatorSubscriber(n,(function(t){null==o||o.unsubscribe(),r=!0,a=t,o=wx.createOperatorSubscriber(n,i,_x.noop),xx.innerFrom(e(t)).subscribe(o)}),(function(){i(),n.complete()}),void 0,(function(){a=o=null})))}))};var Sx={};Object.defineProperty(Sx,"__esModule",{value:!0}),Sx.debounceTime=void 0;var Ex=im,kx=Gp,Cx=Vp;Sx.debounceTime=function(e,t){return void 0===t&&(t=Ex.asyncScheduler),kx.operate((function(n,r){var a=null,o=null,i=null,s=function(){if(a){a.unsubscribe(),a=null;var e=o;o=null,r.next(e)}};function l(){var n=i+e,o=t.now();if(o<n)return a=this.schedule(void 0,n-o),void r.add(a);s()}n.subscribe(Cx.createOperatorSubscriber(r,(function(n){o=n,i=t.now(),a||(a=t.schedule(l,e),r.add(a))}),(function(){s(),r.complete()}),void 0,(function(){o=a=null})))}))};var Ax={};Object.defineProperty(Ax,"__esModule",{value:!0}),Ax.defaultIfEmpty=void 0;var Ox=Gp,Tx=Vp;Ax.defaultIfEmpty=function(e){return Ox.operate((function(t,n){var r=!1;t.subscribe(Tx.createOperatorSubscriber(n,(function(e){r=!0,n.next(e)}),(function(){r||n.next(e),n.complete()})))}))};var Nx={},Ix={},Rx={};Object.defineProperty(Rx,"__esModule",{value:!0}),Rx.take=void 0;var Fx=Cm,Px=Gp,Mx=Vp;Rx.take=function(e){return e<=0?function(){return Fx.EMPTY}:Px.operate((function(t,n){var r=0;t.subscribe(Mx.createOperatorSubscriber(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))};var Dx={};Object.defineProperty(Dx,"__esModule",{value:!0}),Dx.ignoreElements=void 0;var jx=Gp,Lx=Vp,qx=wp;Dx.ignoreElements=function(){return jx.operate((function(e,t){e.subscribe(Lx.createOperatorSubscriber(t,qx.noop))}))};var Bx={};Object.defineProperty(Bx,"__esModule",{value:!0}),Bx.mapTo=void 0;var Ux=Py;Bx.mapTo=function(e){return Ux.map((function(){return e}))},Object.defineProperty(Ix,"__esModule",{value:!0}),Ix.delayWhen=void 0;var zx=gv,Gx=Rx,Hx=Dx,$x=Bx,Vx=bv,Wx=jm;Ix.delayWhen=function e(t,n){return n?function(r){return zx.concat(n.pipe(Gx.take(1),Hx.ignoreElements()),r.pipe(e(t)))}:Vx.mergeMap((function(e,n){return Wx.innerFrom(t(e,n)).pipe(Gx.take(1),$x.mapTo(e))}))},Object.defineProperty(Nx,"__esModule",{value:!0}),Nx.delay=void 0;var Jx=im,Yx=Ix,Kx=xb;Nx.delay=function(e,t){void 0===t&&(t=Jx.asyncScheduler);var n=Kx.timer(e,t);return Yx.delayWhen((function(){return n}))};var Zx={};Object.defineProperty(Zx,"__esModule",{value:!0}),Zx.dematerialize=void 0;var Xx=km,Qx=Gp,eS=Vp;Zx.dematerialize=function(){return Qx.operate((function(e,t){e.subscribe(eS.createOperatorSubscriber(t,(function(e){return Xx.observeNotification(e,t)})))}))};var tS={};Object.defineProperty(tS,"__esModule",{value:!0}),tS.distinct=void 0;var nS=Gp,rS=Vp,aS=wp,oS=jm;tS.distinct=function(e,t){return nS.operate((function(n,r){var a=new Set;n.subscribe(rS.createOperatorSubscriber(r,(function(t){var n=e?e(t):t;a.has(n)||(a.add(n),r.next(t))}))),t&&oS.innerFrom(t).subscribe(rS.createOperatorSubscriber(r,(function(){return a.clear()}),aS.noop))}))};var iS={};Object.defineProperty(iS,"__esModule",{value:!0}),iS.distinctUntilChanged=void 0;var sS=Tp,lS=Gp,cS=Vp;function uS(e,t){return e===t}iS.distinctUntilChanged=function(e,t){return void 0===t&&(t=sS.identity),e=null!=e?e:uS,lS.operate((function(n,r){var a,o=!0;n.subscribe(cS.createOperatorSubscriber(r,(function(n){var i=t(n);!o&&e(a,i)||(o=!1,a=i,r.next(n))})))}))};var dS={};Object.defineProperty(dS,"__esModule",{value:!0}),dS.distinctUntilKeyChanged=void 0;var fS=iS;dS.distinctUntilKeyChanged=function(e,t){return fS.distinctUntilChanged((function(n,r){return t?t(n[e],r[e]):n[e]===r[e]}))};var pS={},hS={};Object.defineProperty(hS,"__esModule",{value:!0}),hS.throwIfEmpty=void 0;var mS=wy,gS=Gp,yS=Vp;function vS(){return new mS.EmptyError}hS.throwIfEmpty=function(e){return void 0===e&&(e=vS),gS.operate((function(t,n){var r=!1;t.subscribe(yS.createOperatorSubscriber(n,(function(e){r=!0,n.next(e)}),(function(){return r?n.complete():n.error(e())})))}))},Object.defineProperty(pS,"__esModule",{value:!0}),pS.elementAt=void 0;var bS=Cy,_S=Jb,wS=hS,xS=Ax,SS=Rx;pS.elementAt=function(e,t){if(e<0)throw new bS.ArgumentOutOfRangeError;var n=arguments.length>=2;return function(r){return r.pipe(_S.filter((function(t,n){return n===e})),SS.take(1),n?xS.defaultIfEmpty(t):wS.throwIfEmpty((function(){return new bS.ArgumentOutOfRangeError})))}};var ES={},kS=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},CS=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(ES,"__esModule",{value:!0}),ES.endWith=void 0;var AS=gv,OS=Am;ES.endWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return AS.concat(t,OS.of.apply(void 0,CS([],kS(e))))}};var TS={};Object.defineProperty(TS,"__esModule",{value:!0}),TS.every=void 0;var NS=Gp,IS=Vp;TS.every=function(e,t){return NS.operate((function(n,r){var a=0;n.subscribe(IS.createOperatorSubscriber(r,(function(o){e.call(t,o,a++,n)||(r.next(!1),r.complete())}),(function(){r.next(!0),r.complete()})))}))};var RS={},FS={},PS={};Object.defineProperty(PS,"__esModule",{value:!0}),PS.exhaustMap=void 0;var MS=Py,DS=jm,jS=Gp,LS=Vp;PS.exhaustMap=function e(t,n){return n?function(r){return r.pipe(e((function(e,r){return DS.innerFrom(t(e,r)).pipe(MS.map((function(t,a){return n(e,t,r,a)})))})))}:jS.operate((function(e,n){var r=0,a=null,o=!1;e.subscribe(LS.createOperatorSubscriber(n,(function(e){a||(a=LS.createOperatorSubscriber(n,void 0,(function(){a=null,o&&n.complete()})),DS.innerFrom(t(e,r++)).subscribe(a))}),(function(){o=!0,!a&&n.complete()})))}))},Object.defineProperty(FS,"__esModule",{value:!0}),FS.exhaustAll=void 0;var qS=PS,BS=Tp;FS.exhaustAll=function(){return qS.exhaustMap(BS.identity)},Object.defineProperty(RS,"__esModule",{value:!0}),RS.exhaust=void 0,RS.exhaust=FS.exhaustAll;var US={};Object.defineProperty(US,"__esModule",{value:!0}),US.expand=void 0;var zS=Gp,GS=_v;US.expand=function(e,t,n){return void 0===t&&(t=Infinity),t=(t||0)<1?Infinity:t,zS.operate((function(r,a){return GS.mergeInternals(r,a,e,t,void 0,!0,n)}))};var HS={};Object.defineProperty(HS,"__esModule",{value:!0}),HS.finalize=void 0;var $S=Gp;HS.finalize=function(e){return $S.operate((function(t,n){try{t.subscribe(n)}finally{n.add(e)}}))};var VS={};Object.defineProperty(VS,"__esModule",{value:!0}),VS.createFind=VS.find=void 0;var WS=Gp,JS=Vp;function YS(e,t,n){var r="index"===n;return function(n,a){var o=0;n.subscribe(JS.createOperatorSubscriber(a,(function(i){var s=o++;e.call(t,i,s,n)&&(a.next(r?s:i),a.complete())}),(function(){a.next(r?-1:void 0),a.complete()})))}}VS.find=function(e,t){return WS.operate(YS(e,t,"value"))},VS.createFind=YS;var KS={};Object.defineProperty(KS,"__esModule",{value:!0}),KS.findIndex=void 0;var ZS=Gp,XS=VS;KS.findIndex=function(e,t){return ZS.operate(XS.createFind(e,t,"index"))};var QS={};Object.defineProperty(QS,"__esModule",{value:!0}),QS.first=void 0;var eE=wy,tE=Jb,nE=Rx,rE=Ax,aE=hS,oE=Tp;QS.first=function(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?tE.filter((function(t,n){return e(t,n,r)})):oE.identity,nE.take(1),n?rE.defaultIfEmpty(t):aE.throwIfEmpty((function(){return new eE.EmptyError})))}};var iE={};Object.defineProperty(iE,"__esModule",{value:!0}),iE.groupBy=void 0;var sE=tp,lE=jm,cE=fh,uE=Gp,dE=Vp;iE.groupBy=function(e,t,n,r){return uE.operate((function(a,o){var i;t&&"function"!=typeof t?(n=t.duration,i=t.element,r=t.connector):i=t;var s=new Map,l=function(e){s.forEach(e),e(o)},c=function(e){return l((function(t){return t.error(e)}))},u=0,d=!1,f=new dE.OperatorSubscriber(o,(function(t){try{var a=e(t),l=s.get(a);if(!l){s.set(a,l=r?r():new cE.Subject);var p=(m=a,g=l,(y=new sE.Observable((function(e){u++;var t=g.subscribe(e);return function(){t.unsubscribe(),0==--u&&d&&f.unsubscribe()}}))).key=m,y);if(o.next(p),n){var h=dE.createOperatorSubscriber(l,(function(){l.complete(),null==h||h.unsubscribe()}),void 0,void 0,(function(){return s.delete(a)}));f.add(lE.innerFrom(n(p)).subscribe(h))}}l.next(i?i(t):t)}catch(e){c(e)}var m,g,y}),(function(){return l((function(e){return e.complete()}))}),c,(function(){return s.clear()}),(function(){return d=!0,0===u}));a.subscribe(f)}))};var fE={};Object.defineProperty(fE,"__esModule",{value:!0}),fE.isEmpty=void 0;var pE=Gp,hE=Vp;fE.isEmpty=function(){return pE.operate((function(e,t){e.subscribe(hE.createOperatorSubscriber(t,(function(){t.next(!1),t.complete()}),(function(){t.next(!0),t.complete()})))}))};var mE={},gE={},yE=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(gE,"__esModule",{value:!0}),gE.takeLast=void 0;var vE=Cm,bE=Gp,_E=Vp;gE.takeLast=function(e){return e<=0?function(){return vE.EMPTY}:bE.operate((function(t,n){var r=[];t.subscribe(_E.createOperatorSubscriber(n,(function(t){r.push(t),e<r.length&&r.shift()}),(function(){var e,t;try{for(var a=yE(r),o=a.next();!o.done;o=a.next())n.next(o.value)}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}n.complete()}),void 0,(function(){r=null})))}))},Object.defineProperty(mE,"__esModule",{value:!0}),mE.last=void 0;var wE=wy,xE=Jb,SE=gE,EE=hS,kE=Ax,CE=Tp;mE.last=function(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?xE.filter((function(t,n){return e(t,n,r)})):CE.identity,SE.takeLast(1),n?kE.defaultIfEmpty(t):EE.throwIfEmpty((function(){return new wE.EmptyError})))}};var AE={};Object.defineProperty(AE,"__esModule",{value:!0}),AE.materialize=void 0;var OE=km,TE=Gp,NE=Vp;AE.materialize=function(){return TE.operate((function(e,t){e.subscribe(NE.createOperatorSubscriber(t,(function(e){t.next(OE.Notification.createNext(e))}),(function(){t.next(OE.Notification.createComplete()),t.complete()}),(function(e){t.next(OE.Notification.createError(e)),t.complete()})))}))};var IE={};Object.defineProperty(IE,"__esModule",{value:!0}),IE.max=void 0;var RE=yw,FE=rp;IE.max=function(e){return RE.reduce(FE.isFunction(e)?function(t,n){return e(t,n)>0?t:n}:function(e,t){return e>t?e:t})};var PE={};Object.defineProperty(PE,"__esModule",{value:!0}),PE.flatMap=void 0,PE.flatMap=bv.mergeMap;var ME={};Object.defineProperty(ME,"__esModule",{value:!0}),ME.mergeMapTo=void 0;var DE=bv,jE=rp;ME.mergeMapTo=function(e,t,n){return void 0===n&&(n=Infinity),jE.isFunction(t)?DE.mergeMap((function(){return e}),t,n):("number"==typeof t&&(n=t),DE.mergeMap((function(){return e}),n))};var LE={};Object.defineProperty(LE,"__esModule",{value:!0}),LE.mergeScan=void 0;var qE=Gp,BE=_v;LE.mergeScan=function(e,t,n){return void 0===n&&(n=Infinity),qE.operate((function(r,a){var o=t;return BE.mergeInternals(r,a,(function(t,n){return e(o,t,n)}),n,(function(e){o=e}),!1,void 0,(function(){return o=null}))}))};var UE={},zE={},GE=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},HE=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(zE,"__esModule",{value:!0}),zE.merge=void 0;var $E=Gp,VE=jb,WE=vv,JE=Om,YE=Pm;zE.merge=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=JE.popScheduler(e),r=JE.popNumber(e,Infinity);return e=VE.argsOrArgArray(e),$E.operate((function(t,a){WE.mergeAll(r)(YE.from(HE([t],GE(e)),n)).subscribe(a)}))};var KE=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},ZE=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(UE,"__esModule",{value:!0}),UE.mergeWith=void 0;var XE=zE;UE.mergeWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return XE.merge.apply(void 0,ZE([],KE(e)))};var QE={};Object.defineProperty(QE,"__esModule",{value:!0}),QE.min=void 0;var ek=yw,tk=rp;QE.min=function(e){return ek.reduce(tk.isFunction(e)?function(t,n){return e(t,n)<0?t:n}:function(e,t){return e<t?e:t})};var nk={};Object.defineProperty(nk,"__esModule",{value:!0}),nk.multicast=void 0;var rk=Up,ak=rp,ok=lx;nk.multicast=function(e,t){var n=ak.isFunction(e)?e:function(){return e};return ak.isFunction(t)?ok.connect(t,{connector:n}):function(e){return new rk.ConnectableObservable(e,n)}};var ik={},sk=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},lk=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(ik,"__esModule",{value:!0}),ik.onErrorResumeNext=ik.onErrorResumeNextWith=void 0;var ck=jb,uk=Db;function dk(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ck.argsOrArgArray(e);return function(e){return uk.onErrorResumeNext.apply(void 0,lk([e],sk(n)))}}ik.onErrorResumeNextWith=dk,ik.onErrorResumeNext=dk;var fk={};Object.defineProperty(fk,"__esModule",{value:!0}),fk.pairwise=void 0;var pk=Gp,hk=Vp;fk.pairwise=function(){return pk.operate((function(e,t){var n,r=!1;e.subscribe(hk.createOperatorSubscriber(t,(function(e){var a=n;n=e,r&&t.next([a,e]),r=!0})))}))};var mk={};Object.defineProperty(mk,"__esModule",{value:!0}),mk.pluck=void 0;var gk=Py;mk.pluck=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e.length;if(0===n)throw new Error("list of properties cannot be empty.");return gk.map((function(t){for(var r=t,a=0;a<n;a++){var o=null==r?void 0:r[e[a]];if(void 0===o)return;r=o}return r}))};var yk={};Object.defineProperty(yk,"__esModule",{value:!0}),yk.publish=void 0;var vk=fh,bk=nk,_k=lx;yk.publish=function(e){return e?function(t){return _k.connect(e)(t)}:function(e){return bk.multicast(new vk.Subject)(e)}};var wk={};Object.defineProperty(wk,"__esModule",{value:!0}),wk.publishBehavior=void 0;var xk=Sh,Sk=Up;wk.publishBehavior=function(e){return function(t){var n=new xk.BehaviorSubject(e);return new Sk.ConnectableObservable(t,(function(){return n}))}};var Ek={};Object.defineProperty(Ek,"__esModule",{value:!0}),Ek.publishLast=void 0;var kk=Ih,Ck=Up;Ek.publishLast=function(){return function(e){var t=new kk.AsyncSubject;return new Ck.ConnectableObservable(e,(function(){return t}))}};var Ak={};Object.defineProperty(Ak,"__esModule",{value:!0}),Ak.publishReplay=void 0;var Ok=Ch,Tk=nk,Nk=rp;Ak.publishReplay=function(e,t,n,r){n&&!Nk.isFunction(n)&&(r=n);var a=Nk.isFunction(n)?n:void 0;return function(n){return Tk.multicast(new Ok.ReplaySubject(e,t,r),a)(n)}};var Ik={},Rk=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},Fk=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(Ik,"__esModule",{value:!0}),Ik.raceWith=void 0;var Pk=e_,Mk=Gp,Dk=Tp;Ik.raceWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.length?Mk.operate((function(t,n){Pk.raceInit(Fk([t],Rk(e)))(n)})):Dk.identity};var jk={};Object.defineProperty(jk,"__esModule",{value:!0}),jk.repeat=void 0;var Lk=Cm,qk=Gp,Bk=Vp,Uk=jm,zk=xb;jk.repeat=function(e){var t,n,r=Infinity;return null!=e&&("object"===W(e)?(r=void 0===(t=e.count)?Infinity:t,n=e.delay):r=e),r<=0?function(){return Lk.EMPTY}:qk.operate((function(e,t){var a,o=0,i=function(){if(null==a||a.unsubscribe(),a=null,null!=n){var e="number"==typeof n?zk.timer(n):Uk.innerFrom(n(o)),r=Bk.createOperatorSubscriber(t,(function(){r.unsubscribe(),s()}));e.subscribe(r)}else s()},s=function(){var n=!1;a=e.subscribe(Bk.createOperatorSubscriber(t,void 0,(function(){++o<r?a?i():n=!0:t.complete()}))),n&&i()};s()}))};var Gk={};Object.defineProperty(Gk,"__esModule",{value:!0}),Gk.repeatWhen=void 0;var Hk=jm,$k=fh,Vk=Gp,Wk=Vp;Gk.repeatWhen=function(e){return Vk.operate((function(t,n){var r,a,o=!1,i=!1,s=!1,l=function(){return s&&i&&(n.complete(),!0)},c=function(){return a||(a=new $k.Subject,Hk.innerFrom(e(a)).subscribe(Wk.createOperatorSubscriber(n,(function(){r?u():o=!0}),(function(){i=!0,l()})))),a},u=function e(){s=!1,r=t.subscribe(Wk.createOperatorSubscriber(n,void 0,(function(){s=!0,!l()&&c().next()}))),o&&(r.unsubscribe(),r=null,o=!1,e())};u()}))};var Jk={};Object.defineProperty(Jk,"__esModule",{value:!0}),Jk.retry=void 0;var Yk=Gp,Kk=Vp,Zk=Tp,Xk=xb,Qk=jm;Jk.retry=function(e){var t;void 0===e&&(e=Infinity);var n=(t=e&&"object"===W(e)?e:{count:e}).count,r=void 0===n?Infinity:n,a=t.delay,o=t.resetOnSuccess,i=void 0!==o&&o;return r<=0?Zk.identity:Yk.operate((function(e,t){var n,o=0;!function s(){var l=!1;n=e.subscribe(Kk.createOperatorSubscriber(t,(function(e){i&&(o=0),t.next(e)}),void 0,(function(e){if(o++<r){var i=function(){n?(n.unsubscribe(),n=null,s()):l=!0};if(null!=a){var c="number"==typeof a?Xk.timer(a):Qk.innerFrom(a(e,o)),u=Kk.createOperatorSubscriber(t,(function(){u.unsubscribe(),i()}),(function(){t.complete()}));c.subscribe(u)}else i()}else t.error(e)}))),l&&(n.unsubscribe(),n=null,s())}()}))};var eC={};Object.defineProperty(eC,"__esModule",{value:!0}),eC.retryWhen=void 0;var tC=jm,nC=fh,rC=Gp,aC=Vp;eC.retryWhen=function(e){return rC.operate((function(t,n){var r,a,o=!1;!function i(){r=t.subscribe(aC.createOperatorSubscriber(n,void 0,void 0,(function(t){a||(a=new nC.Subject,tC.innerFrom(e(a)).subscribe(aC.createOperatorSubscriber(n,(function(){return r?i():o=!0})))),a&&a.next(t)}))),o&&(r.unsubscribe(),r=null,o=!1,i())}()}))};var oC={};Object.defineProperty(oC,"__esModule",{value:!0}),oC.sample=void 0;var iC=jm,sC=Gp,lC=wp,cC=Vp;oC.sample=function(e){return sC.operate((function(t,n){var r=!1,a=null;t.subscribe(cC.createOperatorSubscriber(n,(function(e){r=!0,a=e}))),iC.innerFrom(e).subscribe(cC.createOperatorSubscriber(n,(function(){if(r){r=!1;var e=a;a=null,n.next(e)}}),lC.noop))}))};var uC={};Object.defineProperty(uC,"__esModule",{value:!0}),uC.sampleTime=void 0;var dC=im,fC=oC,pC=wb;uC.sampleTime=function(e,t){return void 0===t&&(t=dC.asyncScheduler),fC.sample(pC.interval(e,t))};var hC={};Object.defineProperty(hC,"__esModule",{value:!0}),hC.scan=void 0;var mC=Gp,gC=vw;hC.scan=function(e,t){return mC.operate(gC.scanInternals(e,t,arguments.length>=2,!0))};var yC={};Object.defineProperty(yC,"__esModule",{value:!0}),yC.sequenceEqual=void 0;var vC=Gp,bC=Vp,_C=jm;yC.sequenceEqual=function(e,t){return void 0===t&&(t=function(e,t){return e===t}),vC.operate((function(n,r){var a={buffer:[],complete:!1},o={buffer:[],complete:!1},i=function(e){r.next(e),r.complete()},s=function(e,n){var a=bC.createOperatorSubscriber(r,(function(r){var a=n.buffer;0===a.length?n.complete?i(!1):e.buffer.push(r):!t(r,a.shift())&&i(!1)}),(function(){e.complete=!0,n.complete&&i(0===n.buffer.length),null==a||a.unsubscribe()}));return a};n.subscribe(s(a,o)),_C.innerFrom(e).subscribe(s(o,a))}))};var wC={},xC=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},SC=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(wC,"__esModule",{value:!0}),wC.share=void 0;var EC=jm,kC=fh,CC=np,AC=Gp;function OC(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!0!==t){if(!1!==t){var a=new CC.SafeSubscriber({next:function(){a.unsubscribe(),e()}});return EC.innerFrom(t.apply(void 0,SC([],xC(n)))).subscribe(a)}}else e()}wC.share=function(e){void 0===e&&(e={});var t=e.connector,n=void 0===t?function(){return new kC.Subject}:t,r=e.resetOnError,a=void 0===r||r,o=e.resetOnComplete,i=void 0===o||o,s=e.resetOnRefCountZero,l=void 0===s||s;return function(e){var t,r,o,s=0,c=!1,u=!1,d=function(){null==r||r.unsubscribe(),r=void 0},f=function(){d(),t=o=void 0,c=u=!1},p=function(){var e=t;f(),null==e||e.unsubscribe()};return AC.operate((function(e,h){s++,u||c||d();var m=o=null!=o?o:n();h.add((function(){0!=--s||u||c||(r=OC(p,l))})),m.subscribe(h),!t&&s>0&&(t=new CC.SafeSubscriber({next:function(e){return m.next(e)},error:function(e){u=!0,d(),r=OC(f,a,e),m.error(e)},complete:function(){c=!0,d(),r=OC(f,i),m.complete()}}),EC.innerFrom(e).subscribe(t))}))(e)}};var TC={};Object.defineProperty(TC,"__esModule",{value:!0}),TC.shareReplay=void 0;var NC=Ch,IC=wC;TC.shareReplay=function(e,t,n){var r,a,o,i,s=!1;return e&&"object"===W(e)?(i=void 0===(r=e.bufferSize)?Infinity:r,t=void 0===(a=e.windowTime)?Infinity:a,s=void 0!==(o=e.refCount)&&o,n=e.scheduler):i=null!=e?e:Infinity,IC.share({connector:function(){return new NC.ReplaySubject(i,t,n)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})};var RC={};Object.defineProperty(RC,"__esModule",{value:!0}),RC.single=void 0;var FC=wy,PC=Oy,MC=Ay,DC=Gp,jC=Vp;RC.single=function(e){return DC.operate((function(t,n){var r,a=!1,o=!1,i=0;t.subscribe(jC.createOperatorSubscriber(n,(function(s){o=!0,e&&!e(s,i++,t)||(a&&n.error(new PC.SequenceError("Too many matching values")),a=!0,r=s)}),(function(){a?(n.next(r),n.complete()):n.error(o?new MC.NotFoundError("No matching values"):new FC.EmptyError)})))}))};var LC={};Object.defineProperty(LC,"__esModule",{value:!0}),LC.skip=void 0;var qC=Jb;LC.skip=function(e){return qC.filter((function(t,n){return e<=n}))};var BC={};Object.defineProperty(BC,"__esModule",{value:!0}),BC.skipLast=void 0;var UC=Tp,zC=Gp,GC=Vp;BC.skipLast=function(e){return e<=0?UC.identity:zC.operate((function(t,n){var r=new Array(e),a=0;return t.subscribe(GC.createOperatorSubscriber(n,(function(t){var o=a++;if(o<e)r[o]=t;else{var i=o%e,s=r[i];r[i]=t,n.next(s)}}))),function(){r=null}}))};var HC={};Object.defineProperty(HC,"__esModule",{value:!0}),HC.skipUntil=void 0;var $C=Gp,VC=Vp,WC=jm,JC=wp;HC.skipUntil=function(e){return $C.operate((function(t,n){var r=!1,a=VC.createOperatorSubscriber(n,(function(){null==a||a.unsubscribe(),r=!0}),JC.noop);WC.innerFrom(e).subscribe(a),t.subscribe(VC.createOperatorSubscriber(n,(function(e){return r&&n.next(e)})))}))};var YC={};Object.defineProperty(YC,"__esModule",{value:!0}),YC.skipWhile=void 0;var KC=Gp,ZC=Vp;YC.skipWhile=function(e){return KC.operate((function(t,n){var r=!1,a=0;t.subscribe(ZC.createOperatorSubscriber(n,(function(t){return(r||(r=!e(t,a++)))&&n.next(t)})))}))};var XC={};Object.defineProperty(XC,"__esModule",{value:!0}),XC.startWith=void 0;var QC=gv,eA=Om,tA=Gp;XC.startWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=eA.popScheduler(e);return tA.operate((function(t,r){(n?QC.concat(e,t,n):QC.concat(e,t)).subscribe(r)}))};var nA={},rA={};Object.defineProperty(rA,"__esModule",{value:!0}),rA.switchMap=void 0;var aA=jm,oA=Gp,iA=Vp;rA.switchMap=function(e,t){return oA.operate((function(n,r){var a=null,o=0,i=!1,s=function(){return i&&!a&&r.complete()};n.subscribe(iA.createOperatorSubscriber(r,(function(n){null==a||a.unsubscribe();var i=0,l=o++;aA.innerFrom(e(n,l)).subscribe(a=iA.createOperatorSubscriber(r,(function(e){return r.next(t?t(n,e,l,i++):e)}),(function(){a=null,s()})))}),(function(){i=!0,s()})))}))},Object.defineProperty(nA,"__esModule",{value:!0}),nA.switchAll=void 0;var sA=rA,lA=Tp;nA.switchAll=function(){return sA.switchMap(lA.identity)};var cA={};Object.defineProperty(cA,"__esModule",{value:!0}),cA.switchMapTo=void 0;var uA=rA,dA=rp;cA.switchMapTo=function(e,t){return dA.isFunction(t)?uA.switchMap((function(){return e}),t):uA.switchMap((function(){return e}))};var fA={};Object.defineProperty(fA,"__esModule",{value:!0}),fA.switchScan=void 0;var pA=rA,hA=Gp;fA.switchScan=function(e,t){return hA.operate((function(n,r){var a=t;return pA.switchMap((function(t,n){return e(a,t,n)}),(function(e,t){return a=t,t}))(n).subscribe(r),function(){a=null}}))};var mA={};Object.defineProperty(mA,"__esModule",{value:!0}),mA.takeUntil=void 0;var gA=Gp,yA=Vp,vA=jm,bA=wp;mA.takeUntil=function(e){return gA.operate((function(t,n){vA.innerFrom(e).subscribe(yA.createOperatorSubscriber(n,(function(){return n.complete()}),bA.noop)),!n.closed&&t.subscribe(n)}))};var _A={};Object.defineProperty(_A,"__esModule",{value:!0}),_A.takeWhile=void 0;var wA=Gp,xA=Vp;_A.takeWhile=function(e,t){return void 0===t&&(t=!1),wA.operate((function(n,r){var a=0;n.subscribe(xA.createOperatorSubscriber(r,(function(n){var o=e(n,a++);(o||t)&&r.next(n),!o&&r.complete()})))}))};var SA={};Object.defineProperty(SA,"__esModule",{value:!0}),SA.tap=void 0;var EA=rp,kA=Gp,CA=Vp,AA=Tp;SA.tap=function(e,t,n){var r=EA.isFunction(e)||t||n?{next:e,error:t,complete:n}:e;return r?kA.operate((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var a=!0;e.subscribe(CA.createOperatorSubscriber(t,(function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)}),(function(){var e;a=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()}),(function(e){var n;a=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)}),(function(){var e,t;a&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)})))})):AA.identity};var OA={};Object.defineProperty(OA,"__esModule",{value:!0}),OA.throttle=void 0;var TA=Gp,NA=Vp,IA=jm;OA.throttle=function(e,t){return TA.operate((function(n,r){var a=null!=t?t:{},o=a.leading,i=void 0===o||o,s=a.trailing,l=void 0!==s&&s,c=!1,u=null,d=null,f=!1,p=function(){null==d||d.unsubscribe(),d=null,l&&(g(),f&&r.complete())},h=function(){d=null,f&&r.complete()},m=function(t){return d=IA.innerFrom(e(t)).subscribe(NA.createOperatorSubscriber(r,p,h))},g=function(){if(c){c=!1;var e=u;u=null,r.next(e),!f&&m(e)}};n.subscribe(NA.createOperatorSubscriber(r,(function(e){c=!0,u=e,(!d||d.closed)&&(i?g():m(e))}),(function(){f=!0,(!(l&&c&&d)||d.closed)&&r.complete()})))}))};var RA={};Object.defineProperty(RA,"__esModule",{value:!0}),RA.throttleTime=void 0;var FA=im,PA=OA,MA=xb;RA.throttleTime=function(e,t,n){void 0===t&&(t=FA.asyncScheduler);var r=MA.timer(e,t);return PA.throttle((function(){return r}),n)};var DA={};Object.defineProperty(DA,"__esModule",{value:!0}),DA.TimeInterval=DA.timeInterval=void 0;var jA=im,LA=Gp,qA=Vp;DA.timeInterval=function(e){return void 0===e&&(e=jA.asyncScheduler),LA.operate((function(t,n){var r=e.now();t.subscribe(qA.createOperatorSubscriber(n,(function(t){var a=e.now(),o=a-r;r=a,n.next(new BA(t,o))})))}))};var BA=function(){return function(e,t){this.value=e,this.interval=t}}();DA.TimeInterval=BA;var UA={};Object.defineProperty(UA,"__esModule",{value:!0}),UA.timeoutWith=void 0;var zA=im,GA=Ny,HA=Ty;UA.timeoutWith=function(e,t,n){var r,a,o;if(n=null!=n?n:zA.async,GA.isValidDate(e)?r=e:"number"==typeof e&&(a=e),!t)throw new TypeError("No observable provided to switch to");if(o=function(){return t},null==r&&null==a)throw new TypeError("No timeout provided.");return HA.timeout({first:r,each:a,scheduler:n,with:o})};var $A={};Object.defineProperty($A,"__esModule",{value:!0}),$A.timestamp=void 0;var VA=Ah,WA=Py;$A.timestamp=function(e){return void 0===e&&(e=VA.dateTimestampProvider),WA.map((function(t){return{value:t,timestamp:e.now()}}))};var JA={};Object.defineProperty(JA,"__esModule",{value:!0}),JA.window=void 0;var YA=fh,KA=Gp,ZA=Vp,XA=wp,QA=jm;JA.window=function(e){return KA.operate((function(t,n){var r=new YA.Subject;n.next(r.asObservable());var a=function(e){r.error(e),n.error(e)};return t.subscribe(ZA.createOperatorSubscriber(n,(function(e){return null==r?void 0:r.next(e)}),(function(){r.complete(),n.complete()}),a)),QA.innerFrom(e).subscribe(ZA.createOperatorSubscriber(n,(function(){r.complete(),n.next(r=new YA.Subject)}),XA.noop,a)),function(){null==r||r.unsubscribe(),r=null}}))};var eO={},tO=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(eO,"__esModule",{value:!0}),eO.windowCount=void 0;var nO=fh,rO=Gp,aO=Vp;eO.windowCount=function(e,t){void 0===t&&(t=0);var n=t>0?t:e;return rO.operate((function(t,r){var a=[new nO.Subject],o=0;r.next(a[0].asObservable()),t.subscribe(aO.createOperatorSubscriber(r,(function(t){var i,s;try{for(var l=tO(a),c=l.next();!c.done;c=l.next())c.value.next(t)}catch(e){i={error:e}}finally{try{c&&!c.done&&(s=l.return)&&s.call(l)}finally{if(i)throw i.error}}var u=o-e+1;if(u>=0&&u%n==0&&a.shift().complete(),++o%n==0){var d=new nO.Subject;a.push(d),r.next(d.asObservable())}}),(function(){for(;a.length>0;)a.shift().complete();r.complete()}),(function(e){for(;a.length>0;)a.shift().error(e);r.error(e)}),(function(){a=null})))}))};var oO={};Object.defineProperty(oO,"__esModule",{value:!0}),oO.windowTime=void 0;var iO=fh,sO=im,lO=ap,cO=Gp,uO=Vp,dO=sp,fO=Om,pO=kg;oO.windowTime=function(e){for(var t,n,r=[],a=1;a<arguments.length;a++)r[a-1]=arguments[a];var o=null!==(t=fO.popScheduler(r))&&void 0!==t?t:sO.asyncScheduler,i=null!==(n=r[0])&&void 0!==n?n:null,s=r[1]||Infinity;return cO.operate((function(t,n){var r=[],a=!1,l=function(e){var t=e.subs;e.window.complete(),t.unsubscribe(),dO.arrRemove(r,e),a&&c()},c=function(){if(r){var t=new lO.Subscription;n.add(t);var a=new iO.Subject,i={window:a,subs:t,seen:0};r.push(i),n.next(a.asObservable()),pO.executeSchedule(t,o,(function(){return l(i)}),e)}};null!==i&&i>=0?pO.executeSchedule(n,o,c,i,!0):a=!0,c();var u=function(e){return r.slice().forEach(e)},d=function(e){u((function(t){return e(t.window)})),e(n),n.unsubscribe()};return t.subscribe(uO.createOperatorSubscriber(n,(function(e){u((function(t){t.window.next(e),s<=++t.seen&&l(t)}))}),(function(){return d((function(e){return e.complete()}))}),(function(e){return d((function(t){return t.error(e)}))}))),function(){r=null}}))};var hO={},mO=M&&M.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(hO,"__esModule",{value:!0}),hO.windowToggle=void 0;var gO=fh,yO=ap,vO=Gp,bO=jm,_O=Vp,wO=wp,xO=sp;hO.windowToggle=function(e,t){return vO.operate((function(n,r){var a=[],o=function(e){for(;0<a.length;)a.shift().error(e);r.error(e)};bO.innerFrom(e).subscribe(_O.createOperatorSubscriber(r,(function(e){var n=new gO.Subject;a.push(n);var i,s=new yO.Subscription;try{i=bO.innerFrom(t(e))}catch(e){return void o(e)}r.next(n.asObservable()),s.add(i.subscribe(_O.createOperatorSubscriber(r,(function(){xO.arrRemove(a,n),n.complete(),s.unsubscribe()}),wO.noop,o)))}),wO.noop)),n.subscribe(_O.createOperatorSubscriber(r,(function(e){var t,n,r=a.slice();try{for(var o=mO(r),i=o.next();!i.done;i=o.next())i.value.next(e)}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}}),(function(){for(;0<a.length;)a.shift().complete();r.complete()}),o,(function(){for(;0<a.length;)a.shift().unsubscribe()})))}))};var SO={};Object.defineProperty(SO,"__esModule",{value:!0}),SO.windowWhen=void 0;var EO=fh,kO=Gp,CO=Vp,AO=jm;SO.windowWhen=function(e){return kO.operate((function(t,n){var r,a,o=function(e){r.error(e),n.error(e)};!function t(){var i;null==a||a.unsubscribe(),null==r||r.complete(),r=new EO.Subject,n.next(r.asObservable());try{i=AO.innerFrom(e())}catch(e){return void o(e)}i.subscribe(a=CO.createOperatorSubscriber(n,t,t,o))}(),t.subscribe(CO.createOperatorSubscriber(n,(function(e){return r.next(e)}),(function(){r.complete(),n.complete()}),o,(function(){null==a||a.unsubscribe(),r=null})))}))};var OO={},TO=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},NO=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(OO,"__esModule",{value:!0}),OO.withLatestFrom=void 0;var IO=Gp,RO=Vp,FO=jm,PO=Tp,MO=wp,DO=Om;OO.withLatestFrom=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=DO.popResultSelector(e);return IO.operate((function(t,r){for(var a=e.length,o=new Array(a),i=e.map((function(){return!1})),s=!1,l=function(t){FO.innerFrom(e[t]).subscribe(RO.createOperatorSubscriber(r,(function(e){o[t]=e,s||i[t]||(i[t]=!0,(s=i.every(PO.identity))&&(i=null))}),MO.noop))},c=0;c<a;c++)l(c);t.subscribe(RO.createOperatorSubscriber(r,(function(e){if(s){var t=NO([e],TO(o));r.next(n?n.apply(void 0,NO([],TO(t))):t)}})))}))};var jO={};Object.defineProperty(jO,"__esModule",{value:!0}),jO.zipAll=void 0;var LO=p_,qO=mw;jO.zipAll=function(e){return qO.joinAllInternals(LO.zip,e)};var BO={},UO={},zO=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},GO=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(UO,"__esModule",{value:!0}),UO.zip=void 0;var HO=p_,$O=Gp;UO.zip=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return $O.operate((function(t,n){HO.zip.apply(void 0,GO([t],zO(e))).subscribe(n)}))};var VO=M&&M.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},WO=M&&M.__spreadArray||function(e,t){for(var n=0,r=t.length,a=e.length;n<r;n++,a++)e[a]=t[n];return e};Object.defineProperty(BO,"__esModule",{value:!0}),BO.zipWith=void 0;var JO=UO;BO.zipWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return JO.zip.apply(void 0,WO([],VO(e)))},function(e){var t=M&&M.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=M&&M.__exportStar||function(e,n){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(n,r)||t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.interval=e.iif=e.generate=e.fromEventPattern=e.fromEvent=e.from=e.forkJoin=e.empty=e.defer=e.connectable=e.concat=e.combineLatest=e.bindNodeCallback=e.bindCallback=e.UnsubscriptionError=e.TimeoutError=e.SequenceError=e.ObjectUnsubscribedError=e.NotFoundError=e.EmptyError=e.ArgumentOutOfRangeError=e.firstValueFrom=e.lastValueFrom=e.isObservable=e.identity=e.noop=e.pipe=e.NotificationKind=e.Notification=e.Subscriber=e.Subscription=e.Scheduler=e.VirtualAction=e.VirtualTimeScheduler=e.animationFrameScheduler=e.animationFrame=e.queueScheduler=e.queue=e.asyncScheduler=e.async=e.asapScheduler=e.asap=e.AsyncSubject=e.ReplaySubject=e.BehaviorSubject=e.Subject=e.animationFrames=e.observable=e.ConnectableObservable=e.Observable=void 0,e.filter=e.expand=e.exhaustMap=e.exhaustAll=e.exhaust=e.every=e.endWith=e.elementAt=e.distinctUntilKeyChanged=e.distinctUntilChanged=e.distinct=e.dematerialize=e.delayWhen=e.delay=e.defaultIfEmpty=e.debounceTime=e.debounce=e.count=e.connect=e.concatWith=e.concatMapTo=e.concatMap=e.concatAll=e.combineLatestWith=e.combineLatestAll=e.combineAll=e.catchError=e.bufferWhen=e.bufferToggle=e.bufferTime=e.bufferCount=e.buffer=e.auditTime=e.audit=e.config=e.NEVER=e.EMPTY=e.scheduled=e.zip=e.using=e.timer=e.throwError=e.range=e.race=e.partition=e.pairs=e.onErrorResumeNext=e.of=e.never=e.merge=void 0,e.switchMap=e.switchAll=e.subscribeOn=e.startWith=e.skipWhile=e.skipUntil=e.skipLast=e.skip=e.single=e.shareReplay=e.share=e.sequenceEqual=e.scan=e.sampleTime=e.sample=e.refCount=e.retryWhen=e.retry=e.repeatWhen=e.repeat=e.reduce=e.raceWith=e.publishReplay=e.publishLast=e.publishBehavior=e.publish=e.pluck=e.pairwise=e.onErrorResumeNextWith=e.observeOn=e.multicast=e.min=e.mergeWith=e.mergeScan=e.mergeMapTo=e.mergeMap=e.flatMap=e.mergeAll=e.max=e.materialize=e.mapTo=e.map=e.last=e.isEmpty=e.ignoreElements=e.groupBy=e.first=e.findIndex=e.find=e.finalize=void 0,e.zipWith=e.zipAll=e.withLatestFrom=e.windowWhen=e.windowToggle=e.windowTime=e.windowCount=e.window=e.toArray=e.timestamp=e.timeoutWith=e.timeout=e.timeInterval=e.throwIfEmpty=e.throttleTime=e.throttle=e.tap=e.takeWhile=e.takeUntil=e.takeLast=e.take=e.switchScan=e.switchMapTo=void 0;var r=tp;Object.defineProperty(e,"Observable",{enumerable:!0,get:function(){return r.Observable}});var a=Up;Object.defineProperty(e,"ConnectableObservable",{enumerable:!0,get:function(){return a.ConnectableObservable}});var o=Ap;Object.defineProperty(e,"observable",{enumerable:!0,get:function(){return o.observable}});var i=ah;Object.defineProperty(e,"animationFrames",{enumerable:!0,get:function(){return i.animationFrames}});var s=fh;Object.defineProperty(e,"Subject",{enumerable:!0,get:function(){return s.Subject}});var l=Sh;Object.defineProperty(e,"BehaviorSubject",{enumerable:!0,get:function(){return l.BehaviorSubject}});var c=Ch;Object.defineProperty(e,"ReplaySubject",{enumerable:!0,get:function(){return c.ReplaySubject}});var u=Ih;Object.defineProperty(e,"AsyncSubject",{enumerable:!0,get:function(){return u.AsyncSubject}});var d=Ph;Object.defineProperty(e,"asap",{enumerable:!0,get:function(){return d.asap}}),Object.defineProperty(e,"asapScheduler",{enumerable:!0,get:function(){return d.asapScheduler}});var f=im;Object.defineProperty(e,"async",{enumerable:!0,get:function(){return f.async}}),Object.defineProperty(e,"asyncScheduler",{enumerable:!0,get:function(){return f.asyncScheduler}});var p=sm;Object.defineProperty(e,"queue",{enumerable:!0,get:function(){return p.queue}}),Object.defineProperty(e,"queueScheduler",{enumerable:!0,get:function(){return p.queueScheduler}});var h=pm;Object.defineProperty(e,"animationFrame",{enumerable:!0,get:function(){return h.animationFrame}}),Object.defineProperty(e,"animationFrameScheduler",{enumerable:!0,get:function(){return h.animationFrameScheduler}});var m=_m;Object.defineProperty(e,"VirtualTimeScheduler",{enumerable:!0,get:function(){return m.VirtualTimeScheduler}}),Object.defineProperty(e,"VirtualAction",{enumerable:!0,get:function(){return m.VirtualAction}});var g=em;Object.defineProperty(e,"Scheduler",{enumerable:!0,get:function(){return g.Scheduler}});var y=ap;Object.defineProperty(e,"Subscription",{enumerable:!0,get:function(){return y.Subscription}});var v=np;Object.defineProperty(e,"Subscriber",{enumerable:!0,get:function(){return v.Subscriber}});var b=km;Object.defineProperty(e,"Notification",{enumerable:!0,get:function(){return b.Notification}}),Object.defineProperty(e,"NotificationKind",{enumerable:!0,get:function(){return b.NotificationKind}});var _=Op;Object.defineProperty(e,"pipe",{enumerable:!0,get:function(){return _.pipe}});var w=wp;Object.defineProperty(e,"noop",{enumerable:!0,get:function(){return w.noop}});var x=Tp;Object.defineProperty(e,"identity",{enumerable:!0,get:function(){return x.identity}});var S=yy;Object.defineProperty(e,"isObservable",{enumerable:!0,get:function(){return S.isObservable}});var E=_y;Object.defineProperty(e,"lastValueFrom",{enumerable:!0,get:function(){return E.lastValueFrom}});var k=Sy;Object.defineProperty(e,"firstValueFrom",{enumerable:!0,get:function(){return k.firstValueFrom}});var C=Cy;Object.defineProperty(e,"ArgumentOutOfRangeError",{enumerable:!0,get:function(){return C.ArgumentOutOfRangeError}});var A=wy;Object.defineProperty(e,"EmptyError",{enumerable:!0,get:function(){return A.EmptyError}});var O=Ay;Object.defineProperty(e,"NotFoundError",{enumerable:!0,get:function(){return O.NotFoundError}});var T=ph;Object.defineProperty(e,"ObjectUnsubscribedError",{enumerable:!0,get:function(){return T.ObjectUnsubscribedError}});var N=Oy;Object.defineProperty(e,"SequenceError",{enumerable:!0,get:function(){return N.SequenceError}});var I=Ty;Object.defineProperty(e,"TimeoutError",{enumerable:!0,get:function(){return I.TimeoutError}});var R=op;Object.defineProperty(e,"UnsubscriptionError",{enumerable:!0,get:function(){return R.UnsubscriptionError}});var F=Iy;Object.defineProperty(e,"bindCallback",{enumerable:!0,get:function(){return F.bindCallback}});var P=Ky;Object.defineProperty(e,"bindNodeCallback",{enumerable:!0,get:function(){return P.bindNodeCallback}});var D=Xy;Object.defineProperty(e,"combineLatest",{enumerable:!0,get:function(){return D.combineLatest}});var j=gv;Object.defineProperty(e,"concat",{enumerable:!0,get:function(){return j.concat}});var L=Mv;Object.defineProperty(e,"connectable",{enumerable:!0,get:function(){return L.connectable}});var q=Dv;Object.defineProperty(e,"defer",{enumerable:!0,get:function(){return q.defer}});var B=Cm;Object.defineProperty(e,"empty",{enumerable:!0,get:function(){return B.empty}});var U=Gv;Object.defineProperty(e,"forkJoin",{enumerable:!0,get:function(){return U.forkJoin}});var z=Pm;Object.defineProperty(e,"from",{enumerable:!0,get:function(){return z.from}});var G=Zv;Object.defineProperty(e,"fromEvent",{enumerable:!0,get:function(){return G.fromEvent}});var H=cb;Object.defineProperty(e,"fromEventPattern",{enumerable:!0,get:function(){return H.fromEventPattern}});var $=pb;Object.defineProperty(e,"generate",{enumerable:!0,get:function(){return $.generate}});var V=bb;Object.defineProperty(e,"iif",{enumerable:!0,get:function(){return V.iif}});var W=wb;Object.defineProperty(e,"interval",{enumerable:!0,get:function(){return W.interval}});var J=Tb;Object.defineProperty(e,"merge",{enumerable:!0,get:function(){return J.merge}});var Y=Mb;Object.defineProperty(e,"never",{enumerable:!0,get:function(){return Y.never}});var K=Am;Object.defineProperty(e,"of",{enumerable:!0,get:function(){return K.of}});var Z=Db;Object.defineProperty(e,"onErrorResumeNext",{enumerable:!0,get:function(){return Z.onErrorResumeNext}});var X=Hb;Object.defineProperty(e,"pairs",{enumerable:!0,get:function(){return X.pairs}});var Q=Vb;Object.defineProperty(e,"partition",{enumerable:!0,get:function(){return Q.partition}});var ee=e_;Object.defineProperty(e,"race",{enumerable:!0,get:function(){return ee.race}});var te=i_;Object.defineProperty(e,"range",{enumerable:!0,get:function(){return te.range}});var ne=hy;Object.defineProperty(e,"throwError",{enumerable:!0,get:function(){return ne.throwError}});var re=xb;Object.defineProperty(e,"timer",{enumerable:!0,get:function(){return re.timer}});var ae=c_;Object.defineProperty(e,"using",{enumerable:!0,get:function(){return ae.using}});var oe=p_;Object.defineProperty(e,"zip",{enumerable:!0,get:function(){return oe.zip}});var ie=Mm;Object.defineProperty(e,"scheduled",{enumerable:!0,get:function(){return ie.scheduled}});var se=Cm;Object.defineProperty(e,"EMPTY",{enumerable:!0,get:function(){return se.EMPTY}});var le=Mb;Object.defineProperty(e,"NEVER",{enumerable:!0,get:function(){return le.NEVER}}),n(x_,e);var ce=gp;Object.defineProperty(e,"config",{enumerable:!0,get:function(){return ce.config}});var ue=S_;Object.defineProperty(e,"audit",{enumerable:!0,get:function(){return ue.audit}});var de=A_;Object.defineProperty(e,"auditTime",{enumerable:!0,get:function(){return de.auditTime}});var fe=I_;Object.defineProperty(e,"buffer",{enumerable:!0,get:function(){return fe.buffer}});var pe=D_;Object.defineProperty(e,"bufferCount",{enumerable:!0,get:function(){return pe.bufferCount}});var he=U_;Object.defineProperty(e,"bufferTime",{enumerable:!0,get:function(){return he.bufferTime}});var me=K_;Object.defineProperty(e,"bufferToggle",{enumerable:!0,get:function(){return me.bufferToggle}});var ge=aw;Object.defineProperty(e,"bufferWhen",{enumerable:!0,get:function(){return ge.bufferWhen}});var ye=cw;Object.defineProperty(e,"catchError",{enumerable:!0,get:function(){return ye.catchError}});var ve=pw;Object.defineProperty(e,"combineAll",{enumerable:!0,get:function(){return ve.combineAll}});var be=hw;Object.defineProperty(e,"combineLatestAll",{enumerable:!0,get:function(){return be.combineLatestAll}});var _e=Rw;Object.defineProperty(e,"combineLatestWith",{enumerable:!0,get:function(){return _e.combineLatestWith}});var we=yv;Object.defineProperty(e,"concatAll",{enumerable:!0,get:function(){return we.concatAll}});var xe=$w;Object.defineProperty(e,"concatMap",{enumerable:!0,get:function(){return xe.concatMap}});var Se=Jw;Object.defineProperty(e,"concatMapTo",{enumerable:!0,get:function(){return Se.concatMapTo}});var Ee=Zw;Object.defineProperty(e,"concatWith",{enumerable:!0,get:function(){return Ee.concatWith}});var ke=lx;Object.defineProperty(e,"connect",{enumerable:!0,get:function(){return ke.connect}});var Ce=gx;Object.defineProperty(e,"count",{enumerable:!0,get:function(){return Ce.count}});var Ae=vx;Object.defineProperty(e,"debounce",{enumerable:!0,get:function(){return Ae.debounce}});var Oe=Sx;Object.defineProperty(e,"debounceTime",{enumerable:!0,get:function(){return Oe.debounceTime}});var Te=Ax;Object.defineProperty(e,"defaultIfEmpty",{enumerable:!0,get:function(){return Te.defaultIfEmpty}});var Ne=Nx;Object.defineProperty(e,"delay",{enumerable:!0,get:function(){return Ne.delay}});var Ie=Ix;Object.defineProperty(e,"delayWhen",{enumerable:!0,get:function(){return Ie.delayWhen}});var Re=Zx;Object.defineProperty(e,"dematerialize",{enumerable:!0,get:function(){return Re.dematerialize}});var Fe=tS;Object.defineProperty(e,"distinct",{enumerable:!0,get:function(){return Fe.distinct}});var Pe=iS;Object.defineProperty(e,"distinctUntilChanged",{enumerable:!0,get:function(){return Pe.distinctUntilChanged}});var Me=dS;Object.defineProperty(e,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return Me.distinctUntilKeyChanged}});var De=pS;Object.defineProperty(e,"elementAt",{enumerable:!0,get:function(){return De.elementAt}});var je=ES;Object.defineProperty(e,"endWith",{enumerable:!0,get:function(){return je.endWith}});var Le=TS;Object.defineProperty(e,"every",{enumerable:!0,get:function(){return Le.every}});var qe=RS;Object.defineProperty(e,"exhaust",{enumerable:!0,get:function(){return qe.exhaust}});var Be=FS;Object.defineProperty(e,"exhaustAll",{enumerable:!0,get:function(){return Be.exhaustAll}});var Ue=PS;Object.defineProperty(e,"exhaustMap",{enumerable:!0,get:function(){return Ue.exhaustMap}});var ze=US;Object.defineProperty(e,"expand",{enumerable:!0,get:function(){return ze.expand}});var Ge=Jb;Object.defineProperty(e,"filter",{enumerable:!0,get:function(){return Ge.filter}});var He=HS;Object.defineProperty(e,"finalize",{enumerable:!0,get:function(){return He.finalize}});var $e=VS;Object.defineProperty(e,"find",{enumerable:!0,get:function(){return $e.find}});var Ve=KS;Object.defineProperty(e,"findIndex",{enumerable:!0,get:function(){return Ve.findIndex}});var We=QS;Object.defineProperty(e,"first",{enumerable:!0,get:function(){return We.first}});var Je=iE;Object.defineProperty(e,"groupBy",{enumerable:!0,get:function(){return Je.groupBy}});var Ye=Dx;Object.defineProperty(e,"ignoreElements",{enumerable:!0,get:function(){return Ye.ignoreElements}});var Ke=fE;Object.defineProperty(e,"isEmpty",{enumerable:!0,get:function(){return Ke.isEmpty}});var Ze=mE;Object.defineProperty(e,"last",{enumerable:!0,get:function(){return Ze.last}});var Xe=Py;Object.defineProperty(e,"map",{enumerable:!0,get:function(){return Xe.map}});var Qe=Bx;Object.defineProperty(e,"mapTo",{enumerable:!0,get:function(){return Qe.mapTo}});var et=AE;Object.defineProperty(e,"materialize",{enumerable:!0,get:function(){return et.materialize}});var tt=IE;Object.defineProperty(e,"max",{enumerable:!0,get:function(){return tt.max}});var nt=vv;Object.defineProperty(e,"mergeAll",{enumerable:!0,get:function(){return nt.mergeAll}});var rt=PE;Object.defineProperty(e,"flatMap",{enumerable:!0,get:function(){return rt.flatMap}});var at=bv;Object.defineProperty(e,"mergeMap",{enumerable:!0,get:function(){return at.mergeMap}});var ot=ME;Object.defineProperty(e,"mergeMapTo",{enumerable:!0,get:function(){return ot.mergeMapTo}});var it=LE;Object.defineProperty(e,"mergeScan",{enumerable:!0,get:function(){return it.mergeScan}});var st=UE;Object.defineProperty(e,"mergeWith",{enumerable:!0,get:function(){return st.mergeWith}});var lt=QE;Object.defineProperty(e,"min",{enumerable:!0,get:function(){return lt.min}});var ct=nk;Object.defineProperty(e,"multicast",{enumerable:!0,get:function(){return ct.multicast}});var ut=Eg;Object.defineProperty(e,"observeOn",{enumerable:!0,get:function(){return ut.observeOn}});var dt=ik;Object.defineProperty(e,"onErrorResumeNextWith",{enumerable:!0,get:function(){return dt.onErrorResumeNextWith}});var ft=fk;Object.defineProperty(e,"pairwise",{enumerable:!0,get:function(){return ft.pairwise}});var pt=mk;Object.defineProperty(e,"pluck",{enumerable:!0,get:function(){return pt.pluck}});var ht=yk;Object.defineProperty(e,"publish",{enumerable:!0,get:function(){return ht.publish}});var mt=wk;Object.defineProperty(e,"publishBehavior",{enumerable:!0,get:function(){return mt.publishBehavior}});var gt=Ek;Object.defineProperty(e,"publishLast",{enumerable:!0,get:function(){return gt.publishLast}});var yt=Ak;Object.defineProperty(e,"publishReplay",{enumerable:!0,get:function(){return yt.publishReplay}});var vt=Ik;Object.defineProperty(e,"raceWith",{enumerable:!0,get:function(){return vt.raceWith}});var bt=yw;Object.defineProperty(e,"reduce",{enumerable:!0,get:function(){return bt.reduce}});var _t=jk;Object.defineProperty(e,"repeat",{enumerable:!0,get:function(){return _t.repeat}});var wt=Gk;Object.defineProperty(e,"repeatWhen",{enumerable:!0,get:function(){return wt.repeatWhen}});var xt=Jk;Object.defineProperty(e,"retry",{enumerable:!0,get:function(){return xt.retry}});var St=eC;Object.defineProperty(e,"retryWhen",{enumerable:!0,get:function(){return St.retryWhen}});var Et=zp;Object.defineProperty(e,"refCount",{enumerable:!0,get:function(){return Et.refCount}});var kt=oC;Object.defineProperty(e,"sample",{enumerable:!0,get:function(){return kt.sample}});var Ct=uC;Object.defineProperty(e,"sampleTime",{enumerable:!0,get:function(){return Ct.sampleTime}});var At=hC;Object.defineProperty(e,"scan",{enumerable:!0,get:function(){return At.scan}});var Ot=yC;Object.defineProperty(e,"sequenceEqual",{enumerable:!0,get:function(){return Ot.sequenceEqual}});var Tt=wC;Object.defineProperty(e,"share",{enumerable:!0,get:function(){return Tt.share}});var Nt=TC;Object.defineProperty(e,"shareReplay",{enumerable:!0,get:function(){return Nt.shareReplay}});var It=RC;Object.defineProperty(e,"single",{enumerable:!0,get:function(){return It.single}});var Rt=LC;Object.defineProperty(e,"skip",{enumerable:!0,get:function(){return Rt.skip}});var Ft=BC;Object.defineProperty(e,"skipLast",{enumerable:!0,get:function(){return Ft.skipLast}});var Pt=HC;Object.defineProperty(e,"skipUntil",{enumerable:!0,get:function(){return Pt.skipUntil}});var Mt=YC;Object.defineProperty(e,"skipWhile",{enumerable:!0,get:function(){return Mt.skipWhile}});var Dt=XC;Object.defineProperty(e,"startWith",{enumerable:!0,get:function(){return Dt.startWith}});var jt=Tg;Object.defineProperty(e,"subscribeOn",{enumerable:!0,get:function(){return jt.subscribeOn}});var Lt=nA;Object.defineProperty(e,"switchAll",{enumerable:!0,get:function(){return Lt.switchAll}});var qt=rA;Object.defineProperty(e,"switchMap",{enumerable:!0,get:function(){return qt.switchMap}});var Bt=cA;Object.defineProperty(e,"switchMapTo",{enumerable:!0,get:function(){return Bt.switchMapTo}});var Ut=fA;Object.defineProperty(e,"switchScan",{enumerable:!0,get:function(){return Ut.switchScan}});var zt=Rx;Object.defineProperty(e,"take",{enumerable:!0,get:function(){return zt.take}});var Gt=gE;Object.defineProperty(e,"takeLast",{enumerable:!0,get:function(){return Gt.takeLast}});var Ht=mA;Object.defineProperty(e,"takeUntil",{enumerable:!0,get:function(){return Ht.takeUntil}});var $t=_A;Object.defineProperty(e,"takeWhile",{enumerable:!0,get:function(){return $t.takeWhile}});var Vt=SA;Object.defineProperty(e,"tap",{enumerable:!0,get:function(){return Vt.tap}});var Wt=OA;Object.defineProperty(e,"throttle",{enumerable:!0,get:function(){return Wt.throttle}});var Jt=RA;Object.defineProperty(e,"throttleTime",{enumerable:!0,get:function(){return Jt.throttleTime}});var Yt=hS;Object.defineProperty(e,"throwIfEmpty",{enumerable:!0,get:function(){return Yt.throwIfEmpty}});var Kt=DA;Object.defineProperty(e,"timeInterval",{enumerable:!0,get:function(){return Kt.timeInterval}});var Zt=Ty;Object.defineProperty(e,"timeout",{enumerable:!0,get:function(){return Zt.timeout}});var Xt=UA;Object.defineProperty(e,"timeoutWith",{enumerable:!0,get:function(){return Xt.timeoutWith}});var Qt=$A;Object.defineProperty(e,"timestamp",{enumerable:!0,get:function(){return Qt.timestamp}});var en=gw;Object.defineProperty(e,"toArray",{enumerable:!0,get:function(){return en.toArray}});var tn=JA;Object.defineProperty(e,"window",{enumerable:!0,get:function(){return tn.window}});var nn=eO;Object.defineProperty(e,"windowCount",{enumerable:!0,get:function(){return nn.windowCount}});var rn=oO;Object.defineProperty(e,"windowTime",{enumerable:!0,get:function(){return rn.windowTime}});var an=hO;Object.defineProperty(e,"windowToggle",{enumerable:!0,get:function(){return an.windowToggle}});var on=SO;Object.defineProperty(e,"windowWhen",{enumerable:!0,get:function(){return on.windowWhen}});var sn=OO;Object.defineProperty(e,"withLatestFrom",{enumerable:!0,get:function(){return sn.withLatestFrom}});var ln=jO;Object.defineProperty(e,"zipAll",{enumerable:!0,get:function(){return ln.zipAll}});var cn=BO;Object.defineProperty(e,"zipWith",{enumerable:!0,get:function(){return cn.zipWith}})}(ep),Object.defineProperty(Qf,"__esModule",{value:!0});var YO=Qf.checkAbortSignal=QO;Qf.abortBreakPoint=function(e){return tT.apply(this,arguments)},Qf.makeAbortError=nT,Qf.observeAbortSignal=function(e){return e?(0,ZO.fromEvent)(e,"abort"):new ZO.Observable};var KO=Qf.isAbortException=function(e){return e instanceof Error&&("AbortError"===e.name||"ERR_ABORTED"===e.code||!!/\b(aborted|aborterror)\b/i.test(e.message))},ZO=ep,XO=function(e){ee(n,e);var t=le(n);function n(){return K(this,n),t.apply(this,arguments)}return X(n)}(oe(Error));function QO(e){if(e){if(!(e instanceof AbortSignal))throw new TypeError("must pass an AbortSignal");if(e.aborted)throw nT()}}function eT(e){return new Promise((function(t){return setTimeout(t,e)}))}function tT(){return(tT=Y(V().mark((function e(t){return V().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,eT(1);case 2:QO(t);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function nT(){if("undefined"!=typeof DOMException)return new DOMException("aborted","AbortError");var e=new XO("aborted");return e.code="ERR_ABORTED",e}var rT={exports:{}};!function(e,t){var n;n=function(){return function e(t,n,r){function a(i,s){if(!n[i]){if(!t[i]){if(!s&&j)return j(i);if(o)return o(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,(function(e){return a(t[i][1][e]||e)}),c,c.exports,e,t,n,r)}return n[i].exports}for(var o=j,i=0;i<r.length;i++)a(r[i]);return a}({"./aesprim":[function(e,t,n){var r;r=function(e){var t,n,r,a,o,i,s,l,c,u,d,f,p,h,m,g,y,v;function b(e,t){if(!e)throw new Error("ASSERT: "+t)}function _(e){return e>=48&&e<=57}function w(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function x(e){return"01234567".indexOf(e)>=0}function S(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function E(e){return 10===e||13===e||8232===e||8233===e}function k(e){return 64==e||36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&s.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function C(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&s.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function A(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function O(e){return"eval"===e||"arguments"===e}function T(e,t,n,r,a){var o;b("number"==typeof n,"Comment must have valid position"),y.lastCommentStart>=n||(y.lastCommentStart=n,o={type:e,value:t},v.range&&(o.range=[n,r]),v.loc&&(o.loc=a),v.comments.push(o),v.attachComment&&(v.leadingComments.push(o),v.trailingComments.push(o)))}function N(e){var t,n,r,a;for(t=d-e,n={start:{line:f,column:d-p-e}};d<h;)if(r=c.charCodeAt(d),++d,E(r))return v.comments&&(a=c.slice(t+e,d-1),n.end={line:f,column:d-p-1},T("Line",a,t,d-1,n)),13===r&&10===c.charCodeAt(d)&&++d,++f,void(p=d);v.comments&&(a=c.slice(t+e,d),n.end={line:f,column:d-p},T("Line",a,t,d,n))}function I(){var e,t,n,r;for(v.comments&&(e=d-2,t={start:{line:f,column:d-p-2}});d<h;)if(E(n=c.charCodeAt(d)))13===n&&10===c.charCodeAt(d+1)&&++d,++f,++d,p=d,d>=h&&V({},i.UnexpectedToken,"ILLEGAL");else if(42===n){if(47===c.charCodeAt(d+1))return++d,++d,void(v.comments&&(r=c.slice(e+2,d-2),t.end={line:f,column:d-p},T("Block",r,e,d,t)));++d}else++d;V({},i.UnexpectedToken,"ILLEGAL")}function R(){var e,t;for(t=0===d;d<h;)if(S(e=c.charCodeAt(d)))++d;else if(E(e))++d,13===e&&10===c.charCodeAt(d)&&++d,++f,p=d,t=!0;else if(47===e)if(47===(e=c.charCodeAt(d+1)))++d,++d,N(2),t=!0;else{if(42!==e)break;++d,++d,I()}else if(t&&45===e){if(45!==c.charCodeAt(d+1)||62!==c.charCodeAt(d+2))break;d+=3,N(3)}else{if(60!==e)break;if("!--"!==c.slice(d+1,d+4))break;++d,++d,++d,++d,N(4)}}function F(e){var t,n,r,a=0;for(n="u"===e?4:2,t=0;t<n;++t){if(!(d<h&&w(c[d])))return"";r=c[d++],a=16*a+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(a)}function P(){var e,t;for(e=c.charCodeAt(d++),t=String.fromCharCode(e),92===e&&(117!==c.charCodeAt(d)&&V({},i.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&k(e.charCodeAt(0))||V({},i.UnexpectedToken,"ILLEGAL"),t=e);d<h&&C(e=c.charCodeAt(d));)++d,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==c.charCodeAt(d)&&V({},i.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&C(e.charCodeAt(0))||V({},i.UnexpectedToken,"ILLEGAL"),t+=e);return t}function M(){var e,n,r,a,o=d,s=c.charCodeAt(d),l=c[d];switch(s){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++d,v.tokenize&&(40===s?v.openParenToken=v.tokens.length:123===s&&(v.openCurlyToken=v.tokens.length)),{type:t.Punctuator,value:String.fromCharCode(s),lineNumber:f,lineStart:p,start:o,end:d};default:if(61===(e=c.charCodeAt(d+1)))switch(s){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return d+=2,{type:t.Punctuator,value:String.fromCharCode(s)+String.fromCharCode(e),lineNumber:f,lineStart:p,start:o,end:d};case 33:case 61:return 61===c.charCodeAt(d+=2)&&++d,{type:t.Punctuator,value:c.slice(o,d),lineNumber:f,lineStart:p,start:o,end:d}}}return">>>="===(a=c.substr(d,4))?{type:t.Punctuator,value:a,lineNumber:f,lineStart:p,start:o,end:d+=4}:">>>"===(r=a.substr(0,3))||"<<="===r||">>="===r?{type:t.Punctuator,value:r,lineNumber:f,lineStart:p,start:o,end:d+=3}:l===(n=r.substr(0,2))[1]&&"+-<>&|".indexOf(l)>=0||"=>"===n?{type:t.Punctuator,value:n,lineNumber:f,lineStart:p,start:o,end:d+=2}:"<>=!+-*%&|^/".indexOf(l)>=0?(++d,{type:t.Punctuator,value:l,lineNumber:f,lineStart:p,start:o,end:d}):void V({},i.UnexpectedToken,"ILLEGAL")}function D(){var e,n,r;if(b(_((r=c[d]).charCodeAt(0))||"."===r,"Numeric literal must start with a decimal digit or a decimal point"),n=d,e="","."!==r){if(e=c[d++],r=c[d],"0"===e){if("x"===r||"X"===r)return++d,function(e){for(var n="";d<h&&w(c[d]);)n+=c[d++];return 0===n.length&&V({},i.UnexpectedToken,"ILLEGAL"),k(c.charCodeAt(d))&&V({},i.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt("0x"+n,16),lineNumber:f,lineStart:p,start:e,end:d}}(n);if(x(r))return function(e){for(var n="0"+c[d++];d<h&&x(c[d]);)n+=c[d++];return(k(c.charCodeAt(d))||_(c.charCodeAt(d)))&&V({},i.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt(n,8),octal:!0,lineNumber:f,lineStart:p,start:e,end:d}}(n);r&&_(r.charCodeAt(0))&&V({},i.UnexpectedToken,"ILLEGAL")}for(;_(c.charCodeAt(d));)e+=c[d++];r=c[d]}if("."===r){for(e+=c[d++];_(c.charCodeAt(d));)e+=c[d++];r=c[d]}if("e"===r||"E"===r)if(e+=c[d++],"+"!==(r=c[d])&&"-"!==r||(e+=c[d++]),_(c.charCodeAt(d)))for(;_(c.charCodeAt(d));)e+=c[d++];else V({},i.UnexpectedToken,"ILLEGAL");return k(c.charCodeAt(d))&&V({},i.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseFloat(e),lineNumber:f,lineStart:p,start:n,end:d}}function j(){var e,n,r,a;return g=null,R(),e=d,n=function(){var e,t,n,r;for(b("/"===(e=c[d]),"Regular expression literal must start with a slash"),t=c[d++],n=!1,r=!1;d<h;)if(t+=e=c[d++],"\\"===e)E((e=c[d++]).charCodeAt(0))&&V({},i.UnterminatedRegExp),t+=e;else if(E(e.charCodeAt(0)))V({},i.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}return r||V({},i.UnterminatedRegExp),{value:t.substr(1,t.length-2),literal:t}}(),r=function(){var e,t,n,r;for(t="",n="";d<h&&C((e=c[d]).charCodeAt(0));)if(++d,"\\"===e&&d<h)if("u"===(e=c[d])){if(r=++d,e=F("u"))for(n+=e,t+="\\u";r<d;++r)t+=c[r];else d=r,n+="u",t+="\\u";W({},i.UnexpectedToken,"ILLEGAL")}else t+="\\",W({},i.UnexpectedToken,"ILLEGAL");else n+=e,t+=e;return{value:n,literal:t}}(),a=function(e,t){var n;try{n=new RegExp(e,t)}catch(e){V({},i.InvalidRegExp)}return n}(n.value,r.value),v.tokenize?{type:t.RegularExpression,value:a,lineNumber:f,lineStart:p,start:e,end:d}:{literal:n.literal+r.literal,value:a,start:e,end:d}}function L(){var e,t,n,r;return R(),e=d,t={start:{line:f,column:d-p}},n=j(),t.end={line:f,column:d-p},v.tokenize||(v.tokens.length>0&&(r=v.tokens[v.tokens.length-1]).range[0]===e&&"Punctuator"===r.type&&("/"!==r.value&&"/="!==r.value||v.tokens.pop()),v.tokens.push({type:"RegularExpression",value:n.literal,range:[e,d],loc:t})),n}function q(){var e,n,a;return R(),d>=h?{type:t.EOF,lineNumber:f,lineStart:p,start:d,end:d}:k(e=c.charCodeAt(d))?(n=d,a=92===c.charCodeAt(d)?P():function(){var e,t;for(e=d++;d<h;){if(92===(t=c.charCodeAt(d)))return d=e,P();if(!C(t))break;++d}return c.slice(e,d)}(),{type:1===a.length?t.Identifier:function(e){if(u&&A(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}(a)?t.Keyword:"null"===a?t.NullLiteral:"true"===a||"false"===a?t.BooleanLiteral:t.Identifier,value:a,lineNumber:f,lineStart:p,start:n,end:d}):40===e||41===e||59===e?M():39===e||34===e?function(){var e,n,r,a,o,s,l,u,m="",g=!1;for(l=f,u=p,b("'"===(e=c[d])||'"'===e,"String literal must starts with a quote"),n=d,++d;d<h;){if((r=c[d++])===e){e="";break}if("\\"===r)if((r=c[d++])&&E(r.charCodeAt(0)))++f,"\r"===r&&"\n"===c[d]&&++d,p=d;else switch(r){case"u":case"x":s=d,(o=F(r))?m+=o:(d=s,m+=r);break;case"n":m+="\n";break;case"r":m+="\r";break;case"t":m+="\t";break;case"b":m+="\b";break;case"f":m+="\f";break;case"v":m+="\v";break;default:x(r)?(0!==(a="01234567".indexOf(r))&&(g=!0),d<h&&x(c[d])&&(g=!0,a=8*a+"01234567".indexOf(c[d++]),"0123".indexOf(r)>=0&&d<h&&x(c[d])&&(a=8*a+"01234567".indexOf(c[d++]))),m+=String.fromCharCode(a)):m+=r}else{if(E(r.charCodeAt(0)))break;m+=r}}return""!==e&&V({},i.UnexpectedToken,"ILLEGAL"),{type:t.StringLiteral,value:m,octal:g,startLineNumber:l,startLineStart:u,lineNumber:f,lineStart:p,start:n,end:d}}():46===e?_(c.charCodeAt(d+1))?D():M():_(e)?D():v.tokenize&&47===e?function(){var e,t;if(!(e=v.tokens[v.tokens.length-1]))return L();if("Punctuator"===e.type){if("]"===e.value)return M();if(")"===e.value)return!(t=v.tokens[v.openParenToken-1])||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?M():L();if("}"===e.value){if(v.tokens[v.openCurlyToken-3]&&"Keyword"===v.tokens[v.openCurlyToken-3].type){if(!(t=v.tokens[v.openCurlyToken-4]))return M()}else{if(!v.tokens[v.openCurlyToken-4]||"Keyword"!==v.tokens[v.openCurlyToken-4].type)return M();if(!(t=v.tokens[v.openCurlyToken-5]))return L()}return r.indexOf(t.value)>=0?M():L()}return L()}return"Keyword"===e.type?L():M()}():M()}function B(){var e,r,a;return R(),e={start:{line:f,column:d-p}},r=q(),e.end={line:f,column:d-p},r.type!==t.EOF&&(a=c.slice(r.start,r.end),v.tokens.push({type:n[r.type],value:a,range:[r.start,r.end],loc:e})),r}function U(){var e;return d=(e=g).end,f=e.lineNumber,p=e.lineStart,g=void 0!==v.tokens?B():q(),d=e.end,f=e.lineNumber,p=e.lineStart,e}function z(){var e,t,n;e=d,t=f,n=p,g=void 0!==v.tokens?B():q(),d=e,f=t,p=n}function G(e,t){this.line=e,this.column=t}function H(e,t,n,r){this.start=new G(e,t),this.end=new G(n,r)}function $(){var e,t,n,r;return e=d,t=f,n=p,R(),r=f!==t,d=e,f=t,p=n,r}function V(e,t){var n,r=Array.prototype.slice.call(arguments,2),a=t.replace(/%(\d)/g,(function(e,t){return b(t<r.length,"Message reference must be in range"),r[t]}));throw"number"==typeof e.lineNumber?((n=new Error("Line "+e.lineNumber+": "+a)).index=e.start,n.lineNumber=e.lineNumber,n.column=e.start-p+1):((n=new Error("Line "+f+": "+a)).index=d,n.lineNumber=f,n.column=d-p+1),n.description=a,n}function W(){try{V.apply(null,arguments)}catch(e){if(!v.errors)throw e;v.errors.push(e)}}function J(e){if(e.type===t.EOF&&V(e,i.UnexpectedEOS),e.type===t.NumericLiteral&&V(e,i.UnexpectedNumber),e.type===t.StringLiteral&&V(e,i.UnexpectedString),e.type===t.Identifier&&V(e,i.UnexpectedIdentifier),e.type===t.Keyword){if(function(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}(e.value))V(e,i.UnexpectedReserved);else if(u&&A(e.value))return void W(e,i.StrictReservedWord);V(e,i.UnexpectedToken,e.value)}V(e,i.UnexpectedToken,e.value)}function Y(e){var n=U();n.type===t.Punctuator&&n.value===e||J(n)}function K(e){var n=U();n.type===t.Keyword&&n.value===e||J(n)}function Z(e){return g.type===t.Punctuator&&g.value===e}function X(e){return g.type===t.Keyword&&g.value===e}function Q(){var e;59===c.charCodeAt(d)||Z(";")?U():(e=f,R(),f===e&&(g.type===t.EOF||Z("}")||J(g)))}function ee(e){return e.type===a.Identifier||e.type===a.MemberExpression}function te(e,t){var n,r,a;return n=u,a=g,r=_e(),t&&u&&O(e[0].name)&&W(t,i.StrictParamName),u=n,m.markEnd(m.createFunctionExpression(null,e,[],r),a)}function ne(){var e,n;return n=g,(e=U()).type===t.StringLiteral||e.type===t.NumericLiteral?(u&&e.octal&&W(e,i.StrictOctalLiteral),m.markEnd(m.createLiteral(e),n)):m.markEnd(m.createIdentifier(e.value),n)}function re(){var e,n,r,a,o,s;return s=g,(e=g).type===t.Identifier?(r=ne(),"get"!==e.value||Z(":")?"set"!==e.value||Z(":")?(Y(":"),a=fe(),m.markEnd(m.createProperty("init",r,a),s)):(n=ne(),Y("("),(e=g).type!==t.Identifier?(Y(")"),W(e,i.UnexpectedToken,e.value),a=te([])):(o=[me()],Y(")"),a=te(o,e)),m.markEnd(m.createProperty("set",n,a),s)):(n=ne(),Y("("),Y(")"),a=te([]),m.markEnd(m.createProperty("get",n,a),s))):e.type!==t.EOF&&e.type!==t.Punctuator?(n=ne(),Y(":"),a=fe(),m.markEnd(m.createProperty("init",n,a),s)):void J(e)}function ae(){var e,n,r,s;if(Z("("))return function(){var e;return Y("("),e=pe(),Y(")"),e}();if(Z("["))return function(){var e,t=[];for(e=g,Y("[");!Z("]");)Z(",")?(U(),t.push(null)):(t.push(fe()),Z("]")||Y(","));return U(),m.markEnd(m.createArrayExpression(t),e)}();if(Z("{"))return function(){var e,t,n,r,s,l=[],c={},d=String;for(s=g,Y("{");!Z("}");)t=(e=re()).key.type===a.Identifier?e.key.name:d(e.key.value),r="init"===e.kind?o.Data:"get"===e.kind?o.Get:o.Set,n="$"+t,Object.prototype.hasOwnProperty.call(c,n)?(c[n]===o.Data?u&&r===o.Data?W({},i.StrictDuplicateProperty):r!==o.Data&&W({},i.AccessorDataProperty):r===o.Data?W({},i.AccessorDataProperty):c[n]&r&&W({},i.AccessorGetSet),c[n]|=r):c[n]=r,l.push(e),Z("}")||Y(",");return Y("}"),m.markEnd(m.createObjectExpression(l),s)}();if(s=g,(e=g.type)===t.Identifier)r=m.createIdentifier(U().value);else if(e===t.StringLiteral||e===t.NumericLiteral)u&&g.octal&&W(g,i.StrictOctalLiteral),r=m.createLiteral(U());else if(e===t.Keyword){if(X("function"))return function(){var e,t,n,r,a,o,s,l,c,d=null;return l=g,K("function"),Z("(")||(e=g,d=me(),u?O(e.value)&&W(e,i.StrictFunctionName):O(e.value)?(n=e,r=i.StrictFunctionName):A(e.value)&&(n=e,r=i.StrictReservedWord)),c=(a=we(n)).params,t=a.stricted,n=a.firstRestricted,a.message&&(r=a.message),s=u,o=_e(),u&&n&&V(n,r),u&&t&&W(t,r),u=s,m.markEnd(m.createFunctionExpression(d,c,[],o),l)}();X("this")?(U(),r=m.createThisExpression()):J(U())}else e===t.BooleanLiteral?((n=U()).value="true"===n.value,r=m.createLiteral(n)):e===t.NullLiteral?((n=U()).value=null,r=m.createLiteral(n)):Z("/")||Z("/=")?(r=m.createLiteral(void 0!==v.tokens?L():j()),z()):J(U());return m.markEnd(r,s)}function oe(){var e=[];if(Y("("),!Z(")"))for(;d<h&&(e.push(fe()),!Z(")"));)Y(",");return Y(")"),e}function ie(){return Y("."),function(){var e,n;return n=g,function(e){return e.type===t.Identifier||e.type===t.Keyword||e.type===t.BooleanLiteral||e.type===t.NullLiteral}(e=U())||J(e),m.markEnd(m.createIdentifier(e.value),n)}()}function se(){var e;return Y("["),e=pe(),Y("]"),e}function le(){var e,t,n;return n=g,K("new"),e=function(){var e,t,n,r;for(r=g,e=y.allowIn,t=X("new")?le():ae(),y.allowIn=e;Z(".")||Z("[");)Z("[")?(n=se(),t=m.createMemberExpression("[",t,n)):(n=ie(),t=m.createMemberExpression(".",t,n)),m.markEnd(t,r);return t}(),t=Z("(")?oe():[],m.markEnd(m.createNewExpression(e,t),n)}function ce(){var e,n,r=g;return e=function(){var e,t,n,r,a;for(a=g,e=y.allowIn,y.allowIn=!0,t=X("new")?le():ae(),y.allowIn=e;;){if(Z("."))r=ie(),t=m.createMemberExpression(".",t,r);else if(Z("("))n=oe(),t=m.createCallExpression(t,n);else{if(!Z("["))break;r=se(),t=m.createMemberExpression("[",t,r)}m.markEnd(t,a)}return t}(),g.type===t.Punctuator&&(!Z("++")&&!Z("--")||$()||(u&&e.type===a.Identifier&&O(e.name)&&W({},i.StrictLHSPostfix),ee(e)||W({},i.InvalidLHSInAssignment),n=U(),e=m.markEnd(m.createPostfixExpression(n.value,e),r))),e}function ue(){var e,n,r;return g.type!==t.Punctuator&&g.type!==t.Keyword?n=ce():Z("++")||Z("--")?(r=g,e=U(),n=ue(),u&&n.type===a.Identifier&&O(n.name)&&W({},i.StrictLHSPrefix),ee(n)||W({},i.InvalidLHSInAssignment),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r)):Z("+")||Z("-")||Z("~")||Z("!")?(r=g,e=U(),n=ue(),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r)):X("delete")||X("void")||X("typeof")?(r=g,e=U(),n=ue(),n=m.createUnaryExpression(e.value,n),n=m.markEnd(n,r),u&&"delete"===n.operator&&n.argument.type===a.Identifier&&W({},i.StrictDelete)):n=ce(),n}function de(e,n){var r=0;if(e.type!==t.Punctuator&&e.type!==t.Keyword)return 0;switch(e.value){case"||":r=1;break;case"&&":r=2;break;case"|":r=3;break;case"^":r=4;break;case"&":r=5;break;case"==":case"!=":case"===":case"!==":r=6;break;case"<":case">":case"<=":case">=":case"instanceof":r=7;break;case"in":r=n?7:0;break;case"<<":case">>":case">>>":r=8;break;case"+":case"-":r=9;break;case"*":case"/":case"%":r=11}return r}function fe(){var e,n,r,o,s,l;return e=g,s=g,o=n=function(){var e,t,n,r,a;return a=g,e=function(){var e,t,n,r,a,o,i,s,l,c;if(e=g,l=ue(),0===(a=de(r=g,y.allowIn)))return l;for(r.prec=a,U(),t=[e,g],o=[l,r,i=ue()];(a=de(g,y.allowIn))>0;){for(;o.length>2&&a<=o[o.length-2].prec;)i=o.pop(),s=o.pop().value,l=o.pop(),n=m.createBinaryExpression(s,l,i),t.pop(),m.markEnd(n,e=t[t.length-1]),o.push(n);(r=U()).prec=a,o.push(r),t.push(g),n=ue(),o.push(n)}for(n=o[c=o.length-1],t.pop();c>1;)n=m.createBinaryExpression(o[c-1].value,o[c-2],n),c-=2,e=t.pop(),m.markEnd(n,e);return n}(),Z("?")&&(U(),t=y.allowIn,y.allowIn=!0,n=fe(),y.allowIn=t,Y(":"),r=fe(),e=m.createConditionalExpression(e,n,r),m.markEnd(e,a)),e}(),g.type!==t.Punctuator||"="!==(l=g.value)&&"*="!==l&&"/="!==l&&"%="!==l&&"+="!==l&&"-="!==l&&"<<="!==l&&">>="!==l&&">>>="!==l&&"&="!==l&&"^="!==l&&"|="!==l||(ee(n)||W({},i.InvalidLHSInAssignment),u&&n.type===a.Identifier&&O(n.name)&&W(e,i.StrictLHSAssignment),e=U(),r=fe(),o=m.markEnd(m.createAssignmentExpression(e.value,n,r),s)),o}function pe(){var e,t=g;if(e=fe(),Z(",")){for(e=m.createSequenceExpression([e]);d<h&&Z(",");)U(),e.expressions.push(fe());m.markEnd(e,t)}return e}function he(){var e,t;return t=g,Y("{"),e=function(){for(var e,t=[];d<h&&!Z("}")&&void 0!==(e=Se());)t.push(e);return t}(),Y("}"),m.markEnd(m.createBlockStatement(e),t)}function me(){var e,n;return n=g,(e=U()).type!==t.Identifier&&J(e),m.markEnd(m.createIdentifier(e.value),n)}function ge(e){var t,n,r=null;return n=g,t=me(),u&&O(t.name)&&W({},i.StrictVarName),"const"===e?(Y("="),r=fe()):Z("=")&&(U(),r=fe()),m.markEnd(m.createVariableDeclarator(t,r),n)}function ye(e){var t=[];do{if(t.push(ge(e)),!Z(","))break;U()}while(d<h);return t}function ve(){var e,t,n,r=[];for(n=g,X("default")?(U(),e=null):(K("case"),e=pe()),Y(":");d<h&&!(Z("}")||X("default")||X("case"));)t=be(),r.push(t);return m.markEnd(m.createSwitchCase(e,r),n)}function be(){var e,n,r,o,s,l,f,p,v,b,_=g.type;if(_===t.EOF&&J(g),_===t.Punctuator&&"{"===g.value)return he();if(o=g,_===t.Punctuator)switch(g.value){case";":return m.markEnd((Y(";"),m.createEmptyStatement()),o);case"(":return m.markEnd(function(){var e=pe();return Q(),m.createExpressionStatement(e)}(),o)}if(_===t.Keyword)switch(g.value){case"break":return m.markEnd((b=null,K("break"),59===c.charCodeAt(d)?(U(),y.inIteration||y.inSwitch||V({},i.IllegalBreak),m.createBreakStatement(null)):$()?(y.inIteration||y.inSwitch||V({},i.IllegalBreak),m.createBreakStatement(null)):(g.type===t.Identifier&&(b=me(),Object.prototype.hasOwnProperty.call(y.labelSet,"$"+b.name)||V({},i.UnknownLabel,b.name)),Q(),null!==b||y.inIteration||y.inSwitch||V({},i.IllegalBreak),m.createBreakStatement(b))),o);case"continue":return m.markEnd(function(){var e=null;return K("continue"),59===c.charCodeAt(d)?(U(),y.inIteration||V({},i.IllegalContinue),m.createContinueStatement(null)):$()?(y.inIteration||V({},i.IllegalContinue),m.createContinueStatement(null)):(g.type===t.Identifier&&(e=me(),Object.prototype.hasOwnProperty.call(y.labelSet,"$"+e.name)||V({},i.UnknownLabel,e.name)),Q(),null!==e||y.inIteration||V({},i.IllegalContinue),m.createContinueStatement(e))}(),o);case"debugger":return m.markEnd((K("debugger"),Q(),m.createDebuggerStatement()),o);case"do":return m.markEnd((K("do"),v=y.inIteration,y.inIteration=!0,f=be(),y.inIteration=v,K("while"),Y("("),p=pe(),Y(")"),Z(";")&&U(),m.createDoWhileStatement(f,p)),o);case"for":return m.markEnd(function(){var e,t,n,r,a,o,s;return e=t=n=null,K("for"),Y("("),Z(";")?U():(X("var")||X("let")?(y.allowIn=!1,e=function(){var e,t,n;return n=g,e=U(),t=ye(),m.markEnd(m.createVariableDeclaration(t,e.value),n)}(),y.allowIn=!0,1===e.declarations.length&&X("in")&&(U(),r=e,a=pe(),e=null)):(y.allowIn=!1,e=pe(),y.allowIn=!0,X("in")&&(ee(e)||W({},i.InvalidLHSInForIn),U(),r=e,a=pe(),e=null)),void 0===r&&Y(";")),void 0===r&&(Z(";")||(t=pe()),Y(";"),Z(")")||(n=pe())),Y(")"),s=y.inIteration,y.inIteration=!0,o=be(),y.inIteration=s,void 0===r?m.createForStatement(e,t,n,o):m.createForInStatement(r,a,o)}(),o);case"function":return m.markEnd(xe(),o);case"if":return m.markEnd(function(){var e,t,n;return K("if"),Y("("),e=pe(),Y(")"),t=be(),X("else")?(U(),n=be()):n=null,m.createIfStatement(e,t,n)}(),o);case"return":return m.markEnd((l=null,K("return"),y.inFunctionBody||W({},i.IllegalReturn),32===c.charCodeAt(d)&&k(c.charCodeAt(d+1))?(l=pe(),Q(),m.createReturnStatement(l)):$()?m.createReturnStatement(null):(Z(";")||Z("}")||g.type===t.EOF||(l=pe()),Q(),m.createReturnStatement(l))),o);case"switch":return m.markEnd(function(){var e,t,n,r,a;if(K("switch"),Y("("),e=pe(),Y(")"),Y("{"),t=[],Z("}"))return U(),m.createSwitchStatement(e,t);for(r=y.inSwitch,y.inSwitch=!0,a=!1;d<h&&!Z("}");)null===(n=ve()).test&&(a&&V({},i.MultipleDefaultsInSwitch),a=!0),t.push(n);return y.inSwitch=r,Y("}"),m.createSwitchStatement(e,t)}(),o);case"throw":return m.markEnd(function(){var e;return K("throw"),$()&&V({},i.NewlineAfterThrow),e=pe(),Q(),m.createThrowStatement(e)}(),o);case"try":return m.markEnd(function(){var e,t,n,r,a=[],o=null;return K("try"),e=he(),X("catch")&&a.push((r=g,K("catch"),Y("("),Z(")")&&J(g),t=me(),u&&O(t.name)&&W({},i.StrictCatchVariable),Y(")"),n=he(),m.markEnd(m.createCatchClause(t,n),r))),X("finally")&&(U(),o=he()),0!==a.length||o||V({},i.NoCatchOrFinally),m.createTryStatement(e,[],a,o)}(),o);case"var":return m.markEnd((K("var"),s=ye(),Q(),m.createVariableDeclaration(s,"var")),o);case"while":return m.markEnd(function(){var e,t,n;return K("while"),Y("("),e=pe(),Y(")"),n=y.inIteration,y.inIteration=!0,t=be(),y.inIteration=n,m.createWhileStatement(e,t)}(),o);case"with":return m.markEnd(function(){var e,t;return u&&(R(),W({},i.StrictModeWith)),K("with"),Y("("),e=pe(),Y(")"),t=be(),m.createWithStatement(e,t)}(),o)}return(e=pe()).type===a.Identifier&&Z(":")?(U(),r="$"+e.name,Object.prototype.hasOwnProperty.call(y.labelSet,r)&&V({},i.Redeclaration,"Label",e.name),y.labelSet[r]=!0,n=be(),delete y.labelSet[r],m.markEnd(m.createLabeledStatement(e,n),o)):(Q(),m.markEnd(m.createExpressionStatement(e),o))}function _e(){var e,n,r,o,s,l,f,p,v=[];for(p=g,Y("{");d<h&&g.type===t.StringLiteral&&(n=g,e=Se(),v.push(e),e.expression.type===a.Literal);)"use strict"===c.slice(n.start+1,n.end-1)?(u=!0,r&&W(r,i.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(o=y.labelSet,s=y.inIteration,l=y.inSwitch,f=y.inFunctionBody,y.labelSet={},y.inIteration=!1,y.inSwitch=!1,y.inFunctionBody=!0;d<h&&!Z("}")&&void 0!==(e=Se());)v.push(e);return Y("}"),y.labelSet=o,y.inIteration=s,y.inSwitch=l,y.inFunctionBody=f,m.markEnd(m.createBlockStatement(v),p)}function we(e){var t,n,r,a,o,s,l=[];if(Y("("),!Z(")"))for(a={};d<h&&(n=g,t=me(),o="$"+n.value,u?(O(n.value)&&(r=n,s=i.StrictParamName),Object.prototype.hasOwnProperty.call(a,o)&&(r=n,s=i.StrictParamDupe)):e||(O(n.value)?(e=n,s=i.StrictParamName):A(n.value)?(e=n,s=i.StrictReservedWord):Object.prototype.hasOwnProperty.call(a,o)&&(e=n,s=i.StrictParamDupe)),l.push(t),a[o]=!0,!Z(")"));)Y(",");return Y(")"),{params:l,stricted:r,firstRestricted:e,message:s}}function xe(){var e,t,n,r,a,o,s,l,c,d;return d=g,K("function"),r=g,e=me(),u?O(r.value)&&W(r,i.StrictFunctionName):O(r.value)?(s=r,l=i.StrictFunctionName):A(r.value)&&(s=r,l=i.StrictReservedWord),t=(o=we(s)).params,a=o.stricted,s=o.firstRestricted,o.message&&(l=o.message),c=u,n=_e(),u&&s&&V(s,l),u&&a&&W(a,l),u=c,m.markEnd(m.createFunctionDeclaration(e,t,[],n),d)}function Se(){if(g.type===t.Keyword)switch(g.value){case"const":case"let":return r=g,K(e=g.value),n=ye(e),Q(),m.markEnd(m.createVariableDeclaration(n,e),r);case"function":return xe();default:return be()}var e,n,r;if(g.type!==t.EOF)return be()}function Ee(){var e,t,n,r=[];for(e=0;e<v.tokens.length;++e)n={type:(t=v.tokens[e]).type,value:t.value},v.range&&(n.range=t.range),v.loc&&(n.loc=t.loc),r.push(n);v.tokens=r}(n={})[(t={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9}).BooleanLiteral]="Boolean",n[t.EOF]="<end>",n[t.Identifier]="Identifier",n[t.Keyword]="Keyword",n[t.NullLiteral]="Null",n[t.NumericLiteral]="Numeric",n[t.Punctuator]="Punctuator",n[t.StringLiteral]="String",n[t.RegularExpression]="RegularExpression",r=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],a={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},o={Data:1,Get:2,Set:4},i={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},s={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},l={name:"SyntaxTree",processComment:function(e){var t,n;if(!(e.type===a.Program&&e.body.length>0)){for(v.trailingComments.length>0?v.trailingComments[0].range[0]>=e.range[1]?(n=v.trailingComments,v.trailingComments=[]):v.trailingComments.length=0:v.bottomRightStack.length>0&&v.bottomRightStack[v.bottomRightStack.length-1].trailingComments&&v.bottomRightStack[v.bottomRightStack.length-1].trailingComments[0].range[0]>=e.range[1]&&(n=v.bottomRightStack[v.bottomRightStack.length-1].trailingComments,delete v.bottomRightStack[v.bottomRightStack.length-1].trailingComments);v.bottomRightStack.length>0&&v.bottomRightStack[v.bottomRightStack.length-1].range[0]>=e.range[0];)t=v.bottomRightStack.pop();t?t.leadingComments&&t.leadingComments[t.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=t.leadingComments,delete t.leadingComments):v.leadingComments.length>0&&v.leadingComments[v.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=v.leadingComments,v.leadingComments=[]),n&&(e.trailingComments=n),v.bottomRightStack.push(e)}},markEnd:function(e,t){return v.range&&(e.range=[t.start,d]),v.loc&&(e.loc=new H(void 0===t.startLineNumber?t.lineNumber:t.startLineNumber,t.start-(void 0===t.startLineStart?t.lineStart:t.startLineStart),f,d-p),this.postProcess(e)),v.attachComment&&this.processComment(e),e},postProcess:function(e){return v.source&&(e.loc.source=v.source),e},createArrayExpression:function(e){return{type:a.ArrayExpression,elements:e}},createAssignmentExpression:function(e,t,n){return{type:a.AssignmentExpression,operator:e,left:t,right:n}},createBinaryExpression:function(e,t,n){return{type:"||"===e||"&&"===e?a.LogicalExpression:a.BinaryExpression,operator:e,left:t,right:n}},createBlockStatement:function(e){return{type:a.BlockStatement,body:e}},createBreakStatement:function(e){return{type:a.BreakStatement,label:e}},createCallExpression:function(e,t){return{type:a.CallExpression,callee:e,arguments:t}},createCatchClause:function(e,t){return{type:a.CatchClause,param:e,body:t}},createConditionalExpression:function(e,t,n){return{type:a.ConditionalExpression,test:e,consequent:t,alternate:n}},createContinueStatement:function(e){return{type:a.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:a.DebuggerStatement}},createDoWhileStatement:function(e,t){return{type:a.DoWhileStatement,body:e,test:t}},createEmptyStatement:function(){return{type:a.EmptyStatement}},createExpressionStatement:function(e){return{type:a.ExpressionStatement,expression:e}},createForStatement:function(e,t,n,r){return{type:a.ForStatement,init:e,test:t,update:n,body:r}},createForInStatement:function(e,t,n){return{type:a.ForInStatement,left:e,right:t,body:n,each:!1}},createFunctionDeclaration:function(e,t,n,r){return{type:a.FunctionDeclaration,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(e,t,n,r){return{type:a.FunctionExpression,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createIdentifier:function(e){return{type:a.Identifier,name:e}},createIfStatement:function(e,t,n){return{type:a.IfStatement,test:e,consequent:t,alternate:n}},createLabeledStatement:function(e,t){return{type:a.LabeledStatement,label:e,body:t}},createLiteral:function(e){return{type:a.Literal,value:e.value,raw:c.slice(e.start,e.end)}},createMemberExpression:function(e,t,n){return{type:a.MemberExpression,computed:"["===e,object:t,property:n}},createNewExpression:function(e,t){return{type:a.NewExpression,callee:e,arguments:t}},createObjectExpression:function(e){return{type:a.ObjectExpression,properties:e}},createPostfixExpression:function(e,t){return{type:a.UpdateExpression,operator:e,argument:t,prefix:!1}},createProgram:function(e){return{type:a.Program,body:e}},createProperty:function(e,t,n){return{type:a.Property,key:t,value:n,kind:e}},createReturnStatement:function(e){return{type:a.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:a.SequenceExpression,expressions:e}},createSwitchCase:function(e,t){return{type:a.SwitchCase,test:e,consequent:t}},createSwitchStatement:function(e,t){return{type:a.SwitchStatement,discriminant:e,cases:t}},createThisExpression:function(){return{type:a.ThisExpression}},createThrowStatement:function(e){return{type:a.ThrowStatement,argument:e}},createTryStatement:function(e,t,n,r){return{type:a.TryStatement,block:e,guardedHandlers:t,handlers:n,finalizer:r}},createUnaryExpression:function(e,t){return"++"===e||"--"===e?{type:a.UpdateExpression,operator:e,argument:t,prefix:!0}:{type:a.UnaryExpression,operator:e,argument:t,prefix:!0}},createVariableDeclaration:function(e,t){return{type:a.VariableDeclaration,declarations:e,kind:t}},createVariableDeclarator:function(e,t){return{type:a.VariableDeclarator,id:e,init:t}},createWhileStatement:function(e,t){return{type:a.WhileStatement,test:e,body:t}},createWithStatement:function(e,t){return{type:a.WithStatement,object:e,body:t}}},e.version="1.2.2",e.tokenize=function(e,n){var r;"string"==typeof e||e instanceof String||(e=String(e)),m=l,d=0,f=(c=e).length>0?1:0,p=0,h=c.length,g=null,y={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},v={},(n=n||{}).tokens=!0,v.tokens=[],v.tokenize=!0,v.openParenToken=-1,v.openCurlyToken=-1,v.range="boolean"==typeof n.range&&n.range,v.loc="boolean"==typeof n.loc&&n.loc,"boolean"==typeof n.comment&&n.comment&&(v.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(v.errors=[]);try{if(z(),g.type===t.EOF)return v.tokens;for(U();g.type!==t.EOF;)try{U()}catch(e){if(v.errors){v.errors.push(e);break}throw e}Ee(),r=v.tokens,void 0!==v.comments&&(r.comments=v.comments),void 0!==v.errors&&(r.errors=v.errors)}catch(e){throw e}finally{v={}}return r},e.parse=function(e,n){var r,o,s,b;o=String,"string"==typeof e||e instanceof String||(e=o(e)),m=l,d=0,f=(c=e).length>0?1:0,p=0,h=c.length,g=null,y={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},v={},void 0!==n&&(v.range="boolean"==typeof n.range&&n.range,v.loc="boolean"==typeof n.loc&&n.loc,v.attachComment="boolean"==typeof n.attachComment&&n.attachComment,v.loc&&null!=n.source&&(v.source=o(n.source)),"boolean"==typeof n.tokens&&n.tokens&&(v.tokens=[]),"boolean"==typeof n.comment&&n.comment&&(v.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(v.errors=[]),v.attachComment&&(v.range=!0,v.comments=[],v.bottomRightStack=[],v.trailingComments=[],v.leadingComments=[]));try{R(),z(),b=g,u=!1,s=function(){for(var e,n,r,o=[];d<h&&(n=g).type===t.StringLiteral&&(e=Se(),o.push(e),e.expression.type===a.Literal);)"use strict"===c.slice(n.start+1,n.end-1)?(u=!0,r&&W(r,i.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(;d<h&&void 0!==(e=Se());)o.push(e);return o}(),r=m.markEnd(m.createProgram(s),b),void 0!==v.comments&&(r.comments=v.comments),void 0!==v.tokens&&(Ee(),r.tokens=v.tokens),void 0!==v.errors&&(r.errors=v.errors)}catch(e){throw e}finally{v={}}return r},e.Syntax=function(){var e,t={};for(e in"function"==typeof Object.create&&(t=Object.create(null)),a)a.hasOwnProperty(e)&&(t[e]=a[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()},r(void 0!==n?n:this.esprima={})},{}],1:[function(e,t,n){(function(r){var a=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSON_PATH:3,DOLLAR:4,PATH_COMPONENTS:5,LEADING_CHILD_MEMBER_EXPRESSION:6,PATH_COMPONENT:7,MEMBER_COMPONENT:8,SUBSCRIPT_COMPONENT:9,CHILD_MEMBER_COMPONENT:10,DESCENDANT_MEMBER_COMPONENT:11,DOT:12,MEMBER_EXPRESSION:13,DOT_DOT:14,STAR:15,IDENTIFIER:16,SCRIPT_EXPRESSION:17,INTEGER:18,END:19,CHILD_SUBSCRIPT_COMPONENT:20,DESCENDANT_SUBSCRIPT_COMPONENT:21,"[":22,SUBSCRIPT:23,"]":24,SUBSCRIPT_EXPRESSION:25,SUBSCRIPT_EXPRESSION_LIST:26,SUBSCRIPT_EXPRESSION_LISTABLE:27,",":28,STRING_LITERAL:29,ARRAY_SLICE:30,FILTER_EXPRESSION:31,QQ_STRING:32,Q_STRING:33,$accept:0,$end:1},terminals_:{2:"error",4:"DOLLAR",12:"DOT",14:"DOT_DOT",15:"STAR",16:"IDENTIFIER",17:"SCRIPT_EXPRESSION",18:"INTEGER",19:"END",22:"[",24:"]",28:",",30:"ARRAY_SLICE",31:"FILTER_EXPRESSION",32:"QQ_STRING",33:"Q_STRING"},productions_:[0,[3,1],[3,2],[3,1],[3,2],[5,1],[5,2],[7,1],[7,1],[8,1],[8,1],[10,2],[6,1],[11,2],[13,1],[13,1],[13,1],[13,1],[13,1],[9,1],[9,1],[20,3],[21,4],[23,1],[23,1],[26,1],[26,3],[27,1],[27,1],[27,1],[25,1],[25,1],[25,1],[29,1],[29,1]],performAction:function(e,n,r,a,o,i,s){a.ast||(a.ast=t,t.initialize());var l=i.length-1;switch(o){case 1:return a.ast.set({expression:{type:"root",value:i[l]}}),a.ast.unshift(),a.ast.yield();case 2:return a.ast.set({expression:{type:"root",value:i[l-1]}}),a.ast.unshift(),a.ast.yield();case 3:return a.ast.unshift(),a.ast.yield();case 4:return a.ast.set({operation:"member",scope:"child",expression:{type:"identifier",value:i[l-1]}}),a.ast.unshift(),a.ast.yield();case 5:case 6:case 11:case 13:case 18:case 21:case 22:case 23:break;case 7:a.ast.set({operation:"member"}),a.ast.push();break;case 8:a.ast.set({operation:"subscript"}),a.ast.push();break;case 9:case 19:a.ast.set({scope:"child"});break;case 10:case 20:a.ast.set({scope:"descendant"});break;case 12:a.ast.set({scope:"child",operation:"member"});break;case 14:a.ast.set({expression:{type:"wildcard",value:i[l]}});break;case 15:a.ast.set({expression:{type:"identifier",value:i[l]}});break;case 16:a.ast.set({expression:{type:"script_expression",value:i[l]}});break;case 17:a.ast.set({expression:{type:"numeric_literal",value:parseInt(i[l])}});break;case 24:i[l].length>1?a.ast.set({expression:{type:"union",value:i[l]}}):this.$=i[l];break;case 25:this.$=[i[l]];break;case 26:this.$=i[l-2].concat(i[l]);break;case 27:this.$={expression:{type:"numeric_literal",value:parseInt(i[l])}},a.ast.set(this.$);break;case 28:this.$={expression:{type:"string_literal",value:i[l]}},a.ast.set(this.$);break;case 29:this.$={expression:{type:"slice",value:i[l]}},a.ast.set(this.$);break;case 30:this.$={expression:{type:"wildcard",value:i[l]}},a.ast.set(this.$);break;case 31:this.$={expression:{type:"script_expression",value:i[l]}},a.ast.set(this.$);break;case 32:this.$={expression:{type:"filter_expression",value:i[l]}},a.ast.set(this.$);break;case 33:case 34:this.$=i[l]}},table:[{3:1,4:[1,2],6:3,13:4,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{1:[3]},{1:[2,1],5:10,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,3],5:21,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,12],12:[2,12],14:[2,12],22:[2,12]},{1:[2,14],12:[2,14],14:[2,14],22:[2,14]},{1:[2,15],12:[2,15],14:[2,15],22:[2,15]},{1:[2,16],12:[2,16],14:[2,16],22:[2,16]},{1:[2,17],12:[2,17],14:[2,17],22:[2,17]},{1:[2,18],12:[2,18],14:[2,18],22:[2,18]},{1:[2,2],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,5],12:[2,5],14:[2,5],22:[2,5]},{1:[2,7],12:[2,7],14:[2,7],22:[2,7]},{1:[2,8],12:[2,8],14:[2,8],22:[2,8]},{1:[2,9],12:[2,9],14:[2,9],22:[2,9]},{1:[2,10],12:[2,10],14:[2,10],22:[2,10]},{1:[2,19],12:[2,19],14:[2,19],22:[2,19]},{1:[2,20],12:[2,20],14:[2,20],22:[2,20]},{13:23,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{13:24,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9],22:[1,25]},{15:[1,29],17:[1,30],18:[1,33],23:26,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{1:[2,4],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,6],12:[2,6],14:[2,6],22:[2,6]},{1:[2,11],12:[2,11],14:[2,11],22:[2,11]},{1:[2,13],12:[2,13],14:[2,13],22:[2,13]},{15:[1,29],17:[1,30],18:[1,33],23:38,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{24:[1,39]},{24:[2,23]},{24:[2,24],28:[1,40]},{24:[2,30]},{24:[2,31]},{24:[2,32]},{24:[2,25],28:[2,25]},{24:[2,27],28:[2,27]},{24:[2,28],28:[2,28]},{24:[2,29],28:[2,29]},{24:[2,33],28:[2,33]},{24:[2,34],28:[2,34]},{24:[1,41]},{1:[2,21],12:[2,21],14:[2,21],22:[2,21]},{18:[1,33],27:42,29:34,30:[1,35],32:[1,36],33:[1,37]},{1:[2,22],12:[2,22],14:[2,22],22:[2,22]},{24:[2,26],28:[2,26]}],defaultActions:{27:[2,23],29:[2,30],30:[2,31],31:[2,32]},parseError:function(e,t){if(!t.recoverable)throw new Error(e);this.trace(e)},parse:function(e){var t=this,n=[0],r=[null],a=[],o=this.table,i="",s=0,l=0,c=a.slice.call(arguments,1);this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;a.push(u);var d=this.lexer.options&&this.lexer.options.ranges;function f(){var e;return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}this.parseError="function"==typeof this.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(var p,h,m,g,y,v,b,_={};;){if(this.defaultActions[h=n[n.length-1]]?m=this.defaultActions[h]:(null==p&&(p=f()),m=o[h]&&o[h][p]),void 0===m||!m.length||!m[0]){var w;for(y in b=[],o[h])this.terminals_[y]&&y>2&&b.push("'"+this.terminals_[y]+"'");w=this.lexer.showPosition?"Parse error on line "+(s+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[p]||p)+"'":"Parse error on line "+(s+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(w,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:b})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+h+", token: "+p);switch(m[0]){case 1:n.push(p),r.push(this.lexer.yytext),a.push(this.lexer.yylloc),n.push(m[1]),p=null,l=this.lexer.yyleng,i=this.lexer.yytext,s=this.lexer.yylineno,u=this.lexer.yylloc;break;case 2:if(_.$=r[r.length-(v=this.productions_[m[1]][1])],_._$={first_line:a[a.length-(v||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(v||1)].first_column,last_column:a[a.length-1].last_column},d&&(_._$.range=[a[a.length-(v||1)].range[0],a[a.length-1].range[1]]),void 0!==(g=this.performAction.apply(_,[i,l,s,this.yy,m[1],r,a].concat(c))))return g;v&&(n=n.slice(0,-1*v*2),r=r.slice(0,-1*v),a=a.slice(0,-1*v)),n.push(this.productions_[m[1]][0]),r.push(_.$),a.push(_._$),n.push(o[n[n.length-2]][n[n.length-1]]);break;case 3:return!0}}return!0}},t={initialize:function(){this._nodes=[],this._node={},this._stash=[]},set:function(e){for(var t in e)this._node[t]=e[t];return this._node},node:function(e){return arguments.length&&(this._node=e),this._node},push:function(){this._nodes.push(this._node),this._node={}},unshift:function(){this._nodes.unshift(this._node),this._node={}},yield:function(){var e=this._nodes;return this.initialize(),e}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var o in a)this[o]=a[o];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),o=0;o<a.length;o++)if((n=this._input.match(this.rules[a[o]]))&&(!t||n[0].length>t[0].length)){if(t=n,r=o,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,a[o])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,a[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:return 4;case 1:return 14;case 2:return 12;case 3:return 15;case 4:return 16;case 5:return 22;case 6:return 24;case 7:return 28;case 8:return 30;case 9:return 18;case 10:return t.yytext=t.yytext.substr(1,t.yyleng-2),32;case 11:return t.yytext=t.yytext.substr(1,t.yyleng-2),33;case 12:return 17;case 13:return 31}},rules:[/^(?:\$)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\*)/,/^(?:[a-zA-Z_]+[a-zA-Z0-9_]*)/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?:((-?(?:0|[1-9][0-9]*)))?\:((-?(?:0|[1-9][0-9]*)))?(\:((-?(?:0|[1-9][0-9]*)))?)?)/,/^(?:(-?(?:0|[1-9][0-9]*)))/,/^(?:"(?:\\["bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^"\\])*")/,/^(?:'(?:\\['bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^'\\])*')/,/^(?:\(.+?\)(?=\]))/,/^(?:\?\(.+?\)(?=\]))/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};return e}();function r(){this.yy={}}return e.lexer=n,r.prototype=e,e.Parser=r,new r}();void 0!==e&&void 0!==n&&(n.parser=a,n.Parser=a.Parser,n.parse=function(){return a.parse.apply(a,arguments)},n.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),r.exit(1));var a=e("fs").readFileSync(e("path").normalize(t[1]),"utf8");return n.parser.parse(a)},void 0!==t&&e.main===t&&n.main(r.argv.slice(1)))}).call(this,e("_process"))},{_process:14,fs:12,path:13}],2:[function(e,t,n){t.exports={identifier:"[a-zA-Z_]+[a-zA-Z0-9_]*",integer:"-?(?:0|[1-9][0-9]*)",qq_string:'"(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^"\\\\])*"',q_string:"'(?:\\\\['bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^'\\\\])*'"}},{}],3:[function(e,t,n){var r=e("./dict"),a=e("fs"),o={lex:{macros:{esc:"\\\\",int:r.integer},rules:[["\\$","return 'DOLLAR'"],["\\.\\.","return 'DOT_DOT'"],["\\.","return 'DOT'"],["\\*","return 'STAR'"],[r.identifier,"return 'IDENTIFIER'"],["\\[","return '['"],["\\]","return ']'"],[",","return ','"],["({int})?\\:({int})?(\\:({int})?)?","return 'ARRAY_SLICE'"],["{int}","return 'INTEGER'"],[r.qq_string,"yytext = yytext.substr(1,yyleng-2); return 'QQ_STRING';"],[r.q_string,"yytext = yytext.substr(1,yyleng-2); return 'Q_STRING';"],["\\(.+?\\)(?=\\])","return 'SCRIPT_EXPRESSION'"],["\\?\\(.+?\\)(?=\\])","return 'FILTER_EXPRESSION'"]]},start:"JSON_PATH",bnf:{JSON_PATH:[["DOLLAR",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["DOLLAR PATH_COMPONENTS",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["LEADING_CHILD_MEMBER_EXPRESSION","yy.ast.unshift(); return yy.ast.yield()"],["LEADING_CHILD_MEMBER_EXPRESSION PATH_COMPONENTS",'yy.ast.set({ operation: "member", scope: "child", expression: { type: "identifier", value: $1 }}); yy.ast.unshift(); return yy.ast.yield()']],PATH_COMPONENTS:[["PATH_COMPONENT",""],["PATH_COMPONENTS PATH_COMPONENT",""]],PATH_COMPONENT:[["MEMBER_COMPONENT",'yy.ast.set({ operation: "member" }); yy.ast.push()'],["SUBSCRIPT_COMPONENT",'yy.ast.set({ operation: "subscript" }); yy.ast.push() ']],MEMBER_COMPONENT:[["CHILD_MEMBER_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_MEMBER_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_MEMBER_COMPONENT:[["DOT MEMBER_EXPRESSION",""]],LEADING_CHILD_MEMBER_EXPRESSION:[["MEMBER_EXPRESSION",'yy.ast.set({ scope: "child", operation: "member" })']],DESCENDANT_MEMBER_COMPONENT:[["DOT_DOT MEMBER_EXPRESSION",""]],MEMBER_EXPRESSION:[["STAR",'yy.ast.set({ expression: { type: "wildcard", value: $1 } })'],["IDENTIFIER",'yy.ast.set({ expression: { type: "identifier", value: $1 } })'],["SCRIPT_EXPRESSION",'yy.ast.set({ expression: { type: "script_expression", value: $1 } })'],["INTEGER",'yy.ast.set({ expression: { type: "numeric_literal", value: parseInt($1) } })'],["END",""]],SUBSCRIPT_COMPONENT:[["CHILD_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_SUBSCRIPT_COMPONENT:[["[ SUBSCRIPT ]",""]],DESCENDANT_SUBSCRIPT_COMPONENT:[["DOT_DOT [ SUBSCRIPT ]",""]],SUBSCRIPT:[["SUBSCRIPT_EXPRESSION",""],["SUBSCRIPT_EXPRESSION_LIST",'$1.length > 1? yy.ast.set({ expression: { type: "union", value: $1 } }) : $$ = $1']],SUBSCRIPT_EXPRESSION_LIST:[["SUBSCRIPT_EXPRESSION_LISTABLE","$$ = [$1]"],["SUBSCRIPT_EXPRESSION_LIST , SUBSCRIPT_EXPRESSION_LISTABLE","$$ = $1.concat($3)"]],SUBSCRIPT_EXPRESSION_LISTABLE:[["INTEGER",'$$ = { expression: { type: "numeric_literal", value: parseInt($1) } }; yy.ast.set($$)'],["STRING_LITERAL",'$$ = { expression: { type: "string_literal", value: $1 } }; yy.ast.set($$)'],["ARRAY_SLICE",'$$ = { expression: { type: "slice", value: $1 } }; yy.ast.set($$)']],SUBSCRIPT_EXPRESSION:[["STAR",'$$ = { expression: { type: "wildcard", value: $1 } }; yy.ast.set($$)'],["SCRIPT_EXPRESSION",'$$ = { expression: { type: "script_expression", value: $1 } }; yy.ast.set($$)'],["FILTER_EXPRESSION",'$$ = { expression: { type: "filter_expression", value: $1 } }; yy.ast.set($$)']],STRING_LITERAL:[["QQ_STRING","$$ = $1"],["Q_STRING","$$ = $1"]]}};a.readFileSync&&(o.moduleInclude=a.readFileSync(e.resolve("../include/module.js")),o.actionInclude=a.readFileSync(e.resolve("../include/action.js"))),t.exports=o},{"./dict":2,fs:12}],4:[function(e,t,n){var r=e("./aesprim"),a=e("./slice"),o=e("static-eval"),i=e("underscore").uniq,s=function(){return this.initialize.apply(this,arguments)};function l(t,n,a){var o=e("./index"),i=p(r.parse(n).body[0].expression,{"@":t.value}),s=a.replace(/\{\{\s*value\s*\}\}/g,i),l=o.nodes(t.value,s);return l.forEach((function(e){e.path=t.path.concat(e.path.slice(1))})),l}function c(e){return Array.isArray(e)}function u(e){return function(t,n,r,a){var o=t.value,i=t.path,s=[],l=function(t,o){var i;c(t)?(t.forEach((function(e,t){s.length>=a||r(t,e,n)&&s.push({path:o.concat(t),value:e})})),t.forEach((function(t,n){s.length>=a||e&&l(t,o.concat(n))}))):(i=t)&&!(i instanceof Array)&&i instanceof Object&&(this.keys(t).forEach((function(e){s.length>=a||r(e,t[e],n)&&s.push({path:o.concat(e),value:t[e]})})),this.keys(t).forEach((function(n){s.length>=a||e&&l(t[n],o.concat(n))})))}.bind(this);return l(o,i),s}}function d(e){return function(t,n,r){return this.descend(n,t.expression.value,e,r)}}function f(e){return function(t,n,r){return this.traverse(n,t.expression.value,e,r)}}function p(){try{return o.apply(this,arguments)}catch(e){}}function h(e){return e=e.filter((function(e){return e})),i(e,(function(e){return e.path.map((function(e){return String(e).replace("-","--")})).join("-")}))}function m(e){var t=String(e);return t.match(/^-?[0-9]+$/)?parseInt(t):null}s.prototype.initialize=function(){this.traverse=u(!0),this.descend=u()},s.prototype.keys=Object.keys,s.prototype.resolve=function(e){var t=[e.operation,e.scope,e.expression.type].join("-"),n=this._fns[t];if(!n)throw new Error("couldn't resolve key: "+t);return n.bind(this)},s.prototype.register=function(e,t){if(!t instanceof Function)throw new Error("handler must be a function");this._fns[e]=t},s.prototype._fns={"member-child-identifier":function(e,t){var n=e.expression.value,r=t.value;if(r instanceof Object&&n in r)return[{value:r[n],path:t.path.concat(n)}]},"member-descendant-identifier":f((function(e,t,n){return e==n})),"subscript-child-numeric_literal":d((function(e,t,n){return e===n})),"member-child-numeric_literal":d((function(e,t,n){return String(e)===String(n)})),"subscript-descendant-numeric_literal":f((function(e,t,n){return e===n})),"member-child-wildcard":d((function(){return!0})),"member-descendant-wildcard":f((function(){return!0})),"subscript-descendant-wildcard":f((function(){return!0})),"subscript-child-wildcard":d((function(){return!0})),"subscript-child-slice":function(e,t){if(c(t.value)){var n=e.expression.value.split(":").map(m),r=t.value.map((function(e,n){return{value:e,path:t.path.concat(n)}}));return a.apply(null,[r].concat(n))}},"subscript-child-union":function(e,t){var n=[];return e.expression.value.forEach((function(e){var r={operation:"subscript",scope:"child",expression:e.expression},a=this.resolve(r)(r,t);a&&(n=n.concat(a))}),this),h(n)},"subscript-descendant-union":function(t,n,r){var a=e(".."),o=this,i=[];return a.nodes(n,"$..*").slice(1).forEach((function(e){i.length>=r||t.expression.value.forEach((function(t){var n={operation:"subscript",scope:"child",expression:t.expression},r=o.resolve(n)(n,e);i=i.concat(r)}))})),h(i)},"subscript-child-filter_expression":function(e,t,n){var a=e.expression.value.slice(2,-1),o=r.parse(a).body[0].expression;return this.descend(t,null,(function(e,t){return p(o,{"@":t})}),n)},"subscript-descendant-filter_expression":function(e,t,n){var a=e.expression.value.slice(2,-1),o=r.parse(a).body[0].expression;return this.traverse(t,null,(function(e,t){return p(o,{"@":t})}),n)},"subscript-child-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$[{{value}}]")},"member-child-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$.{{value}}")},"member-descendant-script_expression":function(e,t){return l(t,e.expression.value.slice(1,-1),"$..value")}},s.prototype._fns["subscript-child-string_literal"]=s.prototype._fns["member-child-identifier"],s.prototype._fns["member-descendant-numeric_literal"]=s.prototype._fns["subscript-descendant-string_literal"]=s.prototype._fns["member-descendant-identifier"],t.exports=s},{"..":"jsonpath","./aesprim":"./aesprim","./index":5,"./slice":7,"static-eval":15,underscore:12}],5:[function(e,t,n){var r=e("assert"),a=e("./dict"),o=e("./parser"),i=e("./handlers"),s=function(){this.initialize.apply(this,arguments)};function l(e){return"[object String]"==Object.prototype.toString.call(e)}s.prototype.initialize=function(){this.parser=new o,this.handlers=new i},s.prototype.parse=function(e){return r.ok(l(e),"we need a path"),this.parser.parse(e)},s.prototype.parent=function(e,t){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var n=this.nodes(e,t)[0];return n.path.pop(),this.value(e,n.path)},s.prototype.apply=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),r.equal(W(n),"function","fn needs to be function");var a=this.nodes(e,t).sort((function(e,t){return t.path.length-e.path.length}));return a.forEach((function(t){var r=t.path.pop(),a=this.value(e,this.stringify(t.path)),o=t.value=n.call(e,a[r]);a[r]=o}),this),a},s.prototype.value=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),arguments.length>=3){var a=this.nodes(e,t).shift();if(!a)return this._vivify(e,t,n);var o=a.path.slice(-1).shift();this.parent(e,this.stringify(a.path))[o]=n}return this.query(e,this.stringify(t),1).shift()},s.prototype._vivify=function(e,t,n){var a=this;return r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),function t(n,r){var o=n.pop(),i=a.value(e,n);i||(t(n.concat(),"string"==typeof o?{}:[]),i=a.value(e,n)),i[o]=r}(this.parser.parse(t).map((function(e){return e.expression.value})),n),this.query(e,t)[0]},s.prototype.query=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(l(t),"we need a path");var a=this.nodes(e,t,n).map((function(e){return e.value}));return a},s.prototype.paths=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var a=this.nodes(e,t,n).map((function(e){return e.path}));return a},s.prototype.nodes=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),0===n)return[];var a=this.parser.parse(t),o=this.handlers,i=[{path:["$"],value:e}],s=[];return a.length&&"root"==a[0].expression.type&&a.shift(),a.length?(a.forEach((function(e,t){if(!(s.length>=n)){var r=o.resolve(e),l=[];i.forEach((function(o){if(!(s.length>=n)){var i=r(e,o,n);t==a.length-1?s=s.concat(i||[]):l=l.concat(i||[])}})),i=l}})),n?s.slice(0,n):s):i},s.prototype.stringify=function(e){r.ok(e,"we need a path");var t="$",n={"descendant-member":"..{{value}}","child-member":".{{value}}","descendant-subscript":"..[{{value}}]","child-subscript":"[{{value}}]"};return(e=this._normalize(e)).forEach((function(e){if("root"!=e.expression.type){var r,a=[e.scope,e.operation].join("-"),o=n[a];if(r="string_literal"==e.expression.type?JSON.stringify(e.expression.value):e.expression.value,!o)throw new Error("couldn't find template "+a);t+=o.replace(/{{value}}/,r)}})),t},s.prototype._normalize=function(e){if(r.ok(e,"we need a path"),"string"==typeof e)return this.parser.parse(e);if(Array.isArray(e)&&"string"==typeof e[0]){var t=[{expression:{type:"root",value:"$"}}];return e.forEach((function(e,n){"$"==e&&0===n||("string"==typeof e&&e.match("^"+a.identifier+"$")?t.push({operation:"member",scope:"child",expression:{value:e,type:"identifier"}}):t.push({operation:"subscript",scope:"child",expression:{value:e,type:"number"==typeof e?"numeric_literal":"string_literal"}}))})),t}if(Array.isArray(e)&&"object"==W(e[0]))return e;throw new Error("couldn't understand path "+e)},s.Handlers=i,s.Parser=o;var c=new s;c.JSONPath=s,t.exports=c},{"./dict":2,"./handlers":4,"./parser":6,assert:8}],6:[function(e,t,n){var r=e("./grammar"),a=e("../generated/parser"),o=function(){var e=new a.Parser,t=e.parseError;return e.yy.parseError=function(){e.yy.ast&&e.yy.ast.initialize(),t.apply(e,arguments)},e};o.grammar=r,t.exports=o},{"../generated/parser":1,"./grammar":3}],7:[function(e,t,n){function r(e){return String(e).match(/^[0-9]+$/)?parseInt(e):Number.isFinite(e)?parseInt(e,10):0}t.exports=function(e,t,n,a){if("string"==typeof t)throw new Error("start cannot be a string");if("string"==typeof n)throw new Error("end cannot be a string");if("string"==typeof a)throw new Error("step cannot be a string");var o=e.length;if(0===a)throw new Error("step cannot be zero");if(a=a?r(a):1,n=n<0?o+n:n,t=r(0===(t=t<0?o+t:t)?0:t||(a>0?0:o-1)),n=r(0===n?0:n||(a>0?o:-1)),t=a>0?Math.max(0,t):Math.min(o,t),n=a>0?Math.min(n,o):Math.max(-1,n),a>0&&n<=t)return[];if(a<0&&t<=n)return[];for(var i=[],s=t;s!=n&&!(a<0&&s<=n||a>0&&s>=n);s+=a)i.push(e[s]);return i}},{}],8:[function(e,t,n){var r=e("util/"),a=Array.prototype.slice,o=Object.prototype.hasOwnProperty,i=t.exports=u;function s(e,t){return r.isUndefined(t)?""+t:r.isNumber(t)&&!isFinite(t)||r.isFunction(t)||r.isRegExp(t)?t.toString():t}function l(e,t){return r.isString(e)?e.length<t?e:e.slice(0,t):e}function c(e,t,n,r,a){throw new i.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:a})}function u(e,t){e||c(e,!0,t,"==",i.ok)}function d(e,t){if(e===t)return!0;if(r.isBuffer(e)&&r.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return r.isDate(e)&&r.isDate(t)?e.getTime()===t.getTime():r.isRegExp(e)&&r.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:r.isObject(e)||r.isObject(t)?function(e,t){if(r.isNullOrUndefined(e)||r.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(r.isPrimitive(e)||r.isPrimitive(t))return e===t;var n=f(e),o=f(t);if(n&&!o||!n&&o)return!1;if(n)return d(e=a.call(e),t=a.call(t));var i,s,l=m(e),c=m(t);if(l.length!=c.length)return!1;for(l.sort(),c.sort(),s=l.length-1;s>=0;s--)if(l[s]!=c[s])return!1;for(s=l.length-1;s>=0;s--)if(!d(e[i=l[s]],t[i]))return!1;return!0}(e,t):e==t}function f(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function p(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||!0===t.call({},e))}function h(e,t,n,a){var o;r.isString(n)&&(a=n,n=null);try{t()}catch(e){o=e}if(a=(n&&n.name?" ("+n.name+").":".")+(a?" "+a:"."),e&&!o&&c(o,n,"Missing expected exception"+a),!e&&p(o,n)&&c(o,n,"Got unwanted exception"+a),e&&o&&n&&!p(o,n)||!e&&o)throw o}i.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return l(JSON.stringify(e.actual,s),128)+" "+e.operator+" "+l(JSON.stringify(e.expected,s),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||c;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,a=r.indexOf("\n"+t.name);if(a>=0){var o=r.indexOf("\n",a+1);r=r.substring(o+1)}this.stack=r}}},r.inherits(i.AssertionError,Error),i.fail=c,i.ok=u,i.equal=function(e,t,n){e!=t&&c(e,t,n,"==",i.equal)},i.notEqual=function(e,t,n){e==t&&c(e,t,n,"!=",i.notEqual)},i.deepEqual=function(e,t,n){d(e,t)||c(e,t,n,"deepEqual",i.deepEqual)},i.notDeepEqual=function(e,t,n){d(e,t)&&c(e,t,n,"notDeepEqual",i.notDeepEqual)},i.strictEqual=function(e,t,n){e!==t&&c(e,t,n,"===",i.strictEqual)},i.notStrictEqual=function(e,t,n){e===t&&c(e,t,n,"!==",i.notStrictEqual)},i.throws=function(e,t,n){h.apply(this,[!0].concat(a.call(arguments)))},i.doesNotThrow=function(e,t){h.apply(this,[!1].concat(a.call(arguments)))},i.ifError=function(e){if(e)throw e};var m=Object.keys||function(e){var t=[];for(var n in e)o.call(e,n)&&t.push(n);return t}},{"util/":11}],9:[function(e,t,n){t.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],10:[function(e,t,n){t.exports=function(e){return e&&"object"===W(e)&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],11:[function(e,t,n){(function(t,r){var a=/%[sdj%]/g;n.format=function(e){if(!y(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,o=r.length,i=String(e).replace(a,(function(e){if("%%"===e)return"%";if(n>=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),l=r[n];n<o;l=r[++n])m(l)||!_(l)?i+=" "+l:i+=" "+s(l);return i},n.deprecate=function(e,a){if(v(r.process))return function(){return n.deprecate(e,a).apply(this,arguments)};if(!0===t.noDeprecation)return e;var o=!1;return function(){if(!o){if(t.throwDeprecation)throw new Error(a);t.traceDeprecation?console.trace(a):console.error(a),o=!0}return e.apply(this,arguments)}};var o,i={};function s(e,t){var r={seen:[],stylize:c};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),h(t)?r.showHidden=t:t&&n._extend(r,t),v(r.showHidden)&&(r.showHidden=!1),v(r.depth)&&(r.depth=2),v(r.colors)&&(r.colors=!1),v(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),u(r,e,r.depth)}function l(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function c(e,t){return e}function u(e,t,r){if(e.customInspect&&t&&S(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var a=t.inspect(r,e);return y(a)||(a=u(e,a,r)),a}var o=function(e,t){if(v(t))return e.stylize("undefined","undefined");if(y(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):h(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}(e,t);if(o)return o;var i=Object.keys(t),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),x(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return d(t);if(0===i.length){if(S(t))return e.stylize("[Function"+(t.name?": "+t.name:"")+"]","special");if(b(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(w(t))return e.stylize(Date.prototype.toString.call(t),"date");if(x(t))return d(t)}var l,c="",_=!1,E=["{","}"];return p(t)&&(_=!0,E=["[","]"]),S(t)&&(c=" [Function"+(t.name?": "+t.name:"")+"]"),b(t)&&(c=" "+RegExp.prototype.toString.call(t)),w(t)&&(c=" "+Date.prototype.toUTCString.call(t)),x(t)&&(c=" "+d(t)),0!==i.length||_&&0!=t.length?r<0?b(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),l=_?function(e,t,n,r,a){for(var o=[],i=0,s=t.length;i<s;++i)A(t,String(i))?o.push(f(e,t,n,r,String(i),!0)):o.push("");return a.forEach((function(a){a.match(/^\d+$/)||o.push(f(e,t,n,r,a,!0))})),o}(e,t,r,s,i):i.map((function(n){return f(e,t,r,s,n,_)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(l,c,E)):E[0]+c+E[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,n,r,a,o){var i,s,l;if((l=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]}).get?s=e.stylize(l.set?"[Getter/Setter]":"[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),A(r,a)||(i="["+a+"]"),s||(e.seen.indexOf(l.value)<0?(s=m(n)?u(e,l.value,null):u(e,l.value,n-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),v(i)){if(o&&a.match(/^\d+$/))return s;(i=JSON.stringify(""+a)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(i=i.substr(1,i.length-2),i=e.stylize(i,"name")):(i=i.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),i=e.stylize(i,"string"))}return i+": "+s}function p(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function m(e){return null===e}function g(e){return"number"==typeof e}function y(e){return"string"==typeof e}function v(e){return void 0===e}function b(e){return _(e)&&"[object RegExp]"===E(e)}function _(e){return"object"===W(e)&&null!==e}function w(e){return _(e)&&"[object Date]"===E(e)}function x(e){return _(e)&&("[object Error]"===E(e)||e instanceof Error)}function S(e){return"function"==typeof e}function E(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}n.debuglog=function(e){if(v(o)&&(o=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!i[e])if(new RegExp("\\b"+e+"\\b","i").test(o)){var r=t.pid;i[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else i[e]=function(){};return i[e]},n.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=p,n.isBoolean=h,n.isNull=m,n.isNullOrUndefined=function(e){return null==e},n.isNumber=g,n.isString=y,n.isSymbol=function(e){return"symbol"===W(e)},n.isUndefined=v,n.isRegExp=b,n.isObject=_,n.isDate=w,n.isError=x,n.isFunction=S,n.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===W(e)||void 0===e},n.isBuffer=e("./support/isBuffer");var C=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function A(e,t){return Object.prototype.hasOwnProperty.call(e,t)}n.log=function(){var e,t;console.log("%s - %s",(t=[k((e=new Date).getHours()),k(e.getMinutes()),k(e.getSeconds())].join(":"),[e.getDate(),C[e.getMonth()],t].join(" ")),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!_(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,e("_process"),void 0!==M?M:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":10,_process:14,inherits:9}],12:[function(e,t,n){},{}],13:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var a=e[r];"."===a?e.splice(r,1):".."===a?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}n.resolve=function(){for(var n="",a=!1,o=arguments.length-1;o>=-1&&!a;o--){var i=o>=0?arguments[o]:e.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");i&&(n=i+"/"+n,a="/"===i.charAt(0))}return(a?"/":"")+(n=t(r(n.split("/"),(function(e){return!!e})),!a).join("/"))||"."},n.normalize=function(e){var o=n.isAbsolute(e),i="/"===a(e,-1);return(e=t(r(e.split("/"),(function(e){return!!e})),!o).join("/"))||o||(e="."),e&&i&&(e+="/"),(o?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var a=r(e.split("/")),o=r(t.split("/")),i=Math.min(a.length,o.length),s=i,l=0;l<i;l++)if(a[l]!==o[l]){s=l;break}var c=[];for(l=s;l<a.length;l++)c.push("..");return(c=c.concat(o.slice(s))).join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,a=!0,o=e.length-1;o>=1;--o)if(47===(t=e.charCodeAt(o))){if(!a){r=o;break}}else a=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},n.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,r=-1,a=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!a){n=t+1;break}}else-1===r&&(a=!1,r=t+1);return-1===r?"":e.slice(n,r)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,r=-1,a=!0,o=0,i=e.length-1;i>=0;--i){var s=e.charCodeAt(i);if(47!==s)-1===r&&(a=!1,r=i+1),46===s?-1===t?t=i:1!==o&&(o=1):-1!==t&&(o=-1);else if(!a){n=i+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===n+1?"":e.slice(t,r)};var a="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:14}],14:[function(e,t,n){var r,a,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var c,u=[],d=!1,f=-1;function p(){d&&c&&(d=!1,c.length?u=c.concat(u):f=-1,u.length&&h())}function h(){if(!d){var e=l(p);d=!0;for(var t=u.length;t;){for(c=u,u=[];++f<t;)c&&c[f].run();f=-1,t=u.length}c=null,d=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===s||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{return a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function g(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new m(e,t)),1!==u.length||d||l(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},{}],15:[function(e,t,n){var r=e("escodegen").generate;t.exports=function(e,t){t||(t={});var n={},a=function e(a,o){if("Literal"===a.type)return a.value;if("UnaryExpression"===a.type){var i=e(a.argument);return"+"===a.operator?+i:"-"===a.operator?-i:"~"===a.operator?~i:"!"===a.operator?!i:n}if("ArrayExpression"===a.type){for(var s=[],l=0,c=a.elements.length;l<c;l++){if((y=e(a.elements[l]))===n)return n;s.push(y)}return s}if("ObjectExpression"===a.type){var u={};for(l=0;l<a.properties.length;l++){var d=null===(v=a.properties[l]).value?v.value:e(v.value);if(d===n)return n;u[v.key.value||v.key.name]=d}return u}if("BinaryExpression"===a.type||"LogicalExpression"===a.type){if((c=e(a.left))===n)return n;var f=e(a.right);if(f===n)return n;var p=a.operator;return"=="===p?c==f:"==="===p?c===f:"!="===p?c!=f:"!=="===p?c!==f:"+"===p?c+f:"-"===p?c-f:"*"===p?c*f:"/"===p?c/f:"%"===p?c%f:"<"===p?c<f:"<="===p?c<=f:">"===p?c>f:">="===p?c>=f:"|"===p?c|f:"&"===p?c&f:"^"===p?c^f:"&&"===p?c&&f:"||"===p?c||f:n}if("Identifier"===a.type)return{}.hasOwnProperty.call(t,a.name)?t[a.name]:n;if("ThisExpression"===a.type)return{}.hasOwnProperty.call(t,"this")?t.this:n;if("CallExpression"===a.type){var h=e(a.callee);if(h===n)return n;if("function"!=typeof h)return n;var m=a.callee.object?e(a.callee.object):n;m===n&&(m=null);var g=[];for(l=0,c=a.arguments.length;l<c;l++){var y;if((y=e(a.arguments[l]))===n)return n;g.push(y)}return h.apply(m,g)}var v;if("MemberExpression"===a.type)return(u=e(a.object))===n||"function"==typeof u?n:"Identifier"===a.property.type?u[a.property.name]:(v=e(a.property))===n?n:u[v];if("ConditionalExpression"===a.type)return(i=e(a.test))===n?n:e(i?a.consequent:a.alternate);if("ExpressionStatement"===a.type)return(i=e(a.expression))===n?n:i;if("ReturnStatement"===a.type)return e(a.argument);if("FunctionExpression"===a.type){var b=a.body.body,_={};for(Object.keys(t).forEach((function(e){_[e]=t[e]})),l=0;l<a.params.length;l++){var w=a.params[l];if("Identifier"!=w.type)return n;t[w.name]=null}for(var l in b)if(e(b[l])===n)return n;t=_;var x=Object.keys(t),S=x.map((function(e){return t[e]}));return Function(x.join(", "),"return "+r(a)).apply(null,S)}if("TemplateLiteral"===a.type){var E="";for(l=0;l<a.expressions.length;l++)E+=e(a.quasis[l]),E+=e(a.expressions[l]);return E+e(a.quasis[l])}if("TaggedTemplateExpression"===a.type){var k=e(a.tag),C=a.quasi,A=C.quasis.map(e),O=C.expressions.map(e);return k.apply(null,[A].concat(O))}return"TemplateElement"===a.type?a.value.cooked:n}(e);return a===n?void 0:a}},{escodegen:12}],jsonpath:[function(e,t,n){t.exports=e("./lib/index")},{"./lib/index":5}]},{},["jsonpath"])("jsonpath")},e.exports=n()}(rT);var aT=rT.exports;const oT=new Set(["i","me","my","myself","we","our","ours","ourselves","you","your","yours","yourself","yourselves","he","him","his","himself","she","her","hers","herself","it","its","itself","they","them","their","theirs","themselves","what","which","who","whom","this","that","these","those","am","is","are","was","were","be","been","being","have","has","had","having","do","does","did","doing","a","an","the","and","but","if","or","because","as","until","while","of","at","by","for","with","about","against","between","into","through","during","before","after","above","below","to","from","up","down","in","out","on","off","over","under","again","further","then","once","here","there","when","where","why","how","all","any","both","each","few","more","most","other","some","such","no","nor","not","only","own","same","so","than","too","very","s","t","can","will","just","don","should","now","0","1","2","3","4","5","6","7","8","9"]);function iT(e,t){for(const[n,r]of t.entries())if(e.startsWith(r))return e.replace(r,String(n));return e}const sT="$PREFIXED_ID";function lT(e,t,n){return t===sT?[iT(e.id,n)]:aT.query(e,t)}function cT(e){return e.toLowerCase().split(/[^\d:A-Za-z]+/).filter((e=>e&&!oT.has(e)))}function*uT(e){for(const t of e)yield*cT(t)}function*dT(e){for(const t of e)if("string"==typeof t)yield t;else if("object"==typeof t){const e=aT.query(t,"$..*");yield*dT(e)}}function*fT(e,t,n){for(const r of t){const t=lT(e,r,n);if(t.length>0)for(const e of uT(dT(t)))yield[r,e]}}async function pT(e,t,n){const r=await this.db,a=t??r.transaction(["nodes"]);YO(n);const o=[...cT(e)],i=[],s=new Map;i.push(...o.map((async(e,t)=>{YO(n);const r=a.objectStore("nodes").index("full-text-words");for await(const a of r.iterate(IDBKeyRange.bound(e,`${e}￿`,!1,!1))){YO(n);const e=a.value,r=s.get(e.id)??[e,new Set];r[1].add(t),s.set(e.id,r)}}))),await Promise.all(i),YO(n);const l=[];for(const[,[e,t]]of s)YO(n),l.push(...hT(this.textIndexFields,e,t,o,this.prefixes));return l.sort(((e,t)=>t.score-e.score)),l.slice(0,this.options.maxSearchResults??this.DEFAULT_MAX_SEARCH_RESULTS)}function hT(e,t,n,r,a){const o=[...n].sort().map((e=>r[e])),i=o.map((e=>{const t=e.replaceAll(/[$()*+./?[\\\]^{|}-]/g,String.raw`\$&`);return new RegExp(`\\b${t}`,"gi")}));let s=[],l=0;for(const[n,o]of e.entries()){const c=new Set,u=e.length-n-1,d=[...dT(lT(t,o.jsonPath,a))];for(const e of d){let n=0;const a=[];for(const[t,o]of i.entries())for(const i of e.matchAll(o)){n+=1+1*u,c.add(t);const o=i.index,s=r[t];void 0!==o&&(n+=.01*s.length,n+=s.length/e.length*100*.05,a.push({wordIndex:t,position:o}))}n+=100*c.size,l<n&&(l=n),a.sort(((e,t)=>e.position-t.position)),a.length>0&&s.push({term:t,field:o,str:e,score:n,wordMatches:a})}}s=s.filter((e=>e.score===l));for(const e of s){const{wordMatches:t}=e;for(let n=0;n<t.length-1;n++){const r=t[n],a=t[n+1],i=a.wordIndex-r.wordIndex;if(1===i||-1===i){e.score+=1,1===i&&(e.score+=1);const t=Math.abs(a.position-(r.position+o[r.wordIndex].length))-1;e.score-=.05*t}}}return s}function mT(e){return"string"==typeof e.id}function gT(e){return"string"==typeof e.sub&&"string"==typeof e.pred&&"string"==typeof e.obj}function yT(e){return Boolean(e.meta?.deprecated)}var vT=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==W(t)&&"object"==W(n)){if(t.constructor!==n.constructor)return!1;var r,a,o;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;var i,s=ve(t.entries());try{for(s.s();!(i=s.n()).done;)if(!n.has((a=i.value)[0]))return!1}catch(e){s.e(e)}finally{s.f()}var l,c=ve(t.entries());try{for(c.s();!(l=c.n()).done;)if(!e((a=l.value)[1],n.get(a[0])))return!1}catch(e){c.e(e)}finally{c.f()}return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;var u,d=ve(t.entries());try{for(d.s();!(u=d.n()).done;)if(!n.has((a=u.value)[0]))return!1}catch(e){d.e(e)}finally{d.f()}return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(t[a]!==n[a])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,o[a]))return!1;for(a=r;0!=a--;){var f=o[a];if(!e(t[f],n[f]))return!1}return!0}return t!=t&&n!=n};async function bT(e){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.blocked,a=n.upgrade,o=n.blocking,i=n.terminated,s=indexedDB.open(e,t),l=qf(s);return a&&s.addEventListener("upgradeneeded",(function(e){a(qf(s.result),e.oldVersion,e.newVersion,qf(s.transaction),e)})),r&&s.addEventListener("blocked",(function(e){return r(e.oldVersion,e.newVersion,e)})),l.then((function(e){i&&e.addEventListener("close",(function(){return i()})),o&&e.addEventListener("versionchange",(function(e){return o(e.oldVersion,e.newVersion,e)}))})).catch((function(){})),l}(e,2,{upgrade(e,t,n,r,a){if(t<2&&(e.objectStoreNames.contains("meta")&&e.deleteObjectStore("meta"),e.objectStoreNames.contains("nodes")&&e.deleteObjectStore("nodes"),e.objectStoreNames.contains("edges")&&e.deleteObjectStore("edges")),e.objectStoreNames.contains("meta")||e.createObjectStore("meta"),!e.objectStoreNames.contains("nodes")){e.createObjectStore("nodes",{keyPath:"id"});const t=r.objectStore("nodes");t.createIndex("by-label","lbl"),t.createIndex("by-type","type"),t.createIndex("by-synonym",["meta","synonyms","val"]),t.createIndex("full-text-words","fullTextWords",{multiEntry:!0})}if(!e.objectStoreNames.contains("edges")){e.createObjectStore("edges",{autoIncrement:!0});const t=r.objectStore("edges");t.createIndex("by-subject","sub"),t.createIndex("by-object","obj"),t.createIndex("by-predicate","pred")}}})}function _T(e){const t=new Set;for(const[,n]of e)t.add(n);return[...t]}async function wT(e){const t=Date.now();let n,r=1;this.options.update?.("Parsing JSON",r);try{n=JSON.parse(await g.openLocation(this.sourceLocation).readFile("utf8"))}catch{throw new Error("Error in loading ontology")}r+=5,this.options.update?.("Parsing JSON complete",r);const a=Date.now(),[o,...i]=n.graphs??[];if(o){if(i.length>0)throw new Error("multiple graphs not supported");try{const n=e.transaction(["meta","nodes","edges"],"readwrite");await n.objectStore("meta").clear(),await n.objectStore("nodes").clear(),await n.objectStore("edges").clear();const i=n.objectStore("nodes"),s=xT.call(this).map((e=>e.jsonPath));if(o.nodes){let e=Math.round(r);for(const[,t]of o.nodes.entries())r+=1/o.nodes.length*64,Math.round(r)!=e&&r<100&&(this.options.update?.("Processing nodes",r),e=Math.round(r)),mT(t)&&await i.add({...t,fullTextWords:_T(fT(t,s,this.prefixes))})}const l=n.objectStore("edges");if(o.edges){let e=Math.round(r);for(const[,t]of o.edges.entries())r+=1/o.edges.length*30,Math.round(r)!=e&&r<100&&(this.options.update?.("Processing edges",r),e=Math.round(r)),gT(t)&&await l.add(t)}await n.done;const c=e.transaction("meta","readwrite"),{update:u,...d}=this.options;await c.objectStore("meta").add({ontologyRecord:{name:this.ontologyName,version:this.ontologyVersion,sourceLocation:this.sourceLocation},storeOptions:d,graphMeta:o.meta,timestamp:String(new Date),schemaVersion:2,timings:{overall:Date.now()-t,load:Date.now()-a}},"meta"),await c.done}catch(t){throw await e.transaction("meta","readwrite").objectStore("meta").clear(),t}}}function xT(){return[{displayName:"ID",jsonPath:sT},...this.options.textIndexing?.indexFields??AT]}async function ST(e){const[t]=await e.transaction("meta").objectStore("meta").getAll();return!!t&&vT(this.options.prefixes,t.storeOptions.prefixes)&&vT(this.options.textIndexing,t.storeOptions.textIndexing)}class ET{ontologyName;ontologyVersion;sourceLocation;db;options;loadOboGraphJson=wT;getTermsByFulltext=pT;openDatabase=bT;isDatabaseCurrent=ST;get textIndexFields(){return xT.call(this)}get prefixes(){return this.options.prefixes??new Map}DEFAULT_MAX_SEARCH_RESULTS=100;constructor(e,t,n,r){this.ontologyName=e,this.ontologyVersion=t,this.sourceLocation=n,this.options=r??{},this.db=this.prepareDatabase()}validate(){const e=[],{sourceLocation:t,sourceType:n}=this;return n?"obo-graph-json"!==n&&e.push(new Error(`ontology source file ${JSON.stringify(t)} has type ${n}, which is not yet supported`)):e.push(new Error(`unable to determine format of ontology source file ${JSON.stringify(t)}, file name must end with ".json", ".obo", or ".owl"`)),e}get sourceType(){if(n.isUriLocation(this.sourceLocation)){if(this.sourceLocation.uri.endsWith(".json"))return"obo-graph-json"}else if(n.isLocalPathLocation(this.sourceLocation)&&this.sourceLocation.localPath.endsWith(".json"))return"obo-graph-json"}get dbName(){return`Apollo Ontology "${this.ontologyName}" "${this.ontologyVersion}"`}async prepareDatabase(){const e=this.validate();if(e.length>0)throw e;const t=await this.openDatabase(this.dbName);if(await this.isDatabaseCurrent(t))return t;try{const{options:e,sourceLocation:n,sourceType:r}=this;if("obo-graph-json"!==r)throw new Error(`ontology source file ${JSON.stringify(n)} has type ${r}, which is not yet supported`);return e.update?.("",0),await this.loadOboGraphJson(t),e.update?.("",100),t}catch(e){throw t.close(),await function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).blocked,n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(function(e){return t(e.oldVersion,e)})),qf(n).then((function(){}))}(this.dbName),e}}async termCount(e){const t=await this.db;return(e??t.transaction("nodes")).objectStore("nodes").count()}unique(e){const t=new Map,n=[];for(const r of e)t.has(r.id)||(t.set(r.id,!0),n.push(r));return n}async getTermsWithLabelOrSynonym(e,t,n){const r=t?.includeSubclasses??!0,a=await this.db,o=n??a.transaction(["nodes","edges"]),i=o.objectStore("nodes"),s=[...await i.index("by-label").getAll(e),...await i.index("by-synonym").getAll(e)];if(r){const e=await this.recurseEdges("by-object",s.map((e=>e.id)),(e=>"is_a"===e.pred),"sub",o);for(const t of e){const e=await i.get(t);e&&s.push(e)}}return s}async getPropertiesByLabel(e,t,n){const r=t?.includeSubProperties??!0,a=await this.db,o=n??a.transaction(["nodes","edges"]),i=(await this.getTermsWithLabelOrSynonym(e,{includeSubclasses:!1},o)).filter((e=>NT(e)));if(r){const e=await this.recurseEdges("by-object",i.map((e=>e.id)),(e=>"subPropertyOf"===e.pred),"sub",o),t=o.objectStore("nodes");for(const n of e){const e=await t.get(n);e&&NT(e)&&i.push(e)}}return i}async recurseEdges(e,t,n,r,a){const o=new Set;return await async function t(i){await Promise.all([...i].map((async i=>{const s=(await a.objectStore("edges").index(e).getAll(i)).filter((e=>n(e))).map((e=>e[r]));if(s.length>0){for(const e of s)o.add(e);await t(s)}})))}(t),o.values()}async*expandNodeSet(e,t="is_a",n,r){const a=await this.db,o=r??a.transaction(["edges"]),i=[...e],s=await this.recurseEdges("subclasses"===n?"by-object":"by-subject",i,(e=>e.pred===t),"subclasses"===n?"sub":"obj",o);for(const e of i)yield e;for(const e of s)yield e}expandSubclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"subclasses",n)}expandSuperclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"superclasses",n)}async getClassesThat(e,t,n){const r=await this.db,a=n??r.transaction(["nodes","edges"]),o=await this.getPropertiesByLabel(e,{includeSubProperties:!0},a),i=new Set(o.map((e=>e.id))),s=await async function(e){const t=[];for await(const n of e)t.push(n);return t}(this.expandSuperclasses(t.map((e=>e.id)),"is_a",a)),l=await this.recurseEdges("by-object",s,(e=>i.has(e.pred)),"sub",a),c=this.expandSubclasses(l,"is_a",a),u=[];for await(const e of c){const t=await a.objectStore("nodes").get(e);t&&TT(t)&&!yT(t)&&u.push(t)}return u}async getClassesWithoutPropertyLabeled(e,t,n){const r=await this.db,a=n??r.transaction(["nodes","edges"]),o=a.objectStore("nodes"),i=a.objectStore("edges"),s=(await this.getPropertiesByLabel(e,t,a)).map((e=>e.id)),l=await(async()=>{const e=new Set;for(const t of s)for await(const n of i.index("by-predicate").iterate(t))e.add(n.value.sub);const t=new Set;for await(const n of this.expandSubclasses(e,"is_a",a))t.add(n);return t})(),c=[];for await(const e of o){const t=e.value;TT(t)&&!l.has(t.id)&&c.push(t.id)}const u=[];for(const e of c){const t=await a.objectStore("nodes").get(e);t&&TT(t)&&!yT(t)&&u.push(t)}return u}async getAllClasses(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").index("by-type").getAll("CLASS")).filter((e=>!yT(e)))}async getAllTerms(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").getAll()).filter((e=>!yT(e)))}}const kT=r.types.model("OntologyRecord",{name:r.types.string,version:"unversioned",source:r.types.union(m.LocalPathLocation,m.UriLocation,m.BlobLocation),options:r.types.frozen(),equivalentTypes:r.types.map(r.types.array(r.types.string))}).volatile((e=>({dataStore:void 0,startedEquivalentTypeRequests:new Set}))).actions((e=>({ping(){},initDataStore(){e.dataStore=new ET(e.name,e.version,r.getSnapshot(e.source),e.options)},afterCreate(){r.addDisposer(e,c.autorun((()=>{this.initDataStore()})))},setEquivalentTypes(t,n){e.equivalentTypes.set(t,n)}}))).actions((e=>({loadEquivalentTypes:r.flow((function*(t){if(!e.dataStore)return;if(e.startedEquivalentTypeRequests.has(t))return;e.startedEquivalentTypeRequests.add(t);const n=(yield e.dataStore.getTermsWithLabelOrSynonym(t)).map((e=>e.lbl)).filter((e=>null!=e));r.isAlive(e)&&e.setEquivalentTypes(t,n)}))}))).actions((e=>({afterCreate(){c.autorun((t=>{e.dataStore&&(e.loadEquivalentTypes("gene"),e.loadEquivalentTypes("pseudogene"),e.loadEquivalentTypes("transcript"),e.loadEquivalentTypes("pseudogenic_transcript"),e.loadEquivalentTypes("CDS"),e.loadEquivalentTypes("mRNA"),t.dispose())}))},setEquivalentTypes(t,n){e.equivalentTypes.set(t,n)}}))).views((e=>({isTypeOf(t,n){if(t===n)return!0;if(!e.dataStore)return!1;const r=e.equivalentTypes.get(n);return r?r.includes(t):(e.loadEquivalentTypes(n),!1)}}))),CT=r.types.model("OntologyManager",{ontologies:r.types.array(kT),prefixes:r.types.optional(r.types.map(r.types.string),{"GO:":"http://purl.obolibrary.org/obo/GO_","SO:":"http://purl.obolibrary.org/obo/SO_"})}).views((e=>({get featureTypeOntologyName(){const t=r.getRoot(e).jbrowse.configuration;return a.readConfObject(t.ApolloPlugin,"featureTypeOntologyName")}}))).views((e=>({get featureTypeOntology(){return this.findOntology(e.featureTypeOntologyName)},findOntology:(t,n)=>e.ontologies.find((e=>e.name===t&&(void 0===n||e.version===n))),openOntology(e,t){return this.findOntology(e,t)?.dataStore},applyPrefixes:t=>iT(t,e.prefixes),expandPrefixes:t=>function(e,t){for(const[n,r]of t.entries())if(e.startsWith(String(n)))return e.replace(String(n),r);return e}(t,e.prefixes)}))).actions((e=>({addOntology(t,n,r,a){const o=e.ontologies.push({name:t,version:n,source:r,options:{prefixes:new Map(e.prefixes.entries()),...a}});e.ontologies[o-1].ping()}}))),AT=[{displayName:"Label",jsonPath:"$.lbl"},{displayName:"Synonym",jsonPath:"$.meta.synonyms[*].val"},{displayName:"Definition",jsonPath:"$.meta.definition.val"}],OT=a.ConfigurationSchema("OntologyRecord",{name:{type:"string",description:'the full name of the ontology, e.g. "Gene Ontology"',defaultValue:"My Ontology"},version:{type:"string",description:"the ontology's version string",defaultValue:"unversioned"},source:{type:"fileLocation",description:"the download location for the ontology's source file",defaultValue:{locationType:"UriLocation",uri:"http://example.com/myontology.json"}},textIndexFields:{type:"frozen",description:"JSON paths for text fields that will be indexed for text searching",defaultValue:AT}});function TT(e){return"CLASS"===e.type}function NT(e){return"PROPERTY"===e.type}async function IT(e,t,n){if(!e)return;const r=await t.getTermsWithLabelOrSynonym(e.type,{includeSubclasses:!1}),a=r.filter(TT);if(0===r.length)return;const o=await t.getClassesThat("part_of",a);return 0!==o.length?o:void 0}function RT({fetchValidTerms:e,filterTerms:t,includeDeprecated:n,onChange:r,ontologyName:a,ontologyVersion:o,renderInput:i,session:s,style:c,value:d}){const[f,p]=u.useState(!1),[h,m]=u.useState(),[g,y]=u.useState(""),[v,b]=u.useState(),{ontologyManager:_}=s.apolloDataStore,w=_.findOntology(a,o)?.dataStore,x=w&&f&&!h,S=w&&!v,E=u.useCallback((e=>(n||!yT(e))&&(!t||t(e))),[t,n]);u.useEffect((()=>{const e=new AbortController,{signal:t}=e;return S&&async function(e,t,n,r){if(!t)return;const a=(await e.getTermsWithLabelOrSynonym(t,{includeSubclasses:!1})).find((e=>(n??(()=>!0))(e)));if(!a)throw new Error(`not a valid ${e.ontologyName} term`);return a}(w,d,E).then((e=>{y(""),t.aborted||b(e)}),(e=>{t.aborted||KO(e)||y(String(e))})),()=>{e.abort("OntologyTermAutocomplete matcher")}}),[s,d,E,w,S]),u.useEffect((()=>{const t=new AbortController,{signal:n}=t;return x&&async function(e,t,n,r){let a;if(t){const n=await t(e,r);n&&(a=n)}return a||(a=await e.getAllTerms()),n?a.filter((e=>n(e))):a}(w,e,E,n).then((e=>{e&&!n.aborted&&m(e)}),(e=>{n.aborted||KO(e)||s.notify(e instanceof Error?e.message:String(e),"error")})),()=>{t.abort("OntologyTermAutocomplete loader")}}),[x,E,w,s,e]);const k={};return g&&(k.error=!0,k.helperText=g),T.default.createElement(l.Autocomplete,{style:c,autoComplete:!0,filterSelectedOptions:!0,disableClearable:!0,selectOnFocus:!0,clearOnBlur:!0,handleHomeEndKeys:!0,freeSolo:!0,value:d,options:h??[],onOpen:()=>{p(!0)},onClose:()=>{p(!1)},loading:x,renderInput:i??(e=>T.default.createElement(l.TextField,{...e,...k})),getOptionLabel:e=>"string"==typeof e?e:e.lbl??"",isOptionEqualToValue:(e,t)=>e.lbl===t.lbl,onChange:(e,t)=>{t&&("string"==typeof t?(b(void 0),r(d,t)):t.lbl!==d&&(y(""),b(t),r(d,t.lbl)))}})}function FT({changeManager:e,handleClose:t,session:n,sourceAssemblyId:r,sourceFeature:a}){const[o,i]=u.useState(String(a.max)),[s,c]=u.useState(String(a.min+1)),[d,f]=u.useState(""),[p,h]=u.useState(""),[m,g]=u.useState(""),y=Number(o)<=Number(s);return T.default.createElement(xf,{open:!0,title:"Add new child feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog"},T.default.createElement("form",{onSubmit:function(i){i.preventDefault(),h("");const l=(new Hn).toHexString(),c=new Xn.AddFeatureChange({changedIds:[a._id],typeName:"AddFeatureChange",assembly:r,addedFeature:{_id:l,refSeq:a.refSeq,min:Number(s)-1,max:Number(o),type:d},parentFeatureId:a._id});e.submit(c).then((()=>{n.apolloSetSelectedFeature(l)})),t(),i.preventDefault()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:s,onChange:e=>{c(e.target.value)}}),T.default.createElement(l.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:o,onChange:e=>{i(e.target.value)},error:y,helperText:y?'"End" must be greater than "Start"':null}),T.default.createElement(RT,{session:n,ontologyName:"Sequence Ontology",style:{width:170},value:d,filterTerms:TT,fetchValidTerms:async function(e,t,n){const r=await IT(e,t);if(r)return r;g(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,a),renderInput:e=>T.default.createElement(l.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(m),helperText:m}),onChange:(e,t)=>{var n;t&&(n=t,h(""),f(n))}})),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit",disabled:y||!(s&&o&&d)},"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),p?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},p)):null)}class PT{clientStore;constructor(e){this.clientStore=e}}class MT{dataStore;constructor(e){this.dataStore=e}recentChanges=[];undoneChanges=[];async submit(e,t={}){const{addToRecents:r=!0,submitToBackend:a=!0,updateJobsManager:o=!1}=t,i=n.getSession(this.dataStore),s=new AbortController,{jobsManager:l,isLocked:c,changeInProgress:u,setChangeInProgress:d}=n.getSession(this.dataStore);if(c)return i.notify("Cannot submit changes in locked mode"),void d(!1);if(u)return void i.notify("Could not submit change, there is another change still in progress");d(!0);const f={name:e.typeName,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{s.abort("ChangeManager")}};o&&l.runJob(f);const p=await Xn.validationRegistry.frontendPreValidate(e);if(!p.ok){const e=`Pre-validation failed: "${p.resultsMessages}"`;return o&&l.abortJob(f.name,e),i.notify(e,"error"),void d(!1)}try{await e.execute(this.dataStore)}catch(e){return o&&l.abortJob(f.name,String(e)),console.error(e),i.notify(`Error encountered in client: ${String(e)}. Data may be out of sync, please refresh the page`,"error"),void d(!1)}if((await Xn.validationRegistry.frontendPostValidate(e,this.dataStore)).ok||await this.undo(e),a){o&&l.update(f.name,"Submitting to driver");const{collaborationServerDriver:n,getBackendDriver:a}=this.dataStore,s=L.isAssemblySpecificChange(e)?a(e.assembly)??n:n;let c;try{c=await s.submitChange(e,t)}catch(t){return o&&l.abortJob(f.name,String(t)),console.error(t),i.notify(String(t),"error"),await this.undo(e,!1),void d(!1)}if(!c.ok){const t=`Post-validation failed: "${p.resultsMessages}"`;return o&&l.abortJob(f.name,t),i.notify(t,"error"),await this.undo(e,!1),void d(!1)}e.notification&&i.notify(e.notification,"success"),r&&(this.recentChanges.push(e),this.undoneChanges=[])}o&&l.done(f),d(!1)}async undo(e,t=!0){const n=e.getInverse();return this.submit(n,{submitToBackend:t,addToRecents:!1})}async redo(e,t=!0){return this.submit(e,{submitToBackend:t,addToRecents:!1})}async undoLastChange(){const e=n.getSession(this.dataStore),t=this.recentChanges.pop();if(t)return this.undoneChanges.push(t),this.undo(t);e.notify("No changes to undo!","info")}async redoLastChange(){const e=n.getSession(this.dataStore),t=this.undoneChanges.pop();if(t)return this.recentChanges.push(t),this.redo(t);e.notify("No changes to redo!","info")}}class DT extends PT{inFlight=new Map;refSeqMaps=new Map;async fetch(e,t,n){return e.getFetcher({locationType:"UriLocation",uri:t.toString()})(t,n)}async searchFeatures(e,t){const n=this.clientStore.getInternetAccount(t[0]),{baseURL:r}=n,a=new URL("features/searchFeatures",r),o=new URLSearchParams({assemblies:t.join(","),term:e});a.search=o.toString();const i=a.toString(),s=await this.fetch(n,i);if(!s.ok){const e=await bf(s,"searchFeatures failed");throw new Error(e)}return s.json()}async getFeatures(e){const{assemblyName:t,end:r,refName:a,start:o}=e,{assemblyManager:i}=n.getSession(this.clientStore);if(!i.get(t))throw new Error(`Could not find assembly with name "${t}"`);const s=(await this.getRefSeqMapping(t)).get(a);if(!s)throw new Error(`Could not find refSeq "${a}"`);const l=s.id,c=this.clientStore.getInternetAccount(t),{baseURL:u}=c,d=new URL("features/getFeatures",u),f=new URLSearchParams({refSeq:l,start:String(o),end:String(r)});d.search=f.toString();const p=d.toString(),h=await this.fetch(c,p);if(!h.ok){const e=await bf(h,"getFeatures failed");throw new Error(e)}return this.checkSocket(t,a,c),h.json()}checkSocket(e,t,n){const{socket:r}=n,a=n.retrieveToken();if(!a)return;const o=Xn.makeUserSessionId(a),i=`${e}-${t}`,s=new MT(this.clientStore);r.hasListeners(i)||r.on(i,(async e=>{if(n.setLastChangeSequenceNumber(Number(e.changeSequence)),e.userSessionId===o)return;const t=L.Change.fromJSON(e.changeInfo);L.isFeatureChange(t)&&this.haveDataForChange(t)&&await s.submit(t,{submitToBackend:!1})}))}haveDataForChange(e){const{assembly:t,changedIds:n}=e;if(!this.clientStore.assemblies.get(t))return!1;for(const e of n)if(this.clientStore.getFeature(e))return!0;return!1}async getSequence(e){const t=`${e.refName}:${e.start}-${e.end}`,r=this.inFlight.get(t),{assemblyName:a,end:o,refName:i,start:s}=e,{assemblyManager:l}=n.getSession(this.clientStore);if(!l.get(a))throw new Error(`Could not find assembly with name "${a}"`);const c=(await this.getRefSeqMapping(a)).get(i);if(!c)throw new Error(`Could not find refSeq "${i}"`);const u=c.id;if(r)return{seq:await r,refSeq:u};let d=this.clientStore.assemblies.get(a);d||(d=this.clientStore.addAssembly(a));let f=d.refSeqs.get(u);f||(f=d.addRefSeq(u,i));const p=f.getSequence(s,o);if(p.length===o-s)return{seq:p,refSeq:u};const h=this.clientStore.getInternetAccount(a),{baseURL:m}=h,g=new URL("sequence",m),y=new URLSearchParams({refSeq:u,start:String(s),end:String(o)});g.search=y.toString();const v=g.toString(),b=this.getSeqFromServer(h,v,f,s,o);this.inFlight.set(t,b);const _=await b;return this.checkSocket(a,i,h),this.inFlight.delete(t),{seq:_,refSeq:u}}async getSeqFromServer(e,t,n,r,a){const o=await this.fetch(e,t);if(!o.ok){let e;try{e=await o.text()}catch{e=""}throw new Error(`getSequence failed: ${o.status} (${o.statusText})${e?` (${e})`:""}`)}const i=await o.text();return n.addSequence({sequence:i,start:r,stop:a}),i}async getRefSeqMapping(e){const t=this.refSeqMaps.get(e);if(t)return t;const{assemblyManager:r}=n.getSession(this.clientStore);if(!r.get(e))throw new Error(`Could not find assembly with name "${e}"`);const a=this.clientStore.getInternetAccount(e),{baseURL:o}=a,i=new URL("refSeqs",o),s=new URLSearchParams({assembly:e});i.search=s.toString();const l=i.toString(),c=await this.fetch(a,l);if(!c.ok){let e;try{e=await c.text()}catch{e=""}throw new Error(`getRefNameAliases failed: ${c.status} (${c.statusText})${e?` (${e})`:""}`)}const u=await c.json(),d=new Map(u.map((e=>[e.name,{refName:e.name,id:e._id,aliases:e.aliases}])));return this.refSeqMaps.set(e,d),d}async getRefNameAliases(e){return[...(await this.getRefSeqMapping(e)).values()].map((e=>({refName:e.refName,aliases:[...new Set([e.id,...e.aliases])],uniqueId:`alias-${e.id}`})))}async getRefSeqId(e,t){const n=await this.getRefSeqMapping(e);if(!n)return;const r=n.get(t);return r?.id}async getRegions(e){const{assemblyManager:t}=n.getSession(this.clientStore);if(!t.get(e))throw new Error(`Could not find assembly with name "${e}"`);const r=this.clientStore.getInternetAccount(e),{baseURL:a}=r,o=new URL("refSeqs",a),i=new URLSearchParams({assembly:e});o.search=i.toString();const s=o.toString(),l=await this.fetch(r,s);if(!l.ok){let e;try{e=await l.text()}catch{e=""}throw new Error(`getRegions failed: ${l.status} (${l.statusText})${e?` (${e})`:""}`)}return(await l.json()).map((e=>({refName:e.name,start:0,end:e.length})))}getAssemblies(e){const{assemblyManager:t}=n.getSession(this.clientStore);return t.assemblies.filter((t=>{const n=a.getConf(t,["sequence","metadata"]);return!(!(n&&n.apollo&&n.internetAccountConfigId)||e&&n.internetAccountConfigId!==e)}))}async submitChange(e,t={}){const{internetAccountId:n}=t,r=this.clientStore.getInternetAccount("assembly"in e?e.assembly:void 0,n),{baseURL:a}=r,o=new URL("changes",a).href,i=await this.fetch(r,o,{method:"POST",body:JSON.stringify(e.toJSON()),headers:{"Content-Type":"application/json"}});if(!i.ok){const e=await bf(i,"submitChange failed");throw new Error(e)}const s=new Xn.ValidationResultSet;return i.ok||(s.ok=!1),s}}class jT extends PT{async getFeatures(){return[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:a}=e,o=this.clientStore.assemblies.get(t);if(!o)return{seq:"",refSeq:r};const i=o.refSeqs.get(r);return i?{seq:i.getSequence(a,n),refSeq:r}:{seq:"",refSeq:r}}async getRefNameAliases(e){const t=this.clientStore.assemblies.get(e),n=[];if(!t)return n;for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getRegions(e){const t=this.clientStore.assemblies.get(e);if(!t)return[];const n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=n.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=a.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.file&&!t.internetAccountConfigId)}))}async submitChange(e,t={}){const{clientStore:n}=this,{assemblies:r}=n;n.clearCheckResults();for(const[,e]of r)if("InMemoryFileDriver"===e.backendDriverType){const t=await Wd(e);n.addCheckResults(t)}return new Xn.ValidationResultSet}async searchFeatures(e,t){return[]}}class LT extends PT{async loadAssembly(e){const{assemblyManager:t}=n.getSession(this.clientStore),r=t.get(e);if(!r)throw new Error(`Assembly ${e} not found`);const{file:o}=a.getConf(r,["sequence","metadata"]),i=require("node:fs");return Vd(e,await i.promises.readFile(o,"utf8"),this.clientStore)}async getAssembly(e){let t=this.clientStore.assemblies.get(e);return t||(t=await this.loadAssembly(e)),t}async getRefNameAliases(e){const t=await this.getAssembly(e),n=[];for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getFeatures(e){return await this.getAssembly(e.assemblyName),[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:a}=e,o=(await this.getAssembly(t)).refSeqs.get(r);if(!o)throw new Error(`refSeq ${r} not found in client data store`);return{seq:o.getSequence(a,n),refSeq:r}}async getRegions(e){const t=await this.getAssembly(e),n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=n.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=a.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.internetAccountConfigId&&t.file)}))}async submitChange(e){if(!L.isAssemblySpecificChange(e))throw new Error(`Cannot use this type of change with local file: "${e.typeName}"`);const{assemblyManager:t}=n.getSession(this.clientStore),o=t.get(e.assembly);if(!o)throw new Error(`Could not find assembly with name "${e.assembly}"`);const{file:i}=a.getConf(o,["sequence","metadata"]),s=this.clientStore.assemblies.get(e.assembly);if(!s)throw new Error(`Could not find assembly in client with name "${e.assembly}"`);const l=new Set(...s.refSeqs.keys()),{checkResults:c}=this.clientStore;for(const e of c.values())l.has(e.refSeq)&&c.delete(e._id);const u=await Wd(s);this.clientStore.addCheckResults(u);const d=[{directive:"gff-version",value:"3"}];for(const[,e]of s.refSeqs)d.push({directive:"sequence-region",value:`${e.name} 1 ${e.sequence[0].stop}`});for(const e of s.comments)d.push({comment:e});for(const[,e]of s.refSeqs){const{features:t}=e;for(const[,e]of t)d.push(Xn.annotationFeatureToGFF3(r.getSnapshot(e)))}for(const[,e]of s.refSeqs){const[t]=e.sequence,n=Xn.splitStringIntoChunks(t.sequence,80).join("\n");d.push({id:e.name,description:e.description,sequence:n})}const f=wd.formatSync(d),p=require("node:fs");return await p.promises.writeFile(i,f,"utf8"),new Xn.ValidationResultSet}async searchFeatures(e,t){return[]}}var qT;function BT(e,t,n,r){const a={_id:(new Hn).toHexString(),refSeq:e,type:"CDS",min:n,max:r,strand:t},o={_id:(new Hn).toHexString(),refSeq:e,type:"exon",min:n,max:r,strand:t},i={};return i[a._id]=a,i[o._id]=o,{_id:(new Hn).toHexString(),refSeq:e,type:"mRNA",min:n,max:r,strand:t,children:i}}function UT({changeManager:e,handleClose:t,region:n,session:r}){const[a,o]=u.useState(String(n.end)),[i,s]=u.useState(String(n.start+1)),[c,d]=u.useState(qT.GENE_AND_SUBFEATURES),[f,p]=u.useState(""),[h,m]=u.useState(),[g,y]=u.useState(""),v=Number(a)<=Number(i);let b=Boolean(v)||!(i&&a&&c);return(c===qT.CUSTOM&&!f||!h&&c===qT.GENE_AND_SUBFEATURES||!h&&c===qT.TRANSCRIPT_AND_SUBFEATURES)&&(b=!0),T.default.createElement(xf,{open:!0,title:"Add new feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog"},T.default.createElement("form",{onSubmit:async function(o){o.preventDefault(),y("");const s=r.apolloDataStore.getBackendDriver(n.assemblyName);if(!s)return void y("No backend driver found");let l=n.refName;if(s instanceof DT){const e=await s.getRefSeqId(n.assemblyName,n.refName);if(!e)return void y(`Could not find refSeq for "${n.refName}"`);l=e}if(c===qT.GENE_AND_SUBFEATURES){const o=BT(l,h,Number(i)-1,Number(a)),s={};s[o._id]=o;const c=(new Hn).toHexString(),u=new Xn.AddFeatureChange({changedIds:[c],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:{_id:c,refSeq:l,min:Number(i)-1,max:Number(a),type:"gene",strand:h,children:s}});return e.submit(u).then((()=>{r.apolloSetSelectedFeature(c)})),void t()}if(c===qT.TRANSCRIPT_AND_SUBFEATURES){const o=BT(l,h,Number(i)-1,Number(a)),s=new Xn.AddFeatureChange({changedIds:[o._id],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:o});return e.submit(s).then((()=>{r.apolloSetSelectedFeature(o._id)})),void t()}if(!f)return void y("No type selected");const u=(new Hn).toHexString(),d=new Xn.AddFeatureChange({changedIds:[u],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:{_id:u,refSeq:l,min:Number(i)-1,max:Number(a),type:f,strand:h}});e.submit(d).then((()=>{r.apolloSetSelectedFeature(u)})),t()},"data-testid":"submit-form"},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:Number(i),onChange:e=>{s(e.target.value)}}),T.default.createElement(l.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:a,onChange:e=>{o(e.target.value)},error:v,helperText:v?'"End" must be greater than "Start"':null}),T.default.createElement(l.FormControl,null,T.default.createElement(l.InputLabel,{id:"demo-simple-select-label"},"Strand"),T.default.createElement(l.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Strand",value:h?.toString(),onChange:function(e){switch(y(""),Number(e.target.value)){case 1:m(1);break;case-1:m(-1);break;default:m(void 0)}}},T.default.createElement(l.MenuItem,{value:void 0}),T.default.createElement(l.MenuItem,{value:1},"+"),T.default.createElement(l.MenuItem,{value:-1},"-"))),T.default.createElement(l.FormControl,{style:{marginTop:20}},T.default.createElement(l.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:qT.GENE_AND_SUBFEATURES,name:"radio-buttons-group",value:c,onChange:e=>{y("");const{value:t}=e.target;Object.keys(qT).includes(t)&&d(qT[t])}},T.default.createElement(l.FormControlLabel,{value:qT.GENE_AND_SUBFEATURES,control:T.default.createElement(l.Radio,null),label:T.default.createElement(l.Box,{display:"flex",alignItems:"center"},"Add gene and sub-features",T.default.createElement(l.Tooltip,{title:"This is a shortcut to create a gene with a single mRNA, exon, and CDS"},T.default.createElement(l.IconButton,{size:"small"},T.default.createElement(yd,{sx:{fontSize:18}}))))}),T.default.createElement(l.FormControlLabel,{value:qT.TRANSCRIPT_AND_SUBFEATURES,control:T.default.createElement(l.Radio,null),label:T.default.createElement(l.Box,{display:"flex",alignItems:"center"},"Add transcript and sub-features",T.default.createElement(l.Tooltip,{title:"This is a shortcut to create a single mRNA with exon and CDS, but without a parent gene"},T.default.createElement(l.IconButton,{size:"small"},T.default.createElement(yd,{sx:{fontSize:18}}))))}),T.default.createElement(l.FormControlLabel,{value:qT.CUSTOM,checked:c!==qT.GENE_AND_SUBFEATURES&&c!==qT.TRANSCRIPT_AND_SUBFEATURES,control:T.default.createElement(l.Radio,null),label:"Add feature with a sequence ontology type"}))),c===qT.CUSTOM?T.default.createElement(RT,{session:r,ontologyName:"Sequence Ontology",style:{width:170},value:f,filterTerms:TT,renderInput:e=>T.default.createElement(l.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0}),onChange:(e,t)=>{var n;t&&(n=t,y(""),p(n))}}):null),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit",disabled:b},"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),g?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},g)):null)}function zT(e,t){const n=(new Hn).toHexString();t.push(n);const r={};if(e.children)for(const n of Object.values(e.children)){const e=zT(n,t);r[e._id]=e}const a="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return{...e,refSeq:a,children:e.children&&r,_id:n}}function GT({changeManager:e,handleClose:t,session:n,sourceAssemblyId:o,sourceFeature:i}){const{assemblyManager:s}=n,c=s.assemblyList,[d,f]=u.useState(c.find((e=>e.name!==o))?.name),[p,h]=u.useState([]),[m,g]=u.useState(""),[y,v]=u.useState(i.min),[b,_]=u.useState("");function w(e,t){const n={};if(e.children)for(const r of Object.values(e.children)){const e=w(r,t);e.refSeq=m,e.min=e.min+t,e.max=e.max+t,n[e._id]=e}const r="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString(),a="string"==typeof e._id?e._id:e._id.toHexString();return{...e,refSeq:r,children:e.children&&n,_id:a}}return u.useEffect((()=>{(async function(){if(g(""),!d)return void _("No assemblies to copy to");const e=await s.waitForAssembly(d);if(!e)return;const{refNameAliases:t}=e;if(!t)return;const n=[...Object.entries(t)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t})));h(n),g(n[0]?._id||"")})().catch((e=>{_(String(e))}))}),[d,s]),T.default.createElement(xf,{open:!0,title:"Copy features and annotations",handleClose:t,maxWidth:!1,"data-testid":"copy-feature"},T.default.createElement("form",{onSubmit:async function(a){if(!d)return;a.preventDefault(),_("");const o=i.length,l=await s.waitForAssembly(d);if(!l)return void _(`Assembly not found: ${d}.`);const c=l.getCanonicalRefName(m),u=l.regions?.find((e=>e.refName===c));if(!u)return void _(`RefSeq not found: ${m}.`);const f=y+o;if(f>u.end)return void _(`Feature would extend beyond the bounds of the selected reference sequence. (Feature would end at ${f}, but reference sequence ends at ${u.end})`);if(y<u.start)return void _(`Reference sequence starts at ${u.start}, feature cannot start before that.`);const p=[],h=zT(r.getSnapshot(i),p),g={...h.attributes};"Parent"in g&&delete g.Parent,h.refSeq=m;const v=y-h.min;h.min=y,h.max=y+o;const b=w(h,v),x=new Xn.AddFeatureChange({changedIds:[h._id],typeName:"AddFeatureChange",assembly:d,addedFeature:{_id:h._id,refSeq:h.refSeq,min:h.min,max:h.max,type:h.type,children:b.children,attributes:g,strand:h.strand},copyFeature:!0,allIds:p});e.submit(x).then((()=>{n.apolloSetSelectedFeature(h._id)})),t(),a.preventDefault()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.DialogContentText,null,"Target assembly"),T.default.createElement(l.Select,{labelId:"label",value:d,onChange:function(e){f(e.target.value)}},c.filter((e=>e.name!==o)).map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},a.readConfObject(e,"displayName"))))),T.default.createElement(l.DialogContentText,null,"Target reference sequence"),T.default.createElement(l.Select,{labelId:"label",value:m,onChange:function(e){g(e.target.value)}},p.map((e=>T.default.createElement(l.MenuItem,{key:e._id,value:e._id},e.name)))),T.default.createElement(l.DialogContentText,null,"Start position in target reference sequence"),T.default.createElement(l.TextField,{margin:"dense",type:"number",fullWidth:!0,variant:"outlined",value:y,onChange:e=>{v(Number(e.target.value))}})),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{disabled:!d||!m||!y,variant:"contained",type:"submit"},"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),b?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},b)):null)}function HT({changeManager:e,handleClose:t,session:n}){const{internetAccounts:a}=r.getRoot(n),[o,i]=u.useState(""),[s,c]=u.useState(!1),[d,f]=u.useState(!1),p=a.filter((e=>"ApolloInternetAccount"===e.type));if(0===p.length)throw new Error("No Apollo internet account found");const[h,m]=u.useState(p[0]),{collaborationServerDriver:g}=n.apolloDataStore,y=g.getAssemblies(),[v,b]=u.useState(y.at(0));return T.default.createElement(xf,{open:!0,title:"Delete Assembly",handleClose:t,maxWidth:!1,"data-testid":"delete-assembly"},T.default.createElement("form",{onSubmit:async function(n){if(n.preventDefault(),f(!0),i(""),!v)return void i("Must select assembly!");const r=new Xn.DeleteAssemblyChange({typeName:"DeleteAssemblyChange",assembly:v.name});await e.submit(r,{internetAccountId:h.internetAccountId}),t(),n.preventDefault()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},p.length>1?T.default.createElement(T.default.Fragment,null,T.default.createElement(l.DialogContentText,null,"Select account"),T.default.createElement(l.Select,{value:h.internetAccountId,onChange:function(e){f(!1);const t=p.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);m(t)},disabled:d&&!o},a.map((e=>T.default.createElement(l.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,T.default.createElement(l.DialogContentText,null,"Select assembly"),T.default.createElement(l.Select,{labelId:"label",value:v?.name??"",onChange:function(e){const t=y.find((t=>t.name===e.target.value));b(t)},disabled:0===y.length},y.map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},e.displayName)))),T.default.createElement(l.DialogContentText,null,T.default.createElement("strong",{style:{color:"red"}},"NOTE: All assembly data will be deleted and this operation cannot be undone!")),T.default.createElement(l.FormGroup,null,T.default.createElement(l.FormControlLabel,{control:T.default.createElement(l.Checkbox,{checked:s,onChange:()=>{c(!s)}}),label:"I understand that all assembly data will be deleted"}))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{disabled:!v||!s,variant:"contained",type:"submit"},"Delete"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),o?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},o)):null)}function $T({changeManager:e,handleClose:t,selectedFeature:n,session:a,setSelectedFeature:o,sourceAssemblyId:i,sourceFeature:s}){const[c,d]=u.useState(""),{ontologyManager:f}=a.apolloDataStore,{featureTypeOntology:p}=f;function h(e){if(!e.parent?.children||1===e.parent.children.size)return;const t=[];for(const n of e.parent.children.values())p?.isTypeOf(n.type,"CDS")||t.push(n);t.sort(((e,t)=>e.min-t.min));const n=[];for(const t of e.parent.children.values())p?.isTypeOf(t.type,"CDS")||n.push(t);if(n.sort(((e,t)=>t.max-e.max)),e.min===t[0].min){let n;for(const r of t)if(r._id!==e._id&&r.min>=e.min){n=r.min;break}if(n&&n!=e.parent.min)return{typeName:"LocationStartChange",changedId:e.parent._id,featureId:e.parent._id,oldLocation:e.parent.min,newLocation:n}}if(e.max===n[0].max){let t;for(const r of n)if(r._id!=e._id&&r.max<=e.max){t=r.max;break}if(t&&t!=e.parent.max)return{typeName:"LocationEndChange",changedId:e.parent._id,featureId:e.parent._id,oldLocation:e.parent.max,newLocation:t}}}return T.default.createElement(xf,{open:!0,title:"Delete feature",handleClose:t,maxWidth:!1,"data-testid":"delete-feature"},T.default.createElement("form",{onSubmit:a=>{!async function(a){a.preventDefault(),d(""),n?._id===s._id&&o();const l=[],c=new Xn.DeleteFeatureChange({changedIds:[s._id],typeName:"DeleteFeatureChange",assembly:i,changes:[{deletedFeature:r.getSnapshot(s),parentFeatureId:s.parent?._id}]});if(p&&(p.isTypeOf(s.type,"transcript")||p.isTypeOf(s.type,"pseudogenic_transcript"))){const e=h(s);e&&l.push(e)}if(p&&p.isTypeOf(s.type,"exon")){const e=function(e){if(!p)return;if(!p.isTypeOf(e.type,"exon"))return;if(!e.parent?.cdsLocations||0===e.parent.cdsLocations.length||0===e.parent.cdsLocations[0].length)return;if(!e.parent.children)throw new Error("Unable to find parent of CDS");if(1!=e.parent.cdsLocations.length)throw new Error("Unable to handle a transcript with multiple CDSs");const t=(e.parent.cdsLocations.at(0)??[]).sort((({min:e},{min:t})=>e-t));let n;for(const r of e.parent.children.values())if(r.type===t[0].type){n=r;break}if(!n)throw new Error("Unable to find CDS");const a=t[0].min,o=t[t.length-1].max;if(!(e.min>a&&e.max<o||e.max<a||e.min>o)){if(e.min<=a&&e.max>=o)return new Xn.DeleteFeatureChange({changedIds:[n._id],typeName:"DeleteFeatureChange",assembly:i,changes:[{deletedFeature:r.getSnapshot(n),parentFeatureId:n.parent?._id}]});if(e.min<=a&&e.max>a){let r;for(const n of t)if(n.min>e.max){r=n.min;break}if(!r)throw new Error("Error setting new CDS start");return{typeName:"LocationStartChange",changedId:n._id,featureId:n._id,oldLocation:n.min,newLocation:r}}if(e.min<o&&e.max>=o){let r;for(const n of t.reverse())if(n.max<e.min){r=n.max;break}if(!r)throw new Error("Error setting new CDS end");return{typeName:"LocationEndChange",changedId:n._id,featureId:n._id,oldLocation:n.max,newLocation:r}}throw new Error("Unexpected relationship between exon and CDS")}}(s);e&&("DeleteFeatureChange"===e.typeName?(c.changedIds.push(...e.changedIds),c.changes.push(...e.changes)):l.push(e));const t=h(s);if(t){l.push(t);const e=s.parent?.parent;if(e?.children)if("LocationStartChange"===t.typeName){let n=t.newLocation;for(const[,r]of e.children)r._id!=t.featureId&&r.min<n&&(n=r.min);n!=e.min&&l.push({typeName:t.typeName,changedId:e._id,featureId:e._id,oldLocation:e.min,newLocation:n})}else{let n=t.newLocation;for(const[,r]of e.children)r._id!=t.featureId&&r.max>n&&(n=r.max);n!=e.max&&l.push({typeName:t.typeName,changedId:e._id,featureId:e._id,oldLocation:e.max,newLocation:n})}}}const u=function(e,t){if(0===e.length)return;const n=new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:[],changes:[],assembly:t}),r=new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:[],changes:[],assembly:t});for(const t of e)"LocationStartChange"===t.typeName&&(n.changedIds.push(t.changedId),n.changes.push({featureId:t.featureId,oldStart:t.oldLocation,newStart:t.newLocation})),"LocationEndChange"===t.typeName&&(r.changedIds.push(t.changedId),r.changes.push({featureId:t.featureId,oldEnd:t.oldLocation,newEnd:t.newLocation}));if(n.changedIds.length>0&&0===r.changedIds.length)return n;if(r.changedIds.length>0&&0===n.changedIds.length)return r;throw new Error("Unexpected list of changes")}(l,i);await e.submit(c),u&&await e.submit(u),t(),a.preventDefault()}(a)}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.DialogContentText,null,"Are you sure you want to delete the selected feature?")),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit"},"Yes"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),c?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},c)):null)}!function(e){e.GENE_AND_SUBFEATURES="GENE_AND_SUBFEATURES",e.TRANSCRIPT_AND_SUBFEATURES="TRANSCRIPT_AND_SUBFEATURES",e.CUSTOM="CUSTOM"}(qT||(qT={}));var VT={exports:{}};function WT({handleClose:e,session:t}){const[n,o]=u.useState(!1),[i,s]=u.useState(),[c,d]=u.useState(""),{collaborationServerDriver:f,getInternetAccount:p,inMemoryFileDriver:h}=t.apolloDataStore,m=[...f.getAssemblies(),...h.getAssemblies()];return T.default.createElement(xf,{open:!0,title:"Export GFF3",handleClose:e,maxWidth:!1,"data-testid":"download-gff3"},T.default.createElement("form",{onSubmit:async function(o){if(o.preventDefault(),d(""),!i)return void d("Must select assembly to download");const{internetAccountConfigId:s}=a.getConf(i,["sequence","metadata"]);s?await async function(e){if(!i)return void d("Must select assembly to download");const t=p(i.configuration.name,e),r=new URL("export/getID",t.baseURL),a=new URLSearchParams({assembly:i.name});r.search=a.toString();const o=r.toString(),s=t.getFetcher({locationType:"UriLocation",uri:o}),l=await s(o,{method:"GET"});if(!l.ok){const e=await bf(l,"Error when exporting ID");return void d(e)}const{exportID:c}=await l.json(),u=new URL("export",t.baseURL),f=new URLSearchParams({exportID:c,includeFASTA:n?"true":"false"});u.search=f.toString();const h=u.toString();window.open(h,"_blank")}(s):function(e){if(!i)return void d("Must select assembly to download");const{assemblies:t}=e.apolloDataStore,n=t.get(i.name),o=n?.refSeqs;if(!o)return void d(`No refSeqs found for assembly "${i.name}"`);const s=[{directive:"gff-version",value:"3"}],l=a.getConf(i,["sequence","adapter","features"]);for(const e of l){const{end:t,refName:n,start:r}=e;s.push({directive:"sequence-region",value:`${n} ${r+1} ${t}`})}for(const[,e]of o){const{features:t}=e;if(t)for(const[,e]of t)s.push(Xn.annotationFeatureToGFF3(r.getSnapshot(e)))}for(const e of l){const{refName:t,seq:n}=e;s.push({id:t,description:"",sequence:n})}const c=wd.formatSync(s),u=new Blob([c],{type:"text/plain;charset=utf-8"});VT.exports.saveAs(u,`${i.displayName??i.name}.gff3`)}(t),e()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.DialogContentText,null,"Select assembly"),T.default.createElement(l.Select,{labelId:"label",value:i?.name??"",onChange:function(e){const t=m.find((t=>t.name===e.target.value));s(t)},disabled:0===m.length},m.map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},e.displayName??e.name)))),T.default.createElement(l.DialogContentText,null,"Select assembly to export to GFF3"),T.default.createElement(l.FormGroup,null,T.default.createElement(l.FormControlLabel,{"data-testid":"include-fasta-checkbox",control:T.default.createElement(l.Checkbox,{checked:n,onChange:()=>{o(!n)}}),label:"Include fasta sequence in GFF output"}))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{disabled:!i,variant:"contained",type:"submit"},"Download"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),c?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},c)):null)}function JT({changeManager:e,handleClose:t,session:n}){const{apolloDataStore:r}=n,[o,i]=u.useState(),[s,c]=u.useState(),[d,f]=u.useState(""),[p,h]=u.useState(!1),[m,g]=u.useState(),[y,v]=u.useState(!1),[b,_]=u.useState(!1),{collaborationServerDriver:w,getInternetAccount:x}=r,S=w.getAssemblies();return u.useEffect((()=>{s&&(async()=>{const{internetAccountConfigId:e}=a.getConf(s,["sequence","metadata"]),t=x(s.name,e);if(!t)throw new Error("No Apollo internet account found");const{baseURL:n}=t,r=new URL("features/count",n),o=new URLSearchParams({assemblyId:s.name});r.search=o.toString();const i=t.getFetcher({locationType:"UriLocation",uri:r.toString()});_(!0);const l=await i(r.toString(),{method:"GET"});if(!l.ok)throw new Error(await bf(l));{const e=await l.json();g(e.count)}_(!1)})().catch((e=>{console.error(e),f(e.message??e)}))}),[x,n,s]),T.default.createElement(xf,{open:!0,title:"Import Features from GFF3 file",handleClose:t,maxWidth:!1,"data-testid":"import-features-dialog"},b?T.default.createElement(F.default,null):null,T.default.createElement("form",{onSubmit:async function(r){r.preventDefault(),f(""),_(!0),h(!0);let i="";if(!o)return void f("must select a file");if(!s)return void f("Must select assembly to download");const{internetAccountConfigId:l}=a.getConf(s,["sequence","metadata"]),c=x(s.name,l),{baseURL:u}=c,d=new URL("files",u);d.searchParams.set("type","text/x-gff3");const p=d.href,m=new FormData;m.append("file",o),m.append("fileName",o.name),m.append("type","text/x-gff3");const g=c.getFetcher({locationType:"UriLocation",uri:p});t();const{jobsManager:v}=n,b=new AbortController,w={name:`Importing features for ${s.displayName}`,statusMessage:"Uploading file, this may take awhile",progressPct:0,cancelCallback:()=>{b.abort("ImportFeatures"),v.abortJob(w.name)}};if(v.runJob(w),g){const{signal:e}=b,t=await g(p,{method:"POST",body:m,signal:e});if(!t.ok){const e=await bf(t,"Error when inserting new features (while uploading file)");return v.abortJob(w.name,e),void f(e)}i=(await t.json())._id}const S=new Xn.AddFeaturesFromFileChange({typeName:"AddFeaturesFromFileChange",assembly:s.name,fileId:i,deleteExistingFeatures:y});v.done(w),await e.submit(S,{updateJobsManager:!0})}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.DialogContentText,null,"Select assembly"),T.default.createElement(l.Select,{labelId:"label",value:s?.name??"",onChange:function(e){const t=S.find((t=>t.name===e.target.value));c(t),h(!1)},disabled:p&&!d},S.map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},e.displayName??e.name))))),T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.DialogContentText,null,"Upload GFF3 to load features"),T.default.createElement("input",{type:"file",onChange:function(e){h(!1),e.target.files&&i(e.target.files[0])},disabled:p&&!d})),m&&m>0?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,null,"This assembly already has ",m," features, would you like to delete the existing features before importing new ones?"),T.default.createElement(R.default,{label:"Yes, delete existing features",disabled:p&&!d,control:T.default.createElement(I.default,{checked:y,onChange:function(e){v(e.target.checked)},slotProps:{input:{"aria-label":"controlled"}},color:"warning"})})):null,T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{disabled:!(s&&o&&void 0!==m)||p,variant:"contained",type:"submit"},p?"Submitting...":"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Close"))),d?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},d)):null)}function YT({handleClose:e,session:t}){const{internetAccounts:n}=r.getRoot(t),[a,o]=u.useState(""),i=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===i.length)throw new Error("No Apollo internet account found");const[s,c]=u.useState(i[0]);return T.default.createElement(xf,{open:!0,title:"Log out",handleClose:e,maxWidth:!1,"data-testid":"log-out"},T.default.createElement("form",{onSubmit:function(e){e.preventDefault(),o(""),s.removeToken(),globalThis.location.reload()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},i.length>1?T.default.createElement(T.default.Fragment,null,T.default.createElement(l.DialogContentText,null,"Select account"),T.default.createElement(l.Select,{value:s.internetAccountId,onChange:function(e){const t=i.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);c(t)}},n.map((e=>T.default.createElement(l.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,T.default.createElement(l.DialogContentText,null,"Are you sure you want to log out?")),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{disabled:!s,variant:"contained",type:"submit"},"Log Out"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),a?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},a)):null)}function KT({handleClose:e,session:t}){const{internetAccounts:n}=r.getRoot(t),[a,o]=u.useState(""),[i,s]=u.useState(!1),c=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===c.length)throw new Error("No Apollo internet account found");const[d,f]=u.useState(c[0]),[p,h]=u.useState([]),[m,g]=u.useState([]),{collaborationServerDriver:y}=t.apolloDataStore,v=y.getAssemblies(),[b,_]=u.useState(v.at(0));function w(e,t){const n=[...m],r=e.target.value;if(t)n.includes(r)||(n.push(r),g(n));else{const e=n.indexOf(r,0);-1!==e&&n.splice(e,1),g(n)}}return u.useEffect((()=>{(async function(){const{baseURL:e,getFetcher:t}=d,n=new URL("checks/types",e).href,r=t({locationType:"UriLocation",uri:n}),a=await r(n,{method:"GET"});if(!a.ok){const e=await bf(a,"Error when retrieving checks from server");return void o(e)}const i=await a.json();h(i)})().catch((e=>{o(String(e))}))}),[d]),u.useEffect((()=>{(async function(){if(!b)return;const{baseURL:e,getFetcher:t}=d,n=new URL(`assemblies/${b.name}`,e).href,r=t({locationType:"UriLocation",uri:n}),a=await r(n,{method:"GET"});if(!a.ok){const e=await bf(a,"Error when retrieving assembly from server");return void o(e)}const i=await a.json();g(i.checks)})().catch((e=>{o(String(e))}))}),[b,d]),T.default.createElement(xf,{open:!0,title:"Manage Checks",handleClose:e,"data-testid":"manage-checks"},T.default.createElement("form",{onSubmit:async function(n){if(n.preventDefault(),!b)return void o("Must select assembly!");const{notify:r}=t,{baseURL:a,getFetcher:i}=d,s=new URL("assemblies/checks",a).href,l=i({locationType:"UriLocation",uri:s}),c=await l(s,{method:"POST",body:JSON.stringify({_id:b.name,checks:m,name:""}),headers:{"Content-Type":"application/json"}});if(c.ok)r("Assembly checks updated successfully","success"),e();else{const e=await bf(c,"Error when updating assembly checks");o(e)}}},T.default.createElement(l.DialogContent,null,c.length>1?T.default.createElement(T.default.Fragment,null,T.default.createElement(l.DialogContentText,null,"Select account"),T.default.createElement(l.Select,{value:d.internetAccountId,onChange:function(e){s(!1);const t=c.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);f(t)},disabled:i&&!a},n.map((e=>T.default.createElement(l.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,T.default.createElement(l.DialogContentText,null,"Select assembly"),T.default.createElement(l.Select,{style:{width:300},labelId:"label",value:b?.name??"",onChange:function(e){const t=v.find((t=>t.name===e.target.value));_(t)},disabled:0===v.length},v.map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},e.displayName)))),T.default.createElement("br",null),T.default.createElement("br",null),T.default.createElement(l.TableContainer,{component:l.Paper},T.default.createElement(l.Table,null,T.default.createElement(l.TableHead,null,T.default.createElement(l.TableRow,null,T.default.createElement(l.TableCell,null,"Check name"),T.default.createElement(l.TableCell,null,"Use check"))),T.default.createElement(l.TableBody,null,p.map((e=>T.default.createElement(l.TableRow,{key:e._id},T.default.createElement(l.TableCell,null,e.name),T.default.createElement(l.TableCell,null,T.default.createElement(l.Checkbox,{value:e._id,checked:m.includes(e._id),onChange:w}))))))))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit"},"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:e},"Cancel"))),a?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},a)):null)}function ZT({changeManager:e,handleClose:t,session:n}){const{internetAccounts:a}=r.getRoot(n),o=a.filter((e=>"ApolloInternetAccount"===e.type&&e.role?.includes("admin")));if(0===o.length)throw new Error("No Apollo internet account found");const[i,s]=u.useState(""),[c,d]=u.useState(o[0]),[p,h]=u.useState([]);function m(e){return e===c.getUserId()}u.useEffect((()=>{(async function(){const{baseURL:e}=c,t=new URL("users",e).href,n=c.getFetcher({locationType:"UriLocation",uri:t});if(n){const e=await n(t,{method:"GET"});if(!e.ok){const t=await bf(e,"Error when getting user data from db");return void s(t)}const r=await e.json();h(r.map((e=>void 0===e.role?{...e,role:""}:e)))}})().catch((e=>{s(String(e))}))}),[c]);const g=[{field:"username",headerName:"User",width:140},{field:"email",headerName:"Email",width:160},{field:"role",headerName:"Role",width:140,type:"singleSelect",valueOptions:["readOnly","user","admin","none"],getOptionLabel(e){switch(e){case"readOnly":return"Read-only";case"user":return"User";case"admin":return"Admin";case"none":return"None";default:return"unknown"}},editable:!0},{field:"actions",type:"actions",getActions:t=>[T.default.createElement(f.GridActionsCellItem,{key:`delete-${t.id}`,icon:T.default.createElement(pd,null),onClick:async()=>{globalThis.confirm("Delete this user?")&&await async function(t){const n=new Xn.DeleteUserChange({typeName:"DeleteUserChange",userId:t});await e.submit(n,{internetAccountId:c.internetAccountId}),h((e=>e.filter((e=>e._id!==t))))}(t.id)},disabled:m(t.id),label:"Delete"})]}];return T.default.createElement(xf,{open:!0,fullScreen:!0,title:"Manage users",handleClose:t,"data-testid":"manage-users"},T.default.createElement(l.DialogContent,null,o.length>1?T.default.createElement(T.default.Fragment,null,T.default.createElement(l.DialogContentText,null,"Select account"),T.default.createElement(l.Select,{value:c.internetAccountId,onChange:function(e){const t=o.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);d(t)},disabled:!i},a.map((e=>T.default.createElement(l.MenuItem,{key:e.id,value:e.internetAccountId},e.name))))):null,T.default.createElement("div",{style:{height:"100%",width:"100%"}},T.default.createElement(f.DataGrid,{pagination:!0,rows:p,columns:g,getRowId:e=>e._id,slots:{toolbar:f.GridToolbar},getRowHeight:()=>"auto",isCellEditable:e=>!m(e.id),processRowUpdate:async function(t){const n=new Xn.UserChange({typeName:"UserChange",role:t.role,userId:t._id});return await e.submit(n,{internetAccountId:c.internetAccountId}),t},onProcessRowUpdateError:e=>{s(String(e))}}))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Close")),i?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},i)):null)}function XT(e,t){const n=t[e];let r;if("three_prime"===e)r=`3'end (coords: ${n.min+1}-${n.max})`;else{if("five_prime"!==e)throw new Error(`Unexpected direction: "${e}"`);r=`5'end (coords: ${n.min+1}-${n.max})`}return r}function QT({changeManager:e,handleClose:t,selectedFeature:n,setSelectedFeature:a,sourceAssemblyId:o,sourceFeature:i}){const[s,c]=u.useState(""),[d,f]=u.useState(),p=function(e){const t={},n=e.parent;if(!n)throw new Error("Unable to find parent of reference exon");let r=[];if(n.children)for(const[,e]of n.children)"exon"===e.type&&r.push(e);r=r.sort(((e,t)=>e.min===t.min?e.max-t.max:e.min-t.min)),n.strand&&-1===n.strand&&(r=r.reverse());let a=0;for(const n of r){if(n._id===e._id){r.length>a+1&&(t.three_prime=r[a+1]),a>0&&(t.five_prime=r[a-1]);break}a++}return t}(i);return T.default.createElement(xf,{open:!0,title:"Merge exons",handleClose:t,maxWidth:!1,"data-testid":"merge-exons"},T.default.createElement("form",{onSubmit:function(s){s.preventDefault(),c("");const{parent:l}=i;if(!d||!l)return;n?._id===i._id&&a();const u=new Xn.MergeExonsChange({changedIds:[i._id],typeName:"MergeExonsChange",assembly:o,firstExon:r.getSnapshot(i),secondExon:r.getSnapshot(d),parentFeatureId:l._id});e.submit(u),t(),s.preventDefault()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},0===Object.keys(p).length?"There are no neighbouring exons to merge with":"Merge with exon on:",T.default.createElement(l.FormControl,{style:{marginTop:5}},T.default.createElement(l.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",name:"radio-buttons-group",value:d,onChange:e=>{c("");const{value:t}=e.target;f(p[t])}},Object.keys(p).map((e=>T.default.createElement(l.FormControlLabel,{value:e,key:e,control:T.default.createElement(l.Radio,null),label:T.default.createElement(l.Box,{display:"flex",alignItems:"center"},XT(e,p))})))))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit",disabled:0===Object.keys(p).length||void 0===d},"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),s?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},s)):null)}function eN(e){let t;return t=e.attributes.get("gff_name")?e.attributes.get("gff_name")?.join(","):e.attributes.get("gff_id")?e.attributes.get("gff_id")?.join(","):e._id,`${t} [${e.min+1}-${e.max}]`}function tN({changeManager:e,handleClose:t,selectedFeature:n,session:a,setSelectedFeature:o,sourceAssemblyId:i,sourceFeature:s}){const[c,d]=u.useState(""),f=function(e,t){const n=e.parent;if(!n)throw new Error("Unable to find parent of reference transcript");const{featureTypeOntology:r}=t.apolloDataStore.ontologyManager;if(!r)throw new Error("featureTypeOntology is undefined");const a={};if(n.children)for(const[,t]of n.children)r.isTypeOf(t.type,"transcript")&&t._id!==e._id&&(a[t._id]=t);return a}(s,a),p=Object.keys(f).at(0),[h,m]=u.useState(p);return T.default.createElement(xf,{open:!0,title:"Merge transcripts",handleClose:t,maxWidth:!1,"data-testid":"merge-transcripts"},T.default.createElement("form",{onSubmit:function(a){if(a.preventDefault(),d(""),!h)return;const l=f[h];if(n?._id===s._id&&o(),!s.parent)throw new Error("Cannot find parent");const c=new Xn.MergeTranscriptsChange({changedIds:[s._id],typeName:"MergeTranscriptsChange",assembly:i,firstTranscript:r.getSnapshot(s),secondTranscript:r.getSnapshot(l),parentFeatureId:s.parent._id});e.submit(c),t()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},0===Object.keys(f).length?"There are no transcripts to merge with":"Merge with transcript:",T.default.createElement(l.FormControl,{style:{marginTop:5}},T.default.createElement(l.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",name:"radio-buttons-group",value:h,onChange:e=>{d("");const{value:t}=e.target;m(t)}},Object.keys(f).map((e=>T.default.createElement(l.FormControlLabel,{value:e,key:e,control:T.default.createElement(l.Radio,null),label:T.default.createElement(l.Box,{display:"flex",alignItems:"center"},eN(f[e]))})))))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit",disabled:0===Object.keys(f).length||void 0===h},"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),c?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},c)):null)}!function(e,t){!function(){function t(e,t,n){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){i(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function n(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function r(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a="object"==("undefined"==typeof window?"undefined":W(window))&&window.window===window?window:"object"==("undefined"==typeof self?"undefined":W(self))&&self.self===self?self:"object"==W(M)&&M.global===M?M:void 0,o=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),i=a.saveAs||("object"!=("undefined"==typeof window?"undefined":W(window))||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!o?function(e,o,i){var s=a.URL||a.webkitURL,l=document.createElement("a");l.download=o=o||e.name||"download",l.rel="noopener","string"==typeof e?(l.href=e,l.origin===location.origin?r(l):n(l.href)?t(e,o,i):r(l,l.target="_blank")):(l.href=s.createObjectURL(e),setTimeout((function(){s.revokeObjectURL(l.href)}),4e4),setTimeout((function(){r(l)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,a,o){if(a=a||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=W(t)&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,o),a);else if(n(e))t(e,a,o);else{var i=document.createElement("a");i.href=e,i.target="_blank",setTimeout((function(){r(i)}))}}:function(e,n,r,i){if((i=i||open("","_blank"))&&(i.document.title=i.document.body.innerText="downloading..."),"string"==typeof e)return t(e,n,r);var s="application/octet-stream"===e.type,l=/constructor/i.test(a.HTMLElement)||a.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||s&&l||o)&&"undefined"!=typeof FileReader){var u=new FileReader;u.onloadend=function(){var e=u.result;e=c?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=e:location=e,i=null},u.readAsDataURL(e)}else{var d=a.URL||a.webkitURL,f=d.createObjectURL(e);i?i.location=f:location.href=f,i=null,setTimeout((function(){d.revokeObjectURL(f)}),4e4)}});a.saveAs=i.saveAs=i,e.exports=i}()}(VT);var nN=function(){return crypto.getRandomValues(new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:21)).reduce((function(e,t){return e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")}),"")};function rN({handleClose:e,session:t}){const{apolloDataStore:r}=t,{addAssembly:a,addSessionAssembly:o,assemblyManager:i,notify:s}=t,[c,d]=u.useState(null),[f,p]=u.useState(""),[h,m]=u.useState(""),[g,y]=u.useState(!1),v=l.useTheme();return T.default.createElement(xf,{open:!0,title:"Open local GFF3 file",handleClose:e,maxWidth:!1,"data-testid":"open-local-file"},T.default.createElement("form",{onSubmit:async function(l){if(l.preventDefault(),m(""),y(!0),!c)throw new Error("No file selected");const u=await new Response(c).text(),d=`${f}-${c.name}-${nN(8)}`;try{await Vd(d,u,r)}catch(t){return console.error(t),s(`Error loading GFF3 ${c.name}, ${String(t)}`,"error"),void e()}const p={};if(n.isElectron){const{webUtils:e}=globalThis.require("electron");p.file=e.getPathForFile(c)}const h={name:d,aliases:[f],displayName:f,sequence:{trackId:`sequenceConfigId-${f}`,type:"ReferenceSequenceTrack",adapter:{type:"ApolloSequenceAdapter",assemblyId:d},metadata:{apollo:!0,...p}}};await(n.isElectron?a?.(h):(o||a)(h));const g=await i.waitForAssembly(h.name);g?(t.addApolloTrackConfig(g),s(`Loaded GFF3 ${c.name}`,"success")):s(`Error loading GFF3 ${c.name}`,"error"),e()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.FormControl,null,T.default.createElement("div",{style:{flexDirection:"row"}},T.default.createElement(l.Button,{variant:"contained",component:"label",style:{marginRight:v.spacing()}},"Choose File",T.default.createElement("input",{type:"file",required:!0,hidden:!0,onChange:function(e){const t=e.target.files?.item(0);if(t&&(m(""),d(t),!f)){const e=t.name,n=e.lastIndexOf(".");p(-1===n?e:e.slice(0,n))}}})),c?c.name:"No file chosen"),T.default.createElement(l.FormHelperText,null,"Make sure your GFF3 has an embedded FASTA section")),T.default.createElement(l.TextField,{required:!0,label:"Assembly name",value:f,onChange:function(e){p(e.target.value)}})),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{disabled:!1,variant:"contained",type:"submit"},g?"Submitting...":"Submit"),T.default.createElement(l.Button,{disabled:g,variant:"outlined",type:"submit",onClick:e},"Cancel"))),h?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},h)):null)}const aN=d.makeStyles()((e=>({changeTextarea:{fontFamily:"monospace",width:600,resize:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius}})));function oN({handleClose:e,session:t}){const{internetAccounts:n}=r.getRoot(t),a=n.find((e=>"ApolloInternetAccount"===e.type));if(!a)throw new Error("No Apollo internet account found");const{baseURL:o}=a,{classes:i}=aN(),[s,c]=u.useState(),[d,p]=u.useState([]),{collaborationServerDriver:h}=t.apolloDataStore,m=h.getAssemblies(),[g,y]=u.useState(m.at(0)),v=[{field:"sequence"},{field:"typeName",headerName:"Change type",width:200,type:"singleSelect",valueOptions:[...L.changeRegistry.changes.keys()]},{field:"changes",headerName:"Change JSON",width:600,renderCell:({value:e})=>T.default.createElement("textarea",{className:i.changeTextarea,value:JSON.stringify(e),readOnly:!0})},{field:"user",headerName:"User",width:140},{field:"createdAt",headerName:"Time",width:160,type:"dateTime",valueGetter:e=>e&&new Date(e)}];return u.useEffect((()=>{(async function(){if(!g)return;const e=new URL("changes",o),t=new URLSearchParams({assembly:g.name});e.search=t.toString();const n=e.toString(),r=a?.getFetcher({locationType:"UriLocation",uri:n});if(r){const e=await r(n,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await bf(e,"Error when retrieving changes");return void c(t)}const t=await e.json();p(t)}})().catch((e=>{c(String(e))}))}),[a,o,g]),T.default.createElement(xf,{open:!0,fullScreen:!0,title:"View change log",handleClose:e,"data-testid":"view-changelog"},T.default.createElement(l.Select,{style:{width:200,marginLeft:40},value:g?.name??"",onChange:function(e){const t=m.find((t=>t.name===e.target.value));y(t)}},m.map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},e.displayName||e.name)))),T.default.createElement(l.DialogContent,null,T.default.createElement(f.DataGrid,{pagination:!0,rows:d,columns:v,getRowId:e=>e._id,slots:{toolbar:f.GridToolbar},initialState:{sorting:{sortModel:[{field:"sequence",sort:"desc"}]},columns:{columnVisibilityModel:{sequence:!1}}}})),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:e},"Close")),s?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},s)):null)}const iN=[{field:"refName",headerName:"Ref Name"},{field:"aliases",headerName:"Aliases",editable:!0,flex:1}],sN=e=>/^[\da-f]{24}$/i.test(e),lN=h.observer((function({changeManager:e,handleClose:t,session:n}){const r=u.useRef(null),[a,o]=u.useState(""),[i,s]=u.useState(!1),[c,d]=u.useState(),[p,h]=u.useState([]),[m,g]=u.useState(new Map),{apolloDataStore:y}=n,{collaborationServerDriver:v}=y,b=v.getAssemblies();u.useEffect((()=>{b.length>0&&(d(b[0]),v.getRefNameAliases(b[0].name).then((e=>{_(e)})).catch((()=>{g(new Map),o("Error fetching refName aliases for assembly")})))}),[]);const _=e=>{const t=new Map;for(const n of e){const e=n.refName;sN(e)||t.set(e,n.aliases)}g(t)},w=()=>[...m].map(((e,t)=>({id:t,refName:e[0],aliases:e[1].filter((t=>t!==e[0])).join(", ")})));return T.default.createElement(xf,{open:!0,title:"Add reference sequence aliases",handleClose:t,maxWidth:"sm","data-testid":"add-refseq-alias",fullWidth:!0},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.Grid,{container:!0,spacing:2},T.default.createElement(l.Grid,null,T.default.createElement(l.FormControl,{disabled:i&&!a,fullWidth:!0},T.default.createElement(l.InputLabel,{id:"demo-simple-select-label"},"Assembly"),T.default.createElement(l.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Assembly",value:c?.name??"",onChange:e=>{const t=b.find((t=>t.name===e.target.value));d(t),t?.name&&(v.getRefNameAliases(t.name).then((e=>{_(e),o("")})).catch((()=>{g(new Map),o("Error fetching refName aliases for assembly")})),s(!1),r.current&&(r.current.value=""))},style:{minWidth:150}},b.map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},e.displayName)))))),T.default.createElement(l.Grid,null,T.default.createElement(l.InputLabel,null,"Load RefName alias"),T.default.createElement("input",{type:"file",onChange:e=>{(async e=>{if(!e.target.files)return;const t=e.target.files[0],n=(await t.text()).split("\n"),r=new Map(m);o("");for(const e of n){const t=e.split("\t");for(const e of t)r.has(e)&&r.set(e,[...r.get(e)??[],...t])}g(r)})(e).catch((()=>{o("Error reading file")}))},ref:r,disabled:i&&!a||!c}))),c&&m.size>0?T.default.createElement("div",{style:{height:200,width:"100%",marginTop:20}},T.default.createElement(l.InputLabel,null,"Refname aliases found for selected assembly."),T.default.createElement(f.DataGrid,{rows:w(),columns:iN,initialState:{pagination:{paginationModel:{page:0,pageSize:5}}},pageSizeOptions:[5,10],onRowSelectionModelChange:e=>{const{ids:t}=e;if(t.size>0){s(!0);const e=[...t.values()].flatMap((e=>w().filter((t=>String(t.id)===String(e)))));h(e)}else s(!1),h([])},processRowUpdate:(e,t)=>{const n=new Map(m);return n.set(e.refName,e.aliases.split(",")),g(n),e},checkboxSelection:!0,disableRowSelectionExcludeModel:!0})):null),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit",disabled:!i,onClick:()=>{const n=[];for(const e of p){const{refName:t}=e,r=e.aliases.split(",").map((e=>e.trim())).filter((e=>e.length>0));n.push({refName:t,aliases:r})}if(o(""),!c)return void o("No assembly selected");const r=new Xn.AddRefSeqAliasesChange({typeName:"AddRefSeqAliasesChange",assembly:c.name,refSeqAliases:n});e.submit(r).catch((()=>{o("Error submitting change")})),t()}},"Submit"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Close")),a?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},a)):null)}));function cN({handleClose:e,session:t}){const{internetAccounts:n}=r.getRoot(t),{collaborationServerDriver:a}=t.apolloDataStore,o=n.find((e=>"ApolloInternetAccount"===e.type));if(!o)throw new Error("No Apollo internet account found");const{baseURL:i}=o,[s,c]=u.useState(),[d,p]=u.useState([]),h=a.getAssemblies(),[m,g]=u.useState(h.at(0));return u.useEffect((()=>{(async function(){const e=m?.name;if(!e)return;const t=new URL("checks",i),n=new URLSearchParams({assembly:e});t.search=n.toString();const r=t.toString(),a=o?.getFetcher({locationType:"UriLocation",uri:r});if(a){const e=await a(r,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await bf(e,"Error when retrieving checks");return void c(t)}const t=await e.json();p(t)}})().catch((e=>{c(String(e))}))}),[m,o,i]),T.default.createElement(xf,{open:!0,fullScreen:!0,title:"View check results",handleClose:e,"data-testid":"view-check-results"},T.default.createElement(l.Select,{style:{width:200,marginLeft:40},value:m?.name??"",onChange:function(e){const t=h.find((t=>t.name===e.target.value));g(t)},disabled:0===h.length},h.map((e=>T.default.createElement(l.MenuItem,{key:e.name,value:e.name},e.displayName)))),T.default.createElement(l.DialogContent,null,T.default.createElement(f.DataGrid,{pagination:!0,rows:d,columns:[{field:"_id",headerName:"id",width:50},{field:"name",headerName:"Check name",width:200},{field:"refSeq",headerName:"Reference sequence ID",width:200},{field:"ids",headerName:"Feature IDs",width:200},{field:"message",headerName:"Message",flex:1}],getRowId:e=>e._id,slots:{toolbar:f.GridToolbar},initialState:{sorting:{sortModel:[{field:"name",sort:"asc"}]},columns:{columnVisibilityModel:{name:!0}}}})),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:e},"Close")),s?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},s)):null)}function uN(e){return e.max-e.min<2?{isSplittable:!1,comment:"This exon is too short to be split"}:{isSplittable:!0,comment:""}}function dN({changeManager:e,handleClose:t,selectedFeature:n,setSelectedFeature:a,sourceAssemblyId:o,sourceFeature:i}){const[s,c]=u.useState(""),d=r.getSnapshot(i);return T.default.createElement(xf,{open:!0,title:"Split exon",handleClose:t,maxWidth:!1,"data-testid":"split-exon"},T.default.createElement("form",{onSubmit:function(r){r.preventDefault(),c(""),n?._id===i._id&&a();const s=d.min+(d.max-d.min)/2,l=Math.floor(s),u=Math.ceil(s);if(!i.parent?._id)throw new Error("Splitting an exon without parent is not possible yet");const f=new Xn.SplitExonChange({changedIds:[i._id],typeName:"SplitExonChange",assembly:o,exonToBeSplit:d,parentFeatureId:i.parent._id,upstreamCut:l,downstreamCut:u,leftExonId:(new Hn).toHexString(),rightExonId:(new Hn).toHexString()});e.submit(f),t(),r.preventDefault()}},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column"}},T.default.createElement(l.DialogContentText,null,function(e){const t=uN(e);return t.isSplittable?"Are you sure you want to split the selected exon?":t.comment}(d))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit",disabled:!uN(d).isSplittable},"Yes"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:t},"Cancel"))),s?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},s)):null)}var fN=s.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6m0 14c-2.03 0-4.43-.82-6.14-2.88C7.55 15.8 9.68 15 12 15s4.45.8 6.14 2.12C16.43 19.18 14.03 20 12 20"}),"AccountCircle");function pN(e){const{color:t}=e;return T.default.createElement(l.SvgIcon,{viewBox:"0 0 18 18",style:{fontSize:18,marginRight:4},...e},"disabled"===t?T.default.createElement("path",{d:"M9.001,10.71 l0,-3.348 l8.424,0 c0.126,0.567,0.225,1.098,0.225,1.845 c0,5.139,-3.447,8.793,-8.64,8.793 c-4.968,0,-9,-4.032,-9,-9 c0,-4.968,4.032,-9,9,-9 c2.43,0,4.464,0.891,6.021,2.349 l-2.556,2.484 c-0.648,-0.612,-1.782,-1.332,-3.465,-1.332 c-2.979,0,-5.409,2.475,-5.409,5.508 c0,3.033,2.43,5.508,5.409,5.508 c3.447,0,4.716,-2.385,4.95,-3.798 l-4.959,0 l0,-0.009 z"}):T.default.createElement(T.default.Fragment,null,T.default.createElement("path",{d:"M17.64,9.20454545 c0,-0.638,-0.057,-1.252,-0.164,-1.841 l-8.476,0 l0,3.481 l4.844,0 c-0.209,1.125,-0.843,2.079,-1.796,2.717 l0,2.258 l2.908,0 c1.702,-1.567,2.684,-3.874,2.684,-6.615 l0,0 z",fill:"#4285F4"}),T.default.createElement("path",{d:"M9,18 c2.43,0,4.467,-0.806,5.956,-2.18 l-2.908,-2.259 c-0.806,0.54,-1.837,0.859,-3.048,0.859 c-2.344,0,-4.328,-1.583,-5.036,-3.71 l-3.007,0 l0,2.332 c1.481,2.941,4.525,4.958,8.043,4.958 l0,0 z",fill:"#34A853"}),T.default.createElement("path",{d:"M3.96409091,10.71 c-0.18,-0.54,-0.282,-1.117,-0.282,-1.71 c0,-0.593,0.102,-1.17,0.282,-1.71 l0,-2.332 l-3.007,0 c-0.609,1.215,-0.957,2.59,-0.957,4.042 c0,1.452,0.348,2.827,0.957,4.042 l3.007,-2.332 l0,0 z",fill:"#FBBC05"}),T.default.createElement("path",{d:"M9,3.57954545 c1.321,0,2.508,0.454,3.44,1.346 l2.582,-2.581 c-1.559,-1.453,-3.596,-2.345,-6.022,-2.345 c-3.518,0,-6.562,2.017,-8.043,4.959 l3.007,2.331 c0.708,-2.127,2.692,-3.71,5.036,-3.71 l0,0 z",fill:"#EA4335"})))}function hN(e){const{color:t}=e;return T.default.createElement(l.SvgIcon,{viewBox:"0 0 21 21",style:{fontSize:21},...e},T.default.createElement("rect",{x:"1",y:"1",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#F25022"}),T.default.createElement("rect",{x:"1",y:"11",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#00A4EF"}),T.default.createElement("rect",{x:"11",y:"1",width:"9",height:"9",fill:"disabled"===t?"#939393":"#7FBA00"}),T.default.createElement("rect",{x:"11",y:"11",width:"9",height:"9",fill:"disabled"===t?"#B9B9B9":"#FFB900"}))}const mN=d.makeStyles()((e=>({loginButton:{marginBottom:e.spacing(1),width:"220px",height:"40px",fontSize:"16px",textTransform:"none",justifyContent:"left",padding:"3px 12px"}})));function gN(e){const{classes:t}=mN(),{disabled:n}=e;return T.default.createElement(l.Button,{className:t.loginButton,variant:"outlined",startIcon:T.default.createElement(pN,{color:n?"disabled":void 0}),...e},"Sign in with Google")}function yN(e){const{classes:t}=mN(),{disabled:n}=e;return T.default.createElement(l.Button,{className:t.loginButton,variant:"outlined",startIcon:T.default.createElement(hN,{color:n?"disabled":void 0}),...e},"Sign in with Microsoft")}function vN(e){const{classes:t}=mN();return T.default.createElement(l.Button,{className:t.loginButton,variant:"outlined",startIcon:T.default.createElement(fN,{fontSize:"small"}),...e},"Continue as Guest")}const bN=d.makeStyles()((e=>({divider:{marginTop:e.spacing(4),marginBottom:e.spacing(5)}}))),_N=({baseURL:e,handleClose:t,name:n})=>{const{classes:r}=bN(),[a,o]=u.useState(""),[i,s]=u.useState([]);function c(e){t("google"===e?"google":"microsoft"===e?"microsoft":"guest")}u.useEffect((()=>{const t=new AbortController,{signal:n}=t;return async function(){const t=new URL("auth/types",e).href,r=await fetch(t,{method:"GET",signal:n});if(!r.ok){const e=await bf(r,"Error when retrieving auth types from server");return void o(e)}const a=await r.json();s(a)}().catch((e=>{KO(e)||o(String(e))})),()=>{t.abort("AuthTypeSelector")}}),[e]);const d=i.includes("google"),f=i.includes("microsoft"),p=i.includes("guest");return T.default.createElement(xf,{open:!0,title:`Log in to ${n}`,handleClose:t,maxWidth:!1,"data-testid":"login-apollo"},T.default.createElement(l.DialogContent,{style:{display:"flex",flexDirection:"column",paddingTop:8}},d?T.default.createElement(gN,{disabled:!d,onClick:()=>{c("google")}}):null,f?T.default.createElement(yN,{disabled:!f,onClick:()=>{c("microsoft")}}):null,p?T.default.createElement(T.default.Fragment,null,T.default.createElement(l.Divider,{className:r.divider}),T.default.createElement(vN,{onClick:()=>{c("guest")}})):null),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:()=>{t()}},"Cancel")),a?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},a)):null)},wN="undefined"==typeof sessionStorage,xN=e=>o.InternetAccount.named("ApolloInternetAccount").props({type:r.types.literal("ApolloInternetAccount"),configuration:a.ConfigurationReference(e)}).views((e=>({get baseURL(){return a.getConf(e,"baseURL")},getUserId(){const t=e.retrieveToken();if(t)return Xn.getDecodedToken(t).id}}))).volatile((()=>({role:void 0,controller:new AbortController}))).actions((e=>({setRole(){const t=e.retrieveToken();if(!t)return void(e.role=void 0);const n=Xn.getDecodedToken(t),{role:r}=n;e.role!==r&&(e.role=r)}}))).actions((e=>{let t;return{addMessageChannel(e,n){t=t=>{this.finishOAuthWindow(t,e,n)},window.addEventListener("message",t)},deleteMessageChannel(){window.removeEventListener("message",t)},finishOAuthWindow(t,n,r){if(t.data.name!==`JBrowseAuthWindow-${e.internetAccountId}`)return void this.deleteMessageChannel();const a=t.data.redirectUri.replace("#","?"),o=new URL(a),i=new URLSearchParams(o.search).get("access_token");this.deleteMessageChannel(),i?(e.storeToken(i),e.setRole(),n(i)):r(new Error("Error with token endpoint"))},async openAuthWindow(t,r,a){const o=n.isElectron?"http://localhost/auth":globalThis.location.origin+globalThis.location.pathname,i=new URL("auth/login",e.baseURL),s=new URLSearchParams({type:t,redirect_uri:o});i.search=s.toString();const l=`JBrowseAuthWindow-${e.internetAccountId}`;if(n.isElectron){const{ipcRenderer:t}=globalThis.require("electron"),n=await t.invoke("openAuthWindow",{internetAccountId:e.internetAccountId,data:{redirect_uri:o},url:i.toString()}),s=new MessageEvent("message",{data:{name:l,redirectUri:n}});this.finishOAuthWindow(s,r,a)}else this.addMessageChannel(r,a),window.open(i,l,"width=500,height=600")}}})).actions((e=>({async getTokenFromUser(t,n){const{baseURL:a}=e,o=await new Promise(((t,n)=>{const{session:a}=r.getRoot(e),{baseURL:o,name:i}=e;a.queueDialog((e=>[_N,{name:i,handleClose:r=>{r?r instanceof Error?n(r):t(r):n(new Error("user cancelled entry")),e()},baseURL:o}]))}));if("guest"!==o)return void e.openAuthWindow(o,t,n);const i=new URL("auth/login",a),s=new URLSearchParams({type:o});i.search=s.toString();const l=i.toString(),c=await fetch(l,{signal:e.controller.signal});if(!c.ok){const e=await bf(c,"Error when logging in");return void n(new Error(e))}const{token:u}=await c.json();t(u)}}))).volatile((()=>({lastChangeSequenceNumber:void 0}))).actions((e=>({setLastChangeSequenceNumber(t){e.lastChangeSequenceNumber=t}}))).actions((e=>({updateLastChangeSequenceNumber:r.flow((function*(){const{baseURL:t}=e,n=new URL("changes",t),r=new URLSearchParams({limit:"1"});n.search=r.toString();const a=n.toString(),o=e.getFetcher({locationType:"UriLocation",uri:a});let i;try{i=yield o(a,{method:"GET",signal:e.controller.signal})}catch(t){return void(e.controller.signal.aborted||console.error(t))}if(!i.ok){const e=yield bf(i,"Error when fetching server LastChangeSequence");throw new Error(e)}const s=yield i.json();e.setLastChangeSequenceNumber(s.length>0?s[0].sequence:0)})),getMissingChanges:r.flow((function*(){const{session:t}=r.getRoot(e),{changeManager:n}=t.apolloDataStore;if(!e.lastChangeSequenceNumber)throw new Error("No LastChangeSequence stored in session. Please, refresh you browser to get last updates from server");const{baseURL:a,lastChangeSequenceNumber:o}=e,i=new URL("changes",a),s=new URLSearchParams({since:String(o),sort:"1"});i.search=s.toString();const l=i.toString(),c=e.getFetcher({locationType:"UriLocation",uri:l});let u;try{u=yield c(l,{method:"GET",signal:e.controller.signal})}catch(t){return void(e.controller.signal.aborted||console.error(t))}if(!u.ok)return void console.error(`Error when fetching the last updates to recover socket connection — ${u.status}`);const d=yield u.json();for(const e of d){const t=L.Change.fromJSON(e);n.submit(t,{submitToBackend:!1})}}))}))).volatile((e=>{const{origin:t,pathname:n}=new URL("socket.io/",e.baseURL);return{socket:dd(t,{path:n})}})).actions((e=>({addSocketListeners(){const{session:t}=r.getRoot(e),{notify:n}=t,a=e.retrieveToken();if(!a)throw new Error("No Token found");const o=Xn.getDecodedToken(a),i=Xn.makeUserSessionId(o),{socket:s}=e,{addCheckResult:l,changeManager:c,deleteCheckResult:u}=t.apolloDataStore;s.on("connect",(()=>{e.getMissingChanges()})),s.on("connect_error",(e=>{console.error(e),n("Could not connect to the Apollo server.","error")})),s.on("COMMON",(e=>{if("checkResult"in e)return void(e.deleted?u(e.checkResult._id.toString()):l(e.checkResult));if(sessionStorage.setItem("LastChangeSequence",String(e.changeSequence)),e.userSessionId===i)return;const t=L.Change.fromJSON(e.changeInfo);c.submit(t,{submitToBackend:!1})})),s.on("USER_LOCATION",(e=>{const{channel:n,locations:r,userName:a,userSessionId:o}=e;"USER_LOCATION"===n&&o!==i&&t.addOrUpdateCollaborator({name:a,id:o,locations:r})})),s.on("REQUEST_INFORMATION",(e=>{const{channel:n,userSessionId:r}=e;"REQUEST_INFORMATION"===n&&r!==a&&t.broadcastLocations()}))}}))).actions((e=>({postUserLocation:(t=>{let n;return t=>{clearTimeout(n),n=setTimeout((()=>{!async function(t){if(!r.isAlive(e)||"none"===e.role)return;const{baseURL:n,controller:a}=e,o=new URL("users/userLocation",n).href,i=new URLSearchParams(JSON.stringify(t)),s=e.getFetcher({locationType:"UriLocation",uri:o});try{if(!(await s(o,{method:"POST",body:i,signal:a.signal})).ok)throw new Error("ignore")}catch{console.error("Broadcasting user location failed")}}(t)}),300)}})()}))).volatile((()=>({roleNotificationSent:!1}))).actions((e=>{function t(){e.postUserLocation([])}function a(){if("hidden"===document.visibilityState&&e.postUserLocation([]),"visible"===document.visibilityState){const{session:t}=r.getRoot(e);t.broadcastLocations()}}return{initialize:r.flow((function*(o){if("none"===o){if(!e.roleNotificationSent){const{session:t}=r.getRoot(e);t.notify("You have registered as an Apollo user but have not been given access. Ask your administrator to enable access for your account.","warning"),e.roleNotificationSent=!0}return}if("admin"===o){const t=r.getRoot(e);n.isAbstractMenuManager(t)&&function(e){e.appendToMenu("Apollo",{label:"Admin",type:"subMenu",icon:fd,subMenu:[{label:"Add Assembly",icon:Uc,onClick:e=>{e.queueDialog((t=>[Cf,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Delete Assembly",icon:pd,onClick:e=>{e.queueDialog((t=>[HT,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Import Features",icon:hd,onClick:e=>{e.queueDialog((t=>[JT,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Add reference sequence aliases",onClick:e=>{e.queueDialog((t=>[lN,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Add Assembly aliases",onClick:e=>{e.queueDialog((t=>[Of,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Manage Users",icon:md,onClick:e=>{e.queueDialog((t=>[ZT,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Manage Checks",icon:gd,onClick:e=>{e.queueDialog((t=>[KT,{session:e,handleClose:()=>{t()}}]))}}]})}(t)}yield e.updateLastChangeSequenceNumber(),e.addSocketListeners();const{baseURL:i}=e,s=new URL("users/locations",i).href,l=e.getFetcher({locationType:"UriLocation",uri:s});yield l(s,{method:"GET",signal:e.controller.signal}),window.addEventListener("beforeunload",t),document.addEventListener("visibilitychange",a)})),removeBeforeUnloadListener(){window.removeEventListener("beforeunload",t)},removeVisibilityChangeListener(){document.removeEventListener("visibilitychange",a)}}})).actions((e=>({afterAttach(){e.setRole(),c.autorun((async t=>{if(wN)return;const{session:n}=r.getRoot(e);if(n&&e.role)try{await e.initialize(e.role),t.dispose()}catch{}}),{name:"ApolloInternetAccount"})},beforeDestroy(){e.removeBeforeUnloadListener(),e.removeVisibilityChangeListener(),e.controller.abort("internet account beforeDestroy"),e.socket.close()}}))),SN="undefined"==typeof sessionStorage;class EN extends w.BaseAdapter{refNameAliases;async getRefNameAliases(){const e=a.readConfObject(this.config,"assemblyId");if(!SN){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)throw new Error("No Apollo data store found");const n=t.getBackendDriver(e);if(!n)throw new Error("No backend driver found");return await n.getRefNameAliases(e)}const t=await new Promise(((t,n)=>{const r=setTimeout((()=>{n(new Error("timeout"))}),2e4),a=nN(),o=e=>{const n=e.data;(function(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo&&"refNameAliases"in e})(n)&&n.messageId===a&&(clearTimeout(r),removeEventListener("message",o),t(n.refNameAliases))};addEventListener("message",o),rpcServer.emit("apollo",{apollo:!0,method:"getRefNameAliases",assembly:e,messageId:a})}));return this.refNameAliases=t,t}freeResources(){}}var kN=a.ConfigurationSchema("ApolloRefNameAliasAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0}),CN={};function AN(e){return"uniqueId"in e&&"object"!==W(e.data)}Object.defineProperty(CN,"__esModule",{value:!0}),CN.isFeature=function(e){return"object"===W(e)&&null!==e&&"function"==typeof e.get&&"function"==typeof e.id};var ON=function(){function e(t){var n,r=this;K(this,e),AN(t)?this.data=t:(this.data=t.data,this.parentHandle=t.parent);var a=AN(t)?t.uniqueId:t.id;if(null==a)throw new Error("SimpleFeature requires a unique `id` or `data.uniqueId` attribute");if(this.uniqueId=String(a),!(this.data.aliases||this.data.end-this.data.start>=0))throw new Error("invalid feature data, end less than start. end: ".concat(this.data.end," start: ").concat(this.data.start));this.data.subfeatures&&(this.subfeatures=null===(n=this.data.subfeatures)||void 0===n?void 0:n.map((function(t,n){return"function"!=typeof t.get?new e({id:t.uniqueId||"".concat(a,"-").concat(n),data:$({strand:r.data.strand},t),parent:r}):t})))}return X(e,[{key:"get",value:function(e){return"subfeatures"===e?this.subfeatures:"parent"===e?this.parent():this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t}},{key:"tags",value:function(){return Object.keys(this.data)}},{key:"id",value:function(){return this.uniqueId}},{key:"parent",value:function(){return this.parentHandle}},{key:"children",value:function(){return this.get("subfeatures")}},{key:"toJSON",value:function(){var e=$($({},this.data),{},{uniqueId:this.id()}),t=this.parent();t&&(e.parentId=t.id());var n=this.children();return n&&(e.subfeatures=n.map((function(e){return e.toJSON()}))),e}}],[{key:"fromJSON",value:function(t){return new e($({},t))}}]),e}(),TN=CN.default=ON;function NN(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo}const IN="undefined"==typeof sessionStorage;class RN extends w.BaseSequenceAdapter{regions;async getRefNames(){return(await this.getRegions()).map((e=>e.refName))}async getRegions(){if(this.regions)return this.regions;const e=a.readConfObject(this.config,"assemblyId");if(!IN){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)throw new Error("No Apollo data store found");const n=t.getBackendDriver(e);if(!n)throw new Error("No backend driver found");const r=await n.getRegions(e);return this.regions=r,r}const t=await new Promise(((t,n)=>{const r=setTimeout((()=>{n("timeout")}),2e4),a=nN(),o=e=>{const{data:n}=e;NN(n)&&n.messageId===a&&(clearTimeout(r),removeEventListener("message",o),t(n.regions))};addEventListener("message",o),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getRegions",assembly:e,messageId:a})}));return this.regions=t,t}getFeatures(e){const{end:t,refName:n,start:r}=e,o=a.readConfObject(this.config,"assemblyId"),i={...e,assemblyName:o};return x.ObservableCreate((async e=>{if(!IN){const a=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!a)return void e.error("No Apollo data store found");const s=a.getBackendDriver(o);if(!s)return void e.error("No backend driver found");const l=(await s.getRegions(i.assemblyName)).find((e=>e.refName===i.refName));if(!l)return void e.error("Cannot get region");i.end>l.end&&(i.end=l.end);const{seq:c}=await s.getSequence(i);return e.next(new TN({id:`${n} ${r}-${t}`,data:{refName:n,start:r,end:t,seq:c}})),void e.complete()}const a=await new Promise(((e,t)=>{const n=setTimeout((()=>{t("timeout")}),2e4),r=nN(),a=t=>{const{data:o}=t;NN(o)&&o.messageId===r&&(clearTimeout(n),removeEventListener("message",a),e(o.sequence))};addEventListener("message",a),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getSequence",region:i,messageId:r})}));e.next(new TN({id:`${n} ${r}-${t}`,data:{refName:n,start:r,end:t,seq:a}})),e.complete()}))}freeResources(){}}var FN=a.ConfigurationSchema("ApolloSequenceAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0}),PN={};Object.defineProperty(PN,"__esModule",{value:!0}),PN.RefSequenceResult=void 0;var MN=function(){function e(t){K(this,e),this.label=t.label,this.locString=t.locString,this.renderingComponent=t.renderingComponent,this.displayString=t.displayString,this.matchedAttribute=t.matchedAttribute,this.matchedObject=t.matchedObject,this.textSearchAdapter=t.textSearchAdapter,this.relevance=t.relevance,this.trackId=t.trackId,this.score=t.score||1,this.results=t.results||[]}return X(e,[{key:"getLabel",value:function(){return this.label}},{key:"getDisplayString",value:function(){return this.displayString||this.label}},{key:"getRenderingComponent",value:function(){return this.renderingComponent}},{key:"getTrackId",value:function(){return this.trackId}},{key:"getScore",value:function(){return this.score}},{key:"updateScore",value:function(e){return this.score=e,this.score}},{key:"getId",value:function(){return"".concat(this.getLabel(),"-").concat(this.getLocation(),"-").concat(this.getTrackId())}},{key:"hasLocation",value:function(){return!!this.locString}},{key:"getLocation",value:function(){return this.locString}},{key:"getComboResults",value:function(){return this.results}}]),e}(),DN=PN.default=MN,jN=function(e){ee(n,e);var t=le(n);function n(e){var r,a;return K(this,n),(r=t.call(this,e)).refName=null!==(a=e.refName)&&void 0!==a?a:"",r}return X(n,[{key:"getLocation",value:function(){return this.refName}}]),n}(MN);PN.RefSequenceResult=jN;class LN extends w.BaseAdapter{get baseURL(){return a.readConfObject(this.config,"baseURL").uri}get trackId(){return a.readConfObject(this.config,"trackId")}get assemblyNames(){return a.readConfObject(this.config,"assemblyNames")}mapBaseResult(e,t,n){return e.map((e=>{const r=t.getCanonicalRefName(e.refSeq);return new DN({label:n,trackId:this.trackId,locString:`${r}:${e.min+1}..${e.max}`})}))}async searchIndex(e){const t=e.queryString,n=[],r=this.pluginManager?.rootModel?.session;if(!r)return n;const{apolloDataStore:a}=r,{assemblyManager:o}=r;for(const r of this.assemblyNames){const i=a.getBackendDriver(r),s=o.get(r);if(!i||!s)continue;const l=await i.searchFeatures(e.queryString,[r]);n.push(...this.mapBaseResult(l,s,t))}return n}freeResources(){}}var qN=a.ConfigurationSchema("ApolloTextSearchAdapter",{assemblyNames:{type:"stringArray",defaultValue:[],description:"List of assemblies covered by text search adapter"},trackId:{type:"string",defaultValue:""},baseURL:{type:"fileLocation",defaultValue:{uri:"",locationType:"UriLocation"}}},{explicitlyTyped:!0,explicitIdentifier:"textSearchAdapterId"}),BN=s.createSvgIcon(i.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore"),UN=s.createSvgIcon(i.jsx("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit"),zN=s.createSvgIcon(i.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreHoriz");const GN=d.makeStyles()((e=>({attributeKey:{fontWeight:"bold",marginRight:e.spacing(2)}})));function HN({attributeKey:e}){const{classes:t}=GN(),n=/^[A-Z]/.test(e);let r,a=e;return Xn.isGFFInternalAttribute(e)?(a=Xn.internalToGFF[e],r=`On GFF3 export, this will be assigned to the GFF3's reserved "${a}" attribute`):Xn.isGFFColumnInternal(e)?(a=Xn.gffInternalToColumn[e],r=`On GFF3 export, this will be placed in the GFF3's "${a}" column`):n&&(r="On GFF3 export, this attribute will be changed to start with a lower-case letter because attributes starting with an upper-case letter are reserved in GFF3"),T.default.createElement("div",{style:{display:"flex"}},T.default.createElement(l.Typography,{className:t.attributeKey},a),r?T.default.createElement(l.Tooltip,{title:r},T.default.createElement(l.Chip,{icon:T.default.createElement(yd,null),label:"GFF3",size:"small",variant:"outlined"})):null)}const $N="Custom",VN={[$N]:"custom"};for(const[e,t]of Object.entries(Xn.gffToInternal))VN[`GFF ${t}`]=e;for(const[e,t]of Object.entries(Xn.gffColumnToInternal))VN[`GFF ${t}`]=e;const WN=h.observer((function({setKey:e,session:t}){const{pluginManager:r}=n.getEnv(t),a=r.evaluateExtensionPoint("Apollo-ReservedAttributeKeys",VN),o=Object.keys(a).at(0)??$N,[i,s]=u.useState(o),[c,d]=u.useState(),f=i===$N;return T.default.createElement("form",{onSubmit:function(t){t.preventDefault(),e(f?c:a[i])}},T.default.createElement("div",{style:{display:"flex",flexDirection:"column",margin:8}},T.default.createElement(l.FormControl,{variant:"outlined"},T.default.createElement(l.InputLabel,{id:"attribute-key-select-label"},"Key"),T.default.createElement(l.Select,{labelId:"attribute-key-select-label",value:i,label:"Key",onChange:e=>{s(e.target.value)}},Object.keys(a).map((e=>T.default.createElement(l.MenuItem,{key:e,value:e},e))))),f?T.default.createElement(l.TextField,{label:"Attribute key",variant:"outlined",id:"attributeKey",onChange:e=>{d(e.target.value)}}):null),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{color:"primary",variant:"contained",type:"submit",disabled:f&&!c},"Add"),T.default.createElement(l.Button,{variant:"outlined",onClick:function(){e()}},"Cancel")))}));var JN=s.createSvgIcon(i.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddBox");const YN=h.observer((function({onChangeCommitted:e,value:t,...n}){const[r,a]=u.useState(String(t)),[o,i]=u.useState(!1),[s,c]=u.useState(null);return u.useEffect((()=>{a(String(t))}),[t]),u.useEffect((()=>{o&&(s?.blur(),i(!1))}),[o,s]),T.default.createElement(l.TextField,{...n,type:"text",onChange:function(e){a(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?s?.blur():"Escape"===e.key&&(a(String(t)),i(!0))},onBlur:()=>{r!==String(t)&&e(r)},inputRef:e=>{c(e)}})})),KN=h.observer((function({attributeValues:e,setAttribute:t,isNew:n=!1}){const[r,a]=u.useState(e&&e.length>0?e:[""]);return T.default.createElement(T.default.Fragment,null,r.map(((e,t)=>T.default.createElement("div",{key:`${t}-${e}`,style:{display:"flex"}},T.default.createElement(YN,{value:e,onChangeCommitted:e=>{!function(e,t){a((n=>{const r=[...n];return r[e]=t,r}))}(t,e)},variant:"outlined",fullWidth:!0}),T.default.createElement(l.IconButton,{"aria-label":"delete",size:"medium",edge:"end",onClick:()=>{!function(e){a((t=>{const n=[...t];return n.splice(e,1),n}))}(t)}},T.default.createElement(pd,{fontSize:"inherit"}))))),T.default.createElement(l.IconButton,{"aria-label":"add",size:"medium",color:"secondary",edge:"start",onClick:function(){a((e=>{const t=[...e];return t.push(""),t}))}},T.default.createElement(JN,{fontSize:"inherit"})),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{color:"primary",variant:"contained",onClick:()=>{t(r.filter(Boolean))}},n?"Add":"Update"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:()=>{t()}},"Cancel")))}));function ZN({values:e}){return T.default.createElement(T.default.Fragment,null,e?.map(((e,t)=>T.default.createElement(l.Typography,{key:`${t}.${e}`,variant:"body2",color:"textSecondary"},e))))}const XN=d.makeStyles()((e=>({list:{"li:nth-of-type(odd)":{backgroundColor:e.palette.action.focus},"li:nth-of-type(even)":{backgroundColor:e.palette.action.hover}}}))),QN=h.observer((function({assembly:e,editable:t,feature:a,session:o}){const{pluginManager:i}=n.getEnv(o),{classes:s}=XN(),[d,f]=u.useState(null),[p,h]=u.useState(null),[m,g]=u.useState(null),[y,v]=u.useState(!1),[b,_]=u.useState(),w=Boolean(d),{changeManager:x}=o.apolloDataStore,{notify:S}=o;function E(){f(null),h(null)}const{_id:k,attributes:C}=a,A=i.evaluateExtensionPoint("Apollo-AttributeEditorComponent",KN,{key:b});return T.default.createElement(T.default.Fragment,null,T.default.createElement(l.List,{className:s.list},c.entries(C).map((([n,s])=>{const c=i.evaluateExtensionPoint("Apollo-AttributeEditorComponent",KN,{key:n}),u=i.evaluateExtensionPoint("Apollo-AttributeViewerComponent",ZN,{key:n});return T.default.createElement(l.ListItem,{key:n,secondaryAction:t&&!m?T.default.createElement(l.IconButton,{edge:"end",onClick:e=>{!function(e,t){f(e.currentTarget),h(t)}(e,n)}},T.default.createElement(zN,null)):null},T.default.createElement(l.ListItemText,{disableTypography:!0,primary:T.default.createElement(HN,{attributeKey:n}),secondary:m===n?T.default.createElement(c,{session:o,attributeValues:s,setAttribute:t=>{g(null),t&&function(t,n){const o={...r.getSnapshot(C)},i=structuredClone(o);if(!(t in o))return void S(`"${t}" not found in feature attributes`,"error");if(o[t].toString()===n.toString())return;o[t]=n;const s=new Xn.FeatureAttributeChange({changedIds:[a._id],typeName:"FeatureAttributeChange",assembly:e,featureId:a._id,oldAttributes:i,newAttributes:o});x.submit(s)}(n,t)}}):T.default.createElement(u,{values:s})}))})),b?T.default.createElement(l.ListItem,null,T.default.createElement(l.ListItemText,{disableTypography:!0,primary:T.default.createElement(HN,{attributeKey:b}),secondary:T.default.createElement(A,{session:o,attributeValues:[],setAttribute:t=>{t&&function(t,n){const o={...r.getSnapshot(C)},i=structuredClone(o);if(t in o)return void S(`Feature already has attribute "${t}"`,"error");o[t]=n;const s=new Xn.FeatureAttributeChange({changedIds:[a._id],typeName:"FeatureAttributeChange",assembly:e,featureId:a._id,oldAttributes:i,newAttributes:o});x.submit(s)}(b,t),_(void 0)},isNew:!0})})):null),t?T.default.createElement(l.Button,{color:"primary",variant:"contained",disabled:y||Boolean(b),onClick:()=>{v(!0)}},"Add new"):null,y?T.default.createElement(l.Paper,{variant:"outlined",style:{marginTop:8}},T.default.createElement(WN,{session:o,setKey:e=>{_(e),v(!1)}})):null,T.default.createElement(l.Menu,{anchorEl:d,open:w,onClose:E},T.default.createElement(l.MenuItem,{onClick:function(){p&&function(t){const n=r.getSnapshot(C),{[t]:a,...o}=n,i=new Xn.FeatureAttributeChange({changedIds:[k],typeName:"FeatureAttributeChange",assembly:e,featureId:k,oldAttributes:n,newAttributes:o});x.submit(i)}(p),E()}},T.default.createElement(l.ListItemIcon,null,T.default.createElement(pd,{fontSize:"small"})),T.default.createElement(l.Typography,{variant:"inherit"},"Delete")),T.default.createElement(l.MenuItem,{onClick:function(){p&&g(p),E()}},T.default.createElement(l.ListItemIcon,null,T.default.createElement(UN,{fontSize:"small"})),T.default.createElement(l.Typography,{variant:"inherit"},"Edit"))))})),eI=h.observer((function({onChangeCommitted:e,value:t,...n}){const[r,a]=u.useState(String(t)),[o,i]=u.useState(!1),[s,c]=u.useState(null);u.useEffect((()=>{a(String(t))}),[t]),u.useEffect((()=>{o&&(s?.blur(),i(!1))}),[o,s]);const d=Number.isNaN(Number(r));return T.default.createElement(l.TextField,{...n,type:"text",onChange:function(e){a(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?s?.blur():"Escape"===e.key&&(a(String(t)),i(!0))},onBlur:()=>{const n=Number(r);r!==String(t)&&(Number.isNaN(n)?a(String(t)):e(n)||a(String(t)))},inputRef:e=>{c(e)},error:d,helperText:d?"Not a valid number":void 0})})),tI=h.observer((function({assembly:e,feature:t,session:n}){const[r,a]=u.useState(""),[o,i]=u.useState(""),{_id:s,assemblyId:c,max:d,min:f,strand:p,type:h}=t,m=e=>{n.notify(e.message,"error")},{changeManager:g}=n.apolloDataStore;function y(t){const{value:n}=t.target,r=n?Number(n):void 0,a=new Xn.StrandChange({typeName:"StrandChange",changedIds:[s],featureId:s,oldStrand:p,newStrand:r,assembly:e});return g.submit(a)}return T.default.createElement("div",{"data-testid":"basic_information"},T.default.createElement(eI,{margin:"dense",id:"start",label:"Start",fullWidth:!0,variant:"outlined",value:f+1,onChangeCommitted:function(t){t--;const n=new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:[s],featureId:s,oldStart:f,newStart:t,assembly:e});return g.submit(n),!0}}),T.default.createElement(eI,{margin:"dense",id:"end",label:"End",fullWidth:!0,variant:"outlined",value:d,onChangeCommitted:function(t){const n=new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:[s],featureId:s,oldEnd:d,newEnd:t,assembly:e});return g.submit(n),!0}}),T.default.createElement(RT,{session:n,ontologyName:"Sequence Ontology",value:h,filterTerms:TT,fetchValidTerms:async function(e,t,n){const r=await IT(e,t);if(r)return r;i(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,t),renderInput:e=>T.default.createElement(l.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(o),helperText:o}),onChange:(e,t)=>{t&&function(e){a("");const t=new Xn.TypeChange({typeName:"TypeChange",changedIds:[s],featureId:s,oldType:h,newType:e,assembly:c});return g.submit(t)}(t).catch(m)}}),T.default.createElement("label",null,T.default.createElement("input",{type:"radio",value:"1",checked:1===p,onChange:y}),"Positive Strand (+)"),T.default.createElement("label",null,T.default.createElement("input",{type:"radio",value:"-1",checked:-1===p,onChange:y}),"Negative Strand (-)"),T.default.createElement("label",null,T.default.createElement("input",{type:"radio",value:"",checked:void 0===p,onChange:y}),"No Strand Information"),r?T.default.createElement(l.Typography,{color:"error"},r):null)})),nI=h.observer((function(e){const{feature:t,model:n}=e,{children:r,parent:a}=t,o=[];if(r)for(const[,e]of r)o.push(e);return a??o.length>0?T.default.createElement("div",{style:{marginTop:10}},a&&T.default.createElement("div",null,T.default.createElement(l.Typography,{variant:"h6"},"Parent:"),T.default.createElement(l.Button,{variant:"contained",onClick:()=>{n.setFeature(a)}},a.type,Kd(a)," (",a.min,"..",a.max,")")),o.length>0&&T.default.createElement("div",null,T.default.createElement(l.Typography,{variant:"h6"},1===o.length?"Child":"Children",":"),o.map((e=>T.default.createElement("div",{key:e._id,style:{marginBottom:5}},T.default.createElement(l.Button,{variant:"contained",onClick:()=>{n.setFeature(e)}},e.type,Kd(e)," (",e.min,"..",e.max,")")))))):null})),rI=d.makeStyles()({sequence:{width:"100%",resize:"vertical"}}),aI=h.observer((function({assembly:e,feature:t,refName:n,session:r}){const a=r.apolloDataStore.assemblies.get(e),{classes:o}=rI();if(!t||!a)return null;const i=a.getByRefName(n);if(!i)return null;const{max:s,min:l}=t;let c=i.getSequence(l,s);return c?c=function(e,t,n,r,a){return`>${t}:${n+1}–${r}\n${e}`}(c,n,l,s):r.apolloDataStore.loadRefSeq([{assemblyName:e,refName:n,start:l,end:s}]),T.default.createElement("div",null,T.default.createElement("textarea",{readOnly:!0,rows:20,className:o.sequence,value:c}))})),oI=d.makeStyles()((e=>({root:{padding:e.spacing(2)}}))),iI=h.observer((function(e){const{model:t}=e,{assembly:r,feature:a,refName:o}=t,i=n.getSession(t),s=i.apolloDataStore.assemblies.get(r),{classes:c}=oI(),[d,f]=u.useState(["attributes"]);if(u.useEffect((()=>{f(["attributes"])}),[a]),!a||!s)return null;const p=s.getByRefName(o);if(!p)return null;const{max:h,min:m}=a;function g(e,t){f(e?[...d,t]:d.filter((e=>e!==t)))}return p.getSequence(m,h)||i.apolloDataStore.loadRefSeq([{assemblyName:r,refName:o,start:m,end:h}]),T.default.createElement("div",{className:c.root},T.default.createElement(tI,{feature:a,session:i,assembly:s._id}),T.default.createElement(l.Accordion,{style:{marginTop:10},expanded:d.includes("attributes"),onChange:(e,t)=>{g(t,"attributes")}},T.default.createElement(l.AccordionSummary,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel1-content",id:"panel1-header"},T.default.createElement(l.Typography,{component:"span"},"Attributes")),T.default.createElement(l.AccordionDetails,null,T.default.createElement(QN,{feature:a,session:i,assembly:s._id,editable:!0}))),T.default.createElement(l.Accordion,{style:{marginTop:10},expanded:d.includes("sequence"),onChange:(e,t)=>{g(t,"sequence")}},T.default.createElement(l.AccordionSummary,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel2-content",id:"panel2-header"},T.default.createElement(l.Typography,{component:"span"},"Sequence")),T.default.createElement(l.AccordionDetails,null,d.includes("sequence")&&T.default.createElement(aI,{feature:a,session:i,assembly:s._id,refName:o}))),T.default.createElement(l.Accordion,{style:{marginTop:10},expanded:d.includes("related_features"),onChange:(e,t)=>{g(t,"related_features")}},T.default.createElement(l.AccordionSummary,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel3-content",id:"panel3-header"},T.default.createElement(l.Typography,{component:"span"},"Related features")),T.default.createElement(l.AccordionDetails,null,T.default.createElement(nI,{model:t,feature:a}))))}));var sI={},lI={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.AnnotationFeatureModel=void 0;var t=A.default,n=O.default,r=sI,a=n.types.late((function(){return e.AnnotationFeatureModel}));e.AnnotationFeatureModel=n.types.model("AnnotationFeatureModel",{_id:n.types.identifier,refSeq:n.types.string,type:n.types.string,min:n.types.number,max:n.types.number,strand:n.types.maybe(n.types.union(n.types.literal(1),n.types.literal(-1))),children:n.types.maybe(n.types.map(a)),attributes:n.types.map(n.types.array(n.types.string))}).views((function(e){return{get length(){return e.max-e.min},get featureId(){return e.attributes.get("id")},get minWithChildren(){var t=e.min,n=e.children;if(!n)return t;var r,a=ve(n);try{for(a.s();!(r=a.n()).done;){var o=ue(r.value,2);t=Math.min(t,o[1].min)}}catch(e){a.e(e)}finally{a.f()}return t},get maxWithChildren(){var t=e.max,n=e.children;if(!n)return t;var r,a=ve(n);try{for(a.s();!(r=a.n()).done;){var o=ue(r.value,2);t=Math.max(t,o[1].max)}}catch(e){a.e(e)}finally{a.f()}return t},hasDescendant:function(t){var n=e.children;if(!n)return!1;var r,a=ve(n);try{for(a.s();!(r=a.n()).done;){var o=ue(r.value,2);if(o[0]===t)return!0;if(o[1].hasDescendant(t))return!0}}catch(e){a.e(e)}finally{a.f()}return!1},get transcriptExonParts(){var n=(0,t.getSession)(e).apolloDataStore.ontologyManager.featureTypeOntology;if(!n.isTypeOf(e.type,"transcript")&&!n.isTypeOf(e.type,"pseudogenic_transcript"))throw new Error("Feature is not a transcript or equivalent, cannot calculate exon locations");var r=e.children;if(!r)throw new Error("No exons in transcript");var a,o=fe(r.values()).filter((function(e){return n.isTypeOf(e.type,"exon")})).sort((function(e,t){return e.min-t.min})),i=e.min,s=[],l=ve(o);try{for(l.s();!(a=l.n()).done;){var c=a.value;c.min>i&&s.push({min:i,max:c.min,type:"intron"}),s.push({min:c.min,max:c.max,type:"exon"}),i=c.max}}catch(e){l.e(e)}finally{l.f()}return i<e.max&&s.push({min:i,max:e.max,type:"intron"}),-1===e.strand&&s.reverse(),s},get transcriptParts(){var n=(0,t.getSession)(e).apolloDataStore.ontologyManager.featureTypeOntology;if(!n.isTypeOf(e.type,"transcript")&&!n.isTypeOf(e.type,"pseudogenic_transcript"))throw new Error('Only features of type "transcript" or equivalent can calculate CDS locations');var r=e.children;if(!r)throw new Error("no CDS or exons in transcript");var a=fe(r.values()).filter((function(e){return n.isTypeOf(e.type,"CDS")})),o=[];if(0===a.length)return o.push(this.transcriptExonParts),o;var i,s=ve(a);try{var l=function(){var a,s=i.value,l=s.max,c=s.min,u=[],d=!1,f=[],p=ve(r);try{for(p.s();!(a=p.n()).done;){var h=ue(a.value,2)[1];n.isTypeOf(h.type,"exon")&&f.push({min:h.min,max:h.max})}}catch(e){p.e(e)}finally{p.f()}f.sort((function(e,t){return e.min-t.min}));for(var m=0,g=f;m<g.length;m++){var y=g[m],v=u.at(-1);v&&u.push({min:v.max,max:y.min,type:"intron"});var b,_=ue((0,t.intersection2)(c,l,y.min,y.max),2),w=_[0],x=_[1];b=d?1===e.strand?"threePrimeUTR":"fivePrimeUTR":1===e.strand?"fivePrimeUTR":"threePrimeUTR",void 0!==w&&void 0!==x?(d=!0,w===y.min&&x===y.max?u.push({min:w,max:x,phase:0,type:"CDS"}):w===y.min?u.push({min:w,max:x,phase:0,type:"CDS"},{min:x,max:y.max,type:b}):x===y.max?u.push({min:y.min,max:w,type:b},{min:w,max:x,phase:0,type:"CDS"}):u.push({min:y.min,max:w,type:b},{min:w,max:x,phase:0,type:"CDS"},{min:x,max:y.max,type:"fivePrimeUTR"===b?"threePrimeUTR":"fivePrimeUTR"})):u.push({min:y.min,max:y.max,type:b})}u.sort((function(e,t){return e.min-t.min})),-1===e.strand&&u.reverse();var S=0,E=u.map((function(e){if("CDS"!==e.type)return e;var t=S;return S=(3-(e.max-e.min-t+3)%3)%3,$($({},e),{},{phase:t})}));o.push(E)};for(s.s();!(i=s.n()).done;)l()}catch(e){s.e(e)}finally{s.f()}return o}}})).views((function(e){return{get cdsLocations(){return e.transcriptParts.map((function(e){return e.filter((function(e){return"CDS"===e.type}))}))},get looksLikeGene(){var n=(0,t.getSession)(e).apolloDataStore.ontologyManager.featureTypeOntology;if(!n)return!1;var r=e.children;if(null==r||!r.size)return!1;if(!n.isTypeOf(e.type,"gene")&&!n.isTypeOf(e.type,"pseudogene"))return!1;var a,o=ve(r);try{for(o.s();!(a=o.n()).done;){var i=ue(a.value,2)[1];if(n.isTypeOf(i.type,"transcript")||n.isTypeOf(i.type,"pseudogenic_transcript")){var s=i.children;return!(null==s||!s.size)&&fe(s.values()).some((function(e){return n.isTypeOf(e.type,"exon")}))}}}catch(e){o.e(e)}finally{o.f()}return!1}}})).actions((function(e){return{setAttributes:function(t){e.attributes.clear();var n,r=ve(t.entries());try{for(r.s();!(n=r.n()).done;){var a=ue(n.value,2);e.attributes.set(a[0],a[1])}}catch(e){r.e(e)}finally{r.f()}},setAttribute:function(t,n){e.attributes.merge(Q({},t,n))},setType:function(t){e.type=t},setRefSeq:function(t){e.refSeq=t},setMin:function(t){if(t>e.max)throw new Error('Min "'.concat(t+1,'" is greater than max "').concat(e.max,'"'));e.min!==t&&(e.min=t)},setMax:function(t){if(t<e.min)throw new Error('Max "'.concat(t,'" is less than Min "').concat(e.min,'"'));e.max!==t&&(e.max=t)},setStrand:function(t){e.strand=t},addChild:function(t){if(e.children&&e.children.size>0){var r=(0,n.getSnapshot)(e.children);e.children.clear();var a,o=ve(Object.entries($($({},r),{},Q({},t._id,t))).sort((function(e,t){var n=ue(e,2)[1],r=ue(t,2);return n.min-r[1].min})));try{for(o.s();!(a=o.n()).done;){var i=ue(a.value,2);e.children.put(i[1])}}catch(e){o.e(e)}finally{o.f()}}else{var s;e.children=(0,n.cast)({}),null===(s=e.children)||void 0===s||s.put(t)}},deleteChild:function(t){var n;null===(n=e.children)||void 0===n||n.delete(t)}}})).actions((function(e){return{update:function(t){var r=t.children,a=t.max,o=t.min,i=t.strand;e.setRefSeq(t.refSeq),e.setMin(o),e.setMax(a),e.setStrand(i),r&&(e.children=(0,n.cast)(r))}}})).views((function(t){return{get parent(){var r;try{r=(0,n.getParentOfType)(t,e.AnnotationFeatureModel)}catch(e){}return r},get topLevelFeature(){var r,a=t;do{try{a=r=(0,n.getParentOfType)(a,e.AnnotationFeatureModel)}catch(e){r=void 0}}while(r);return a},get assemblyId(){return(0,n.getParentOfType)(t,r.ApolloAssembly)._id}}}))}(lI);var cI={},uI={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ApolloRefSeq=e.Sequence=void 0;var t=A.default,n=O.default,r=lI;e.Sequence=n.types.model({start:n.types.number,stop:n.types.number,sequence:n.types.string}),e.ApolloRefSeq=n.types.model("ApolloRefSeq",{_id:n.types.identifier,name:n.types.string,description:"",features:n.types.map(r.AnnotationFeatureModel),sequence:n.types.array(e.Sequence)}).actions((function(e){return{addFeature:function(t){e.features.put(t)},deleteFeature:function(t){return e.features.delete(t)},setDescription:function(t){e.description=t},addSequence:function(t){var n;if(t.sequence.length!==t.stop-t.start)throw new Error("sequence does not match declared length: ".concat(JSON.stringify(t)));if(0!==e.sequence.length){var r=e.sequence.map((function(e){return{start:e.start,stop:e.stop,sequence:e.sequence}}));r.push({start:t.start,stop:t.stop,sequence:t.sequence}),r.sort((function(e,t){return e.start===t.start?e.stop-t.stop:e.start-t.start}));var a,o=r.reduce((function(e,t){var n=e.at(-1);if(void 0===n)return[t];if(n.stop>=t.start){if(t.stop>n.stop){var r=n.stop-t.start;n.stop=t.stop,n.sequence+=t.sequence.slice(r)}}else e.push(t);return e}),[]),i=ve(o);try{for(i.s();!(a=i.n()).done;){var s=a.value;if(s.sequence.length!==s.stop-s.start)throw new Error("Consolidated sequence does not match declared length")}}catch(e){i.e(e)}finally{i.f()}e.sequence.length===o.length&&e.sequence.every((function(e,t){return e.start===o[t].start&&e.stop===o[t].stop}))||(e.sequence.clear(),(n=e.sequence).push.apply(n,fe(o)))}else e.sequence.push(t)}}})).views((function(e){return{getSequence:function(n,r){var a,o=ve(e.sequence);try{for(o.s();!(a=o.n()).done;){var i=a.value,s=i.sequence,l=i.start;if((0,t.isContainedWithin)(n,r,l,i.stop))return s.slice(n-l,r-l)}}catch(e){o.e(e)}finally{o.f()}return""},getFeatures:function(n,r){var a,o=[],i=ve(e.features);try{for(i.s();!(a=i.n()).done;){var s=ue(a.value,2)[1];(0,t.doesIntersect2)(s.min,s.max,n,r)&&o.push(s)}}catch(e){i.e(e)}finally{i.f()}return o}}}))}(uI),Object.defineProperty(cI,"__esModule",{value:!0}),cI.ApolloAssembly=void 0;var dI=O.default;cI.ApolloAssembly=dI.types.model("ApolloAssembly",{_id:dI.types.identifier,refSeqs:dI.types.map(uI.ApolloRefSeq),comments:dI.types.array(dI.types.string),backendDriverType:dI.types.optional(dI.types.enumeration("backendDriverType",["CollaborationServerDriver","InMemoryFileDriver","DesktopFileDriver"]),"CollaborationServerDriver")}).views((function(e){return{getByRefName:function(t){return fe(e.refSeqs.values()).find((function(e){return e.name===t}))}}})).actions((function(e){return{addRefSeq:function(t,n,r){return e.refSeqs.put({_id:t,name:n,description:r})},addComment:function(t){return e.comments.push(t)}}}));var fI={};Object.defineProperty(fI,"__esModule",{value:!0}),fI.CheckResult=void 0;var pI=O.default;fI.CheckResult=pI.types.model("CheckResult",{_id:pI.types.identifier,name:pI.types.string,cause:pI.types.string,ids:pI.types.array(pI.types.safeReference(lI.AnnotationFeatureModel)),refSeq:pI.types.string,start:pI.types.number,end:pI.types.number,ignored:!1,message:pI.types.string}),function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=Ze;t.__exportStar(lI,e),t.__exportStar(cI,e),t.__exportStar(uI,e),t.__exportStar(fI,e)}(sI);const hI=r.types.model("ApolloFeatureDetailsWidget",{id:m.ElementId,type:r.types.literal("ApolloFeatureDetailsWidget"),feature:r.types.maybe(r.types.reference(sI.AnnotationFeatureModel,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:r.types.string,refName:r.types.string}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((t=>{if(!e.tryReload)return;const r=n.getSession(e),{apolloDataStore:a}=r;if(!a)return;const o=a.getFeature(e.tryReload);o&&(e.setFeature(o),e.setTryReload(),t.dispose())})))}}))),mI=r.types.model("ApolloTranscriptDetails",{id:m.ElementId,type:r.types.literal("ApolloTranscriptDetails"),feature:r.types.maybe(r.types.reference(sI.AnnotationFeatureModel,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:r.types.string,refName:r.types.string}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((t=>{if(!e.tryReload)return;const r=n.getSession(e),{apolloDataStore:a}=r;if(!a)return;const o=a.getFeature(e.tryReload);o&&(e.setFeature(o),e.setTryReload(),t.dispose())})))}})));function gI(){return gI=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gI.apply(this,arguments)}function yI(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var vI=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,bI=yI((function(e){return vI.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),_I=function(){function e(e){var t=this;this._insertTag=function(e){t.container.insertBefore(e,0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling),t.tags.push(e)},this.isSpeedy=void 0===e.speedy?"production"===Dt.env.NODE_ENV:e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if("production"!==Dt.env.NODE_ENV){var n=64===e.charCodeAt(0)&&105===e.charCodeAt(1);n&&this._alreadyInsertedOrderInsensitiveRule&&console.error("You're attempting to insert the following rule:\n"+e+"\n\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules."),this._alreadyInsertedOrderInsensitiveRule=this._alreadyInsertedOrderInsensitiveRule||!n}if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{r.insertRule(e,r.cssRules.length)}catch(t){"production"===Dt.env.NODE_ENV||/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(e)||console.error('There was a problem inserting the following rule: "'+e+'"',t)}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0,"production"!==Dt.env.NODE_ENV&&(this._alreadyInsertedOrderInsensitiveRule=!1)},e}(),wI="-ms-",xI="-moz-",SI="-webkit-",EI="comm",kI="rule",CI="decl",AI="@keyframes",OI=Math.abs,TI=String.fromCharCode,NI=Object.assign;function II(e){return e.trim()}function RI(e,t,n){return e.replace(t,n)}function FI(e,t){return e.indexOf(t)}function PI(e,t){return 0|e.charCodeAt(t)}function MI(e,t,n){return e.slice(t,n)}function DI(e){return e.length}function jI(e){return e.length}function LI(e,t){return t.push(e),e}var qI=1,BI=1,UI=0,zI=0,GI=0,HI="";function $I(e,t,n,r,a,o,i){return{value:e,root:t,parent:n,type:r,props:a,children:o,line:qI,column:BI,length:i,return:""}}function VI(e,t){return NI($I("",null,null,"",null,null,0),e,{length:-e.length},t)}function WI(){return GI=zI>0?PI(HI,--zI):0,BI--,10===GI&&(BI=1,qI--),GI}function JI(){return GI=zI<UI?PI(HI,zI++):0,BI++,10===GI&&(BI=1,qI++),GI}function YI(){return PI(HI,zI)}function KI(){return zI}function ZI(e,t){return MI(HI,e,t)}function XI(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function QI(e){return qI=BI=1,UI=DI(HI=e),zI=0,[]}function eR(e){return HI="",e}function tR(e){return II(ZI(zI-1,aR(91===e?e+2:40===e?e+1:e)))}function nR(e){for(;(GI=YI())&&GI<33;)JI();return XI(e)>2||XI(GI)>3?"":" "}function rR(e,t){for(;--t&&JI()&&!(GI<48||GI>102||GI>57&&GI<65||GI>70&&GI<97););return ZI(e,KI()+(t<6&&32==YI()&&32==JI()))}function aR(e){for(;JI();)switch(GI){case e:return zI;case 34:case 39:34!==e&&39!==e&&aR(GI);break;case 40:41===e&&aR(e);break;case 92:JI()}return zI}function oR(e,t){for(;JI()&&e+GI!==57&&(e+GI!==84||47!==YI()););return"/*"+ZI(t,zI-1)+"*"+TI(47===e?e:JI())}function iR(e){for(;!XI(YI());)JI();return ZI(e,zI)}function sR(e){return eR(lR("",null,null,null,[""],e=QI(e),0,[0],e))}function lR(e,t,n,r,a,o,i,s,l){for(var c=0,u=0,d=i,f=0,p=0,h=0,m=1,g=1,y=1,v=0,b="",_=a,w=o,x=r,S=b;g;)switch(h=v,v=JI()){case 40:if(108!=h&&58==PI(S,d-1)){-1!=FI(S+=RI(tR(v),"&","&\f"),"&\f")&&(y=-1);break}case 34:case 39:case 91:S+=tR(v);break;case 9:case 10:case 13:case 32:S+=nR(h);break;case 92:S+=rR(KI()-1,7);continue;case 47:switch(YI()){case 42:case 47:LI(uR(oR(JI(),KI()),t,n),l);break;default:S+="/"}break;case 123*m:s[c++]=DI(S)*y;case 125*m:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:-1==y&&(S=RI(S,/\f/g,"")),p>0&&DI(S)-d&&LI(p>32?dR(S+";",r,n,d-1):dR(RI(S," ","")+";",r,n,d-2),l);break;case 59:S+=";";default:if(LI(x=cR(S,t,n,c,u,a,s,b,_=[],w=[],d),o),123===v)if(0===u)lR(S,t,x,x,_,o,d,s,w);else switch(99===f&&110===PI(S,3)?100:f){case 100:case 108:case 109:case 115:lR(e,x,x,r&&LI(cR(e,x,x,0,0,a,s,b,a,_=[],d),w),a,w,d,s,r?_:w);break;default:lR(S,x,x,x,[""],w,0,s,w)}}c=u=p=0,m=y=1,b=S="",d=i;break;case 58:d=1+DI(S),p=h;default:if(m<1)if(123==v)--m;else if(125==v&&0==m++&&125==WI())continue;switch(S+=TI(v),v*m){case 38:y=u>0?1:(S+="\f",-1);break;case 44:s[c++]=(DI(S)-1)*y,y=1;break;case 64:45===YI()&&(S+=tR(JI())),f=YI(),u=d=DI(b=S+=iR(KI())),v++;break;case 45:45===h&&2==DI(S)&&(m=0)}}return o}function cR(e,t,n,r,a,o,i,s,l,c,u){for(var d=a-1,f=0===a?o:[""],p=jI(f),h=0,m=0,g=0;h<r;++h)for(var y=0,v=MI(e,d+1,d=OI(m=i[h])),b=e;y<p;++y)(b=II(m>0?f[y]+" "+v:RI(v,/&\f/g,f[y])))&&(l[g++]=b);return $I(e,t,n,0===a?kI:s,l,c,u)}function uR(e,t,n){return $I(e,t,n,EI,TI(GI),MI(e,2,-2),0)}function dR(e,t,n,r){return $I(e,t,n,CI,MI(e,0,r),MI(e,r+1,-1),r)}function fR(e,t){for(var n="",r=jI(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function pR(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case CI:return e.return=e.return||e.value;case EI:return"";case AI:return e.return=e.value+"{"+fR(e.children,r)+"}";case kI:e.value=e.props.join(",")}return DI(n=fR(e.children,r))?e.return=e.value+"{"+n+"}":""}var hR=function(e,t,n){for(var r=0,a=0;r=a,a=YI(),38===r&&12===a&&(t[n]=1),!XI(a);)JI();return ZI(e,zI)},mR=new WeakMap,gR=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||mR.get(n))&&!r){mR.set(e,!0);for(var a=[],o=function(e,t){return eR(function(e,t){var n=-1,r=44;do{switch(XI(r)){case 0:38===r&&12===YI()&&(t[n]=1),e[n]+=hR(zI-1,t,n);break;case 2:e[n]+=tR(r);break;case 4:if(44===r){e[++n]=58===YI()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=TI(r)}}while(r=JI());return e}(QI(e),t))}(t,a),i=n.props,s=0,l=0;s<o.length;s++)for(var c=0;c<i.length;c++,l++)e.props[l]=a[s]?o[s].replace(/&\f/g,i[c]):i[c]+" "+o[s]}}},yR=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},vR=function(e){return"comm"===e.type&&e.children.indexOf("emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason")>-1},bR=function(e){return 105===e.type.charCodeAt(1)&&64===e.type.charCodeAt(0)},_R=function(e){e.type="",e.value="",e.return="",e.children="",e.props=""},wR=function(e,t,n){bR(e)&&(e.parent?(console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles."),_R(e)):function(e,t){for(var n=e-1;n>=0;n--)if(!bR(t[n]))return!0;return!1}(t,n)&&(console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules."),_R(e)))};function xR(e,t){switch(function(e,t){return 45^PI(e,0)?(((t<<2^PI(e,0))<<2^PI(e,1))<<2^PI(e,2))<<2^PI(e,3):0}(e,t)){case 5103:return SI+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return SI+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return SI+e+xI+e+wI+e+e;case 6828:case 4268:return SI+e+wI+e+e;case 6165:return SI+e+wI+"flex-"+e+e;case 5187:return SI+e+RI(e,/(\w+).+(:[^]+)/,SI+"box-$1$2"+wI+"flex-$1$2")+e;case 5443:return SI+e+wI+"flex-item-"+RI(e,/flex-|-self/,"")+e;case 4675:return SI+e+wI+"flex-line-pack"+RI(e,/align-content|flex-|-self/,"")+e;case 5548:return SI+e+wI+RI(e,"shrink","negative")+e;case 5292:return SI+e+wI+RI(e,"basis","preferred-size")+e;case 6060:return SI+"box-"+RI(e,"-grow","")+SI+e+wI+RI(e,"grow","positive")+e;case 4554:return SI+RI(e,/([^-])(transform)/g,"$1"+SI+"$2")+e;case 6187:return RI(RI(RI(e,/(zoom-|grab)/,SI+"$1"),/(image-set)/,SI+"$1"),e,"")+e;case 5495:case 3959:return RI(e,/(image-set\([^]*)/,SI+"$1$`$1");case 4968:return RI(RI(e,/(.+:)(flex-)?(.*)/,SI+"box-pack:$3"+wI+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+SI+e+e;case 4095:case 3583:case 4068:case 2532:return RI(e,/(.+)-inline(.+)/,SI+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(DI(e)-1-t>6)switch(PI(e,t+1)){case 109:if(45!==PI(e,t+4))break;case 102:return RI(e,/(.+:)(.+)-([^]+)/,"$1"+SI+"$2-$3$1"+xI+(108==PI(e,t+3)?"$3":"$2-$3"))+e;case 115:return~FI(e,"stretch")?xR(RI(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==PI(e,t+1))break;case 6444:switch(PI(e,DI(e)-3-(~FI(e,"!important")&&10))){case 107:return RI(e,":",":"+SI)+e;case 101:return RI(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+SI+(45===PI(e,14)?"inline-":"")+"box$3$1"+SI+"$2$3$1"+wI+"$2box$3")+e}break;case 5936:switch(PI(e,t+11)){case 114:return SI+e+wI+RI(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return SI+e+wI+RI(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return SI+e+wI+RI(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return SI+e+wI+e+e}return e}var SR=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case CI:e.return=xR(e.value,e.length);break;case AI:return fR([VI(e,{value:RI(e.value,"@","@"+SI)})],r);case kI:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return fR([VI(e,{props:[RI(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return fR([VI(e,{props:[RI(t,/:(plac\w+)/,":"+SI+"input-$1")]}),VI(e,{props:[RI(t,/:(plac\w+)/,":-moz-$1")]}),VI(e,{props:[RI(t,/:(plac\w+)/,wI+"input-$1")]})],r)}return""}))}}],ER=function(e){var t=e.key;if("production"!==Dt.env.NODE_ENV&&!t)throw new Error("You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\nIf multiple caches share the same key they might \"fight\" for each other's style elements.");if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||SR;if("production"!==Dt.env.NODE_ENV&&/[^a-z-]/.test(t))throw new Error('Emotion key must only contain lower case alphabetical characters and - but "'+t+'" was passed');var a,o,i={},s=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)i[t[n]]=!0;s.push(e)}));var l=[gR,yR];"production"!==Dt.env.NODE_ENV&&l.push(function(e){return function(t,n,r){if("rule"===t.type&&!e.compat){var a=t.value.match(/(:first|:nth|:nth-last)-child/g);if(a){for(var o=t.parent?t.parent.children:r,i=o.length-1;i>=0;i--){var s=o[i];if(s.line<t.line)break;if(s.column<t.column){if(vR(s))return;break}}a.forEach((function(e){console.error('The pseudo class "'+e+'" is potentially unsafe when doing server-side rendering. Try changing it to "'+e.split("-child")[0]+'-of-type".')}))}}}}({get compat(){return p.compat}}),wR);var c,u,d=[pR,"production"!==Dt.env.NODE_ENV?function(e){e.root||(e.return?c.insert(e.return):e.value&&e.type!==EI&&c.insert(e.value+"{}"))}:(u=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&u(e)})],f=function(e){var t=jI(e);return function(n,r,a,o){for(var i="",s=0;s<t;s++)i+=e[s](n,r,a,o)||"";return i}}(l.concat(r,d));o=function(e,t,n,r){c=n,"production"!==Dt.env.NODE_ENV&&void 0!==t.map&&(c={insert:function(e){n.insert(e+t.map)}}),fR(sR(e?e+"{"+t.styles+"}":t.styles),f),r&&(p.inserted[t.name]=!0)};var p={key:t,sheet:new _I({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:o};return p.sheet.hydrate(s),p};function kR(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var CR=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},AR=function(e,t,n){CR(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}},OR={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},TR="You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences",NR=/[A-Z]|^ms/g,IR=/_EMO_([^_]+?)_([^]*?)_EMO_/g,RR=function(e){return 45===e.charCodeAt(1)},FR=function(e){return null!=e&&"boolean"!=typeof e},PR=yI((function(e){return RR(e)?e:e.replace(NR,"-$&").toLowerCase()})),MR=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(IR,(function(e,t,n){return $R={name:t,styles:n,next:$R},t}))}return 1===OR[e]||RR(e)||"number"!=typeof t||0===t?t:t+"px"};if("production"!==Dt.env.NODE_ENV){var DR=/(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/,jR=["normal","none","initial","inherit","unset"],LR=MR,qR=/^-ms-/,BR=/-(.)/g,UR={};MR=function(e,t){if("content"===e&&("string"!=typeof t||-1===jR.indexOf(t)&&!DR.test(t)&&(t.charAt(0)!==t.charAt(t.length-1)||'"'!==t.charAt(0)&&"'"!==t.charAt(0))))throw new Error("You seem to be using a value for 'content' without quotes, try replacing it with `content: '\""+t+"\"'`");var n=LR(e,t);return""===n||RR(e)||-1===e.indexOf("-")||void 0!==UR[e]||(UR[e]=!0,console.error("Using kebab-case for css properties in objects is not supported. Did you mean "+e.replace(qR,"ms-").replace(BR,(function(e,t){return t.toUpperCase()}))+"?")),n}}var zR="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function GR(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles){if("production"!==Dt.env.NODE_ENV&&"NO_COMPONENT_SELECTOR"===n.toString())throw new Error(zR);return n}switch(W(n)){case"boolean":return"";case"object":if(1===n.anim)return $R={name:n.name,styles:n.styles,next:$R},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)$R={name:r.name,styles:r.styles,next:$R},r=r.next;var a=n.styles+";";return"production"!==Dt.env.NODE_ENV&&void 0!==n.map&&(a+=n.map),a}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a<n.length;a++)r+=GR(e,t,n[a])+";";else for(var o in n){var i=n[o];if("object"!==W(i))null!=t&&void 0!==t[i]?r+=o+"{"+t[i]+"}":FR(i)&&(r+=PR(o)+":"+MR(o,i)+";");else{if("NO_COMPONENT_SELECTOR"===o&&"production"!==Dt.env.NODE_ENV)throw new Error(zR);if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var s=GR(e,t,i);switch(o){case"animation":case"animationName":r+=PR(o)+":"+s+";";break;default:"production"!==Dt.env.NODE_ENV&&"undefined"===o&&console.error("You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key)."),r+=o+"{"+s+"}"}}else for(var l=0;l<i.length;l++)FR(i[l])&&(r+=PR(o)+":"+MR(o,i[l])+";")}}return r}(e,t,n);case"function":if(void 0!==e){var o=$R,i=n(e);return $R=o,GR(e,t,i)}"production"!==Dt.env.NODE_ENV&&console.error("Functions that are interpolated in css calls will be stringified.\nIf you want to have a css call based on props, create a function that returns a css call like this\nlet dynamicStyle = (props) => css`color: ${props.color}`\nIt can be called directly with props or interpolated in a styled call like this\nlet SomeComponent = styled('div')`${dynamicStyle}`");break;case"string":if("production"!==Dt.env.NODE_ENV){var s=[],l=n.replace(IR,(function(e,t,n){var r="animation"+s.length;return s.push("const "+r+" = keyframes`"+n.replace(/^@keyframes animation-\w+/,"")+"`"),"${"+r+"}"}));s.length&&console.error("`keyframes` output got interpolated into plain string, please wrap it with `css`.\n\nInstead of doing this:\n\n"+[].concat(s,["`"+l+"`"]).join("\n")+"\n\nYou should wrap it with `css` like this:\n\ncss`"+l+"`")}}if(null==t)return n;var c=t[n];return void 0!==c?c:n}var HR,$R,VR=/label:\s*([^\s;\n{]+)\s*(;|$)/g;"production"!==Dt.env.NODE_ENV&&(HR=/\/\*#\ssourceMappingURL=data:application\/json;\S+\s+\*\//g);var WR=function(e,t,n){if(1===e.length&&"object"===W(e[0])&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,a="";$R=void 0;var o,i=e[0];null==i||void 0===i.raw?(r=!1,a+=GR(n,t,i)):("production"!==Dt.env.NODE_ENV&&void 0===i[0]&&console.error(TR),a+=i[0]);for(var s=1;s<e.length;s++)a+=GR(n,t,e[s]),r&&("production"!==Dt.env.NODE_ENV&&void 0===i[s]&&console.error(TR),a+=i[s]);"production"!==Dt.env.NODE_ENV&&(a=a.replace(HR,(function(e){return o=e,""}))),VR.lastIndex=0;for(var l,c="";null!==(l=VR.exec(a));)c+="-"+l[1];var u=function(e){for(var t,n=0,r=0,a=e.length;a>=4;++r,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(a)+c;return"production"!==Dt.env.NODE_ENV?{name:u,styles:a,map:o,next:$R,toString:function(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}}:{name:u,styles:a,next:$R}},JR=!!N.useInsertionEffect&&N.useInsertionEffect||function(e){return e()},YR={}.hasOwnProperty,KR=N.createContext("undefined"!=typeof HTMLElement?ER({key:"css"}):null);"production"!==Dt.env.NODE_ENV&&(KR.displayName="EmotionCacheContext");var ZR=function(e){return u.forwardRef((function(t,n){var r=u.useContext(KR);return e(t,r,n)}))},XR=N.createContext({});"production"!==Dt.env.NODE_ENV&&(XR.displayName="EmotionThemeContext");var QR="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",eF="__EMOTION_LABEL_PLEASE_DO_NOT_USE__",tF=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return CR(t,n,r),JR((function(){return AR(t,n,r)})),null},nF=ZR((function(e,t,n){var r=e.css;"string"==typeof r&&void 0!==t.registered[r]&&(r=t.registered[r]);var a=e[QR],o=[r],i="";"string"==typeof e.className?i=kR(t.registered,o,e.className):null!=e.className&&(i=e.className+" ");var s=WR(o,void 0,N.useContext(XR));if("production"!==Dt.env.NODE_ENV&&-1===s.name.indexOf("-")){var l=e[eF];l&&(s=WR([s,"label:"+l+";"]))}i+=t.key+"-"+s.name;var c={};for(var u in e)!YR.call(e,u)||"css"===u||u===QR||"production"!==Dt.env.NODE_ENV&&u===eF||(c[u]=e[u]);return c.ref=n,c.className=i,N.createElement(N.Fragment,null,N.createElement(tF,{cache:t,serialized:s,isStringTag:"string"==typeof a}),N.createElement(a,c))}));"production"!==Dt.env.NODE_ENV&&(nF.displayName="EmotionCssPropInternal");var rF=bI,aF=function(e){return"theme"!==e},oF=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?rF:aF},iF=function(e,t,n){var r;if(t){var a=t.shouldForwardProp;r=e.__emotion_forwardProp&&a?function(t){return e.__emotion_forwardProp(t)&&a(t)}:a}return"function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r},sF="You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences",lF=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return CR(t,n,r),JR((function(){return AR(t,n,r)})),null},cF=function e(t,n){if("production"!==Dt.env.NODE_ENV&&void 0===t)throw new Error("You are trying to create a styled element with an undefined component.\nYou may have forgotten to import it.");var r,a,o=t.__emotion_real===t,i=o&&t.__emotion_base||t;void 0!==n&&(r=n.label,a=n.target);var s=iF(t,n,o),l=s||oF(i),c=!l("as");return function(){var u=arguments,d=o&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==r&&d.push("label:"+r+";"),null==u[0]||void 0===u[0].raw)d.push.apply(d,u);else{"production"!==Dt.env.NODE_ENV&&void 0===u[0][0]&&console.error(sF),d.push(u[0][0]);for(var f=u.length,p=1;p<f;p++)"production"!==Dt.env.NODE_ENV&&void 0===u[0][p]&&console.error(sF),d.push(u[p],u[0][p])}var h=ZR((function(e,t,n){var r=c&&e.as||i,o="",u=[],f=e;if(null==e.theme){for(var p in f={},e)f[p]=e[p];f.theme=N.useContext(XR)}"string"==typeof e.className?o=kR(t.registered,u,e.className):null!=e.className&&(o=e.className+" ");var h=WR(d.concat(u),t.registered,f);o+=t.key+"-"+h.name,void 0!==a&&(o+=" "+a);var m=c&&void 0===s?oF(r):l,g={};for(var y in e)c&&"as"===y||m(y)&&(g[y]=e[y]);return g.className=o,g.ref=n,N.createElement(N.Fragment,null,N.createElement(lF,{cache:t,serialized:h,isStringTag:"string"==typeof r}),N.createElement(r,g))}));return h.displayName=void 0!==r?r:"Styled("+("string"==typeof i?i:i.displayName||i.name||"Component")+")",h.defaultProps=t.defaultProps,h.__emotion_real=h,h.__emotion_base=i,h.__emotion_styles=d,h.__emotion_forwardProp=s,Object.defineProperty(h,"toString",{value:function(){return void 0===a&&"production"!==Dt.env.NODE_ENV?"NO_COMPONENT_SELECTOR":"."+a}}),h.withComponent=function(t,r){return e(t,gI({},n,r,{shouldForwardProp:iF(h,r,!0)})).apply(void 0,d)},h}}.bind();async function uF(e){if(isSecureContext){const t=new Blob([e.outerText],{type:"text/plain"}),n=new Blob([e.outerHTML],{type:"text/html"}),r=new ClipboardItem({[t.type]:t,[n.type]:n});return navigator.clipboard.write([r])}const t=t=>{t.clipboardData?.setData("text/plain",e.outerText),t.clipboardData?.setData("text/html",e.outerHTML),t.preventDefault()};document.addEventListener("copy",t),document.execCommand("copy"),document.removeEventListener("copy",t)}function dF(e,t,r){const a=[],{cdsLocations:o,strand:i,transcriptParts:s}=t;switch(e){case"genomic":case"cDNA":{const[t]=s;for(const o of t){if("cDNA"===e&&"intron"===o.type)continue;let t=r(o.min,o.max);-1===i&&(t=n.revcom(t));const s="fivePrimeUTR"===o.type||"threePrimeUTR"===o.type?"UTR":o.type,l=a.at(-1);l&&l.type===s?(l.sequence+=t,l.locs.push({min:o.min,max:o.max})):a.push({type:s,sequence:t,locs:[{min:o.min,max:o.max}]})}return a}case"CDS":{let e="";const[t]=o,s=[];for(const a of t){let t=r(a.min,a.max);-1===i&&(t=n.revcom(t)),e+=t,s.push({min:a.min,max:a.max})}return a.push({type:"CDS",sequence:e,locs:s}),a}case"protein":{let e="";const[t]=o,s=[];for(const a of t){let t=r(a.min,a.max);-1===i&&(t=n.revcom(t)),e+=t,s.push({min:a.min,max:a.max})}let l="";for(let t=0;t<e.length;t+=3){const r=e.slice(t,t+3).toUpperCase();l+=n.defaultCodonTable[r]||"&"}return a.push({type:"protein",sequence:l,locs:s}),a}}}function fF(e){switch(e){case"upOrDownstream":return"rgb(255,255,255)";case"exon":case"UTR":return"rgb(194,106,119)";case"CDS":return"rgb(93,168,153)";case"intron":return"rgb(187,187,187)";case"protein":return"rgb(148,203,236)"}}function pF(e){const t=[],n=e.flatMap((e=>e.locs));let[r]=n;for(let e=1;e<n.length;e++)r.min===n[e].max||r.max===n[e].min?r={min:Math.min(r.min,n[e].min),max:Math.max(r.max,n[e].max)}:(t.push(r),r=n[e]);return t.push(r),t}["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){cF[e]=cF(e)}));const hF=h.observer((function({assembly:e,feature:t,refName:n,session:r}){const a=r.apolloDataStore.assemblies.get(e),o=a?.getByRefName(n),{featureTypeOntology:i}=r.apolloDataStore.ontologyManager,s="genomic",c=["genomic","cDNA"],[d,f]=u.useState(c),[p,h]=u.useState(s),[m,g]=u.useState((()=>o?dF(s,t,((e,t)=>o.getSequence(e,t))):[])),[y,v]=u.useState((()=>pF(m))),b=l.useTheme(),_=u.useRef(null);if(u.useEffect((()=>{const{cdsLocations:e}=t,[n]=e;f(n.length>0?[...c,"CDS","protein"]:c)}),[t]),!a||!o)return null;const w=a.getByRefName(n);if(!w)return null;if(!i)throw new Error("featureTypeOntology is undefined");return i.isTypeOf(t.type,"transcript")?T.default.createElement(T.default.Fragment,null,T.default.createElement(l.Select,{defaultValue:"genomic",value:p,onChange:function(e){const n=e.target.value;h(n);const r=o?dF(n,t,((e,t)=>o.getSequence(e,t))):[],a=pF(r);g(r),v(a)},size:"small","data-testid":"sequenceOptionSelector"},d.map((e=>T.default.createElement(l.MenuItem,{key:e,value:e,"data-testid":`sequenceOption-${e}`},e)))),T.default.createElement(l.Button,{variant:"contained",onClick:()=>{const e=_.current;e&&uF(e)},style:{marginLeft:10},size:"medium"},"Copy sequence"),T.default.createElement(l.Paper,{style:{fontFamily:"monospace",padding:b.spacing(),overflowX:"auto"},ref:_},">",w.name,":",y.map((e=>1===t.strand?`${e.min+1}-${e.max}`:`${e.max}-${e.min+1}`)).join(";"),"(strand=",1===t.strand?"+":"-",";length=",function(e){let t=0;for(const n of e)t+=n.sequence.length;return t}(m),")",T.default.createElement("br",null),function(e,t){const n=[];let r=0;for(const[t,a]of e.entries()){const e=r%60,o=r>0&&0===e?"\n":"";r+=a.sequence.length;const i=o+a.sequence.slice(0,60-e),s=[i,...Xn.splitStringIntoChunks(a.sequence.slice(i.length),60)],l=T.default.createElement("span",{key:`${a.type}-${t}`,style:{background:fF(a.type),color:b.palette.getContrastText(fF(a.type)),whiteSpace:"pre-line"}},s.join("\n"));n.push(l)}return n}(m))):null}));var mF=s.createSvgIcon(i.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy"),gF=s.createSvgIcon(i.jsx("path",{d:"M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2m0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2m6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5M19 3l-6 6 2 2 7-7V3z"}),"ContentCut"),yF=s.createSvgIcon(i.jsx("path",{d:"M19 13H5v-2h14z"}),"Remove");const vF=cF(eI)((()=>({"&.MuiFormControl-root":{marginTop:0,marginBottom:0,width:"100%"},"& .MuiInputBase-input":{fontSize:12,height:20,padding:1,paddingLeft:10}}))),bF=cF("div")({display:"flex",justifyContent:"center",alignItems:"center",textAlign:"left",width:"100%",overflowWrap:"break-word",wordWrap:"break-word",wordBreak:"break-all","& span":{fontSize:12}}),_F=e=>{const{strand:t}=e;return T.default.createElement("div",null,1===t?T.default.createElement(Uc,null):-1===t?T.default.createElement(yF,null):T.default.createElement(l.Typography,{component:"span"},"N/A"))},wF=h.observer((function({assembly:e,feature:t,refName:r,session:a}){const{notify:o}=a,i=a.apolloDataStore.assemblies.get(e),s=i?.getByRefName(r),{changeManager:c}=a.apolloDataStore,d=u.useRef(null),{changeInProgress:f}=a;if(!s)return null;const{apolloDataStore:p}=a,{featureTypeOntology:h}=p.ontologyManager;if(!h.isTypeOf(t.type,"transcript")&&!h.isTypeOf(t.type,"pseudogenic_transcript"))throw new Error("Feature is not a transcript or equivalent");const{cdsLocations:m,transcriptExonParts:g,strand:y}=t,[v]=m,[b,_]=((e,t)=>{const{transcriptExonParts:n}=e,r=n.filter((e=>t.isTypeOf(e.type,"exon"))).sort((({min:e},{min:t})=>e-t)),a=r[0]?.min,o=r[r.length-1]?.max;return[a,o]})(t,h);let w=b,x=_;const S=v.length>0;if(S){const e=v.toSorted((({min:e},{min:t})=>e-t));w=e[0].min,x=e[e.length-1].max}const E=(t,n,r,a,i)=>{if(!r.children)throw new Error("Transcript should have child features");if(t===n)return!0;const s=O(r,h,t,a);if(!s)return o("No matching CDS feature found","error"),!1;if(a&&n>=s.max)return o("Start location should be less than CDS end location","error"),!1;if(!a&&n<=s.min)return o("End location should be greater than CDS start location","error"),!1;if(!F(r,h,n,a))return o("There should be an overlapping exon for the new CDS location","error"),!1;const l=a?new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:[s._id],featureId:s._id,oldStart:s.min,newStart:n,assembly:e}):new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:[s._id],featureId:s._id,oldEnd:s.max,newEnd:n,assembly:e});return c.submit(l).then((()=>{i&&i()})).catch((()=>{o("Error updating feature CDS position","error")})),!0};function k(t,n,r,a){if(!r.children)throw new Error("Transcript should have child features");const{matchingExon:i,prevExon:s,nextExon:l}=P(r,h,t,a);if(!i)return o("No matching exon found","error"),!1;if(a&&n>=i.max)return o("Start location should be less than end location","error"),!1;if(!a&&n<=i.min)return o("End location should be greater than start location","error"),!1;if(s&&s.max+2>n)return o("Error while changing start location","error"),!1;if(l&&l.min-2<n)return o("Error while changing end location","error"),!1;const u=I(r,i.min,i.max,h);if(!u)return o("No matching exon feature found","error"),!1;const d=N(r,h);if(a&&n!==i.min){const t=new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:[],changes:[],assembly:e});if(s)A(u,t,n);else{const e=r.min,o=r.parent;if(n<e)o&&n<o.min&&A(o,t,n),A(r,t,n),A(u,t,n);else if(n>e&&(A(u,t,n),A(r,t,n),o)){const[e]=R(o,r,n,h,a);o.min!=e&&A(o,t,e)}}d&&d.min>=i.min&&d.min<=i.max&&n>d.min&&A(d,t,n),c.submit(t).catch((()=>{o("Error updating feature exon start position","error")}))}if(!a&&n!==i.max){const t=new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:[],changes:[],assembly:e});if(l)C(u,t,n);else{const e=r.max,o=r.parent;if(n>e)o&&n>o.max&&C(o,t,n),C(r,t,n),C(u,t,n);else if(n<e&&(C(u,t,n),C(r,t,n),o)){const[,e]=R(o,r,n,h,a);o.max!=e&&C(o,t,e)}}d&&d.max>=i.min&&d.max<=i.max&&n<d.max&&C(d,t,n),c.submit(t).catch((()=>{o("Error updating feature exon end position","error")}))}return!0}const C=(e,t,n)=>{t.changedIds.push(e._id),t.changes.push({featureId:e._id,oldEnd:e.max,newEnd:n})},A=(e,t,n)=>{t.changedIds.push(e._id),t.changes.push({featureId:e._id,oldStart:e.min,newStart:n})},O=(e,t,n,r)=>{let a;for(const[,o]of e.children??[])if(t.isTypeOf(o.type,"CDS")){if(r&&n===o.min){a=o;break}if(!r&&n===o.max){a=o;break}}return a},N=(e,t)=>{let n;for(const[,r]of e.children??[])if(t.isTypeOf(r.type,"CDS")){n=r;break}return n},I=(e,t,n,r)=>{let a;for(const[,o]of e.children??[])if(r.isTypeOf(o.type,"exon")&&t===o.min&&n===o.max){a=o;break}return a},R=(e,t,n,r,a)=>{const o=[],i=[];for(const[,s]of e.children?.entries()??[])r.isTypeOf(s.type,"transcript")&&(s._id===t._id?a?(o.push(n),i.push(s.max)):(i.push(n),o.push(s.min)):(o.push(s.min),i.push(s.max)));return[Math.min(...o),Math.max(...i)]},F=(e,t,n,r)=>{const{transcriptExonParts:a}=e;let o;for(const[,e]of a.entries())if(t.isTypeOf(e.type,"exon")){if(!r&&n>=e.min&&n<=e.max){o=e;break}if(r&&n>=e.min&&n<=e.max){o=e;break}}return o},P=(e,t,n,r)=>{const{transcriptExonParts:a,strand:o}=e;let i,s,l,c;for(const[e,o]of a.entries())if(t.isTypeOf(o.type,"exon")){if(r&&o.min===n){i=o,s=e;break}if(!r&&o.max===n){i=o,s=e;break}}if(i&&void 0!==s){if(1===o&&s>0)for(let e=s-1;e>=0;e--){const n=a[e];if(t.isTypeOf(n.type,"exon")){l=n;break}}if(-1===o&&s<a.length-1)for(let e=s+1;e<a.length;e++){const n=a[e];if(t.isTypeOf(n.type,"exon")){l=n;break}}if(1===o&&s<a.length-1)for(let e=s+1;e<a.length;e++){const n=a[e];if(t.isTypeOf(n.type,"exon")){c=n;break}}if(-1===o&&s>0)for(let e=s-1;e>=0;e--){const n=a[e];if(t.isTypeOf(n.type,"exon")){c=n;break}}}return{matchingExon:i,prevExon:l,nextExon:c}},M=()=>{let e="";const[r]=m,a=r.toSorted((({min:e},{min:t})=>e-t));for(const t of a)e+=s.getSequence(t.min,t.max);-1===y&&(e=n.revcom(e));const o=[];for(let r=0;r<e.length;r+=3){const a=e.slice(r,r+3).toUpperCase(),i=n.defaultCodonTable[a]||"&";"ATG"===a?o.push(T.default.createElement(l.Typography,{component:"span",style:{backgroundColor:f?"lightgray":"yellow",cursor:"pointer",border:"1px solid black"},key:r,onClick:()=>{if(f)return;const e=D(r);e!==w&&1===y&&E(w,e,t,!0),e!==x&&-1===y&&E(x,e,t,!1)}},i)):["TAA","TAG","TGA"].includes(a)?o.push(T.default.createElement(l.Typography,{style:{backgroundColor:"red",color:"white"},component:"span",key:r},i)):o.push(T.default.createElement(l.Typography,{component:"span",key:r},i))}return o},D=e=>{const[t]=m;let n=0;const r=t.toSorted((({min:e},{min:t})=>e-t));if(1===y)for(const t of r){const r=t.max-t.min;if(n+r>e)return t.min+(e-n);n+=r}else if(-1===y)for(let t=r.length-1;t>=0;t--){const a=r[t],o=a.max-a.min;if(n+o>e)return a.max-(e-n);n+=o}return 1===y?w:x};return T.default.createElement("div",null,S&&T.default.createElement("div",null,T.default.createElement(l.Accordion,null,T.default.createElement(kF,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel1-content",id:"panel1-header"},T.default.createElement(l.Typography,{component:"span",fontWeight:"bold"},"Translation")),T.default.createElement(l.AccordionDetails,null,T.default.createElement(bF,null,T.default.createElement(l.Typography,{component:"span",ref:d,style:{maxHeight:120,overflowY:"scroll"}},M())),T.default.createElement("div",{style:{marginTop:10,display:"flex",flexDirection:"row",alignItems:"center",gap:10}},T.default.createElement(l.Tooltip,{title:"Copy"},T.default.createElement("button",{onClick:()=>{const e=d.current;e&&uF(e)},style:{border:"none",background:"none",padding:0},disabled:f},T.default.createElement(mF,{style:{fontSize:15}}))),T.default.createElement(l.Tooltip,{title:"Trim"},T.default.createElement("button",{onClick:()=>{const e=M(),n=e.map((e=>e.props.children)).join("");if(n.startsWith("M")&&n.endsWith("*"))return;const r=[];for(const t of e)r.push({codonGenomicPos:t.key,sequenceLetter:t.props.children});if(0===r.length)return;const a=n.indexOf("M"),i=n.indexOf("*"),s=r[a].codonGenomicPos,l=r[i].codonGenomicPos;if(!s||!l)return;const c=D(s);let u=D(l);if(1===y){if(c>u)return void o("Start codon genomic location should be less than stop codon genomic location","error");let e;u+=3,c!==w&&(e=new Promise((e=>{E(w,c,t,!0,(()=>{e(!0)}))}))),u!==x&&(e?e.then((()=>{E(x,u,t,!1)})):E(x,u,t,!1))}if(-1===y){if(c<u)return void o("Start codon genomic location should be less than stop codon genomic location","error");let e;u-=3,c!==x&&(e=new Promise((e=>{E(x,c,t,!1,(()=>{e(!0)}))}))),u!==w&&(e?e.then((()=>{E(w,u,t,!0)})):E(w,u,t,!0))}o("Translation sequence trimmed to start and stop codons","success")},style:{border:"none",background:"none",padding:0},disabled:f},T.default.createElement(gF,{style:{fontSize:15}})))))),T.default.createElement(l.Grid,{container:!0,justifyContent:"center",alignItems:"center",style:{textAlign:"center",marginTop:10}},T.default.createElement(l.Grid,{size:1}),T.default.createElement(l.Grid,{size:4},T.default.createElement(vF,1===y?{margin:"dense",variant:"outlined",value:w+1,onChangeCommitted:e=>E(w,e-1,t,!0),style:{border:"1px solid black",borderRadius:5},disabled:f}:{margin:"dense",variant:"outlined",value:x,onChangeCommitted:e=>E(x,e,t,!1),style:{border:"1px solid black",borderRadius:5},disabled:f})),T.default.createElement(l.Grid,{size:2},T.default.createElement(l.Typography,{component:"span"},"CDS")),T.default.createElement(l.Grid,{size:4},T.default.createElement(vF,1===y?{margin:"dense",variant:"outlined",value:x,onChangeCommitted:e=>E(x,e,t,!1),style:{border:"1px solid black",borderRadius:5},disabled:f}:{margin:"dense",variant:"outlined",value:w+1,onChangeCommitted:e=>E(w,e-1,t,!0),style:{border:"1px solid black",borderRadius:5},disabled:f})),T.default.createElement(l.Grid,{size:1}))),T.default.createElement("div",{style:{marginTop:5}},g.map(((e,r)=>T.default.createElement("div",{key:r},"exon"===e.type&&T.default.createElement(l.Grid,{container:!0,justifyContent:"center",alignItems:"center",style:{textAlign:"center"}},T.default.createElement(l.Grid,{size:1},0!==r&&((e,t)=>{let r="";if(t>0){const a=g[t-1];1===y?"intron"===a.type&&(r=s.getSequence(e.min-2,e.min)):"intron"===a.type&&(r=n.revcom(s.getSequence(e.max,e.max+2)))}return r=r.toUpperCase(),[{spliceSite:r,color:"AG"===r?"green":"red"}]})(e,r).map(((e,t)=>T.default.createElement(l.Typography,{key:t,component:"span",color:e.color},e.spliceSite)))),T.default.createElement(l.Grid,{size:4,style:{padding:0}},T.default.createElement(vF,1===y?{margin:"dense",variant:"outlined",value:e.min+1,onChangeCommitted:n=>k(e.min,n-1,t,!0),disabled:f}:{margin:"dense",variant:"outlined",value:e.max,onChangeCommitted:n=>k(e.max,n,t,!1),disabled:f})),T.default.createElement(l.Grid,{size:2},T.default.createElement(_F,{strand:t.strand})),T.default.createElement(l.Grid,{size:4,style:{padding:0}},T.default.createElement(vF,1===y?{margin:"dense",variant:"outlined",value:e.max,onChangeCommitted:n=>k(e.max,n,t,!1),disabled:f}:{margin:"dense",variant:"outlined",value:e.min+1,onChangeCommitted:n=>k(e.min,n-1,t,!0),disabled:f})),T.default.createElement(l.Grid,{size:1},r!==g.length-1&&((e,t)=>{let r="";if(t<g.length-1){const a=g[t+1];1===y?"intron"===a.type&&(r=s.getSequence(e.max,e.max+2)):"intron"===a.type&&(r=n.revcom(s.getSequence(e.min-2,e.min)))}return r=r.toUpperCase(),[{spliceSite:r,color:"GT"===r?"green":"red"}]})(e,r).map(((e,t)=>T.default.createElement(l.Typography,{key:t,component:"span",color:e.color},e.spliceSite))))))))))})),xF=cF(l.TableCell)((()=>({fontWeight:"bold"}))),SF=h.observer((function(e){const{feature:t}=e,n=Jd(t),r=Yd(t);return T.default.createElement(l.Table,{size:"small",sx:{fontSize:"0.75rem","& .MuiTableCell-root":{padding:"4px"}}},T.default.createElement(l.TableBody,null,""!==n&&T.default.createElement(l.TableRow,null,T.default.createElement(xF,null,"Name"),T.default.createElement(l.TableCell,null,Jd(t))),""!==r&&T.default.createElement(l.TableRow,null,T.default.createElement(xF,null,"ID"),T.default.createElement(l.TableCell,null,Yd(t))),T.default.createElement(l.TableRow,null,T.default.createElement(xF,null,"Type"),T.default.createElement(l.TableCell,null,t.type)),T.default.createElement(l.TableRow,null,T.default.createElement(xF,null,"Location"),T.default.createElement(l.TableCell,null,e.refName,":",t.min,"..",t.max)),T.default.createElement(l.TableRow,null,T.default.createElement(xF,null,"Strand"),T.default.createElement(l.TableCell,null,1===(a=t.strand)?"Forward":-1===a?"Reverse":""))));var a})),EF=d.makeStyles()((e=>({root:{padding:e.spacing(2)}}))),kF=cF(l.AccordionSummary)((()=>({minHeight:30,maxHeight:30,"&.Mui-expanded":{minHeight:30,maxHeight:30}})));function CF(e){return null}const AF=h.observer((function(e){const{classes:t}=EF(),a=["summary","location"],[o,i]=u.useState(a),{model:s}=e,{assembly:c,feature:d,refName:f}=s;u.useEffect((()=>{i(a)}),[d]);const p=n.getSession(s),{pluginManager:h}=n.getEnv(p),m=n.getSession(s),g=m.apolloDataStore.assemblies.get(c),{internetAccounts:y}=r.getRoot(p),v=y.find((e=>"ApolloInternetAccount"===e.type)),b=["admin","user"].includes((v?v.role:"admin")??"");if(!d||!g)return null;const _=g.getByRefName(f);if(!_)return null;const{max:w,min:x}=d;function S(e,t){i(e?[...o,t]:o.filter((e=>e!==t)))}_.getSequence(x,w)||m.apolloDataStore.loadRefSeq([{assemblyName:c,refName:f,start:x,end:w}]);const E=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideSummary",CF,{feature:d,session:p}),k=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterSummary",CF,{feature:d,session:p}),C=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideLocation",CF,{feature:d,session:p}),A=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterLocation",CF,{feature:d,session:p}),O=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideAttributes",CF,{feature:d,session:p}),N=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterAttributes",CF,{feature:d,session:p}),I=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideSequence",CF,{feature:d,session:p}),R=h.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterSequence",CF,{feature:d,session:p});return T.default.createElement("div",{className:t.root},T.default.createElement(l.Accordion,{expanded:o.includes("summary"),onChange:(e,t)=>{S(t,"summary")}},T.default.createElement(kF,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel1-content",id:"panel1-header"},T.default.createElement(l.Typography,{component:"span",fontWeight:"bold"},"Summary")),T.default.createElement(l.AccordionDetails,null,T.default.createElement(SF,{feature:d,refName:f}),T.default.createElement(E,{session:p,feature:d}))),T.default.createElement(k,{session:p,feature:d}),T.default.createElement(l.Accordion,{style:{marginTop:5},expanded:o.includes("location"),onChange:(e,t)=>{S(t,"location")}},T.default.createElement(kF,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel2-content",id:"panel2-header"},T.default.createElement(l.Typography,{component:"span",fontWeight:"bold"},"Location")),T.default.createElement(l.AccordionDetails,null,T.default.createElement(wF,{feature:d,refName:f,session:m,assembly:g._id||""}),T.default.createElement(C,{session:p,feature:d}))),T.default.createElement(A,{session:p,feature:d}),T.default.createElement(l.Accordion,{style:{marginTop:5},expanded:o.includes("attrs"),onChange:(e,t)=>{S(t,"attrs")}},T.default.createElement(kF,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel3-content",id:"panel3-header"},T.default.createElement("div",{style:{display:"flex",alignItems:"center"}},T.default.createElement(l.Typography,{component:"span",fontWeight:"bold"},"Attributes"," "),T.default.createElement(l.Tooltip,{title:"Separate multiple values for the attribute with commas"},T.default.createElement(yd,{style:{color:"white",fontSize:15,marginLeft:10}})))),T.default.createElement(l.AccordionDetails,null,T.default.createElement(QN,{feature:d,session:m,assembly:g._id||"",editable:b}),T.default.createElement(O,{session:p,feature:d}))),T.default.createElement(N,{session:p,feature:d}),T.default.createElement(l.Accordion,{style:{marginTop:5},expanded:o.includes("sequence"),onChange:(e,t)=>{S(t,"sequence")}},T.default.createElement(kF,{expandIcon:T.default.createElement(BN,{style:{color:"white"}}),"aria-controls":"panel4-content",id:"panel4-header"},T.default.createElement(l.Typography,{component:"span",fontWeight:"bold"},"Sequence")),T.default.createElement(l.AccordionDetails,null,o.includes("sequence")&&T.default.createElement(hF,{feature:d,session:m,assembly:g._id||"",refName:f}),T.default.createElement(I,{session:p,feature:d}))),T.default.createElement(R,{feature:d,session:p}))})),OF=a.ConfigurationSchema("LinearApolloDisplay",{},{explicitIdentifier:"displayId",explicitlyTyped:!0}),TF=d.makeStyles()({highlighted:{background:"orange"}}),NF=({highlight:e,text:t})=>{const{classes:n}=TF();if(!e)return T.default.createElement(T.default.Fragment,null,t);const r=t.split(e);if(1===r.length)return T.default.createElement(T.default.Fragment,null,t);const a=[];for(let t=0;t<r.length-1;t++)a.push(r[t],T.default.createElement("span",{className:n.highlighted},e));return T.default.createElement(T.default.Fragment,null,a,r.at(-1))},IF=h.observer((function({feature:e,filterText:t}){const n=[...e.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),r.getSnapshot(t)]}return"_id"===e?["ID",r.getSnapshot(t)]:[e,r.getSnapshot(t)]})).filter((([e])=>e)).map((([e,t])=>`${e}=${Array.isArray(t)?t.join(", "):t}`)).join(", ");return T.default.createElement(NF,{text:n,highlight:t})})),RF=d.makeStyles()((e=>({inputWrapper:{position:"relative"},hiddenWidthSpan:{padding:e.spacing(.5),color:"transparent"},numberTextInput:{border:"none",background:"inherit",font:"inherit",position:"absolute",width:"100%",left:0}}))),FF=h.observer((function({initialValue:e,notifyError:t,onChangeCommitted:n}){const[r,a]=u.useState(e),[o,i]=u.useState(!1),[s,l]=u.useState(null),{classes:c}=RF();return u.useEffect((()=>{e!==r&&a(e)}),[e]),u.useEffect((()=>{o&&(s?.blur(),i(!1))}),[o,s]),T.default.createElement("span",{className:c.inputWrapper},T.default.createElement("span",{className:c.hiddenWidthSpan,"aria-hidden":!0},r),T.default.createElement("input",{type:"text",value:r,className:c.numberTextInput,onChange:function(e){const t=Number(e.target.value);Number.isNaN(t)||a(t)},onKeyDown:t=>{"Enter"===t.key?s?.blur():"Escape"===t.key&&(a(e),i(!0))},onBlur:()=>{r!==e&&n(r).catch(t)},ref:e=>{l(e)}}))})),PF=d.makeStyles()((e=>({typeContent:{display:"inline-block",width:"174px",height:"100%",cursor:"text"},feature:{td:{position:"relative",verticalAlign:"top",paddingLeft:"0.5em"}},arrow:{display:"inline-block",width:"1.6em",textAlign:"center",cursor:"pointer"},arrowExpanded:{transform:"rotate(90deg)"},hoveredFeature:{backgroundColor:e.palette.action.hover},typeInputElement:{border:"none",background:"none"},typeErrorMessage:{color:"red"}})));function MF(e,t){const{changeManager:a,getAssemblyId:o,regions:i,selectedFeature:s,session:l,setSelectedFeature:c,filteredTranscripts:u,updateFilteredTranscripts:d}=e;return function(e,t,a,o,i,s,l,c,u){const d=function(e){const{internetAccounts:t}=r.getParent(e);return t.find((e=>"ApolloInternetAccount"===e.type))}(s),f=d?d.role:"admin",p="admin"===f,h=!(f&&["admin","user"].includes(f)),m=[];if(e){const r=e.attributes.get("gff_id")?.toString(),f=a(t.assemblyName),g=a(t.assemblyName);m.push({label:"Edit feature details",onClick:()=>{const n=s.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:e,assembly:g,refName:t.refName});s.showWidget(n)}},{label:"Add child feature",disabled:h,onClick:()=>{s.queueDialog((t=>[FT,{session:s,handleClose:()=>{t()},changeManager:l,sourceFeature:e,sourceAssemblyId:f,internetAccount:d}]))}},{label:"Copy features and annotations",disabled:h,onClick:()=>{s.queueDialog((t=>[GT,{session:s,handleClose:()=>{t()},changeManager:l,sourceFeature:e,sourceAssemblyId:g}]))}},{label:"Delete feature",disabled:!p,onClick:()=>{s.queueDialog((t=>[$T,{session:s,handleClose:()=>{t()},changeManager:l,sourceFeature:e,sourceAssemblyId:g,selectedFeature:o,setSelectedFeature:i}]))}},{label:"Merge transcripts",disabled:!p,onClick:()=>{s.queueDialog((t=>[tN,{session:s,handleClose:()=>{t()},changeManager:l,sourceFeature:e,sourceAssemblyId:g,selectedFeature:o,setSelectedFeature:i}]))}},{label:"Merge exons",disabled:!p,onClick:()=>{s.queueDialog((t=>[QT,{session:s,handleClose:()=>{t()},changeManager:l,sourceFeature:e,sourceAssemblyId:g,selectedFeature:o,setSelectedFeature:i}]))}},{label:"Split exon",disabled:!p,onClick:()=>{s.queueDialog((t=>[dN,{session:s,handleClose:()=>{t()},changeManager:l,sourceFeature:e,sourceAssemblyId:g,selectedFeature:o,setSelectedFeature:i}]))}});const{featureTypeOntology:y}=s.apolloDataStore.ontologyManager;if(!y)throw new Error("featureTypeOntology is undefined");(y.isTypeOf(e.type,"transcript")||y.isTypeOf(e.type,"pseudogenic_transcript"))&&n.isSessionModelWithWidgets(s)&&m.push({label:"Edit transcript details",onClick:()=>{const n=s.addWidget("ApolloTranscriptDetails","apolloTranscriptDetails",{feature:e,assembly:g,changeManager:l,refName:t.refName});s.showWidget(n)}},{label:"Visible",type:"checkbox",checked:!r||!c.includes(r),onClick:()=>{if(r){const e=c.includes(r)?c.filter((e=>e!==r)):[...c,r];u(e)}}})}return m}(t,i[0],o,s,c,l,a,u,d)}const DF=h.observer((function e({depth:t,feature:n,isHovered:r,isSelected:a,model:o,selectedFeatureClass:i,setContextMenu:s}){const{classes:l}=PF(),{changeManager:c,hoveredFeature:u,selectedFeature:d,session:f,tabularEditor:p}=o,{featureCollapsed:h,filterText:m}=p,{_id:g,children:y,max:v,min:b,strand:_,type:w}=n,x=!h.get(g),S=e=>{f.notify(e.message,"error")};return T.default.createElement(T.default.Fragment,null,T.default.createElement("tr",{onMouseEnter:e=>{o.setHoveredFeature({feature:n,bp:b})},className:l.feature+(a?` ${i}`:r?` ${l.hoveredFeature}`:""),onClick:e=>{e.stopPropagation(),o.setSelectedFeature(n)},onDoubleClick:()=>{o.setSelectedFeature(n),function(e,t){e.lgv.navTo(pf(t,.1,e.lgv.totalBp))}(o,n)},onContextMenu:e=>(e.preventDefault(),s({position:{left:e.clientX+2,top:e.clientY-6},items:MF(o,n)}),!1)},T.default.createElement("td",{style:{whiteSpace:"nowrap",borderLeft:2*t+"em solid transparent"}},y?.size?T.default.createElement("div",{onClick:e=>{e.stopPropagation(),p.setFeatureCollapsed(g,x)},className:l.arrow+(x?` ${l.arrowExpanded}`:"")},"❯"):null,T.default.createElement("div",{className:l.typeContent},T.default.createElement(RT,{session:f,ontologyName:"Sequence Ontology",style:{width:170},value:w,filterTerms:TT,fetchValidTerms:jF.bind(null,n),renderInput:e=>T.default.createElement("div",{ref:e.InputProps.ref},T.default.createElement("input",{type:"text",...e.inputProps,className:l.typeInputElement,style:{width:170}}),e.error?T.default.createElement("div",{className:l.typeErrorMessage},e.errorMessage??"unknown error"):null),onChange:(e,t)=>{t&&function(e,t,n,r){const a=t._id,o=new Xn.TypeChange({typeName:"TypeChange",changedIds:[a],featureId:a,oldType:String(n),newType:String(r),assembly:t.assemblyId});return e.submit(o)}(c,n,e,t).catch(S)}}))),T.default.createElement("td",null,T.default.createElement(FF,{initialValue:b+1,notifyError:S,onChangeCommitted:e=>function(e,t,n,r){const a=t._id,o=new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:[a],featureId:a,oldStart:n,newStart:r,assembly:t.assemblyId});return e.submit(o)}(c,n,b,e-1)})),T.default.createElement("td",null,T.default.createElement(FF,{initialValue:v,notifyError:S,onChangeCommitted:e=>function(e,t,n,r){const a=t._id,o=new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:[a],featureId:a,oldEnd:n,newEnd:r,assembly:t.assemblyId});return e.submit(o)}(c,n,v,e)})),T.default.createElement("td",null,1===_?"+":-1===_?"-":void 0),T.default.createElement("td",null,T.default.createElement(IF,{filterText:m,feature:n}))),x&&y?[...y.entries()].filter((e=>{if(!m)return!0;const[,t]=e;return JSON.stringify(t).includes(m)})).map((([n,r])=>T.default.createElement(e,{isHovered:u?.feature._id===r._id,isSelected:d?._id===r._id,selectedFeatureClass:i,key:n,depth:(t||0)+1,feature:r,model:o,setContextMenu:s}))):null)}));async function jF(e,t,n){const{parent:r}=e;if(r){const e=(await t.getTermsWithLabelOrSynonym(r.type,{includeSubclasses:!1})).filter(TT);if(e.length>0)return await t.getClassesThat("part_of",e)}}const LF=d.makeStyles()((e=>({scrollableTable:{width:"100%",height:"100%",th:{position:"sticky",top:0,zIndex:2,textAlign:"left",background:e.palette.background.paper,paddingTop:"3.2em"},td:{whiteSpace:"normal"}},selectedFeature:{backgroundColor:e.palette.action.selected}}))),qF=h.observer((function({model:e}){const{hoveredFeature:t,seenFeatures:n,selectedFeature:r,tabularEditor:a}=e,o=l.useTheme(),{classes:i}=LF(),s=u.useRef(null),[c,d]=u.useState(null),{filterText:f}=a;return u.useEffect((()=>{const e=s.current;if(e&&r){const t=e.querySelector(`.${i.selectedFeature}`);if(t){const n=e.scrollTop,r=t.offsetTop-25;r>n&&r<n+e.offsetHeight||e.scroll({top:r-40,behavior:"smooth"})}}}),[r,n,i.selectedFeature]),T.default.createElement("div",{ref:s,style:{width:"100%",overflowY:"auto",height:"100%"}},T.default.createElement("table",{className:i.scrollableTable},T.default.createElement("thead",null,T.default.createElement("tr",null,T.default.createElement("th",null,"Type"),T.default.createElement("th",null,"Start"),T.default.createElement("th",null,"End"),T.default.createElement("th",null,"Strand"),T.default.createElement("th",null,"Attributes"))),T.default.createElement("tbody",null,[...n.entries()].filter((e=>{if(!f)return!0;const[,t]=e;return JSON.stringify(t).includes(f)})).sort(((e,t)=>e[1].min-t[1].min)).map((([n,a])=>T.default.createElement(DF,{key:n,isSelected:r?._id===n,isHovered:t?.feature._id===n,selectedFeatureClass:i.selectedFeature,feature:a,model:e,depth:0,setContextMenu:d}))))),T.default.createElement(p.Menu,{open:Boolean(c),onMenuItemClick:(e,t)=>{t(),d(null)},onClose:()=>{d(null)},slotProps:{transition:{onExit:()=>{d(null)}}},style:{zIndex:o.zIndex.tooltip},menuItems:c?.items??[],anchorReference:"anchorPosition",anchorPosition:c?.position}))}));var BF=s.createSvgIcon(i.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear"),UF=s.createSvgIcon(i.jsx("path",{d:"M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10z"}),"UnfoldLess");const zF=d.makeStyles()({toolbar:{width:"100%",display:"flex",paddingRight:"2em",flexDirection:"row",justifyContent:"space-between",position:"absolute",zIndex:4},filterText:{}}),GF=h.observer((function({model:e}){const t=e.tabularEditor,{classes:n}=zF();return T.default.createElement("div",{className:n.toolbar},T.default.createElement(l.Tooltip,{title:"Collapse all"},T.default.createElement(l.IconButton,{"aria-label":"collapse",sx:{marginTop:0},onClick:t.collapseAllFeatures},T.default.createElement(UF,null))),T.default.createElement(l.TextField,{className:n.filterText,label:"Filter features",value:t.filterText,sx:{marginTop:0},variant:"outlined",onChange:e=>{t.setFilterText(e.target.value)},slotProps:{input:{endAdornment:T.default.createElement(l.InputAdornment,{position:"end"},T.default.createElement(l.IconButton,{onClick:()=>{t.clearFilterText()}},T.default.createElement(BF,null)))}}}))}));function HF(e){e.stopPropagation()}const $F=h.observer((function({model:e}){return e.tabularEditor.isShown?T.default.createElement("div",{onMouseDown:HF,onClick:HF,style:{width:"100%",height:"100%",position:"relative"}},T.default.createElement(GF,{model:e}),T.default.createElement(qF,{model:e})):null})),VF=r.types.model("TabularEditor",{isShown:!0,featureCollapsed:r.types.map(r.types.boolean),filterText:""}).actions((e=>({setFeatureCollapsed(t,n){e.featureCollapsed.set(t,n)},setFilterText(t){e.filterText=t},clearFilterText(){e.filterText=""},collapseAllFeatures(){const t=r.getParent(e);for(const[n]of t.seenFeatures.entries())e.featureCollapsed.set(n,!0)},togglePane(){e.isShown=!e.isShown},hidePane(){e.isShown=!1},showPane(){e.isShown=!0}})));function WF(e,t,n,r=!1){const{apolloRowHeight:a,lgv:o,theme:i}=e,s=e.getFeatureLayoutPosition(n);if(!s)return;const{bpPerPx:l,displayedRegions:c,offsetPx:u}=o,{layoutIndex:d,layoutRow:f}=s,p=c[d],{refName:h,reversed:m}=p,{length:g,max:y,min:v}=n,b=(o.bpToPx({refName:h,coord:m?y:v,regionNumber:d})?.offsetPx??0)-u,_=f*a,w=g/l;t.fillStyle=r?i.palette.action.disabled:i.palette.action.focus,t.fillRect(b,_,w,a)}function JF(e,t,n,r,a,o){e.fillStyle=o,e.fillRect(t,n,r,a)}function YF(e,t,n){const{refName:r,regionNumber:a,x:o}=e,{lgv:i}=n,{offsetPx:s}=i,l=i.bpToPx({refName:r,coord:t.min,regionNumber:a}),c=i.bpToPx({refName:r,coord:t.max,regionNumber:a});if(void 0!==l&&void 0!==c){const e=l.offsetPx-s,t=c.offsetPx-s;if(Math.abs(t-e)<8)return;if(Math.abs(e-o)<4)return"min";if(Math.abs(t-o)<4)return"max"}}const KF={draw:function(e,t,n,r,a){const{apolloRowHeight:o,lgv:i,selectedFeature:s,theme:l}=r,{bpPerPx:c,displayedRegions:u,offsetPx:d}=i,f=u[a],p=(i.bpToPx({refName:f.refName,coord:t.min,regionNumber:a})?.offsetPx??0)-d,{reversed:h}=f,m=t.length/c,g=h?p-m:p,y=n*o,v=l.palette.background.default;!function(e,t,n,r,a,o){JF(e,t,n,r,a,o),r<=2||e.clearRect(t+1,n+1,r-2,a-2)}(e,g,y,m,o,l.palette.text.primary),m<=2||(function(e,t,n,r,a,o){JF(e,t+1,n+1,r-2,a-2,o)}(e,g,y,m,o,v),cf(t,s)&&WF(r,e,t,!0))},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:a,theme:o}=e,{bpPerPx:i,displayedRegions:s,offsetPx:c}=a;if(!n)return;const{current:u,edge:d,feature:f,start:p}=n,h=Math.floor(p.y/r),m=s[p.regionNumber],g=(m.reversed?m.end-f[d]:f[d]-m.start)/i-c,y=Math.min(u.x,g),v=h*r,b=Math.abs(u.x-g),_=1*r;t.strokeStyle=o.palette.info.main,t.setLineDash([6]),t.strokeRect(y,v,b,_),t.fillStyle=l.alpha(o.palette.info.main,.2),t.fillRect(y,v,b,_)},drawHover:function(e,t){const{hoveredFeature:n}=e;n&&WF(e,t,n.feature)},drawTooltip:function(e,t){const{hoveredFeature:n,apolloRowHeight:r,lgv:a,theme:o}=e;if(!n)return;const{feature:i}=n,s=e.getFeatureLayoutPosition(i);if(!s)return;const{featureRow:c,layoutIndex:u,layoutRow:d}=s,{bpPerPx:f,displayedRegions:p,offsetPx:h}=a,m=p[u],{refName:g,reversed:y}=m;let v="Loc: ";const{length:b,max:_,min:w}=i;v+=`${w+1}–${_}`;let x=(a.bpToPx({refName:g,coord:y?_:w,regionNumber:u})?.offsetPx??0)-h;const S=(d+c)*r,E=b/f,k=`Type: ${i.type}`,{attributes:C}=i,A=C.get("gff_name")?.find((e=>""!==e)),O=[t.measureText(k).width,t.measureText(v).width];A&&O.push(t.measureText(`Name: ${A}`).width);const T=Math.max(...O);x=x+E+5,t.fillStyle=l.alpha(o.palette.text.primary,.7),t.fillRect(x,S,T+4,3===O.length?45:35),t.beginPath(),t.moveTo(x,S),t.lineTo(x-5,S+5),t.lineTo(x,S+10),t.fill(),t.fillStyle=o.palette.background.default;let N=S+12;t.fillText(k,x+2,N),A&&(N+=12,t.fillText(`Name: ${A}`,x+2,N)),N+=12,t.fillText(v,x+2,N)},getContextMenuItemsForFeature:ff,getContextMenuItems:function(e){const{hoveredFeature:t}=e;return t?ff(e,t.feature):[]},getFeatureFromLayout:function(e,t,n){return e},getRowCount:function(e){return 1},getRowForFeature:function(e,t){return 0},onMouseDown:function(e,t,n){const{feature:r}=t,a=YF(t,r,e);a&&(n.stopPropagation(),e.startDrag(t,r,a))},onMouseLeave:function(){},onMouseMove:function(e,t){if(yf(t)){const{feature:n,bp:r}=t;if(e.setHoveredFeature({feature:n,bp:r}),YF(t,n,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{feature:n}=t;n&&(e.setSelectedFeature(n),e.showFeatureDetailsWidget(n))}};let ZF=null,XF=null,QF=null,eP=null;const tP=globalThis.document.createElement("canvas");if(tP?.getContext)for(const e of["forward","backward"])for(const t of["light","dark"]){const n=document.createElement("canvas"),r=10;n.width=n.height=r;const a=n.getContext("2d");if(a){const o="light"===t?"rgba(0,0,0,0)":"rgba(0,0,0,0.75)",i="light"===t?"rgba(255,255,255,0.25)":"rgba(0,0,0,0.50)",s="forward"===e?a.createLinearGradient(0,r,r,0):a.createLinearGradient(0,0,r,r);s.addColorStop(0,o),s.addColorStop(.25,o),s.addColorStop(.25,i),s.addColorStop(.5,i),s.addColorStop(.5,o),s.addColorStop(.75,o),s.addColorStop(.75,i),s.addColorStop(1,i),a.fillStyle=s,a.fillRect(0,0,10,10),"forward"===e?"light"===t?ZF=a.createPattern(n,"repeat"):QF=a.createPattern(n,"repeat"):"light"===t?XF=a.createPattern(n,"repeat"):eP=a.createPattern(n,"repeat")}}function nP(e,t,n,r,a,o,i,s,l){const{apolloRowHeight:c,lgv:u,theme:d}=t,{bpPerPx:f,displayedRegions:p,offsetPx:h}=u,m=p[n],{refName:g,reversed:y}=m,v=(u.bpToPx({refName:g,coord:a.min,regionNumber:n})?.offsetPx??0)-h,b=a.length/f,_=y?v-b:v,w=(r+o)*c,x=Math.round(.6*c),S=w+(c-x)/2;if(e.fillStyle=d.palette.text.primary,e.fillRect(_,S,b,x),b>2&&(e.clearRect(_+1,S+1,b-2,x-2),e.fillStyle="rgb(211,211,211)",e.fillRect(_+1,S+1,b-2,x-2),s&&l&&i)){const t=y?-1:1,[n,r]=i*t==1?[s,l]:[l,s];e.fillStyle=n,e.fillRect(_+1,S+1,b-2,(x-2)/2),e.fillStyle=r,e.fillRect(_+1,S+1+(x-2)/2,b-2,(x-2)/2)}}function*rP(e,t,n=1){if(e!==t)if(e<t)for(let r=e;r<t;r+=n)yield r;else for(let r=e;r>t;r-=n)yield r}function aP(e,t,n,r,a,o){const{apolloRowHeight:i,lgv:s,theme:l}=t,{bpPerPx:c,displayedRegions:u,offsetPx:d}=s,f=u[n],{refName:p,reversed:h}=f,m=(s.bpToPx({refName:p,coord:a.min,regionNumber:n})?.offsetPx??0)-d,g=Math.round(a.length/c),y=h?m-g:m,v=Math.round((o+.5)*i)+r*i;e.strokeStyle=l.palette.text.primary;const{strand:b=1}=a;e.beginPath();const _=b*(h?-1:1),w=y-(-1===_?5:0),x=y+g+(-1===_?0:5);e.moveTo(w,v),e.lineTo(x,v);const S=w+(-1===_?0:3),E=x-(-1===_?3:0),k=-1===_?3:-3,C=-1===_?rP(S,E,20):rP(E,S,20);for(const t of C)e.moveTo(t+k,v+k),e.lineTo(t,v),e.lineTo(t+k,v-k);e.stroke()}function oP(e,t,n,r=!1){const{apolloRowHeight:a,lgv:o,session:i,theme:s}=e,{featureTypeOntology:l}=i.apolloDataStore.ontologyManager,c=e.getFeatureLayoutPosition(n);if(!c)return;const{bpPerPx:u,displayedRegions:d,offsetPx:f}=o,{featureRow:p,layoutIndex:h,layoutRow:m}=c,g=d[h],{refName:y,reversed:v}=g,{length:b,max:_,min:w}=n,x=(o.bpToPx({refName:y,coord:v?_:w,regionNumber:h})?.offsetPx??0)-f,S=(m+p)*a,E=b/u;if(t.fillStyle=r?s.palette.action.disabled:s.palette.action.focus,!l)throw new Error("featureTypeOntology is undefined");t.fillRect(x,S,E,a*sP(n,l))}function iP(e,t){const{children:n,type:r}=e;if(!n)return 0;let a=0;if(t.isTypeOf(r,"transcript"))for(const[,e]of n)t.isTypeOf(e.type,"CDS")&&(a+=1);return a}function sP(e,t,n){const{children:r,type:a}=e;if(!r)return 1;let o=0;if(t.isTypeOf(a,"transcript")||t.isTypeOf(a,"pseudogenic_transcript")){for(const[,e]of r)t.isTypeOf(e.type,"CDS")&&(o+=1);return 0===o?1:o}for(const[,e]of r)o+=sP(e,t);return o}function lP(e,t){if(!t.isTypeOf(e.type,"gene")&&!t.isTypeOf(e.type,"pseudogene"))throw new Error('Top level feature for GeneGlyph must have type "gene"');const{children:n}=e;if(!n)return[[e]];const r=[];for(const[,a]of n){if(!t.isTypeOf(a.type,"transcript")&&!t.isTypeOf(a.type,"pseudogenic_transcript")){r.push([a,e]);continue}if(!a.children)continue;const n=[],o=[];for(const[,e]of a.children)t.isTypeOf(e.type,"CDS")?n.push(e):t.isTypeOf(e.type,"exon")&&o.push(e);for(const t of n)r.push([t,...o,a,e]);0===n.length&&r.push([...o,a,e])}return r}function cP(e,t,r){const{session:a}=r,{apolloDataStore:o}=a,{featureTypeOntology:i}=o.ontologyManager;if(!i)throw new Error("featureTypeOntology is undefined");const s=i.isTypeOf(t.type,"gene")||i.isTypeOf(t.type,"pseudogene"),l=i.isTypeOf(t.type,"transcript")||i.isTypeOf(t.type,"pseudogenic_transcript"),c=i.isTypeOf(t.type,"CDS");if(s||l)return;const{bp:u,refName:d,regionNumber:f,x:p}=e,{lgv:h}=r;if(c){const e=t.parent;if(!e?.children)return;const r=[];for(const t of e.children.values())i.isTypeOf(t.type,"exon")&&r.push(t);const a=r.find((e=>{const[t,r]=n.intersection2(u-1,u,e.min,e.max);return void 0!==t&&void 0!==r}));if(a){const e=sf(a,d,f,h);if(e){const t=lf(a,p,e);if(t)return t}}}const m=sf(t,d,f,h);if(m){const e=lf(t,p,m);if(e)return e}}const{drawTooltip:uP,getContextMenuItemsForFeature:dP,onMouseLeave:fP}=KF,pP={draw:function(e,t,r,o,i){const{apolloRowHeight:s,lgv:c,selectedFeature:u,session:d,theme:f}=o,{bpPerPx:p,displayedRegions:h,offsetPx:m}=c,g=h[i],{refName:y,reversed:v}=g,b=s,_=Math.round(.9*b),{children:w,strand:x}=t;if(!w)return;const{apolloDataStore:S}=d,{featureTypeOntology:E}=S.ontologyManager;if(!E)throw new Error("featureTypeOntology is undefined");!function(e,t,n,r,o,i){const{apolloRowHeight:s,lgv:c,session:u,theme:d}=n,{bpPerPx:f,displayedRegions:p,offsetPx:h}=c,m=p[r],{refName:g,reversed:y}=m,{apolloDataStore:v}=u,{featureTypeOntology:b}=v.ontologyManager;if(!b)throw new Error("featureTypeOntology is undefined");const _=(c.bpToPx({refName:g,coord:t.min,regionNumber:r})?.offsetPx??0)-h,w=t.length/f,x=y?_-w:_,S=o*s,E=sP(t,b)*s;let k;k=a.readConfObject(u.getPluginConfiguration(),"geneBackgroundColor",{featureType:t.type}),k||(k=l.alpha(d.palette.background.paper,.6)),e.fillStyle=k,e.fillRect(x,S,w,E)}(e,t,o,i,r);let k=0;for(const[,t]of w){if(!E.isTypeOf(t.type,"transcript")&&!E.isTypeOf(t.type,"pseudogenic_transcript")){k+=1;continue}const{children:n}=t;if(!n)continue;const a=iP(t,E);for(const[,a]of n)E.isTypeOf(a.type,"CDS")&&(aP(e,o,i,r,t,k),k+=1);0===a&&(aP(e,o,i,r,t,k),k+=1)}const C="dark"===f.palette.mode?QF:ZF,A="dark"===f.palette.mode?eP:XF;k=0;for(const[,t]of w){if(!E.isTypeOf(t.type,"transcript")&&!E.isTypeOf(t.type,"pseudogenic_transcript")){KF.draw(e,t,r,o,i),k+=1;continue}const a=iP(t,E);if(0!=a)for(const a of t.cdsLocations){const{children:s}=t;if(s){for(const[,t]of s)E.isTypeOf(t.type,"exon")&&nP(e,o,i,r,t,k,x,C,A);for(const o of a){const a=(o.max-o.min)/p,s=(c.bpToPx({refName:y,coord:o.min,regionNumber:i})?.offsetPx??0)-m,l=v?s-a:s;e.fillStyle=f.palette.text.primary;const u=(r+k)*b+(b-_)/2;if(e.fillRect(l,u,a,_),a>2){e.clearRect(l+1,u+1,a-2,_-2);const r=n.getFrame(o.min,o.max,t.strand??1,o.phase),i=f.palette.framesCDS.at(r)?.main;if(e.fillStyle=i??"black",e.fillRect(l+1,u+1,a-2,_-2),C&&A&&x){const t=v?-1:1,[n,r]=x*t==1?[C,A]:[A,C];e.fillStyle=n,e.fillRect(l+1,u+1,a-2,(_-2)/2),e.fillStyle=r,e.fillRect(l+1,u+(_-2)/2,a-2,(_-2)/2)}}}k+=1}}const{children:s}=t;if(0===a&&s){for(const[,t]of s)E.isTypeOf(t.type,"exon")&&nP(e,o,i,r,t,k,x,C,A);k+=1}}u&&uf(t,u)&&oP(o,e,u,!0)},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:a,theme:o}=e,{bpPerPx:i,displayedRegions:s,offsetPx:c}=a;if(!n)return;const{current:u,edge:d,feature:f,start:p}=n,h=Math.floor(p.y/r),m=s[p.regionNumber],g=(m.reversed?m.end-f[d]:f[d]-m.start)/i-c,y=Math.min(u.x,g),v=h*r,b=Math.abs(u.x-g),_=1*r;t.strokeStyle=o.palette.info.main,t.setLineDash([6]),t.strokeRect(y,v,b,_),t.fillStyle=l.alpha(o.palette.info.main,.2),t.fillRect(y,v,b,_)},drawHover:function(e,t){const{hoveredFeature:n}=e;n&&oP(e,t,n.feature)},drawTooltip:uP,getContextMenuItems:function(e,t){const{apolloInternetAccount:r,hoveredFeature:a,changeManager:o,regions:i,selectedFeature:s,session:l}=e,[c]=i,u=e.getAssemblyId(c.assemblyName),d=[],f="admin"===(r?r.role:"admin");if(!a)return d;if(yf(t)){const{bp:r,feature:a}=t;let i=Zd(a,r);rf(a,l)&&(i=Zd(a,r,!0));for(const r of i){const a=KF.getContextMenuItemsForFeature(e,r);if(nf(r,l)){const i=af(r,e,t,l),c=n.getContainingView(e);if(i.upstream){const t=i.upstream;a.push({label:"Go to upstream exon",icon:of(r.strand,!0,c.displayedRegions.at(0)?.reversed),onClick:()=>{c.navTo(pf(t,.1,c.totalBp)),ef(e,t)}})}if(i.downstream){const t=i.downstream;a.push({label:"Go to downstream exon",icon:of(r.strand,!1,c.displayedRegions.at(0)?.reversed),onClick:()=>{c.navTo(pf(t,.1,c.totalBp)),ef(e,t)}})}a.push({label:"Merge exons",disabled:!f,onClick:()=>{l.queueDialog((t=>[QT,{session:l,handleClose:()=>{t()},changeManager:o,sourceFeature:r,sourceAssemblyId:u,selectedFeature:s,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}},{label:"Split exon",disabled:!f,onClick:()=>{l.queueDialog((t=>[dN,{session:l,handleClose:()=>{t()},changeManager:o,sourceFeature:r,sourceAssemblyId:u,selectedFeature:s,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}})}tf(r,l)&&(a.push({label:"Merge transcript",onClick:()=>{l.queueDialog((t=>[tN,{session:l,handleClose:()=>{t()},changeManager:o,sourceFeature:r,sourceAssemblyId:u,selectedFeature:s,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}}),n.isSessionModelWithWidgets(l)&&a.splice(1,0,{label:"Open transcript editor",onClick:()=>{const e=l.addWidget("ApolloTranscriptDetails","apolloTranscriptDetails",{feature:r,assembly:u,changeManager:o,refName:c.refName});l.showWidget(e)}})),d.push({label:r.type,subMenu:a})}}return d},getContextMenuItemsForFeature:dP,getFeatureFromLayout:function(e,t,n,r){const a=lP(e,r)[n]||[];for(const e of a){let n;if(t>=e.min&&t<=e.max&&e.parent&&(n=e),n){if(r.isTypeOf(n.type,"CDS")&&n.parent&&(r.isTypeOf(n.parent.type,"transcript")||r.isTypeOf(n.parent.type,"pseudogenic_transcript"))){const{cdsLocations:e}=n.parent;for(const r of e)for(const e of r)if(t>=e.min&&t<=e.max)return n;return n.parent}return n}}return e},getRowCount:sP,getRowForFeature:function(e,t,n){const r=lP(e,n);for(const[e,n]of r.entries())if(n.some((e=>e._id===t._id)))return e},onMouseDown:function(e,t,n){const{feature:r}=t,a=cP(t,r,e);a&&(n.stopPropagation(),e.startDrag(t,a.feature,a.edge,!0))},onMouseLeave:fP,onMouseMove:function(e,t){if(yf(t)){const{feature:n,bp:r}=t;if(e.setHoveredFeature({feature:n,bp:r}),cP(t,n,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{feature:n}=t;n&&ef(e,n)}};function hP(e){const t=[[e]];if(e.children)for(const[,n]of e.children)t.push(...hP(n));return t}function mP(e){return hP(e).length}function gP(e,t,n,r,a,o){const i=hP(t)[n-r];for(const t of i)yP(e,t,n,a,o)}function yP(e,t,n,r,a){const{apolloRowHeight:o,lgv:i,theme:s}=r,{bpPerPx:c,displayedRegions:u,offsetPx:d}=i,f=u[a],p=(i.bpToPx({refName:f.refName,coord:t.min,regionNumber:a})?.offsetPx??0)-d,{reversed:h}=f,m=t.length/c,g=h?p-m:p,y=n*o,v=mP(t),b=l.alpha(s.palette.background.paper,.6);v>1&&JF(e,g,y,m,v*o,b),KF.draw(e,t,n,r,a)}function vP(e,t,n,r=!1){const{apolloRowHeight:a,lgv:o,theme:i}=e,s=e.getFeatureLayoutPosition(n);if(!s)return;const{featureRow:l,layoutIndex:c,layoutRow:u}=s,{bpPerPx:d,displayedRegions:f,offsetPx:p}=o,h=f[c],{refName:m,reversed:g}=h,{length:y,max:v,min:b}=n,_=(o.bpToPx({refName:m,coord:g?v:b,regionNumber:c})?.offsetPx??0)-p,w=(u+l)*a,x=y/d;t.fillStyle=r?i.palette.action.disabled:i.palette.action.focus,t.fillRect(_,w,x,a*mP(n))}const{drawDragPreview:bP,drawTooltip:_P,getContextMenuItemsForFeature:wP,onMouseDown:xP,onMouseLeave:SP,onMouseMove:EP,onMouseUp:kP}=KF,CP={draw:function(e,t,n,r,a){const{selectedFeature:o}=r;for(let o=0;o<mP(t);o++)gP(e,t,n+o,n,r,a);o&&uf(t,o)&&vP(r,e,o)},drawDragPreview:bP,drawHover:function(e,t){const{hoveredFeature:n}=e;n&&vP(e,t,n.feature)},drawTooltip:_P,getContextMenuItemsForFeature:wP,getContextMenuItems:function(e,t){const{hoveredFeature:n,session:r}=e,a=[];if(!n)return a;const{featureTypeOntology:o}=r.apolloDataStore.ontologyManager;if(!o)throw new Error("featureTypeOntology is undefined");const i=KF.getContextMenuItems(e,t);if(a.push({label:n.feature.type,subMenu:i}),yf(t)){const{bp:r,feature:o}=t;for(const t of Zd(o,r)){if(t._id===n.feature._id)continue;const r=KF.getContextMenuItemsForFeature(e,t);a.push({label:t.type,subMenu:r})}}return a},getFeatureFromLayout:function(e,t,n){return hP(e)[n].find((e=>t>=e.min&&t<=e.max))},getRowCount:mP,getRowForFeature:function(e,t){const n=hP(e);for(const[e,r]of n.entries())if(r.some((e=>e._id===t._id)))return e},onMouseDown:xP,onMouseLeave:SP,onMouseMove:EP,onMouseUp:kP},AP=h.observer((function({featureTypes:e,handleClose:t,onUpdate:n,session:r}){const[a,o]=u.useState(""),[i,s]=u.useState(e);return T.default.createElement(xf,{open:!0,maxWidth:!1,"data-testid":"filter-features-dialog",title:"Filter features by type",handleClose:t},T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,null,"Select the feature types you want to display in the apollo track"),T.default.createElement(l.Grid,{container:!0,spacing:2},T.default.createElement(l.Grid,{size:8},T.default.createElement(RT,{session:r,ontologyName:"Sequence Ontology",style:{width:"100%"},value:a,filterTerms:TT,renderInput:e=>T.default.createElement(l.TextField,{...e,label:"Feature type",variant:"outlined",fullWidth:!0}),onChange:(e,t)=>{t&&(e=>{o(e)})(t)}})),T.default.createElement(l.Grid,{size:4},T.default.createElement(l.Button,{variant:"contained",onClick:()=>{if(a){if(i.includes(a))return;n([...i,a]),s([...i,a])}},disabled:!a,style:{marginTop:9},size:"medium"},"Add"))),i.length>0&&T.default.createElement("div",null,T.default.createElement("hr",null),T.default.createElement("div",{style:{width:300}},T.default.createElement(l.DialogContentText,null,"Selected feature types:"),T.default.createElement(l.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},i.map((e=>T.default.createElement(l.Chip,{key:e,label:e,onDelete:()=>{(e=>{const t=i.filter((t=>t!==e));n(t),s(t)})(e)}}))))))))})),OP=h.observer((function({model:e,handleClose:t}){const[n,r]=u.useState(`${e.zoomThresholdSetting}`);return T.default.createElement(p.Dialog,{open:!0,onClose:t,title:"Edit zoom threshold setting"},T.default.createElement(l.DialogContent,null,T.default.createElement(l.Typography,null,"The zoom level in base pairs (bp) per pixel at which features are rendered in this Annotations track. Increasing the value will allow features to render when zooming out, but might impact performance."),T.default.createElement(l.TextField,{label:"Threshold value (bpPerPx)",value:n,onChange:e=>{r(e.target.value)}}),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",onClick:()=>{e.setZoomThresholdSetting({zoomThreshold:+n}),t()}},"Submit"),T.default.createElement(l.Button,{variant:"contained",color:"secondary",onClick:()=>{t()}},"Cancel"))))})),TP=d.makeStyles()((e=>({canvasContainer:{position:"relative",left:0},canvas:{position:"absolute",left:0},center:{display:"flex",justifyContent:"center"},ellipses:{textOverflow:"ellipsis",overflow:"hidden"},avatar:{position:"static",height:"100%",width:"100%",overflow:"visible",color:e.palette.warning.light,backgroundColor:e.palette.warning.contrastText},box:{position:"absolute",overflow:"visible"},badge:{display:"inline-block"},loading:{position:"absolute",right:e.spacing(3),zIndex:10,pointerEvents:"none",textAlign:"right"},locked:{position:"absolute",right:e.spacing(3),top:e.spacing(6),zIndex:1,pointerEvents:"none",textAlign:"right"}})));function NP(e,t,n){const r=new Map;for(const t of e)(r.get(t.message)??r.set(t.message,[]).get(t.message)).push(t);const a=[];for(const[e,s]of r.entries()){if(0===s.length)continue;s.sort(((e,t)=>e.start-t.start));let r=[s[0]],l=s[0].start,c=s[0].start+t;const u=()=>{const t=r.map((e=>e.start)).sort(((e,t)=>e-t)),n=Math.floor(t.length/2),o=r[0].ids;a.push({_id:r[0]._id,message:e,start:t.length%2?t[n]:(t[n-1]+t[n])/2,count:r.length,members:[...r],range:{min:l,max:c},featureIds:o})};for(let e=1;e<s.length;e++){const a=s[e],d=a.start,f=d+t;o=c,i=d,(n?i<=o:i<o)?(r.push(a),d<l&&(l=d),f>c&&(c=f)):(u(),r=[a],l=d,c=f)}u()}var o,i;return a.sort(((e,t)=>e.message.localeCompare(t.message)||e.start-t.start)),a}function IP(e,t,n){return"M"===e?t.palette.startCodon:"*"===e?n?t.palette.text.primary:t.palette.stopCodon:void 0}function RP(e,t){const n=e.toUpperCase();return"A"===n||"C"===n||"G"===n||"T"===n?t.palette.bases[n].main.toString():"lightgray"}function FP(e,t,n){const r=[];for(let a=e;a<e+t;a++){const e=n.get(a);e&&r.push(e)}return r}function PP(e,t){for(const r of e)for(const[e,a]of r)if(n.doesIntersect2(t.min,t.max,e,a)||n.doesIntersect2(e,a,t.min,t.max))return!1;return!0}function MP(e,t){return function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return o.BaseDisplay.named("BaseLinearApolloDisplay").props({type:r.types.literal("LinearApolloDisplay"),configuration:a.ConfigurationReference(t),graphical:!0,table:!1,showCheckResults:!0,zoomThreshold:200,heightPreConfig:r.types.maybe(r.types.refinement("displayHeight",r.types.number,(e=>e>=20))),filteredFeatureTypes:r.types.array(r.types.string),loadingState:!1}).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...S.getParentRenderProps(e),config:t.renderer})}})).volatile((()=>({scrollTop:0}))).views((e=>({get lgv(){return n.getContainingView(e)},get height(){return e.heightPreConfig?e.heightPreConfig:e.graphical&&e.table?400:e.graphical?100:200},get loading(){return e.loadingState},get zoomThresholdSetting(){return e.zoomThreshold??a.getConf(e,"zoomThreshold")}}))).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return n.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=e.zoomThreshold)return"Zoom in to see annotations"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:n}=r.getRoot(e),{assemblyName:o}=t,{assemblyManager:i}=e.session,s=i.get(o);if(!s)throw new Error(`No assembly found with name ${o}`);const{internetAccountConfigId:l}=a.getConf(s,["sequence","metadata"]);return n.find((e=>a.getConf(e,"internetAccountId")===l))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature},get hoveredFeature(){return e.session.apolloHoveredFeature}}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n},showGraphicalOnly(){e.graphical=!0,e.table=!1},showTableOnly(){e.graphical=!1,e.table=!0},showGraphicalAndTable(){e.graphical=!0,e.table=!0},toggleShowCheckResults(){e.showCheckResults=!e.showCheckResults},updateFilteredFeatureTypes(t){e.filteredFeatureTypes=r.cast(t)},setLoading(t){e.loadingState=t},setZoomThresholdSetting({zoomThreshold:t}){e.zoomThreshold=t}}))).views((e=>{const{filteredFeatureTypes:t,trackMenuItems:a}=e;return{trackMenuItems(){const{graphical:o,table:i,showCheckResults:s}=e;return[...a(),{type:"subMenu",label:"Appearance",subMenu:[{label:"Show graphical display",type:"radio",checked:o&&!i,onClick:()=>{e.showGraphicalOnly()}},{label:"Show table display",type:"radio",checked:i&&!o,onClick:()=>{e.showTableOnly()}},{label:"Show both graphical and table display",type:"radio",checked:i&&o,onClick:()=>{e.showGraphicalAndTable()}},{label:"Check Results",type:"checkbox",checked:s,onClick:()=>{e.toggleShowCheckResults()}},{label:"Change zoom threshold",onClick:()=>{n.getSession(e).queueDialog((t=>[OP,{model:e,handleClose:t}]))}}]},{label:"Filter features by type",onClick:()=>{const n=e.session;e.session.queueDialog((a=>[AP,{session:n,handleClose:()=>{a()},featureTypes:r.getSnapshot(t),onUpdate:t=>{e.updateFilteredFeatureTypes(t)}}]))}}]}}})).actions((e=>({setSelectedFeature(t){e.session.apolloSetSelectedFeature(t)},setHoveredFeature(t){e.session.apolloSetHoveredFeature(t)},showFeatureDetailsWidget(t,n){const[r]=e.regions,{assemblyName:a,refName:o}=r,i=e.getAssemblyId(a);if(!i)return;const{session:s}=e,{changeManager:l}=s.apolloDataStore,[c,u]=n??["ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget"],d=s.addWidget(c,u,{feature:t,assembly:i,refName:o,changeManager:l});s.showWidget(d)},afterAttach(){r.addDisposer(e,c.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&(e.setLoading(!0),e.session.apolloDataStore.loadFeatures(e.regions).then((()=>{setTimeout((()=>{e.setLoading(!1)}),1e3)})))}),{name:"LinearApolloDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloDisplayLayouts").props({cleanupBoundary:2e5}).volatile((()=>({seenFeatures:c.observable.map()}))).views((e=>({getAnnotationFeatureById:t=>e.seenFeatures.get(t),getGlyph(e){const{topLevelFeature:t}=e;return t.looksLikeGene?pP:t.children?.size?CP:KF}}))).actions((e=>({addSeenFeature(t){e.seenFeatures.set(t._id,t)},deleteSeenFeature(t){e.seenFeatures.delete(t)}}))).views((e=>({get featureLayouts(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map((a=>{const o=t.get(a.assemblyName),i=new Map,s=new Map,{end:l,refName:c,start:u}=a;for(const[t,a]of e.seenFeatures.entries()){if(!r.isAlive(a)){e.deleteSeenFeature(t);continue}if(c!==o?.getCanonicalRefName(a.refSeq)||!n.doesIntersect2(u,l,a.min,a.max)||e.filteredFeatureTypes.length>0&&!e.filteredFeatureTypes.includes(a.type))continue;const{featureTypeOntology:d}=e.session.apolloDataStore.ontologyManager;if(!d)throw new Error("featureTypeOntology is undefined");const f=e.getGlyph(a).getRowCount(a,d,e.lgv.bpPerPx);let p=0,h=!1;for(;!h;){let e=FP(p,f,s);if(e.length<f){for(let t=0;t<f-e.length;t++){const e=s.size;s.set(e,[]),i.set(e,[])}e=FP(p,f,s)}if(PP(e,a)){for(let e=p;e<p+f;e++){s.get(e)?.push([a.min,a.max]);const t=i.get(e);t?.push([e-p,a._id])}h=!0}else p+=1}}return i}))},getFeatureLayoutPosition(t){const{featureLayouts:n}=this,{featureTypeOntology:r}=e.session.apolloDataStore.ontologyManager;for(const[a,o]of n.entries())for(const[n,i]of o)for(const[o,s]of i){if(0!==o)continue;const i=e.getAnnotationFeatureById(s);if(i){if(t._id===i._id)return{layoutIndex:a,layoutRow:n,featureRow:o};if(i.hasDescendant(t._id)){if(!r)throw new Error("featureTypeOntology is undefined");const o=e.getGlyph(i).getRowForFeature(i,t,r);if(void 0!==o)return{layoutIndex:a,layoutRow:n,featureRow:o}}}}}}))).views((e=>({get highestRow(){return Math.max(0,...e.featureLayouts.map((e=>Math.max(...e.keys()))))}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((()=>{if(e.lgv.initialized&&!e.regionCannotBeRendered()){for(const[t,r]of e.seenFeatures.entries()){let a=!1;for(const t of e.regions)if(n.doesIntersect2(t.start-e.cleanupBoundary,t.end+e.cleanupBoundary,r.min,r.max)){a=!0;break}a||e.deleteSeenFeature(t)}for(const t of e.regions){const r=e.session.apolloDataStore.assemblies.get(t.assemblyName),a=r?.getByRefName(t.refName),o=a?.features;if(o)for(const[,r]of o)n.doesIntersect2(t.start,t.end,r.min,r.max)&&!e.seenFeatures.has(r._id)&&e.addSeenFeature(r)}}}),{name:"LinearApolloDisplaySetSeenFeatures",delay:1e3}))}})))}(0,t).named("LinearApolloDisplayRendering").props({apolloRowHeight:20,detailsMinHeight:200,detailsHeight:200,lastRowTooltipBufferHeight:40,isShown:!0,filteredTranscripts:r.types.array(r.types.string)}).volatile((()=>({canvas:null,overlayCanvas:null,collaboratorCanvas:null,theme:l.createTheme()}))).views((e=>({get featuresHeight(){return(e.highestRow+1)*e.apolloRowHeight+e.lastRowTooltipBufferHeight}}))).actions((e=>({toggleShown(){e.isShown=!e.isShown},setDetailsHeight(t){e.detailsHeight=e.isShown?Math.max(Math.min(t,e.height-100),Math.min(e.height,e.detailsMinHeight)):t},setCanvas(t){e.canvas=t},setOverlayCanvas(t){e.overlayCanvas=t},setCollaboratorCanvas(t){e.collaboratorCanvas=t},setTheme(t){e.theme=t}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.collaboratorCanvas?.getContext("2d");if(t){t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);for(const n of e.session.collaborators){const{locations:r}=n;if(0===r.length)continue;let a=0;for(const o of e.lgv.displayedRegions){for(const i of r){if(i.refSeq!==o.refName)continue;const{end:r,refSeq:s,start:l}=i,c=e.lgv.bpToPx({refName:s,coord:l,regionNumber:a});if(!c)continue;const u=c.offsetPx-e.lgv.offsetPx,d=(r-l)/e.lgv.bpPerPx;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(u,1,d,100),t.fillStyle="black",t.fillText(n.name,u+1,11,d-2)}a++}}}}),{name:"LinearApolloDisplayRenderCollaborators"})),r.addDisposer(e,c.autorun((()=>{const{canvas:t,featureLayouts:r,featuresHeight:a,lgv:o}=e;if(!o.initialized||e.regionCannotBeRendered())return;const{displayedRegions:i,dynamicBlocks:s}=o,l=t?.getContext("2d");if(l){l.clearRect(0,0,s.totalWidthPx,a);for(const[t,a]of r.entries()){const r=i[t];for(const[o,i]of a.entries())for(const[a,s]of i){const i=e.getAnnotationFeatureById(s);a>0||!i||n.doesIntersect2(r.start,r.end,i.min,i.max)&&e.getGlyph(i).draw(l,i,o,e,t)}}}}),{name:"LinearApolloDisplayRenderFeatures"}))}})))}(0,t);return i.named("LinearApolloDisplayMouseEvents").volatile((()=>({apolloDragging:null,cursor:void 0}))).views((e=>({getMousePosition(t){const n=vf(t,e.lgv),{bp:r,regionNumber:a,y:o}=n,i=Math.floor(o/e.apolloRowHeight),s=e.featureLayouts[a].get(i);if(!s)return n;const l=s.find((t=>{const n=e.getAnnotationFeatureById(t[1]);return n&&r>=n.min&&r<=n.max}));if(!l)return n;const[c,u]=l,d=e.getAnnotationFeatureById(u);if(!d)return n;const f=e.getGlyph(d),{featureTypeOntology:p}=e.session.apolloDataStore.ontologyManager;if(!p)throw new Error("featureTypeOntology is undefined");const h=f.getFeatureFromLayout(d,r,c,p);return h?{...n,feature:h}:n}}))).actions((e=>({continueDrag(t,n){if(!e.apolloDragging)throw new Error("continueDrag() called with no current drag in progress");n.stopPropagation(),e.apolloDragging={...e.apolloDragging,current:t}},setDragging(t){e.apolloDragging=t??null}}))).actions((e=>({setCursor(t){e.cursor!==t&&(e.cursor=t)},updateFilteredTranscripts(e){}}))).actions((()=>({onClick(){}})))}(0,t).views((e=>({contextMenuItems(t){const{hoveredFeature:n}=e;if(!n)return[];const r=e.getMousePosition(t),{topLevelFeature:a}=n.feature,o=e.getGlyph(a);return yf(r)?o.getContextMenuItems(e,r):[]}}))).actions((e=>({startDrag(t,n,r,a=!1){e.apolloDragging={start:t,current:t,feature:n,edge:r,shrinkParent:a}},endDrag(){if(!e.apolloDragging)throw new Error("endDrag() called with no current drag in progress");const{current:t,edge:n,feature:r,start:a,shrinkParent:o}=e.apolloDragging;if(Math.abs(t.x-a.x)<=4)return e.setDragging(),void e.setCursor();const{displayedRegions:i}=e.lgv,s=e.getAssemblyId(i[a.regionNumber].assemblyName),l=gf(r,t.bp,n,o),c="max"===n?new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:l.map((e=>e.featureId)),changes:l.map((e=>({featureId:e.featureId,oldEnd:e.oldLocation,newEnd:e.newLocation}))),assembly:s}):new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:l.map((e=>e.featureId)),changes:l.map((e=>({featureId:e.featureId,oldStart:e.oldLocation,newStart:e.newLocation}))),assembly:s});e.changeManager.submit(c),e.setDragging(),e.setCursor()}}))).actions((e=>({onMouseDown(t){const n=e.getMousePosition(t);yf(n)&&e.getGlyph(n.feature).onMouseDown(e,n,t)},onMouseMove(t){const n=e.getMousePosition(t);if(e.apolloDragging)return e.setCursor("col-resize"),void e.continueDrag(n,t);yf(n)?e.getGlyph(n.feature).onMouseMove(e,n,t):(e.setHoveredFeature(),e.setCursor())},onMouseLeave(t){e.setDragging(),e.setHoveredFeature();const n=e.getMousePosition(t);yf(n)&&e.getGlyph(n.feature).onMouseLeave(e,n,t)},onMouseUp(t){const n=e.getMousePosition(t);yf(n)?e.getGlyph(n.feature).onMouseUp(e,n,t):e.setSelectedFeature(),e.apolloDragging&&e.endDrag()}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.overlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);const{apolloDragging:n,hoveredFeature:r}=e;if(!r)return;const a=e.getGlyph(r.feature);a.drawHover(e,t),a.drawTooltip(e,t),n&&e.getGlyph(n.feature.topLevelFeature).drawDragPreview(e,t)}),{name:"LinearApolloDisplayRenderMouseoverAndDrag"}))}})))}(0,t).props({tabularEditor:r.types.optional(VF,{})}).named("LinearApolloDisplay")}const DP=a.ConfigurationSchema("LinearApolloReferenceSequenceDisplay",{},{explicitIdentifier:"displayId",explicitlyTyped:!0});function jP(e,t,n){const r=t<=1?[2,1,0,7,6,5]:[2,1,0,5,4,3];n&&r.reverse(),r.unshift(0);const a=r.at(e);if(void 0===a)throw new Error("could not find row");return a}function LP(e,t,n,r){return r.offsetPx-n+(r.reversed?r.end-e.max:e.min-r.start)/t}function qP(e,t,n,r,a,o,i=!1){e.fillStyle=i?o.palette.action.disabled:o.palette.action.focus,e.fillRect(t,n,r,a),e.strokeStyle=i?o.palette.text.secondary:o.palette.text.primary,e.strokeStyle=o.palette.text.primary,e.strokeRect(t,n,r,a)}function BP(e,t,n,r,a,o,i,s=!1){const l=function(e,t,n){if(!(t>1||void 0===e))return n?1===e?4:3:1===e?3:4}(t.strand,n,o.reversed);l&&qP(e,LP(t,n,r,o),l*a,t.length/n,a,i,s)}function UP(e,t,r,a,o,i,s,l=!1){const c=t.parent;if(!c)return;const u=c.cdsLocations.find((e=>{const n=e.at(1===t.strand?0:-1)?.min,r=e.at(1===t.strand?-1:0)?.max;return t.min===n&&t.max===r}));if(u)for(const c of u){const u=jP(n.getFrame(c.min,c.max,t.strand??1,c.phase),r,i.reversed);qP(e,LP(c,r,a,i),u*o,(c.max-c.min)/r,o,s,l)}}function zP(e,t,n,r,a,o){e.strokeStyle=o,e.lineWidth=1,e.strokeRect(t+.5,n+.5,r-1,a-1)}function GP(e,t,n,r,a){const o=Math.min(r,10);e.fillStyle="#000",e.font=`${o}px`;const i=e.measureText(a).width,s=Math.round(t+(r-i)/2);e.fillText(a,s,n+10)}function HP(e,t,n,r,a,o,i,s){const l=t<=1?[3,2,1,0,0,-1,-2,-3]:[3,2,1,-1,-2,-3];s&&l.reverse();for(const[t,s]of l.entries()){const l=n.palette.framesCDS.at(s)?.main;if(!l)continue;const c=t*i;e.fillStyle=r?n.palette.background.default:l,e.fillRect(a,c,o,i),r&&zP(e,a,c,o,i,n.palette.grey[200])}}function $P(e,t,r,a,o,i,s){if(1/o<1)return;const l=Math.round(a+r/o),c=Math.round(a+(r+1)/o)-l,u=[-1,1];for(const r of u){const a=(1===r?3:4)*i,u=1===r?t:n.revcom(t);e.fillStyle=RP(u,s),e.fillRect(l,a,c,i),1/o>=12&&(zP(e,l,a,c,i,s.palette.text.disabled),GP(e,l,a,c,u))}}function VP(e,t,r,a,o,i,s,l,c,u,d){const f=(s<=1?[0,2,1,0,7,6,5]:[0,2,1,0,5,4,3]).map((e=>e*c)),p=[-1,1];for(const h of p){const p=n.getFrame(l,l+3,h,0),m=f.at(p);if(void 0===m)continue;const g=Math.round(r+a/s),y=Math.round(r+(a+3)/s)-g,v=1===h?t:n.revcom(t),b=n.defaultCodonTable[v],_=IP(b,o,i);_&&(d&&"*"==b||u&&"*"!=b)&&(e.fillStyle=_,e.fillRect(g,m,y,c)),1/s>=4&&(zP(e,g,m,y,c,o.palette.text.disabled),GP(e,g,m,y,b))}}function WP(e,t){return function(e,t){const i=function(e,t){return o.BaseDisplay.named("BaseLinearApolloReferenceSequenceDisplay").props({type:r.types.literal("LinearApolloReferenceSequenceDisplay"),configuration:a.ConfigurationReference(t),showStartCodons:!1,showStopCodons:!0,highContrast:!1,heightPreConfig:r.types.maybe(r.types.refinement("displayHeight",r.types.number,(e=>e>=20))),sequenceRowHeight:15}).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...S.getParentRenderProps(e),config:t.renderer})}})).views((e=>({get lgv(){return n.getContainingView(e)}}))).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return n.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=3)return"Zoom in to see sequence"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:n}=r.getRoot(e),{assemblyName:o}=t,{assemblyManager:i}=e.session,s=i.get(o);if(!s)throw new Error(`No assembly found with name ${o}`);const{internetAccountConfigId:l}=a.getConf(s,["sequence","metadata"]);return n.find((e=>a.getConf(e,"internetAccountId")===l))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature},get hoveredFeature(){return e.session.apolloHoveredFeature},get height(){const{sequenceRowHeight:t}=e;return e.lgv.bpPerPx<=1?8*t:6*t}}))).volatile((()=>({scrollTop:0}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n},toggleShowStartCodons(){e.showStartCodons=!e.showStartCodons},toggleShowStopCodons(){e.showStopCodons=!e.showStopCodons},toggleHighContrast(){e.highContrast=!e.highContrast}}))).views((e=>{const{trackMenuItems:t}=e;return{trackMenuItems(){const{showStartCodons:n,showStopCodons:r,highContrast:a}=e;return[...t(),{type:"subMenu",label:"Appearance",subMenu:[{label:"Show start codons",type:"checkbox",checked:n,onClick:()=>{e.toggleShowStartCodons()}},{label:"Show stop codons",type:"checkbox",checked:r,onClick:()=>{e.toggleShowStopCodons()}},{label:"Use high contrast colors",type:"checkbox",checked:a,onClick:()=>{e.toggleHighContrast()}}]}]}}})).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&e.lgv.bpPerPx<=3&&e.session.apolloDataStore.loadRefSeq(e.regions)}),{name:"LinearApolloReferenceSequenceDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloReferenceSequenceDisplayRendering").volatile((()=>({seqTrackCanvas:null,seqTrackOverlayCanvas:null,theme:l.createTheme()}))).actions((e=>({setSeqTrackCanvas(t){e.seqTrackCanvas=t},setSeqTrackOverlayCanvas(t){e.seqTrackOverlayCanvas=t},setTheme(t){e.theme=t},afterAttach(){r.addDisposer(e,c.autorun((()=>{const{lgv:t,seqTrackCanvas:r,theme:a,highContrast:o,showStartCodons:i,showStopCodons:s,sequenceRowHeight:l,session:c}=e;if(!t.initialized||e.regionCannotBeRendered()||!r)return;if(3/t.bpPerPx<1)return;const{bpPerPx:u,offsetPx:d,dynamicBlocks:f}=t;!function(e,t,r,a,o,i,s,l,c,u){const d=e.getContext("2d");if(!d)return;d.clearRect(0,0,e.width,e.height);const{apolloDataStore:f}=u;for(const e of o.contentBlocks){const o=e.offsetPx-a;HP(d,r,t,i,o,e.widthPx,c,e.reversed);const u=f.assemblies.get(e.assemblyName),p=u?.getByRefName(e.refName),h=Math.floor(e.start),m=Math.ceil(e.end);let g=p?.getSequence(h,m);if(!g)return;g=g.toUpperCase(),e.reversed&&(g=n.revcom(g));const y=o-(e.reversed?m-e.end:e.start-h)/r;for(let n=0;n<g.length;n++){const a=e.reversed?m-n:h+n,o=g.slice(n,n+3);$P(d,g[n],n,y,r,c,t),3===o.length&&VP(d,o,y,n,t,i,r,a,c,s,l)}}}(r,a,u,d,f,o,i,s,l,c)}),{name:"LinearApolloReferenceSequenceDisplayRenderSequence"})),r.addDisposer(e,c.autorun((()=>{const{seqTrackOverlayCanvas:t}=e;if(!e.lgv.initialized||e.regionCannotBeRendered()||!t)return;const n=t.getContext("2d");if(!n)return;n.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.height);const{hoveredFeature:r,selectedFeature:a,lgv:o,sequenceRowHeight:i,session:s,theme:l}=e;if(!r&&!a)return;const{bpPerPx:c,dynamicBlocks:u,offsetPx:d}=o;!function(e,t,n,r,a,o,i,s,l,c){const{featureTypeOntology:u}=i.apolloDataStore.ontologyManager;if(!u)throw new Error("featureTypeOntology is undefined");for(const i of c.contentBlocks){t.save(),t.beginPath(),t.rect(i.offsetPx-l,0,i.widthPx,e.height),t.clip();for(const e of[r,n?.feature].filter((e=>void 0!==e)))u.isTypeOf(e.type,"CDS")?UP(t,e,s,l,a,i,o,e._id===r?._id):BP(t,e,s,l,a,i,o,e._id===r?._id);t.restore()}}(t,n,r,a,i,l,s,c,d,u)}),{name:"LinearApolloReferenceSequenceDisplayRenderSequenceHighlight"}))}})))}(0,t).named("LinearApolloReferenceSequenceDisplay")}const JP=h.observer((function(e){const t=l.useTheme(),{model:r}=e,{height:a,regionCannotBeRendered:o,setSeqTrackCanvas:i,setSeqTrackOverlayCanvas:s,setTheme:c}=r,{classes:d}=TP();u.useEffect((()=>{c(t)}),[t,c]);const f=n.getContainingView(r),p=o();return p?T.default.createElement(l.Alert,{severity:"warning",classes:{message:d.ellipses},slotProps:{root:{className:d.center}}},T.default.createElement(l.Tooltip,{title:p},T.default.createElement("div",null,p))):T.default.createElement(T.default.Fragment,null,3/f.bpPerPx>=1?T.default.createElement("div",{className:d.canvasContainer,style:{width:f.dynamicBlocks.totalWidthPx,height:a}},T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),i(e)},width:f.dynamicBlocks.totalWidthPx,height:a,className:d.canvas,"data-testid":"seqTrackCanvas"}),T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),s(e)},width:f.dynamicBlocks.totalWidthPx,height:a,className:d.canvas,"data-testid":"seqTrackOverlayCanvas"})):null)})),YP=a.ConfigurationSchema("LinearApolloSixFrameDisplay",{},{explicitIdentifier:"displayId",explicitlyTyped:!0}),KP=h.observer((function({sourceFeature:e,filteredTranscripts:t,handleClose:n,onUpdate:r}){const a=[];if(e.children)for(const[,t]of e.children){const e=t.attributes.get("gff_id")?.toString();e&&a.push(e)}const[o,i]=u.useState(t);return T.default.createElement(xf,{open:!0,maxWidth:!1,"data-testid":"filter-transcripts-dialog",title:"Filter transcripts by ID",handleClose:n},T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,null,"Select the alternate transcripts you want to display in the apollo track"),T.default.createElement(l.Grid,{container:!0,spacing:2},T.default.createElement(l.Grid,{size:8},T.default.createElement(l.FormGroup,null,a.map((e=>T.default.createElement(l.FormControlLabel,{control:T.default.createElement(l.Checkbox,{checked:!o.includes(e),onChange:()=>{(e=>{const t=o.includes(e)?o.filter((t=>t!==e)):[...o,e];r(t),i(t)})(e)},slotProps:{input:{"aria-label":"controlled"}}}),label:e}))))))))}));let ZP=null,XP=null,QP=null,eM=null;const tM=globalThis.document.createElement("canvas");if(tM?.getContext)for(const e of["forward","backward"])for(const t of["light","dark"]){const n=document.createElement("canvas"),r=10;n.width=n.height=r;const a=n.getContext("2d");if(a){const o="light"===t?"rgba(0,0,0,0)":"rgba(0,0,0,0.75)",i="light"===t?"rgba(255,255,255,0.25)":"rgba(0,0,0,0.50)",s="forward"===e?a.createLinearGradient(0,r,r,0):a.createLinearGradient(0,0,r,r);s.addColorStop(0,o),s.addColorStop(.25,o),s.addColorStop(.25,i),s.addColorStop(.5,i),s.addColorStop(.5,o),s.addColorStop(.75,o),s.addColorStop(.75,i),s.addColorStop(1,i),a.fillStyle=s,a.fillRect(0,0,10,10),"forward"===e?"light"===t?ZP=a.createPattern(n,"repeat"):QP=a.createPattern(n,"repeat"):"light"===t?XP=a.createPattern(n,"repeat"):eM=a.createPattern(n,"repeat")}}function nM(e,t){for(const n of e)if(vT(n,t))return!0;return!1}function rM(e,t,r){const{filteredTranscripts:a,session:o}=r,{apolloDataStore:i}=o,{featureTypeOntology:s}=i.ontologyManager;if(!s)throw new Error("featureTypeOntology is undefined");const l=s.isTypeOf(t.type,"transcript"),c=t.attributes.get("gff_id")?.toString();if(c&&a.includes(c))return;const{bp:u,refName:d,regionNumber:f,x:p}=e,{lgv:h}=r;if(l){const e=t;if(!e.children)return;const r=[],a=[];for(const t of e.children.values()){const e=s.isTypeOf(t.type,"exon"),n=s.isTypeOf(t.type,"CDS");e?r.push(t):n&&a.push(t)}const o=r.find((e=>{const[t,r]=n.intersection2(u,u+1,e.min,e.max);return void 0!==t&&void 0!==r}));if(o){const e=sf(o,d,f,h);if(e){const t=lf(o,p,e);if(t)return t}}for(const t of e.cdsLocations)for(const e of t){const t=sf(e,d,f,h);if(t){const e=a.find((e=>{const[t,r]=n.intersection2(u,u+1,e.min,e.max);return void 0!==t&&void 0!==r}));if(e){const n=lf(e,p,t);if(n)return n}}}}}const aM={draw:function(e,t,r,a,o){const{apolloRowHeight:i,lgv:s,session:c,theme:u,highestRow:d,filteredTranscripts:f,selectedFeature:p,showFeatureLabels:h}=a,{bpPerPx:m,displayedRegions:g,offsetPx:y}=s,v=g[o],{refName:b,reversed:_}=v,w=i,x=w,S=w,E=w,k=h?2:1,C=u.palette.text.primary,{attributes:A,children:O,min:T,strand:N}=t;if(!O)return;const{apolloDataStore:I}=c,{featureTypeOntology:R}=I.ontologyManager;if(!R)throw new Error("featureTypeOntology is undefined");const F=[],P=(s.bpToPx({refName:b,coord:T,regionNumber:o})?.offsetPx??0)-y,M=t.length/m,D=_?P-M:P,j=(1==N?3:4)*k*w;e.fillStyle=u.palette.text.primary,e.fillRect(D,j,M,E),e.fillStyle=cf(t,p)?l.alpha("rgb(0,0,0)",.7):l.alpha(u.palette.background.paper,.7),e.fillRect(D+1,j+1,M-2,E-2);const L=cf(t,p),q={x:D,y:j,h:E,text:A.get("gff_id")?.toString(),color:C,isSelected:L};L?F.unshift(q):F.push(q);const B="dark"===u.palette.mode?QP:ZP,U="dark"===u.palette.mode?eM:XP,z=_?-1:1;let G=null,H=null;N&&([G,H]=N*z==1?[B,U]:[U,B]),G&&H&&(e.fillStyle=G,e.fillRect(D+1,j+1,M-2,(E-2)/2),e.fillStyle=H,e.fillRect(D+1,j+(E-2)/2,M-2,(E-2)/2));const $=new Set;for(const[,t]of O){if(!R.isTypeOf(t.type,"transcript")&&!R.isTypeOf(t.type,"pseudogenic_transcript"))continue;const{children:r,cdsLocations:a}=t;if(!r)continue;const i=t.attributes.get("gff_id")?.toString();if(i&&f.includes(i))continue;for(const[,t]of r){if(!R.isTypeOf(t.type,"exon"))continue;const n=(s.bpToPx({refName:b,coord:t.min,regionNumber:o})?.offsetPx??0)-y,r=t.length/m,a=_?n-r:n,i=j+(E-x)/2,c=cf(t,p);if(e.fillStyle=u.palette.text.primary,e.fillRect(a,i,r,x),r>2){e.clearRect(a+1,i+1,r-2,x-2),e.fillStyle=c?"rgb(0,0,0)":l.alpha("#f5f500",.6),e.fillRect(a+1,i+1,r-2,x-2),G&&H&&(e.fillStyle=G,e.fillRect(a+1,i+1,r-2,(x-2)/2),e.fillStyle=H,e.fillRect(a+1,i+1+(x-2)/2,r-2,(x-2)/2));const n={x:a,y:i,h:x,text:t.attributes.get("gff_id")?.toString(),color:C,isSelected:c};c?F.unshift(n):F.push(n)}}const c=cf(t,p?.parent);let h=0,g=0;for(const r of a){let a=0,i=0,l=1;for(const f of r.sort(((e,t)=>e.max-t.max)))if(p&&c&&R.isTypeOf(p.type,"CDS")||!nM($,f)){const r=(f.max-f.min)/m,v=(s.bpToPx({refName:b,coord:f.min,regionNumber:o})?.offsetPx??0)-y;h=_?v-r:v,e.fillStyle=u.palette.text.primary;const x=n.getFrame(f.min,f.max,t.strand??1,f.phase);if(g=((x<0?-1*x+5:x)*k-k)*w,e.fillRect(h,g,r,S),l>1){const t=[(h-i)/2+i,Math.max(x<0?w*k*d+1:1,Math.min(a,g)-w/2)];e.strokeStyle="rgb(0, 128, 128)",e.beginPath(),e.moveTo(i,a),e.lineTo(...t),e.stroke(),e.moveTo(...t),e.lineTo(h,g+w/2),e.stroke()}if(i=h+r,a=g+w/2,l+=1,r>2){e.clearRect(h+1,g+1,r-2,S-2);const t=u.palette.framesCDS.at(x)?.main,n=t??"rgb(171,71,188)";e.fillStyle=n,e.fillStyle=p&&c&&R.isTypeOf(p.type,"CDS")?"rgb(0,0,0)":n,e.fillRect(h+1,g+1,r-2,S-2),G&&H&&(e.fillStyle=G,e.fillRect(h+1,g+1,r-2,(S-2)/2),e.fillStyle=H,e.fillRect(h+1,g+(S-2)/2,r-2,(S-2)/2))}$.add(f)}}const v={x:h,y:g,h:S,text:t.attributes.get("gff_id")?.toString(),color:C,isSelected:c};c?F.unshift(v):F.push(v)}h&&function(e,t,r="10px sans-serif"){for(let a=t.length-1;a>=0;--a){const o=t[a];e.fillStyle=o.color;const i=o.x+1,s=o.y+o.h,l=n.measureText(o.text,10);o.isSelected&&(e.font="bold ".concat(r)),o.text&&(e.clearRect(i-5,s,l+10,o.h),e.fillText(o.text,i,s+11,l),e.font=r)}}(e,F)},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:a,theme:o}=e,{bpPerPx:i,displayedRegions:s,offsetPx:c}=a;if(!n)return;const{current:u,edge:d,feature:f,start:p}=n,h=Math.floor(p.y/r),m=s[p.regionNumber],g=(m.reversed?m.end-f[d]:f[d]-m.start)/i-c,y=Math.min(u.x,g),v=h*r,b=Math.abs(u.x-g),_=1*r;t.strokeStyle=o.palette.info.main,t.setLineDash([6]),t.strokeRect(y,v,b,_),t.fillStyle=l.alpha(o.palette.info.main,.2),t.fillRect(y,v,b,_)},drawHover:function(e,t){const{hoveredFeature:r,apolloRowHeight:a,filteredTranscripts:o,lgv:i,highestRow:s,session:l,showFeatureLabels:c}=e;if(!r)return;const{feature:u}=r,{apolloDataStore:d}=l,{featureTypeOntology:f}=d.ontologyManager;if(!f)throw new Error("featureTypeOntology is undefined");if(!f.isTypeOf(u.type,"transcript"))return;const p=u.attributes.get("gff_id")?.toString();if(p&&o.includes(p))return;const h=e.getFeatureLayoutPosition(u);if(!h)return;const{bpPerPx:m,displayedRegions:g,offsetPx:y}=i,{layoutIndex:v}=h,b=g[v],{refName:_,reversed:w}=b,x=a,S=x,E=c?2:1,{cdsLocations:k,strand:C}=u;for(const e of k){let r=0,a=0,o=1;for(const l of e.sort(((e,t)=>e.max-t.max))){const e=(l.max-l.min)/m,c=(i.bpToPx({refName:_,coord:l.min,regionNumber:v})?.offsetPx??0)-y,u=w?c-e:c,d=n.getFrame(l.min,l.max,C??1,l.phase),f=((d<0?-1*d+5:d)*E-E)*x;if(o>1){const e=[(u-a)/2+a,Math.max(d<0?x*E*s+1:1,Math.min(r,f)-x/2)];t.strokeStyle="rgb(0, 0, 0)",t.lineWidth=2,t.beginPath(),t.moveTo(a,r),t.lineTo(...e),t.stroke(),t.moveTo(...e),t.lineTo(u,f+x/2),t.stroke()}a=u+e,r=f+x/2,o+=1,e>2&&(t.fillStyle="rgba(255,0,0,0.6)",t.fillRect(u,f,e,S))}}},drawTooltip:function(e,t){const{hoveredFeature:r,apolloRowHeight:a,filteredTranscripts:o,lgv:i,session:s,showFeatureLabels:c,theme:u}=e;if(!r)return;const{feature:d,bp:f}=r,{featureTypeOntology:p}=s.apolloDataStore.ontologyManager;if(!p)throw new Error("featureTypeOntology is undefined");if(!p.isTypeOf(d.type,"transcript"))return;const{attributes:h,strand:m,type:g}=d,y=e.getFeatureLayoutPosition(d);if(!y)return;const v=h.get("gff_id")?.toString();if(v&&o.includes(v))return;const{layoutIndex:b}=y,{bpPerPx:_,displayedRegions:w,offsetPx:x}=i,S=w[b],{refName:E,reversed:k}=S,C=a,A=Math.round(.7*C),O=c?2:1;let T,N="Loc: ";for(const e of d.cdsLocations)for(const t of e)if(f>=t.min&&f<=t.max){T=t;break}if(!T)return;const{max:I,min:R,phase:F}=T;N+=`${R+1}–${I}`;let P=(i.bpToPx({refName:E,coord:k?I:R,regionNumber:b})?.offsetPx??0)-x;const M=n.getFrame(R,I,m??1,F),D=((M<0?-1*M+5:M)*O-O)*C+(C-A)/2,j=(I-R)/_,L=`Type: ${T.type}`,q=h.get("gff_name")?.find((e=>""!==e)),B=[t.measureText(L).width,t.measureText(N).width];q&&B.push(t.measureText(`Parent Type: ${g}`).width,t.measureText(`Parent Name: ${q}`).width);const U=Math.max(...B);P=P+j+5,t.fillStyle=l.alpha(u.palette.text.primary,.7),t.fillRect(P,D,U+4,4===B.length?55:35),t.beginPath(),t.moveTo(P,D),t.lineTo(P-5,D+5),t.lineTo(P,D+10),t.fill(),t.fillStyle=u.palette.background.default;let z=D+12;t.fillText(L,P+2,z),q&&(z+=12,t.fillText(`Parent Type: ${g}`,P+2,z),z+=12,t.fillText(`Parent Name: ${q}`,P+2,z)),z+=12,t.fillText(N,P+2,z)},getContextMenuItems:function(e,t){const{apolloInternetAccount:a,hoveredFeature:o,changeManager:i,filteredTranscripts:s,regions:l,selectedFeature:c,session:u}=e,[d]=l,f=e.getAssemblyId(d.assemblyName),p=[],h="admin"===(a?a.role:"admin");if(!o)return p;const{featureTypeOntology:m}=u.apolloDataStore.ontologyManager;if(!m)throw new Error("featureTypeOntology is undefined");if(yf(t)){const{bp:a,feature:o}=t;let l=Zd(o,a);rf(o,u)&&(l=Zd(o,a,!0));for(const a of l){const o=a.attributes.get("gff_id")?.toString();if(o&&s.includes(o))continue;const l=ff(e,a);if(nf(a,u)){const r=af(a,e,t,u),o=n.getContainingView(e);if(r.upstream){const t=r.upstream;l.push({label:"Go to upstream exon",icon:of(a.strand,!0,o.displayedRegions.at(0)?.reversed),onClick:()=>{o.navTo(pf(t,.1,o.totalBp)),ef(e,t)}})}if(r.downstream){const t=r.downstream;l.push({label:"Go to downstream exon",icon:of(a.strand,!1,o.displayedRegions.at(0)?.reversed),onClick:()=>{o.navTo(pf(t,.1,o.totalBp)),ef(e,t)}})}l.push({label:"Merge exons",disabled:!h,onClick:()=>{u.queueDialog((t=>[QT,{session:u,handleClose:()=>{t()},changeManager:i,sourceFeature:a,sourceAssemblyId:f,selectedFeature:c,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}},{label:"Split exon",disabled:!h,onClick:()=>{u.queueDialog((t=>[dN,{session:u,handleClose:()=>{t()},changeManager:i,sourceFeature:a,sourceAssemblyId:f,selectedFeature:c,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}})}m.isTypeOf(a.type,"gene")&&l.push({label:"Filter alternate transcripts",onClick:()=>{u.queueDialog((t=>[KP,{handleClose:()=>{t()},sourceFeature:a,filteredTranscripts:r.getSnapshot(s),onUpdate:t=>{e.updateFilteredTranscripts(t)}}]))}}),p.push({label:a.type,subMenu:l})}}return p},getContextMenuItemsForFeature:ff,onMouseDown:function(e,t,n){const{feature:r}=t,a=rM(t,r,e);a&&(n.stopPropagation(),e.startDrag(t,a.feature,a.edge,!0))},onMouseLeave:function(){},onMouseMove:function(e,t){if(yf(t)){const{feature:n,bp:r}=t;if(e.setHoveredFeature({feature:n,bp:r}),rM(t,n,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(!e.apolloDragging&&yf(t)){const{feature:n}=t,{session:r}=e,{apolloDataStore:a}=r,{featureTypeOntology:o}=a.ontologyManager;if(e.setSelectedFeature(n),!o)throw new Error("featureTypeOntology is undefined");let i=!1;for(const[,e]of n.children??[])if(o.isTypeOf(e.type,"CDS")||o.isTypeOf(e.type,"exon")){i=!0;break}(o.isTypeOf(n.type,"transcript")||o.isTypeOf(n.type,"pseudogenic_transcript"))&&i?e.showFeatureDetailsWidget(n,["ApolloTranscriptDetails","apolloTranscriptDetails"]):e.showFeatureDetailsWidget(n)}}};function oM(e,t,r,a,o,i,s,l,c,u,d,f){const p=(u?[0,4,2,0,14,12,10]:[0,2,1,0,7,6,5]).map((e=>e*c)),h=[-1,1];for(const u of h){const h=n.getFrame(l,l+3,u,0),m=p.at(h);if(void 0===m)continue;const g=Math.round(r+a/s),y=0===Math.round(3/s)?1:Math.round(3/s),v=1===u?t:n.revcom(t),b=n.defaultCodonTable[v],_=IP(b,o,i);_&&(f&&"*"==b||d&&"*"!=b)&&(e.fillStyle=_,e.fillRect(g,m,y,c))}}function iM(e,t){return function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return o.BaseDisplay.named("BaseLinearApolloSixFrameDisplay").props({type:r.types.literal("LinearApolloSixFrameDisplay"),configuration:a.ConfigurationReference(t),graphical:!0,table:!1,showFeatureLabels:!0,showStartCodons:!1,showStopCodons:!0,showCheckResults:!0,zoomThreshold:200,heightPreConfig:r.types.maybe(r.types.refinement("displayHeight",r.types.number,(e=>e>=20))),filteredFeatureTypes:r.types.array(r.types.string)}).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...S.getParentRenderProps(e),config:t.renderer})}})).volatile((()=>({scrollTop:0}))).views((e=>({get lgv(){return n.getContainingView(e)},get height(){return e.heightPreConfig?e.heightPreConfig:e.graphical&&e.table?500:e.graphical?e.showFeatureLabels?400:200:300},get zoomThresholdSetting(){return e.zoomThreshold??a.getConf(e,"zoomThreshold")}}))).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return n.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=e.zoomThreshold)return"Zoom in to see annotations"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:n}=r.getRoot(e),{assemblyName:o}=t,{assemblyManager:i}=e.session,s=i.get(o);if(!s)throw new Error(`No assembly found with name ${o}`);const{internetAccountConfigId:l}=a.getConf(s,["sequence","metadata"]);return n.find((e=>a.getConf(e,"internetAccountId")===l))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature},get hoveredFeature(){return e.session.apolloHoveredFeature}}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n},showGraphicalOnly(){e.graphical=!0,e.table=!1},showTableOnly(){e.graphical=!1,e.table=!0},showGraphicalAndTable(){e.graphical=!0,e.table=!0},toggleShowFeatureLabels(){e.showFeatureLabels=!e.showFeatureLabels},toggleShowStartCodons(){e.showStartCodons=!e.showStartCodons},toggleShowStopCodons(){e.showStopCodons=!e.showStopCodons},toggleShowCheckResults(){e.showCheckResults=!e.showCheckResults},updateFilteredFeatureTypes(t){e.filteredFeatureTypes=r.cast(t)},setZoomThresholdSetting({zoomThreshold:t}){e.zoomThreshold=t}}))).views((e=>{const{filteredFeatureTypes:t,trackMenuItems:a}=e;return{trackMenuItems(){const{graphical:o,table:i,showFeatureLabels:s,showStartCodons:l,showStopCodons:c,showCheckResults:u}=e;return[...a(),{type:"subMenu",label:"Appearance",subMenu:[{label:"Show graphical display",type:"radio",checked:o&&!i,onClick:()=>{e.showGraphicalOnly()}},{label:"Show table display",type:"radio",checked:i&&!o,onClick:()=>{e.showTableOnly()}},{label:"Show both graphical and table display",type:"radio",checked:i&&o,onClick:()=>{e.showGraphicalAndTable()}},{label:"Feature Labels",type:"checkbox",checked:s,onClick:()=>{e.toggleShowFeatureLabels()}},{label:"Show start codons",type:"checkbox",checked:l,onClick:()=>{e.toggleShowStartCodons()}},{label:"Show stop codons",type:"checkbox",checked:c,onClick:()=>{e.toggleShowStopCodons()}},{label:"Check Results",type:"checkbox",checked:u,onClick:()=>{e.toggleShowCheckResults()}},{label:"Change zoom threshold",onClick:()=>{n.getSession(e).queueDialog((t=>[OP,{model:e,handleClose:t}]))}}]},{label:"Filter features by type",onClick:()=>{const n=e.session;e.session.queueDialog((a=>[AP,{session:n,handleClose:()=>{a()},featureTypes:r.getSnapshot(t),onUpdate:t=>{e.updateFilteredFeatureTypes(t)}}]))}}]}}})).actions((e=>({setSelectedFeature(t){e.session.apolloSetSelectedFeature(t)},setHoveredFeature(t){e.session.apolloSetHoveredFeature(t)},showFeatureDetailsWidget(t,n){const[r]=e.regions,{assemblyName:a,refName:o}=r,i=e.getAssemblyId(a);if(!i)return;const{session:s}=e,{changeManager:l}=s.apolloDataStore,[c,u]=n??["ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget"],d=s.addWidget(c,u,{feature:t,assembly:i,refName:o,changeManager:l});s.showWidget(d)},afterAttach(){r.addDisposer(e,c.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&(e.session.apolloDataStore.loadFeatures(e.regions),e.lgv.bpPerPx<=e.zoomThreshold&&e.session.apolloDataStore.loadRefSeq(e.regions))}),{name:"LinearApolloSixFrameDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloSixFrameDisplayLayouts").props({featuresMinMaxLimit:5e5}).volatile((()=>({seenFeatures:c.observable.map()}))).views((e=>({get featuresMinMax(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map((r=>{const a=t.get(r.assemblyName);let o,i;const{end:s,refName:l,start:c}=r;for(const[,t]of e.seenFeatures)l!==a?.getCanonicalRefName(t.refSeq)||!n.doesIntersect2(c,s,t.min,t.max)||t.length>e.featuresMinMaxLimit||(void 0===o&&({min:o}=t),void 0===i&&({max:i}=t),t.minWithChildren<o&&({min:o}=t),t.maxWithChildren>i&&({max:i}=t));if(void 0!==o&&void 0!==i)return[o,i]}))},getGlyph:e=>aM,featureLabelSpacer:t=>e.showFeatureLabels?2*t-1:t}))).actions((e=>({addSeenFeature(t){e.seenFeatures.set(t._id,t)},deleteSeenFeature(t){e.seenFeatures.delete(t)}}))).views((e=>({get geneTrackRowNums(){return[4,5].map((t=>e.featureLabelSpacer(t)))}}))).views((e=>({get featureLayouts(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map(((a,o)=>{const i=t.get(a.assemblyName),s=new Map;if(!e.featuresMinMax[o])return s;const{end:l,refName:c,start:u}=a;for(const[t,a]of e.seenFeatures.entries()){if(!r.isAlive(a)){e.deleteSeenFeature(t);continue}if(c!==i?.getCanonicalRefName(a.refSeq)||!n.doesIntersect2(u,l,a.min,a.max))continue;const{featureTypeOntology:o}=e.session.apolloDataStore.ontologyManager;if(!o)throw new Error("featureTypeOntology is undefined");if(a.looksLikeGene){const t=1==a.strand?e.geneTrackRowNums[0]:e.geneTrackRowNums[1];s.get(t)||s.set(t,[]);const r=s.get(t);r?.push({rowNum:t,feature:a});const{children:i}=a;if(!i)continue;for(const[,t]of i)if(o.isTypeOf(t.type,"transcript")){const{cdsLocations:r,strand:a,children:i}=t;if(i)for(const[,t]of i){if(!o.isTypeOf(t.type,"exon"))continue;const n=1==t.strand?e.geneTrackRowNums[0]:e.geneTrackRowNums[1],r=s.get(n);r?.push({rowNum:n,feature:t})}for(const o of r)for(const r of o){let o=n.getFrame(r.min,r.max,a??1,r.phase);o=e.featureLabelSpacer(o<0?-1*o+5:o),s.get(o)||s.set(o,[]);const i=s.get(o);i?.push({rowNum:o,feature:t})}}}}return s}))},getFeatureLayoutPosition(e){const{featureLayouts:t}=this;for(const[n,r]of t.entries())for(const[,t]of r)for(const{feature:r}of t)if(e._id===r._id)return{layoutIndex:n,layoutRow:0,featureRow:0}}}))).views((e=>({get highestRow(){return 5}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((()=>{if(e.lgv.initialized&&!e.regionCannotBeRendered())for(const t of e.regions){const r=e.session.apolloDataStore.assemblies.get(t.assemblyName),a=r?.getByRefName(t.refName),o=a?.features;if(o)for(const[,r]of o)n.doesIntersect2(t.start,t.end,r.min,r.max)&&!e.seenFeatures.has(r._id)&&e.addSeenFeature(r)}}),{name:"LinearApolloSixFrameDisplaySetSeenFeatures",delay:1e3}))}})))}(0,t).named("LinearApolloSixFrameDisplayRendering").props({apolloRowHeight:20,detailsMinHeight:200,detailsHeight:200,lastRowTooltipBufferHeight:120,isShown:!0,filteredTranscripts:r.types.array(r.types.string)}).volatile((()=>({canvas:null,overlayCanvas:null,collaboratorCanvas:null,theme:l.createTheme()}))).views((e=>({get featuresHeight(){return(e.highestRow+1)*e.apolloRowHeight*(e.showFeatureLabels?2:1)+e.lastRowTooltipBufferHeight}}))).actions((e=>({toggleShown(){e.isShown=!e.isShown},setDetailsHeight(t){e.detailsHeight=e.isShown?Math.max(Math.min(t,e.height-100),Math.min(e.height,e.detailsMinHeight)):t},setCanvas(t){e.canvas=t},setOverlayCanvas(t){e.overlayCanvas=t},setCollaboratorCanvas(t){e.collaboratorCanvas=t},setTheme(t){e.theme=t}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.collaboratorCanvas?.getContext("2d");if(t){t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);for(const n of e.session.collaborators){const{locations:r}=n;if(0===r.length)continue;let a=0;for(const o of e.lgv.displayedRegions){for(const i of r){if(i.refSeq!==o.refName)continue;const{end:r,refSeq:s,start:l}=i,c=e.lgv.bpToPx({refName:s,coord:l,regionNumber:a});if(!c)continue;const u=c.offsetPx-e.lgv.offsetPx,d=(r-l)/e.lgv.bpPerPx;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(u,1,d,100),t.fillStyle="black",t.fillText(n.name,u+1,11,d-2)}a++}}}}),{name:"LinearApolloSixFrameDisplayRenderCollaborators"})),r.addDisposer(e,c.autorun((()=>{const{apolloRowHeight:t,canvas:r,featureLayouts:a,featuresHeight:o,lgv:i,session:s,theme:l,showFeatureLabels:c,showStartCodons:u,showStopCodons:d}=e;if(!i.initialized||e.regionCannotBeRendered())return;const{bpPerPx:f,offsetPx:p,displayedRegions:h,dynamicBlocks:m}=i,g=r?.getContext("2d");if(g){g.clearRect(0,0,m.totalWidthPx,o);for(const[t,r]of a.entries()){const a=h[t];for(const[o,i]of r.entries())for(const{feature:r}of i){if(!r.looksLikeGene)continue;if(!n.doesIntersect2(a.start,a.end,r.min,r.max))continue;const{topLevelFeature:i}=r,s=e.getGlyph(i);void 0!==s&&s.draw(g,i,o,e,t)}}if(u||d){const{apolloDataStore:e}=s;for(const n of m.contentBlocks){const r=e.assemblies.get(n.assemblyName),a=r?.getByRefName(n.refName),o=Math.floor(n.start),i=Math.ceil(n.end);let s=a?.getSequence(o,i);if(!s)break;s=s.toUpperCase();const h=Math.round(n.offsetPx-p-(n.start-o)/f);for(let e=0;e<s.length;e++){const n=o+e;oM(g,s.slice(e,e+3),h,e,l,!0,f,n,t,c,u,d)}}}}}),{name:"LinearApolloSixFrameDisplayRenderFeatures"}))}})))}(0,t);return i.named("LinearApolloSixFrameDisplayMouseEvents").volatile((()=>({apolloDragging:null,cursor:void 0}))).views((e=>({getMousePosition(t){const r=vf(t,e.lgv),{bp:a,regionNumber:o,y:i}=r,s=Math.floor(i/e.apolloRowHeight)+1,l=e.featureLayouts[o].get(s);if(!l)return r;const{featureTypeOntology:c}=e.session.apolloDataStore.ontologyManager;if(!c)throw new Error("featureTypeOntology is undefined");let u;if(e.geneTrackRowNums.includes(s)?(u=l.find((e=>"exon"==e.feature.type&&a>=e.feature.min&&a<=e.feature.max)),u||(u=l.find((e=>a>=e.feature.min&&a<=e.feature.max)))):u=l.find((t=>{const{feature:r}=t,o=r.attributes.get("gff_id")?.toString();if(!c.isTypeOf(r.type,"transcript"))return!1;for(const t of r.cdsLocations)for(const i of t){let t=n.getFrame(i.min,i.max,r.strand??1,i.phase);if(t=e.featureLabelSpacer(t<0?-1*t+5:t),s===t&&a>=i.min&&a<=i.max)return void 0===o||!e.filteredTranscripts.includes(o)}return!1})),!u)return r;const{feature:d}=u;return{...r,feature:d}}}))).actions((e=>({continueDrag(t,n){if(!e.apolloDragging)throw new Error("continueDrag() called with no current drag in progress");n.stopPropagation(),e.apolloDragging={...e.apolloDragging,current:t}},setDragging(t){e.apolloDragging=t??null}}))).actions((e=>({setCursor(t){e.cursor!==t&&(e.cursor=t)},updateFilteredTranscripts(t){e.filteredTranscripts=r.cast(t)}}))).actions((()=>({onClick(){}})))}(0,t).views((e=>({contextMenuItems(t){const{hoveredFeature:n}=e;if(!n)return[];const r=e.getMousePosition(t),{topLevelFeature:a}=n.feature,o=e.getGlyph(a);return yf(r)?o.getContextMenuItems(e,r):[]}}))).actions((e=>({startDrag(t,n,r,a=!1){e.apolloDragging={start:t,current:t,feature:n,edge:r,shrinkParent:a}},endDrag(){if(!e.apolloDragging)throw new Error("endDrag() called with no current drag in progress");const{current:t,edge:n,feature:r,start:a,shrinkParent:o}=e.apolloDragging;if(Math.abs(t.x-a.x)<=4)return e.setDragging(),void e.setCursor();const{displayedRegions:i}=e.lgv,s=e.getAssemblyId(i[a.regionNumber].assemblyName),l=gf(r,t.bp,n,o),c="max"===n?new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:l.map((e=>e.featureId)),changes:l.map((e=>({featureId:e.featureId,oldEnd:e.oldLocation,newEnd:e.newLocation}))),assembly:s}):new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:l.map((e=>e.featureId)),changes:l.map((e=>({featureId:e.featureId,oldStart:e.oldLocation,newStart:e.newLocation}))),assembly:s});e.changeManager.submit(c),e.setDragging(),e.setCursor()}}))).actions((e=>({onMouseDown(t){const n=e.getMousePosition(t);yf(n)&&e.getGlyph(n.feature).onMouseDown(e,n,t)},onMouseMove(t){const n=e.getMousePosition(t);if(e.apolloDragging)return e.setCursor("col-resize"),void e.continueDrag(n,t);yf(n)?e.getGlyph(n.feature).onMouseMove(e,n,t):(e.setHoveredFeature(),e.setCursor())},onMouseLeave(t){e.setDragging(),e.setHoveredFeature();const n=e.getMousePosition(t);yf(n)&&e.getGlyph(n.feature).onMouseLeave(e,n,t)},onMouseUp(t){const n=e.getMousePosition(t);yf(n)?e.getGlyph(n.feature).onMouseUp(e,n,t):e.setSelectedFeature(),e.apolloDragging&&e.endDrag()}}))).actions((e=>({afterAttach(){r.addDisposer(e,c.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.overlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);const{apolloDragging:n,hoveredFeature:r}=e;if(!r)return;const a=e.getGlyph(r.feature);a.drawHover(e,t),a.drawTooltip(e,t),n&&e.getGlyph(n.feature.topLevelFeature).drawDragPreview(e,t)}),{name:"LinearApolloSixFrameDisplayRenderMouseoverAndDrag"}))}})))}(0,t).props({tabularEditor:r.types.optional(VF,{})}).named("LinearApolloSixFrameDisplay")}const sM=a.ConfigurationSchema("ApolloPlugin",{ontologies:r.types.array(OT),featureTypeOntologyName:{description:"Name of the feature type ontology",type:"string",defaultValue:"Sequence Ontology"},hasRole:{description:"Flag used internally by jbrowse-plugin-apollo",type:"boolean",defaultValue:!1},geneBackgroundColor:{description:"Color for feature background",type:"string",defaultValue:"jexl:geneBackgroundColor(featureType)",contextVariable:["featureType"]}}),lM=(e,t)=>{const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"gene")||n.isTypeOf(e.type,"transcript")||n.isTypeOf(e.type,"pseudogene")||n.isTypeOf(e.type,"pseudogenic_transcript")},cM=(e,t)=>{const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"gene")||n.isTypeOf(e.type,"pseudogene")},uM=(e,t)=>{const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"transcript")||n.isTypeOf(e.type,"pseudogenic_transcript")};function dM(e){const{attributes:t}=e,n=["gene_name","gene_id","gene_stable_id"];for(const e of n){const n=t?.[e];if(n?.[0])return n[0]}return""}const fM=e=>{const t=function(e){const{attributes:t}=e,n=["name","gff_name","transcript_name","gene_name"];for(const e of n){const n=t?.[e];if(n?.[0])return n[0]}return""}(e),n=function(e){const{attributes:t}=e,n=["id","gff_id","transcript_id","gene_id","gene_stable_id","stable_id"];for(const e of n){const n=t?.[e];if(n?.[0])return n[0]}return""}(e);return t?`${e.type} - ${t}`:n?`${e.type} - ${n}`:e.type};function pM({annotationFeature:e,assembly:t,handleClose:n,refSeqId:a,session:o,region:i}){const s=o,{featureTypeOntology:c}=s.apolloDataStore.ontologyManager,d=u.useMemo((()=>Object.keys(e.children??{})),[e]),[f,p]=u.useState(!0),[h,m]=u.useState(d),[g,y]=u.useState(""),[v,b]=u.useState([]),[_,w]=u.useState(!1),[x,S]=u.useState(),E=s.apolloDataStore.assemblies.get(t.name),k=E?.refSeqs.get(a),C=k?.getFeatures(i.start,i.end),A=()=>{const e=[];for(const t of C??[])if(!(t.min>i.end||t.max<i.start)&&c?.isTypeOf(t.type,"gene")){const n=r.getSnapshot(t);e.push(n)}return e};u.useEffect((()=>{y("");const e=A();b(e),S(e[0])}),[h,f,i]);const O=async e=>{if(x)for(const n of Object.keys(e)){const r=e[n];if(r.strand=x.strand,r.children)for(const e of Object.keys(r.children))r.children[e].strand=x.strand;const a=new Xn.AddFeatureChange({parentFeatureId:x._id,changedIds:[x._id],typeName:"AddFeatureChange",assembly:t.name,addedFeature:r});await R(a,n)}},N=async n=>{const r=(new Hn).toHexString(),o=Math.min(...Object.values(n).map((e=>e.min))),i=Math.max(...Object.values(n).map((e=>e.max))),s=new Xn.AddFeatureChange({changedIds:[r],typeName:"AddFeatureChange",assembly:t.name,addedFeature:{_id:r,refSeq:a,min:o,max:i,strand:e.strand,type:"gene",children:n,attributes:{name:[dM(e)],gene_name:[dM(e)]}}});await R(s,r)},I=async(e,n)=>{if(!x)return;const r=[];e!==x.min&&r.push(new Xn.LocationStartChange({typeName:"LocationStartChange",changedIds:[x._id],featureId:x._id,assembly:t.name,oldStart:x.min,newStart:e})),n!==x.max&&r.push(new Xn.LocationEndChange({typeName:"LocationEndChange",changedIds:[x._id],featureId:x._id,assembly:t.name,oldEnd:x.max,newEnd:n}));for(const e of r)await R(e)},R=async(e,t)=>{await s.apolloDataStore.changeManager.submit(e).then((()=>{s.apolloSetSelectedFeature(t)}))};return T.default.createElement(xf,{open:!0,title:"Create Apollo Annotation",handleClose:n,fullWidth:!0,maxWidth:"sm"},T.default.createElement(l.DialogTitle,{fontSize:15},"Select the feature to be copied to apollo track"),T.default.createElement(l.DialogContent,null,T.default.createElement(l.Box,{sx:{ml:3}},lM(e,s)&&T.default.createElement(l.FormControlLabel,{control:T.default.createElement(l.Checkbox,{size:"small",checked:f,onChange:e=>{const t=e.target.checked;p(t),m(t?d:[])}}),label:`${fM(e)} (${e.min+1}..${e.max})`}),e.children&&T.default.createElement(l.Box,{sx:{display:"flex",flexDirection:"column",ml:3}},Object.values(e.children).filter((e=>uM(e,s))).map((e=>T.default.createElement(l.FormControlLabel,{key:e._id,control:T.default.createElement(l.Checkbox,{size:"small",checked:h.includes(e._id),onChange:t=>{((e,t)=>{m((n=>e.target.checked?[...n,t._id]:n.filter((e=>e!==t._id))))})(t,e)}}),label:`${fM(e)} (${e.min+1}..${e.max})`}))))),v.length>0&&(!f&&h.length>0||f&&uM(e,s))&&T.default.createElement("div",{style:{border:"1px solid #ccc",marginTop:20,padding:10,borderRadius:5}},T.default.createElement(l.Box,{sx:{ml:3}},T.default.createElement(l.Typography,{variant:"caption",fontSize:12},"Select the destination feature to copy the selected features"),T.default.createElement(l.Box,{sx:{mt:1}},T.default.createElement(l.Select,{labelId:"label",style:{width:"100%"},value:x?._id??"",onChange:e=>{const t=v.find((t=>t._id===e.target.value));S(t)},disabled:_},v.map((e=>T.default.createElement(l.MenuItem,{key:e._id,value:e._id},`${fM(e)} (${e.min+1}..${e.max})`)))))),T.default.createElement(l.Box,{sx:{ml:3}},T.default.createElement(l.FormGroup,null,T.default.createElement(l.FormControlLabel,{control:T.default.createElement(l.Checkbox,{checked:_,onChange:e=>{w(e.target.checked)}}),label:"Create new gene"}))))),T.default.createElement(l.DialogActions,null,T.default.createElement(l.Button,{variant:"contained",type:"submit",disabled:0===h.length||!f&&h.length>0&&!x,onClick:async()=>{if(f){if(cM(e,s)&&(await(async()=>{let n;if(e.children&&h.length!==Object.values(e.children).length){const r={};for(const t of h)r[t]=e.children[t];n=new Xn.AddFeatureChange({changedIds:[e._id],typeName:"AddFeatureChange",assembly:t.name,addedFeature:{...e,children:r}})}else n=new Xn.AddFeatureChange({changedIds:[e._id],typeName:"AddFeatureChange",assembly:t.name,addedFeature:e});await R(n,e._id)})(),o.notify("Successfully copied selected gene and transcript(s)","success")),uM(e,s))if(x&&!_){const t={};if(t[e._id]=e,x.max<e.max||x.min>e.min){const n=Math.min(x.min,e.min),r=Math.max(x.max,e.max);await I(n,r),await O(t)}else await O(t);o.notify("Successfully copied selected transcripts to destination gene","success")}else{const t={};t[e._id]=e,await N(t),o.notify("Successfully created a new gene with selected transcripts","success")}}else{if(!e.children)return;if(x&&!_){const t={};for(const n of h)t[n]=e.children[n];const n=Math.min(...Object.values(t).map((e=>e.min))),r=Math.max(...Object.values(t).map((e=>e.max)));if(x.min>n||x.max<r){const e=Math.min(x.min,n),a=Math.max(x.max,r);await I(e,a),await O(t)}else await O(t);o.notify("Successfully copied transcript to destination gene","success")}else{const t={};for(const n of h)t[n]=e.children[n];await N(t),o.notify("Successfully created a new gene with selected transcript","success")}}n()}},"Create"),T.default.createElement(l.Button,{variant:"outlined",type:"submit",onClick:n},"Cancel")),g?T.default.createElement(l.DialogContent,null,T.default.createElement(l.DialogContentText,{color:"error"},g)):null)}function hM(e){if("LinearPileupDisplay"!==e.name)return e;const{stateModel:t}=e,r=t.views((e=>({getFirstRegion:()=>n.getContainingView(e).dynamicBlocks.contentBlocks[0],getAssembly(){const t=e.getFirstRegion(),r=n.getSession(e),{assemblyManager:a}=r,{assemblyName:o}=t,i=a.get(o);if(!i)throw new Error(`Could not find assembly named ${o}`);return i},getRefSeqId(t){const n=e.getFirstRegion(),{refName:r}=n,{refNameAliases:a}=t;if(!a)throw new Error(`Could not find aliases for ${t.name}`);const o=[...Object.entries(a)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t}))),i=o.find((e=>e.name===r))?._id;if(!i)throw new Error(`Could not find refSeqId named ${r}`);return i},getAnnotationFeature(){const t=e.contextMenuFeature,n=e.getAssembly(),r=e.getRefSeqId(n),a=t.get("start"),o=t.get("end"),i=t.get("strand"),s=t.get("name"),l=function(e){const t=/(\d+)([MIDNSHPX=])/g,n=[];let r;for(;null!==(r=t.exec(e));)n.push([r[2],Number.parseInt(r[1],10)]);return n}(t.get("CIGAR"));let c,u=a;const d=[];for(const[e,t]of l)switch(e){case"M":case"=":case"X":void 0===c&&(c=u),u+=t;break;case"N":void 0!==c&&(d.push({start:c,end:u}),c=void 0),u+=t;break;case"D":u+=t;break;case"I":case"S":case"H":case"P":break;default:throw new Error(`Unknown CIGAR operation: ${e}`)}void 0!==c&&d.push({start:c,end:u});const f={_id:Hn().toHexString(),refSeq:r,min:a,max:o,type:"mRNA",strand:i,attributes:{name:[s]}};if(0===d.length)return f;f.children={};for(const e of d){const t={_id:Hn().toHexString(),refSeq:r,min:e.start,max:e.end,type:"exon",strand:i};f.children[t._id]=t}return f}}))).views((e=>{const t=e.contextMenuItems;return{contextMenuItems(){const r=n.getSession(e),a=e.getAssembly(),o=e.getFirstRegion();return e.contextMenuFeature?[...t(),{label:"Create Apollo annotation",icon:Uc,onClick:()=>{r.queueDialog((t=>[pM,{session:r,handleClose:()=>{t()},annotationFeature:e.getAnnotationFeature(a),assembly:a,refSeqId:e.getRefSeqId(a),region:o}]))}}]:t()}}}));return e.stateModel=r,e}function mM(e,t){const n=JSON.parse(JSON.stringify(e)),r=n.subfeatures;return[{start:n.start+1,end:n.end,seq_id:t,source:n.source??null,type:n.type??null,score:n.score??null,strand:n.strand?1===n.strand?"+":"-":null,phase:null!==n.phase||void 0!==n.phase?n.phase:null,attributes:yM(n),derived_features:[],child_features:r?r.map((e=>mM(e,t))):[]}]}function gM(e,t){return Xn.gff3ToAnnotationFeature(mM(e,t))}function yM(e){const t={},n=new Set(["start","end","type","strand","refName","subfeatures","derived_features","phase","source","score"]);for(const[r,a]of Object.entries(e))n.has(r)||(t[r]=Array.isArray(a)?a.map(String):[String(a)]);return t}function vM(e){if("LinearBasicDisplay"!==e.name)return e;const{stateModel:t}=e,r=t.views((e=>({getFirstRegion:()=>n.getContainingView(e).dynamicBlocks.contentBlocks[0],getAssembly(){const t=e.getFirstRegion(),r=n.getSession(e),{assemblyManager:a}=r,{assemblyName:o}=t,i=a.get(o);if(!i)throw new Error(`Could not find assembly named ${o}`);return i},getRefSeqId(t){const n=e.getFirstRegion(),{refName:r}=n,{refNameAliases:a}=t;if(!a)throw new Error(`Could not find aliases for ${t.name}`);const o=[...Object.entries(a)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t}))),i=o.find((e=>e.name===r))?._id;if(!i)throw new Error(`Could not find refSeqId named ${r}`);return i},getAnnotationFeature(t){const n=e.getRefSeqId(t);return gM(e.contextMenuFeature.data,n)}}))).views((e=>{const t=e.contextMenuItems;return{contextMenuItems(){const r=n.getSession(e),a=e.getAssembly(),o=e.getFirstRegion();return e.contextMenuFeature?[...t(),{label:"Create Apollo annotation",icon:Uc,onClick:()=>{r.queueDialog((t=>[pM,{session:r,handleClose:()=>{t()},annotationFeature:e.getAnnotationFeature(a),assembly:a,refSeqId:e.getRefSeqId(a),region:o}]))}}]:t()}}}));return e.stateModel=r,e}var bM=s.createSvgIcon(i.jsx("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess"),_M=s.createSvgIcon(i.jsx("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z"}),"Lock"),wM=s.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error");const xM=h.observer((function({display:e}){const{classes:t}=TP(),{apolloDragging:r,apolloRowHeight:a,lgv:o,session:i,showCheckResults:s}=e,{assemblyManager:c}=i;return s?o.dynamicBlocks.contentBlocks.map((s=>{const u=o.bpPerPx*a,d=c.get(s.assemblyName);return d?NP([...i.apolloDataStore.checkResults.values()].filter((e=>d.isValidRefName(e.refSeq)&&d.getCanonicalRefName(e.refSeq)===s.refName&&n.doesIntersect2(s.start,s.end,e.start,e.end))),u,!0).map((n=>{const o=Math.round(function(e,t,n){const{lgv:r}=e,{bpPerPx:a,offsetPx:o}=r;return n.offsetPx-o+(n.reversed?n.end-t.max:t.min-n.start)/a}(e,n.range,s)),[i]=n.featureIds;if(!i)return null;let c=0;const u=e.getFeatureLayoutPosition(i);return u&&(c=u.layoutRow+u.featureRow),T.default.createElement(l.Tooltip,{key:n._id,title:n.message},T.default.createElement(l.Box,{className:t.box,style:{top:c*a,left:o,height:a,width:a,pointerEvents:r?"none":"auto"}},T.default.createElement(l.Badge,{className:t.badge,badgeContent:n.count,color:"primary",overlap:"circular",anchorOrigin:{vertical:"bottom",horizontal:"right"},invisible:n.count<=1},T.default.createElement(l.Avatar,{className:t.avatar},T.default.createElement(wM,{"data-testid":`ErrorIcon-${n.start}`})))))})):null})):null})),SM=h.observer((function(e){const t=l.useTheme(),{model:r}=e,{loading:a,contextMenuItems:o,cursor:i,featuresHeight:s,isShown:c,onMouseDown:d,onMouseLeave:f,onMouseMove:h,onMouseUp:m,regionCannotBeRendered:g,session:y,setCanvas:v,setCollaboratorCanvas:b,setOverlayCanvas:_,setTheme:w}=r,{classes:x}=TP(),S=n.getContainingView(r);u.useEffect((()=>{w(t)}),[t,w]);const[E,k]=u.useState(),[C,A]=u.useState([]),O=g();return c?T.default.createElement(T.default.Fragment,null,T.default.createElement("div",{className:x.canvasContainer,style:{width:S.dynamicBlocks.totalWidthPx,height:s},onContextMenu:e=>{e.preventDefault(),C.length>0?A([]):(k([e.clientX,e.clientY]),A(o(e)))}},y.isLocked?T.default.createElement("div",{className:x.locked,"data-testid":"lock-icon"},T.default.createElement(_M,null)):null,a?T.default.createElement("div",{className:x.loading},T.default.createElement(l.CircularProgress,{size:"18px"})):null,O?T.default.createElement(l.Alert,{severity:"warning",classes:{message:x.ellipses},slotProps:{root:{className:x.center}}},T.default.createElement(l.Tooltip,{title:O},T.default.createElement("div",null,O))):T.default.createElement(T.default.Fragment,null,T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),b(e)},width:S.dynamicBlocks.totalWidthPx,height:s,className:x.canvas,"data-testid":"collaboratorCanvas"}),T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),v(e)},width:S.dynamicBlocks.totalWidthPx,height:s,className:x.canvas,"data-testid":"canvas"}),T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),_(e)},width:S.dynamicBlocks.totalWidthPx,height:s,onMouseMove:h,onMouseLeave:f,onMouseDown:d,onMouseUp:m,className:x.canvas,style:{cursor:i??"default"},"data-testid":"overlayCanvas"}),T.default.createElement(xM,{display:r}),T.default.createElement(p.Menu,{open:C.length>0,onMenuItemClick:(e,t)=>{t(),A([])},onClose:()=>{A([])},slotProps:{transition:{onExit:()=>{A([])}}},anchorReference:"anchorPosition",anchorPosition:E?{top:E[1],left:E[0]}:void 0,style:{zIndex:t.zIndex.tooltip},menuItems:C})))):null})),EM=h.observer((function({model:e,hrStyle:t={margin:0,top:0,color:"black"},idx:n=0}){const{apolloRowHeight:r,highestRow:a,showFeatureLabels:o}=e,i=o?2:1;return T.default.createElement("div",{style:{position:"absolute",left:0,top:r*i*(a+1)/2+n*i*r,width:"100%"}},T.default.createElement("hr",{style:t}))})),kM=h.observer((function(e,t){const r=l.useTheme(),{model:a}=e,{apolloRowHeight:o,contextMenuItems:i,cursor:s,featuresHeight:c,featureLabelSpacer:d,geneTrackRowNums:f,isShown:h,onMouseDown:m,onMouseLeave:g,onMouseMove:y,onMouseUp:v,regionCannotBeRendered:b,session:_,setCanvas:w,setCollaboratorCanvas:x,setOverlayCanvas:S,setTheme:E,showCheckResults:k}=a,{classes:C}=TP(),A=n.getContainingView(a);u.useEffect((()=>{E(r)}),[r,E]);const[O,N]=u.useState(),[I,R]=u.useState([]),F=b();if(!h)return null;const{assemblyManager:P}=_;return T.default.createElement(T.default.Fragment,null,T.default.createElement("div",{className:C.canvasContainer,style:{width:A.dynamicBlocks.totalWidthPx,height:c},onContextMenu:e=>{e.preventDefault(),I.length>0?R([]):(N([e.clientX,e.clientY]),R(i(e)))}},_.isLocked?T.default.createElement("div",{className:C.locked,"data-testid":"lock-icon"},T.default.createElement(_M,null)):null,F?T.default.createElement(l.Alert,{severity:"warning",classes:{message:C.ellipses},slotProps:{root:{className:C.center}}},T.default.createElement(l.Tooltip,{title:F},T.default.createElement("div",null,F))):T.default.createElement(T.default.Fragment,null,T.default.createElement(EM,{model:a,idx:0}),T.default.createElement(EM,{model:a,hrStyle:{margin:0,top:0,color:"grey",opacity:.4},idx:1}),T.default.createElement(EM,{model:a,idx:2}),T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),x(e)},width:A.dynamicBlocks.totalWidthPx,height:c,className:C.canvas,"data-testid":"collaboratorCanvas"}),T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),w(e)},width:A.dynamicBlocks.totalWidthPx,height:c,className:C.canvas,"data-testid":"canvas"}),T.default.createElement("canvas",{ref:async e=>{await Promise.resolve(),S(e)},width:A.dynamicBlocks.totalWidthPx,height:c,onMouseMove:y,onMouseLeave:g,onMouseDown:m,onMouseUp:v,className:C.canvas,style:{cursor:s??"default"},"data-testid":"overlayCanvas"}),A.displayedRegions.flatMap(((e,r)=>{const a=A.bpPerPx*o,i=P.get(e.assemblyName);return k?NP([..._.apolloDataStore.checkResults.values()].filter((t=>i?.isValidRefName(t.refSeq)&&i.getCanonicalRefName(t.refSeq)===e.refName&&n.doesIntersect2(e.start,e.end,t.start,t.end))),a,!0).map((a=>{const i=(A.bpToPx({refName:e.refName,coord:a.start,regionNumber:r})?.offsetPx??0)-A.offsetPx,[s]=a.featureIds;if(!s||!s.parent?.looksLikeGene)return null;let c;for(const e of s.cdsLocations)for(const t of e){let e=n.getFrame(t.min,t.max,s.strand??1,t.phase);if(e=d(e<0?-1*e+5:e),a.start>=t.min&&a.start<=t.max){c=e-1;break}}return void 0===c&&(c=(1==s.strand?f[0]:f[1])-1),T.default.createElement(l.Tooltip,{key:a._id,title:a.message},T.default.createElement(l.Box,{className:C.box,style:{top:c*o,left:i,height:o,width:o,pointerEvents:t?"none":"auto"}},T.default.createElement(l.Badge,{className:C.badge,badgeContent:a.count,color:"primary",overlap:"circular",anchorOrigin:{vertical:"bottom",horizontal:"right"},invisible:a.count<=1},T.default.createElement(l.Avatar,{className:C.avatar},T.default.createElement(wM,{"data-testid":`ErrorIcon-${a.start}`})))))})):null})),T.default.createElement(p.Menu,{open:I.length>0,onMenuItemClick:(e,t)=>{t(),R([])},onClose:()=>{R([])},slotProps:{transition:{onExit:()=>{R([])}}},anchorReference:"anchorPosition",anchorPosition:O?{top:O[1],left:O[0]}:void 0,style:{zIndex:r.zIndex.tooltip},menuItems:I}))))})),CM=d.makeStyles()((e=>({shading:{background:l.alpha(e.palette.primary.main,.2),overflowX:"hidden"},details:{background:e.palette.background.paper},accordionControl:{height:12,width:"100%","&:hover":{background:e.palette.action.hover},display:"flex",alignItems:"center",justifyContent:"center"},accordionRoot:{background:e.palette.divider},resizeHandle:{width:"100%",height:4,position:"absolute",cursor:"row-resize",zIndex:100},expandIcon:{},title:{userSelect:"none"},alertContainer:{display:"flex",alignItems:"center",justifyContent:"center"}})));function AM(e,t){const{apolloRowHeight:n,selectedFeature:r}=e;if(t.current&&r){const a=e.getFeatureLayoutPosition(r);a&&t.current.scroll({top:(a.layoutRow+a.featureRow)*n,behavior:"smooth"})}}const OM=({onResize:e})=>{const{classes:t}=CM(),n=u.useCallback((t=>{t.stopPropagation(),t.preventDefault(),e(t.movementY)}),[e]);return T.default.createElement("div",{onMouseDown:e=>{e.stopPropagation();const t=new AbortController,{signal:r}=t;function a(){t.abort("makeDisplayComponent")}globalThis.addEventListener("mousemove",n,{signal:r}),globalThis.addEventListener("mouseup",a,{signal:r}),globalThis.addEventListener("mouseleave",a,{signal:r})},onClick:e=>{e.stopPropagation(),e.preventDefault()},className:t.resizeHandle})},TM=h.observer((function({onClick:e,onResize:t,open:n,title:r}){const{classes:a}=CM();return T.default.createElement("div",{className:a.accordionRoot},n&&t?T.default.createElement(OM,{onResize:t}):null,T.default.createElement("div",{className:a.accordionControl,onClick:e},T.default.createElement(n?bM:BN,{className:a.expandIcon}),r?T.default.createElement(l.Typography,{className:a.title,variant:"caption",component:"span"},r):null))})),NM=h.observer((function({model:e,...t}){const r=n.getSession(e),{ontologyManager:a}=r.apolloDataStore,{featureTypeOntology:o}=a,i=o?.dataStore,{classes:s}=CM(),{graphical:c,height:d,isShown:f,selectedFeature:p,table:h,tabularEditor:m,toggleShown:g}=e,y=u.useRef(null);u.useEffect((()=>{AM(e,y)}),[e,p]);const v=t=>{e.setDetailsHeight(e.detailsHeight-t)};if(!i)return T.default.createElement("div",{className:s.alertContainer},T.default.createElement(l.Alert,{severity:"error"},"Could not load feature type ontology."));if(c&&h){const n=m.isShown?e.detailsHeight:0,r=f?d-e.detailsHeight-24:0;return T.default.createElement("div",{style:{height:d}},T.default.createElement(TM,{open:f,title:"Graphical",onClick:g}),T.default.createElement("div",{className:s.shading,ref:y,style:{height:r}},T.default.createElement(SM,{model:e,...t})),T.default.createElement(TM,{title:"Table",open:m.isShown,onClick:m.togglePane,onResize:v}),T.default.createElement("div",{className:s.details,style:{height:n}},T.default.createElement($F,{model:e})))}return c?T.default.createElement("div",{className:s.shading,ref:y,style:{height:d}},T.default.createElement(SM,{model:e,...t})):T.default.createElement("div",{className:s.details,style:{height:d}},T.default.createElement($F,{model:e}))})),IM=h.observer((function({model:e,...t}){const r=n.getSession(e),{ontologyManager:a}=r.apolloDataStore,{featureTypeOntology:o}=a,i=o?.dataStore,{classes:s}=CM(),{detailsHeight:c,graphical:d,height:f,isShown:p,selectedFeature:h,table:m,tabularEditor:g,toggleShown:y}=e,v=u.useRef(null);u.useEffect((()=>{AM(e,v)}),[e,h]);const b=t=>{e.setDetailsHeight(c-t)};if(!i)return T.default.createElement("div",{className:s.alertContainer},T.default.createElement(l.Alert,{severity:"error"},"Could not load feature type ontology."));if(d&&m){const n=g.isShown?c:0,r=p?f-c-24:0;return T.default.createElement("div",{style:{height:f}},T.default.createElement(TM,{open:p,title:"Graphical",onClick:y}),T.default.createElement("div",{className:s.shading,ref:v,style:{height:r}},T.default.createElement(kM,{model:e,...t})),T.default.createElement(TM,{title:"Table",open:g.isShown,onClick:g.togglePane,onResize:b}),T.default.createElement("div",{className:s.details,style:{height:n}},T.default.createElement($F,{model:e})))}return d?T.default.createElement("div",{className:s.shading,ref:v,style:{height:f}},T.default.createElement(kM,{model:e,...t})):T.default.createElement("div",{className:s.details,style:{height:f}},T.default.createElement($F,{model:e}))}));var RM=s.createSvgIcon(i.jsx("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download"),FM=s.createSvgIcon(i.jsx("path",{fillRule:"evenodd",d:"M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M10 17H5v-2h5zm0-4H5v-2h5zm0-4H5V7h5zm4.82 6L12 12.16l1.41-1.41 1.41 1.42L17.99 9l1.42 1.42z"}),"FactCheck"),PM=s.createSvgIcon(i.jsx("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95-1.41 1.41L19 19.41v2.24h-2z"}),"FileOpen"),MM=s.createSvgIcon(i.jsx("path",{d:"m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4z"}),"Logout"),DM=s.createSvgIcon(i.jsx("path",{d:"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7z"}),"Redo"),jM=s.createSvgIcon(i.jsx("path",{d:"m19.07 4.93-1.41 1.41C19.1 7.79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07"}),"TrackChanges"),LM=s.createSvgIcon(i.jsx("path",{d:"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8"}),"Undo"),qM=s.createSvgIcon(i.jsx("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save");const BM=r.types.model("JobsManager",{}).views((e=>({get jobStatusWidget(){const{widgets:t}=n.getSession(e);let r=t.get("JobsList");return r||(r=n.getSession(e).addWidget("JobsListWidget","JobsList")),r}}))).actions((e=>({update(t,n,r){e.jobStatusWidget.updateJobStatusMessage(t,n),r&&e.jobStatusWidget.updateJobProgressPct(t,r)},abortJob(t,r){const a=n.getSession(e);if(n.isSessionModelWithWidgets(a)){a.showWidget(e.jobStatusWidget),e.jobStatusWidget.updateJobStatusMessage(t,r??"Aborted unexpectedly");const n=e.jobStatusWidget.jobs.findIndex((e=>e.name===t));e.jobStatusWidget.addAbortedJob({...e.jobStatusWidget.jobs[n]}),e.jobStatusWidget.removeJob(t),a.notify("Job aborted","info")}},runJob(t){const r=n.getSession(e);n.isSessionModelWithWidgets(r)&&(r.showWidget(e.jobStatusWidget),e.jobStatusWidget.addJob(t))},done(t){const r=n.getSession(e);n.isSessionModelWithWidgets(r)&&(r.showWidget(e.jobStatusWidget),e.jobStatusWidget.removeJob(t.name),e.jobStatusWidget.addFinishedJob({name:t.name,statusMessage:"All operations successful",progressPct:100,cancelCallback:t.cancelCallback}))}})));function UM(e,t){const o=e.evaluateExtensionPoint("Apollo-extendAnnotationFeature",sI.AnnotationFeatureModel),i=function(e){return r.types.model("ClientDataStore",{typeName:r.types.optional(r.types.literal("Client"),"Client"),assemblies:r.types.map(sI.ApolloAssembly),checkResults:r.types.map(sI.CheckResult),ontologyManager:r.types.optional(CT,{})}).views((t=>({get internetAccounts(){return r.getRoot(t).internetAccounts},get pluginConfiguration(){return r.getRoot(t).jbrowse.configuration.ApolloPlugin},getFeature:n=>r.resolveIdentifier(e,t.assemblies,n)}))).actions((e=>({addAssembly(t,n){const r={_id:t,refSeqs:{}};return n&&(r.backendDriverType=n),e.assemblies.put(r)}}))).actions((e=>({addFeature(t,r){const a=n.getSession(e),{assemblyManager:o}=a;let i=e.assemblies.get(t);if(!i){if(!o.get(t))throw new Error(`Could not find assembly "${t}" to add feature "${r._id}"`);i=e.addAssembly(t)}let s=i.refSeqs.get(r.refSeq);if(!s){const e=o.get(t);if(!e)throw new Error(`Could not find assembly "${t}" to add feature "${r._id}"`);const n=e.getCanonicalRefName(r.refSeq);if(!n)throw new Error(`Could not find refSeq "${r.refSeq}" to add feature "${r._id}"`);s=i.addRefSeq(r.refSeq,n)}s.features.put(r)},deleteFeature(t){const n=e.getFeature(t);if(!n)throw new Error(`Could not find feature "${t}" to delete`);const{_id:a,parent:o}=n;o?o.deleteChild(t):r.getParentOfType(n,sI.ApolloRefSeq).deleteFeature(a)},deleteAssembly(t){e.assemblies.delete(t)},addCheckResult(t){e.checkResults.put(t)},addCheckResults(t){for(const n of t)e.checkResults.has(n._id)||e.checkResults.put(n)},deleteCheckResult(t){e.checkResults.delete(t)},clearCheckResults(){e.checkResults.clear()}}))).volatile((e=>({changeManager:new MT(e),collaborationServerDriver:new DT(e),inMemoryFileDriver:new jT(e),desktopFileDriver:n.isElectron?new LT(e):void 0}))).actions((e=>({afterCreate(){r.addDisposer(e,c.autorun((()=>{const{ontologyManager:t,pluginConfiguration:r}=e,o=r.ontologies;for(const r of o||[]){const[o,i,s,l]=[a.readConfObject(r,"name"),a.readConfObject(r,"version"),a.readConfObject(r,"source"),a.readConfObject(r,"textIndexFields")];if(!t.findOntology(o)){const r=n.getSession(e),{jobsManager:a}=r,c=new AbortController,u=`Loading ontology "${o}"`,d={name:u,statusMessage:`Loading ontology "${o}", version "${i}", this may take a while`,progressPct:0,cancelCallback:()=>{c.abort("ClientDataStore"),a.abortJob(d.name)}};t.addOntology(o,i,s,{textIndexing:{indexFields:l},update:(e,t)=>{0!==t?100!==t?a.update(u,e,t):a.done(d):a.runJob(d)}})}}})))}}))).views((e=>({getBackendDriver(t){const r=n.getSession(e),{assemblyManager:o}=r,i=o.get(t);if(!i)return;const{file:s,internetAccountConfigId:l}=a.getConf(i,["sequence","metadata"]);return n.isElectron&&s?e.desktopFileDriver:l?e.collaborationServerDriver:e.inMemoryFileDriver},getInternetAccount(t,r){if(!(t??r))throw new Error("Must provide either assemblyName or internetAccountId");let o=r;if(t&&!o){const{assemblyManager:r}=n.getSession(e),i=r.get(t);if(!i)throw new Error(`No assembly found with name ${t}`);({internetAccountConfigId:o}=a.getConf(i,["sequence","metadata"]))}const{internetAccounts:i}=e,s=i.find((e=>e.internetAccountId===o));if(!s)throw new Error(`No InternetAccount found with config id ${r}`);return s}}))).actions((e=>({loadFeatures:r.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const[r,a]=yield t.getFeatures(n);if(0===r.length)continue;const{assemblyName:o,refName:i}=n;let s=e.assemblies.get(o);s||(s=e.assemblies.put({_id:o,refSeqs:{}}));const[l]=r;let c=s.refSeqs.get(l.refSeq);c||(c=s.refSeqs.put({_id:l.refSeq,name:i,features:{}}));for(const e of r)c.features.has(e._id)||c.features.put(e);e.addCheckResults(a)}})),loadRefSeq:r.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const{refSeq:r,seq:a}=yield t.getSequence(n),{assemblyName:o,end:i,refName:s,start:l}=n;let c=e.assemblies.get(o);c||(c=e.assemblies.put({_id:o,refSeqs:{}}));let u=c.refSeqs.get(r);u||(u=c.refSeqs.put({_id:r,name:s,sequence:[]})),u.addSequence({start:l,stop:i,sequence:a})}}))})))}(o),s=t.props({apolloDataStore:r.types.optional(i,{typeName:"Client"}),apolloSelectedFeature:r.types.safeReference(o),jobsManager:r.types.optional(BM,{}),isLocked:r.types.optional(r.types.boolean,!1),changeInProgress:r.types.optional(r.types.boolean,!1)}).volatile((()=>({apolloHoveredFeature:void 0,abortController:new AbortController}))).extend((()=>{const e=c.observable.array([]);return{views:{get collaborators(){return e}},actions:{addOrUpdateCollaborator(t){const n=e.find((e=>e.id===t.id));n?n.locations=t.locations:e.push(t)}}}})).actions((e=>({apolloSetSelectedFeature(t){e.apolloSelectedFeature=t},apolloSetHoveredFeature(t){e.apolloHoveredFeature=t},addApolloTrackConfig(t,n){const r=`apollo_track_${t.name}`;e.tracks.some((e=>e.trackId===r))||e.addTrackConf({type:"ApolloTrack",trackId:r,name:`Annotations (${a.getConf(t,"displayName")||t.name})`,assemblyNames:[t.name],textSearching:{textSearchAdapter:{type:"ApolloTextSearchAdapter",trackId:r,assemblyNames:[t.name],textSearchAdapterId:`apollo_search_${t.name}`,...n?{baseURL:{uri:n,locationType:"UriLocation"}}:{}}}})},toggleLocked(){e.isLocked=!e.isLocked},setChangeInProgress(t){e.changeInProgress=t},getPluginConfiguration(){const{jbrowse:t}=r.getRoot(e);return t.configuration.ApolloPlugin},broadcastLocations(){const{internetAccounts:t}=r.getRoot(e),n=[];for(const t of e.views){if("LinearGenomeView"!==t.type)return;const r=t;if(r.initialized){const{dynamicBlocks:t}=r;for(const r of t.contentBlocks){const{assemblyName:t,end:a,refName:o,start:i}=r,s=e.apolloDataStore.assemblies.get(t);s&&"CollaborationServerDriver"===s.backendDriverType&&n.push({assemblyName:t,refName:o,start:i,end:a})}}}if(0===n.length){for(const e of t)"baseURL"in e&&e.postUserLocation([]);return}const a=[];for(const e of t)if("baseURL"in e){for(const e of n)a.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(a)}}}))).volatile((e=>({previousSnapshot:r.getSnapshot(e)}))).actions((e=>({afterCreate(){r.applySnapshot(e,{name:e.name,id:e.id});const{internetAccounts:t,jbrowse:n,reloadPluginManagerCallback:o}=r.getRoot(e);r.addDisposer(e,c.autorun((()=>{const n=[];for(const t of e.views){if("LinearGenomeView"!==t.type)return;const r=t;if(r.initialized){const{dynamicBlocks:t}=r;for(const r of t.contentBlocks){const{assemblyName:t,end:a,refName:o,start:i}=r,s=e.apolloDataStore.assemblies.get(t);s&&"CollaborationServerDriver"===s.backendDriverType&&n.push({assemblyName:t,refName:o,start:i,end:a})}}}if(0===n.length){for(const e of t)"baseURL"in e&&e.postUserLocation([]);return}const r=[];for(const e of t)if("baseURL"in e){for(const e of n)r.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(r)}}),{name:"ApolloSessionBroadcastLocations"})),r.addDisposer(e,c.autorun((async i=>{if(a.readConfObject(n.configuration.ApolloPlugin,"hasRole"))return r.applySnapshot(e,e.previousSnapshot),void i.dispose();const{signal:s}=e.abortController;for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const{baseURL:t}=n,r=new URL("jbrowse/config.json",t).href,a=n.getFetcher({locationType:"UriLocation",uri:r});let l,c;try{l=await a(r,{signal:s})}catch(t){e.abortController.signal.aborted||console.error(t);continue}if(l.ok){try{c=await l.json()}catch(e){console.error(e);continue}o(c,e.previousSnapshot),i.dispose()}else{const e=await bf(l,"Failed to fetch assemblies");console.error(e)}}}),{name:"ApolloSessionLoadConfig"}))},beforeDestroy(){e.abortController.abort("destroying session model")}}))).views((e=>{const t=e.getTrackActionMenuItems;return{getTrackActionMenuItems(n){if("ApolloTrack"===n.type||"ReferenceSequenceTrack"===n.type)return t?.(n);const o=a.readConfObject(n,"trackId");return o.endsWith("-sessionTrack")?[...t?.(n)??[],{label:"Save track to Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:a}=r.getRoot(e),i=r.getSnapshot(a);let s;s=Xn.filterJBrowseConfig(i),0===Object.keys(s).length&&(s=void 0);const l={...r.getSnapshot(n),trackId:o.slice(0,o.length-13)};for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new Xn.ImportJBrowseConfigChange({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:s,newJBrowseConfig:{...s,tracks:s?.tracks&&[...s.tracks,l]}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:a}=e;a("Track added","success")}e.deleteTrackConf(n),a.addTrackConf(l)},icon:qM}]:[...t?.(n)??[],{label:"Remove track from Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:a}=r.getRoot(e),i=r.getSnapshot(a);let s;s=Xn.filterJBrowseConfig(i),0===Object.keys(s).length&&(s=void 0);const l=s?.tracks?.filter((e=>e.trackId!==o));for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new Xn.ImportJBrowseConfigChange({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:s,newJBrowseConfig:{...s,tracks:l}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:a}=e;a("Track removed","success")}e.deleteTrackConf(n),a.deleteTrackConf(n)},icon:qM}]}}}));return r.types.snapshotProcessor(s,{postProcessor(e,t){e.apolloSelectedFeature=void 0;const n=Object.fromEntries(Object.entries(e.apolloDataStore.assemblies).filter((([,e])=>"InMemoryFileDriver"===e.backendDriverType)));if(e.apolloDataStore={typeName:"Client",assemblies:n,checkResults:{}},!t)return e;const{apolloDataStore:a}=t,{checkResults:o}=a;for(const[,t]of o){const[n]=t.ids;if(!n)continue;const o=a.assemblies.get(n.assemblyId);o&&"InMemoryFileDriver"===o.backendDriverType&&(e.apolloDataStore.checkResults[t._id]=r.getSnapshot(t))}return e}})}const zM="WorkerGlobalScope"in globalThis;for(const[e,t]of Object.entries(Xn.changes))L.changeRegistry.registerChange(e,t);const GM=new Xn.CDSCheck;L.checkRegistry.registerCheck(GM.name,GM);const HM=new Xn.TranscriptCheck;L.checkRegistry.registerCheck(HM.name,HM),Xn.validationRegistry.registerValidation(new Xn.CoreValidation),Xn.validationRegistry.registerValidation(new Xn.ParentChildValidation),e.default=class extends C.default{name="ApolloPlugin";version="0.3.10";configurationSchema=sM;install(e){!function(e){e.addAdapterType((()=>new P.default({name:"ApolloSequenceAdapter",configSchema:FN,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:RN})))}(e),function(e){e.addAdapterType((()=>new P.default({name:"ApolloRefNameAliasAdapter",configSchema:kN,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:EN})))}(e),function(e){e.addTextSearchAdapterType((()=>new o.TextSearchAdapterType({name:"ApolloTextSearchAdapter",displayName:"Apollo text search adapter",configSchema:qN,AdapterClass:LN,description:"Apollo Text Search adapter"})))}(e),e.addWidgetType((()=>{const e=a.ConfigurationSchema("ApolloFeatureDetailsWidget",{});return new o.WidgetType({name:"ApolloFeatureDetailsWidget",heading:"Apollo feature details",configSchema:e,stateModel:hI,ReactComponent:iI})})),e.addWidgetType((()=>{const e=a.ConfigurationSchema("ApolloTranscriptDetails",{});return new o.WidgetType({name:"ApolloTranscriptDetails",heading:"Apollo transcript details",configSchema:e,stateModel:mI,ReactComponent:AF})})),e.addTrackType((()=>{const t=a.ConfigurationSchema("ApolloTrack",{adapter:""},{baseConfiguration:o.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new o.TrackType({name:"ApolloTrack",configSchema:t,stateModel:o.createBaseTrackModel(e,"ApolloTrack",t)})})),e.addInternetAccountType((()=>new o.InternetAccountType({name:"ApolloInternetAccount",configSchema:zc,stateModel:xN(zc)}))),e.addDisplayType((()=>new o.DisplayType({name:"LinearApolloDisplay",configSchema:OF,stateModel:MP(0,OF),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:NM}))),e.addDisplayType((()=>new o.DisplayType({name:"LinearApolloSixFrameDisplay",configSchema:YP,stateModel:iM(0,YP),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:IM}))),e.addDisplayType((()=>new o.DisplayType({name:"LinearApolloReferenceSequenceDisplay",configSchema:DP,stateModel:WP(0,DP),displayName:"Apollo reference sequence display",trackType:"ReferenceSequenceTrack",viewType:"LinearGenomeView",ReactComponent:JP}))),e.addToExtensionPoint("Core-extendSession",UM.bind(this,e)),e.addToExtensionPoint("Core-extendPluggableElement",(e=>{if("LinearGenomeView"===e.name){const{stateModel:t}=e,r=t.views((e=>{const t=e.rubberBandMenuItems;return{rubberBandMenuItems:()=>[...t(),{label:"Add new feature",icon:Uc,onClick:()=>{const t=n.getSession(e),{leftOffset:r,rightOffset:a}=e,o=e.getSelectedRegions(r,a);t.queueDialog((e=>[UT,{session:t,handleClose:()=>{e()},region:o[0],changeManager:t.apolloDataStore.changeManager}]))}}]}}));e.stateModel=r}return e})),e.addToExtensionPoint("Core-extendPluggableElement",hM),e.addToExtensionPoint("Core-extendPluggableElement",vM),zM||e.addToExtensionPoint("Core-extendWorker",(t=>"on"in t&&t.on?(t.on("apollo",(async n=>{if("object"!=typeof(r=n)||null===r||!("apollo"in r)||!0!==r.apollo)return;var r;const{apollo:a,messageId:o,method:i}=n;switch(i){case"getSequence":{const{region:r}=n,{assemblyName:i}=r,s=e.rootModel?.session?.apolloDataStore;if(!s)break;const l=s.getBackendDriver(i);if(!l)break;const{seq:c}=await l.getSequence(r);t.workers[0].postMessage({apollo:a,messageId:o,sequence:c});break}case"getRegions":{const{assembly:r}=n,i=e.rootModel?.session?.apolloDataStore;if(!i)break;const s=i.getBackendDriver(r);if(!s)break;const l=await s.getRegions(r);t.workers[0].postMessage({apollo:a,messageId:o,regions:l});break}case"getRefNameAliases":{const{assembly:r}=n,i=e.rootModel?.session?.apolloDataStore;if(!i)break;const s=i.getBackendDriver(r);if(!s)break;const l=await s.getRefNameAliases(r);t.workers[0].postMessage({apollo:a,messageId:o,refNameAliases:l});break}}})),t):t))}configure(e){var t;n.isAbstractMenuManager(e.rootModel)&&(e.jexl.addFunction("geneBackgroundColor",(e=>"pseudogene"===e?l.alpha("rgb(148, 203, 236)",.6):"ncRNA_gene"===e?l.alpha("rgb(194, 106, 119)",.6):void 0)),(t=e.rootModel).insertInMenu("Apollo",{label:"Redo",icon:DM,onClick(e){const{apolloDataStore:t}=e;t.changeManager.redoLastChange()}},0),t.insertInMenu("Apollo",{label:"Undo",icon:LM,onClick(e){const{apolloDataStore:t}=e;t.changeManager.undoLastChange()}},0),t.appendToMenu("Apollo",{label:"Download GFF3",icon:RM,onClick:e=>{e.queueDialog((t=>[WT,{session:e,handleClose:()=>{t()}}]))}}),t.appendToMenu("Apollo",{label:"View Change Log",icon:jM,onClick:e=>{e.queueDialog((t=>[oN,{session:e,handleClose:()=>{t()}}]))}}),t.appendToMenu("Apollo",{label:"Open local GFF3 file",icon:PM,onClick:e=>{e.queueDialog((t=>[rN,{session:e,handleClose:()=>{t()},inMemoryFileDriver:e.apolloDataStore.inMemoryFileDriver}]))}}),t.appendToMenu("Apollo",{label:"View check results",icon:FM,onClick:e=>{e.queueDialog((t=>[cN,{session:e,handleClose:()=>{t()}}]))}}),t.appendToMenu("Apollo",{label:"Lock/Unlock session",onClick:e=>{e.toggleLocked()}}),t.appendToMenu("Apollo",{label:"Log out",icon:MM,onClick:e=>{e.queueDialog((t=>[YT,{session:e,handleClose:()=>{t()}}]))}}))}},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jbrowse/core/Plugin"),require("@jbrowse/core/configuration"),require("@jbrowse/core/pluggableElementTypes"),require("@jbrowse/core/util"),require("react/jsx-runtime"),require("@mui/material/utils"),require("@mui/material"),require("@jbrowse/mobx-state-tree"),require("mobx"),require("react"),require("@mui/x-data-grid"),require("@jbrowse/core/ui"),require("mobx-react"),require("@mui/material/styles"),require("@jbrowse/core/util/types/mst"),require("@jbrowse/core/util/io"),require("@jbrowse/core/pluggableElementTypes/AdapterType"),require("@jbrowse/core/data_adapters/BaseAdapter"),require("@jbrowse/core/util/rxjs"),require("@jbrowse/core/util/tracks")):"function"==typeof define&&define.amd?define(["exports","@jbrowse/core/Plugin","@jbrowse/core/configuration","@jbrowse/core/pluggableElementTypes","@jbrowse/core/util","react/jsx-runtime","@mui/material/utils","@mui/material","@jbrowse/mobx-state-tree","mobx","react","@mui/x-data-grid","@jbrowse/core/ui","mobx-react","@mui/material/styles","@jbrowse/core/util/types/mst","@jbrowse/core/util/io","@jbrowse/core/pluggableElementTypes/AdapterType","@jbrowse/core/data_adapters/BaseAdapter","@jbrowse/core/util/rxjs","@jbrowse/core/util/tracks"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBrowsePluginApollo={},e.JBrowseExports["@jbrowse/core/Plugin"],e.JBrowseExports["@jbrowse/core/configuration"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes"],e.JBrowseExports["@jbrowse/core/util"],e.JBrowseExports["react/jsx-runtime"],e.JBrowseExports["@mui/material/utils"],e.JBrowseExports["@mui/material"],e.JBrowseExports["@jbrowse/mobx-state-tree"],e.JBrowseExports.mobx,e.JBrowseExports.react,e.JBrowseExports["@mui/x-data-grid"],e.JBrowseExports["@jbrowse/core/ui"],e.JBrowseExports["mobx-react"],e.JBrowseExports["@mui/material/styles"],e.JBrowseExports["@jbrowse/core/util/types/mst"],e.JBrowseExports["@jbrowse/core/util/io"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes/AdapterType"],e.JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],e.JBrowseExports["@jbrowse/core/util/rxjs"],e.JBrowseExports["@jbrowse/core/util/tracks"])}(this,(function(e,t,n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v){"use strict";function b(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,t}var C=b(u);function I(e,t){this.v=e,this.k=t}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function E(e){var t,n,r,o=2;for("undefined"!=typeof Symbol&&(n=Symbol.asyncIterator,r=Symbol.iterator);o--;){if(n&&null!=(t=e[n]))return t.call(e);if(r&&null!=(t=e[r]))return new x(t.call(e));n="@@asyncIterator",r="@@iterator"}throw new TypeError("Object is not async iterable")}function x(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return x=function(e){this.s=e,this.n=e.next},x.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return void 0===n?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return void 0===n?Promise.reject(e):t(n.apply(this.s,arguments))}},new x(e)}function S(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function B(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){S(i,r,o,a,s,"next",e)}function s(e){S(i,r,o,a,s,"throw",e)}a(void 0)}))}}function k(e){return new I(e,0)}function Q(e,t,n){return t=M(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,L()?Reflect.construct(t,n||[],M(e).constructor):t.apply(e,n))}function N(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function R(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,$(r.key),r)}}function D(e,t,n){return t&&R(e.prototype,t),n&&R(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function F(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Z(e))||t){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function T(e,t,n){return(t=$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(){return j="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=M(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},j.apply(null,arguments)}function M(e){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},M(e)}function O(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&z(e,t)}function L(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(L=function(){return!!e})()}function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function J(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)-1===t.indexOf(n=i[r])&&{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function U(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var c=Object.create((r&&r.prototype instanceof s?r:s).prototype);return G(c,"_invoke",function(n,r,o){var i,s,c,l=0,u=o||[],d=!1,A={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return i=t,s=0,c=e,A.n=n,a}};function f(n,r){for(s=n,c=r,t=0;!d&&l&&!o&&t<u.length;t++){var o,i=u[t],f=A.p,h=i[2];n>3?(o=h===r)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=f&&((o=n<2&&f<i[1])?(s=0,A.v=r,A.n=i[1]):f<h&&(o=n<3||i[0]>r||r>h)&&(i[4]=n,i[5]=r,A.n=h,s=0))}if(o||n>1)return a;throw d=!0,r}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(d&&1===u&&f(u,h),s=u,c=h;(t=s<2?e:c)||!d;){i||(s?s<3?(s>1&&(A.n=-1),f(s,c)):A.n=c:A.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(d=A.n<0)?c:n.call(r,A))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:d}}}(n,o,i),!0),c}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(G(t={},r,(function(){return this})),t),d=l.prototype=s.prototype=Object.create(u);function A(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,G(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return c.prototype=l,G(d,"constructor",l),G(l,"constructor",c),c.displayName="GeneratorFunction",G(l,o,"GeneratorFunction"),G(d),G(d,o,"Generator"),G(d,r,(function(){return this})),G(d,"toString",(function(){return"[object Generator]"})),(U=function(){return{w:i,m:A}})()}function G(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}G=function(e,t,n,r){function i(t,n){G(e,t,(function(e){return this._invoke(t,n,e)}))}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},G(e,t,n,r)}function H(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}}function Y(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(typeof e+" is not iterable")}function z(e,t){return z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},z(e,t)}function K(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],c=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||Z(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function W(e,t,n,r){var o=j(M(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}function V(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Z(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function X(e){return X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},X(e)}function Z(e,t){if(e){if("string"==typeof e)return w(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?w(e,t):void 0}}function ee(e){var t,n;function r(t,n){try{var i=e[t](n),a=i.value,s=a instanceof I;Promise.resolve(s?a.v:a).then((function(n){if(s){var c="return"===t?"return":"next";if(!a.k||n.done)return r(c,n);n=e[c](n).value}o(i.done?"return":"normal",n)}),(function(e){r("throw",e)}))}catch(e){o("throw",e)}}function o(e,o){switch(e){case"return":t.resolve({value:o,done:!0});break;case"throw":t.reject(o);break;default:t.resolve({value:o,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,o){return new Promise((function(i,a){var s={key:e,arg:o,resolve:i,reject:a,next:null};n?n=n.next=s:(t=n=s,r(e,o))}))},"function"!=typeof e.return&&(this.return=void 0)}function te(e){var t="function"==typeof Map?new Map:void 0;return te=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(L())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&z(o,n.prototype),o}(e,arguments,M(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),z(n,e)},te(e)}ee.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},ee.prototype.next=function(e){return this._invoke("next",e)},ee.prototype.throw=function(e){return this._invoke("throw",e)},ee.prototype.return=function(e){return this._invoke("return",e)};var ne=new(function(){return D((function e(){N(this,e),T(this,"changes",new Map)}),[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}])}()),re=function(){return D((function e(t,n){var r;N(this,e),T(this,"logger",void 0),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}),[{key:"execute",value:(e=B(U().m((function e(t){var n,r;return U().w((function(e){for(;;)switch(e.n){case 0:if("Server"!==(n=t.typeName)){e.n=1;break}return r=this.executeOnServer(t),e.a(2,t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 1:if("LocalGFF3"!==n){e.n=2;break}return e.a(2,this.executeOnLocalGFF3(t));case 2:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 3:return e.a(2)}}),e,this)}))),function(t){return e.apply(this,arguments)})}]);var e}(),oe=function(e){function t(){return N(this,t),Q(this,t,arguments)}return O(t,e),D(t,[{key:"notification",get:function(){return""}},{key:"execute",value:(n=B(U().m((function e(n){var r;return U().w((function(e){for(;;)switch(e.n){case 0:if("LocalGFF3"!==(r=n.typeName)&&"Server"!==r){e.n=1;break}return e.a(2,W(t,"execute",this,3)([n]));case 1:if("Client"!==r){e.n=2;break}return e.a(2,this.executeOnClient(n));case 2:throw new Error("no change implementation for backend type '".concat(r,"'"));case 3:return e.a(2)}}),e,this)}))),function(e){return n.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(ne.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]);var n}(re);function ie(e){return function(e){return void 0!==e.executeOnClient}(e)&&void 0!==e.assembly}var ae=new(function(){return D((function e(){N(this,e),T(this,"checks",new Map)}),[{key:"registerCheck",value:function(e,t){if(this.checks.has(e))throw new Error('check "'.concat(e,'" has already been registered'));this.checks.set(e,t)}},{key:"getCheck",value:function(e){var t=this.checks.get(e);if(!t)throw new Error('No check constructor registered for "'.concat(e,'"'));return t}},{key:"getChecks",value:function(){return this.checks}}])}()),se="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ce(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var le="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},ue={env:{}},de=[],Ae=[],fe="undefined"!=typeof Uint8Array?Uint8Array:Array,he=!1;function ge(){he=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)de[t]=e[t],Ae[e.charCodeAt(t)]=t;Ae["-".charCodeAt(0)]=62,Ae["_".charCodeAt(0)]=63}function pe(e,t,n){for(var r,o=[],i=t;i<n;i+=3)o.push(de[(r=(e[i]<<16)+(e[i+1]<<8)+e[i+2])>>18&63]+de[r>>12&63]+de[r>>6&63]+de[63&r]);return o.join("")}function me(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<<s)-1,l=c>>1,u=-7,d=n?o-1:0,A=n?-1:1,f=e[t+d];for(d+=A,i=f&(1<<-u)-1,f>>=-u,u+=s;u>0;i=256*i+e[t+d],d+=A,u-=8);for(a=i&(1<<-u)-1,i>>=-u,u+=r;u>0;a=256*a+e[t+d],d+=A,u-=8);if(0===i)i=1-l;else{if(i===c)return a?NaN:Infinity*(f?-1:1);a+=Math.pow(2,r),i-=l}return(f?-1:1)*a*Math.pow(2,i-r)}function ye(e,t,n,r,o,i){var a,s,c,l=8*i-o-1,u=(1<<l)-1,d=u>>1,A=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:i-1,h=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||Infinity===t?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?A/c:A*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,o),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,o),a=0));o>=8;e[n+f]=255&s,f+=h,s/=256,o-=8);for(a=a<<o|s,l+=o;l>0;e[n+f]=255&a,f+=h,a/=256,l-=8);e[n+f-h]|=128*g}var _e={}.toString,ve=Array.isArray||function(e){return"[object Array]"==_e.call(e)};function be(){return Ie.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Ce(e,t){if(be()<t)throw new RangeError("Invalid typed array length");return Ie.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=Ie.prototype:(null===e&&(e=new Ie(t)),e.length=t),e}function Ie(e,t,n){if(!(Ie.TYPED_ARRAY_SUPPORT||this instanceof Ie))return new Ie(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return xe(this,e)}return we(this,e,t,n)}function we(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),Ie.TYPED_ARRAY_SUPPORT?(e=t).__proto__=Ie.prototype:e=Se(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!Ie.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|Qe(t,n),o=(e=Ce(e,r)).write(t,n);return o!==r&&(e=e.slice(0,o)),e}(e,t,n):function(e,t){if(ke(t)){var n=0|Be(t.length);return 0===(e=Ce(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?Ce(e,0):Se(e,t);if("Buffer"===t.type&&ve(t.data))return Se(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function Ee(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function xe(e,t){if(Ee(t),e=Ce(e,t<0?0:0|Be(t)),!Ie.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function Se(e,t){var n=t.length<0?0:0|Be(t.length);e=Ce(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function Be(e){if(e>=be())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+be().toString(16)+" bytes");return 0|e}function ke(e){return!(null==e||!e._isBuffer)}function Qe(e,t){if(ke(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return it(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return at(e).length;default:if(r)return it(e).length;t=(""+t).toLowerCase(),r=!0}}function Ne(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return Ye(this,t,n);case"utf8":case"utf-8":return Je(this,t,n);case"ascii":return Ge(this,t,n);case"latin1":case"binary":return He(this,t,n);case"base64":return qe(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ze(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function Re(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function De(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=Ie.from(t,r)),ke(t))return 0===t.length?-1:Fe(e,t,n,r,o);if("number"==typeof t)return t&=255,Ie.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):Fe(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function Fe(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var u=-1;for(i=n;i<s;i++)if(l(e,i)===l(t,-1===u?0:i-u)){if(-1===u&&(u=i),i-u+1===c)return u*a}else-1!==u&&(i-=i-u),u=-1}else for(n+c>s&&(n=s-c),i=n;i>=0;i--){for(var d=!0,A=0;A<c;A++)if(l(e,i+A)!==l(t,A)){d=!1;break}if(d)return i}return-1}function Te(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function je(e,t,n,r){return st(it(t,e.length-n),e,n,r)}function Me(e,t,n,r){return st(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function Oe(e,t,n,r){return Me(e,t,n,r)}function Le(e,t,n,r){return st(at(t),e,n,r)}function Pe(e,t,n,r){return st(function(e,t){for(var n,r,o=[],i=0;i<e.length&&!((t-=2)<0);++i)r=(n=e.charCodeAt(i))>>8,o.push(n%256),o.push(r);return o}(t,e.length-n),e,n,r)}function qe(e,t,n){return function(e){var t;he||ge();for(var n=e.length,r=n%3,o="",i=[],a=16383,s=0,c=n-r;s<c;s+=a)i.push(pe(e,s,s+a>c?c:s+a));return 1===r?(o+=de[(t=e[n-1])>>2],o+=de[t<<4&63],o+="=="):2===r&&(o+=de[(t=(e[n-2]<<8)+e[n-1])>>10],o+=de[t>>4&63],o+=de[t<<2&63],o+="="),i.push(o),i.join("")}(0===t&&n===e.length?e:e.slice(t,n))}function Je(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,s,c,l=e[o],u=null,d=l>239?4:l>223?3:l>191?2:1;if(o+d<=n)switch(d){case 1:l<128&&(u=l);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&l)<<6|63&i)>127&&(u=c);break;case 3:a=e[o+2],128==(192&(i=e[o+1]))&&128==(192&a)&&(c=(15&l)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:a=e[o+2],s=e[o+3],128==(192&(i=e[o+1]))&&128==(192&a)&&128==(192&s)&&(c=(15&l)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(r.push((u-=65536)>>>10&1023|55296),u=56320|1023&u),r.push(u),o+=d}return function(e){var t=e.length;if(t<=Ue)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=Ue));return n}(r)}Ie.TYPED_ARRAY_SUPPORT=void 0===le.TYPED_ARRAY_SUPPORT||le.TYPED_ARRAY_SUPPORT,Ie.poolSize=8192,Ie._augment=function(e){return e.__proto__=Ie.prototype,e},Ie.from=function(e,t,n){return we(null,e,t,n)},Ie.TYPED_ARRAY_SUPPORT&&(Ie.prototype.__proto__=Uint8Array.prototype,Ie.__proto__=Uint8Array),Ie.alloc=function(e,t,n){return function(e,t,n,r){return Ee(t),t<=0?Ce(e,t):void 0!==n?"string"==typeof r?Ce(e,t).fill(n,r):Ce(e,t).fill(n):Ce(e,t)}(null,e,t,n)},Ie.allocUnsafe=function(e){return xe(null,e)},Ie.allocUnsafeSlow=function(e){return xe(null,e)},Ie.isBuffer=function(e){return null!=e&&(!!e._isBuffer||ct(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&ct(e.slice(0,0))}(e))},Ie.compare=function(e,t){if(!ke(e)||!ke(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},Ie.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Ie.concat=function(e,t){if(!ve(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return Ie.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=Ie.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var i=e[n];if(!ke(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,o),o+=i.length}return r},Ie.byteLength=Qe,Ie.prototype._isBuffer=!0,Ie.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)Re(this,t,t+1);return this},Ie.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)Re(this,t,t+3),Re(this,t+1,t+2);return this},Ie.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)Re(this,t,t+7),Re(this,t+1,t+6),Re(this,t+2,t+5),Re(this,t+3,t+4);return this},Ie.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?Je(this,0,e):Ne.apply(this,arguments)},Ie.prototype.equals=function(e){if(!ke(e))throw new TypeError("Argument must be a Buffer");return this===e||0===Ie.compare(this,e)},Ie.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},Ie.prototype.compare=function(e,t,n,r,o){if(!ke(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),c=this.slice(r,o),l=e.slice(t,n),u=0;u<s;++u)if(c[u]!==l[u]){i=c[u],a=l[u];break}return i<a?-1:a<i?1:0},Ie.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},Ie.prototype.indexOf=function(e,t,n){return De(this,e,t,n,!0)},Ie.prototype.lastIndexOf=function(e,t,n){return De(this,e,t,n,!1)},Ie.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return Te(this,e,t,n);case"utf8":case"utf-8":return je(this,e,t,n);case"ascii":return Me(this,e,t,n);case"latin1":case"binary":return Oe(this,e,t,n);case"base64":return Le(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Pe(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},Ie.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Ue=4096;function Ge(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function He(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function Ye(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=ot(e[i]);return o}function ze(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function Ke(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function We(e,t,n,r,o,i){if(!ke(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function Ve(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function $e(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function Xe(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function Ze(e,t,n,r,o){return o||Xe(e,0,n,4),ye(e,t,n,r,23,4),n+4}function et(e,t,n,r,o){return o||Xe(e,0,n,8),ye(e,t,n,r,52,8),n+8}Ie.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),Ie.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=Ie.prototype;else{var o=t-e;n=new Ie(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},Ie.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||Ke(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},Ie.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||Ke(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},Ie.prototype.readUInt8=function(e,t){return t||Ke(e,1,this.length),this[e]},Ie.prototype.readUInt16LE=function(e,t){return t||Ke(e,2,this.length),this[e]|this[e+1]<<8},Ie.prototype.readUInt16BE=function(e,t){return t||Ke(e,2,this.length),this[e]<<8|this[e+1]},Ie.prototype.readUInt32LE=function(e,t){return t||Ke(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Ie.prototype.readUInt32BE=function(e,t){return t||Ke(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Ie.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||Ke(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},Ie.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||Ke(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},Ie.prototype.readInt8=function(e,t){return t||Ke(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Ie.prototype.readInt16LE=function(e,t){t||Ke(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Ie.prototype.readInt16BE=function(e,t){t||Ke(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Ie.prototype.readInt32LE=function(e,t){return t||Ke(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Ie.prototype.readInt32BE=function(e,t){return t||Ke(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Ie.prototype.readFloatLE=function(e,t){return t||Ke(e,4,this.length),me(this,e,!0,23,4)},Ie.prototype.readFloatBE=function(e,t){return t||Ke(e,4,this.length),me(this,e,!1,23,4)},Ie.prototype.readDoubleLE=function(e,t){return t||Ke(e,8,this.length),me(this,e,!0,52,8)},Ie.prototype.readDoubleBE=function(e,t){return t||Ke(e,8,this.length),me(this,e,!1,52,8)},Ie.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||We(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},Ie.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||We(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},Ie.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,1,255,0),Ie.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Ie.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,2,65535,0),Ie.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Ve(this,e,t,!0),t+2},Ie.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,2,65535,0),Ie.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Ve(this,e,t,!1),t+2},Ie.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,4,4294967295,0),Ie.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):$e(this,e,t,!0),t+4},Ie.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,4,4294967295,0),Ie.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):$e(this,e,t,!1),t+4},Ie.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);We(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},Ie.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);We(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},Ie.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,1,127,-128),Ie.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Ie.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,2,32767,-32768),Ie.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Ve(this,e,t,!0),t+2},Ie.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,2,32767,-32768),Ie.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Ve(this,e,t,!1),t+2},Ie.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,4,2147483647,-2147483648),Ie.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):$e(this,e,t,!0),t+4},Ie.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||We(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Ie.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):$e(this,e,t,!1),t+4},Ie.prototype.writeFloatLE=function(e,t,n){return Ze(this,e,t,!0,n)},Ie.prototype.writeFloatBE=function(e,t,n){return Ze(this,e,t,!1,n)},Ie.prototype.writeDoubleLE=function(e,t,n){return et(this,e,t,!0,n)},Ie.prototype.writeDoubleBE=function(e,t,n){return et(this,e,t,!1,n)},Ie.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!Ie.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},Ie.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Ie.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=ke(e)?e:it(new Ie(e,r).toString()),s=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%s]}return this};var tt,nt,rt=/[^+\/0-9A-Za-z-_]/g;function ot(e){return e<16?"0"+e.toString(16):e.toString(16)}function it(e,t){var n;t=t||Infinity;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function at(e){return function(e){var t,n,r,o,i,a;he||ge();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a=new fe(3*s/4-(i="="===e[s-2]?2:"="===e[s-1]?1:0)),r=i>0?s-4:s;var c=0;for(t=0,n=0;t<r;t+=4,n+=3)o=Ae[e.charCodeAt(t)]<<18|Ae[e.charCodeAt(t+1)]<<12|Ae[e.charCodeAt(t+2)]<<6|Ae[e.charCodeAt(t+3)],a[c++]=o>>16&255,a[c++]=o>>8&255,a[c++]=255&o;return 2===i?(o=Ae[e.charCodeAt(t)]<<2|Ae[e.charCodeAt(t+1)]>>4,a[c++]=255&o):1===i&&(o=Ae[e.charCodeAt(t)]<<10|Ae[e.charCodeAt(t+1)]<<4|Ae[e.charCodeAt(t+2)]>>2,a[c++]=o>>8&255,a[c++]=255&o),a}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(rt,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function st(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}function ct(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var lt=function(){if(nt)return tt;nt=1;for(var e=Math.floor(16777215*Math.random()),t=l.index=parseInt(16777215*Math.random(),10),n=(void 0===ue||"number"!=typeof ue.pid?Math.floor(1e5*Math.random()):ue.pid)%65535,r=function(){try{return _Buffer}catch(e){try{return Ie}catch(e){return null}}}(),o=function(e){return!(null==e||!e.constructor||"function"!=typeof e.constructor.isBuffer||!e.constructor.isBuffer(e))},i=[],a=0;a<256;a++)i[a]=(a<=15?"0":"")+a.toString(16);var s=new RegExp("^[0-9a-fA-F]{24}$"),c=[];for(a=0;a<10;)c[48+a]=a++;for(;a<16;)c[55+a]=c[87+a]=a++;function l(e){if(!(this instanceof l))return new l(e);if(e&&(e instanceof l||"ObjectID"===e._bsontype))return e;if(this._bsontype="ObjectID",null!=e&&"number"!=typeof e){var t=l.isValid(e);if(!t&&null!=e)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");if(t&&"string"==typeof e&&24===e.length)return l.createFromHexString(e);if(null==e||12!==e.length){if(null!=e&&"function"==typeof e.toHexString)return e;throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters")}this.id=e}else this.id=this.generate(e)}tt=l,l.default=l,l.createFromTime=function(e){return new l(function(e,t){return 8===(t=t.toString(16)).length?t:"00000000".substring(t.length,8)+t}(0,e=parseInt(e,10)%4294967295)+"0000000000000000")},l.createFromHexString=function(e){if(void 0===e||null!=e&&24!==e.length)throw new Error("Argument passed in must be a single String of 12 bytes or a string of 24 hex characters");for(var t="",n=0;n<24;)t+=String.fromCharCode(c[e.charCodeAt(n++)]<<4|c[e.charCodeAt(n++)]);return new l(t)},l.isValid=function(e){return null!=e&&("number"==typeof e||("string"==typeof e?12===e.length||24===e.length&&s.test(e):e instanceof l||(o(e)?l.isValid(e.toString("hex")):!("function"!=typeof e.toHexString||!r||!(e.id instanceof r||"string"==typeof e.id))&&(12===e.id.length||24===e.id.length&&s.test(e.id)))))},l.prototype={constructor:l,toHexString:function(){if(!this.id||!this.id.length)throw new Error("invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is ["+JSON.stringify(this.id)+"]");if(24===this.id.length)return this.id;if(o(this.id))return this.id.toString("hex");for(var e="",t=0;t<this.id.length;t++)e+=i[this.id.charCodeAt(t)];return e},equals:function(e){return e instanceof l?this.toString()===e.toString():"string"==typeof e&&l.isValid(e)&&12===e.length&&o(this.id)?e===this.id.toString("binary"):"string"==typeof e&&l.isValid(e)&&24===e.length?e.toLowerCase()===this.toHexString():"string"==typeof e&&l.isValid(e)&&12===e.length?e===this.id:!(null==e||!(e instanceof l||e.toHexString))&&e.toHexString()===this.toHexString()},getTimestamp:function(){var e,t=new Date;return e=o(this.id)?this.id[3]|this.id[2]<<8|this.id[1]<<16|this.id[0]<<24:this.id.charCodeAt(3)|this.id.charCodeAt(2)<<8|this.id.charCodeAt(1)<<16|this.id.charCodeAt(0)<<24,t.setTime(1e3*Math.floor(e)),t},generate:function(r){"number"!=typeof r&&(r=~~(Date.now()/1e3)),r=parseInt(r,10)%4294967295;var o=t=(t+1)%16777215;return String.fromCharCode(r>>24&255,r>>16&255,r>>8&255,255&r,e>>16&255,e>>8&255,255&e,n>>8&255,255&n,o>>16&255,o>>8&255,255&o)}};var u=Symbol&&Symbol.for&&Symbol.for("nodejs.util.inspect.custom")||"inspect";return l.prototype[u]=function(){return"ObjectID("+this+")"},l.prototype.toJSON=l.prototype.toHexString,l.prototype.toString=l.prototype.toHexString,tt}(),ut=ce(lt),dt=new(function(){return D((function e(){N(this,e),T(this,"changes",new Map)}),[{key:"registerChange",value:function(e,t){if(this.changes.has(e))throw new Error('change type "'.concat(e,'" has already been registered'));this.changes.set(e,t)}},{key:"getChangeType",value:function(e){var t=this.changes.get(e);if(!t)throw new Error('No change constructor registered for "'.concat(e,'"'));return t}}])}()),At=function(){return D((function e(t,n){var r;N(this,e),T(this,"logger",void 0),this.logger=null!==(r=null==n?void 0:n.logger)&&void 0!==r?r:console}),[{key:"execute",value:(e=B(U().m((function e(t){var n,r;return U().w((function(e){for(;;)switch(e.n){case 0:if("Server"!==(n=t.typeName)){e.n=1;break}return r=this.executeOnServer(t),e.a(2,t.pluginsService.evaluateExtensionPoint("".concat(this.typeName,"-transformResults"),r,{operation:this,backend:t}));case 1:if("LocalGFF3"!==n){e.n=2;break}return e.a(2,this.executeOnLocalGFF3(t));case 2:throw new Error("no operation implementation for backend type '".concat(n,"'"));case 3:return e.a(2)}}),e,this)}))),function(t){return e.apply(this,arguments)})}]);var e}(),ft=function(e){function t(){return N(this,t),Q(this,t,arguments)}return O(t,e),D(t,[{key:"notification",get:function(){return""}},{key:"execute",value:(n=B(U().m((function e(n){var r;return U().w((function(e){for(;;)switch(e.n){case 0:if("LocalGFF3"!==(r=n.typeName)&&"Server"!==r){e.n=1;break}return e.a(2,W(t,"execute",this,3)([n]));case 1:if("Client"!==r){e.n=2;break}return e.a(2,this.executeOnClient(n));case 2:throw new Error("no change implementation for backend type '".concat(r,"'"));case 3:return e.a(2)}}),e,this)}))),function(e){return n.apply(this,arguments)})}],[{key:"fromJSON",value:function(e,t){return new(dt.getChangeType(e.typeName))(e,(null==t?void 0:t.logger)&&{logger:t.logger})}}]);var n}(At),ht=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"assembly",void 0),r.assembly=e.assembly,r}return O(t,e),D(t,[{key:"getIndexedIds",value:function(e,t){var n,r=[],o=F(null!=t?t:[]);try{for(o.s();!(n=o.n()).done;){var i=n.value,a=e.attributes,s=a instanceof Map?a.get(i):null==a?void 0:a[i];null!=s&&s[0]&&r.push(s[0])}}catch(e){o.e(e)}finally{o.f()}if(e.children){var c,l=F(e.children instanceof Map?e.children.values():Object.values(e.children));try{for(l.s();!(c=l.n()).done;){var u=this.getIndexedIds(c.value,t);r.push.apply(r,V(u))}}catch(e){l.e(e)}finally{l.f()}}return r}}])}(ft),gt=D((function e(){N(this,e)})),pt=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"changedIds",void 0),r.changedIds=e.changedIds,r}return O(t,e),D(t,[{key:"getFeatureFromId",value:function(e,t){var n,r,o,i,a=this.logger;if(null===(n=a.verbose)||void 0===n||n.call(a,"Entry=".concat(JSON.stringify(e))),e._id.equals(t))return null===(i=a.debug)||void 0===i||i.call(a,"Top level featureId matches in the object ".concat(JSON.stringify(e))),e;null===(r=a.debug)||void 0===r||r.call(a,"FeatureId was not found on top level so lets make recursive call...");var s,c=F(null!==(o=e.children)&&void 0!==o?o:new Map);try{for(c.s();!(s=c.n()).done;){var l=K(s.value,2),u=this.getFeatureFromId(l[1],t);if(u)return u}}catch(e){c.e(e)}finally{c.f()}return null}},{key:"getChildFeatureIds",value:function(e){if(!e.children)return[];var t,n=[],r=F((e.children instanceof Map?e.children:new Map(Object.entries(e.children)))||new Map);try{for(r.s();!(t=r.n()).done;){var o=K(t.value,2);n.push.apply(n,[o[0]].concat(V(this.getChildFeatureIds(o[1]))))}}catch(e){r.e(e)}finally{r.f()}return n}},{key:"generateNewIds",value:function(e,t){var n=(new ut).toHexString();t.push(n);var r={};if(e.children)for(var o=0,i=Object.values(e.children);o<i.length;o++){var a=this.generateNewIds(i[o],t);r[a._id]=a}var s="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return q(q({},e),{},{refSeq:s,children:e.children&&r,_id:n})}},{key:"addChild",value:function(e,t){var n;if(null===(n=e.attributes)||void 0===n||!n._id){var r=e.attributes;r||(r={}),r=q({_id:[e._id.toString()]},JSON.parse(JSON.stringify(r))),e.attributes=r}var o=t._id;e.children||(e.children=new Map),e.children.set(o,q(q({allIds:[]},t),{},{_id:o})),e.children=new Map(V(e.children.entries()).sort((function(e,t){return e[1].min-t[1].min})))}},{key:"findAndDeleteChildFeature",value:function(e,t){if(!e.children)throw new Error("Feature ".concat(e._id.toHexString()," has no children"));var n=e._id,r=e.children,o=r.get(t);if(o){var i=this.getChildFeatureIds(o);return r.delete(t),i}var a,s=F(r);try{for(s.s();!(a=s.n()).done;){var c=K(a.value,2)[1];try{return this.findAndDeleteChildFeature(c,t)}catch(e){}}}catch(e){s.e(e)}finally{s.f()}throw new Error('Feature "'.concat(t,'" not found in ').concat(n.toHexString()))}}])}(ht),mt=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","AddAssemblyAliasesChange"),T(r,"aliases",void 0),r.aliases=e.aliases,r}return O(t,e),D(t,[{key:"executeOnClient",value:function(e){var t=o.getSession(e).assemblyManager.get(this.assembly);if(!t)throw new Error("assembly ".concat(this.assembly," not found"));return t.configuration.aliases.set(this.aliases),Promise.resolve()}},{key:"getInverse",value:function(){throw new Error("Method not implemented.")}},{key:"toJSON",value:function(){return{assembly:this.assembly,typeName:this.typeName,aliases:this.aliases}}},{key:"executeOnServer",value:(n=B(U().m((function e(t){var n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.n){case 0:return r=t.assemblyModel,o=this.assembly,a=this.aliases,null===(n=(i=this.logger).debug)||void 0===n||n.call(i,"Updating assembly aliases for assembly: ".concat(o,", aliases: ").concat(JSON.stringify(a))),e.n=1,r.findById(o);case 1:if(s=e.v){e.n=2;break}throw new Error("Assembly with ID ".concat(o," not found"));case 2:return s.aliases=a,e.n=3,s.save();case 3:return e.a(2)}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:function(e){throw new Error("Method not implemented.")}},{key:"notification",get:function(){return"Assembly aliases have been added."}}]);var n}(ht);function yt(e,t,n){var r;return("apollo_feature_container"===e.type?Object.values(null!==(r=e.children)&&void 0!==r?r:{}):[e]).map((function(e){var n,r,o,i,a,s=JSON.parse(JSON.stringify(null!==(n=e.attributes)&&void 0!==n?n:{})),c=[],l=null!==(r=null===(o=e.attributes)||void 0===o||null===(o=o.gff_source)||void 0===o?void 0:o[0])&&void 0!==r?r:null;delete s.gff_source,t&&(s.Parent=[t]),s.gff_id?(s.ID=s.gff_id,delete s.gff_id):e.children&&(s.ID=[e._id]),s.gff_name&&(s.Name=s.gff_name,delete s.gff_name),s.gff_alias&&(s.Alias=s.gff_alias,delete s.gff_alias),s.gff_target&&(s.Target=s.gff_target,delete s.gff_target),s.gff_gap&&(s.Gap=s.gff_gap,delete s.gff_gap),s.gff_derives_from&&(s.Derives_from=s.gff_derives_from,delete s.gff_derives_from),s.gff_note&&(s.Note=s.gff_note,delete s.gff_note),s.gff_dbxref&&(s.Dbxref=s.gff_dbxref,delete s.gff_dbxref),s.gff_is_circular&&(s.Is_circular=s.gff_is_circular,delete s.gff_is_circular),s.gff_ontology_term&&(c.push.apply(c,V(s.gff_ontology_term)),delete s.gff_ontology_term),s["Gene Ontology"]&&(c.push.apply(c,V(s["Gene Ontology"])),delete s["Gene Ontology"]),s["Sequence Ontology"]&&(c.push.apply(c,V(s["Sequence Ontology"])),delete s["Sequence Ontology"]),c.length>0&&(s.Ontology_term=c);var u=null===(i=e.attributes)||void 0===i?void 0:i.gff_score,d=null;return u&&u.length>0&&(u[0]&&(d=Number(u[0]),Number.isNaN(d)&&(d=null)),delete s.gff_score),{start:Number(e.min)+1,end:Number(e.max),seq_id:e.refSeq,source:l,type:e.type,score:d,strand:e.strand?1===e.strand?"+":"-":null,phase:null,attributes:Object.keys(s).length>0?s:null,derived_features:[],child_features:_t(e,null===(a=s.ID)||void 0===a?void 0:a[0])}}))}function _t(e,t,n){if(!e.children)return[];if("mRNA"===e.type){for(var r=[],i=function(e){var t=[];try{t=function(e){if("mRNA"!==e.type)throw new Error('Only features of type "mRNA" or equivalent can calculate CDS locations');if(!e.children)throw new Error("no CDS or exons in mRNA");var t=Object.values(e.children),n=t.filter((function(e){return"CDS"===e.type}));if(0===n.length)throw new Error("no CDS in mRNA");var r,i=[],a=F(n);try{var s=function(){for(var n=r.value,a=n.max,s=n.min,c=[],l=!1,u=[],d=0,A=t;d<A.length;d++){var f=A[d];"exon"===f.type&&u.push({min:f.min,max:f.max})}u.sort((function(e,t){return e.min-t.min}));for(var h=0,g=u;h<g.length;h++){var p=g[h],m=c.at(-1);m&&c.push({min:m.max,max:p.min,type:"intron"});var y,_=K(o.intersection2(s,a,p.min,p.max),2),v=_[0],b=_[1];y=l?1===e.strand?"threePrimeUTR":"fivePrimeUTR":1===e.strand?"fivePrimeUTR":"threePrimeUTR",void 0!==v&&void 0!==b?(l=!0,v===p.min&&b===p.max?c.push({min:v,max:b,phase:0,type:"CDS"}):v===p.min?c.push({min:v,max:b,phase:0,type:"CDS"},{min:b,max:p.max,type:y}):b===p.max?c.push({min:p.min,max:v,type:y},{min:v,max:b,phase:0,type:"CDS"}):c.push({min:p.min,max:v,type:y},{min:v,max:b,phase:0,type:"CDS"},{min:b,max:p.max,type:"fivePrimeUTR"===y?"threePrimeUTR":"fivePrimeUTR"})):c.push({min:p.min,max:p.max,type:y})}c.sort((function(e,t){return e.min-t.min})),-1===e.strand&&c.reverse();var C=0,I=c.map((function(e){if("CDS"!==e.type)return e;var t=C;return C=(3-(e.max-e.min-t+3)%3)%3,q(q({},e),{},{phase:t})}));i.push(I)};for(a.s();!(r=a.n()).done;)s()}catch(e){a.e(e)}finally{a.f()}return i}(e)}catch(e){return[]}return t.map((function(e){return e.filter((function(e){return"CDS"===e.type}))}))}(e),a=0,s=0,c=Object.values(e.children);s<c.length;s++){var l=c[s],u=yt(l,t);if("CDS"===l.type){var d,A=F(i[a]);try{for(A.s();!(d=A.n()).done;){var f=d.value,h=JSON.parse(JSON.stringify(u));if(1!=h.length)throw new Error("Unexpected CDS: ".concat(JSON.stringify(h,null,2)));h[0].start=f.min+1,h[0].end=f.max,h[0].phase=f.phase.toString(),h[0].type=f.type,r.push(h)}}catch(e){A.e(e)}finally{A.f()}a++}else r.push(u)}return r}return Object.values(e.children).map((function(e){return yt(e,t)}))}var vt={ID:"gff_id",Name:"gff_name",Alias:"gff_alias",Parent:"gff_parent",Target:"gff_target",Gap:"gff_gap",Derives_from:"gff_derives_from",Note:"gff_note",Dbxref:"gff_dbxref",Ontology_term:"gff_ontology_term",Is_circular:"gff_is_circular"},bt={gff_id:"ID",gff_name:"Name",gff_alias:"Alias",gff_parent:"Parent",gff_target:"Target",gff_gap:"Gap",gff_derives_from:"Derives_from",gff_note:"Note",gff_dbxref:"Dbxref",gff_ontology_term:"Ontology_term",gff_is_circular:"Is_circular"},Ct={gff_score:"score",gff_source:"source"};function It(e,t){var n=K(e,1)[0],r=n.end,i=n.seq_id,a=n.start,s=n.strand;if(!i)throw new Error("feature does not have seq_id: ".concat(JSON.stringify(n)));if(null===a)throw new Error("feature does not have start: ".concat(JSON.stringify(n)));if(null===r)throw new Error("feature does not have end: ".concat(JSON.stringify(n)));var c=function(e){var t=e.map((function(e){return e.start})).filter((function(e){return null!==e})),n=e.map((function(e){return e.end})).filter((function(e){return null!==e}));return[Math.min.apply(Math,V(t))-1,Math.max.apply(Math,V(n))]}(e),l=K(c,2),u=l[0],d=l[1],A=function(e,t,n){var r={},i=e.filter((function(e){return e.child_features.length>0}));if(i.length>1)throw new Error("Features with multiple locations may not have children");if(e.length>1&&"CDS"!==e[0].type){var a,s=F(e);try{for(s.s();!(a=s.n()).done;){var c=It([a.value],t);r[c._id]=c}}catch(e){s.e(e)}finally{s.f()}return r}if(0!==i.length){var l,u=[],d=[],A=[],f=F(K(i,1)[0].child_features);try{for(f.s();!(l=f.n()).done;){var h=l.value,g=K(h,1)[0];if("exon"===g.type&&d.push(h),"three_prime_UTR"!==g.type&&"five_prime_UTR"!==g.type||A.push(h),"three_prime_UTR"!==g.type&&"five_prime_UTR"!==g.type&&"intron"!==g.type&&"start_codon"!==g.type&&"stop_codon"!==g.type)if("CDS"===g.type)u.push(h);else{var p=It(h,t);r[p._id]=p}}}catch(e){f.e(e)}finally{f.f()}if(u.length>0){var m,y=function(e,t){var n=e.map((function(e){return e.length}));if(n.some((function(e){return e>1})))return e.map((function(e){return It(e,t)}));var r=e.map((function(e){return e[0]})).filter((function(e){return null!==e.start&&null!==e.end})).sort((function(e,t){return e.start-t.start}));if(!r.some((function(e,t){var n=r.at(t+1);return!!n&&o.doesIntersect2(e.start,e.end,n.start,n.end)})))return[It(r,t)];var i,a=e.map((function(e){return e[0]})),s=[],c=F(a);try{var l=function(){var e=i.value,t=s.at(-1);if(!t)return s.push([e]),1;t.some((function(t){return o.doesIntersect2(t.start,t.end,e.start,e.end)}))?s.push([e]):t.push(e)};for(c.s();!(i=c.n()).done;)l()}catch(e){c.e(e)}finally{c.f()}return s.map((function(e){return It(e,t)}))}(u,t),_=F(y);try{for(_.s();!(m=_.n()).done;){var v=m.value;r[v._id]=v}}catch(e){_.e(e)}finally{_.f()}var b,C=function(e,t,n,r,o){var i,a=[],s=F(n);try{for(s.s();!(i=s.n()).done;){var c,l=F(i.value);try{for(l.s();!(c=l.n()).done;){var u=c.value;if(!u.start||!u.end)throw new Error("UTR has undefined start and/or end\n: ".concat(JSON.stringify(u,null,2)));var d=void 0;"+"===u.strand?d=1:"-"===u.strand&&(d=-1),a.push({_id:(new ut).toHexString(),refSeq:r,type:"exon",min:u.start-1,max:u.end,strand:d})}}catch(e){l.e(e)}finally{l.f()}}}catch(e){s.e(e)}finally{s.f()}a.sort((function(e,t){return e.min-t.min}));var A,f=[],h=F(e);try{for(h.s();!(A=h.n()).done;){var g=A.value;g.sort((function(e,t){if(!e.start||!t.start)throw new Error("CDS has undefined start");return e.start-t.start}));for(var p=0;p<g.length;p++){var m,y=g[p],_=!1,v=F(t);try{for(v.s();!(m=v.n()).done;){var b=m.value;if(1!=b.length)throw new Error("Unexpected number of exons");var C=K(b,1)[0];if(C.start&&C.end&&y.start&&y.end&&C.start<=y.start&&C.end>=y.end){_=!0;break}}}catch(e){v.e(e)}finally{v.f()}if(!_){if(!y.start||!y.end)throw new Error("CDS has undefined start and/or end: ".concat(JSON.stringify(y,null,2)));var I=void 0;"+"===y.strand?I=1:"-"===y.strand&&(I=-1);var w={_id:(new ut).toHexString(),refSeq:r,type:"exon",min:y.start-1,max:y.end,strand:I};if(0===p){var E,x=F(a);try{for(x.s();!(E=x.n()).done;){var S=E.value;if(S.max>w.min)break;S.max===w.min?w.min=S.min:f.push(S)}}catch(e){x.e(e)}finally{x.f()}}if(p===g.length-1){var B,k=F(a);try{for(k.s();!(B=k.n()).done;){var Q=B.value;Q.min<w.max||(Q.min===w.max?w.max=Q.max:f.push(Q))}}catch(e){k.e(e)}finally{k.f()}}f.push(w)}}}}catch(e){h.e(e)}finally{h.f()}var N=function(e){if(0===e.length)return[];e.sort((function(e,t){return e.min-t.min}));var t=[];t.push(e[0]);for(var n=1;n<e.length;n++){var r=t.at(-1),o=e[n];r&&o.min<=r.max?r.max=Math.max(r.max,o.max):t.push(o)}return t}(f);return N}(u,d,A,y[0].refSeq),I=F(C);try{for(I.s();!(b=I.n()).done;){var w=b.value;r[w._id]=w}}catch(e){I.e(e)}finally{I.f()}}return Object.keys(r).length>0?r:void 0}}(e,t),f=function(e){var t={},n=e.map((function(e){return e.score})).filter((function(e){return null!==e})),r=e.map((function(e){return e.source})).filter((function(e){return null!==e})),o=e.map((function(e){return e.attributes})).filter((function(e){return null!==e}));if(n.length>0){var i=K(n,1)[0];n.length>1&&(i=n.reduce((function(e,t){return e+t}),0)/n.length),t.gff_score=[String(i)]}if(r.length>0){var a=K(r,1)[0];r.length>1&&(a=V(new Set(r)).join(",")),t.gff_source=[a]}if(o.length>0){var s,c=F(o);try{for(c.s();!(s=c.n()).done;)for(var l=0,u=Object.entries(s.value);l<u.length;l++){var d=K(u[l],2),A=d[0],f=d[1];if("Parent"!==A){var h=A in vt?vt[A]:A,g=t[h];if(g){var p=new Set([].concat(V(g),V(f)));t[h]=V(p)}else t[h]=f}}}catch(e){c.e(e)}finally{c.f()}}if(Object.keys(t).length>0)return t}(e),h={_id:(new ut).toHexString(),refSeq:null!=t?t:i,type:wt(e),min:u,max:d};if(s)if("+"===s)h.strand=1;else{if("-"!==s)throw new Error('Unknown strand: "'.concat(s,'"'));h.strand=-1}return A&&(h.children=A),f&&(h.attributes=f),h}function wt(e){var t=K(e,1)[0];if(1===e.length||"CDS"===t.type){var n=t.type;if(!n)throw new Error("feature does not have type: ".concat(JSON.stringify(t)));return n}return"apollo_feature_container"}var Et=function(e){function t(){var e;N(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return T(e=Q(this,t,[].concat(r)),"refSeqCache",new Map),e}return O(t,e),D(t,[{key:"addRefSeqIntoDb",value:(o=B(U().m((function e(t,n,r){var o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,x,S,B,k,Q,N,R,D,T,j,M,O,L,P,J,G,H,Y,z,W,V,$,X,Z;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:i=this.logger,a=r.filesService,s=r.refSeqChunkModel,c=r.refSeqModel,l=r.user,d=(u=ue.env.CHUNK_SIZE)&&Number(u),A=0,f=0,g="text/x-gff3"!==t.type,p=a.getFileStream(t),m="",y="",_=!0,v=!1,null===(o=i.debug)||void 0===o||o.call(i,"starting sequence stream"),b=0,C=new TextDecoder,I=!1,w=!1,e.p=1,S=E(p);case 2:return e.n=3,S.next();case 3:if(!(I=!(B=e.v).done)){e.n=21;break}k=C.decode(B.value),_=!k.endsWith("\n"),Q=k.split(/\r?\n/),y&&(Q[0]="".concat(y).concat(Q[0]),y=""),_&&(y=null!==(N=Q.pop())&&void 0!==N?N:""),R=F(Q),e.p=4,R.s();case 5:if((D=R.n()).done){e.n=17;break}if(T=D.value,++b%1e6==0&&(null===(j=i.debug)||void 0===j||j.call(i,"Processed ".concat(b," lines"))),g){e.n=6;break}return"##FASTA"===T.trim()&&(g=!0),e.a(3,16);case 6:if(!(M=/^>\s*(\S+)\s*(.*)/.exec(T))){e.n=12;break}if(v=!0,null===(O=i.debug)||void 0===O||O.call(i,'Reference sequence information line "'.concat(M[0],'"')),""===m){e.n=9;break}if(h){e.n=7;break}throw new Error("No refSeq document found");case 7:return f+=m.length,e.n=8,s.create([{refSeq:h._id,n:A,sequence:m,user:l,status:-1}]);case 8:m="";case 9:return e.n=10,null===(L=h)||void 0===L?void 0:L.updateOne({length:f});case 10:return f=0,A=0,J=M[1].trim(),G=M[2]?M[2].trim():"",e.n=11,c.create([q(q({name:J,description:G,assembly:n,length:0},d?{chunkSize:d}:null),{},{user:l,status:-1})]);case 11:H=K(e.v,1),Y=H[0],null===(P=i.debug)||void 0===P||P.call(i,'Added new refSeq "'.concat(J,'", desc "').concat(G,'", docId "').concat(Y._id,'"')),h=Y,e.n=16;break;case 12:if(!/\S/.test(T)){e.n=16;break}if(h){e.n=13;break}throw new Error("No refSeq document found");case 13:W=(z=h)._id,V=z.chunkSize,m+=T.replaceAll(/\s/g,"");case 14:if(!(m.length>=V)){e.n=16;break}return $=m.slice(0,V),f+=$.length,e.n=15,s.create([{refSeq:W,n:A,sequence:$,user:l,status:-1}]);case 15:A++,m=m.slice(V),e.n=14;break;case 16:e.n=5;break;case 17:e.n=19;break;case 18:e.p=18,R.e(e.v);case 19:return e.p=19,R.f(),e.f(19);case 20:I=!1,e.n=2;break;case 21:e.n=23;break;case 22:e.p=22,w=!0,x=e.v;case 23:if(e.p=23,e.p=24,!I||null==S.return){e.n=25;break}return e.n=25,S.return();case 25:if(e.p=25,!w){e.n=26;break}throw x;case 26:return e.f(25);case 27:return e.f(23);case 28:if(v){e.n=29;break}throw new Error("No reference sequences found in file");case 29:if(!m&&!_){e.n=32;break}if(h){e.n=30;break}throw new Error("No refSeq document found");case 30:return _&&(m+=y),f+=m.length,null===(X=i.verbose)||void 0===X||X.call(i,'*** Add the very last chunk to ref seq ("'.concat(h._id,'", index ').concat(A," and total length for ref seq is ").concat(f,'): "').concat(m,'"')),null===(Z=i.debug)||void 0===Z||Z.call(i,"Creating refSeq chunk number ".concat(A,' of "').concat(h._id,'"')),e.n=31,s.create([{refSeq:h._id,n:A,sequence:m,user:l,status:-1}]);case 31:return e.n=32,h.updateOne({length:f});case 32:return e.a(2)}}),e,this,[[24,,25,27],[4,18,19,20],[1,22,23,28]])}))),function(e,t,n){return o.apply(this,arguments)})},{key:"removeExistingFeatures",value:(r=B(U().m((function e(t){var n,r,o,i,a,s,c,l;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=t.featureModel,o=t.refSeqModel,i=this.assembly,null===(n=(a=this.logger).debug)||void 0===n||n.call(a,"Removing existing features for assembly = ".concat(i)),e.n=1,o.find({assembly:i}).exec();case 1:s=F(e.v),e.p=2,s.s();case 3:if((c=s.n()).done){e.n=5;break}return l=c.value,e.n=4,r.deleteMany({refSeq:l._id});case 4:e.n=3;break;case 5:e.n=7;break;case 6:e.p=6,s.e(e.v);case 7:return e.p=7,s.f(),e.f(7);case 8:return e.a(2)}}),e,this,[[2,6,7,8]])}))),function(e){return r.apply(this,arguments)})},{key:"addFeatureIntoDb",value:(n=B(U().m((function e(t,n){var r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_;return U().w((function(e){for(;;)switch(e.n){case 0:if((r=ue.env.INDEXED_IDS)&&(o=r.split(",")),i=this.assembly,a=this.refSeqCache,s=n.featureModel,c=n.refSeqModel,l=n.user,u=K(t,1),d=u[0].seq_id){e.n=1;break}throw new Error("Valid seq_id not found in feature ".concat(JSON.stringify(t)));case 1:if(A=a.get(d)){e.n=6;break}return e.n=2,c.findOne({assembly:i,name:d}).exec();case 2:if(y=f=e.v,!(m=null!==y)){e.n=3;break}m=void 0!==f;case 3:if(!m){e.n=4;break}_=f,e.n=5;break;case 4:_=void 0;case 5:(A=_)&&a.set(d,A);case 6:if(A){e.n=7;break}throw new Error('RefSeq was not found by assembly "'.concat(i,'" and seq_id "').concat(d,'" not found'));case 7:return h=It(t,A._id),g=this.getAllIds(h),p=this.getIndexedIds(h,o),e.n=8,s.create([q(q({allIds:g,indexedIds:p},h),{},{user:l,status:-1})]);case 8:return e.a(2)}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"getAllIds",value:function(e){var t=[e._id];if(e.children)for(var n=0,r=Object.values(e.children);n<r.length;n++){var o=this.getAllIds(r[n]);t.push.apply(t,V(o))}return t}}]);var n,r,o}(ht),xt=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","AddAssemblyAndFeaturesFromFileChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=K(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileIds:r.fileIds}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,x,S,B,k,Q,N,R,D,T,j,M,O,L;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.assemblyModel,r=t.checkModel,o=t.fileModel,i=t.filesService,a=t.user,s=this.assembly,c=this.logger,l=F(this.changes),e.p=1,l.s();case 2:if((u=l.n()).done){e.n=28;break}if(g=(h=u.value).assemblyName,p=h.parseOptions,m=h.fileIds.fa,ue.env.FILE_UPLOAD_FOLDER){e.n=3;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 3:return e.n=4,o.findById(m).exec();case 4:if(y=e.v){e.n=5;break}throw new Error('File "'.concat(m,'" not found in Mongo'));case 5:return null===(d=c.debug)||void 0===d||d.call(c,'FileId "'.concat(m,'", checksum "').concat(y.checksum,'"')),e.n=6,n.findOne({name:g}).exec();case 6:if(!e.v){e.n=7;break}throw new Error('Assembly "'.concat(g,'" already exists'));case 7:return e.n=8,r.find({isDefault:!0}).exec();case 8:return _=e.v.map((function(e){return e._id.toHexString()})),e.n=9,n.create([{_id:s,name:g,user:a,status:-1,fileId:m,checks:_}]);case 9:return v=K(e.v,1),b=v[0],null===(A=c.debug)||void 0===A||A.call(c,'Added new assembly "'.concat(g,'", docId "').concat(b._id.toHexString(),'"')),null===(f=c.debug)||void 0===f||f.call(c,'File type: "'.concat(y.type,'"')),e.n=10,this.addRefSeqIntoDb(y,b._id.toString(),t);case 10:w=void 0===(I=(C=null!=p?p:{}).bufferSize)?1e4:I,S=void 0===(x=C.strict)||x,B=i.parseGFF3(i.getFileStream(y),{bufferSize:w}),k=0,Q=0,N=!1,R=!1,e.p=11,T=E(B);case 12:return e.n=13,T.next();case 13:if(!(N=!(j=e.v).done)){e.n=20;break}return M=j.value,e.p=14,e.n=15,this.addFeatureIntoDb(M,t);case 15:e.n=18;break;case 16:if(e.p=16,L=e.v,!S&&0!==k){e.n=17;break}throw L;case 17:Q<=99&&(c.warn("Error parsing feature"),c.warn(L),99===Q&&c.warn("Reached 100 parsing errors, omitting further warnings from log")),Q++;case 18:++k%1e3==0&&(null===(O=c.debug)||void 0===O||O.call(c,"Processed ".concat(k," features")));case 19:N=!1,e.n=12;break;case 20:e.n=22;break;case 21:e.p=21,R=!0,D=e.v;case 22:if(e.p=22,e.p=23,!N||null==T.return){e.n=24;break}return e.n=24,T.return();case 24:if(e.p=24,!R){e.n=25;break}throw D;case 25:return e.f(24);case 26:return e.f(22);case 27:e.n=2;break;case 28:e.n=30;break;case 29:e.p=29,l.e(e.v);case 30:return e.p=30,l.f(),e.f(30);case 31:return e.a(2)}}),e,this,[[23,,24,26],[14,16],[11,21,22,27],[1,29,30,31]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]);var n,r,o}(Et),St=["encoding"];function Bt(e){return("object"===X(e)&&null!==e&&"message"in e?e.message:"".concat(e)).replace(/\.$/,"")}var kt=function(){return D((function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};N(this,e),this.baseOverrides={},this.url=t;var r=n.fetch||globalThis.fetch.bind(globalThis);n.overrides&&(this.baseOverrides=n.overrides),this.fetchImplementation=r}),[{key:"fetch",value:(o=B(U().m((function e(t,n){var r,o,i;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=function(e){return new Error("".concat(Bt(e)," fetching ").concat(t),{cause:e})},e.p=1,e.n=2,this.fetchImplementation(t,n);case 2:o=e.v,e.n=9;break;case 3:if(e.p=3,!"".concat(i=e.v).includes("Failed to fetch")){e.n=8;break}return console.warn("generic-filehandle: refetching ".concat(t," to attempt to work around chrome CORS header caching bug")),e.p=4,e.n=5,this.fetchImplementation(t,q(q({},n),{},{cache:"reload"}));case 5:o=e.v,e.n=7;break;case 6:throw e.p=6,r(e.v);case 7:e.n=9;break;case 8:throw r(i);case 9:return e.a(2,o)}}),e,this,[[4,6],[1,3]])}))),function(e,t){return o.apply(this,arguments)})},{key:"read",value:(r=B(U().m((function e(t,n){var r,o,i,a,s,c,l,u,d,A,f,h,g=arguments;return U().w((function(e){for(;;)switch(e.n){case 0:if(r=g.length>2&&void 0!==g[2]?g[2]:{},0!==t){e.n=1;break}return e.a(2,new Uint8Array(0));case 1:return i=void 0===(o=r.headers)?{}:o,a=r.signal,c=void 0===(s=r.overrides)?{}:s,t<Infinity?i.range="bytes=".concat(n,"-").concat(n+t-1):Infinity===t&&0!==n&&(i.range="bytes=".concat(n,"-")),e.n=2,this.fetch(this.url,q(q(q({},this.baseOverrides),c),{},{headers:q(q(q({},this.baseOverrides.headers),c.headers),i),method:"GET",redirect:"follow",mode:"cors",signal:a}));case 2:if((l=e.v).ok){e.n=3;break}throw new Error("HTTP ".concat(l.status," fetching ").concat(this.url));case 3:if((200!==l.status||0!==n)&&206!==l.status){e.n=8;break}if(u=l.headers.get("content-range"),null!=(d=/\/(\d+)$/.exec(u||""))&&d[1]&&(this._stat={size:parseInt(d[1],10)}),!l.bytes){e.n=5;break}return e.n=4,l.bytes();case 4:f=e.v,e.n=7;break;case 5:return h=Uint8Array,e.n=6,l.arrayBuffer();case 6:f=new h(e.v);case 7:return e.a(2,(A=f).byteLength<=t?A:A.subarray(0,t));case 8:throw new Error(200===l.status?"".concat(this.url," fetch returned status 200, expected 206"):"HTTP ".concat(l.status," fetching ").concat(this.url));case 9:return e.a(2)}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"readFile",value:(n=B(U().m((function e(){var t,n,r,o,i,a,s,c,l,u,d,A,f,h=arguments;return U().w((function(e){for(;;)switch(e.n){case 0:return"string"==typeof(t=h.length>0&&void 0!==h[0]?h[0]:{})?(n=t,r={}):(n=t.encoding,o=J(t,St),r=o),s=void 0===(a=(i=r).headers)?{}:a,c=i.signal,u=void 0===(l=i.overrides)?{}:l,e.n=1,this.fetch(this.url,q(q(q({},this.baseOverrides),u),{},{headers:q(q(q({},this.baseOverrides.headers),u.headers),s),method:"GET",redirect:"follow",mode:"cors",signal:c}));case 1:if((d=e.v).ok){e.n=2;break}throw new Error("HTTP ".concat(d.status," fetching ").concat(this.url));case 2:if("utf8"!==n){e.n=3;break}return e.a(2,d.text());case 3:if(!n){e.n=4;break}throw new Error("unsupported encoding: ".concat(n));case 4:if(!d.bytes){e.n=5;break}A=d.bytes(),e.n=7;break;case 5:return f=Uint8Array,e.n=6,d.arrayBuffer();case 6:A=new f(e.v);case 7:return e.a(2,A);case 8:return e.a(2)}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"stat",value:(t=B(U().m((function e(){return U().w((function(e){for(;;)switch(e.n){case 0:if(this._stat){e.n=2;break}return e.n=1,this.read(10,0);case 1:if(this._stat){e.n=2;break}throw new Error("unable to determine size of file at ".concat(this.url));case 2:return e.a(2,this._stat)}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"close",value:(e=B(U().m((function e(){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(){return e.apply(this,arguments)})}]);var e,t,n,r,o}(),Qt=function(){return D((function e(){N(this,e)}),[{key:"readFile",value:function(){throw new Error("unimplemented")}},{key:"read",value:function(){throw new Error("unimplemented")}},{key:"close",value:function(){throw new Error("unimplemented")}}])}();function Nt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return 4294967296*((e[t+4]|e[t+5]<<8|e[t+6]<<16|e[t+7]<<24)>>>0)+((e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0)}function Rt(e,t,n){var r=t[1];return r<=e&&(n?n[1]:Infinity)>e?0:r<e?-1:1}var Dt=function(){return D((function e(t){var n=t.filehandle;N(this,e),T(this,"filehandle",void 0),T(this,"index",void 0),this.filehandle=n}),[{key:"_getIndex",value:function(){var e=this;return this.index||(this.index=this._readIndex().catch((function(t){throw e.index=void 0,t}))),this.index}},{key:"_readIndex",value:(n=B(U().m((function e(){var t,n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this.filehandle.read(8,0);case 1:if(t=Nt(e.v)){e.n=2;break}return e.a(2,[[0,0]]);case 2:if((n=new Array(t+1))[0]=[0,0],!((r=16*t)>Number.MAX_SAFE_INTEGER)){e.n=3;break}throw new TypeError("integer overflow");case 3:return e.n=4,this.filehandle.read(r,8);case 4:for(o=e.v,i=0;i<t;i+=1)a=Nt(o,16*i),s=Nt(o,16*i+8),n[i+1]=[a,s];return e.a(2,n)}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getLastBlock",value:(t=B(U().m((function e(){return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this._getIndex();case 1:return e.a(2,e.v.at(-1))}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"getRelevantBlocksForRead",value:(e=B(U().m((function e(t,n){var r,o,i,a,s,c,l,u;return U().w((function(e){for(;;)switch(e.n){case 0:if(r=n+t,0!==t){e.n=1;break}return e.a(2,[]);case 1:return e.n=2,this._getIndex();case 2:for(i=[],a=0,s=(o=e.v).length-1,c=Math.floor(o.length/2),l=Rt(n,o[c],o[c+1]);0!==l;)l>0?s=c-1:l<0&&(a=c+1),c=Math.ceil((s-a)/2)+a,l=Rt(n,o[c],o[c+1]);i.push(o[c]),u=c+1;case 3:if(!(u<o.length)){e.n=5;break}if(i.push(o[u]),!(o[u][1]>=r)){e.n=4;break}return e.a(3,5);case 4:u+=1,e.n=3;break;case 5:return i[i.length-1][1]<r&&i.push([]),e.a(2,i)}}),e,this)}))),function(t,n){return e.apply(this,arguments)})}]);var e,t,n}();function Ft(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Tt(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)}var jt={arraySet:function(e,t,n,r,o){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),o);else for(var i=0;i<r;i++)e[o+i]=t[n+i]},flattenChunks:function(e){var t,n,r,o,i,a;for(r=0,t=0,n=e.length;t<n;t++)r+=e[t].length;for(a=new Uint8Array(r),o=0,t=0,n=e.length;t<n;t++)a.set(i=e[t],o),o+=i.length;return a},Buf8:function(e){return new Uint8Array(e)},Buf16:function(e){return new Uint16Array(e)},Buf32:function(e){return new Int32Array(e)}},Mt={arraySet:function(e,t,n,r,o){for(var i=0;i<r;i++)e[o+i]=t[n+i]},flattenChunks:function(e){return[].concat.apply([],e)},Buf8:function(e){return new Array(e)},Buf16:function(e){return new Array(e)},Buf32:function(e){return new Array(e)}},Ot=function(){var e="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;return Ot=function(){return e},e},Lt=function(e,t,n,r,o){return(Lt=Ot()?jt.arraySet:Mt.arraySet)(e,t,n,r,o)},Pt=function(e){return(Pt=Ot()?jt.flattenChunks:Mt.flattenChunks)(e)},qt=function(e){return(qt=Ot()?jt.Buf8:Mt.Buf8)(e)},Jt=function(e){return(Jt=Ot()?jt.Buf16:Mt.Buf16)(e)},Ut=function(e){return(Ut=Ot()?jt.Buf32:Mt.Buf32)(e)},Gt=function(){var e=!0;try{String.fromCharCode.apply(null,[0])}catch(t){e=!1}return Gt=function(){return e},e},Ht=function(){var e=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){e=!1}return Ht=function(){return e},e},Yt=function(e){for(var t=qt(256),n=0;n<256;n++)t[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;return t[254]=t[254]=1,Yt=function(e){return t[e]},t[e]};function zt(e){var t,n,r,o,i,a=e.length,s=0;for(o=0;o<a;o++)55296==(64512&(n=e.charCodeAt(o)))&&o+1<a&&56320==(64512&(r=e.charCodeAt(o+1)))&&(n=65536+(n-55296<<10)+(r-56320),o++),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),i=0,o=0;i<s;o++)55296==(64512&(n=e.charCodeAt(o)))&&o+1<a&&56320==(64512&(r=e.charCodeAt(o+1)))&&(n=65536+(n-55296<<10)+(r-56320),o++),n<128?t[i++]=n:n<2048?(t[i++]=192|n>>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t}function Kt(e,t){var n,r,o,i,a=t||e.length,s=new Array(2*a);for(r=0,n=0;n<a;)if((o=e[n++])<128)s[r++]=o;else if((i=Yt(o))>4)s[r++]=65533,n+=i-1;else{for(o&=2===i?31:3===i?15:7;i>1&&n<a;)o=o<<6|63&e[n++],i--;i>1?s[r++]=65533:o<65536?s[r++]=o:(s[r++]=55296|(o-=65536)>>10&1023,s[r++]=56320|1023&o)}return function(e,t){if(t<65534&&(e.subarray&&Ht()||!e.subarray&&Gt()))return String.fromCharCode.apply(null,Tt(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}(s,r)}function Wt(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+Yt(e[n])>t?n:t}function Vt(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function $t(e,t,n,r){for(var o=65535&e|0,i=e>>>16&65535|0,a=0;0!==n;){n-=a=n>2e3?2e3:n;do{i=i+(o=o+t[r++]|0)|0}while(--a);o%=65521,i%=65521}return o|i<<16|0}var Xt=function(){var e=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();return Xt=function(){return e},e};function Zt(e,t,n,r){var o=Xt(),i=r+n;e^=-1;for(var a=r;a<i;a++)e=e>>>8^o[255&(e^t[a])];return-1^e}var en=30,tn=12;function nn(e,t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x;E=e.input,o=(r=e.next_in)+(e.avail_in-5),x=e.output,a=(i=e.next_out)-(t-e.avail_out),s=i+(e.avail_out-257),c=(n=e.state).dmax,l=n.wsize,u=n.whave,d=n.wnext,A=n.window,f=n.hold,h=n.bits,g=n.lencode,p=n.distcode,m=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{h<15&&(f+=E[r++]<<h,f+=E[r++]<<(h+=8),h+=8),_=g[f&m];t:for(;;){if(f>>>=v=_>>>24,h-=v,0==(v=_>>>16&255))x[i++]=65535&_;else{if(!(16&v)){if(0==(64&v)){_=g[(65535&_)+(f&(1<<v)-1)];continue t}if(32&v){n.mode=tn;break e}e.msg="invalid literal/length code",n.mode=en;break e}b=65535&_,(v&=15)&&(h<v&&(f+=E[r++]<<h,h+=8),b+=f&(1<<v)-1,f>>>=v,h-=v),h<15&&(f+=E[r++]<<h,f+=E[r++]<<(h+=8),h+=8),_=p[f&y];n:for(;;){if(f>>>=v=_>>>24,h-=v,!(16&(v=_>>>16&255))){if(0==(64&v)){_=p[(65535&_)+(f&(1<<v)-1)];continue n}e.msg="invalid distance code",n.mode=en;break e}if(C=65535&_,h<(v&=15)&&(f+=E[r++]<<h,(h+=8)<v&&(f+=E[r++]<<h,h+=8)),(C+=f&(1<<v)-1)>c){e.msg="invalid distance too far back",n.mode=en;break e}if(f>>>=v,h-=v,C>(v=i-a)){if((v=C-v)>u&&n.sane){e.msg="invalid distance too far back",n.mode=en;break e}if(I=0,w=A,0===d){if(I+=l-v,v<b){b-=v;do{x[i++]=A[I++]}while(--v);I=i-C,w=x}}else if(d<v){if(I+=l+d-v,(v-=d)<b){b-=v;do{x[i++]=A[I++]}while(--v);if(I=0,d<b){b-=v=d;do{x[i++]=A[I++]}while(--v);I=i-C,w=x}}}else if(I+=d-v,v<b){b-=v;do{x[i++]=A[I++]}while(--v);I=i-C,w=x}for(;b>2;)x[i++]=w[I++],x[i++]=w[I++],x[i++]=w[I++],b-=3;b&&(x[i++]=w[I++],b>1&&(x[i++]=w[I++]))}else{I=i-C;do{x[i++]=x[I++],x[i++]=x[I++],x[i++]=x[I++],b-=3}while(b>2);b&&(x[i++]=x[I++],b>1&&(x[i++]=x[I++]))}break}}break}}while(r<o&&i<s);f&=(1<<(h-=(b=h>>3)<<3))-1,e.next_in=r-=b,e.next_out=i,e.avail_in=r<o?o-r+5:5-(r-o),e.avail_out=i<s?s-i+257:257-(i-s),n.hold=f,n.bits=h}var rn=15,on=852,an=592,sn=0,cn=1,ln=2,un=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],dn=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],An=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],fn=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function hn(e,t,n,r,o,i,a,s){var c,l,u,d,A,f,h,g,p,m=s.bits,y=0,_=0,v=0,b=0,C=0,I=0,w=0,E=0,x=0,S=0,B=null,k=0,Q=Jt(rn+1),N=Jt(rn+1),R=null,D=0;for(y=0;y<=rn;y++)Q[y]=0;for(_=0;_<r;_++)Q[t[n+_]]++;for(C=m,b=rn;b>=1&&0===Q[b];b--);if(C>b&&(C=b),0===b)return o[i++]=20971520,o[i++]=20971520,s.bits=1,0;for(v=1;v<b&&0===Q[v];v++);for(C<v&&(C=v),E=1,y=1;y<=rn;y++)if(E<<=1,(E-=Q[y])<0)return-1;if(E>0&&(e===sn||1!==b))return-1;for(N[1]=0,y=1;y<rn;y++)N[y+1]=N[y]+Q[y];for(_=0;_<r;_++)0!==t[n+_]&&(a[N[t[n+_]]++]=_);if(e===sn?(B=R=a,f=19):e===cn?(B=un,k-=257,R=dn,D-=257,f=256):(B=An,R=fn,f=-1),S=0,_=0,y=v,A=i,I=C,w=0,u=-1,d=(x=1<<C)-1,e===cn&&x>on||e===ln&&x>an)return 1;for(;;){h=y-w,a[_]<f?(g=0,p=a[_]):a[_]>f?(g=R[D+a[_]],p=B[k+a[_]]):(g=96,p=0),c=1<<y-w,v=l=1<<I;do{o[A+(S>>w)+(l-=c)]=h<<24|g<<16|p|0}while(0!==l);for(c=1<<y-1;S&c;)c>>=1;if(0!==c?(S&=c-1,S+=c):S=0,_++,0==--Q[y]){if(y===b)break;y=t[n+a[_]]}if(y>C&&(S&d)!==u){for(0===w&&(w=C),A+=v,E=1<<(I=y-w);I+w<b&&!((E-=Q[I+w])<=0);)I++,E<<=1;if(x+=1<<I,e===cn&&x>on||e===ln&&x>an)return 1;o[u=S&d]=C<<24|I<<16|A-i|0}}return 0!==S&&(o[A+S]=y-w<<24|64<<16|0),s.bits=C,0}var gn=1,pn=2,mn=-2,yn=12,_n=30;function vn(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function bn(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=Jt(320),this.work=Jt(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Cn,In,wn=!0;function En(e){if(wn){var t;for(Cn=Ut(512),In=Ut(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(hn(gn,e.lens,0,288,Cn,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;hn(pn,e.lens,0,32,In,0,e.work,{bits:5}),wn=!1}e.lencode=Cn,e.lenbits=9,e.distcode=In,e.distbits=5}function xn(e,t,n,r){var o,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=qt(i.wsize)),r>=i.wsize?(Lt(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):((o=i.wsize-i.wnext)>r&&(o=r),Lt(i.window,t,n-r,o,i.wnext),(r-=o)?(Lt(i.window,t,n-r,r,0),i.wnext=r,i.whave=i.wsize):(i.wnext+=o,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=o))),0}function Sn(e,t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x=0,S=qt(4),B=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return mn;(n=e.state).mode===yn&&(n.mode=13),a=e.next_out,o=e.output,i=e.next_in,r=e.input,l=n.hold,u=n.bits,d=s=e.avail_in,A=c=e.avail_out,I=0;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;u<16;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(2&n.wrap&&35615===l){n.check=0,S[0]=255&l,S[1]=l>>>8&255,n.check=Zt(n.check,S,2,0),l=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",n.mode=_n;break}if(8!=(15&l)){e.msg="unknown compression method",n.mode=_n;break}if(u-=4,C=8+(15&(l>>>=4)),0===n.wbits)n.wbits=C;else if(C>n.wbits){e.msg="invalid window size",n.mode=_n;break}n.dmax=1<<C,e.adler=n.check=1,n.mode=512&l?10:yn,l=0,u=0;break;case 2:for(;u<16;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(n.flags=l,8!=(255&n.flags)){e.msg="unknown compression method",n.mode=_n;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=_n;break}n.head&&(n.head.text=l>>8&1),512&n.flags&&(S[0]=255&l,S[1]=l>>>8&255,n.check=Zt(n.check,S,2,0)),l=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}n.head&&(n.head.time=l),512&n.flags&&(S[0]=255&l,S[1]=l>>>8&255,S[2]=l>>>16&255,S[3]=l>>>24&255,n.check=Zt(n.check,S,4,0)),l=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}n.head&&(n.head.xflags=255&l,n.head.os=l>>8),512&n.flags&&(S[0]=255&l,S[1]=l>>>8&255,n.check=Zt(n.check,S,2,0)),l=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),512&n.flags&&(S[0]=255&l,S[1]=l>>>8&255,n.check=Zt(n.check,S,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((f=n.length)>s&&(f=s),f&&(n.head&&(C=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),Lt(n.head.extra,r,i,f,C)),512&n.flags&&(n.check=Zt(n.check,r,f,i)),s-=f,i+=f,n.length-=f),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break e;f=0;do{C=r[i+f++],n.head&&C&&n.length<65536&&(n.head.name+=String.fromCharCode(C))}while(C&&f<s);if(512&n.flags&&(n.check=Zt(n.check,r,f,i)),s-=f,i+=f,C)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===s)break e;f=0;do{C=r[i+f++],n.head&&C&&n.length<65536&&(n.head.comment+=String.fromCharCode(C))}while(C&&f<s);if(512&n.flags&&(n.check=Zt(n.check,r,f,i)),s-=f,i+=f,C)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;u<16;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(l!==(65535&n.check)){e.msg="header crc mismatch",n.mode=_n;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=yn;break;case 10:for(;u<32;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}e.adler=n.check=vn(l),l=0,u=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=a,e.avail_out=c,e.next_in=i,e.avail_in=s,n.hold=l,n.bits=u,2;e.adler=n.check=1,n.mode=yn;case yn:case 13:if(n.last){l>>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}switch(n.last=1&l,u-=1,3&(l>>>=1)){case 0:n.mode=14;break;case 1:En(n),n.mode=20;break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=_n}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if((65535&l)!=(l>>>16^65535)){e.msg="invalid stored block lengths",n.mode=_n;break}n.length=65535&l,l=0,u=0,n.mode=15;case 15:n.mode=16;case 16:if(f=n.length){if(f>s&&(f=s),f>c&&(f=c),0===f)break e;Lt(o,r,i,f,a),s-=f,i+=f,c-=f,a+=f,n.length-=f;break}n.mode=yn;break;case 17:for(;u<14;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(n.nlen=257+(31&l),u-=5,n.ndist=1+(31&(l>>>=5)),u-=5,n.ncode=4+(15&(l>>>=5)),l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=_n;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;u<3;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}n.lens[B[n.have++]]=7&l,l>>>=3,u-=3}for(;n.have<19;)n.lens[B[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,I=hn(0,n.lens,0,19,n.lencode,0,n.work,w={bits:n.lenbits}),n.lenbits=w.bits,I){e.msg="invalid code lengths set",n.mode=_n;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;m=(x=n.lencode[l&(1<<n.lenbits)-1])>>>16&255,y=65535&x,!((p=x>>>24)<=u);){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(y<16)l>>>=p,u-=p,n.lens[n.have++]=y;else{if(16===y){for(E=p+2;u<E;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(l>>>=p,u-=p,0===n.have){e.msg="invalid bit length repeat",n.mode=_n;break}C=n.lens[n.have-1],f=3+(3&l),l>>>=2,u-=2}else if(17===y){for(E=p+3;u<E;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}u-=p,C=0,f=3+(7&(l>>>=p)),l>>>=3,u-=3}else{for(E=p+7;u<E;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}u-=p,C=0,f=11+(127&(l>>>=p)),l>>>=7,u-=7}if(n.have+f>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=_n;break}for(;f--;)n.lens[n.have++]=C}}if(n.mode===_n)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=_n;break}if(n.lenbits=9,I=hn(gn,n.lens,0,n.nlen,n.lencode,0,n.work,w={bits:n.lenbits}),n.lenbits=w.bits,I){e.msg="invalid literal/lengths set",n.mode=_n;break}if(n.distbits=6,n.distcode=n.distdyn,I=hn(pn,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,w={bits:n.distbits}),n.distbits=w.bits,I){e.msg="invalid distances set",n.mode=_n;break}n.mode=20;case 20:n.mode=21;case 21:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=i,e.avail_in=s,n.hold=l,n.bits=u,nn(e,A),a=e.next_out,o=e.output,c=e.avail_out,i=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===yn&&(n.back=-1);break}for(n.back=0;m=(x=n.lencode[l&(1<<n.lenbits)-1])>>>16&255,y=65535&x,!((p=x>>>24)<=u);){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(m&&0==(240&m)){for(_=p,v=m,b=y;m=(x=n.lencode[b+((l&(1<<_+v)-1)>>_)])>>>16&255,y=65535&x,!(_+(p=x>>>24)<=u);){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}l>>>=_,u-=_,n.back+=_}if(l>>>=p,u-=p,n.back+=p,n.length=y,0===m){n.mode=26;break}if(32&m){n.back=-1,n.mode=yn;break}if(64&m){e.msg="invalid literal/length code",n.mode=_n;break}n.extra=15&m,n.mode=22;case 22:if(n.extra){for(E=n.extra;u<E;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;m=(x=n.distcode[l&(1<<n.distbits)-1])>>>16&255,y=65535&x,!((p=x>>>24)<=u);){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(0==(240&m)){for(_=p,v=m,b=y;m=(x=n.distcode[b+((l&(1<<_+v)-1)>>_)])>>>16&255,y=65535&x,!(_+(p=x>>>24)<=u);){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}l>>>=_,u-=_,n.back+=_}if(l>>>=p,u-=p,n.back+=p,64&m){e.msg="invalid distance code",n.mode=_n;break}n.offset=y,n.extra=15&m,n.mode=24;case 24:if(n.extra){for(E=n.extra;u<E;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=_n;break}n.mode=25;case 25:if(0===c)break e;if(n.offset>(f=A-c)){if((f=n.offset-f)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=_n;break}h=f>n.wnext?n.wsize-(f-=n.wnext):n.wnext-f,f>n.length&&(f=n.length),g=n.window}else g=o,h=a-n.offset,f=n.length;f>c&&(f=c),c-=f,n.length-=f;do{o[a++]=g[h++]}while(--f);0===n.length&&(n.mode=21);break;case 26:if(0===c)break e;o[a++]=n.length,c--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break e;s--,l|=r[i++]<<u,u+=8}if(e.total_out+=A-=c,n.total+=A,A&&(e.adler=n.check=n.flags?Zt(n.check,o,A,a-A):$t(n.check,o,A,a-A)),A=c,(n.flags?l:vn(l))!==n.check){e.msg="incorrect data check",n.mode=_n;break}l=0,u=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;u<32;){if(0===s)break e;s--,l+=r[i++]<<u,u+=8}if(l!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=_n;break}l=0,u=0}n.mode=29;case 29:I=1;break e;case _n:I=-3;break e;case 31:return-4;default:return mn}return e.next_out=a,e.avail_out=c,e.next_in=i,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||A!==e.avail_out&&n.mode<_n&&(n.mode<27||4!==t))&&xn(e,e.output,e.next_out,A-e.avail_out),A-=e.avail_out,e.total_in+=d-=e.avail_in,e.total_out+=A,n.total+=A,n.wrap&&A&&(e.adler=n.check=n.flags?Zt(n.check,o,A,e.next_out-A):$t(n.check,o,A,e.next_out-A)),e.data_type=n.bits+(n.last?64:0)+(n.mode===yn?128:0)+(20===n.mode||15===n.mode?256:0),(0===d&&0===A||4===t)&&0===I&&(I=-5),I}function Bn(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?mn:11===n.mode&&$t(1,t,r,0)!==n.check?-3:xn(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,0):mn}var kn={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function Qn(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var Nn=Object.prototype.toString,Rn=function(){return D((function e(t){if(N(this,e),!(this instanceof e))return new e(t);this.options=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!==X(n))throw new TypeError(n+"must be non-object");for(var r in n)Ft(n,r)&&(e[r]=n[r])}}return e}({chunkSize:16384,windowBits:0,to:""},t||{});var n=this.options;n.raw&&n.windowBits>=0&&n.windowBits<16&&(n.windowBits=-n.windowBits,0===n.windowBits&&(n.windowBits=-15)),!(n.windowBits>=0&&n.windowBits<16)||t&&t.windowBits||(n.windowBits+=32),n.windowBits>15&&n.windowBits<48&&0==(15&n.windowBits)&&(n.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Qn,this.strm.avail_out=0;var r,o,i,a=function(e,t){var n,r;return e?(r=new bn,e.state=r,r.window=null,n=function(e,t){var n,r;return e&&e.state?(t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?mn:(null!==(r=e.state).window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,function(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,function(e){var t;return e&&e.state?(e.total_in=e.total_out=(t=e.state).total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=Ut(852),t.distcode=t.distdyn=Ut(592),t.sane=1,t.back=-1,0):mn}(e)):mn}(e))):mn}(e,t),0!==n&&(e.state=null),n):mn}(this.strm,n.windowBits);if(0!==a)throw new Error(kn[a]);if(this.header=new Vt,o=this.header,(r=this.strm)&&r.state&&(0==(2&(i=r.state).wrap)||(i.head=o,o.done=!1)),n.dictionary&&("string"==typeof n.dictionary?n.dictionary=zt(n.dictionary):"[object ArrayBuffer]"===Nn.call(n.dictionary)&&(n.dictionary=new Uint8Array(n.dictionary)),n.raw&&0!==(a=Bn(this.strm,n.dictionary))))throw new Error(kn[a])}),[{key:"push",value:function(e,t){var n,r,o,i,a,s,c=this.strm,l=this.options.chunkSize,u=this.options.dictionary,d=!1;if(this.ended)return!1;r=t===~~t?t:!0===t?4:0,c.input="string"==typeof e?function(e){for(var t=new Uint8Array(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t}(e):"[object ArrayBuffer]"===Nn.call(e)?new Uint8Array(e):e,c.next_in=0,c.avail_in=c.input.length;do{if(0===c.avail_out&&(c.output=qt(l),c.next_out=0,c.avail_out=l),2===(n=Sn(c,0))&&u&&(s="string"==typeof u?zt(u):"[object ArrayBuffer]"===Nn.call(u)?new Uint8Array(u):u,n=Bn(this.strm,s)),-5===n&&!0===d&&(n=0,d=!1),1!==n&&0!==n)return this.onEnd(n),this.ended=!0,!1;c.next_out&&(0!==c.avail_out&&1!==n&&(0!==c.avail_in||4!==r&&2!==r)||("string"===this.options.to?(o=Wt(c.output,c.next_out),i=c.next_out-o,a=Kt(c.output,o),c.next_out=i,c.avail_out=l-i,i&&Lt(c.output,c.output,o,i,0),this.onData(a)):this.onData(Tt(c.output,c.next_out)))),0===c.avail_in&&0===c.avail_out&&(d=!0)}while((c.avail_in>0||0===c.avail_out)&&1!==n);return 1===n&&(r=4),4===r?(n=function(e){if(!e||!e.state)return mn;var t=e.state;return t.window&&(t.window=null),e.state=null,0}(this.strm),this.onEnd(n),this.ended=!0,0===n):2!==r||(this.onEnd(0),c.avail_out=0,!0)}},{key:"onData",value:function(e){this.chunks.push(e)}},{key:"onEnd",value:function(e){0===e&&(this.result="string"===this.options.to?this.chunks.join(""):Pt(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg}}])}(),Dn=function(e,t){var n=new Rn(t);if(n.push(e,!0),n.err)throw n.msg||kn[n.err];return n.result},Fn={d:function(e,t){for(var n in t)Fn.o(t,n)&&!Fn.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},Tn={};Fn.r(Tn),Fn.d(Tn,{ChunkSliceResult:function(){return Mn},DecompressResult:function(){return On},__wbg_Error_8c4e43fe74559d73:function(){return Jn},__wbg___wbindgen_throw_be289d5034ed271b:function(){return Un},__wbg_set_wasm:function(){return lr},decompress_all:function(){return Ln},decompress_block:function(){return Pn},decompress_chunk_slice:function(){return qn}});var jn="data:application/wasm;base64,AGFzbQEAAAABfRFgAABgAAF/YAF/AGABfwF/YAJ/fwBgAn9/AX9gA39/fwBgA39/fwF/YAR/f39/AGAEf39/fwF/YAV/f39/fwBgBX9/f39/AX9gBn9/f39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCH9/f39/f39/AX9gB39/f3x8fHwAAm4CES4vYmd6Zl93YXNtX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfYmUyODlkNTAzNGVkMjcxYgAEES4vYmd6Zl93YXNtX2JnLmpzHF9fd2JnX0Vycm9yXzhjNGU0M2ZlNzQ1NTlkNzMABQNragMODxAFCQ0CBwcGCAQFBAQFBQQGBAQEBAQQBgQKBAwMCgIGBQIMAgQGBgYGBgYDBAMHAgUDBAgGCwAFAgIGBAIFBAMBBQQCAgQEBAQFBg0CBwkFBAYEAwUFAAQABQQEBQQFAgICBAEFAAAEBQFwARgYBQMBABEGCQF/AUGAgMAACwfaAg4GbWVtb3J5AgAbX193YmdfY2h1bmtzbGljZXJlc3VsdF9mcmVlABgbX193YmdfZGVjb21wcmVzc3Jlc3VsdF9mcmVlAB0XY2h1bmtzbGljZXJlc3VsdF9idWZmZXIAGRtjaHVua3NsaWNlcmVzdWx0X2Nwb3NpdGlvbnMAFhtjaHVua3NsaWNlcmVzdWx0X2Rwb3NpdGlvbnMAFw5kZWNvbXByZXNzX2FsbAAcEGRlY29tcHJlc3NfYmxvY2sAFRZkZWNvbXByZXNzX2NodW5rX3NsaWNlABsbZGVjb21wcmVzc3Jlc3VsdF9ieXRlc19yZWFkADIVZGVjb21wcmVzc3Jlc3VsdF9kYXRhABofX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgBYEV9fd2JpbmRnZW5fZXhwb3J0AE8SX193YmluZGdlbl9leHBvcnQyADwJHQEAQQELF0RJKRJCMUNnSDMTXlQ3VV9BJRQfTEthCsPRAWrOJAIJfwF+IwBBEGsiASQAAkACQAJAAkACQAJAIABB9QFJDQACQCAAQcz/e00NAEEAIQAMBgsgAEELaiICQXhxIQNBACgCiJxAIgRFDQRBHyEFAkAgAEH0//8HSw0AIANBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQtBACADayECAkAgBUECdEHsmMAAaigCACIGDQBBACEHQQAhAAwCC0EAIQcgA0EAQRkgBUEBdmsgBUEfRht0IQhBACEAA0ACQCAGIgYoAgRBeHEiCSADSQ0AIAkgA2siCSACTw0AIAYhByAJIQIgCQ0AQQAhAiAGIQAgBiEHDAQLIAYoAhQiCSAAIAkgBiAIQR12QQRxaigCECIGRxsgACAJGyEAIAhBAXQhCCAGRQ0CDAALCwJAAkACQAJAAkACQEEAKAKEnEAiBkEQIABBC2pB+ANxIABBC0kbIgNBA3YiAnYiAEEDcUUNACAAQX9zQQFxIAJqIghBA3QiA0H8mcAAaiIAIANBhJrAAGooAgAiAigCCCIHRg0BIAcgADYCDCAAIAc2AggMAgsgA0EAKAKMnEBNDQggAA0CQQAoAoicQCIARQ0IIABoQQJ0QeyYwABqKAIAIgYoAgRBeHEgA2shAiAGIQcDQAJAIAcoAhAiAA0AIAcoAhQiAA0AIAYoAhghBQJAAkACQCAGKAIMIgAgBkcNACAGQRRBECAGKAIUIgAbaigCACIHDQFBACEADAILIAYoAggiByAANgIMIAAgBzYCCAwBCyAGQRRqIAZBEGogABshCANAIAghCSAHIgBBFGogAEEQaiAAKAIUIgcbIQggAEEUQRAgBxtqKAIAIgcNAAsgCUEANgIACyAFRQ0GAkACQCAGIAYoAhxBAnRB7JjAAGoiBygCAEYNAAJAIAUoAhAgBkYNACAFIAA2AhQgAA0CDAkLIAUgADYCECAADQEMCAsgByAANgIAIABFDQYLIAAgBTYCGAJAIAYoAhAiB0UNACAAIAc2AhAgByAANgIYCyAGKAIUIgdFDQYgACAHNgIUIAcgADYCGAwGCyAAKAIEQXhxIANrIgcgAiAHIAJJIgcbIQIgACAGIAcbIQYgACEHDAALC0EAIAZBfiAId3E2AoScQAsgAkEIaiEAIAIgA0EDcjYCBCACIANqIgMgAygCBEEBcjYCBAwHCwJAAkAgACACdEECIAJ0IgBBACAAa3JxaCIJQQN0IgJB/JnAAGoiByACQYSawABqKAIAIgAoAggiCEYNACAIIAc2AgwgByAINgIIDAELQQAgBkF+IAl3cTYChJxACyAAIANBA3I2AgQgACADaiIGIAIgA2siB0EBcjYCBCAAIAJqIAc2AgACQEEAKAKMnEAiAkUNAEEAKAKUnEAhAwJAAkBBACgChJxAIghBASACQQN2dCIJcQ0AQQAgCCAJcjYChJxAIAJBeHFB/JnAAGoiAiEIDAELIAJBeHEiAkH8mcAAaiEIIAJBhJrAAGooAgAhAgsgCCADNgIIIAIgAzYCDCADIAg2AgwgAyACNgIICyAAQQhqIQBBACAGNgKUnEBBACAHNgKMnEAMBgtBAEEAKAKInEBBfiAGKAIcd3E2AoicQAsCQAJAAkAgAkEQSQ0AIAYgA0EDcjYCBCAGIANqIgcgAkEBcjYCBCAHIAJqIAI2AgBBACgCjJxAIghFDQFBACgClJxAIQACQAJAQQAoAoScQCIJQQEgCEEDdnQiBXENAEEAIAkgBXI2AoScQCAIQXhxQfyZwABqIgghCQwBCyAIQXhxIghB/JnAAGohCSAIQYSawABqKAIAIQgLIAkgADYCCCAIIAA2AgwgACAJNgIMIAAgCDYCCAwBCyAGIAIgA2oiAEEDcjYCBCAGIABqIgAgACgCBEEBcjYCBAwBC0EAIAc2ApScQEEAIAI2AoycQAsgBkEIaiIARQ0DDAQLAkAgACAHcg0AQQAhB0ECIAV0IgBBACAAa3IgBHEiAEUNAyAAaEECdEHsmMAAaigCACEACyAARQ0BCwNAIAAoAgRBeHEiBiADayIIIAIgCCACSSIJGyEFIAYgA0khCCAAIAcgCRshCQJAIAAoAhAiBg0AIAAoAhQhBgsgAiAFIAgbIQIgByAJIAgbIQcgBiEAIAYNAAsLIAdFDQACQEEAKAKMnEAiACADSQ0AIAIgACADa08NAQsgBygCGCEFAkACQAJAIAcoAgwiACAHRw0AIAdBFEEQIAcoAhQiABtqKAIAIgYNAUEAIQAMAgsgBygCCCIGIAA2AgwgACAGNgIIDAELIAdBFGogB0EQaiAAGyEIA0AgCCEJIAYiAEEUaiAAQRBqIAAoAhQiBhshCCAAQRRBECAGG2ooAgAiBg0ACyAJQQA2AgALAkAgBUUNAAJAAkACQCAHIAcoAhxBAnRB7JjAAGoiBigCAEYNAAJAIAUoAhAgB0YNACAFIAA2AhQgAA0CDAQLIAUgADYCECAADQEMAwsgBiAANgIAIABFDQELIAAgBTYCGAJAIAcoAhAiBkUNACAAIAY2AhAgBiAANgIYCyAHKAIUIgZFDQEgACAGNgIUIAYgADYCGAwBC0EAQQAoAoicQEF+IAcoAhx3cTYCiJxACwJAAkAgAkEQSQ0AIAcgA0EDcjYCBCAHIANqIgAgAkEBcjYCBCAAIAJqIAI2AgACQCACQYACSQ0AIAAgAhARDAILAkACQEEAKAKEnEAiBkEBIAJBA3Z0IghxDQBBACAGIAhyNgKEnEAgAkH4AXFB/JnAAGoiAiEGDAELIAJB+AFxIgJB/JnAAGohBiACQYSawABqKAIAIQILIAYgADYCCCACIAA2AgwgACAGNgIMIAAgAjYCCAwBCyAHIAIgA2oiAEEDcjYCBCAHIABqIgAgACgCBEEBcjYCBAsgB0EIaiIADQELAkACQAJAAkACQAJAQQAoAoycQCIAIANPDQACQEEAKAKQnEAiACADSw0AIAFBBGpBsJzAACADQa+ABGpBgIB8cRAuAkAgASgCBCIGDQBBACEADAgLIAEoAgwhBUEAQQAoApycQCABKAIIIglqIgA2ApycQEEAIABBACgCoJxAIgIgACACSxs2AqCcQAJAAkACQEEAKAKYnEAiAkUNAEHsmcAAIQADQCAGIAAoAgAiByAAKAIEIghqRg0CIAAoAggiAA0ADAMLCwJAAkBBACgCqJxAIgBFDQAgBiAATw0BC0EAIAY2AqicQAtBAEH/HzYCrJxAQQAgBTYC+JlAQQAgCTYC8JlAQQAgBjYC7JlAQQBB/JnAADYCiJpAQQBBhJrAADYCkJpAQQBB/JnAADYChJpAQQBBjJrAADYCmJpAQQBBhJrAADYCjJpAQQBBlJrAADYCoJpAQQBBjJrAADYClJpAQQBBnJrAADYCqJpAQQBBlJrAADYCnJpAQQBBpJrAADYCsJpAQQBBnJrAADYCpJpAQQBBrJrAADYCuJpAQQBBpJrAADYCrJpAQQBBtJrAADYCwJpAQQBBrJrAADYCtJpAQQBBvJrAADYCyJpAQQBBtJrAADYCvJpAQQBBvJrAADYCxJpAQQBBxJrAADYC0JpAQQBBxJrAADYCzJpAQQBBzJrAADYC2JpAQQBBzJrAADYC1JpAQQBB1JrAADYC4JpAQQBB1JrAADYC3JpAQQBB3JrAADYC6JpAQQBB3JrAADYC5JpAQQBB5JrAADYC8JpAQQBB5JrAADYC7JpAQQBB7JrAADYC+JpAQQBB7JrAADYC9JpAQQBB9JrAADYCgJtAQQBB9JrAADYC/JpAQQBB/JrAADYCiJtAQQBBhJvAADYCkJtAQQBB/JrAADYChJtAQQBBjJvAADYCmJtAQQBBhJvAADYCjJtAQQBBlJvAADYCoJtAQQBBjJvAADYClJtAQQBBnJvAADYCqJtAQQBBlJvAADYCnJtAQQBBpJvAADYCsJtAQQBBnJvAADYCpJtAQQBBrJvAADYCuJtAQQBBpJvAADYCrJtAQQBBtJvAADYCwJtAQQBBrJvAADYCtJtAQQBBvJvAADYCyJtAQQBBtJvAADYCvJtAQQBBxJvAADYC0JtAQQBBvJvAADYCxJtAQQBBzJvAADYC2JtAQQBBxJvAADYCzJtAQQBB1JvAADYC4JtAQQBBzJvAADYC1JtAQQBB3JvAADYC6JtAQQBB1JvAADYC3JtAQQBB5JvAADYC8JtAQQBB3JvAADYC5JtAQQBB7JvAADYC+JtAQQBB5JvAADYC7JtAQQBB9JvAADYCgJxAQQBB7JvAADYC9JtAQQAgBkEPakF4cSIAQXhqIgI2ApicQEEAQfSbwAA2AvybQEEAIAYgAGsgCUFYaiIAakEIaiIHNgKQnEAgAiAHQQFyNgIEIAYgAGpBKDYCBEEAQYCAgAE2AqScQAwICyACIAZPDQAgByACSw0AIAAoAgwiB0EBcQ0AIAdBAXYgBUYNAwtBAEEAKAKonEAiACAGIAAgBkkbNgKonEAgBiAJaiEHQeyZwAAhAAJAAkACQANAIAAoAgAiCCAHRg0BIAAoAggiAA0ADAILCyAAKAIMIgdBAXENACAHQQF2IAVGDQELQeyZwAAhAAJAA0ACQCAAKAIAIgcgAksNACACIAcgACgCBGoiB0kNAgsgACgCCCEADAALC0EAIAZBD2pBeHEiAEF4aiIINgKYnEBBACAGIABrIAlBWGoiAGpBCGoiBDYCkJxAIAggBEEBcjYCBCAGIABqQSg2AgRBAEGAgIABNgKknEAgAiAHQWBqQXhxQXhqIgAgACACQRBqSRsiCEEbNgIEQQApAuyZQCEKIAhBEGpBACkC9JlANwIAIAhBCGoiACAKNwIAQQAgBTYC+JlAQQAgCTYC8JlAQQAgBjYC7JlAQQAgADYC9JlAIAhBHGohAANAIABBBzYCACAAQQRqIgAgB0kNAAsgCCACRg0HIAggCCgCBEF+cTYCBCACIAggAmsiAEEBcjYCBCAIIAA2AgACQCAAQYACSQ0AIAIgABARDAgLAkACQEEAKAKEnEAiB0EBIABBA3Z0IgZxDQBBACAHIAZyNgKEnEAgAEH4AXFB/JnAAGoiACEHDAELIABB+AFxIgBB/JnAAGohByAAQYSawABqKAIAIQALIAcgAjYCCCAAIAI2AgwgAiAHNgIMIAIgADYCCAwHCyAAIAY2AgAgACAAKAIEIAlqNgIEIAZBD2pBeHFBeGoiByADQQNyNgIEIAhBD2pBeHFBeGoiAiAHIANqIgBrIQMgAkEAKAKYnEBGDQMgAkEAKAKUnEBGDQQCQCACKAIEIgZBA3FBAUcNACACIAZBeHEiBhAQIAYgA2ohAyACIAZqIgIoAgQhBgsgAiAGQX5xNgIEIAAgA0EBcjYCBCAAIANqIAM2AgACQCADQYACSQ0AIAAgAxARDAYLAkACQEEAKAKEnEAiAkEBIANBA3Z0IgZxDQBBACACIAZyNgKEnEAgA0H4AXFB/JnAAGoiAyECDAELIANB+AFxIgNB/JnAAGohAiADQYSawABqKAIAIQMLIAIgADYCCCADIAA2AgwgACACNgIMIAAgAzYCCAwFC0EAIAAgA2siAjYCkJxAQQBBACgCmJxAIgAgA2oiBzYCmJxAIAcgAkEBcjYCBCAAIANBA3I2AgQgAEEIaiEADAYLQQAoApScQCECAkACQCAAIANrIgdBD0sNAEEAQQA2ApScQEEAQQA2AoycQCACIABBA3I2AgQgAiAAaiIAIAAoAgRBAXI2AgQMAQtBACAHNgKMnEBBACACIANqIgY2ApScQCAGIAdBAXI2AgQgAiAAaiAHNgIAIAIgA0EDcjYCBAsgAkEIaiEADAULIAAgCCAJajYCBEEAQQAoApicQCIAQQ9qQXhxIgJBeGoiBzYCmJxAQQAgACACa0EAKAKQnEAgCWoiAmpBCGoiBjYCkJxAIAcgBkEBcjYCBCAAIAJqQSg2AgRBAEGAgIABNgKknEAMAwtBACAANgKYnEBBAEEAKAKQnEAgA2oiAzYCkJxAIAAgA0EBcjYCBAwBC0EAIAA2ApScQEEAQQAoAoycQCADaiIDNgKMnEAgACADQQFyNgIEIAAgA2ogAzYCAAsgB0EIaiEADAELQQAhAEEAKAKQnEAiAiADTQ0AQQAgAiADayICNgKQnEBBAEEAKAKYnEAiACADaiIHNgKYnEAgByACQQFyNgIEIAAgA0EDcjYCBCAAQQhqIQALIAFBEGokACAAC7wdARZ/IAEgAmoiByACQREgAkERSRtrIQggAyAEaiIJIARBlwIgBEGXAkkbayEKIABBpNoAaiELIABBmMkAaiEMIABB4NUAaiENIABBzANqIQ5BACEPQQAhEEEAIQIgASERIAMhBAJAAkADQAJAAkAgByARa0EDSw0AIAIhEiAQQf8BcSICQRdLDQEDQAJAAkAgESAHRg0AIBEtAAAgAnQgEnIhEiARQQFqIREMAQtBASETIA9BAWoiD0EESw0FCyAQQQhqIhBB/wFxIgJBGEkNAAwCCwsgESgAACAQQf8BcXQgAnIhEiARIBBBA3ZBB3FrQQNqIREgEEEYciEQC0EBIRMCQAJAAkACQAJAAkAgEkEBdkEDcQ4EBAEABwQLQQAhFCAAQQA6AKBaIBBBb2ohAiASQRF2IRUgEkENdiIWQQ9xIhdBBGohECASQQh2QR9xQQFqIRggEkEDdkEfcUGBAmohGQNAAkACQCACQf8BcSITQQJNDQAgAiEaDAELAkAgByARa0EDSw0AIAIhGgNAAkACQCARIAdGDQAgES0AACATdCAVciEVIBFBAWohEQwBC0EBIRMgD0EBaiIPQQRLDQsLIBpBCGoiGkH/AXEiE0EYSQ0ADAILCyACQRhyIRogESgAACATdCAVciEVIBEgAkEDdkEHcWtBA2ohEQsgACAUQfCGwABqLQAAaiAVQQdxOgAAIBpBfWohAiAVQQN2IRUgFEEBaiIUIBBHDQALAkAgF0EPRg0AAkAgFkEDcSIaQQNGDQBBBCEQA0AgACAXIBBqQfCGwABqLQAAakEAOgAAIBBBfWohFCAQQQFqIhMhECAaIBRzQQNHDQALIBcgE2ohEAsgF0F0akEDSQ0AA0AgACAQQfCGwABqLQAAakEAOgAAIAAgEEHxhsAAai0AAGpBADoAACAAIBBB8obAAGotAABqQQA6AAAgACAQQfOGwABqLQAAakEAOgAAIBBBBGoiEEETRw0ACwsCQCAOIABBE0GQh8AAQQdBByANQQAQBA0AQQEPCyAZIBhqIRdBACEQA0ACQAJAIAJB/wFxIhRBDU0NACACIRoMAQsCQCAHIBFrQQNLDQAgAiEaA0ACQAJAIBEgB0YNACARLQAAIBR0IBVyIRUgEUEBaiERDAELQQEhEyAPQQFqIg9BBEsNCwsgGkEIaiIaQf8BcSIUQRhJDQAMAgsLIAJBGHIhGiARKAAAIBR0IBVyIRUgESACQQN2QQdxa0EDaiERCyAOIBVB/wBxQQJ0aigCACIUQRB2IRMgGiAUayECIBUgFEH/AXF2IRUCQAJAIBRB//8/Sw0AIAAgEGogEzoAACAQQQFqIRAMAQsCQAJAAkACQCATQXBqDgIAAQILAkAgEA0AQQEPCyAAIBBqIhRBBWogFEF/ai0AACIaOgAAIBRBBGogGjoAACAUQQNqIBo6AAAgFEECaiAaOgAAIBRBAWogGjoAACAUIBo6AAAgAkF+aiECIBVBA3FBA2ohFCAVQQJ2IRUMAgsgACAQaiIUQgA3AAAgFEEIakEAOwAAIAJBfWohAiAVQQdxQQNqIRQgFUEDdiEVDAELAkAgFUH/AHFBC2oiFEUNACAAIBBqQQAgFPwLAAsgAkF5aiECIBVBB3YhFQsgFCAQaiEQCyAQIBdJDQALIBAgF0YNAUEBDwsgEEF9aiECIBJBA3YhFSAALQCgWg0BIABBAToAoFpBACEQA0AgACAQaiIUQoiQoMCAgYKECDcAACAUQQhqQQg6AAAgEEEJaiIQQZABRw0AC0GQfyEQA0AgACAQakGAAmpCiZKkyJChwoQJNwAAIBBBCGoiEA0ACyAAQoWKlKjQoMGCBTcAuAIgAEKFipSo0KDBggU3ALACIABChYqUqNCgwYIFNwCoAiAAQoWKlKjQoMGCBTcAoAIgAEKIkKDAgIGChAg3AJgCIABCh46cuPDgwYMHNwCQAiAAQoeOnLjw4MGDBzcAiAIgAEKHjpy48ODBgwc3AIACQSAhGEGgAiEZCwJAIAwgACAZaiAYQeCHwABBCEEPIA1BABAEDQBBAQ8LIAAgACAZQeCIwABBC0EPIA0gCxAEDQBBAQ8LQX8gCygCAHRBf3MhFwJAAkAgESAITw0AIAQgCk8NACACQRhyIRAgESACQQN2QQdxa0EDaiEUIAAgESgAACACQf8BcXQgFXIiFSAXcUECdGooAgAhGANAIBAgGGshECAVIBhB/wFxIhN2IQICQAJAAkACQCAYQQBIDQACQCAYQYCAAnENACACIREMAwsCQCAYQYDAAHFFDQAgFCERDAkLIBAgACACQX8gGEEIdnRBf3NxIBhBEHZqQQJ0aigCACIYayEQIAIgGEH/AXEiE3YhESAYQQBODQEgESECCyAEIBhBEHY6AAAgBEEBaiEEIBQoAAAgEEH/AXF0IAJyIRUgFCAQQQN2QQdxa0EDaiEUIAAgAiAXcUECdGooAgAhGAwCCyACIRUgGEGAwABxRQ0AIBEhAiAUIREMBgsgEEEYciEZIBQoAAAgEEH/AXF0IBFyIRogFCAQQQN2QQdxa0EDaiEUAkAgDCARQf8BcUECdGooAgAiEUGAgAJxRQ0AIBQoAAAgGUF4aiICQfcBcXQgGkEIdiIQciEaIAwgEEF/IBFBCHZBP3F0QX9zcSARQRB2akECdGooAgAhESACQRhyIRkgFCACQQN2QQZxa0EDaiEUCwJAIBpBfyARQf8BcSIWdEF/c3EgEUEIdkH/AXF2IhsgEUEQdiIcaiICIAQgA2tNDQBBAQ8LIBVBfyATdEF/c3EhEyAUKAAAIBkgEWsiEEH/AXF0IBogFnYiGXIhFSAEIAJrIRogBCAYQRB2aiATIBhBCHZB/wFxdmohESAUIBBBA3ZBB3FrQQNqIRQgACAZIBdxQQJ0aigCACEYAkACQCACQQRJDQAgBCAaKAAANgAAIAQgGigABDYABCAEIBooAAg2AAggBCAaKAAMNgAMIAQgGigAEDYAECAEQRRqIBFPDQFBACACayETA0AgBEEUaiIaIAQgE2oiAkEUaigAADYAACAEQRhqIAJBGGooAAA2AAAgBEEcaiACQRxqKAAANgAAIARBIGogAkEgaigAADYAACAEQSRqIAJBJGooAAA2AAAgBEEoaiECIBohBCACIBFJDQAMAgsLAkAgAkEBRw0AIAQgGi0AAEGBgoQIbCIaNgAMIAQgGjYACCAEIBo2AAQgBCAaNgAAIARBEGoiAiARTw0BA0AgAiAaNgAAIAJBDGogGjYAACACQQhqIBo2AAAgAkEEaiAaNgAAIAJBEGoiAiARSQ0ADAILCyAEIBooAAAiGjYAACAEIAJqIBo2AAAgG0EBdCAcQQF0aiEaIAJBA2whFgNAIAQgGmogBCACaiITKAAAIhk2AAAgBCAWaiAZNgAAIBMgAmoiBCAaaiARSQ0ACwsgESEECyAQQRhyIRAgFCAITw0CIAQgCkkNAAwCCwsgAiEQIBEhFAsDQAJAAkAgByAUa0EDSw0AIBBB/wFxIgJBF0sNAQNAAkACQCAUIAdGDQAgFC0AACACdCAVciEVIBRBAWohFAwBC0EBIRMgD0EBaiIPQQRLDQgLIBBBCGoiEEH/AXEiAkEYSQ0ADAILCyAUKAAAIBBB/wFxdCAVciEVIBQgEEEDdkEHcWtBA2ohFCAQQRhyIRALIBAgACAVIBdxQQJ0aigCACICayEQIBUgAkH/AXF2IRECQAJAIAJBgIABcQ0AIBUhGiARIRUMAQsgECAAIBFBfyACQQh2QT9xdEF/c3EgAkEQdmpBAnRqKAIAIgJrIRAgESACQf8BcXYhFSARIRoLIAJBEHYhEQJAIAJBf0oNAAJAIAQgCUcNAEEDDwsgBCAROgAAIARBAWohBAwBCwJAIAJBgMAAcUUNACAVIQIgFCERDAMLAkAgGkF/IAJB/wFxdEF/c3EgAkEIdkHfAXF2IBFqIhogCSAEa00NAEEDDwsCQAJAIAcgFGtBA0sNACAQQf8BcSICQRdLDQEDQAJAAkAgFCAHRg0AIBQtAAAgAnQgFXIhFSAUQQFqIRQMAQtBASETIA9BAWoiD0EESw0ICyAQQQhqIhBB/wFxIgJBGEkNAAwCCwsgFCgAACAQQf8BcXQgFXIhFSAUIBBBA3ZBB3FrQQNqIRQgEEEYciEQCwJAIAwgFUH/AXFBAnRqKAIAIgJBgIACcUUNACAMIBVBCHYiFUF/IAJBCHZBP3F0QX9zcSACQRB2akECdGooAgAhAiAQQXhqIRECQAJAIAcgFGtBA0sNACARQf8BcSITQRdNDQEgESEQDAILIBFBGHIhECAUKAAAIBFB/wFxdCAVciEVIBQgEUEDdkEHcWtBA2ohFAwBCwNAAkACQCAUIAdGDQAgFC0AACATdCAVciEVIBRBAWohFAwBC0EBIRMgD0EBaiIPQQRLDQcLIBBB/wFxIRMgEEEIaiIRIRAgE0EYSQ0ACyARQXhqIRALAkAgFUF/IAJB/wFxIhN0QX9zcSACQQh2Qf8BcXYgAkEQdmoiESAEIANrTQ0AQQEPCyAQIAJrIRAgFSATdiEVIAQgBCARayICLQAAOgAAIAQgAi0AAToAASAEQQJqIQIgBCAaaiEEQQAgEWshEQNAIAIgAiARai0AADoAACACQQFqIgIgBEkNAAwBCwsLAkAgDyAQQf0BakEDdkEfcSICTQ0AQQEPCwJAIAcgESAPIAJraiIRa0EETg0AQQEPCwJAIBEvAAIgES8AACICc0H//wNxQf//A0YNAEEBDwsCQCAJIARrIAJODQBBAw8LAkAgByARQQRqIhFrIAJODQBBAQ8LAkAgAkUNACAEIBEgAvwKAAALIAQgAmohBCARIAJqIRFBACEPQQAhEEEAIQILIBJBAXFFDQALQQEhEyAPIBBBA3ZBH3EiAksNAAJAIAVFDQAgBSARIA8gAmtqIAFrNgIACwJAIAZFDQAgBiAEIANrNgIADAILIAQgCUYNAUECIRMLIBMPC0EAC5UPAQ9/IwBBgAFrIQggBUEBaiIJQQdxIQogCUECdEFgcSELQQAhDANAIAhBwABqIAxqIglCADcDACAJQRhqQgA3AwAgCUEQakIANwMAIAlBCGpCADcDACALIAxBIGoiDEcNAAsCQCAKRQ0AIAhBwABqIAxqIQkDQCAJQQA2AgAgCUEEaiEJIApBf2oiCg0ACwsCQCACRQ0AIAJBA3EhCkEAIQwCQCACQQRJDQAgAkF8cSENQQAhDANAIAhBwABqIAEgDGoiCS0AAEECdGoiCyALKAIAQQFqNgIAIAhBwABqIAlBAWotAABBAnRqIgsgCygCAEEBajYCACAIQcAAaiAJQQJqLQAAQQJ0aiILIAsoAgBBAWo2AgAgCEHAAGogCUEDai0AAEECdGoiCSAJKAIAQQFqNgIAIA0gDEEEaiIMRw0ACwsgCkUNACABIAxqIQkDQCAIQcAAaiAJLQAAQQJ0aiIMIAwoAgBBAWo2AgAgCUEBaiEJIApBf2oiCg0ACwsgCEHAAGogBUECdGohCQJAA0ACQCAJKAIARQ0AIAUhCgwCCyAJQXxqIQlBASEKIAVBf2oiBUEBSw0ACwsCQCAHRQ0AIAcgBCAKIAQgCkkbIgQ2AgALQQAhDiAIQQA2AgAgCCAIKAJAIgs2AgRBASEJQQAhDAJAIApBAkkNAEEBIQkgCkF/aiIMQQFxIQ8CQAJAIApBAkcNAEEAIQwMAQsgDEF+cSEQIAhBwABqQQhyIQkgCEEMciEMQQAhBUEAIQ0DQCAMQXxqIAlBfGooAgAiByALaiILNgIAIAwgCSgCACIRIAtqIgs2AgAgESAFQQJ0IAdBAXRqaiEFIAlBCGohCSAMQQhqIQwgECANQQJqIg1HDQALIA1BAWohCSAFQQF0IQwLAkAgD0UNACAJQQJ0IgkgCGpBBGogCEHAAGogCWooAgAiCSALajYCACAJIAxqIQULIAVBAXQhDCAKIQkLIAhBwABqIAlBAnRqKAIAIAxqIRECQCACRQ0AIAJBAXEhB0EAIQkCQCACQQFGDQAgAkF+cSENQQAhCQNAIAYgCCABIAlqIgwtAABBAnRqIgUoAgAiC0EBdGogCTsBACAFIAtBAWo2AgAgCCAMQQFqLQAAQQJ0aiIMIAwoAgAiDEEBajYCACAGIAxBAXRqIAlBAWo7AQAgDSAJQQJqIglHDQALCwJAIAdFDQAgCCABIAlqLQAAQQJ0aiIMIAwoAgAiDEEBajYCACAGIAxBAXRqIAk7AQALIAgoAgAhDgsCQAJAIBFBASAKdCIJTQ0AQQAhBQwBCyAGIA5BAXRqIQcCQAJAAkAgESAJSQ0AIAhBwABqQQRyIQlBACENA0AgDUEBaiENIAkoAgAhBiAJQQRqIQkgBkUNAAtBACEPIA0gBE0NAUEAIQEMAgsCQAJAIBENAEEAIQkMAQtBACEFIBFBASAKQX9qdEcNAyAIKAJEQQFHDQMgBy8BACEJCyADIAlBAnRqKAIAQYECaiEMQQEhBUEBIQkDQCAAIAw2AgAgAEEEaiEAIAkgBHYhCCAJQQFqIQkgCEUNAAwDCwtBASANdCEMIAhBwABqQQRyIQtBACEBA0AgDEF/aiEJIA1BgQJsIQUDQCAAIAFBAnRqIAUgAyAHLwEAQQJ0aigCAGo2AgACQCABIAlHDQBBASEFIAQgDU0NBCANQQFqIQkCQCAEIA1rQQFxRQ0AAkAgDEECdCIIRQ0AIAAgCGogACAI/AoAAAsgDUEBaiENIAxBAXQhDAsgBCAJRg0EIAQgDWshCANAAkAgDEECdCIJRQ0AIAAgCWogACAJ/AoAAAsCQCAMQQN0IgxFDQAgACAMaiAAIAz8CgAACyAJIQwgCEF+aiIIRQ0FDAALC0GAgICAeCABIAlzZ3YiCkF/aiABcSAKciEBIAdBAmohByAGQX9qIgYNAAsgCyANQQJ0aiEJA0ACQCANQQFqIg0gBEsNAAJAIAxBAnQiCkUNACAAIApqIAAgCvwKAAALIAxBAXQhDAsgCSgCACEGIAlBBGohCSAGRQ0ACyANIARNDQALCyAEQYCAA3IhEkEBIAR0IhBBf2ohEyAIQcAAakEEciEUQX8hCQNAIBQgDUECdGohEUF/IA10QX9zIQ4gDSAEayIVQYECbCEWQQEgFXQiCkECdCELA0ACQAJAIAEgE3EiAiAJRw0AIBAhDCAJIQIMAQsgFSEIIAohBQJAIAYgCk8NACARIQkgFSEIIAYhDANAIAkoAgAhBSAJQQRqIQkgBSAMQQF0aiIMQQEgCEEBaiIIdCIFSQ0ACwsgACACQQJ0aiAQQRB0IAhBCHRyIBJyNgIAIAUgEGohDCAQIQ8LIAAgDyABIAR2aiIIQQJ0aiEJIBYgAyAHLwEAQQJ0aigCAGohBQNAIAkgBTYCACAJIAtqIQkgCCAKaiIIIAxJDQALAkAgASAORw0AQQEPC0GAgICAeCABIA5zZ3YiCUF/aiABcSAJciEBIAdBAmohByAMIRAgAiEJIAZBf2oiBg0ACwNAIA1BAWohDSARKAIAIQYgEUEEaiERIAZFDQALIAwhECACIQkMAAsLIAULgg0DDX8CfgJ8IwBB0ABrIgckACAHEEU2AgAQagJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQYABQQgQWSIIRQ0AQQAhCSAHQQA2AgwgByAINgIIIAdBEDYCBBBqQYABQQgQWSIKRQ0BIAdBADYCGCAHIAo2AhQgB0EQNgIQIAJBAnQiC0EASA0CAkACQCALDQBBASEMDAELEGpBASEJIAtBARBZIgxFDQMLIAdBADYCJCAHIAw2AiAgByALNgIcIAMgA6EiFiACuCIXY0UNCCACIBb8AyIJSQ0JIAMhFiACIAlrIg1BGkkNByADIRYgASAJaiIJLQAAQR9HDQcgAyEWIAktAAFBiwFHDQcgAyEWIAktAAJBCEcNByADIRYgCS0AA0EERw0HIAMhFiAJLQAKQQZHDQcgAyEWIAktAAxBwgBHDQcgAyEWIAktAA1BwwBHDQcgAyEWIA0gCS8AECIOTQ0HIAMhFiAOQRlJDQcgB0EoaiAJIA0gBxANIAcoAigiCUGAgICAeEYNCiAHKAIsIQ4gBykCMCIUQoCAgIAQVA0GIAT8AyEPIAb8A0EBaiEQIBRCIIinIREgFKchDSAIIAM5AwAgCiAEOQMAQQEhCCAHQQE2AgwgB0EBNgIYAkACQCADIAVmIhINACANIQogDSAPSw0BIAMgEbigIRYgBCANIA9ruKAhBEEAIQwMBQsgDyANIBAgDSAQSRsiCkkNAEEAIQtBASESQQAhCgwFCwJAIAogD0kNAEEAIRMCQCAKIA9rIgggC00NACAHQRxqQQAgCBAkIAcoAiAhDCAHKAIkIRMLAkAgCEUNACAMIBNqIA4gD2ogCPwKAAALIAcgEyAIaiIMNgIkIAMgEbigIRYgBCANIA9ruKAhBCASRQ0EQQAhC0EBIQhBASESQQAhCgwGCyAPIAogDUHkg8AAEDgAC0EIQYABEE0AC0EIQYABEE0ACyAJIAsQTQALAkAgCUUNACAOIAlBARBWCyAWIAOhIgYgF2NFDQQDQCACIAb8AyIJSQ0GIAIgCWsiCEEaSQ0EIAEgCWoiCy0AAEEfRw0EIAstAAFBiwFHDQQgCy0AAkEIRw0EIAstAANBBEcNBCALLQAKQQZHDQQgCy0ADEHCAEcNBCALLQANQcMARw0EIAggCy8AECIKTQ0EIApBGE0NBCAHQShqIAsgCCAHEA0gBygCKCIJQYCAgIB4Rg0HIAcoAiwhDiAHKQIwIhRCgICAgBBUDQMCQCAHKAIMIgogBygCBEcNACAHQQRqECgLIBRCIIghFSAHKAIIIApBA3RqIBY5AwAgByAKQQFqIhI2AgwCQCAHKAIYIgsgBygCEEcNACAHQRBqECgLIBWnIREgFKchDSAHKAIUIAtBA3RqIAQ5AwAgByALQQFqIgg2AhgCQAJAAkAgFiAFZiITDQAgDSEPIA0NASAEIA24oCEEIBYgEbigIRYMAgsgDSAQIA0gEEkbIg8NAEEAIQ8gFiEDDAMLAkAgDyAHKAIcIAxrTQ0AIAdBHGogDCAPECQgBygCJCEMCwJAIA9FDQAgBygCICAMaiAOIA/8CgAACyAHIAwgD2oiDDYCJCAEIA24oCEEIBYgEbigIRYgEw0DCwJAIAlFDQAgDiAJQQEQVgsgFiADoSIGIBdjDQAMBQsLIAMgEbigIRYgBCANIA9ruKAhBAsCQCASIAcoAgRHDQAgB0EEahAoCyAHKAIIIBJBA3RqIBY5AwAgByAKQQJqNgIMAkAgCCAHKAIQRw0AIAdBEGoQKAsgBygCFCAIQQN0aiAEOQMAIAcgC0ECajYCGAsgCUUNASAOIAlBARBWDAELIBYgA2INAEG/gMAAQRMQYyECDAMLIAdBKGpBCGoiAiAHQRxqQQhqKAIANgIAIAdBPGogB0EEakEIaigCADYCACAAIAcpAhw3AgAgAEEYaiAHKQIQNwIAIABBIGogB0EQakEIaigCADYCACAHIAcpAgQ3AjQgAEEIaiACKQMANwIAIABBEGogB0EoakEQaikDADcCAAwDCyAJIAIgAkH0g8AAEDgACyAHKAIsIAcoAjAQYyECCyAAQYCAgIB4NgIAIAAgAjYCBAJAIAcoAhwiAEUNACAHKAIgIABBARBWCwJAIAcoAhAiAEUNACAHKAIUIABBA3RBCBBWCyAHKAIEIgBFDQAgBygCCCAAQQN0QQgQVgsgBxBkIAdB0ABqJAAL7QYBCH8CQAJAIAEgAEEDakF8cSICIABrIgNJDQAgASADayIEQQRJDQAgBEEDcSEFQQAhBkEAIQECQCACIABGDQBBACEHQQAhAQJAIAAgAmsiCEF8Sw0AQQAhB0EAIQEDQCABIAAgB2oiAiwAAEG/f0pqIAJBAWosAABBv39KaiACQQJqLAAAQb9/SmogAkEDaiwAAEG/f0pqIQEgB0EEaiIHDQALCyAAIAdqIQIDQCABIAIsAABBv39KaiEBIAJBAWohAiAIQQFqIggNAAsLIAAgA2ohCAJAIAVFDQAgCCAEQXxxaiICLAAAQb9/SiEGIAVBAUYNACAGIAIsAAFBv39KaiEGIAVBAkYNACAGIAIsAAJBv39KaiEGCyAEQQJ2IQMgBiABaiEHA0AgCCEGIANFDQIgA0HAASADQcABSRsiBEEDcSEFAkACQCAEQQJ0IglB8AdxIggNAEEAIQIMAQtBACECIAYhAQNAIAFBDGooAgAiAEF/c0EHdiAAQQZ2ckGBgoQIcSABQQhqKAIAIgBBf3NBB3YgAEEGdnJBgYKECHEgAUEEaigCACIAQX9zQQd2IABBBnZyQYGChAhxIAEoAgAiAEF/c0EHdiAAQQZ2ckGBgoQIcSACampqaiECIAFBEGohASAIQXBqIggNAAsLIAMgBGshAyAGIAlqIQggAkEIdkH/gfwHcSACQf+B/AdxakGBgARsQRB2IAdqIQcgBUUNAAsgBiAEQfwBcUECdGoiAigCACIBQX9zQQd2IAFBBnZyQYGChAhxIQECQCAFQQFGDQAgAigCBCIIQX9zQQd2IAhBBnZyQYGChAhxIAFqIQEgBUECRg0AIAIoAggiAkF/c0EHdiACQQZ2ckGBgoQIcSABaiEBCyABQQh2Qf+BHHEgAUH/gfwHcWpBgYAEbEEQdiAHaiEHDAELAkAgAQ0AQQAPCyABQQNxIQgCQAJAIAFBBE8NAEEAIQJBACEHDAELIAFBfHEhA0EAIQJBACEHA0AgByAAIAJqIgEsAABBv39KaiABQQFqLAAAQb9/SmogAUECaiwAAEG/f0pqIAFBA2osAABBv39KaiEHIAMgAkEEaiICRw0ACwsgCEUNACAAIAJqIQEDQCAHIAEsAABBv39KaiEHIAFBAWohASAIQX9qIggNAAsLIAcL9QYBBn8CQAJAAkACQAJAAkACQAJAIABBfGoiBCgCACIFQXhxIgZBBEEIIAVBA3EiBxsgAWpJDQAgAUEnaiEIAkAgB0UNACAGIAhLDQILAkACQCACQQlJDQAgAiADEA8iAg0BQQAPC0EAIQIgA0HM/3tLDQhBECADQQtqQXhxIANBC0kbIQEgAEF4aiEIAkAgBw0AIAFBgAJJDQcgCEUNByAGIAFNDQcgBiABa0GAgAhLDQcgAA8LIAggBmohBwJAAkAgBiABTw0AIAdBACgCmJxARg0BAkAgB0EAKAKUnEBGDQAgBygCBCIFQQJxDQkgBUF4cSIJIAZqIgUgAUkNCSAHIAkQEAJAIAUgAWsiB0EQSQ0AIAQgASAEKAIAQQFxckECcjYCACAIIAFqIgEgB0EDcjYCBCAIIAVqIgUgBSgCBEEBcjYCBCABIAcQDgwJCyAEIAUgBCgCAEEBcXJBAnI2AgAgCCAFaiIBIAEoAgRBAXI2AgQMCAtBACgCjJxAIAZqIgcgAUkNCAJAAkAgByABayIGQQ9LDQAgBCAFQQFxIAdyQQJyNgIAIAggB2oiASABKAIEQQFyNgIEQQAhBkEAIQEMAQsgBCABIAVBAXFyQQJyNgIAIAggAWoiASAGQQFyNgIEIAggB2oiByAGNgIAIAcgBygCBEF+cTYCBAtBACABNgKUnEBBACAGNgKMnEAMBwsgBiABayIGQQ9NDQYgBCABIAVBAXFyQQJyNgIAIAggAWoiASAGQQNyNgIEIAcgBygCBEEBcjYCBCABIAYQDgwGC0EAKAKQnEAgBmoiByABSw0EDAYLAkAgAyABIAMgAUkbIgNFDQAgAiAAIAP8CgAACyAEKAIAIgNBeHEiB0EEQQggA0EDcSIDGyABakkNAiADRQ0GIAcgCE0NBkGAlMAAQS5BsJTAABA5AAtBwJPAAEEuQfCTwAAQOQALQYCUwABBLkGwlMAAEDkAC0HAk8AAQS5B8JPAABA5AAsgBCABIAVBAXFyQQJyNgIAIAggAWoiBSAHIAFrIgFBAXI2AgRBACABNgKQnEBBACAFNgKYnEALIAhFDQAgAA8LIAMQAiIBRQ0BAkAgA0F8QXggBCgCACICQQNxGyACQXhxaiICIAMgAkkbIgNFDQAgASAAIAP8CgAACyABIQILIAAQCQsgAgvxBQIIfwF+AkACQCABDQAgBUEBaiEGIAAoAgghB0EtIQgMAQtBK0GAgMQAIAAoAggiB0GAgIABcSIBGyEIIAFBFXYgBWohBgsCQAJAIAdBgICABHENAEEAIQIMAQsCQAJAIANBEEkNACACIAMQBiEBDAELAkAgAw0AQQAhAQwBCyADQQNxIQkCQAJAIANBBE8NAEEAIQpBACEBDAELIANBDHEhC0EAIQpBACEBA0AgASACIApqIgwsAABBv39KaiAMQQFqLAAAQb9/SmogDEECaiwAAEG/f0pqIAxBA2osAABBv39KaiEBIAsgCkEEaiIKRw0ACwsgCUUNACACIApqIQwDQCABIAwsAABBv39KaiEBIAxBAWohDCAJQX9qIgkNAAsLIAEgBmohBgsCQAJAIAYgAC8BDCILTw0AAkACQAJAIAdBgICACHENACALIAZrIQ1BACEBQQAhCwJAAkACQCAHQR12QQNxDgQCAAEAAgsgDSELDAELIA1B/v8DcUEBdiELCyAHQf///wBxIQYgACgCBCEJIAAoAgAhCgNAIAFB//8DcSALQf//A3FPDQJBASEMIAFBAWohASAKIAYgCSgCEBEFAEUNAAwFCwsgACAAKQIIIg6nQYCAgP95cUGwgICAAnI2AghBASEMIAAoAgAiCiAAKAIEIgkgCCACIAMQOg0DQQAhASALIAZrQf//A3EhAgNAIAFB//8DcSACTw0CQQEhDCABQQFqIQEgCkEwIAkoAhARBQBFDQAMBAsLQQEhDCAKIAkgCCACIAMQOg0CIAogBCAFIAkoAgwRBwANAkEAIQEgDSALa0H//wNxIQADQCABQf//A3EiAiAASSEMIAIgAE8NAyABQQFqIQEgCiAGIAkoAhARBQBFDQAMAwsLQQEhDCAKIAQgBSAJKAIMEQcADQEgACAONwIIQQAPC0EBIQwgACgCACIBIAAoAgQiCiAIIAIgAxA6DQAgASAEIAUgCigCDBEHACEMCyAMC44GAQV/IABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAAkAgAkEBcQ0AIAJBAnFFDQEgASgCACICIABqIQACQCABIAJrIgFBACgClJxARw0AIAMoAgRBA3FBA0cNAUEAIAA2AoycQCADIAMoAgRBfnE2AgQgASAAQQFyNgIEIAMgADYCAA8LIAEgAhAQCwJAAkACQAJAAkACQCADKAIEIgJBAnENACADQQAoApicQEYNAiADQQAoApScQEYNAyADIAJBeHEiAhAQIAEgAiAAaiIAQQFyNgIEIAEgAGogADYCACABQQAoApScQEcNAUEAIAA2AoycQA8LIAMgAkF+cTYCBCABIABBAXI2AgQgASAAaiAANgIACyAAQYACSQ0CIAEgABARQQAhAUEAQQAoAqycQEF/aiIANgKsnEAgAA0EAkBBACgC9JlAIgBFDQBBACEBA0AgAUEBaiEBIAAoAggiAA0ACwtBACABQf8fIAFB/x9LGzYCrJxADwtBACABNgKYnEBBAEEAKAKQnEAgAGoiADYCkJxAIAEgAEEBcjYCBAJAIAFBACgClJxARw0AQQBBADYCjJxAQQBBADYClJxACyAAQQAoAqScQCIETQ0DQQAoApicQCIARQ0DQQAhAkEAKAKQnEAiBUEpSQ0CQeyZwAAhAQNAAkAgASgCACIDIABLDQAgACADIAEoAgRqSQ0ECyABKAIIIQEMAAsLQQAgATYClJxAQQBBACgCjJxAIABqIgA2AoycQCABIABBAXI2AgQgASAAaiAANgIADwsCQAJAQQAoAoScQCIDQQEgAEEDdnQiAnENAEEAIAMgAnI2AoScQCAAQfgBcUH8mcAAaiIAIQMMAQsgAEH4AXEiAEH8mcAAaiEDIABBhJrAAGooAgAhAAsgAyABNgIIIAAgATYCDCABIAM2AgwgASAANgIIDwsCQEEAKAL0mUAiAUUNAEEAIQIDQCACQQFqIQIgASgCCCIBDQALC0EAIAJB/x8gAkH/H0sbNgKsnEAgBSAETQ0AQQBBfzYCpJxACwuOBQEHfwJAAkAgACgCCCIDQYCAgMABcUUNAAJAAkACQAJAAkAgA0GAgICAAXFFDQAgAC8BDiIEDQFBACECDAILAkAgAkEQSQ0AIAEgAhAGIQUMBAsCQCACDQBBACEFQQAhAgwECyACQQNxIQYCQAJAIAJBBE8NAEEAIQdBACEFDAELIAJBDHEhBEEAIQdBACEFA0AgBSABIAdqIggsAABBv39KaiAIQQFqLAAAQb9/SmogCEECaiwAAEG/f0pqIAhBA2osAABBv39KaiEFIAQgB0EEaiIHRw0ACwsgBkUNAyABIAdqIQgDQCAFIAgsAABBv39KaiEFIAhBAWohCCAGQX9qIgYNAAwECwsgASACaiEGQQAhAiABIQggBCEHA0AgCCIFIAZGDQICQAJAIAUsAAAiCEF/TA0AIAVBAWohCAwBCwJAIAhBYE8NACAFQQJqIQgMAQsCQCAIQXBPDQAgBUEDaiEIDAELIAVBBGohCAsgCCAFayACaiECIAdBf2oiBw0ACwtBACEHCyAEIAdrIQULIAUgAC8BDCIITw0AIAggBWshCUEAIQVBACEEAkACQAJAIANBHXZBA3EOBAIAAQICCyAJIQQMAQsgCUH+/wNxQQF2IQQLIANB////AHEhBiAAKAIEIQcgACgCACEAAkADQCAFQf//A3EgBEH//wNxTw0BQQEhCCAFQQFqIQUgACAGIAcoAhARBQANAwwACwtBASEIIAAgASACIAcoAgwRBwANAUEAIQUgCSAEa0H//wNxIQIDQCAFQf//A3EiBCACSSEIIAQgAk8NAiAFQQFqIQUgACAGIAcoAhARBQANAgwACwsgACgCACABIAIgACgCBCgCDBEHACEICyAIC9cEAQh/IwBBEGsiAyQAIAMgATYCBCADIAA2AgAgA0KggICADjcCCAJAAkACQAJAAkAgAigCECIERQ0AIAIoAhQiAQ0BDAILIAIoAgwiAEUNASACKAIIIgEgAEEDdCIAaiEFIABBeGpBA3ZBAWohBiACKAIAIQADQAJAIABBBGooAgAiB0UNACADKAIAIAAoAgAgByADKAIEKAIMEQcARQ0AQQEhAQwFCwJAIAEoAgAgAyABQQRqKAIAEQUARQ0AQQEhAQwFCyAAQQhqIQAgAUEIaiIBIAVGDQMMAAsLIAFBGGwhCCABQX9qQf////8BcUEBaiEGIAIoAgghCSACKAIAIQBBACEHA0ACQCAAQQRqKAIAIgFFDQAgAygCACAAKAIAIAEgAygCBCgCDBEHAEUNAEEBIQEMBAtBACEFQQAhCgJAAkACQCAEIAdqIgFBCGovAQAOAwABAgALIAFBCmovAQAhCgwBCyAJIAFBDGooAgBBA3RqLwEEIQoLAkACQAJAIAEvAQAOAwABAgALIAFBAmovAQAhBQwBCyAJIAFBBGooAgBBA3RqLwEEIQULIAMgBTsBDiADIAo7AQwgAyABQRRqKAIANgIIAkAgCSABQRBqKAIAQQN0aiIBKAIAIAMgASgCBBEFAEUNAEEBIQEMBAsgAEEIaiEAIAggB0EYaiIHRg0CDAALC0EAIQYLAkAgBiACKAIETw0AIAMoAgAgAigCACAGQQN0aiIBKAIAIAEoAgQgAygCBCgCDBEHAEUNAEEBIQEMAQtBACEBCyADQRBqJAAgAQugBAIIfwJ+IwBBIGsiAyQAIAMQRTYCAEEAIQQCQCACQQJ0IgVBAEgNAAJAAkAgBQ0AQQEhBgwBCxBqQQEhBCAFQQEQWSIGRQ0BC0EAIQcgA0EANgIMIAMgBjYCCCADIAU2AgQCQAJAIAJFDQBBACEEA0ACQAJAAkAgAiAEayIIQRpJDQAgASAEaiIFLQAAQR9HDQAgBS0AAUGLAUcNACAFLQACQQhHDQAgBS0AA0EERw0AIAUtAApBBkcNACAFLQAMQcIARw0AIAUtAA1BwwBHDQAgCCAFLwAQIglNDQAgCUEZSQ0AIANBEGogBSAIIAMQDSADKAIQIghBgICAgHhHDQIgAygCFCADKAIYEGMhBQwBCyAEDQNBv4DAAEETEGMhBQsgAEGAgICAeDYCACAAIAU2AgQgAygCBCIFRQ0DIAMoAgggBUEBEFYMAwsgAygCFCEJAkAgAykCGCILQv////8PVg0AIAhFDQIgCSAIQQEQVgwCCyALQiCIIQwCQCALpyIFIAMoAgQgB2tNDQAgA0EEaiAHIAUQJCADKAIIIQYgAygCDCEHCyAMpyEKAkAgBUUNACAGIAdqIAkgBfwKAAALIAMgByAFaiIHNgIMIAQgCmohBAJAIAhFDQAgCSAIQQEQVgsgBCACSQ0ACwsgACADKQIENwIAIABBCGogA0EEakEIaigCADYCAAsgAxBkIANBIGokAA8LIAQgBRBNAAv4AwEGfyMAQRBrIgQkAAJAAkACQAJAAkACQAJAAkAgAkEaSQ0AIAEtAABBH0cNACABLQABQYsBRw0AIAEtAAJBCEcNACABLQADQQRHDQAgAS0ACkEGRw0AIAEtAAxBwgBHDQAgAS0ADUHDAEcNACACIAEvABAiBU0NACAFQRlJDQAgBUF9aiIGIAJPDQEgBUF+aiIHIAJPDQIgBUF/aiIIIAJPDQMgBSACTw0EIAVBeWoiCUESSQ0FIAkgAksNBSABIAdqLQAAQQh0IAEgBmotAAByIAEgCGotAABBEHRyIAEgBWotAABBGHQiCXIhAkEAIQYgCUEASA0GQQEhCQJAIAJFDQAQakEBIQYgAkEBEFoiCUUNBwsgBEEIaiADIAFBEmogBUFnaiAJIAIQJwJAIAQtAAhBAUcNACAAQRQ2AgggAEHAg8AANgIEIABBgICAgHg2AgAgAkUNCCAJIAJBARBWDAgLIAAgBUEBajYCDCAAIAI2AgggACAJNgIEIAAgAjYCAAwHCyAAQRM2AgggAEG/gMAANgIEIABBgICAgHg2AgAMBgsgBiACQYCDwAAQKgALIAcgAkGQg8AAECoACyAIIAJBoIPAABAqAAsgBSACQbCDwAAQKgALQRIgCSACQdSDwAAQOAALIAYgAhBNAAsgBEEQaiQAC4UEAQJ/IAAgAWohAgJAAkAgACgCBCIDQQFxDQAgA0ECcUUNASAAKAIAIgMgAWohAQJAIAAgA2siAEEAKAKUnEBHDQAgAigCBEEDcUEDRw0BQQAgATYCjJxAIAIgAigCBEF+cTYCBCAAIAFBAXI2AgQgAiABNgIADAILIAAgAxAQCwJAAkACQAJAIAIoAgQiA0ECcQ0AIAJBACgCmJxARg0CIAJBACgClJxARg0DIAIgA0F4cSIDEBAgACADIAFqIgFBAXI2AgQgACABaiABNgIAIABBACgClJxARw0BQQAgATYCjJxADwsgAiADQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgALAkAgAUGAAkkNACAAIAEQEQ8LAkACQEEAKAKEnEAiAkEBIAFBA3Z0IgNxDQBBACACIANyNgKEnEAgAUH4AXFB/JnAAGoiASECDAELIAFB+AFxIgFB/JnAAGohAiABQYSawABqKAIAIQELIAIgADYCCCABIAA2AgwgACACNgIMIAAgATYCCA8LQQAgADYCmJxAQQBBACgCkJxAIAFqIgE2ApCcQCAAIAFBAXI2AgQgAEEAKAKUnEBHDQFBAEEANgKMnEBBAEEANgKUnEAPC0EAIAA2ApScQEEAQQAoAoycQCABaiIBNgKMnEAgACABQQFyNgIEIAAgAWogATYCAA8LC+8CAQV/QQAhAgJAIAFBzf97IABBECAAQRBLGyIAa08NACAAQRAgAUELakF4cSABQQtJGyIDakEMahACIgFFDQAgAUF4aiECAkACQCAAQX9qIgQgAXENACACIQAMAQsgAUF8aiIFKAIAIgZBeHEgBCABakEAIABrcUF4aiIBQQAgACABIAJrQRBLG2oiACACayIBayEEAkAgBkEDcUUNACAAIAQgACgCBEEBcXJBAnI2AgQgACAEaiIEIAQoAgRBAXI2AgQgBSABIAUoAgBBAXFyQQJyNgIAIAIgAWoiBCAEKAIEQQFyNgIEIAIgARAODAELIAIoAgAhAiAAIAQ2AgQgACACIAFqNgIACwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQDgsgAEEIaiECCyACC4kDAQR/IAAoAgwhAgJAAkACQAJAIAFBgAJJDQAgACgCGCEDAkACQAJAIAIgAEcNACAAQRRBECAAKAIUIgIbaigCACIBDQFBACECDAILIAAoAggiASACNgIMIAIgATYCCAwBCyAAQRRqIABBEGogAhshBANAIAQhBSABIgJBFGogAkEQaiACKAIUIgEbIQQgAkEUQRAgARtqKAIAIgENAAsgBUEANgIACyADRQ0CAkACQCAAIAAoAhxBAnRB7JjAAGoiASgCAEYNACADKAIQIABGDQEgAyACNgIUIAINAwwECyABIAI2AgAgAkUNBAwCCyADIAI2AhAgAg0BDAILAkAgAiAAKAIIIgRGDQAgBCACNgIMIAIgBDYCCA8LQQBBACgChJxAQX4gAUEDdndxNgKEnEAPCyACIAM2AhgCQCAAKAIQIgFFDQAgAiABNgIQIAEgAjYCGAsgACgCFCIBRQ0AIAIgATYCFCABIAI2AhgPCw8LQQBBACgCiJxAQX4gACgCHHdxNgKInEALyAIBBH9BACECAkAgAUGAAkkNAEEfIQIgAUH///8HSw0AIAFBJiABQQh2ZyICa3ZBAXEgAkEBdGtBPmohAgsgAEIANwIQIAAgAjYCHCACQQJ0QeyYwABqIQMCQEEAKAKInEBBASACdCIEcQ0AIAMgADYCACAAIAM2AhggACAANgIMIAAgADYCCEEAQQAoAoicQCAEcjYCiJxADwsCQAJAAkAgAygCACIEKAIEQXhxIAFHDQAgBCECDAELIAFBAEEZIAJBAXZrIAJBH0YbdCEDA0AgBCADQR12QQRxaiIFKAIQIgJFDQIgA0EBdCEDIAIhBCACKAIEQXhxIAFHDQALCyACKAIIIgMgADYCDCACIAA2AgggAEEANgIYIAAgAjYCDCAAIAM2AggPCyAFQRBqIAA2AgAgACAENgIYIAAgADYCDCAAIAA2AggLrQIBB38jAEEQayICJABBCiEDIAAoAgAiBCEFAkAgBEHoB0kNAEEKIQMgBCEAA0AgAkEGaiADaiIGQXxqIAAgAEGQzgBuIgVBkM4AbGsiB0H//wNxQeQAbiIIQQF0LwCElUA7AAAgBkF+aiAHIAhB5ABsa0H//wNxQQF0LwCElUA7AAAgA0F8aiEDIABB/6ziBEshBiAFIQAgBg0ACwsCQAJAIAVBCUsNACAFIQAMAQsgAkEGaiADQX5qIgNqIAUgBUH//wNxQeQAbiIAQeQAbGtB//8DcUEBdC8AhJVAOwAACwJAAkAgBEUNACAARQ0BCyACQQZqIANBf2oiA2ogAEEBdC0AhZVAOgAACyABQQFBAUEAIAJBBmogA2pBCiADaxAIIQAgAkEQaiQAIAALpQIBBn8gACgCCCECAkACQCABQYABTw0AQQEhAwwBCwJAIAFBgBBPDQBBAiEDDAELQQNBBCABQYCABEkbIQMLIAIhBAJAIAMgACgCACACa00NACAAIAIgA0EBQQEQIiAAKAIIIQQLIAAoAgQgBGohBAJAAkAgAUGAAUkNACABQT9xQYB/ciEFIAFBBnYhBgJAIAFBgBBPDQAgBCAFOgABIAQgBkHAAXI6AAAMAgsgAUEMdiEHIAZBP3FBgH9yIQYCQCABQf//A0sNACAEIAU6AAIgBCAGOgABIAQgB0HgAXI6AAAMAgsgBCAFOgADIAQgBjoAAiAEIAdBP3FBgH9yOgABIAQgAUESdkFwcjoAAAwBCyAEIAE6AAALIAAgAyACajYCCEEAC7ICAgN/AX4jAEHAAGsiAiQAAkAgASgCAEGAgICAeEcNACABKAIMIQMgAkEcakEIaiIEQQA2AgAgAkKAgICAEDcCHCACQShqQQhqIAMoAgAiA0EIaikCADcDACACQShqQRBqIANBEGopAgA3AwAgAiADKQIANwMoIAJBHGpB4JLAACACQShqEAsaIAJBEGpBCGogBCgCACIDNgIAIAIgAikCHCIFNwMQIAFBCGogAzYCACABIAU3AgALIAEpAgAhBSABQoCAgIAQNwIAIAJBCGoiAyABQQhqIgEoAgA2AgAgAUEANgIAIAIgBTcDABBqAkBBDEEEEFkiAQ0AQQRBDBBgAAsgASACKQMANwIAIAFBCGogAygCADYCACAAQcCUwAA2AgQgACABNgIAIAJBwABqJAALnQICBH8BfiMAQSBrIgMkAAJAAkACQAJAAkAgAg0AQQEhBEEAIQFBACEFQQAhBgwBCyADEEU2AgwgA0EQaiABIAIgA0EMahANIAMoAhAiBkGAgICAeEYNASADKAIUIQQgAykCGCEHIANBDGoQZCABIAJBARBWIAdCIIinIQEgB6chBQsQakEcQQQQWSICRQ0BIAIgATYCGCACIAU2AhQgAiAENgIQIAIgBjYCDEEAIQYgAkEANgIIIAJCgYCAgBA3AgAgAkEIaiEEDAILIAMoAhQgAygCGBBjIQQgA0EMahBkQQEhBiABIAJBARBWDAELQQRBHBBgAAsgACAGNgIIIAAgBEEAIAYbNgIEIABBACAEIAYbNgIAIANBIGokAAuSAgEHfyMAQRBrIgIkAAJAAkACQAJAIAFFDQAgAUF4aiIDIAMoAgBBAWoiBDYCACAERQ0BIAEoAgAiBEF/Rg0CIAEgBEEBajYCACACIAM2AgwgAiABNgIIIAIgAUEEajYCBCABKAIYIgVBA3QhBEEAIQYgBUH/////AUsNAyAEQfj///8HSw0DIAEoAhQhBwJAAkAgBA0AQQghCAwBCxBqQQghBiAEQQgQWSIIRQ0ECwJAIARFDQAgCCAHIAT8CgAACyABIAEoAgBBf2o2AgAgAyADKAIAQX9qIgE2AgACQCABDQAgAkEMahAmCyAAIAU2AgQgACAINgIAIAJBEGokAA8LEFsLAAsQXQALIAYgBBBNAAuSAgEHfyMAQRBrIgIkAAJAAkACQAJAIAFFDQAgAUF4aiIDIAMoAgBBAWoiBDYCACAERQ0BIAEoAgAiBEF/Rg0CIAEgBEEBajYCACACIAM2AgwgAiABNgIIIAIgAUEEajYCBCABKAIkIgVBA3QhBEEAIQYgBUH/////AUsNAyAEQfj///8HSw0DIAEoAiAhBwJAAkAgBA0AQQghCAwBCxBqQQghBiAEQQgQWSIIRQ0ECwJAIARFDQAgCCAHIAT8CgAACyABIAEoAgBBf2o2AgAgAyADKAIAQX9qIgE2AgACQCABDQAgAkEMahAmCyAAIAU2AgQgACAINgIAIAJBEGokAA8LEFsLAAsQXQALIAYgBBBNAAuCAgEHfyMAQRBrIgIkAAJAAkACQAJAIAENACAARQ0BIABBeGoiASgCAEEBRw0CIAAoAiAhAyAAKAIcIQQgACgCFCEFIAAoAhAhBiAAKAIIIQcgACgCBCEIIAFBADYCAAJAIAFBf0YNACAAQXxqIgAgACgCAEF/aiIANgIAIAANACABQTBBBBBWCwJAIAhFDQAgByAIQQEQVgsCQCAGRQ0AIAUgBkEDdEEIEFYLIARFDQMgAyAEQQN0QQgQVgwDCyAARQ0AIABBeGoiACAAKAIAQX9qIgE2AgAgAiAANgIMIAENAiACQQxqECYMAgsQWwALQYCAwABBPxBcAAsgAkEQaiQAC/gBAQZ/IwBBEGsiAiQAAkACQAJAAkAgAUUNACABQXhqIgMgAygCAEEBaiIENgIAIARFDQEgASgCACIEQX9GDQJBASEFIAEgBEEBajYCACACIAM2AgwgAiABNgIIIAIgAUEEajYCBEEAIQYgASgCDCIEQQBIDQMgASgCCCEHAkAgBEUNABBqQQEhBiAEQQEQWSIFRQ0ECwJAIARFDQAgBSAHIAT8CgAACyABIAEoAgBBf2o2AgAgAyADKAIAQX9qIgE2AgACQCABDQAgAkEMahAmCyAAIAQ2AgQgACAFNgIAIAJBEGokAA8LEFsLAAsQXQALIAYgBBBNAAv4AQEGfyMAQRBrIgIkAAJAAkACQAJAIAFFDQAgAUF4aiIDIAMoAgBBAWoiBDYCACAERQ0BIAEoAgAiBEF/Rg0CQQEhBSABIARBAWo2AgAgAiADNgIMIAIgATYCCCACIAFBBGo2AgRBACEGIAEoAgwiBEEASA0DIAEoAgghBwJAIARFDQAQakEBIQYgBEEBEFkiBUUNBAsCQCAERQ0AIAUgByAE/AoAAAsgASABKAIAQX9qNgIAIAMgAygCAEF/aiIBNgIAAkAgAQ0AIAJBDGoQNAsgACAENgIEIAAgBTYCACACQRBqJAAPCxBbCwALEF0ACyAGIAQQTQAL+QEBAX8jAEEwayIHJAAgB0EMaiABIAIgAyAEIAUgBhAFAkAgAkUNACABIAJBARBWCwJAAkACQCAHKAIMQYCAgIB4Rw0AQQEhASAHKAIQIQIMAQsQakEwQQQQWSICRQ0BQQAhASACQQA2AgggAkKBgICAEDcCACACIAcpAgw3AgwgAkEUaiAHQQxqQQhqKQIANwIAIAJBHGogB0EcaikCADcCACACQSRqIAdBJGopAgA3AgAgAkEsaiAHQSxqKAIANgIAIAJBCGohAgsgACABNgIIIAAgAkEAIAEbNgIEIABBACACIAEbNgIAIAdBMGokAA8LQQRBMBBgAAvMAQEDfyMAQRBrIgMkACADQQRqIAEgAhAMAkAgAkUNACABIAJBARBWCwJAAkACQCADKAIEIgRBgICAgHhHDQBBASEEQQAhASADKAIIIQVBACECDAELIAMoAgghBQJAAkAgBCADKAIMIgJLDQAgBSEBDAELAkAgAg0AQQEhASAFIARBARBWDAELIAUgBEEBIAIQUyIBRQ0CC0EAIQVBACEECyAAIAQ2AgwgACAFNgIIIAAgAjYCBCAAIAE2AgAgA0EQaiQADwtBASACEE0AC8ABAQN/IwBBEGsiAiQAAkACQAJAAkAgAQ0AIABFDQEgAEF4aiIBKAIAQQFHDQIgACgCCCEDIAAoAgQhBCABQQA2AgACQCABQX9GDQAgAEF8aiIAIAAoAgBBf2oiADYCACAADQAgAUEcQQQQVgsgBEUNAyADIARBARBWDAMLIABFDQAgAEF4aiIAIAAoAgBBf2oiATYCACACIAA2AgwgAQ0CIAJBDGoQNAwCCxBbAAtBgIDAAEE/EFwACyACQRBqJAAL3AEBAn8jAEEgayIFJAACQAJAQQEQNkH/AXEiBkECRg0AIAZBAXFFDQEgBUEIaiAAIAEoAhgRBAAMAQtBACgCwJxAIgZBf0wNAEEAIAZBAWo2AsCcQAJAAkBBACgCxJxARQ0AIAUgACABKAIUEQQAIAUgBDoAHSAFIAM6ABwgBSACNgIYIAUgBSkDADcCEEEAKALEnEAgBUEQakEAKALInEAoAhQRBAAMAQtBgICAgHggBRBHC0EAQQAoAsCcQEF/ajYCwJxAQQBBADoAuJxAIANFDQAgACABEFcACwALzAECA38BfiMAQTBrIgIkAAJAIAEoAgBBgICAgHhHDQAgASgCDCEDIAJBDGpBCGoiBEEANgIAIAJCgICAgBA3AgwgAkEYakEIaiADKAIAIgNBCGopAgA3AwAgAkEYakEQaiADQRBqKQIANwMAIAIgAykCADcDGCACQQxqQeCSwAAgAkEYahALGiACQQhqIAQoAgAiAzYCACACIAIpAgwiBTcDACABQQhqIAM2AgAgASAFNwIACyAAQcCUwAA2AgQgACABNgIAIAJBMGokAAu2AQICfwF+QQEhBkEEIQcCQAJAIAQgBWpBf2pBACAEa3GtIAOtfiIIQiCIp0UNAEEAIQMMAQsCQCAIpyIDQYCAgIB4IARrTQ0AQQAhAwwBCwJAAkACQAJAIAFFDQAgAiAFIAFsIAQgAxBTIQcMAQsCQCADDQAgBCEHDAILEGogAyAEEFkhBwsgBw0AIAAgBDYCBAwBCyAAIAc2AgRBACEGC0EIIQcLIAAgB2ogAzYCACAAIAY2AgALtgECAn8BfkEBIQZBBCEHAkACQCAEIAVqQX9qQQAgBGtxrSADrX4iCEIgiKdFDQBBACEDDAELAkAgCKciA0GAgICAeCAEa00NAEEAIQMMAQsCQAJAAkACQCABRQ0AIAIgBSABbCAEIAMQUyEHDAELAkAgAw0AIAQhBwwCCxBqIAMgBBBZIQcLIAcNACAAIAQ2AgQMAQsgACAHNgIEQQAhBgtBCCEHCyAAIAdqIAM2AgAgACAGNgIAC5UBAQF/IwBBEGsiBSQAAkAgAiABaiIBIAJPDQBBAEEAEE0ACyAFQQRqIAAoAgAiAiAAKAIEIAEgAkEBdCICIAEgAksbIgJBCEEEIARBAUYbIgEgAiABSxsiAiADIAQQIQJAIAUoAgRBAUcNACAFKAIIIAUoAgwQTQALIAUoAgghBCAAIAI2AgAgACAENgIEIAVBEGokAAuyAQEDfyMAQRBrIgEkACAAKAIAIgIoAgwhAwJAAkACQAJAIAIoAgQOAgABAgsgAw0BQQEhAkEAIQMMAgsgAw0AIAIoAgAiAigCBCEDIAIoAgAhAgwBCyABQYCAgIB4NgIAIAEgADYCDCABQZSTwAAgACgCBCAAKAIIIgAtAAggAC0ACRAeAAsgASADNgIEIAEgAjYCACABQfiSwAAgACgCBCAAKAIIIgAtAAggAC0ACRAeAAuLAQEBfyMAQRBrIgMkAAJAIAIgAWoiASACTw0AQQBBABBNAAsgA0EEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyICQQggAkEISxsiAkEBQQEQIAJAIAMoAgRBAUcNACADKAIIIAMoAgwQTQALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAuHAQEBfyMAQSBrIgIkAAJAAkAgACgCAEGAgICAeEYNACABIAAoAgQgACgCCBBSIQAMAQsgAkEIakEIaiAAKAIMKAIAIgBBCGopAgA3AwAgAkEIakEQaiAAQRBqKQIANwMAIAIgACkCADcDCCABKAIAIAEoAgQgAkEIahALIQALIAJBIGokACAAC3wBAX8CQCAAKAIAIgAoAgwiAUUNACAAKAIQIAFBARBWCwJAIAAoAhgiAUUNACAAKAIcIAFBA3RBCBBWCwJAIAAoAiQiAUUNACAAKAIoIAFBA3RBCBBWCwJAIABBf0YNACAAIAAoAgRBf2oiATYCBCABDQAgAEEwQQQQVgsLhAEBAn8jAEEQayIGJABBACEHIAZBADYCDAJAAkACQAJAAkAgASgCACACIAMgBCAFIAZBDGoQUA4EAQIAAwALQZCFwABB7ABB/IXAABA/AAsgACAGKAIMNgIEDAILIABBADoAAUEBIQcMAQtBASEHIABBAToAAQsgACAHOgAAIAZBEGokAAtrAQN/IwBBEGsiASQAIAFBBGogACgCACICIAAoAgQgAkEBdCICQQQgAkEESxsiAkEIQQgQIAJAIAEoAgRBAUcNACABKAIIIAEoAgwQTQALIAEoAgghAyAAIAI2AgAgACADNgIEIAFBEGokAAtoAQF/IwBBMGsiAiQAAkAQaEH/AXENACACQTBqJAAPCyACIAE2AiQgAkECNgIQIAJBpJLAADYCDCACQgE3AhggAkEErUIghiACQSRqrYQ3AyggAiACQShqNgIUIAJBDGpBtJLAABBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0GcmMAANgIIIANCAjcCFCADQQStQiCGIgQgA62ENwMoIAMgBCADQQRqrYQ3AyAgAyADQSBqNgIQIANBCGogAhBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0G0l8AANgIIIANCAjcCFCADQQStQiCGIgQgA0EEaq2ENwMoIAMgBCADrYQ3AyAgAyADQSBqNgIQIANBCGogAhBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0HYl8AANgIIIANCAjcCFCADQQStQiCGIgQgA0EEaq2ENwMoIAMgBCADrYQ3AyAgAyADQSBqNgIQIANBCGogAhBAAAtoAgF/AX4jAEEwayIDJAAgAyABNgIEIAMgADYCACADQQI2AgwgA0GAl8AANgIIIANCAjcCFCADQQStQiCGIgQgA0EEaq2ENwMoIAMgBCADrYQ3AyAgAyADQSBqNgIQIANBCGogAhBAAAtgAQJ/AkACQCACQRB2IAJB//8DcUEAR2oiAkAAIgNBf0cNAEEAIQJBACEEDAELIAJBEHQiBEFwaiAEIANBEHQiAkEAIARrRhshBAsgAEEANgIIIAAgBDYCBCAAIAI2AgALYAECfwJAAkAgAEF8aigCACIDQXhxIgRBBEEIIANBA3EiAxsgAWpJDQACQCADRQ0AIAQgAUEnaksNAgsgABAJDwtBwJPAAEEuQfCTwAAQOQALQYCUwABBLkGwlMAAEDkAC2gBAn9BACEBAkAgACgCAEEMRw0AQQAhAUGs2gAgACgCBCICQQAoAuSYQCACGxEDACICRQ0AAkBBrNoARQ0AIAJBAEGs2gD8CwALIAIgACgCCCIAQQAoAuiYQCAAGzYCqFogAiEBCyABC1kBAn8gASgCACECIAFBADYCAAJAAkAgAkUNACABKAIEIQMQakEIQQQQWSIBRQ0BIAEgAzYCBCABIAI2AgAgAEGwk8AANgIEIAAgATYCAA8LAAtBBEEIEGAAC04BA38CQAJAAkAgAEUNACAAQXhqIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQX9GDQIgACgCECEAIAEgAjYCACAADwsQWwsACxBdAAtQAQF/AkAgAiAAKAIAIAAoAggiA2tNDQAgACADIAJBAUEBECIgACgCCCEDCwJAIAJFDQAgACgCBCADaiABIAL8CgAACyAAIAMgAmo2AghBAAtMAQF/AkAgACgCACIAQQxqKAIAIgFFDQAgAEEQaigCACABQQEQVgsCQCAAQX9GDQAgACAAKAIEQX9qIgE2AgQgAQ0AIABBHEEEEFYLC0UAAkACQCABQQlJDQAgASAAEA8hAQwBCyAAEAIhAQsCQCABRQ0AIAFBfGotAABBA3FFDQAgAEUNACABQQAgAPwLAAsgAQtSAQJ/QQAhAUEAQQAoArycQCICQQFqNgK8nEACQCACQQBIDQBBASEBQQAtALicQA0AQQAgADoAuJxAQQBBACgCtJxAQQFqNgK0nEBBAiEBCyABC0cBAn8gASgCBCECIAEoAgAhAxBqAkBBCEEEEFkiAQ0AQQRBCBBgAAsgASACNgIEIAEgAzYCACAAQbCTwAA2AgQgACABNgIACzgAAkACQCAAIAJLDQAgASACSw0BIAAgAU0NASAAIAEgAxArAAsgACACIAMQLAALIAEgAiADEC0AC0EBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEEAACzkAAkAgAkGAgMQARg0AIAAgAiABKAIQEQUARQ0AQQEPCwJAIAMNAEEADwsgACADIAQgASgCDBEHAAs5AQF/IwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEHklMAANgIIIABCBDcCECAAQQhqQeyUwAAQQAALJwACQCAAIAEQTkUNAAJAIABFDQAQaiAAIAEQWSIBRQ0BCyABDwsACywCAX8BfiMAQRBrIgEkACAAKQIAIQIgASAANgIMIAEgAjcCBCABQQRqEGUACy0BAX8jAEEQayIBJAAgASAAKQIANwIIIAFBCGpBxJLAACAAKAIIQQFBABAeAAsqAQF/IwBBEGsiAyQAIAMgAjYCDCADIAE2AgggAyAANgIEIANBBGoQZgALKgEBfyMAQRBrIgIkACACQQE7AQwgAiABNgIIIAIgADYCBCACQQRqED0ACykBAX8CQCAAKAIAIgFBgICAgHhyQYCAgIB4Rg0AIAAoAgQgAUEBEFYLCx4BAX8CQCAAKAIAIgJFDQAgASACIAAoAgQQUg8LAAsgAAJAIAEoAgBFDQAgAEGwk8AANgIEIAAgATYCAA8LAAsbAQF/EGogAEEEakEEEFkiASAANgIAIAFBBGoLIwEBfwJAQdiGwAAQMCIADQBBjIbAAEE6QciGwAAQPwALIAALFwACQCABQQlJDQAgASAAEA8PCyAAEAILHwACQCAAQYCAgIB4ckGAgICAeEYNACABIABBARBWCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFYLCxUAIABBfGoiACAAKAIAQQRqQQQQVgsaAQF/IAEgAEEAKAKwnEAiAkEDIAIbEQQAAAsdACAAQQhqQQApAuiRQDcCACAAQQApAuCRQDcCAAsdACAAQQhqQQApAviRQDcCACAAQQApAvCRQDcCAAsUAAJAIABFDQAgACABEGAACxA7AAsVACABaUEBRiAAQYCAgIB4IAFrTXELEgACQCABRQ0AIAAgASACEFYLCxIAIAAgASACIAMgBEEAIAUQAwsVAAJAIABFDQAgACAAKAKoWhECAAsLFgAgACgCACABIAIgACgCBCgCDBEHAAsNACAAIAEgAiADEAcPCxAAIAEgACgCACAAKAIEEFILEwAgAEGwk8AANgIEIAAgATYCAAsLACAAIAEgAhAvDwsKACAAIAEQaRoACwsAIAAjAGokACMACwkAIAAgARBGDwsJACAAIAEQNQ8LDABBhITAAEEbEFwACwkAIAAgARBiAAsNAEGfhMAAQc8AEFwACw0AIABB4JLAACABEAsLDAAgACABKQIANwMACwkAIAEgABBKAAsNACABQayYwABBGBAKCwgAIAAgARAACwgAIAAgARABCwkAIAAoAgAQUQsHACAAECMACwcAIAAQPgALCQAgAEEANgIACwUAQQAPCwUAEGsACwMADwsDAAALC9oYAgBBgIDAAAvEGGF0dGVtcHRlZCB0byB0YWtlIG93bmVyc2hpcCBvZiBSdXN0IHZhbHVlIHdoaWxlIGl0IHdhcyBib3Jyb3dlZGludmFsaWQgYmd6ZiBoZWFkZXIvaG9tZS9jZGllc2gvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEwOC9zcmMvZXh0ZXJucmVmLnJzAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwBsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbGliZGVmbGF0ZXItMS4yNS4wL3NyYy9saWIucnMAAHQBEAAKAAAAKQAAAAkAAAB0ARAACgAAACoAAAAJAAAAdAEQAAoAAAArAAAACQAAAHQBEAAKAAAALAAAAAkAAABkZWNvbXByZXNzaW9uIGZhaWxlZHQBEAAKAAAALwAAAB4AAAB0ARAACgAAANsAAAAxAAAAdAEQAAoAAAC3AAAAHwAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAAFIAEABnAAAAfwAAABEAAABSABAAZwAAAIwAAAARAAAAbGliZGVmbGF0ZV9kZWZsYXRlX2RlY29tcHJlc3MgcmV0dXJuZWQgYW4gdW5rbm93biBlcnJvciB0eXBlOiB0aGlzIGlzIGFuIGludGVybmFsIGJ1ZyB0aGF0ICoqbXVzdCoqIGJlIGZpeGVkHwEQAF8AAAAMAQAAFQAAAGxpYmRlZmxhdGVfYWxsb2NfZGVjb21wcmVzc29yIHJldHVybmVkIE5VTEw6IG91dCBvZiBtZW1vcnkAAB8BEABfAAAAnAAAABEAAAAMAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAAAAAABAAAAAgAAAAMAAAAEAAEABQABAAcAAgAJAAIADQADABEAAwAZAAQAIQAEADEABQBBAAUAYQAGAIEABgDBAAcAAQEHAIEBCAABAggAAQMJAAEECQABBgoAAQgKAAEMCwABEAsAARgMAAEgDAABMA0AAUANAAFgDQABYA0AAWAAAACAAAABgAAAAoAAAAOAAAAEgAAABYAAAAaAAAAHgAAACIAAAAmAAAAKgAAAC4AAAAyAAAANgAAADoAAAA+AAAAQgAAAEYAAABKAAAATgAAAFIAAABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgF8/YsyV+ZX+QLfRL/jSOevbV3L1ixQ62N4QaZXcRuLuW1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQAAAAJEAAVAAAAFQkQAA0AAAAGARAAGAAAAGQBAAAJAAAAAAAAAAgAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAMAAAABAAAAAoAAAALAAAADAAAAAAAAAAIAAAABAAAAA0AAAAOAAAADwAAABAAAAARAAAAEAAAAAQAAAASAAAAEwAAABQAAAAIAAAAAAAAAAgAAAAEAAAAFQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAANsAEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAADbABAAKgAAALcEAAANAAAACQAAAAwAAAAEAAAAFgAAAGNhcGFjaXR5IG92ZXJmbG93AAAAUAoQABEAAAC6ABAAIAAAABwAAAAFAAAAAQAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIGVuZCBpbmRleCAgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggAABMCxAAEAAAAFwLEAAiAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAkAsQABYAAACmCxAADQAAAHJhbmdlIHN0YXJ0IGluZGV4IAAAxAsQABIAAABcCxAAIgAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAADoCxAAIAAAAAgMEAASAAAAUmVmQ2VsbCBhbHJlYWR5IGJvcnJvd2VkAEHEmMAACwQEAAAAACkEbmFtZQEiAVgfX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgA8CXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AgZ3YWxydXMGMC4yNC40DHdhc20tYmluZGdlbgcwLjIuMTA4",Mn=function(){function e(){N(this,e)}return D(e,[{key:"__destroy_into_raw",value:function(){var e=this.__wbg_ptr;return this.__wbg_ptr=0,Gn.unregister(this),e}},{key:"free",value:function(){var e=this.__destroy_into_raw();ir.__wbg_chunksliceresult_free(e,0)}},{key:"buffer",get:function(){try{var e=ir.__wbindgen_add_to_stack_pointer(-16);ir.chunksliceresult_buffer(e,this.__wbg_ptr);var t=Wn().getInt32(e+0,!0),n=Wn().getInt32(e+4,!0),r=zn(t,n).slice();return ir.__wbindgen_export(t,1*n,1),r}finally{ir.__wbindgen_add_to_stack_pointer(16)}}},{key:"cpositions",get:function(){try{var e=ir.__wbindgen_add_to_stack_pointer(-16);ir.chunksliceresult_cpositions(e,this.__wbg_ptr);var t=Wn().getInt32(e+0,!0),n=Wn().getInt32(e+4,!0),r=Yn(t,n).slice();return ir.__wbindgen_export(t,8*n,8),r}finally{ir.__wbindgen_add_to_stack_pointer(16)}}},{key:"dpositions",get:function(){try{var e=ir.__wbindgen_add_to_stack_pointer(-16);ir.chunksliceresult_dpositions(e,this.__wbg_ptr);var t=Wn().getInt32(e+0,!0),n=Wn().getInt32(e+4,!0),r=Yn(t,n).slice();return ir.__wbindgen_export(t,8*n,8),r}finally{ir.__wbindgen_add_to_stack_pointer(16)}}}],[{key:"__wrap",value:function(t){t>>>=0;var n=Object.create(e.prototype);return n.__wbg_ptr=t,Gn.register(n,n.__wbg_ptr,n),n}}])}();Symbol.dispose&&(Mn.prototype[Symbol.dispose]=Mn.prototype.free);var On=function(){function e(){N(this,e)}return D(e,[{key:"__destroy_into_raw",value:function(){var e=this.__wbg_ptr;return this.__wbg_ptr=0,Hn.unregister(this),e}},{key:"free",value:function(){var e=this.__destroy_into_raw();ir.__wbg_decompressresult_free(e,0)}},{key:"bytes_read",get:function(){return ir.decompressresult_bytes_read(this.__wbg_ptr)>>>0}},{key:"data",get:function(){try{var e=ir.__wbindgen_add_to_stack_pointer(-16);ir.decompressresult_data(e,this.__wbg_ptr);var t=Wn().getInt32(e+0,!0),n=Wn().getInt32(e+4,!0),r=zn(t,n).slice();return ir.__wbindgen_export(t,1*n,1),r}finally{ir.__wbindgen_add_to_stack_pointer(16)}}}],[{key:"__wrap",value:function(t){t>>>=0;var n=Object.create(e.prototype);return n.__wbg_ptr=t,Hn.register(n,n.__wbg_ptr,n),n}}])}();function Ln(e){try{var t=ir.__wbindgen_add_to_stack_pointer(-16),n=nr(e,ir.__wbindgen_export2);ir.decompress_all(t,n,cr);var r=Wn().getInt32(t+0,!0),o=Wn().getInt32(t+4,!0),i=Wn().getInt32(t+8,!0);if(Wn().getInt32(t+12,!0))throw rr(i);var a=zn(r,o).slice();return ir.__wbindgen_export(r,1*o,1),a}finally{ir.__wbindgen_add_to_stack_pointer(16)}}function Pn(e){try{var t=ir.__wbindgen_add_to_stack_pointer(-16),n=nr(e,ir.__wbindgen_export2);ir.decompress_block(t,n,cr);var r=Wn().getInt32(t+0,!0),o=Wn().getInt32(t+4,!0);if(Wn().getInt32(t+8,!0))throw rr(o);return On.__wrap(r)}finally{ir.__wbindgen_add_to_stack_pointer(16)}}function qn(e,t,n,r,o){try{var i=ir.__wbindgen_add_to_stack_pointer(-16),a=nr(e,ir.__wbindgen_export2);ir.decompress_chunk_slice(i,a,cr,t,n,r,o);var s=Wn().getInt32(i+0,!0),c=Wn().getInt32(i+4,!0);if(Wn().getInt32(i+8,!0))throw rr(c);return Mn.__wrap(s)}finally{ir.__wbindgen_add_to_stack_pointer(16)}}function Jn(e,t){return function(e){tr===er.length&&er.push(er.length+1);var t=tr;return tr=er[t],er[t]=e,t}(Error($n(e,t)))}function Un(e,t){throw new Error($n(e,t))}Symbol.dispose&&(On.prototype[Symbol.dispose]=On.prototype.free);var Gn="undefined"==typeof FinalizationRegistry?{register:function(){},unregister:function(){}}:new FinalizationRegistry((function(e){return ir.__wbg_chunksliceresult_free(e>>>0,1)})),Hn="undefined"==typeof FinalizationRegistry?{register:function(){},unregister:function(){}}:new FinalizationRegistry((function(e){return ir.__wbg_decompressresult_free(e>>>0,1)}));function Yn(e,t){return e>>>=0,(null!==Vn&&0!==Vn.byteLength||(Vn=new Float64Array(ir.memory.buffer)),Vn).subarray(e/8,e/8+t)}function zn(e,t){return e>>>=0,Zn().subarray(e/1,e/1+t)}var Kn=null;function Wn(){return(null===Kn||!0===Kn.buffer.detached||void 0===Kn.buffer.detached&&Kn.buffer!==ir.memory.buffer)&&(Kn=new DataView(ir.memory.buffer)),Kn}var Vn=null;function $n(e,t){return function(e,t){return(sr+=t)>=ar&&((or=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0})).decode(),sr=t),or.decode(Zn().subarray(e,e+t))}(e>>>=0,t)}var Xn=null;function Zn(){return null!==Xn&&0!==Xn.byteLength||(Xn=new Uint8Array(ir.memory.buffer)),Xn}var er=new Array(128).fill(void 0);er.push(void 0,null,!0,!1);var tr=er.length;function nr(e,t){var n=t(1*e.length,1)>>>0;return Zn().set(e,n/1),cr=e.length,n}function rr(e){var t=function(e){return er[e]}(e);return function(e){e<132||(er[e]=tr,tr=e)}(e),t}var or=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});or.decode();var ir,ar=2146435072,sr=0,cr=0;function lr(e){ir=e}var ur=null,dr=null;function Ar(){return fr.apply(this,arguments)}function fr(){return(fr=B(U().m((function e(){return U().w((function(e){for(;;)switch(e.n){case 0:if(!ur){e.n=1;break}return e.a(2,ur);case 1:return dr||(dr=B(U().m((function e(){var t,n;return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,fetch(jn);case 1:return t=e.v,e.n=2,t.arrayBuffer();case 2:return n=e.v,e.n=3,WebAssembly.instantiate(n,{"./bgzf_wasm_bg.js":Tn});case 3:return lr(ur=e.v.instance.exports),e.a(2,ur)}}),e)})))()),e.a(2,dr)}}),e)})))).apply(this,arguments)}function hr(e){return gr.apply(this,arguments)}function gr(){return(gr=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,Ar();case 1:return e.a(2,Ln(t))}}),e)})))).apply(this,arguments)}function pr(e){return mr.apply(this,arguments)}function mr(){return mr=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h;return U().w((function(e){for(;;)switch(e.n){case 0:if("undefined"==typeof DecompressionStream){e.n=6;break}n=new DecompressionStream("gzip"),r=n.writable.getWriter(),o=r.write(t).then((function(){return r.close()})),i=[],a=n.readable.getReader();case 1:return e.n=2,a.read();case 2:if(c=(s=e.v).value,!s.done){e.n=3;break}return e.a(3,4);case 3:i.push(c),e.n=1;break;case 4:return e.n=5,o;case 5:for(l=i.reduce((function(e,t){return e+t.length}),0),u=new Uint8Array(l),d=0,A=0,f=i;A<f.length;A++)u.set(h=f[A],d),d+=h.length;return e.a(2,u);case 6:return e.a(2,Dn(t,void 0));case 7:return e.a(2)}}),e)}))),mr.apply(this,arguments)}function yr(e){return _r.apply(this,arguments)}function _r(){return(_r=B(U().m((function e(t){var n;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,hr(t);case 1:return e.a(2,e.v);case 2:if(e.p=2,!/invalid bgzf header/.exec("".concat(n=e.v))){e.n=4;break}if(!((r=t).length>=2&&31===r[0]&&139===r[1])){e.n=3;break}return e.a(2,pr(t));case 3:throw new Error("problem decompressing block: not a valid bgzf or gzip block");case 4:if(!/invalid gzip header/.exec("".concat(n))){e.n=5;break}throw new Error("problem decompressing block: incorrect gzip header check");case 5:throw n;case 6:return e.a(2)}var r}),e,null,[[0,2]])})))).apply(this,arguments)}function vr(e,t){var n,r=new Uint8Array(function(e){var t,n=0,r=F(e);try{for(r.s();!(t=r.n()).done;)n+=t.value.length}catch(e){r.e(e)}finally{r.f()}return n}(e)),o=0,i=F(e);try{for(i.s();!(n=i.n()).done;){var a=n.value;r.set(a,o),o+=a.length}}catch(e){i.e(e)}finally{i.f()}return r}var br=function(){return D((function e(t){var n=t.filehandle,r=t.gziFilehandle;N(this,e),T(this,"filehandle",void 0),T(this,"gzi",void 0),this.filehandle=n,this.gzi=new Dt({filehandle:r})}),[{key:"_readAndUncompressBlock",value:(t=B(U().m((function e(t,n){var r,o;return U().w((function(e){for(;;)switch(e.n){case 0:if(r=n){e.n=2;break}return e.n=1,this.filehandle.stat();case 1:r=e.v.size;case 2:return o=r-t,e.n=3,this.filehandle.read(o,t);case 3:return e.a(2,yr(e.v))}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"read",value:(e=B(U().m((function e(t,n){var r,o,i,a,s,c,l,u;return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this.gzi.getRelevantBlocksForRead(t,n);case 1:r=e.v,o=[],i=0;case 2:if(!(i<r.length-1)){e.n=5;break}return e.n=3,this._readAndUncompressBlock(r[i][0],r[i+1][0]);case 3:a=e.v,s=K(r[i],2),l=(c=s[1])>=n?0:n-c,u=Math.min(n+t,c+a.length)-c,l>=0&&l<a.length&&o.push(a.subarray(l,u));case 4:i+=1,e.n=2;break;case 5:return e.a(2,vr(o))}}),e,this)}))),function(t,n){return e.apply(this,arguments)})}]);var e,t}();function Cr(e,t,n,r){return e+t*Math.floor(r/n)+r%n}function Ir(e){return wr.apply(this,arguments)}function wr(){return wr=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C=arguments;return U().w((function(e){for(;;)switch(e.n){case 0:return n=C.length>1&&void 0!==C[1]?C[1]:{},r=new TextDecoder("utf8"),b=r,e.n=1,t.readFile(n);case 1:o=b.decode.call(b,e.v),i=[],a=[],s=[],c=[],l=[],u={},d=0,A=o.length,f=0;case 2:if(!(d<A)){e.n=5;break}if(-1===(h=o.indexOf("\n",d))&&(h=A),(g=o.slice(d,h)).endsWith("\r")&&(g=g.slice(0,-1)),g=g.trim(),d=h+1,0!==g.length){e.n=3;break}return e.a(3,2);case 3:if(p=g.indexOf("\t"),m=g.indexOf("\t",p+1),y=g.indexOf("\t",m+1),_=g.indexOf("\t",y+1),!(v=g.slice(0,p)).startsWith(">")){e.n=4;break}throw new Error("found > in sequence name, might have supplied FASTA file for the FASTA index");case 4:i.push(v),s.push(+g.slice(p+1,m)),a.push(+g.slice(m+1,y)),c.push(+g.slice(y+1,_)),l.push(+g.slice(_+1)),u[v]=f,f++,e.n=2;break;case 5:return e.a(2,{names:i,nameToIndex:u,offsets:a,lengths:s,lineLengths:c,lineBytes:l})}}),e)}))),wr.apply(this,arguments)}var Er=function(){return D((function e(t){var n=t.fasta,r=t.fai,o=t.path,i=t.faiPath;if(N(this,e),n)this.fasta=n;else{if(!o)throw new Error("Need to pass filehandle for fasta or path to localfile");this.fasta=new Qt(o)}if(r)this.fai=r;else if(i)this.fai=new Qt(i);else{if(!o)throw new Error("Need to pass filehandle for or path to localfile");this.fai=new Qt("".concat(o,".fai"))}}),[{key:"_getIndexes",value:(s=B(U().m((function e(t){var n=this;return U().w((function(e){for(;;)if(0===e.n)return this.indexes||(this.indexes=Ir(this.fai,t).catch((function(e){throw n.indexes=void 0,e}))),e.a(2,this.indexes)}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"getSequenceNames",value:(a=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this._getIndexes(t);case 1:return e.a(2,e.v.names)}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"getSequenceSizes",value:(i=B(U().m((function e(t){var n,r,o;return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this._getIndexes(t);case 1:if(!(n=e.v).sizesCache){for(r={},o=0;o<n.names.length;o++)r[n.names[o]]=n.lengths[o];n.sizesCache=r}return e.a(2,n.sizesCache)}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"getSequenceSize",value:(o=B(U().m((function e(t,n){var r,o;return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this._getIndexes(n);case 1:return e.a(2,void 0!==(o=(r=e.v).nameToIndex[t])?r.lengths[o]:void 0)}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"hasReferenceSequence",value:(r=B(U().m((function e(t,n){return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this._getIndexes(n);case 1:return e.a(2,void 0!==e.v.nameToIndex[t])}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"getResiduesByName",value:(n=B(U().m((function e(t,n,r,o){var i,a;return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,this._getIndexes(o);case 1:if(void 0!==(a=(i=e.v).nameToIndex[t])){e.n=2;break}return e.a(2,void 0);case 2:return e.a(2,this._fetchFromIndex(i.offsets[a],i.lineBytes[a],i.lineLengths[a],i.lengths[a],n,r,o))}}),e,this)}))),function(e,t,r,o){return n.apply(this,arguments)})},{key:"getSequence",value:(t=B(U().m((function e(t,n,r,o){return U().w((function(e){for(;;)if(0===e.n)return e.a(2,this.getResiduesByName(t,n,r,o))}),e,this)}))),function(e,n,r,o){return t.apply(this,arguments)})},{key:"_fetchFromIndex",value:(e=B(U().m((function e(t,n,r,o){var i,a,s,c,l,u,d,A,f=arguments;return U().w((function(e){for(;;)switch(e.n){case 0:if(a=f.length>6?f[6]:void 0,s=f.length>5?f[5]:void 0,!((i=f.length>4&&void 0!==f[4]?f[4]:0)<0)){e.n=1;break}throw new TypeError("regionStart cannot be less than 0");case 1:if((void 0===s||s>o)&&(s=o),!(i>=s)){e.n=2;break}return e.a(2,"");case 2:return c=Cr(t,n,r,i),l=Cr(t,n,r,s)-c,u=new TextDecoder("utf8"),A=u,e.n=3,this.fasta.read(l,c,a);case 3:if(d=A.decode.call(A,e.v).replace(/\s+/g,""),!/[^\x20-\x7e]/.test(d.slice(0,1e3))){e.n=4;break}throw new Error("Non-ASCII characters detected in sequence. The file may be gzip compressed. Use BgzipIndexedFasta for bgzip files, or decompress the file.");case 4:return e.a(2,d)}}),e,this)}))),function(t,n,r,o){return e.apply(this,arguments)})}]);var e,t,n,r,o,i,a,s}(),xr=function(e){function t(e){var n,r=e.fasta,o=e.path,i=e.fai,a=e.faiPath,s=e.gzi,c=e.gziPath;return N(this,t),n=Q(this,t,[{fasta:r,path:o,fai:i,faiPath:a}]),r&&s?n.fasta=new br({filehandle:r,gziFilehandle:s}):o&&c&&(n.fasta=new br({filehandle:new Qt(o),gziFilehandle:new Qt(c)})),n}return O(t,e),D(t)}(Er),Sr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","AddAssemblyFromExternalChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=K(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,externalLocation:r.externalLocation}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x,S,B,k,Q;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.assemblyModel,r=t.checkModel,o=t.refSeqModel,i=t.user,a=this.assembly,s=this.changes,c=this.logger,u=(l=ue.env.CHUNK_SIZE)&&Number(l),d=F(s),e.p=1,d.s();case 2:if((A=d.n()).done){e.n=12;break}return g=(h=A.value).assemblyName,m=(p=h.externalLocation).fa,y=p.fai,v=(_=p.gzi)?new xr({fasta:new kt(m,{fetch:fetch}),fai:new kt(y,{fetch:fetch}),gzi:new kt(_,{fetch:fetch})}):new Er({fasta:new kt(m,{fetch:fetch}),fai:new kt(y,{fetch:fetch})}),e.n=3,v.getSequenceSizes();case 3:if(b=e.v){e.n=4;break}throw new Error("No data read from indexed fasta getSequenceSizes");case 4:return e.n=5,n.findOne({name:g}).exec();case 5:if(!e.v){e.n=6;break}throw new Error('Assembly "'.concat(g,'" already exists'));case 6:return e.n=7,r.find({default:!0}).exec();case 7:return C=e.v.map((function(e){return e._id.toHexString()})),e.n=8,n.create([{_id:a,name:g,user:i,status:-1,externalLocation:p,checks:C}]);case 8:I=K(e.v,1),w=I[0],null===(f=c.debug)||void 0===f||f.call(c,'Added new assembly "'.concat(g,'", docId "').concat(w._id,'"')),k=H(b);case 9:if((Q=k()).done){e.n=11;break}return E=Q.value,e.n=10,o.create([q(q({name:E,assembly:w._id,length:b[E]},u?{chunkSize:u}:null),{},{user:i,status:-1})]);case 10:S=K(e.v,1),B=S[0],null===(x=c.debug)||void 0===x||x.call(c,'Added new refSeq "'.concat(E,'", docId "').concat(B._id,'"')),e.n=9;break;case 11:e.n=2;break;case 12:e.n=14;break;case 13:e.p=13,d.e(e.v);case 14:return e.p=14,d.f(),e.f(14);case 15:return e.a(2)}}),e,this,[[1,13,14,15]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]);var n,r,o}(ht),Br=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","AddAssemblyFromFileChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return'Assembly "'.concat(this.changes[0].assemblyName,'" added successfully. To use it, please refresh the page.')}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.typeName;if(1===t.length){var r=K(t,1)[0];return{typeName:n,assembly:e,assemblyName:r.assemblyName,fileIds:r.fileIds}}return{typeName:n,assembly:e,changes:t}}},{key:"executeOnServer",value:(a=B(U().m((function e(t){var n,r,o,i,a;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=F(this.changes),e.p=1,n.s();case 2:if((r=n.n()).done){e.n=4;break}return i=(o=r.value).assemblyName,a=o.fileIds,e.n=3,"gzi"in a?this.executeOnServerIndexed(t,i,a):this.executeOnServerFasta(t,i,a.fa);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,n.e(e.v);case 6:return e.p=6,n.f(),e.f(6);case 7:return e.a(2)}}),e,this,[[1,5,6,7]])}))),function(e){return a.apply(this,arguments)})},{key:"executeOnServerIndexed",value:(i=B(U().m((function e(t,n,r){var o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x,S,B,k,Q,N,R,D,F;return U().w((function(e){for(;;)switch(e.n){case 0:if(s=(a=ue.env.CHUNK_SIZE)&&Number(a),ue.env.FILE_UPLOAD_FOLDER){e.n=1;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 1:return c=r.fa,l=r.fai,u=r.gzi,d=t.assemblyModel,A=t.checkModel,f=t.fileModel,h=t.filesService,g=t.refSeqModel,p=t.user,e.n=2,f.findById(c);case 2:if(null==(m=e.v)?void 0:m.checksum){e.n=3;break}throw new Error("No checksum for file document ".concat(null==m?void 0:m.id));case 3:return e.n=4,f.findById(l);case 4:if(null==(y=e.v)?void 0:y.checksum){e.n=5;break}throw new Error("No checksum for file document ".concat(null==y?void 0:y.id));case 5:return e.n=6,f.findById(u);case 6:if(null==(_=e.v)?void 0:_.checksum){e.n=7;break}throw new Error("No checksum for file document ".concat(null==_?void 0:_.id));case 7:return v=h.getFileHandle(m),b=h.getFileHandle(y),C=h.getFileHandle(_),I=new xr({fasta:v,fai:b,gzi:C}),e.n=8,I.getSequenceSizes();case 8:return w=e.v,e.n=9,Promise.all([v.close(),b.close(),C.close()]);case 9:return e.n=10,d.findOne({name:n}).exec();case 10:if(!e.v){e.n=11;break}throw new Error('Assembly "'.concat(n,'" already exists'));case 11:return e.n=12,A.find({isDefault:!0}).exec();case 12:return E=e.v.map((function(e){return e._id.toHexString()})),e.n=13,d.create([{_id:this.assembly,name:n,user:p,status:-1,fileIds:r,checks:E}]);case 13:x=K(e.v,1),S=x[0],null===(o=(i=this.logger).debug)||void 0===o||o.call(i,'Added new assembly "'.concat(n,'", docId "').concat(S._id,'"')),D=H(w);case 14:if((F=D()).done){e.n=16;break}return B=F.value,e.n=15,g.create([q(q({name:B,assembly:S._id,length:w[B]},s?{chunkSize:s}:null),{},{user:p,status:-1})]);case 15:N=K(e.v,1),R=N[0],null===(k=(Q=this.logger).debug)||void 0===k||k.call(Q,'Added new refSeq "'.concat(B,'", docId "').concat(R._id,'"')),e.n=14;break;case 16:return e.a(2)}}),e,this)}))),function(e,t,n){return i.apply(this,arguments)})},{key:"executeOnServerFasta",value:(o=B(U().m((function e(t,n,r){var o,i,a,s,c,l,u,d,A,f,h,g,p,m;return U().w((function(e){for(;;)switch(e.n){case 0:return u=t.assemblyModel,d=t.checkModel,A=t.fileModel,f=t.user,e.n=1,A.findById(r).exec();case 1:if(h=e.v){e.n=2;break}throw new Error('File "'.concat(r,'" not found in Mongo'));case 2:return null===(o=(i=this.logger).debug)||void 0===o||o.call(i,'FileId "'.concat(r,'", checksum "').concat(h.checksum,'"')),e.n=3,u.findOne({name:n}).exec();case 3:if(!e.v){e.n=4;break}throw new Error('Assembly "'.concat(n,'" already exists'));case 4:return e.n=5,d.find({default:!0}).exec();case 5:return g=e.v.map((function(e){return e._id.toHexString()})),e.n=6,u.create([{_id:this.assembly,name:n,user:f,status:-1,fileIds:{fa:r},checks:g}]);case 6:return p=K(e.v,1),m=p[0],null===(a=(s=this.logger).debug)||void 0===a||a.call(s,'Added new assembly "'.concat(n,'", docId "').concat(m._id,'"')),null===(c=(l=this.logger).debug)||void 0===c||c.call(l,'File type: "'.concat(h.type,'", assemblyId: "').concat(m._id,'"')),e.n=7,this.addRefSeqIntoDb(h,m._id.toString(),t);case 7:return e.a(2)}}),e,this)}))),function(e,t,n){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]);var n,r,o,i,a}(Et),kr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","DeleteFeatureChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return"Feature deleted successfully"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,deletedFeature:o.deletedFeature,parentFeatureId:o.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d=this;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=this.changes,i=this.logger,(a=ue.env.INDEXED_IDS)&&(s=a.split(",")),c=F(o),e.p=1,u=U().m((function e(){var t,o,a,c,u,A,f,h,g,p,m;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:return a=(o=l.value).deletedFeature,c=o.parentFeatureId,e.n=1,n.findOne({allIds:a._id}).session(r).exec();case 1:if(u=e.v){e.n=2;break}throw A="*** ERROR: The following featureId was not found in database ='".concat(a._id,"'"),i.error(A),new Error(A);case 2:if(!u._id.equals(a._id)){e.n=5;break}if(!c){e.n=3;break}throw new Error('Feature "'.concat(a._id,'" is top-level, but received a parent feature ID'));case 3:return e.n=4,n.findByIdAndDelete(u._id);case 4:return null===(f=i.debug)||void 0===f||f.call(i,'Feature "'.concat(a._id,'" deleted from document "').concat(u._id,'". Whole document deleted.')),e.a(2,1);case 5:return(h=Qr(u,a._id,d)).push(a._id),u.allIds=u.allIds.filter((function(e){return!h.includes(e)})),g=d.getIndexedIds(u,s),u.indexedIds?g.length>0?u.indexedIds=g:delete u.indexedIds:g.length>0&&(u.indexedIds=g),u.markModified("children"),e.p=6,e.n=7,u.save();case 7:e.n=9;break;case 8:throw e.p=8,m=e.v,null===(p=i.debug)||void 0===p||p.call(i,"*** FAILED: ".concat(m)),m;case 9:null===(t=i.debug)||void 0===t||t.call(i,'Feature "'.concat(a._id,'" deleted from document "').concat(u._id,'"'));case 10:return e.a(2)}}),e,null,[[6,8]])})),c.s();case 2:if((l=c.n()).done){e.n=5;break}return e.d(Y(u()),3);case 3:if(!e.v){e.n=4;break}return e.a(3,4);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,c.e(e.v);case 7:return e.p=7,c.f(),e.f(7);case 8:return e.a(2)}}),e,this,[[1,6,7,8]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changes),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=7;break}if(i=(o=r.value).deletedFeature,!(a=o.parentFeatureId)){e.n=5;break}if(s=t.getFeature(a)){e.n=4;break}throw new Error('Could not find parent feature "'.concat(a,'"'));case 4:s.deleteChild(i._id),e.n=6;break;case 5:t.getFeature(i._id)&&t.deleteFeature(i._id);case 6:e.n=3;break;case 7:e.n=9;break;case 8:e.p=8,n.e(e.v);case 9:return e.p=9,n.f(),e.f(9);case 10:return e.a(2)}}),e,this,[[2,8,9,10]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,o=V(this.changedIds).reverse(),i=V(n).reverse().map((function(e){return{addedFeature:e.deletedFeature,parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(i),"'")),new Nr({changedIds:o,typeName:"AddFeatureChange",changes:i,assembly:t},{logger:r})}}]);var n,r,o}(pt);function Qr(e,t,n){if(!e.children)throw new Error("Feature ".concat(e._id," has no children"));var r=e._id,o=e.children,i=o.get(t);if(i){var a=n.getChildFeatureIds(i);return o.delete(t),a}var s,c=F(o);try{for(c.s();!(s=c.n()).done;){var l=K(s.value,2)[1];try{return Qr(l,t,n)}catch(e){}}}catch(e){c.e(e)}finally{c.f()}throw new Error('Feature "'.concat(t,'" not found in ').concat(r))}var Nr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","AddFeatureChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return"Feature added successfully"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,addedFeature:o.addedFeature,parentFeatureId:o.parentFeatureId,copyFeature:o.copyFeature,allIds:o.allIds}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x,S,B,k,Q,N,R,D,T,j,M,O,L,P,J;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:return o=t.assemblyModel,i=t.featureModel,a=t.refSeqModel,s=t.session,c=t.user,l=this.assembly,u=this.changes,d=this.logger,e.n=1,o.findById(l).session(s).exec();case 1:if(e.v){e.n=2;break}throw A='*** ERROR: Assembly with id "'.concat(l,'" not found'),d.error(A),new Error(A);case 2:f=0,null===(n=d.debug)||void 0===n||n.call(d,"changes: ".concat(JSON.stringify(u))),(h=ue.env.INDEXED_IDS)&&(g=h.split(",")),p=F(u),e.p=3,p.s();case 4:if((m=p.n()).done){e.n=17;break}return _=m.value,null===(y=d.debug)||void 0===y||y.call(d,"change: ".concat(JSON.stringify(_))),b=_.allIds,C=_.copyFeature,I=_.parentFeatureId,w=(v=_.addedFeature)._id,E=v.refSeq,e.n=5,a.findById(E).session(s).exec();case 5:if(e.v){e.n=6;break}throw new Error('RefSeq was not found by assembly "'.concat(l,'" and seq_id "').concat(E,'" not found'));case 6:if(!C){e.n=8;break}return S=this.getIndexedIds(v,g),e.n=7,i.create([q(q({},v),{},{allIds:b,indexedIds:S,status:-1,user:c})],{session:s});case 7:B=K(e.v,1),k=B[0],null===(x=d.debug)||void 0===x||x.call(d,'Copied feature, docId "'.concat(k._id,'" to assembly "').concat(l,'"')),f++,e.n=15;break;case 8:if(Q=this.getIndexedIds(v,g),!I){e.n=13;break}return e.n=9,i.findOne({allIds:I}).session(s).exec();case 9:if(D=e.v){e.n=10;break}throw new Error('Could not find feature with ID "'.concat(I,'"'));case 10:if(T=this.getFeatureFromId(D,I)){e.n=11;break}throw new Error('Could not find feature with ID "'.concat(I,'" in feature "').concat(D._id,'"'));case 11:return this.addChild(T,v),j=this.getChildFeatureIds(v),(N=D.allIds).push.apply(N,[w].concat(V(j))),Q.length>0&&!D.indexedIds&&(D.indexedIds=[]),null===(R=D.indexedIds)||void 0===R||R.push.apply(R,V(Q)),e.n=12,D.save();case 12:e.n=15;break;case 13:return O=this.getChildFeatureIds(v),L=[w].concat(V(O)),e.n=14,i.create([q({allIds:L,indexedIds:Q,status:0},v)],{session:s});case 14:P=K(e.v,1),J=P[0],null===(M=d.verbose)||void 0===M||M.call(d,'Added docId "'.concat(J._id,'"'));case 15:f++;case 16:e.n=4;break;case 17:e.n=19;break;case 18:e.p=18,p.e(e.v);case 19:return e.p=19,p.f(),e.f(19);case 20:null===(r=d.debug)||void 0===r||r.call(d,"Added ".concat(f," new feature(s) into database."));case 21:return e.a(2)}}),e,this,[[3,18,19,20]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s,c;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=this.assembly,r=F(this.changes),e.p=2,r.s();case 3:if((o=r.n()).done){e.n=8;break}if(a=(i=o.value).addedFeature,!(s=i.parentFeatureId)){e.n=6;break}if(c=t.getFeature(s)){e.n=5;break}return e.n=4,t.loadFeatures([{assemblyName:n,refName:a.refSeq,start:a.min,end:a.max}]);case 4:if(c=t.getFeature(s)){e.n=5;break}throw new Error('Could not find parent feature "'.concat(s,'"'));case 5:c.attributes.get("_id")||c.setAttribute("_id",[c._id]),c.addChild(a),e.n=7;break;case 6:t.addFeature(n,a);case 7:e.n=3;break;case 8:e.n=10;break;case 9:e.p=9,r.e(e.v);case 10:return e.p=10,r.f(),e.f(10);case 11:return e.a(2)}}),e,this,[[2,9,10,11]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=V(this.changedIds).reverse(),o=V(t).reverse().map((function(e){return{deletedFeature:e.addedFeature,parentFeatureId:e.parentFeatureId}}));return new kr({changedIds:r,typeName:"DeleteFeatureChange",changes:o,assembly:e},{logger:n})}}]);var n,r,o}(pt),Rr=function(e){function t(e,n){var r,o;return N(this,t),T(o=Q(this,t,[e,n]),"typeName","AddFeaturesFromFileChange"),T(o,"changes",void 0),T(o,"deleteExistingFeatures",!1),o.deleteExistingFeatures=null!==(r=e.deleteExistingFeatures)&&void 0!==r&&r,o.changes="changes"in e?e.changes:[e],o}return O(t,e),D(t,[{key:"notification",get:function(){return"Features have been added. To see them, please refresh the page."}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changes,n=this.deleteExistingFeatures,r=this.typeName;return 1===t.length?{typeName:r,assembly:e,fileId:K(t,1)[0].fileId,deleteExistingFeatures:n}:{typeName:r,assembly:e,changes:t,deleteExistingFeatures:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g=this;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(r=t.fileModel,o=t.filesService,i=this.changes,a=this.logger,!this.deleteExistingFeatures){e.n=1;break}return e.n=1,this.removeExistingFeatures(t);case 1:s=F(i),e.p=2,l=U().m((function e(){var n,i,s,l,p,m,y,_,v,b,C,I,w,x,S,B,k;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(s=(i=c.value).fileId,l=i.parseOptions,ue.env.FILE_UPLOAD_FOLDER){e.n=1;break}throw new Error("No FILE_UPLOAD_FOLDER found in .env file");case 1:return e.n=2,r.findById(s).exec();case 2:if(p=e.v){e.n=3;break}throw new Error('File "'.concat(s,'" not found in Mongo'));case 3:null===(n=a.debug)||void 0===n||n.call(a,'FileId "'.concat(s,'", checksum "').concat(p.checksum,'"')),m=0,y=function(e){m<=99&&(a.warn("Error parsing or adding feature"),a.warn(e),99===m&&a.warn("Reached 100 feature errors, omitting further warnings from log")),m++},b=void 0===(v=(_=null!=l?l:{}).bufferSize)?1e4:v,I=void 0===(C=_.strict)||C,w=o.parseGFF3(o.getFileStream(p),{bufferSize:b,errorCallback:I?void 0:y}),x=0,u=!1,d=!1,e.p=4,f=E(w);case 5:return e.n=6,f.next();case 6:if(!(u=!(h=e.v).done)){e.n=13;break}return S=h.value,e.p=7,e.n=8,g.addFeatureIntoDb(S,t);case 8:e.n=11;break;case 9:if(e.p=9,k=e.v,!I&&0!==x){e.n=10;break}throw k;case 10:y(k);case 11:++x%1e3==0&&(null===(B=a.debug)||void 0===B||B.call(a,"Processed ".concat(x," features")));case 12:u=!1,e.n=5;break;case 13:e.n=15;break;case 14:e.p=14,d=!0,A=e.v;case 15:if(e.p=15,e.p=16,!u||null==f.return){e.n=17;break}return e.n=17,f.return();case 17:if(e.p=17,!d){e.n=18;break}throw A;case 18:return e.f(17);case 19:return e.f(15);case 20:return e.a(2)}}),e,null,[[16,,17,19],[7,9],[4,14,15,20]])})),s.s();case 3:if((c=s.n()).done){e.n=5;break}return e.d(Y(l()),4);case 4:e.n=3;break;case 5:e.n=7;break;case 6:e.p=6,s.e(e.v);case 7:return e.p=7,s.f(),e.f(7);case 8:null===(n=a.debug)||void 0===n||n.call(a,"New features added into database!");case 9:return e.a(2)}}),e,this,[[2,6,7,8]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:this.typeName,changes:this.changes,assembly:this.assembly},{logger:this.logger})}}]);var n,r,o}(Et),Dr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","AddRefSeqAliasesChange"),T(r,"refSeqAliases",void 0),r.refSeqAliases=e.refSeqAliases,r}return O(t,e),D(t,[{key:"executeOnClient",value:function(e){var t,n=o.getSession(e).assemblyManager.get(this.assembly);if(!n)throw new Error("assembly ".concat(this.assembly," not found"));var r,i=null!==(t=n.refNameAliases)&&void 0!==t?t:{},a=F(this.refSeqAliases);try{for(a.s();!(r=a.n()).done;){var s,c=r.value,l=c.refName,u=F(c.aliases);try{for(u.s();!(s=u.n()).done;)i[s.value]=l}catch(e){u.e(e)}finally{u.f()}}}catch(e){a.e(e)}finally{a.f()}return n.setRefNameAliases(i),Promise.resolve()}},{key:"getInverse",value:function(){throw new Error("Method not implemented.")}},{key:"toJSON",value:function(){return{assembly:this.assembly,typeName:this.typeName,refSeqAliases:this.refSeqAliases}}},{key:"executeOnServer",value:(n=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.refSeqModel,r=t.session,o=this.assembly,i=this.logger,a=F(this.refSeqAliases),e.p=1,a.s();case 2:if((s=a.n()).done){e.n=4;break}return l=s.value,null===(c=i.debug)||void 0===c||c.call(i,"Updating Refname alias for assembly: ".concat(o,", refSeqAlias: ").concat(JSON.stringify(l))),u=l.aliases,d=l.refName,e.n=3,n.updateOne({assembly:o,name:d},{$set:{aliases:u}}).session(r);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,a.e(e.v);case 6:return e.p=6,a.f(),e.f(6);case 7:return e.a(2)}}),e,this,[[1,5,6,7]])}))),function(e){return n.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:function(e){throw new Error("Method not implemented.")}},{key:"notification",get:function(){return"RefSeq aliases have been added."}}]);var n}(ht),Fr=function(e){function t(){var e;N(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return T(e=Q(this,t,[].concat(r)),"typeName","DeleteAssemblyChange"),e}return O(t,e),D(t,[{key:"notification",get:function(){return'Assembly "'.concat(this.assembly,'" deleted successfully.')}},{key:"toJSON",value:function(){return{typeName:this.typeName,assembly:this.assembly}}},{key:"executeOnServer",value:(i=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d;return U().w((function(e){for(;;)switch(e.n){case 0:return r=t.assemblyModel,o=t.featureModel,i=t.refSeqChunkModel,a=t.refSeqModel,s=t.session,c=this.assembly,l=this.logger,e.n=1,r.findById(c).session(s).exec();case 1:if(e.v){e.n=2;break}throw u='*** ERROR: Assembly with id "'.concat(c,'" not found'),l.error(u),new Error(u);case 2:return e.n=3,a.find({assembly:c}).exec();case 3:return d=e.v.map((function(e){return e._id})),e.n=4,i.deleteMany({refSeq:d}).exec();case 4:return e.n=5,o.deleteMany({refSeq:d}).exec();case 5:return e.n=6,a.deleteMany({assembly:c}).exec();case 6:return e.n=7,r.findByIdAndDelete(c).exec();case 7:null===(n=l.debug)||void 0===n||n.call(l,'Assembly "'.concat(c,'" deleted from database.'));case 8:return e.a(2)}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,i,a;return U().w((function(e){for(;;)switch(e.n){case 0:if(i=this.assembly,t){e.n=1;break}throw new Error("No data store");case 1:return a=o.getSession(t),t.assemblies.has(i)&&t.deleteAssembly(i),e.n=2,null===(n=a.removeAssembly)||void 0===n?void 0:n.call(a,i);case 2:return e.n=3,null===(r=a.removeSessionAssembly)||void 0===r?void 0:r.call(a,i);case 3:return e.a(2)}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:"DeleteAssemblyChange",assembly:this.assembly},{logger:this.logger})}}]);var n,r,i}(ht),Tr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","DeleteUserChange"),T(r,"changes",void 0),T(r,"userId",void 0),r.changes="changes"in e?e.changes:[e],r.userId=e.userId,r}return O(t,e),D(t,[{key:"toJSON",value:function(){return{typeName:this.typeName,userId:this.userId}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a;return U().w((function(e){for(;;)switch(e.n){case 0:return n=t.session,r=t.userModel,o=this.logger,i=this.userId,e.n=1,r.findOneAndDelete({_id:i}).session(n).exec();case 1:if(e.v){e.n=2;break}throw a='*** ERROR: User with id "'.concat(i,'" not found'),o.error(a),new Error(a);case 2:return e.a(2)}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:this.typeName,userId:this.userId},{logger:this.logger})}}]);var n,r,o}(ft),jr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","FeatureAttributeChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:o.featureId,oldAttributes:o.oldAttributes,newAttributes:o.newAttributes}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v=this;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,i=this.logger,a=[],s=F(o=this.changes),e.p=1,s.s();case 2:if((c=s.n()).done){e.n=7;break}return d=c.value.featureId,e.n=3,n.findOne({allIds:d}).session(r).exec();case 3:if(A=e.v){e.n=4;break}throw f="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),i.error(f),new Error(f);case 4:if(null===(l=i.debug)||void 0===l||l.call(i,"*** Feature found: ".concat(JSON.stringify(A))),h=this.getFeatureFromId(A,d)){e.n=5;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 5:null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(h))),a.push({feature:h,topLevelFeature:A});case 6:e.n=2;break;case 7:e.n=9;break;case 8:e.p=8,s.e(e.v);case 9:return e.p=9,s.f(),e.f(9);case 10:(g=ue.env.INDEXED_IDS)&&(p=g.split(",")),m=F(o.entries()),e.p=11,_=U().m((function e(){var t,n,r,o,s,c,l,u,d,A,f;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=K(y.value,2),o=r[1].newAttributes,c=(s=a[r[0]]).feature,l=s.topLevelFeature,u=null===(t=p)||void 0===t?void 0:t.some((function(e){var t;return e in o||e in(null!==(t=null==c?void 0:c.attributes)&&void 0!==t?t:{})})),c.attributes=o,u&&(d=v.getIndexedIds(l,p),l.indexedIds=d,l.markModified("indexedIds")),l._id.equals(c._id)?l.markModified("attributes"):l.markModified("children"),e.p=1,e.n=2,l.save();case 2:e.n=4;break;case 3:throw e.p=3,f=e.v,null===(A=i.debug)||void 0===A||A.call(i,"*** FAILED: ".concat(f)),f;case 4:null===(n=i.debug)||void 0===n||n.call(i,"*** Feature attributes modified (added, edited or deleted), docId: ".concat(JSON.stringify(l)));case 5:return e.a(2)}}),e,null,[[1,3]])})),m.s();case 12:if((y=m.n()).done){e.n=14;break}return e.d(Y(_()),13);case 13:e.n=12;break;case 14:e.n=16;break;case 15:e.p=15,m.e(e.v);case 16:return e.p=16,m.f(),e.f(16);case 17:return e.a(2)}}),e,this,[[11,15,16,17],[1,8,9,10]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("applyToLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changedIds.entries()),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=6;break}if(o=K(r.value,2),i=o[0],s=t.getFeature(a=o[1])){e.n=4;break}throw new Error('Could not find feature with identifier "'.concat(a,'"'));case 4:s.setAttributes(new Map(Object.entries(this.changes[i].newAttributes)));case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,n.e(e.v);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2)}}),e,this,[[2,7,8,9]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,n=this.changes,r=this.logger;return new t({changedIds:V(this.changedIds).reverse(),typeName:"FeatureAttributeChange",changes:V(n).reverse().map((function(e){return{featureId:e.featureId,oldAttributes:e.newAttributes,newAttributes:e.oldAttributes}})),assembly:e},{logger:r})}}]);var n,r,o}(pt),Mr=["__v","_id","assemblies","configuration","internetAccounts","plugins","tracks"],Or=["hasRole"];function Lr(e){var t,n=e.assemblies,r=e.configuration,o=e.internetAccounts,i=e.plugins,a=e.tracks,s=J(e,Mr);if(n&&(s.assemblies=n.filter((function(e){return"ApolloSequenceAdapter"!==e.sequence.adapter.type}))),null!=r&&null!==(t=r.ApolloPlugin)&&void 0!==t&&t.hasRole){var c=J(r.ApolloPlugin,Or);s.configuration=q(q({},r),{},{ApolloPlugin:c})}return o&&(s.internetAccounts=o.filter((function(e){return"ApolloInternetAccount"!==e.type}))),i&&(s.plugins=i.filter((function(e){return"Apollo"!==e.name}))),a&&(s.tracks=a.filter((function(e){return"ApolloTrack"!==e.type}))),s}var Pr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","ImportJBrowseConfigChange"),T(r,"oldJBrowseConfig",void 0),T(r,"newJBrowseConfig",void 0),r.oldJBrowseConfig=e.oldJBrowseConfig,r.newJBrowseConfig=e.newJBrowseConfig,r}return O(t,e),D(t,[{key:"toJSON",value:function(){return{typeName:this.typeName,oldJBrowseConfig:this.oldJBrowseConfig,newJBrowseConfig:this.newJBrowseConfig}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a;return U().w((function(e){for(;;)switch(e.n){case 0:return r=t.jbrowseConfigModel,o=this.logger,i=this.newJBrowseConfig,e.n=1,r.deleteMany();case 1:if(i){e.n=2;break}return e.a(2);case 2:return a=Lr(i),e.n=3,r.create(a);case 3:null===(n=o.debug)||void 0===n||n.call(o,"Stored new JBrowse Config");case 4:return e.a(2)}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:this.newJBrowseConfig,newJBrowseConfig:this.oldJBrowseConfig},{logger:this.logger})}}]);var n,r,o}(ft),qr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","LocationEndChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:o.featureId,oldEnd:o.oldEnd,newEnd:o.newEnd}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=this.logger,i=[],a=F(this.changes),e.p=1,a.s();case 2:if((s=a.n()).done){e.n=16;break}d=(u=s.value).featureId,A=u.oldEnd,f=u.newEnd,h=void 0,g=void 0,p=F(i),e.p=3,p.s();case 4:if((m=p.n()).done){e.n=6;break}if(!(_=this.getFeatureFromId(y=m.value,d))){e.n=5;break}return h=y,g=_,e.a(3,6);case 5:e.n=4;break;case 6:e.n=8;break;case 7:e.p=7,p.e(e.v);case 8:return e.p=8,p.f(),e.f(8);case 9:if(h){e.n=11;break}return e.n=10,n.findOne({allIds:d}).session(r).exec();case 10:(h=e.v)&&i.push(h);case 11:if(h){e.n=12;break}throw v="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),o.error(v),new Error(v);case 12:if(null===(c=o.debug)||void 0===c||c.call(o,"*** TOP level feature found: ".concat(JSON.stringify(h))),g||(g=this.getFeatureFromId(h,d)),g){e.n=13;break}throw o.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 13:if(null===(l=o.debug)||void 0===l||l.call(o,"*** Found feature: ".concat(JSON.stringify(g))),g.max===A){e.n=14;break}throw o.error("Expected previous max does not match"),new Error("Expected previous max does not match");case 14:g.max=f,h._id.equals(g._id)?h.markModified("end"):h.markModified("children");case 15:e.n=2;break;case 16:e.n=18;break;case 17:e.p=17,a.e(e.v);case 18:return e.p=18,a.f(),e.f(18);case 19:b=0,C=i;case 20:if(!(b<C.length)){e.n=25;break}return I=C[b],e.p=21,e.n=22,I.save();case 22:e.n=24;break;case 23:throw e.p=23,E=e.v,null===(w=o.debug)||void 0===w||w.call(o,"*** FAILED: ".concat(E)),E;case 24:b++,e.n=20;break;case 25:return e.a(2)}}),e,this,[[21,23],[3,7,8,9],[1,17,18,19]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changes),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=6;break}if(a=(o=r.value).newEnd,s=t.getFeature(i=o.featureId)){e.n=4;break}throw new Error('Could not find feature with identifier "'.concat(i,'"'));case 4:s.setMax(a);case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,n.e(e.v);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2)}}),e,this,[[2,7,8,9]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,n=this.changes,r=this.logger,o=this.typeName;return new t({changedIds:V(this.changedIds).reverse(),typeName:o,changes:V(n).reverse().map((function(e){return{featureId:e.featureId,oldEnd:e.newEnd,newEnd:e.oldEnd}})),assembly:e},{logger:r})}}]);var n,r,o}(pt);function Jr(e){return"LocationEndChange"===e.typeName}var Ur=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","LocationStartChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:o.featureId,oldStart:o.oldStart,newStart:o.newStart}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=this.logger,i=[],a=F(this.changes),e.p=1,a.s();case 2:if((s=a.n()).done){e.n=16;break}d=(u=s.value).featureId,A=u.oldStart,f=u.newStart,h=void 0,g=void 0,p=F(i),e.p=3,p.s();case 4:if((m=p.n()).done){e.n=6;break}if(!(_=this.getFeatureFromId(y=m.value,d))){e.n=5;break}return h=y,g=_,e.a(3,6);case 5:e.n=4;break;case 6:e.n=8;break;case 7:e.p=7,p.e(e.v);case 8:return e.p=8,p.f(),e.f(8);case 9:if(h){e.n=11;break}return e.n=10,n.findOne({allIds:d}).session(r).exec();case 10:(h=e.v)&&i.push(h);case 11:if(h){e.n=12;break}throw v="*** ERROR: The following featureId was not found in database ='".concat(d,"'"),o.error(v),new Error(v);case 12:if(null===(c=o.debug)||void 0===c||c.call(o,"*** TOP level feature found: ".concat(JSON.stringify(h))),g||(g=this.getFeatureFromId(h,d)),g){e.n=13;break}throw o.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 13:if(null===(l=o.debug)||void 0===l||l.call(o,"*** Found feature: ".concat(JSON.stringify(g))),g.min===A){e.n=14;break}throw o.error("Expected previous max does not match"),new Error("Expected previous max does not match");case 14:g.min=f,h._id.equals(g._id)?h.markModified("start"):h.markModified("children");case 15:e.n=2;break;case 16:e.n=18;break;case 17:e.p=17,a.e(e.v);case 18:return e.p=18,a.f(),e.f(18);case 19:b=0,C=i;case 20:if(!(b<C.length)){e.n=25;break}return I=C[b],e.p=21,e.n=22,I.save();case 22:e.n=24;break;case 23:throw e.p=23,E=e.v,null===(w=o.debug)||void 0===w||w.call(o,"*** FAILED: ".concat(E)),E;case 24:b++,e.n=20;break;case 25:return e.a(2)}}),e,this,[[21,23],[3,7,8,9],[1,17,18,19]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changes),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=6;break}if(a=(o=r.value).newStart,s=t.getFeature(i=o.featureId)){e.n=4;break}throw new Error('Could not find feature with identifier "'.concat(i,'"'));case 4:s.setMin(a);case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,n.e(e.v);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2)}}),e,this,[[2,7,8,9]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,n=this.changes,r=this.logger,o=this.typeName;return new t({changedIds:V(this.changedIds).reverse(),typeName:o,changes:V(n).reverse().map((function(e){return{featureId:e.featureId,oldStart:e.newStart,newStart:e.oldStart}})),assembly:e},{logger:r})}}]);var n,r,o}(pt);function Gr(e){return"LocationStartChange"===e.typeName}function Hr(e,t){for(var n=[],r=0;r<e.length;r+=t){var o=e.slice(r,r+t);n.push(o)}return n}function Yr(e){var t,n,r=e,o=null===(t=r.attributes.get("gff_id"))||void 0===t?void 0:t.join(",");if(o)return"ID=".concat(o," (_id: ").concat(e._id.toString(),")");var i=null===(n=r.attributes.get("gff_name"))||void 0===n?void 0:n.join(",");return i?"Name=".concat(i," (_id: ").concat(e._id.toString(),")"):"_id: ".concat(e._id.toString())}function zr(e){var t={};if(!e)return t;for(var n=0,r=Object.entries(e);n<r.length;n++){var o=K(r[n],2),i=o[1];t[o[0]]=null==i?void 0:i.slice()}return t}function Kr(e){if(!e)return"";for(var t=[],n=0,r=Object.entries(e);n<r.length;n++){var o=K(r[n],2),i=o[1],a=o[0];a.startsWith("gff_")&&(a=(a=a.slice(4)).charAt(0).toUpperCase()+a.slice(1)),t.push(i?"".concat(a,"=").concat(i.join(",")):a)}return encodeURIComponent(t.join(";"))}var Wr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","UndoMergeExonsChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,exonsToRestore:o.exonsToRestore,parentFeatureId:o.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=F(this.changes),e.p=1,o.s();case 2:if((i=o.n()).done){e.n=8;break}if(c=(a=i.value).parentFeatureId,2===(s=a.exonsToRestore).length){e.n=3;break}throw new Error("Expected exactly two exons to restore. Got :".concat(s.length));case 3:return e.n=4,n.findOne({allIds:c}).session(r).exec();case 4:if(l=e.v){e.n=5;break}throw new Error('Could not find feature with ID "'.concat(c,'"'));case 5:if(u=this.getFeatureFromId(l,c)){e.n=6;break}throw new Error('Could not find feature with ID "'.concat(c,'" in feature "').concat(l._id.toString(),'"'));case 6:u.children||(u.children=new Map),d=F(s);try{for(d.s();!(A=d.n()).done;)this.addChild(u,h=A.value),g=this.getChildFeatureIds(h),(f=l.allIds).push.apply(f,[h._id].concat(V(g)))}catch(e){d.e(e)}finally{d.f()}return e.n=7,l.save();case 7:e.n=2;break;case 8:e.n=10;break;case 9:e.p=9,o.e(e.v);case 10:return e.p=10,o.f(),e.f(10);case 11:return e.a(2)}}),e,this,[[1,9,10,11]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s,c,l;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changes),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=7;break}if(i=(o=r.value).exonsToRestore,a=o.parentFeatureId){e.n=4;break}throw new Error("Parent ID is missing");case 4:if(s=t.getFeature(a)){e.n=5;break}throw new Error('Could not find parent feature "'.concat(a,'"'));case 5:s.attributes.get("_id")||s.setAttribute("_id",[s._id]),c=F(i);try{for(c.s();!(l=c.n()).done;)s.addChild(l.value)}catch(e){c.e(e)}finally{c.f()}case 6:e.n=3;break;case 7:e.n=9;break;case 8:e.p=8,n.e(e.v);case 9:return e.p=9,n.f(),e.f(9);case 10:return e.a(2)}}),e,this,[[2,8,9,10]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=V(this.changedIds).reverse(),o=V(t).reverse().map((function(e){return{firstExon:e.exonsToRestore[0],secondExon:e.exonsToRestore[1],parentFeatureId:e.parentFeatureId}}));return new Vr({changedIds:r,typeName:"MergeExonsChange",changes:o,assembly:e},{logger:n})}}]);var n,r,o}(pt),Vr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","MergeExonsChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return"Exons successfully merged"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,firstExon:o.firstExon,secondExon:o.secondExon,parentFeatureId:o.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c=this;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=this.logger,i=F(this.changes),e.p=1,s=U().m((function e(){var t,i,s,l,u,d,A,f;return U().w((function(e){for(;;)switch(e.n){case 0:return i=(t=a.value).firstExon,s=t.secondExon,e.n=1,n.findOne({allIds:i._id}).session(r).exec();case 1:if(l=e.v){e.n=2;break}throw u="*** ERROR: The following featureId was not found in database ='".concat(i._id,"'"),o.error(u),new Error(u);case 2:if(d=c.getFeatureFromId(l,i._id)){e.n=3;break}throw o.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 3:return d.min=Math.min(i.min,s.min),d.max=Math.max(i.max,s.max),(A=d.attributes?JSON.parse(JSON.stringify(d.attributes)):{}).merged_with=[Kr(zr(s.attributes))],d.attributes=A,(f=Qr(l,s._id,c)).push(s._id),l.allIds=l.allIds.filter((function(e){return!f.includes(e)})),e.n=4,l.save();case 4:return e.a(2)}}),e)})),i.s();case 2:if((a=i.n()).done){e.n=4;break}return e.d(Y(s()),3);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,i.e(e.v);case 6:return e.p=6,i.f(),e.f(6);case 7:return e.a(2)}}),e,this,[[1,5,6,7]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changes),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=6;break}if(l=(s=r.value).secondExon,u=t.getFeature((c=s.firstExon)._id)){e.n=4;break}throw new Error('Could not find feature with identifier "'.concat(c._id,'"'));case 4:u.setMin(Math.min(c.min,l.min)),u.setMax(Math.max(c.max,l.max)),d=null!==(o=null===(i=u.attributes.get("merged_with"))||void 0===i?void 0:i.slice())&&void 0!==o?o:[],A=Kr(zr(l.attributes)),d.includes(A)||d.push(A),u.setAttribute("merged_with",d),null===(a=u.parent)||void 0===a||a.deleteChild(l._id);case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,n.e(e.v);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2)}}),e,this,[[2,7,8,9]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,o=V(this.changedIds).reverse(),i=V(n).reverse().map((function(e){return{exonsToRestore:[e.firstExon,e.secondExon],parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(i),"'")),new Wr({changedIds:o,typeName:"UndoMergeExonsChange",changes:i,assembly:t},{logger:r})}}]);var n,r,o}(pt),$r=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","UndoMergeTranscriptsChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,transcriptsToRestore:o.transcriptsToRestore,parentFeatureId:o.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=F(this.changes),e.p=1,o.s();case 2:if((i=o.n()).done){e.n=8;break}if(c=(a=i.value).parentFeatureId,2===(s=a.transcriptsToRestore).length){e.n=3;break}throw new Error("Expected exactly two transcripts to restore. Got :".concat(s.length));case 3:return e.n=4,n.findOne({allIds:c}).session(r).exec();case 4:if(l=e.v){e.n=5;break}throw new Error('Could not find feature with ID "'.concat(c,'"'));case 5:if(u=this.getFeatureFromId(l,c)){e.n=6;break}throw new Error('Could not find feature with ID "'.concat(c,'" in feature "').concat(l._id.toString(),'"'));case 6:u.children||(u.children=new Map),d=F(s);try{for(d.s();!(A=d.n()).done;)this.addChild(u,h=A.value),g=this.getChildFeatureIds(h),(f=l.allIds).push.apply(f,[h._id].concat(V(g)))}catch(e){d.e(e)}finally{d.f()}return e.n=7,l.save();case 7:e.n=2;break;case 8:e.n=10;break;case 9:e.p=9,o.e(e.v);case 10:return e.p=10,o.f(),e.f(10);case 11:return e.a(2)}}),e,this,[[1,9,10,11]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s,c,l;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changes),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=7;break}if(i=(o=r.value).transcriptsToRestore,a=o.parentFeatureId){e.n=4;break}throw new Error("Parent ID is missing");case 4:if(s=t.getFeature(a)){e.n=5;break}throw new Error('Could not find parent feature "'.concat(a,'"'));case 5:s.attributes.get("_id")||s.setAttribute("_id",[s._id]),c=F(i);try{for(c.s();!(l=c.n()).done;)s.addChild(l.value)}catch(e){c.e(e)}finally{c.f()}case 6:e.n=3;break;case 7:e.n=9;break;case 8:e.p=8,n.e(e.v);case 9:return e.p=9,n.f(),e.f(9);case 10:return e.a(2)}}),e,this,[[2,8,9,10]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=V(this.changedIds).reverse(),o=V(t).reverse().map((function(e){return{firstTranscript:e.transcriptsToRestore[0],secondTranscript:e.transcriptsToRestore[1],parentFeatureId:e.parentFeatureId}}));return new Xr({changedIds:r,typeName:"MergeTranscriptsChange",changes:o,assembly:e},{logger:n})}}]);var n,r,o}(pt),Xr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","MergeTranscriptsChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return"Transcripts successfully merged"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,firstTranscript:o.firstTranscript,secondTranscript:o.secondTranscript,parentFeatureId:o.parentFeatureId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(i=B(U().m((function e(t){var n,r,o,i,a,s,c=this;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=this.logger,i=F(this.changes),e.p=1,s=U().m((function e(){var t,i,s,l,u,d,A;return U().w((function(e){for(;;)switch(e.n){case 0:return i=(t=a.value).firstTranscript,s=t.secondTranscript,e.n=1,n.findOne({allIds:i._id}).session(r).exec();case 1:if(l=e.v){e.n=2;break}throw u="*** ERROR: The following featureId was not found in database ='".concat(i._id,"'"),o.error(u),new Error(u);case 2:if(d=c.getFeatureFromId(l,i._id)){e.n=3;break}throw o.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 3:return c.mergeTranscriptsOnServer(d,s),(A=Qr(l,s._id,c)).push(s._id),l.allIds=l.allIds.filter((function(e){return!A.includes(e)})),e.n=4,l.save();case 4:return e.a(2)}}),e)})),i.s();case 2:if((a=i.n()).done){e.n=4;break}return e.d(Y(s()),3);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,i.e(e.v);case 6:return e.p=6,i.f(),e.f(6);case 7:return e.a(2)}}),e,this,[[1,5,6,7]])}))),function(e){return i.apply(this,arguments)})},{key:"mergeTranscriptsOnServer",value:function(e,t){e.min=Math.min(e.min,t.min),e.max=Math.max(e.max,t.max);var n=e.attributes?JSON.parse(JSON.stringify(e.attributes)):{};if(t.attributes&&(Object.keys(n).includes("merged_with")||(n.merged_with=[]),n.merged_with.push(Kr(zr(t.attributes)))),e.attributes=n,t.children)for(var r=0,o=Object.entries(t.children);r<o.length;r++){var i=K(o[r],2);this.mergeFeatureIntoTranscriptOnServer(i[1],e)}}},{key:"mergeFeatureIntoTranscriptOnServer",value:function(e,t){var n=this;t.children||(t.children=new Map);var r,i,a,s=!1,c=F(t.children);try{for(c.s();!(a=c.n()).done;){var l=K(a.value,2)[1];if(s&&r?i=!0:(i=!1,r=l),r.type===e.type&&r.type===l.type&&o.doesIntersect2(e.min,e.max,r.min,r.max)&&o.doesIntersect2(l.min,l.max,r.min,r.max)){r.min=Math.min(e.min,r.min,l.min),r.max=Math.max(e.max,r.max,l.max),r.attributes||(r.attributes={});var u=JSON.parse(JSON.stringify(r.attributes));Object.keys(u).includes("merged_with")||(u.merged_with=[]);var d=u.merged_with;if(d.push(Kr(zr(e.attributes))),i){var A=l.attributes?JSON.parse(JSON.stringify(l.attributes)):void 0;d.push(Kr(A)),t.children.delete(l._id.toString())}u.merged_with=V(new Set(d)),r.attributes=u,s=!0}}}catch(e){c.e(e)}finally{c.f()}s&&r&&e.children&&Object.entries(e.children).map((function(e){var t=K(e,2);n.addChild(r,t[1])})),this.addChild(t,s&&r?r:e)}},{key:"executeOnClient",value:(r=B(U().m((function e(t){var n,r,o,i,a,s,c,l;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changedIds.entries()),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=6;break}if(i=K(r.value,2),a=i[1],c=(s=this.changes[i[0]]).secondTranscript,l=t.getFeature(s.firstTranscript._id)){e.n=4;break}throw new Error('Could not find feature with identifier "'.concat(a,'"'));case 4:this.mergeTranscriptsOnClient(l,c),null===(o=l.parent)||void 0===o||o.deleteChild(c._id);case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,n.e(e.v);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2)}}),e,this,[[2,7,8,9]])}))),function(e){return r.apply(this,arguments)})},{key:"mergeTranscriptsOnClient",value:function(e,t){var n,r;e.setMin(Math.min(e.min,t.min)),e.setMax(Math.max(e.max,t.max));var o=null!==(n=null===(r=e.attributes.get("merged_with"))||void 0===r?void 0:r.slice())&&void 0!==n?n:[],i=Kr(zr(t.attributes));if(o.includes(i)||o.push(i),e.setAttribute("merged_with",o),t.children)for(var a=0,s=Object.entries(t.children);a<s.length;a++){var c=K(s[a],2);this.mergeFeatureIntoTranscriptOnClient(c[1],e)}}},{key:"mergeFeatureIntoTranscriptOnClient",value:function(e,t){t.children||(t.children=new Map);var n,r,i,a=!1,s=F(t.children);try{for(s.s();!(i=s.n()).done;){var l=K(i.value,2)[1];if(a&&n?r=!0:(r=!1,n=l),n.type===e.type&&n.type===l.type&&o.doesIntersect2(e.min,e.max,n.min,n.max)&&o.doesIntersect2(l.min,l.max,n.min,n.max)){var u,d;n.setMin(Math.min(e.min,n.min,l.min)),n.setMax(Math.max(e.max,n.max,l.max));var A=null!==(u=null===(d=n.attributes.get("merged_with"))||void 0===d?void 0:d.slice())&&void 0!==u?u:[];A.push(Kr(zr(e.attributes))),r&&(A.push(Kr(c.getSnapshot(l).attributes)),t.deleteChild(l._id)),n.setAttribute("merged_with",V(new Set(A))),a=!0}}}catch(e){s.e(e)}finally{s.f()}a&&n&&e.children&&Object.entries(e.children).map((function(e){var t=K(e,2);n.addChild(t[1])})),t.addChild(a&&n?c.getSnapshot(n):e)}},{key:"executeOnLocalGFF3",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,o=V(this.changedIds).reverse(),i=V(n).reverse().map((function(e){return{transcriptsToRestore:[e.firstTranscript,e.secondTranscript],parentFeatureId:e.parentFeatureId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(i),"'")),new $r({changedIds:o,typeName:"UndoMergeTranscriptsChange",changes:i,assembly:t},{logger:r})}}]);var n,r,i}(pt),Zr=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","UndoSplitExonChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,exonToRestore:o.exonToRestore,parentFeatureId:o.parentFeatureId,idsToDelete:o.idsToDelete,upstreamCut:o.upstreamCut,downstreamCut:o.downstreamCut,leftExonId:o.leftExonId,rightExonId:o.rightExonId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s=this;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=F(this.changes),e.p=1,a=U().m((function e(){var t,o,a,c,l,u,d,A;return U().w((function(e){for(;;)switch(e.n){case 0:return a=(o=i.value).exonToRestore,c=o.parentFeatureId,l=o.idsToDelete,e.n=1,n.findOne({allIds:c}).session(r).exec();case 1:if(u=e.v){e.n=2;break}throw new Error('Could not find feature with ID "'.concat(c,'"'));case 2:if(d=s.getFeatureFromId(u,c)){e.n=3;break}throw new Error('Could not find feature with ID "'.concat(c,'" in feature "').concat(u._id.toString(),'"'));case 3:return d.children||(d.children=new Map),s.addChild(d,a),A=s.getChildFeatureIds(a),(t=u.allIds).push.apply(t,[a._id].concat(V(A))),u.allIds=u.allIds.filter((function(e){return!l.includes(e)})),l.map((function(e){return Qr(u,e,s)})),e.n=4,u.save();case 4:return e.a(2)}}),e)})),o.s();case 2:if((i=o.n()).done){e.n=4;break}return e.d(Y(a()),3);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,o.e(e.v);case 6:return e.p=6,o.f(),e.f(6);case 7:return e.a(2)}}),e,this,[[1,5,6,7]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changes),e.p=2,o=U().m((function e(){var n,o,i,a,s;return U().w((function(e){for(;;)switch(e.n){case 0:if(o=(n=r.value).exonToRestore,a=n.idsToDelete,i=n.parentFeatureId){e.n=1;break}throw new Error("Parent ID is missing");case 1:if(s=t.getFeature(i)){e.n=2;break}throw new Error('Could not find parent feature "'.concat(i,'"'));case 2:s.attributes.get("_id")||s.setAttribute("_id",[s._id]),s.addChild(o),a.map((function(e){s.deleteChild(e)}));case 3:return e.a(2)}}),e)})),n.s();case 3:if((r=n.n()).done){e.n=5;break}return e.d(Y(o()),4);case 4:e.n=3;break;case 5:e.n=7;break;case 6:e.p=6,n.e(e.v);case 7:return e.p=7,n.f(),e.f(7);case 8:return e.a(2)}}),e,this,[[2,6,7,8]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,t=this.changes,n=this.logger,r=V(this.changedIds).reverse(),o=V(t).reverse().map((function(e){return{parentFeatureId:e.parentFeatureId,exonToBeSplit:e.exonToRestore,upstreamCut:e.upstreamCut,downstreamCut:e.downstreamCut,leftExonId:e.leftExonId,rightExonId:e.rightExonId}}));return new eo({changedIds:r,typeName:"SplitExonChange",changes:o,assembly:e},{logger:n})}}]);var n,r,o}(pt),eo=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","SplitExonChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"notification",get:function(){return"Exon successfully split"}},{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,exonToBeSplit:o.exonToBeSplit,parentFeatureId:o.parentFeatureId,upstreamCut:o.upstreamCut,downstreamCut:o.downstreamCut,leftExonId:o.leftExonId,rightExonId:o.rightExonId}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c=this;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,o=this.logger,i=F(this.changes),e.p=1,s=U().m((function e(){var t,i,s,l,u,d,A,f,h,g,p,m,y,_,v;return U().w((function(e){for(;;)switch(e.n){case 0:return i=(t=a.value).exonToBeSplit,s=t.parentFeatureId,l=t.upstreamCut,u=t.downstreamCut,d=t.leftExonId,A=t.rightExonId,e.n=1,n.findOne({allIds:i._id}).session(r).exec();case 1:if(f=e.v){e.n=2;break}throw h="*** ERROR: The following featureId was not found in database ='".concat(i._id,"'"),o.error(h),new Error(h);case 2:if(null!=(g=c.getFeatureFromId(f,s))&&g.children){e.n=3;break}throw new Error("ERROR: There should be at least one child (i.e. the exon to be split)");case 3:return p=c.makeSplitExons(i,l,u,d,A),m=K(p,2),_=m[1],g.children.set((y=m[0])._id,q(q({allIds:[]},y),{},{_id:y._id})),g.children.set(_._id,q(q({allIds:[]},_),{},{_id:_._id})),g.children=new Map(V(g.children.entries()).sort((function(e,t){return e[1].min-t[1].min}))),(v=Qr(f,i._id,c)).push(i._id),f.allIds=f.allIds.filter((function(e){return!v.includes(e)})),f.allIds.push(y._id,_._id),e.n=4,f.save();case 4:return e.a(2)}}),e)})),i.s();case 2:if((a=i.n()).done){e.n=4;break}return e.d(Y(s()),3);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,i.e(e.v);case 6:return e.p=6,i.f(),e.f(6);case 7:return e.a(2)}}),e,this,[[1,5,6,7]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changedIds.entries()),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=7;break}if(o=K(r.value,1),a=(i=this.changes[o[0]]).exonToBeSplit,c=i.upstreamCut,l=i.downstreamCut,u=i.leftExonId,d=i.rightExonId,s=i.parentFeatureId){e.n=4;break}throw new Error("TODO: Split exon without parent");case 4:if(A=this.makeSplitExons(a,c,l,u,d),f=K(A,2),h=f[0],g=f[1],p=t.getFeature(s)){e.n=5;break}throw new Error('Could not find parent feature "'.concat(s,'"'));case 5:p.addChild(h),p.addChild(g),t.getFeature(a._id)&&t.deleteFeature(a._id);case 6:e.n=3;break;case 7:e.n=9;break;case 8:e.p=8,n.e(e.v);case 9:return e.p=9,n.f(),e.f(9);case 10:return e.a(2)}}),e,this,[[2,8,9,10]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e,t=this.assembly,n=this.changes,r=this.logger,o=V(this.changedIds).reverse(),i=V(n).reverse().map((function(e){return{exonToRestore:e.exonToBeSplit,parentFeatureId:e.parentFeatureId,idsToDelete:[e.leftExonId,e.rightExonId],upstreamCut:e.upstreamCut,downstreamCut:e.downstreamCut,leftExonId:e.leftExonId,rightExonId:e.rightExonId}}));return null===(e=r.debug)||void 0===e||e.call(r,"INVERSE CHANGE '".concat(JSON.stringify(i),"'")),new Zr({changedIds:o,typeName:"UndoSplitExonChange",changes:i,assembly:t},{logger:r})}},{key:"makeSplitExons",value:function(e,t,n,r,o){var i=JSON.parse(JSON.stringify(e));delete i.attributes._id,delete i.attributes.gff_id;var a=structuredClone(i);a._id=r,a.max=t;var s=structuredClone(i);return s.min=n,s._id=o,[a,s]}}]);var n,r,o}(pt),to=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","StrandChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:o.featureId,oldStrand:o.oldStrand,newStrand:o.newStrand}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,i=this.logger,a=[],s=F(o=this.changes),e.p=1,s.s();case 2:if((c=s.n()).done){e.n=8;break}return A=(d=c.value).featureId,f=d.oldStrand,e.n=3,n.findOne({allIds:A}).session(r).exec();case 3:if(h=e.v){e.n=4;break}throw g="*** ERROR: The following featureId was not found in database ='".concat(A,"'"),i.error(g),new Error(g);case 4:if(null===(l=i.debug)||void 0===l||l.call(i,"*** Feature found: ".concat(JSON.stringify(h))),p=this.getFeatureFromId(h,A)){e.n=5;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 5:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(p))),p.strand===f){e.n=6;break}throw m="*** ERROR: Feature's current strand \"".concat(h.strand,'" doesn\'t match with expected value "').concat(f,'"'),i.error(m),new Error(m);case 6:a.push({feature:p,topLevelFeature:h});case 7:e.n=2;break;case 8:e.n=10;break;case 9:e.p=9,s.e(e.v);case 10:return e.p=10,s.f(),e.f(10);case 11:y=F(o.entries()),e.p=12,y.s();case 13:if((_=y.n()).done){e.n=19;break}return b=K(_.value,2),w=(C=a[b[0]]).topLevelFeature,(I=C.feature).strand=b[1].newStrand,w._id.equals(I._id)?w.markModified("strand"):w.markModified("children"),e.p=14,e.n=15,w.save();case 15:e.n=17;break;case 16:throw e.p=16,x=e.v,null===(E=i.debug)||void 0===E||E.call(i,"*** FAILED: ".concat(x)),x;case 17:null===(v=i.debug)||void 0===v||v.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(w)));case 18:e.n=13;break;case 19:e.n=21;break;case 20:e.p=20,y.e(e.v);case 21:return e.p=21,y.f(),e.f(21);case 22:return e.a(2)}}),e,this,[[14,16],[12,20,21,22],[1,9,10,11]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changedIds.entries()),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=6;break}if(o=K(r.value,2),i=o[0],s=t.getFeature(a=o[1])){e.n=4;break}throw new Error('Could not find feature with identifier "'.concat(a,'"'));case 4:s.setStrand(this.changes[i].newStrand);case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,n.e(e.v);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2)}}),e,this,[[2,7,8,9]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,n=this.changes,r=this.logger,o=this.typeName;return new t({changedIds:V(this.changedIds).reverse(),typeName:o,changes:V(n).reverse().map((function(e){return{featureId:e.featureId,oldStrand:e.newStrand,newStrand:e.oldStrand}})),assembly:e},{logger:r})}}]);var n,r,o}(pt),no=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","TypeChange"),T(r,"changes",void 0),r.changes="changes"in e?e.changes:[e],r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.assembly,t=this.changedIds,n=this.changes,r=this.typeName;if(1===n.length){var o=K(n,1)[0];return{typeName:r,changedIds:t,assembly:e,featureId:o.featureId,oldType:o.oldType,newType:o.newType}}return{typeName:r,changedIds:t,assembly:e,changes:n}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.featureModel,r=t.session,i=this.logger,a=[],s=F(o=this.changes),e.p=1,s.s();case 2:if((c=s.n()).done){e.n=8;break}return A=(d=c.value).featureId,f=d.oldType,e.n=3,n.findOne({allIds:A}).session(r).exec();case 3:if(h=e.v){e.n=4;break}throw g="*** ERROR: The following featureId was not found in database ='".concat(A,"'"),i.error(g),new Error(g);case 4:if(null===(l=i.debug)||void 0===l||l.call(i,"*** Feature found: ".concat(JSON.stringify(h))),p=this.getFeatureFromId(h,A)){e.n=5;break}throw i.error("ERROR when searching feature by featureId"),new Error("ERROR when searching feature by featureId");case 5:if(null===(u=i.debug)||void 0===u||u.call(i,"*** Found feature: ".concat(JSON.stringify(p))),p.type===f){e.n=6;break}throw m="*** ERROR: Feature's current type \"".concat(h.type,'" doesn\'t match with expected value "').concat(f,'"'),i.error(m),new Error(m);case 6:a.push({feature:p,topLevelFeature:h});case 7:e.n=2;break;case 8:e.n=10;break;case 9:e.p=9,s.e(e.v);case 10:return e.p=10,s.f(),e.f(10);case 11:y=F(o.entries()),e.p=12,y.s();case 13:if((_=y.n()).done){e.n=19;break}return b=K(_.value,2),w=(C=a[b[0]]).topLevelFeature,(I=C.feature).type=b[1].newType,w._id.equals(I._id)?w.markModified("type"):w.markModified("children"),e.p=14,e.n=15,w.save();case 15:e.n=17;break;case 16:throw e.p=16,x=e.v,null===(E=i.debug)||void 0===E||E.call(i,"*** FAILED: ".concat(x)),x;case 17:null===(v=i.debug)||void 0===v||v.call(i,"*** Object updated in Mongo. New object: ".concat(JSON.stringify(w)));case 18:e.n=13;break;case 19:e.n=21;break;case 20:e.p=20,y.e(e.v);case 21:return e.p=21,y.f(),e.f(21);case 22:return e.a(2)}}),e,this,[[14,16],[12,20,21,22],[1,9,10,11]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){var n,r,o,i,a,s;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(t){e.n=1;break}throw new Error("No data store");case 1:n=F(this.changedIds.entries()),e.p=2,n.s();case 3:if((r=n.n()).done){e.n=6;break}if(o=K(r.value,2),i=o[0],s=t.getFeature(a=o[1])){e.n=4;break}throw new Error('Could not find feature with identifier "'.concat(a,'"'));case 4:s.setType(this.changes[i].newType);case 5:e.n=3;break;case 6:e.n=8;break;case 7:e.p=7,n.e(e.v);case 8:return e.p=8,n.f(),e.f(8);case 9:return e.a(2)}}),e,this,[[2,7,8,9]])}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){var e=this.assembly,n=this.changes,r=this.logger,o=this.typeName;return new t({changedIds:V(this.changedIds).reverse(),typeName:o,changes:V(n).reverse().map((function(e){return{featureId:e.featureId,oldType:e.newType,newType:e.oldType}})),assembly:e},{logger:r})}}]);var n,r,o}(pt),ro=function(e){function t(e,n){var r;return N(this,t),T(r=Q(this,t,[e,n]),"typeName","UserChange"),T(r,"changes",void 0),T(r,"userId",void 0),r.changes="changes"in e?e.changes:[e],r.userId=e.userId,r}return O(t,e),D(t,[{key:"toJSON",value:function(){var e=this.changes,t=this.typeName,n=this.userId;return 1===e.length?{typeName:t,userId:n,role:K(e,1)[0].role}:{typeName:t,userId:n,changes:e}}},{key:"executeOnServer",value:(o=B(U().m((function e(t){var n,r,o,i,a,s,c,l,u,d,A;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=t.session,r=t.userModel,i=this.logger,a=this.userId,s=F(o=this.changes),e.p=1,s.s();case 2:if((c=s.n()).done){e.n=5;break}return u=c.value,null===(l=i.debug)||void 0===l||l.call(i,"change: ".concat(JSON.stringify(o))),d=u.role,e.n=3,r.findByIdAndUpdate(a,{role:d}).session(n).exec();case 3:if(e.v){e.n=4;break}throw A='*** ERROR: User with id "'.concat(a,'" not found'),i.error(A),new Error(A);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,s.e(e.v);case 7:return e.p=7,s.f(),e.f(7);case 8:return e.a(2)}}),e,this,[[1,6,7,8]])}))),function(e){return o.apply(this,arguments)})},{key:"executeOnLocalGFF3",value:(r=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:throw new Error("executeOnLocalGFF3 not implemented");case 1:return e.a(2)}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"executeOnClient",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2)}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getInverse",value:function(){return new t({typeName:this.typeName,changes:this.changes,userId:this.userId},{logger:this.logger})}}]);var n,r,o}(ft),oo={AddAssemblyAndFeaturesFromFileChange:xt,AddAssemblyFromFileChange:Br,AddAssemblyFromExternalChange:Sr,AddFeatureChange:Nr,AddFeaturesFromFileChange:Rr,DeleteAssemblyChange:Fr,DeleteFeatureChange:kr,DeleteUserChange:Tr,FeatureAttributeChange:jr,ImportJBrowseConfigChange:Pr,LocationEndChange:qr,LocationStartChange:Ur,MergeExonsChange:Vr,SplitExonChange:eo,MergeTranscriptsChange:Xr,UndoMergeExonsChange:Wr,UndoSplitExonChange:Zr,UndoMergeTranscriptsChange:$r,StrandChange:to,TypeChange:no,UserChange:ro,AddRefSeqAliasesChange:Dr,AddAssemblyAliasesChange:mt},io=function(){return D((function e(){N(this,e)}),[{key:"frontendPreValidate",value:(o=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2,{validationName:this.name})}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"frontendPostValidate",value:(r=B(U().m((function e(t,n){return U().w((function(e){for(;;)if(0===e.n)return e.a(2,{validationName:this.name})}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"backendPreValidate",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2,{validationName:this.name})}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"backendPostValidate",value:(t=B(U().m((function e(t,n){return U().w((function(e){for(;;)if(0===e.n)return e.a(2,{validationName:this.name})}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"possibleValues",value:(e=B(U().m((function e(t){return U().w((function(e){for(;;)if(0===e.n)return e.a(2,void 0)}),e)}))),function(t){return e.apply(this,arguments)})}]);var e,t,n,r,o}(),ao=function(){return D((function e(){N(this,e),T(this,"results",[]),T(this,"ok",!0)}),[{key:"resultsMessages",get:function(){return this.results.map((function(e){var t;return null===(t=e.error)||void 0===t?void 0:t.message})).filter(Boolean).join(", ")}},{key:"add",value:function(e){this.results.push(e),e.error&&(this.ok=!1)}}])}(),so=function(){return D((function e(){N(this,e),T(this,"validations",new Set)}),[{key:"registerValidation",value:function(e){this.validations.add(e)}},{key:"frontendPreValidate",value:(o=B(U().m((function e(t){var n,r,o,i,a;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=new ao,r=F(this.validations),e.p=1,r.s();case 2:if((o=r.n()).done){e.n=5;break}return i=o.value,e.n=3,i.frontendPreValidate(t);case 3:if(n.add(a=e.v),!a.error){e.n=4;break}return e.a(3,5);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,r.e(e.v);case 7:return e.p=7,r.f(),e.f(7);case 8:return e.a(2,n)}}),e,this,[[1,6,7,8]])}))),function(e){return o.apply(this,arguments)})},{key:"frontendPostValidate",value:(r=B(U().m((function e(t,n){var r,o,i,a,s;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:r=new ao,o=F(this.validations),e.p=1,o.s();case 2:if((i=o.n()).done){e.n=5;break}return a=i.value,e.n=3,a.frontendPostValidate(t,n);case 3:if(r.add(s=e.v),!s.error){e.n=4;break}return e.a(3,5);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,o.e(e.v);case 7:return e.p=7,o.f(),e.f(7);case 8:return e.a(2,r)}}),e,this,[[1,6,7,8]])}))),function(e,t){return r.apply(this,arguments)})},{key:"backendPreValidate",value:(n=B(U().m((function e(t){var n,r,o,i,a;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=new ao,r=F(this.validations),e.p=1,r.s();case 2:if((o=r.n()).done){e.n=5;break}return i=o.value,e.n=3,i.backendPreValidate(t);case 3:if(n.add(a=e.v),!a.error){e.n=4;break}return e.a(3,5);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,r.e(e.v);case 7:return e.p=7,r.f(),e.f(7);case 8:return e.a(2,n)}}),e,this,[[1,6,7,8]])}))),function(e){return n.apply(this,arguments)})},{key:"backendPostValidate",value:(t=B(U().m((function e(t,n){var r,o,i,a,s,c,l;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:r=n.featureModel,o=n.session,i=new ao,a=F(this.validations),e.p=1,a.s();case 2:if((s=a.n()).done){e.n=5;break}return c=s.value,e.n=3,c.backendPostValidate(t,{featureModel:r,session:o});case 3:if(i.add(l=e.v),!l.error){e.n=4;break}return e.a(3,5);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,a.e(e.v);case 7:return e.p=7,a.f(),e.f(7);case 8:return e.a(2,i)}}),e,this,[[1,6,7,8]])}))),function(e,n){return t.apply(this,arguments)})},{key:"possibleValues",value:(e=B(U().m((function e(t){var n,r,o,i;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:n=F(this.validations),e.p=1,n.s();case 2:if((r=n.n()).done){e.n=5;break}return o=r.value,e.n=3,o.possibleValues(t);case 3:if(!(i=e.v)){e.n=4;break}return e.a(2,i);case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,n.e(e.v);case 7:return e.p=7,n.f(),e.f(7);case 8:return e.a(2)}}),e,this,[[1,6,7,8]])}))),function(t){return e.apply(this,arguments)})}]);var e,t,n,r,o}(),co=new so,lo=["2A_self_cleaving_peptide_region","4_methylcytosine","5S_SINE_retrotransposon","5_carboxylcytosine","5_formylcytosine","5_hydroxymethylcytosine","5_methylcytosine","7SL_SINE_retrotransposon","8_oxoadenine","8_oxoguanine","AACCCT_box","AFLP_fragment","AP_1_binding_site","ARIA","ARRET","ARS","ARS_consensus_sequence","ASPE_primer","AUG_initiated_uORF","AU_rich_element","A_box","A_box_type_1","A_box_type_2","A_minor_RNA_motif","A_to_C_transversion","A_to_G_transition","A_to_T_transversion","Ace2_UAS","Alu_deletion","Alu_insertion","BAC","BAC_cloned_genomic_insert","BAC_end","BAC_read_contig","BREd_motif","BREu_motif","B_box","Bel_Pao_LTR_retrotransposon","Bruno_response_element","C-D_H_ACA_box_scaRNA","C-D_H_ACA_box_scaRNA_gene","CAAT_signal","CAAX_box","CACTA_TIR_transposon","CAGE_cluster","CAGE_tag","CArG_box","CCAAT_motif","CCA_tail","CDRE_motif","CDS","CDS_extension","CDS_five_prime_extension","CDS_fragment","CDS_independently_known","CDS_predicted","CDS_region","CDS_supported_by_EST_or_cDNA_data","CDS_supported_by_domain_match_data","CDS_supported_by_peptide_spectrum_match","CDS_supported_by_sequence_similarity_data","CDS_three_prime_extension","CRE","CRISPR","CSL_response_element","CTCF_binding_site","CTG_start_codon","C_D_box_scaRNA","C_D_box_scaRNA_gene","C_D_box_snoRNA","C_D_box_snoRNA_gene","C_D_box_snoRNA_primary_transcript","C_box","C_cluster","C_gene_segment","C_region","C_to_A_transversion","C_to_G_transversion","C_to_T_transition","C_to_T_transition_at_pCpG_site","ChIP_seq_region","Copia_LTR_retrotransposon","CpG_island","Crick_strand","Crypton_YR_transposon","CsrB_RsmB_RNA","CuRE","DArT_marker","DCE","DCE_SI","DCE_SII","DCE_SIII","DDB_box","DHU_loop","DIRS_YR_retrotransposon","DJ_C_cluster","DJ_J_C_cluster","DJ_J_cluster","DJ_gene_segment","DMv1_motif","DMv2_motif","DMv3_motif","DMv4_motif","DMv5_motif","DNA_aptamer","DNA_binding_site","DNA_chromosome","DNA_constraint_sequence","DNA_loop","DNA_loop_anchor","DNA_motif","DNA_sequence_secondary_structure","DNA_transposon","DNAzyme","DNaseI_hypersensitive_site","DPE1_motif","DPE_motif","DRE","DRE_motif","DSR_motif","D_DJ_C_cluster","D_DJ_J_C_cluster","D_DJ_J_cluster","D_DJ_cluster","D_J_C_cluster","D_J_cluster","D_cluster","D_gene_recombination_feature","D_gene_segment","D_loop","DsrA_RNA","ER_retention_signal","EST","EST_match","E_box_motif","Endogenous_Retrovirus_LTR_retrotransposon","FLEX_element","FRE","FRT_site","GAGA_motif","GATA_box","GC_rich_promoter_region","GNA_oligo","GTT_trinucleotide_repeat","GT_dinucleotide_repeat","G_box","G_quartet","G_to_A_transition","G_to_C_transversion","G_to_T_transversion","GcvB_RNA","Gypsy_LTR_retrotransposon","H2AK5_acetylation_site","H2AK9_acetylation_site","H2AZK11_acetylation_site","H2AZK13_acetylation_site","H2AZK15_acetylation_site","H2AZK4_acetylation_site","H2AZK7_acetylation_site","H2BK120_acetylation_site","H2BK12_acetylation_site","H2BK15_acetylation_site","H2BK20_acetylation_site","H2BK5_acetylation_site","H2BK5_monomethylation_site","H2B_ubiquitination_site","H3K14_acetylation_site","H3K18_acetylation_site","H3K20_trimethylation_site","H3K23_acetylation_site","H3K23_dimethylation_site","H3K27_acetylation_site","H3K27_dimethylation_site","H3K27_methylation_site","H3K27_monomethylation_site","H3K27_trimethylation_site","H3K36_acetylation_site","H3K36_dimethylation_site","H3K36_methylation_site","H3K36_monomethylation_site","H3K36_trimethylation_site","H3K4_acetylation_site","H3K4_dimethylation_site","H3K4_methylation_site","H3K4_monomethylation_site","H3K4_trimethylation","H3K56_acetylation_site","H3K79_dimethylation_site","H3K79_methylation_site","H3K79_monomethylation_site","H3K79_trimethylation_site","H3K9_acetylation_site","H3K9_dimethylation_site","H3K9_methylation_site","H3K9_monomethylation_site","H3K9_trimethylation_site","H3R2_dimethylation_site","H3R2_monomethylation_site","H4K12_acetylation_site","H4K16_acetylation_site","H4K20_monomethylation_site","H4K4_trimethylation_site","H4K5_acetylation_site","H4K8_acetylation_site","H4K91_acetylation_site","H4K_acylation_region","H4R3_dimethylation_site","HERV_deletion","HERV_insertion","HSE","H_ACA_box_scaRNA","H_ACA_box_scaRNA_gene","H_ACA_box_snoRNA","H_ACA_box_snoRNA_gene","H_ACA_box_snoRNA_primary_transcript","H_pseudoknot","Hoogsteen_base_pair","I-box","IG_C_gene","IG_C_pseudogene","IG_D_gene","IG_J_gene","IG_J_pseudogene","IG_V_gene","IG_V_pseudogene","INR1_motif","INR_motif","IRLinv_site","IRRinv_site","ISRE","I_LINE_retrotransposon","J_C_cluster","J_cluster","J_gene_recombination_feature","J_gene_segment","J_heptamer","J_nonamer","J_spacer","Jockey_LINE_retrotransposon","KEN_box","K_turn_RNA_motif","L1_LINE_retrotransposon","LARD","LINE1_deletion","LINE1_insertion","LINE_element","LNA_oligo","LOZ1_response_element","LTR_component","LTR_retrotransposon","L_box","MCB","MITE","MNP","MNV","MNV_artifact","MTE","Mat2P","Mat3M","Merlin_TIR_transposon","MicF_RNA","Mutator_TIR_transposon","N2_2_prime_O_dimethylguanosine","N2_7_2prirme_O_trimethylguanosine","N2_7_dimethylguanosine","N2_N2_2_prime_O_trimethylguanosine","N2_N2_7_trimethylguanosine","N2_N2_dimethylguanosine","N2_methylguanosine","N4_2_prime_O_dimethylcytidine","N4_N4_2_prime_O_trimethylcytidine","N4_acetyl_2_prime_O_methylcytidine","N4_acetylcytidine","N4_methylcytidine","N6_2_prime_O_dimethyladenosine","N6_N6_2_prime_O_trimethyladenosine","N6_N6_dimethyladenosine","N6_acetyladenosine","N6_cis_hydroxyisopentenyl_adenosine","N6_glycinylcarbamoyladenosine","N6_hydroxynorvalylcarbamoyladenosine","N6_isopentenyladenosine","N6_methyl_N6_threonylcarbamoyladenosine","N6_methyladenine","N6_methyladenosine","N6_threonylcarbamoyladenosine","NDM2_motif","NDM3_motif","NMD_polymorphic_pseudogene_transcript","NMD_transcript","NSD_transcript","N_region","Ngaro_YR_retrotransposon","ORF","Okazaki_fragment","OxyS_RNA","PAC","PAC_end","PCB","PCR_product","PIF_Harbinger_TIR_transposon","PIP_box","PNA_oligo","PSE_motif","P_TIR_transposon","Penelope_retrotransposon","Phage_RNA_Polymerase_Promoter","Pho7_binding_site","QTL","R2_LINE_retrotransposon","RAPD","RFLP_fragment","RH_map","RNA_6S","RNA_7SK","RNA_7SK_gene","RNA_aptamer","RNA_chromosome","RNA_hook_turn","RNA_internal_loop","RNA_junction_loop","RNA_motif","RNA_polymerase_III_TATA_box","RNA_polymerase_II_TATA_box","RNA_sequence_secondary_structure","RNA_stability_element","RNA_thermometer","RNAi_reagent","RNApol_III_promoter","RNApol_III_promoter_type_1","RNApol_III_promoter_type_2","RNApol_III_promoter_type_3","RNApol_II_core_promoter","RNApol_II_promoter","RNApol_I_promoter","RNase_MRP_RNA","RNase_MRP_RNA_gene","RNase_P_RNA","RNase_P_RNA_gene","RRE_RNA","RR_tract","RST","RST_match","RTE_LINE_retrotransposon","R_GNA_oligo","R_LTR_region","R_five_prime_LTR_region","R_three_prime_LTR_region","Retrovirus_LTR_retrotransposon","Robertsonian_fusion","RprA_RNA","SAGE_tag","SECIS_element","SHP_box","SINE_element","SL10_acceptor_site","SL11_acceptor_site","SL12_acceptor_site","SL1_acceptor_site","SL2_acceptor_site","SL3_acceptor_site","SL4_acceptor_site","SL5_acceptor_site","SL6_acceptor_site","SL7_acceptor_site","SL8_acceptor_site","SL9_acceptor_site","SNP","SNV","SNV_artifact","SP6_RNA_Polymerase_Promoter","SRP_RNA","SRP_RNA_gene","SRP_RNA_primary_transcript","STREP_motif","STS","STS_map","SUMO_interaction_motif","SVA_deletion","SVA_insertion","S_GNA_oligo","S_region","Sap1_recognition_motif","Shine_Dalgarno_sequence","T3_RNA_Polymerase_Promoter","T7_RNA_Polymerase_Promoter","TATA_box","TCS_element","TCT_motif","TERRA","TFRS_collection","TFRS_module","TF_binding_site","TNA_oligo","TRIM","TR_C_Gene","TR_D_Gene","TR_J_Gene","TR_J_pseudogene","TR_V_Gene","TR_V_pseudogene","TR_box","TSS","T_cell_receptor_gene","T_cell_receptor_pseudogene","T_loop","T_to_A_transversion","T_to_C_transition","T_to_G_transversion","Tc1_Mariner_TIR_transposon","Transib_TIR_transposon","U11_snRNA","U12_intron","U12_snRNA","U14_snoRNA","U14_snoRNA_gene","U14_snoRNA_primary_transcript","U1_snRNA","U2_intron","U2_snRNA","U3_LTR_region","U3_five_prime_LTR_region","U3_snoRNA","U3_snoRNA_gene","U3_three_prime_LTR_region","U4_snRNA","U4atac_snRNA","U5_LTR_region","U5_five_prime_LTR_region","U5_snRNA","U5_three_prime_LTR_region","U6_snRNA","U6atac_snRNA","U7_snRNA","UAA_stop_codon_signal","UAG_stop_codon_signal","UGA_stop_codon_signal","UNAAAC_motif","UPD","UST","UST_match","UTR","UTR_intron","UTR_region","U_box","VDJ_C_cluster","VDJ_J_C_cluster","VDJ_J_cluster","VDJ_gene_segment","VD_gene_segment","VJ_C_cluster","VJ_J_C_cluster","VJ_J_cluster","VJ_gene_segment","V_DJ_C_cluster","V_DJ_J_C_cluster","V_DJ_J_cluster","V_DJ_cluster","V_D_DJ_C_cluster","V_D_DJ_J_C_cluster","V_D_DJ_J_cluster","V_D_DJ_cluster","V_D_J_C_cluster","V_D_J_cluster","V_J_C_cluster","V_J_cluster","V_VDJ_C_cluster","V_VDJ_J_C_cluster","V_VDJ_J_cluster","V_VDJ_cluster","V_VJ_C_cluster","V_VJ_J_C_cluster","V_VJ_J_cluster","V_VJ_cluster","V_cluster","V_gene_recombination_feature","V_gene_segment","V_heptamer","V_nonamer","V_region","V_spacer","Viper_YR_retrotransposon","WC_base_pair","W_region","Watson_strand","X_element","X_element_combinatorial_repeat","X_region","YAC","YAC_end","YR_retrotransposon","Y_RNA","Y_RNA_gene","Y_RNA_primary_transcript","Y_prime_element","Y_region","Z1_region","Z2_region","Zas1_recognition_motif","aberrant_processed_transcript","accessible_DNA_region","active_peptide","adaptive_island","alanine","alanine_tRNA_primary_transcript","alanyl_tRNA","allelic_pseudogene","allelic_pseudogenic_rRNA","allelic_pseudogenic_tRNA","allelically_excluded_gene","alpha_beta_motif","alpha_helix","alternate_sequence_site","alternatively_spliced_transcript","amber_stop_codon","ambisense_ssRNA_viral_sequence","amino_acid","amplification_origin","anchor_binding_site","anchor_region","androgen_response_element","anti_ARRET","anticodon","anticodon_loop","antiparallel_beta_strand","antisense_RNA","antisense_lncRNA","antisense_lncRNA_gene","antisense_primary_transcript","apicoplast_chromosome","apicoplast_gene","aptamer","archaeal_intron","archaeosine","arginine","arginine_tRNA_primary_transcript","arginyl_tRNA","asparagine","asparagine_tRNA_primary_transcript","asparaginyl_tRNA","aspartic_acid","aspartic_acid_tRNA_primary_transcript","aspartyl_tRNA","assembly","assembly_component","assembly_error_correction","asx_motif","asx_turn","asx_turn_left_handed_type_one","asx_turn_left_handed_type_two","asx_turn_right_handed_type_one","asx_turn_right_handed_type_two","asymmetric_RNA_internal_loop","attB_site","attC_site","attCtn_site","attI_site","attL_site","attP_site","attR_site","attenuator","autocatalytically_spliced_intron","bacterial_RNApol_promoter","bacterial_RNApol_promoter_sigma54_element","bacterial_RNApol_promoter_sigma_70_element","bacterial_RNApol_promoter_sigma_ecf_element","bacterial_terminator","base","base_call_error_correction","base_pair","beta_bulge","beta_bulge_loop","beta_bulge_loop_five","beta_bulge_loop_six","beta_strand","beta_turn","beta_turn_left_handed_type_one","beta_turn_left_handed_type_two","beta_turn_right_handed_type_one","beta_turn_right_handed_type_two","beta_turn_type_eight","beta_turn_type_six","beta_turn_type_six_a","beta_turn_type_six_a_one","beta_turn_type_six_a_two","beta_turn_type_six_b","bidirectional_promoter","bidirectional_promoter_lncRNA","binding_site","biochemical_region_of_peptide","biological_region","biomaterial_region","biosynthetic_gene_cluster","blocked_reading_frame","blunt_end_restriction_enzyme_cleavage_junction","blunt_end_restriction_enzyme_cleavage_site","boundary_element","branch_site","cDNA_clone","cDNA_match","c_terminal_region","candidate_gene","canonical_five_prime_splice_site","canonical_three_prime_splice_site","cap","capped_mRNA","capped_primary_transcript","cassette_pseudogene","catalytic_residue","catmat_left_handed_four","catmat_left_handed_three","catmat_right_handed_four","catmat_right_handed_three","central_hydrophobic_region_of_signal_peptide","centromere","centromere_DNA_Element_I","centromere_DNA_Element_II","centromere_DNA_Element_III","centromeric_repeat","chimeric_cDNA_clone","chloroplast_DNA_read","chloroplast_chromosome","chromatin_regulatory_region","chromoplast_chromosome","chromoplast_gene","chromosomal_regulatory_element","chromosomal_structural_element","chromosomal_translocation","chromosome","chromosome_arm","chromosome_band","chromosome_breakage_sequence","chromosome_breakpoint","chromosome_part","circular_double_stranded_DNA_chromosome","circular_double_stranded_RNA_chromosome","circular_mRNA","circular_ncRNA","circular_plasmid","circular_single_stranded_DNA_chromosome","circular_single_stranded_RNA_chromosome","cis_acting_homologous_chromosome_pairing_region","cis_regulatory_frameshift_element","cis_regulatory_module","cis_splice_site","class_II_RNA","class_I_RNA","cleaved_for_gpi_anchor_region","cleaved_initiator_methionine","cleaved_peptide_region","clip","clone","clone_end","clone_insert","clone_insert_end","clone_insert_start","cloned_cDNA_insert","cloned_genomic_insert","cloned_region","coding_conserved_region","coding_end","coding_exon","coding_region_of_exon","coding_start","coding_transcript_with_retained_intron","codon","coiled_coil","cointegrated_plasmid","common_fragile_site","complex_chromosomal_rearrangement","complex_operon","complex_regulon","complex_structural_alteration","complex_substitution","compositionally_biased_region_of_peptide","conformational_switch","conjugative_transposon","consensus_AFLP_fragment","consensus_gDNA","consensus_mRNA","consensus_region","conserved_region","constitutive_promoter","contig","contig_collection","contig_read","copy_number_gain","copy_number_loss","copy_number_variation","core_eukaryotic_promoter_element","core_prokaryotic_promoter_element","core_promoter_element","core_viral_promoter_element","cosmid","cross_genome_match","cryptic_gene","cryptic_promoter","cryptic_prophage","cryptic_splice_site","cryptogene","ct_gene","cyanelle_chromosome","cyanelle_gene","cyclic_translocation","cysteine","cysteine_tRNA_primary_transcript","cysteinyl_tRNA","cytoplasmic_polypeptide_region","cytosolic_16S_rRNA","cytosolic_18S_rRNA","cytosolic_23S_rRNA","cytosolic_25S_rRNA","cytosolic_28S_rRNA","cytosolic_2S_rRNA","cytosolic_5S_rRNA","cytosolic_5_8S_rRNA","cytosolic_LSU_rRNA","cytosolic_LSU_rRNA_gene","cytosolic_SSU_rRNA","cytosolic_SSU_rRNA_gene","cytosolic_rRNA","cytosolic_rRNA_16S_gene","cytosolic_rRNA_18S_gene","cytosolic_rRNA_23S_gene","cytosolic_rRNA_25S_gene","cytosolic_rRNA_28S_gene","cytosolic_rRNA_2S_gene","cytosolic_rRNA_5S_gene","cytosolic_rRNA_5_8S_gene","cytosolic_rRNA_gene","dCAPS_primer","databank_entry","decayed_exon","defective_conjugative_transposon","deficient_translocation","deletion","deletion_artifact","deletion_breakpoint","deletion_junction","delins","destruction_box","dg_repeat","dh_repeat","dicistronic_mRNA","dicistronic_primary_transcript","dicistronic_transcript","dif_site","dihydrouridine","dinucleotide_repeat_microsatellite_feature","direct_repeat","direct_tandem_duplication","disabled_reading_frame","dispersed_repeat","distal_duplication","distal_promoter_element","distant_three_prime_recoding_signal","double_stranded_DNA_chromosome","double_stranded_RNA_chromosome","ds_DNA_viral_sequence","ds_RNA_viral_sequence","ds_oligo","duplicated_pseudogene","duplication","duplication_artifact","dye_terminator_read","early_origin_of_replication","edited_CDS","edited_mRNA","edited_transcript","edited_transcript_by_A_to_I_substitution","edited_transcript_feature","editing_block","editing_domain","endogenous_retroviral_gene","endonuclease_spliced_intron","endosomal_localization_signal","engineered_episome","engineered_foreign_gene","engineered_foreign_region","engineered_foreign_repetitive_element","engineered_foreign_transposable_element","engineered_foreign_transposable_element_gene","engineered_fusion_gene","engineered_gene","engineered_insert","engineered_plasmid","engineered_region","engineered_rescue_region","engineered_tag","engineered_transposable_element","enhancer","enhancerRNA","enhancer_binding_site","enhancer_blocking_element","enhancer_bound_by_factor","enhancer_trap_construct","enzymatic_RNA","enzymatic_RNA_gene","epigenetically_modified_gene","epigenetically_modified_region","epigenomically_modified_region","episome","epitope","epoxyqueuosine","eukaryotic_promoter","eukaryotic_terminator","exemplar_mRNA","exon","exon_junction","exon_of_single_exon_gene","exon_region","exonic_splice_enhancer","exonic_splicing_silencer","experimental_feature","experimental_result_region","experimentally_defined_binding_region","expressed_sequence_assembly","expressed_sequence_match","extended_cis_splice_site","extended_intronic_splice_region","external_transcribed_spacer_region","extrachromosomal_mobile_genetic_element","extramembrane_polypeptide_region","fingerprint_map","five_aminomethyl_two_thiouridine","five_carbamoylmethyl_two_prime_O_methyluridine","five_carbamoylmethyluridine","five_carboxyhydroxymethyl_uridine","five_carboxyhydroxymethyl_uridine_methyl_ester","five_carboxymethylaminomethyl_two_prime_O_methyluridine","five_carboxymethylaminomethyl_two_thiouridine","five_carboxymethylaminomethyluridine","five_carboxymethyluridine","five_formyl_two_prime_O_methylcytidine","five_formylcytidine","five_hydroxymethylcytidine","five_hydroxyuridine","five_isopentenylaminomethyl_two_prime_O_methyluridine","five_isopentenylaminomethyl_two_thiouridine","five_isopentenylaminomethyl_uridine","five_methoxycarbonylmethyl_two_prime_O_methyluridine","five_methoxycarbonylmethyl_two_thiouridine","five_methoxycarbonylmethyluridine","five_methoxyuridine","five_methyl_2_thiouridine","five_methylaminomethyl_two_selenouridine","five_methylaminomethyl_two_thiouridine","five_methylaminomethyluridine","five_methylcytidine","five_methyldihydrouridine","five_methyluridine","five_prime_D_heptamer","five_prime_D_nonamer","five_prime_D_recombination_signal_sequence","five_prime_D_spacer","five_prime_EST","five_prime_LTR","five_prime_LTR_component","five_prime_RST","five_prime_UST","five_prime_UTR","five_prime_UTR_intron","five_prime_cis_splice_site","five_prime_clip","five_prime_coding_exon","five_prime_coding_exon_coding_region","five_prime_coding_exon_noncoding_region","five_prime_flanking_region","five_prime_intron","five_prime_noncoding_exon","five_prime_open_reading_frame","five_prime_recoding_site","five_prime_restriction_enzyme_junction","five_prime_sticky_end_restriction_enzyme_cleavage_site","five_prime_terminal_inverted_repeat","five_taurinomethyl_two_thiouridine","five_taurinomethyluridine","five_two_prime_O_dimethylcytidine","five_two_prime_O_dimethyluridine","flanking_region","flanking_repeat","flanking_three_prime_quadruplet_recoding_signal","floxed_gene","foldback_element","foreign_gene","foreign_transposable_element","forkhead_motif","forward_primer","fosmid","four_bp_start_codon","four_demethylwyosine","four_thiouridine","fragile_site","fragment_assembly","functional_candidate_gene","functional_gene_region","fusion_gene","gRNA_gene","galactosyl_queuosine","gamma_turn","gamma_turn_classic","gamma_turn_inverse","gap","gene","gene_array","gene_cassette","gene_cassette_array","gene_component_region","gene_fragment","gene_group","gene_member_region","gene_rearranged_at_DNA_level","gene_segment","gene_silenced_by_DNA_methylation","gene_silenced_by_DNA_modification","gene_silenced_by_RNA_interference","gene_silenced_by_histone_deacetylation","gene_silenced_by_histone_methylation","gene_silenced_by_histone_modification","gene_subarray","gene_trap_construct","gene_with_dicistronic_mRNA","gene_with_dicistronic_primary_transcript","gene_with_dicistronic_transcript","gene_with_edited_transcript","gene_with_mRNA_recoded_by_translational_bypass","gene_with_mRNA_with_frameshift","gene_with_non_canonical_start_codon","gene_with_polyadenylated_mRNA","gene_with_polycistronic_transcript","gene_with_recoded_mRNA","gene_with_start_codon_CUG","gene_with_stop_codon_read_through","gene_with_stop_codon_redefined_as_pyrrolysine","gene_with_stop_codon_redefined_as_selenocysteine","gene_with_trans_spliced_transcript","gene_with_transcript_with_translational_frameshift","genetic_marker","genomic_DNA_contig","genomic_DNA_read","genomic_clone","genomic_island","genomically_contaminated_cDNA_clone","glutamic_acid","glutamic_acid_tRNA_primary_transcript","glutamine","glutamine_tRNA_primary_transcript","glutaminyl_tRNA","glutamyl_tRNA","glycine","glycine_tRNA_primary_transcript","glycyl_tRNA","golden_path","golden_path_fragment","group_1_intron_homing_endonuclease_target_region","group_IIA_intron","group_IIB_intron","group_IIC_intron","group_III_intron","group_II_intron","group_I_intron","guide_RNA","guide_RNA_region","hAT_TIR_transposon","hammerhead_ribozyme","haplotype_block","helitron","helix_turn_helix","heptamer_of_recombination_feature_of_vertebrate_immune_system_gene","heritable_phenotypic_marker","high_identity_region","histidine","histidine_tRNA_primary_transcript","histidyl_tRNA","histone_2AZ_acetylation_site","histone_2A_acetylation_site","histone_2B_acetylation_site","histone_3_acetylation_site","histone_4_acetylation_site","histone_acetylation_site","histone_acylation_region","histone_binding_site","histone_methylation_site","histone_modification","histone_ubiqitination_site","homing_endonuclease_binding_site","homol_D_box","homol_E_box","homologous_chromosome_recognition_and_pairing_locus","homologous_region","hpRNA","hpRNA_gene","hydrophobic_region_of_peptide","hydroxywybutosine","iDNA","i_motif","immature_peptide_region","immunoglobulin_gene","immunoglobulin_pseudogene","immunoglobulin_region","imprinting_control_region","indel_artifact","inducible_promoter","inert_DNA_spacer","inosine","insertion","insertion_artifact","insertion_breakpoint","insertion_sequence","insertion_site","insulator","insulator_binding_site","integrated_mobile_genetic_element","integrated_plasmid","integration_excision_site","integron","intein","intein_encoding_region","interband","interchromosomal_breakpoint","interchromosomal_translocation","intergenic_region","interior_coding_exon","interior_exon","interior_intron","intermediate_element","internal_Shine_Dalgarno_sequence","internal_UTR","internal_eliminated_sequence","internal_guide_sequence","internal_ribosome_entry_site","internal_transcribed_spacer_region","intrachromosomal_breakpoint","intrachromosomal_translocation","intramembrane_polypeptide_region","intrinsically_unstructured_polypeptide_region","introgressed_chromosome_region","intron","intron_base_5","intron_domain","intronic_regulatory_region","intronic_splice_enhancer","intronic_splicing_silencer","invalidated_cDNA_clone","inversion","inversion_breakpoint","inversion_cum_translocation","inversion_site","inversion_site_part","inverted_intrachromosomal_transposition","inverted_repeat","inverted_tandem_duplication","iron_repressed_GATA_element","iron_responsive_element","isoleucine","isoleucine_tRNA_primary_transcript","isoleucyl_tRNA","isomiR","isowyosine","junction","kinetoplast_gene","knob","kozak_sequence","lambda_vector","lariat_intron","late_origin_of_replication","left_handed_peptide_helix","leucine","leucine_tRNA_primary_transcript","leucoplast_chromosome","leucoplast_gene","leucyl_tRNA","ligand_binding_site","ligation_based_read","lincRNA","lincRNA_gene","linear_double_stranded_DNA_chromosome","linear_double_stranded_RNA_chromosome","linear_plasmid","linear_single_stranded_DNA_chromosome","linear_single_stranded_RNA_chromosome","linkage_group","lipoprotein_signal_peptide","lncRNA","lncRNA_gene","lncRNA_primary_transcript","lncRNA_with_retained_intron","loR","locus_control_region","long_terminal_repeat","long_terminal_repeat_transcript","loop","low_complexity_region","loxP_site","lysidine","lysine","lysine_tRNA_primary_transcript","lysosomal_localization_signal","lysyl_tRNA","mRNA","mRNA_contig","mRNA_read","mRNA_recoded_by_codon_redefinition","mRNA_recoded_by_translational_bypass","mRNA_region","mRNA_with_frameshift","mRNA_with_minus_1_frameshift","mRNA_with_minus_2_frameshift","mRNA_with_plus_1_frameshift","mRNA_with_plus_2_frameshift","macronuclear_chromosome","macronucleus_destined_segment","major_TSS","mannosyl_queuosine","match","match_part","maternal_uniparental_disomy","maternally_imprinted_gene","mathematically_defined_repeat","mating_type_M_box","mating_type_region","mating_type_region_motif","mating_type_region_replication_fork_barrier","matrix_attachment_site","mature_protein_region","mature_protein_region_of_CDS","mature_transcript","mature_transcript_region","maxicircle","maxicircle_gene","meiotic_recombination_region","membrane_peptide_loop","membrane_structure","metabolic_island","metal_binding_site","methionine","methionine_tRNA_primary_transcript","methionyl_tRNA","methylated_DNA_base_feature","methylated_adenine","methylated_cytosine","methylation_guide_snoRNA","methylation_guide_snoRNA_gene","methylation_guide_snoRNA_primary_transcript","methylinosine","methylwyosine","miRNA","miRNA_antiguide","miRNA_gene","miRNA_loop","miRNA_primary_transcript","miRNA_primary_transcript_region","miRNA_stem","miRNA_target_site","miR_encoding_Y_RNA_primary_transcript","miR_encoding_lncRNA_primary_transcript","miR_encoding_shRNA_primary_transcript","miR_encoding_snoRNA_primary_transcript","miR_encoding_tRNA_primary_transcript","miR_encoding_vaultRNA_primary_transcript","miRtron","microarray_oligo","micronuclear_chromosome","microsatellite","mini_exon_donor_RNA","mini_gene","minicircle","minicircle_gene","minisatellite","minor_TSS","minus_10_signal","minus_12_signal","minus_1_translational_frameshift","minus_24_signal","minus_2_translational_frameshift","minus_35_signal","mitochondrial_DNA_read","mitochondrial_D_loop","mitochondrial_chromosome","mitochondrial_contig","mitochondrial_control_region","mitochondrial_supercontig","mitochondrial_targeting_signal","mitotic_recombination_region","moR","mobile_element_deletion","mobile_element_insertion","mobile_genetic_element","mobile_intron","modified_DNA_base","modified_L_alanine","modified_L_arginine","modified_L_asparagine","modified_L_aspartic_acid","modified_L_cysteine","modified_L_glutamic_acid","modified_L_glutamine","modified_L_histidine","modified_L_isoleucine","modified_L_leucine","modified_L_lysine","modified_L_methionine","modified_L_phenylalanine","modified_L_proline","modified_L_selenocysteine","modified_L_serine","modified_L_threonine","modified_L_tryptophan","modified_L_tyrosine","modified_L_valine","modified_RNA_base_feature","modified_adenine","modified_adenosine","modified_amino_acid_feature","modified_cytidine","modified_cytosine","modified_glycine","modified_guanine","modified_guanosine","modified_inosine","modified_uridine","molecular_contact_region","monocistronic_mRNA","monocistronic_primary_transcript","monocistronic_transcript","monomeric_repeat","morpholino_oligo","mt_LSU_rRNA","mt_LSU_rRNA_gene","mt_SSU_rRNA","mt_SSU_rRNA_gene","mt_gene","mt_rRNA","mt_rRNA_gene","mt_tRNA","multiplexing_sequence_identifier","mutated_variant_site","mutational_hotspot","n_terminal_region","natural_plasmid","natural_transposable_element","natural_variant_site","ncRNA","ncRNA_gene","nc_conserved_region","nc_primary_transcript","negative_sense_ssRNA_viral_sequence","negatively_autoregulated_gene","nested_repeat","nested_tandem_repeat","nested_transposon","no_output","no_sequence_alteration","non_AUG_initiated_uORF","non_LTR_retrotransposon","non_LTR_retrotransposon_polymeric_tract","non_adjacent_residues","non_allelic_homologous_recombination_region","non_canonical_five_prime_splice_site","non_canonical_start_codon","non_canonical_three_prime_splice_site","non_complimentary_stem","non_cytoplasmic_polypeptide_region","non_processed_pseudogene","non_terminal_residue","non_transcribed_region","nonamer_of_recombination_feature_of_vertebrate_immune_system_gene","noncoding_exon","noncoding_region_of_exon","novel_sequence_insertion","nuclear_chromosome","nuclear_export_signal","nuclear_gene","nuclear_localization_signal","nuclear_mt_pseudogene","nuclear_rim_localization_signal","nuclease_binding_site","nuclease_hypersensitive_site","nuclease_sensitive_site","nucleomorph_gene","nucleomorphic_chromosome","nucleotide_binding_site","nucleotide_cleavage_site","nucleotide_match","nucleotide_motif","nucleotide_to_protein_binding_site","ochre_stop_codon","octamer_motif","oligo","oligo_U_tail","one_methyl_three_three_amino_three_carboxypropyl_pseudouridine","one_methyladenosine","one_methylguanosine","one_methylinosine","one_methylpseudouridine","one_two_prime_O_dimethyladenosine","one_two_prime_O_dimethylguanosine","one_two_prime_O_dimethylinosine","opal_stop_codon","open_chromatin_region","operator","operon","oriC","oriT","oriV","origin_of_replication","orphan_CDS","orthologous_region","outron","overlapping_EST_set","overlapping_feature_set","paired_end_fragment","parallel_beta_strand","paralogous_region","partial_genomic_sequence_assembly","partially_processed_cDNA_clone","paternal_uniparental_disomy","paternally_imprinted_gene","pathogenic_island","peptide_coil","peptide_helix","peptide_localization_signal","peroxywybutosine","phage_sequence","phagemid","phenylalanine","phenylalanine_tRNA_primary_transcript","phenylalanyl_tRNA","pheromone_response_element","phosphorylation_site","piRNA","piRNA_gene","pi_helix","piggyBac_TIR_transposon","plasmid","plasmid_gene","plasmid_vector","plastid_LSU_rRNA","plastid_LSU_rRNA_gene","plastid_SSU_rRNA","plastid_SSU_rRNA_gene","plastid_gene","plastid_rRNA","plastid_rRNA_gene","plus_1_translational_frameshift","plus_2_translational_frameshift","point_centromere","point_mutation","polinton","polyA_primed_cDNA_clone","polyA_sequence","polyA_signal_sequence","polyA_site","polyA_site_cluster","polyadenylated_mRNA","polycistronic_mRNA","polycistronic_primary_transcript","polycistronic_transcript","polymerase_synthesis_read","polymorphic_pseudogene","polymorphic_pseudogene_processed_transcript","polymorphic_pseudogene_with_retained_intron","polypeptide","polypeptide_DNA_contact","polypeptide_binding_motif","polypeptide_calcium_ion_contact_site","polypeptide_catalytic_motif","polypeptide_cobalt_ion_contact_site","polypeptide_conserved_motif","polypeptide_conserved_region","polypeptide_copper_ion_contact_site","polypeptide_domain","polypeptide_iron_ion_contact_site","polypeptide_ligand_contact","polypeptide_magnesium_ion_contact_site","polypeptide_manganese_ion_contact_site","polypeptide_metal_contact","polypeptide_molybdenum_ion_contact_site","polypeptide_motif","polypeptide_nest_left_right_motif","polypeptide_nest_motif","polypeptide_nest_right_left_motif","polypeptide_nickel_ion_contact_site","polypeptide_region","polypeptide_repeat","polypeptide_secondary_structure","polypeptide_sequencing_information","polypeptide_structural_motif","polypeptide_structural_region","polypeptide_tungsten_ion_contact_site","polypeptide_turn_motif","polypeptide_variation_site","polypeptide_zinc_ion_contact_site","polypyrimidine_tract","positional_candidate_gene","positive_sense_ssRNA_viral_sequence","positively_autoregulated_gene","possible_assembly_error","possible_base_call_error","post_translationally_modified_region","post_translationally_regulated_gene","pre_edited_mRNA","pre_edited_region","pre_miRNA","predicted_gene","predicted_transcript","presence_absence_variation","priRNA","primary_transcript","primary_transcript_region","primer","primer_binding_site","primer_match","probe","processed_pseudogene","processed_pseudogenic_rRNA","processed_pseudogenic_tRNA","processed_transcript","prokaryotic_promoter","proline","proline_tRNA_primary_transcript","prolyl_tRNA","promoter","promoter_element","promoter_flanking_region","promoter_targeting_sequence","promoter_trap_construct","propeptide","propeptide_cleavage_site","propeptide_region_of_CDS","prophage","proplastid_gene","protease_site","protein_binding_site","protein_coding_gene","protein_coding_primary_transcript","protein_hmm_match","protein_match","protein_protein_contact","protein_stability_element","proviral_gene","proviral_region","proximal_promoter_element","pseudogene","pseudogene_by_unequal_crossing_over","pseudogene_processed_transcript","pseudogenic_CDS","pseudogenic_exon","pseudogenic_gene_segment","pseudogenic_rRNA","pseudogenic_region","pseudogenic_tRNA","pseudogenic_transcript","pseudogenic_transcript_with_retained_intron","pseudoknot","pseudouridine","pseudouridylation_guide_snoRNA","pseudouridylation_guide_snoRNA_gene","pumilio_response_element","purine_to_pyrimidine_transversion","purine_transition","pyrimidine_to_purine_transversion","pyrimidine_transition","pyrosequenced_read","pyrrolysine","pyrrolysine_tRNA_primary_transcript","pyrrolysyl_tRNA","queuosine","rDNA_intergenic_spacer_element","rDNA_replication_fork_barrier","rRNA","rRNA_21S_gene","rRNA_cleavage_RNA","rRNA_cleavage_snoRNA_primary_transcript","rRNA_gene","rRNA_large_subunit_primary_transcript","rRNA_primary_transcript","rRNA_primary_transcript_region","rRNA_small_subunit_primary_transcript","rare_fragile_site","rasiRNA","read","read_pair","reading_frame","reagent","rearrangement_region","reciprocal_chromosomal_translocation","recoded_codon","recoded_mRNA","recoding_pseudoknot","recoding_stimulatory_region","recombination_enhancer","recombination_feature","recombination_feature_of_rearranged_gene","recombination_hotspot","recombination_regulatory_region","recombination_signal_sequence","recombinationally_inverted_gene","recombinationally_rearranged_gene","recombinationally_rearranged_vertebrate_immune_system_gene","recursive_splice_site","ref_miRNA","region","regional_centromere","regional_centromere_central_core","regional_centromere_inner_repeat_region","regional_centromere_outer_repeat_region","regional_centromere_outer_repeat_transcript","regulatory_promoter_element","regulatory_region","regulon","remark","repeat_component","repeat_fragment","repeat_instability_region","repeat_region","repeat_unit","replication_regulatory_region","replication_start_site","replicon","rescue_gene","rescue_mini_gene","rescue_region","resolution_site","response_element","restriction_enzyme_assembly_scar","restriction_enzyme_binding_site","restriction_enzyme_cleavage_junction","restriction_enzyme_five_prime_single_strand_overhang","restriction_enzyme_recognition_site","restriction_enzyme_region","restriction_enzyme_single_strand_overhang","restriction_enzyme_three_prime_single_strand_overhang","restriction_fragment","retinoic_acid_responsive_element","retrogene","retron","retrotransposon","reverse_Hoogsteen_base_pair","reverse_primer","rho_dependent_bacterial_terminator","rho_independent_bacterial_terminator","ribonuclease_site","ribosome_entry_site","riboswitch","ribothymidine","ribozyme","ribozyme_gene","right_handed_peptide_helix","sORF","sarcin_like_RNA_motif","satellite_DNA","sbRNA","sbRNA_gene","scRNA","scRNA_gene","scRNA_primary_transcript","scaRNA","scaRNA_gene","schellmann_loop","schellmann_loop_seven","schellmann_loop_six","selection_marker","selenocysteine","selenocysteine_tRNA_primary_transcript","selenocysteinyl_tRNA","self_cleaving_ribozyme","sense_intronic_ncRNA","sense_intronic_ncRNA_gene","sense_overlap_ncRNA","sense_overlap_ncRNA_gene","sequence_alteration","sequence_alteration_artifact","sequence_assembly","sequence_comparison","sequence_conflict","sequence_difference","sequence_feature","sequence_length_alteration","sequence_motif","sequence_rearrangement_feature","sequence_secondary_structure","sequence_uncertainty","sequencing_primer","serine","serine_tRNA_primary_transcript","serine_threonine_motif","serine_threonine_staple_motif","serine_threonine_turn","seryl_tRNA","seven_aminomethyl_seven_deazaguanosine","seven_cyano_seven_deazaguanosine","seven_deazaguanosine","seven_methylguanine","seven_methylguanosine","sgRNA","shRNA","shRNA_primary_transcript","shadow_enhancer","short_tandem_repeat_variation","siRNA","signal_anchor","signal_peptide","signal_peptide_region_of_CDS","signature","silenced_gene","silencer","silent_mating_type_cassette_array","simple_operon","simple_regulon","simple_sequence_length_variation","single_strand_restriction_enzyme_cleavage_site","single_stranded_DNA_chromosome","single_stranded_RNA_chromosome","sisRNA","site_specific_recombination_target_region","smFISH_probe","small_regulatory_ncRNA","snRNA","snRNA_gene","snRNA_primary_transcript","sncRNA","sncRNA_gene","snoRNA","snoRNA_gene","snoRNA_primary_transcript","solo_LTR","sonicate_fragment","specific_recombination_site","splice_enhancer","splice_junction","splice_region","splice_site","spliced_leader_RNA","spliceosomal_intron","spliceosomal_intron_region","splicing_regulatory_region","spot_42_RNA","spurious_protein","ss_RNA_viral_sequence","ss_oligo","st_turn_left_handed_type_one","st_turn_left_handed_type_two","st_turn_right_handed_type_one","st_turn_right_handed_type_two","start_codon","stem","stem_loop","stem_loop_region","sterol_regulatory_element","sticky_end_restriction_enzyme_cleavage_site","stop_codon","stop_codon_read_through","stop_codon_redefined_as_pyrrolysine","stop_codon_redefined_as_selenocysteine","stop_codon_signal","structural_alteration","substitution","substitution_artifact","subtelomere","sugar_edge_base_pair","supercontig","symbiosis_island","symmetric_RNA_internal_loop","syntenic_region","synthetic_oligo","tRNA","tRNA_SINE_retrotransposon","tRNA_gene","tRNA_intron","tRNA_primary_transcript","tRNA_region","tag","tandem_duplication","tandem_repeat","target_site_duplication","targeting_vector","tasiRNA","tasiRNA_primary_transcript","teb1_recognition_motif","telomerase_RNA","telomerase_RNA_gene","telomere","telomeric_D_loop","telomeric_repeat","telomeric_transcript","template_region","terminal_inverted_repeat","terminal_inverted_repeat_element","terminal_repeat","terminator","terminator_of_type_2_RNApol_III_promoter","tetraloop","tetranucleotide_repeat_microsatellite_feature","three_methylcytidine","three_methylpseudouridine","three_methyluridine","three_prime_D_heptamer","three_prime_D_nonamer","three_prime_D_recombination_signal_sequence","three_prime_D_spacer","three_prime_EST","three_prime_LTR","three_prime_LTR_component","three_prime_RACE_clone","three_prime_RST","three_prime_UST","three_prime_UTR","three_prime_UTR_intron","three_prime_cis_splice_site","three_prime_clip","three_prime_coding_exon","three_prime_coding_exon_coding_region","three_prime_coding_exon_noncoding_region","three_prime_flanking_region","three_prime_intron","three_prime_noncoding_exon","three_prime_overlapping_ncrna","three_prime_recoding_site","three_prime_repeat_recoding_signal","three_prime_restriction_enzyme_junction","three_prime_stem_loop_structure","three_prime_sticky_end_restriction_enzyme_cleavage_site","three_prime_terminal_inverted_repeat","three_ten_helix","three_three_amino_three_carboxypropyl_uridine","three_two_prime_O_dimethyluridine","threonine","threonine_tRNA_primary_transcript","threonyl_tRNA","tiling_path","tiling_path_clone","tiling_path_fragment","tmRNA","tmRNA_acceptor_piece","tmRNA_coding_piece","tmRNA_gene","tmRNA_primary_transcript","tmRNA_region","tnaORF","topologically_associated_domain","topologically_associated_domain_boundary","topologically_defined_region","trans_splice_acceptor_site","trans_splice_donor_site","trans_splice_junction","trans_splice_site","trans_spliced_mRNA","trans_spliced_transcript","transcribed_cluster","transcribed_fragment","transcribed_processed_pseudogene","transcribed_spacer_region","transcribed_unitary_pseudogene","transcribed_unprocessed_pseudogene","transcript","transcript_bound_by_nucleic_acid","transcript_bound_by_protein","transcript_region","transcript_with_translational_frameshift","transcription_end_site","transcription_factor_regulatory_site","transcription_pause_site","transcription_start_cluster","transcription_termination_signal","transcription_unit","transcriptional_cis_regulatory_region","transgene","transgenic_insertion","transgenic_transposable_element","transit_peptide","transit_peptide_region_of_CDS","transition","translated_nucleotide_match","translated_processed_pseudogene","translated_unprocessed_pseudogene","translation_regulatory_region","translational_frameshift","translationally_regulated_gene","translocation","translocation_breakpoint","translocation_element","transmembrane_helix","transmembrane_polypeptide_region","transposable_element","transposable_element_CDS","transposable_element_flanking_region","transposable_element_gene","transposable_element_insertion_site","transposable_element_pseudogene","transposon_fragment","transversion","trinucleotide_repeat_microsatellite_feature","tryptophan","tryptophan_tRNA_primary_transcript","tryptophanyl_tRNA","twintron","two_methyladenosine","two_methylthio_N6_cis_hydroxyisopentenyl_adenosine","two_methylthio_N6_hydroxynorvalyl_carbamoyladenosine","two_methylthio_N6_isopentenyladenosine","two_methylthio_N6_methyladenosine","two_methylthio_N6_threonyl_carbamoyladenosine","two_prime_O_methyladenosine","two_prime_O_methylcytidine","two_prime_O_methylguanosine","two_prime_O_methylinosine","two_prime_O_methylpseudouridine","two_prime_O_methyluridine","two_prime_O_ribosyladenosine_phosphate","two_prime_O_ribosylguanosine_phosphate","two_thio_two_prime_O_methyluridine","two_thiocytidine","two_thiouridine","tyrosine","tyrosine_tRNA_primary_transcript","tyrosyl_tRNA","uORF","ultracontig","unassigned_supercontig","unconfirmed_transcript","undermodified_hydroxywybutosine","unedited_region","unigene_cluster","unit_of_gene_expression","unitary_pseudogene","unitary_pseudogenic_rRNA","unitary_pseudogenic_tRNA","unprocessed_pseudogenic_rRNA","unprocessed_pseudogenic_tRNA","unspecified_indel","untranslated_region_polycistronic_mRNA","upstream_AUG_codon","uridine_five_oxyacetic_acid","uridine_five_oxyacetic_acid_methyl_ester","vacuolar_sorting_signal","validated_cDNA_clone","valine","valine_tRNA_primary_transcript","valyl_tRNA","vaultRNA_primary_transcript","vault_RNA","vault_RNA_gene","vector_replicon","vertebrate_immune_system_gene","vertebrate_immune_system_gene_recombination_feature","vertebrate_immune_system_gene_recombination_signal_feature","vertebrate_immune_system_gene_recombination_spacer","vertebrate_immune_system_pseudogene","vertebrate_immunoglobulin_T_cell_receptor_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_gene_cluster","vertebrate_immunoglobulin_T_cell_receptor_rearranged_segment","vertebrate_immunoglobulin_T_cell_receptor_segment","viral_promoter","viral_sequence","virtual_sequence","wild_type_rescue_gene","wobble_base_pair","wybutosine","wyosine","zinc_finger_binding_site","zinc_repressed_element"],uo=function(e){function t(){var e;N(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return T(e=Q(this,t,[].concat(r)),"name","Core"),e}return O(t,e),D(t,[{key:"frontendPreValidate",value:(r=B(U().m((function e(t){var n,r,o;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(!("oldType"in(i=t))||!("newType"in i)){e.n=7;break}n=F(t.changes),e.p=1,n.s();case 2:if((r=n.n()).done){e.n=4;break}if(lo.includes((o=r.value).newType)){e.n=3;break}return e.a(2,{validationName:this.name,error:{message:'"'.concat(o.newType,'" is not a valid SO sequence_feature term')}});case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,n.e(e.v);case 6:return e.p=6,n.f(),e.f(6);case 7:return e.a(2,{validationName:this.name})}var i}),e,this,[[1,5,6,7]])}))),function(e){return r.apply(this,arguments)})},{key:"possibleValues",value:(n=B(U().m((function e(t){return U().w((function(e){for(;;)switch(e.n){case 0:if("type"!==t){e.n=1;break}return e.a(2,lo);case 1:return e.a(2)}}),e)}))),function(e){return n.apply(this,arguments)})}]);var n,r}(io),Ao=function(e){function t(){var e;N(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return T(e=Q(this,t,[].concat(r)),"name","ParentChildValidation"),e}return O(t,e),D(t,[{key:"backendPostValidate",value:(r=B(U().m((function e(t,n){var r,o;return U().w((function(e){for(;;)switch(e.n){case 0:if(r=n.featureModel,o=n.session,!Jr(t)&&!Gr(t)){e.n=1;break}return e.a(2,this.validateParentChildRelationships(t,{session:o,featureModel:r}));case 1:return e.a(2,{validationName:this.name})}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"validateParentChildRelationships",value:(n=B(U().m((function e(t,n){var r,o,i,a,s,c,l,u,d;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:r=n.featureModel,o=n.session,i=[],a=F(t.changes),e.p=1,c=U().m((function e(){var t,n,a;return U().w((function(e){for(;;)switch(e.n){case 0:return t=s.value.featureId,e.n=1,r.findOne({allIds:t}).session(o).exec();case 1:if(n=e.v){e.n=2;break}throw a="ERROR: The following featureId was not found in database ='".concat(t,"'"),new Error(a);case 2:i.some((function(e){return e._id===n._id}))||i.push(n);case 3:return e.a(2)}}),e)})),a.s();case 2:if((s=a.n()).done){e.n=4;break}return e.d(Y(c()),3);case 3:e.n=2;break;case 4:e.n=6;break;case 5:e.p=5,a.e(e.v);case 6:return e.p=6,a.f(),e.f(6);case 7:l=0,u=i;case 8:if(!(l<u.length)){e.n=12;break}d=u[l],e.p=9,this.checkChildFeatureBoundaries(d),e.n=11;break;case 10:return e.p=10,e.a(2,{validationName:this.name,error:{message:String(e.v)}});case 11:l++,e.n=8;break;case 12:return e.a(2,{validationName:this.name})}}),e,this,[[9,10],[1,5,6,7]])}))),function(e,t){return n.apply(this,arguments)})},{key:"checkChildFeatureBoundaries",value:function(e){if(e.children){var t,n=F(e.children||new Map);try{for(n.s();!(t=n.n()).done;){var r=K(t.value,2)[1];if(null!==e.min&&null!==e.max&&null!==r.min&&null!==r.max&&(r.max>e.max||r.min<e.min))throw new Error("Feature ".concat(Yr(r)," exceeds the bounds of its parent, ").concat(Yr(e)));this.checkChildFeatureBoundaries(r)}}catch(e){n.e(e)}finally{n.f()}}}}]);var n,r}(io);function fo(e){this.message=e}(fo.prototype=new Error).name="InvalidCharacterError";var ho,go,po="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new fo("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,r,o=0,i=0,a="";r=t.charAt(i++);~r&&(n=o%4?64*n+r:r,o++%4)?a+=String.fromCharCode(255&n>>(-2*o&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return a};function mo(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(po(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(t)}catch(e){return po(t)}}function yo(e){this.message=e}function _o(e,t){if("string"!=typeof e)throw new yo("Invalid token specified");var n=!0===(t=t||{}).header?0:1;try{return JSON.parse(mo(e.split(".")[n]))}catch(e){throw new yo("Invalid token specified: "+e.message)}}function vo(e){var t="string"==typeof e?_o(e):e;return"".concat(t.id,"-").concat(t.iat)}function bo(e){return _o(e)}function Co(e){var t,n,r=null===(t=e.attributes)||void 0===t||null===(t=t.gff_id)||void 0===t?void 0:t.join(", ");if(r)return"".concat(r," (_id: ").concat(e._id.toString(),")");var o=null===(n=e.attributes)||void 0===n||null===(n=n.gff_name)||void 0===n?void 0:n.join(", ");return o?"".concat(o," (_id: ").concat(e._id.toString(),")"):"_id: ".concat(e._id.toString())}(yo.prototype=new Error).name="InvalidTokenError",function(e){e[e.TAG=0]="TAG",e[e.TAA=1]="TAA",e[e.TGA=2]="TGA"}(ho||(ho={})),function(e){e[e.ATG=0]="ATG"}(go||(go={}));var Io,wo="CDSCheck";!function(e){e[e.InternalStopCodon=0]="InternalStopCodon",e[e.MissingStartCodon=1]="MissingStartCodon",e[e.MissingStopCodon=2]="MissingStopCodon"}(Io||(Io={}));var Eo={G:"C",A:"T",T:"A",C:"G",R:"Y",Y:"R",M:"K",K:"M",S:"S",W:"W",H:"D",B:"V",V:"B",D:"H",N:"N"};function xo(e){var t,n=[],r=F(e);try{for(r.s();!(t=r.n()).done;){var o=t.value,i=Eo[o.toUpperCase()];if(void 0===i)throw new TypeError('Cannot complement nucleotide: "'.concat(o,'"'));o===o.toLowerCase()?n.push(i.toLowerCase()):n.push(i)}}catch(e){r.e(e)}finally{r.f()}return n.reverse().join("")}function So(e,t,n){return Bo.apply(this,arguments)}function Bo(){return(Bo=B(U().m((function e(t,n,r){var o;return U().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,Promise.all(t.map((function(e){return r(e.min,e.max)})));case 1:return o=e.v.join(""),-1===n&&(o=xo(o)),e.a(2,o)}}),e)})))).apply(this,arguments)}function ko(e){for(var t=[],n=0;n<=e.length-3;n+=3)t.push(e.slice(n,n+3));return t}function Qo(e,t,n){return-1===n?e>t:e<t}function No(e,t,n){for(var r=e.toSorted(-1===t?function(e,t){return e.min<t.min?1:-1}:function(e,t){return e.min<t.min?-1:1}),o=0,i=void 0,a=void 0,s=0;s<r.length;s++)for(var c=r[s],l=c.phase,u=-1===t?c.min:c.max,d=-1===t?c.max-l:c.min+l;Qo(d,u,t);d=-1===t?d-3:d+3){if(i=d,a=-1===t?i-3:i+3,-1===t&&a<c.min?a=r[s+1].max-r[s+1].phase:a>c.max&&(a=r[s+1].min+r[s+1].phase),o===n)return[i,a].sort((function(e,t){return e-t}));o++}}function Ro(e,t){return Do.apply(this,arguments)}function Do(){return(Do=B(U().m((function e(t,n){var r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y,_,v,b,C,I,w,E,x,S,B,k,Q,N,R,D,T,j,M;return U().w((function(e){for(;;)switch(e.p=e.n){case 0:if(r=[],o=t._id,i=t.max,a=t.min,s=t.refSeq,c=t.strand,l=Fo(t)){e.n=1;break}return e.a(2,r);case 1:u=[o],d=F(l),e.p=2,d.s();case 3:if((A=d.n()).done){e.n=13;break}return m=A.value,e.n=4,So(m,c,n);case 4:_=ko(y=e.v),v=-1===c?null!==(f=null===(h=m.at(0))||void 0===h?void 0:h.min)&&void 0!==f?f:a:null!==(g=null===(p=m.at(-1))||void 0===p?void 0:p.max)&&void 0!==g?g:i,y.length%3==0?((b=_.at(0))&&!(b.toUpperCase()in go)&&(x=-1===c?null!==(C=null===(I=m.at(-1))||void 0===I?void 0:I.max)&&void 0!==C?C:i:null!==(w=null===(E=m.at(0))||void 0===E?void 0:E.min)&&void 0!==w?w:a,x=-1===c?x-3:x,r.push({_id:(new ut).toHexString(),name:wo,cause:Io[Io.MissingStartCodon],ids:u,refSeq:s.toString(),start:x,end:x,message:'Unexpected start codon "'.concat(b,'" in feature "').concat(Co(t),'": ')})),(S=_.at(-1))&&!(S.toUpperCase()in ho)&&r.push({_id:(new ut).toHexString(),name:wo,cause:Io[Io.MissingStopCodon],ids:u,refSeq:s.toString(),start:v,end:v,message:'Missing stop codon in feature "'.concat(Co(t),'"')})):r.push({_id:(new ut).toHexString(),name:wo,cause:Io[Io.MissingStopCodon],ids:u,refSeq:s.toString(),start:v,end:v,message:'Missing stop codon in feature "'.concat(Co(t),'"')}),B=F(_.entries()),e.p=5,B.s();case 6:if((k=B.n()).done){e.n=9;break}if(Q=K(k.value,2),R=Q[1],(N=Q[0])!==_.length-1){e.n=7;break}return e.a(3,9);case 7:(D=No(m,c,N))&&R.toUpperCase()in ho&&(T=K(D,2),j=T[0],M=T[1],r.push({_id:(new ut).toHexString(),name:wo,cause:Io[Io.InternalStopCodon],ids:u,refSeq:s.toString(),start:j,end:M,message:'Internal stop codon in feature "'.concat(Co(t),'"')}));case 8:e.n=6;break;case 9:e.n=11;break;case 10:e.p=10,B.e(e.v);case 11:return e.p=11,B.f(),e.f(11);case 12:e.n=3;break;case 13:e.n=15;break;case 14:e.p=14,d.e(e.v);case 15:return e.p=15,d.f(),e.f(15);case 16:return e.a(2,r)}}),e,null,[[5,10,11,12],[2,14,15,16]])})))).apply(this,arguments)}function Fo(e){if("mRNA"===e.type){var t=e.children,n=e.strand;if(t){var r=Object.values(t).filter((function(e){return"CDS"===e.type}));if(0!==r.length){var i,a=[],s=F(r);try{var c=function(){for(var e=i.value,r=e.max,s=e.min,c=[],l=0,u=Object.values(t);l<u.length;l++){var d=u[l];if("exon"===d.type){var A=K(o.intersection2(s,r,d.min,d.max),2),f=A[0],h=A[1];void 0!==f&&void 0!==h&&c.push({min:f,max:h})}}c.sort((function(e,t){return e.min-t.min})),-1===n&&c.reverse();var g=0,p=c.map((function(e){var t=g;return g=(3-(e.max-e.min-t+3)%3)%3,q(q({},e),{},{phase:t})}));p.sort((function(e,t){return e.min<t.min?-1:1})),a.push(p)};for(s.s();!(i=s.n()).done;)c()}catch(e){s.e(e)}finally{s.f()}return a.length>1&&a.sort((function(e,t){return e[0].min<t[0].min?-1:1})),a}}}}var To,jo=function(e){function t(){var e;N(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return T(e=Q(this,t,[].concat(r)),"name",wo),T(e,"causes",Object.values(Io).filter((function(e){return Number.isNaN(Number(e))}))),T(e,"version",1),T(e,"isDefault",!0),e}return O(t,e),D(t,[{key:"checkFeature",value:(n=B(U().m((function e(t,n){var r,o,i,a,s,c,l;return U().w((function(e){for(;;)switch(e.n){case 0:if("mRNA"!==t.type){e.n=1;break}return e.a(2,Ro(t,n));case 1:if(t.children){e.n=2;break}return e.a(2,[]);case 2:r=[],o=0,i=Object.values(t.children);case 3:if(!(o<i.length)){e.n=6;break}return a=i[o],s=r.push,c=r,l=V,e.n=4,this.checkFeature(a,n);case 4:s.apply.call(s,c,l(e.v));case 5:o++,e.n=3;break;case 6:return e.a(2,r)}}),e,this)}))),function(e,t){return n.apply(this,arguments)})}]);var n}(gt);!function(e){e[e.NonCanonicalSpliceSiteAtFivePrime=0]="NonCanonicalSpliceSiteAtFivePrime",e[e.NonCanonicalSpliceSiteAtThreePrime=1]="NonCanonicalSpliceSiteAtThreePrime"}(To||(To={}));var Mo="TranscriptCheck";function Oo(e,t){return Lo.apply(this,arguments)}function Lo(){return Lo=B(U().m((function e(t,n){var r,i,a,s,c,l,u,d,A,f,h,g;return U().w((function(e){for(;;)switch(e.n){case 0:if(t.children){e.n=1;break}return e.a(2,[]);case 1:for(r=[],i=0,a=Object.entries(t.children);i<a.length;i++)s=K(a[i],2),"exon"===(c=s[1]).type&&r.push(c);if(!(r.length<2)){e.n=2;break}return e.a(2,[]);case 2:r.sort((function(e,t){return e.min<t.min?-1:1})),l=[],u=0;case 3:if(!(u<r.length-1)){e.n=7;break}return d=r[u].max,A=r[u+1].min,-1===t.strand?(A=(f=[d,A])[0],d=f[1],d-=2):A-=2,e.n=4,n(d,d+2);case 4:return h=e.v,e.n=5,n(A,A+2);case 5:g=e.v,-1===t.strand&&(g=o.revcom(g),h=o.revcom(h)),l.push({fivePrimeSeq:h,fivePrimeMin:d,threePrimeSeq:g,threePrimeMin:A});case 6:u++,e.n=3;break;case 7:return e.a(2,l)}}),e)}))),Lo.apply(this,arguments)}function Po(e,t){return qo.apply(this,arguments)}function qo(){return(qo=B(U().m((function e(t,n){var r,o,i,a,s,c;return U().w((function(e){for(;;)switch(e.n){case 0:return r=[],o=new Set(["GT"]),i=new Set(["AG"]),e.n=1,Oo(t,n);case 1:a=F(e.v);try{for(a.s();!(s=a.n()).done;)o.has((c=s.value).fivePrimeSeq.toUpperCase())||r.push({_id:(new ut).toHexString(),name:Mo,cause:To[To.NonCanonicalSpliceSiteAtFivePrime],ids:[t._id],refSeq:t.refSeq.toString(),start:c.fivePrimeMin,end:c.fivePrimeMin+2,message:'Unexpected 5′ splice site in "'.concat(Co(t),'". Expected: ').concat(V(o).join("|"),", got: ").concat(c.fivePrimeSeq)}),i.has(c.threePrimeSeq.toUpperCase())||r.push({_id:(new ut).toHexString(),name:Mo,cause:To[To.NonCanonicalSpliceSiteAtThreePrime],ids:[t._id],refSeq:t.refSeq.toString(),start:c.threePrimeMin,end:c.threePrimeMin+2,message:'Unexpected 3′ splice site in "'.concat(Co(t),'". Expected: ').concat(V(i).join("|"),", got: ").concat(c.threePrimeSeq)})}catch(e){a.e(e)}finally{a.f()}return e.a(2,r)}}),e)})))).apply(this,arguments)}var Jo=function(e){function t(){var e;N(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return T(e=Q(this,t,[].concat(r)),"name","TranscriptCheck"),T(e,"causes",Object.values(To).filter((function(e){return Number.isNaN(Number(e))}))),T(e,"version",1),T(e,"isDefault",!0),e}return O(t,e),D(t,[{key:"checkFeature",value:(n=B(U().m((function e(t,n){var r,o,i,a,s,c,l;return U().w((function(e){for(;;)switch(e.n){case 0:if("mRNA"!==t.type&&"transcript"!==t.type&&"pseudogenic_transcript"!==t.type){e.n=1;break}return e.a(2,Po(t,n));case 1:if(t.children){e.n=2;break}return e.a(2,[]);case 2:r=[],o=0,i=Object.values(t.children);case 3:if(!(o<i.length)){e.n=6;break}return a=i[o],s=r.push,c=r,l=V,e.n=4,this.checkFeature(a,n);case 4:s.apply.call(s,c,l(e.v));case 5:o++,e.n=3;break;case 6:return e.a(2,r)}}),e,this)}))),function(e,t){return n.apply(this,arguments)})}]);var n}(gt),Uo=a.createSvgIcon(i.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add");const Go=n.ConfigurationSchema("ApolloInternetAccount",{baseURL:{description:"Location of Apollo server",type:"string",defaultValue:""},tokenType:{description:"A custom name for a token to include in the header",type:"string",defaultValue:"Bearer"}},{baseConfiguration:r.BaseInternetAccountConfig,explicitlyTyped:!0});var Ho=Object.create(null);Ho.open="0",Ho.close="1",Ho.ping="2",Ho.pong="3",Ho.message="4",Ho.upgrade="5",Ho.noop="6";var Yo=Object.create(null);Object.keys(Ho).forEach((function(e){Yo[Ho[e]]=e}));var zo,Ko={type:"error",data:"parser error"},Wo="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),Vo="function"==typeof ArrayBuffer,$o=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer},Xo=function(e,t,n){var r=e.type,o=e.data;return Wo&&o instanceof Blob?t?n(o):Zo(o,n):Vo&&(o instanceof ArrayBuffer||$o(o))?t?n(o):Zo(new Blob([o]),n):n(Ho[r]+(o||""))},Zo=function(e,t){var n=new FileReader;return n.onload=function(){var e=n.result.split(",")[1];t("b"+(e||""))},n.readAsDataURL(e)};function ei(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}for(var ti="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ni=0;ni<64;ni++)ti["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(ni)]=ni;var ri,oi="function"==typeof ArrayBuffer,ii=function(e,t){if("string"!=typeof e)return{type:"message",data:si(e,t)};var n=e.charAt(0);return"b"===n?{type:"message",data:ai(e.substring(1),t)}:Yo[n]?e.length>1?{type:Yo[n],data:e.substring(1)}:{type:Yo[n]}:Ko},ai=function(e,t){if(oi){var n=function(e){var t,n,r,o,i,a=.75*e.length,s=e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var l=new ArrayBuffer(a),u=new Uint8Array(l);for(t=0;t<s;t+=4)n=ti[e.charCodeAt(t)],r=ti[e.charCodeAt(t+1)],o=ti[e.charCodeAt(t+2)],i=ti[e.charCodeAt(t+3)],u[c++]=n<<2|r>>4,u[c++]=(15&r)<<4|o>>2,u[c++]=(3&o)<<6|63&i;return l}(e);return si(n,t)}return{base64:!0,data:e}},si=function(e,t){return"blob"===t?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer},ci=String.fromCharCode(30);function li(e){return e.reduce((function(e,t){return e+t.length}),0)}function ui(e,t){if(e[0].length===t)return e.shift();for(var n=new Uint8Array(t),r=0,o=0;o<t;o++)n[o]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function di(e){if(e)return function(e){for(var t in di.prototype)e[t]=di.prototype[t];return e}(e)}di.prototype.on=di.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},di.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},di.prototype.off=di.prototype.removeListener=di.prototype.removeAllListeners=di.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;o<r.length;o++)if((n=r[o])===t||n.fn===t){r.splice(o,1);break}return 0===r.length&&delete this._callbacks["$"+e],this},di.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){r=0;for(var o=(n=n.slice(0)).length;r<o;++r)n[r].apply(this,t)}return this},di.prototype.emitReserved=di.prototype.emit,di.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},di.prototype.hasListeners=function(e){return!!this.listeners(e).length};var Ai=function(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()}();function fi(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((function(t,n){return e.hasOwnProperty(n)&&(t[n]=e[n]),t}),{})}var hi=Ai.setTimeout,gi=Ai.clearTimeout;function pi(e,t){t.useNativeTimers?(e.setTimeoutFn=hi.bind(Ai),e.clearTimeoutFn=gi.bind(Ai)):(e.setTimeoutFn=Ai.setTimeout.bind(Ai),e.clearTimeoutFn=Ai.clearTimeout.bind(Ai))}var mi,yi=function(e){function t(e,n,r){var o;return N(this,t),(o=Q(this,t,[e])).description=n,o.context=r,o.type="TransportError",o}return O(t,e),D(t)}(te(Error)),_i=function(e){function t(e){var n;return N(this,t),(n=Q(this,t)).writable=!1,pi(n,e),n.opts=e,n.query=e.query,n.socket=e.socket,n}return O(t,e),D(t,[{key:"onError",value:function(e,n,r){return W(t,"emitReserved",this,3)(["error",new yi(e,n,r)]),this}},{key:"open",value:function(){return this.readyState="opening",this.doOpen(),this}},{key:"close",value:function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}},{key:"send",value:function(e){"open"===this.readyState&&this.write(e)}},{key:"onOpen",value:function(){this.readyState="open",this.writable=!0,W(t,"emitReserved",this,3)(["open"])}},{key:"onData",value:function(e){var t=ii(e,this.socket.binaryType);this.onPacket(t)}},{key:"onPacket",value:function(e){W(t,"emitReserved",this,3)(["packet",e])}},{key:"onClose",value:function(e){this.readyState="closed",W(t,"emitReserved",this,3)(["close",e])}},{key:"pause",value:function(e){}},{key:"createUri",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}},{key:"_hostname",value:function(){var e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}},{key:"_port",value:function(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}},{key:"_query",value:function(e){var t=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}(e);return t.length?"?"+t:""}}])}(di),vi="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),bi=64,Ci=0;function Ii(e){var t="";do{t=vi[e%bi]+t,e=Math.floor(e/bi)}while(e>0);return t}function wi(){var e=Ii(+new Date);return e!==mi?(Ci=0,mi=e):e+"."+Ii(Ci++)}var Ei=!1;try{Ei="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(e){}var xi=Ei;function Si(e){var t=e.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||xi))return new XMLHttpRequest}catch(e){}if(!t)try{return new(Ai[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}function Bi(){}var ki=function(){return null!=new Si({xdomain:!1}).responseType}(),Qi=function(e){function t(e){var n;if(N(this,t),(n=Q(this,t,[e])).polling=!1,"undefined"!=typeof location){var r="https:"===location.protocol,o=location.port;o||(o=r?"443":"80"),n.xd="undefined"!=typeof location&&e.hostname!==location.hostname||o!==e.port}return n.supportsBinary=ki&&!(e&&e.forceBase64),n.opts.withCredentials&&(n.cookieJar=void 0),n}return O(t,e),D(t,[{key:"name",get:function(){return"polling"}},{key:"doOpen",value:function(){this.poll()}},{key:"pause",value:function(e){var t=this;this.readyState="pausing";var n=function(){t.readyState="paused",e()};if(this.polling||!this.writable){var r=0;this.polling&&(r++,this.once("pollComplete",(function(){--r||n()}))),this.writable||(r++,this.once("drain",(function(){--r||n()})))}else n()}},{key:"poll",value:function(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}},{key:"onData",value:function(e){var t=this;(function(e,t){for(var n=e.split(ci),r=[],o=0;o<n.length;o++){var i=ii(n[o],t);if(r.push(i),"error"===i.type)break}return r})(e,this.socket.binaryType).forEach((function(e){if("opening"===t.readyState&&"open"===e.type&&t.onOpen(),"close"===e.type)return t.onClose({description:"transport closed by the server"}),!1;t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}},{key:"doClose",value:function(){var e=this,t=function(){e.write([{type:"close"}])};"open"===this.readyState?t():this.once("open",t)}},{key:"write",value:function(e){var t=this;this.writable=!1,function(e,n){var r=e.length,o=new Array(r),i=0;e.forEach((function(e,n){Xo(e,!1,(function(e){var a;o[n]=e,++i===r&&(a=o.join(ci),t.doWrite(a,(function(){t.writable=!0,t.emitReserved("drain")})))}))}))}(e)}},{key:"uri",value:function(){var e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=wi()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new Ni(this.uri(),e)}},{key:"doWrite",value:function(e,t){var n=this,r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",(function(e,t){n.onError("xhr post error",e,t)}))}},{key:"doPoll",value:function(){var e=this,t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(function(t,n){e.onError("xhr poll error",t,n)})),this.pollXhr=t}}])}(_i),Ni=function(e){function t(e,n){var r;return N(this,t),pi(r=Q(this,t),n),r.opts=n,r.method=n.method||"GET",r.uri=e,r.data=void 0!==n.data?n.data:null,r.create(),r}return O(t,e),D(t,[{key:"create",value:function(){var e,n=this,r=fi(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");r.xdomain=!!this.opts.xd;var o=this.xhr=new Si(r);try{o.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders)for(var i in o.setDisableHeaderCheck&&o.setDisableHeaderCheck(!0),this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(i)&&o.setRequestHeader(i,this.opts.extraHeaders[i])}catch(e){}if("POST"===this.method)try{o.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{o.setRequestHeader("Accept","*/*")}catch(e){}null===(e=this.opts.cookieJar)||void 0===e||e.addCookies(o),"withCredentials"in o&&(o.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(o.timeout=this.opts.requestTimeout),o.onreadystatechange=function(){var e;3===o.readyState&&(null===(e=n.opts.cookieJar)||void 0===e||e.parseCookies(o)),4===o.readyState&&(200===o.status||1223===o.status?n.onLoad():n.setTimeoutFn((function(){n.onError("number"==typeof o.status?o.status:0)}),0))},o.send(this.data)}catch(e){return void this.setTimeoutFn((function(){n.onError(e)}),0)}"undefined"!=typeof document&&(this.index=t.requestsCount++,t.requests[this.index]=this)}},{key:"onError",value:function(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}},{key:"cleanup",value:function(e){if(null!=this.xhr){if(this.xhr.onreadystatechange=Bi,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete t.requests[this.index],this.xhr=null}}},{key:"onLoad",value:function(){var e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}},{key:"abort",value:function(){this.cleanup()}}])}(di);function Ri(){for(var e in Ni.requests)Ni.requests.hasOwnProperty(e)&&Ni.requests[e].abort()}Ni.requestsCount=0,Ni.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",Ri):"function"==typeof addEventListener&&addEventListener("onpagehide"in Ai?"pagehide":"unload",Ri,!1));var Di=function(){return"function"==typeof Promise&&"function"==typeof Promise.resolve?function(e){return Promise.resolve().then(e)}:function(e,t){return t(e,0)}}(),Fi=Ai.WebSocket||Ai.MozWebSocket,Ti="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),ji=function(e){function t(e){var n;return N(this,t),(n=Q(this,t,[e])).supportsBinary=!e.forceBase64,n}return O(t,e),D(t,[{key:"name",get:function(){return"websocket"}},{key:"doOpen",value:function(){if(this.check()){var e=this.uri(),t=this.opts.protocols,n=Ti?{}:fi(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(n.headers=this.opts.extraHeaders);try{this.ws=Ti?new Fi(e,t,n):t?new Fi(e,t):new Fi(e)}catch(e){return this.emitReserved("error",e)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}}},{key:"addEventListeners",value:function(){var e=this;this.ws.onopen=function(){e.opts.autoUnref&&e.ws._socket.unref(),e.onOpen()},this.ws.onclose=function(t){return e.onClose({description:"websocket connection closed",context:t})},this.ws.onmessage=function(t){return e.onData(t.data)},this.ws.onerror=function(t){return e.onError("websocket error",t)}}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;Xo(e[r],t.supportsBinary,(function(e){try{t.ws.send(e)}catch(e){}n&&Di((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}},{key:"uri",value:function(){var e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=wi()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}},{key:"check",value:function(){return!!Fi}}])}(_i),Mi=function(e){function t(){return N(this,t),Q(this,t,arguments)}return O(t,e),D(t,[{key:"name",get:function(){return"webtransport"}},{key:"doOpen",value:function(){var e=this;"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((function(){e.onClose()})).catch((function(t){e.onError("webtransport error",t)})),this.transport.ready.then((function(){e.transport.createBidirectionalStream().then((function(t){var n=function(e,t){ri||(ri=new TextDecoder);var n=[],r=0,o=-1,i=!1;return new TransformStream({transform:function(a,s){for(n.push(a);;){if(0===r){if(li(n)<1)break;var c=ui(n,1);i=128==(128&c[0]),r=(o=127&c[0])<126?3:126===o?1:2}else if(1===r){if(li(n)<2)break;var l=ui(n,2);o=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),r=3}else if(2===r){if(li(n)<8)break;var u=ui(n,8),d=new DataView(u.buffer,u.byteOffset,u.length),A=d.getUint32(0);if(A>Math.pow(2,21)-1){s.enqueue(Ko);break}o=A*Math.pow(2,32)+d.getUint32(4),r=3}else{if(li(n)<o)break;var f=ui(n,o);s.enqueue(ii(i?f:ri.decode(f),t)),r=0}if(0===o||o>e){s.enqueue(Ko);break}}}})}(Number.MAX_SAFE_INTEGER,e.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),o=new TransformStream({transform:function(e,t){!function(e,t){Wo&&e.data instanceof Blob?e.data.arrayBuffer().then(ei).then(t):Vo&&(e.data instanceof ArrayBuffer||$o(e.data))?t(ei(e.data)):Xo(e,!1,(function(e){zo||(zo=new TextEncoder),t(zo.encode(e))}))}(e,(function(n){var r,o=n.length;if(o<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,o);else if(o<65536){r=new Uint8Array(3);var i=new DataView(r.buffer);i.setUint8(0,126),i.setUint16(1,o)}else{r=new Uint8Array(9);var a=new DataView(r.buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(o))}e.data&&"string"!=typeof e.data&&(r[0]|=128),t.enqueue(r),t.enqueue(n)}))}});o.readable.pipeTo(t.writable),e.writer=o.writable.getWriter();var i=function(){r.read().then((function(t){t.done||(e.onPacket(t.value),i())})).catch((function(e){}))};i();var a={type:"open"};e.query.sid&&(a.data='{"sid":"'.concat(e.query.sid,'"}')),e.writer.write(a).then((function(){return e.onOpen()}))}))})))}},{key:"write",value:function(e){var t=this;this.writable=!1;for(var n=function(){var n=r===e.length-1;t.writer.write(e[r]).then((function(){n&&Di((function(){t.writable=!0,t.emitReserved("drain")}),t.setTimeoutFn)}))},r=0;r<e.length;r++)n()}},{key:"doClose",value:function(){var e;null===(e=this.transport)||void 0===e||e.close()}}])}(_i),Oi={websocket:ji,webtransport:Mi,polling:Qi},Li=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Pi=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function qi(e){var t,n,r=e,o=e.indexOf("["),i=e.indexOf("]");-1!=o&&-1!=i&&(e=e.substring(0,o)+e.substring(o,i).replace(/:/g,";")+e.substring(i,e.length));for(var a,s=Li.exec(e||""),c={},l=14;l--;)c[Pi[l]]=s[l]||"";return-1!=o&&-1!=i&&(c.source=r,c.host=c.host.substring(1,c.host.length-1).replace(/;/g,":"),c.authority=c.authority.replace("[","").replace("]","").replace(/;/g,":"),c.ipv6uri=!0),c.pathNames=(n=(t=c.path).replace(/\/{2,9}/g,"/").split("/"),"/"!=t.slice(0,1)&&0!==t.length||n.splice(0,1),"/"==t.slice(-1)&&n.splice(n.length-1,1),n),c.queryKey=(a={},c.query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,n){t&&(a[t]=n)})),a),c}var Ji=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return N(this,t),(n=Q(this,t)).binaryType="arraybuffer",n.writeBuffer=[],e&&"object"===X(e)&&(r=e,e=null),e?(e=qi(e),r.hostname=e.host,r.secure="https"===e.protocol||"wss"===e.protocol,r.port=e.port,e.query&&(r.query=e.query)):r.host&&(r.hostname=qi(r.host).host),pi(n,r),n.secure=null!=r.secure?r.secure:"undefined"!=typeof location&&"https:"===location.protocol,r.hostname&&!r.port&&(r.port=n.secure?"443":"80"),n.hostname=r.hostname||("undefined"!=typeof location?location.hostname:"localhost"),n.port=r.port||("undefined"!=typeof location&&location.port?location.port:n.secure?"443":"80"),n.transports=r.transports||["polling","websocket","webtransport"],n.writeBuffer=[],n.prevBufferLen=0,n.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},r),n.opts.path=n.opts.path.replace(/\/$/,"")+(n.opts.addTrailingSlash?"/":""),"string"==typeof n.opts.query&&(n.opts.query=function(e){for(var t={},n=e.split("&"),r=0,o=n.length;r<o;r++){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t}(n.opts.query)),n.id=null,n.upgrades=null,n.pingInterval=null,n.pingTimeout=null,n.pingTimeoutTimer=null,"function"==typeof addEventListener&&(n.opts.closeOnBeforeunload&&(n.beforeunloadEventListener=function(){n.transport&&(n.transport.removeAllListeners(),n.transport.close())},addEventListener("beforeunload",n.beforeunloadEventListener,!1)),"localhost"!==n.hostname&&(n.offlineEventListener=function(){n.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",n.offlineEventListener,!1))),n.open(),n}return O(t,e),D(t,[{key:"createTransport",value:function(e){var t=Object.assign({},this.opts.query);t.EIO=4,t.transport=e,this.id&&(t.sid=this.id);var n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new Oi[e](n)}},{key:"open",value:function(){var e,n=this;if(this.opts.rememberUpgrade&&t.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((function(){n.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}},{key:"setTransport",value:function(e){var t=this;this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(function(e){return t.onClose("transport close",e)}))}},{key:"probe",value:function(e){var n=this,r=this.createTransport(e),o=!1;t.priorWebsocketSuccess=!1;var i=function(){o||(r.send([{type:"ping",data:"probe"}]),r.once("packet",(function(e){if(!o)if("pong"===e.type&&"probe"===e.data){if(n.upgrading=!0,n.emitReserved("upgrading",r),!r)return;t.priorWebsocketSuccess="websocket"===r.name,n.transport.pause((function(){o||"closed"!==n.readyState&&(d(),n.setTransport(r),r.send([{type:"upgrade"}]),n.emitReserved("upgrade",r),r=null,n.upgrading=!1,n.flush())}))}else{var i=new Error("probe error");i.transport=r.name,n.emitReserved("upgradeError",i)}})))};function a(){o||(o=!0,d(),r.close(),r=null)}var s=function(e){var t=new Error("probe error: "+e);t.transport=r.name,a(),n.emitReserved("upgradeError",t)};function c(){s("transport closed")}function l(){s("socket closed")}function u(e){r&&e.name!==r.name&&a()}var d=function(){r.removeListener("open",i),r.removeListener("error",s),r.removeListener("close",c),n.off("close",l),n.off("upgrading",u)};r.once("open",i),r.once("error",s),r.once("close",c),this.once("close",l),this.once("upgrading",u),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn((function(){o||r.open()}),200):r.open()}},{key:"onOpen",value:function(){if(this.readyState="open",t.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade)for(var e=0,n=this.upgrades.length;e<n;e++)this.probe(this.upgrades[e])}},{key:"onPacket",value:function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),this.resetPingTimeout(),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data)}}},{key:"onHandshake",value:function(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.maxPayload=e.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}},{key:"resetPingTimeout",value:function(){var e=this;this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((function(){e.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}},{key:"onDrain",value:function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}},{key:"flush",value:function(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){var e=this.getWritablePackets();this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}},{key:"getWritablePackets",value:function(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var e,t=1,n=0;n<this.writeBuffer.length;n++){var r=this.writeBuffer[n].data;if(r&&(t+="string"==typeof(e=r)?function(e){for(var t=0,n=0,r=0,o=e.length;r<o;r++)(t=e.charCodeAt(r))<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}(e):Math.ceil(1.33*(e.byteLength||e.size))),n>0&&t>this.maxPayload)return this.writeBuffer.slice(0,n);t+=2}return this.writeBuffer}},{key:"write",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"send",value:function(e,t,n){return this.sendPacket("message",e,t,n),this}},{key:"sendPacket",value:function(e,t,n,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof n&&(r=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){(n=n||{}).compress=!1!==n.compress;var o={type:e,data:t,options:n};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),r&&this.once("flush",r),this.flush()}}},{key:"close",value:function(){var e=this,t=function(){e.onClose("forced close"),e.transport.close()},n=function(){e.off("upgrade",n),e.off("upgradeError",n),t()},r=function(){e.once("upgrade",n),e.once("upgradeError",n)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){e.upgrading?r():t()})):this.upgrading?r():t()),this}},{key:"onError",value:function(e){t.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}},{key:"onClose",value:function(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}},{key:"filterUpgrades",value:function(e){for(var t=[],n=0,r=e.length;n<r;n++)~this.transports.indexOf(e[n])&&t.push(e[n]);return t}}])}(di);Ji.protocol=4;var Ui="function"==typeof ArrayBuffer,Gi=function(e){return"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer},Hi=Object.prototype.toString,Yi="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Hi.call(Blob),zi="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===Hi.call(File);function Ki(e){return Ui&&(e instanceof ArrayBuffer||Gi(e))||Yi&&e instanceof Blob||zi&&e instanceof File}function Wi(e,t){if(!e||"object"!==X(e))return!1;if(Array.isArray(e)){for(var n=0,r=e.length;n<r;n++)if(Wi(e[n]))return!0;return!1}if(Ki(e))return!0;if(e.toJSON&&"function"==typeof e.toJSON&&1===arguments.length)return Wi(e.toJSON(),!0);for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)&&Wi(e[o]))return!0;return!1}function Vi(e){var t=[],n=e;return n.data=$i(e.data,t),n.attachments=t.length,{packet:n,buffers:t}}function $i(e,t){if(!e)return e;if(Ki(e)){var n={_placeholder:!0,num:t.length};return t.push(e),n}if(Array.isArray(e)){for(var r=new Array(e.length),o=0;o<e.length;o++)r[o]=$i(e[o],t);return r}if("object"===X(e)&&!(e instanceof Date)){var i={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(i[a]=$i(e[a],t));return i}return e}function Xi(e,t){return e.data=Zi(e.data,t),delete e.attachments,e}function Zi(e,t){if(!e)return e;if(e&&!0===e._placeholder){if("number"==typeof e.num&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}if(Array.isArray(e))for(var n=0;n<e.length;n++)e[n]=Zi(e[n],t);else if("object"===X(e))for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(e[r]=Zi(e[r],t));return e}var ea,ta=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];!function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(ea||(ea={}));var na=function(){return D((function e(t){N(this,e),this.replacer=t}),[{key:"encode",value:function(e){return e.type!==ea.EVENT&&e.type!==ea.ACK||!Wi(e)?[this.encodeAsString(e)]:this.encodeAsBinary({type:e.type===ea.EVENT?ea.BINARY_EVENT:ea.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}},{key:"encodeAsString",value:function(e){var t=""+e.type;return e.type!==ea.BINARY_EVENT&&e.type!==ea.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),t}},{key:"encodeAsBinary",value:function(e){var t=Vi(e),n=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(n),r}}])}();function ra(e){return"[object Object]"===Object.prototype.toString.call(e)}var oa=function(e){function t(e){var n;return N(this,t),(n=Q(this,t)).reviver=e,n}return O(t,e),D(t,[{key:"add",value:function(e){var n;if("string"==typeof e){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");var r=(n=this.decodeString(e)).type===ea.BINARY_EVENT;r||n.type===ea.BINARY_ACK?(n.type=r?ea.EVENT:ea.ACK,this.reconstructor=new ia(n),0===n.attachments&&W(t,"emitReserved",this,3)(["decoded",n])):W(t,"emitReserved",this,3)(["decoded",n])}else{if(!Ki(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(n=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,W(t,"emitReserved",this,3)(["decoded",n]))}}},{key:"decodeString",value:function(e){var n=0,r={type:Number(e.charAt(0))};if(void 0===ea[r.type])throw new Error("unknown packet type "+r.type);if(r.type===ea.BINARY_EVENT||r.type===ea.BINARY_ACK){for(var o=n+1;"-"!==e.charAt(++n)&&n!=e.length;);var i=e.substring(o,n);if(i!=Number(i)||"-"!==e.charAt(n))throw new Error("Illegal attachments");r.attachments=Number(i)}if("/"===e.charAt(n+1)){for(var a=n+1;++n&&","!==e.charAt(n)&&n!==e.length;);r.nsp=e.substring(a,n)}else r.nsp="/";var s=e.charAt(n+1);if(""!==s&&Number(s)==s){for(var c=n+1;++n;){var l=e.charAt(n);if(null==l||Number(l)!=l){--n;break}if(n===e.length)break}r.id=Number(e.substring(c,n+1))}if(e.charAt(++n)){var u=this.tryParse(e.substr(n));if(!t.isPayloadValid(r.type,u))throw new Error("invalid payload");r.data=u}return r}},{key:"tryParse",value:function(e){try{return JSON.parse(e,this.reviver)}catch(e){return!1}}},{key:"destroy",value:function(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}],[{key:"isPayloadValid",value:function(e,t){switch(e){case ea.CONNECT:return ra(t);case ea.DISCONNECT:return void 0===t;case ea.CONNECT_ERROR:return"string"==typeof t||ra(t);case ea.EVENT:case ea.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===ta.indexOf(t[0]));case ea.ACK:case ea.BINARY_ACK:return Array.isArray(t)}}}])}(di),ia=function(){return D((function e(t){N(this,e),this.packet=t,this.buffers=[],this.reconPack=t}),[{key:"takeBinaryData",value:function(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){var t=Xi(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}},{key:"finishedReconstruction",value:function(){this.reconPack=null,this.buffers=[]}}])}(),aa={__proto__:null,Decoder:oa,Encoder:na,get PacketType(){return ea}};function sa(e,t,n){return e.on(t,n),function(){e.off(t,n)}}var ca=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),la=function(e){function t(e,n,r){var o;return N(this,t),(o=Q(this,t)).connected=!1,o.recovered=!1,o.receiveBuffer=[],o.sendBuffer=[],o._queue=[],o._queueSeq=0,o.ids=0,o.acks={},o.flags={},o.io=e,o.nsp=n,r&&r.auth&&(o.auth=r.auth),o._opts=Object.assign({},r),o.io._autoConnect&&o.open(),o}return O(t,e),D(t,[{key:"disconnected",get:function(){return!this.connected}},{key:"subEvents",value:function(){if(!this.subs){var e=this.io;this.subs=[sa(e,"open",this.onopen.bind(this)),sa(e,"packet",this.onpacket.bind(this)),sa(e,"error",this.onerror.bind(this)),sa(e,"close",this.onclose.bind(this))]}}},{key:"active",get:function(){return!!this.subs}},{key:"connect",value:function(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}},{key:"open",value:function(){return this.connect()}},{key:"send",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.unshift("message"),this.emit.apply(this,t),this}},{key:"emit",value:function(e){if(ca.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;var o={type:ea.EVENT,data:n,options:{}};if(o.options.compress=!1!==this.flags.compress,"function"==typeof n[n.length-1]){var i=this.ids++,a=n.pop();this._registerAckCallback(i,a),o.id=i}return this.flags.volatile&&(!(this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable)||!this.connected)||(this.connected?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}},{key:"_registerAckCallback",value:function(e,t){var n,r=this,o=null!==(n=this.flags.timeout)&&void 0!==n?n:this._opts.ackTimeout;if(void 0!==o){var i=this.io.setTimeoutFn((function(){delete r.acks[e];for(var n=0;n<r.sendBuffer.length;n++)r.sendBuffer[n].id===e&&r.sendBuffer.splice(n,1);t.call(r,new Error("operation has timed out"))}),o);this.acks[e]=function(){r.io.clearTimeoutFn(i);for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];t.apply(r,[null].concat(n))}}else this.acks[e]=t}},{key:"emitWithAck",value:function(e){for(var t=this,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];var i=void 0!==this.flags.timeout||void 0!==this._opts.ackTimeout;return new Promise((function(n,o){r.push((function(e,t){return i?e?o(e):n(t):n(e)})),t.emit.apply(t,[e].concat(r))}))}},{key:"_addToQueue",value:function(e){var t,n=this;"function"==typeof e[e.length-1]&&(t=e.pop());var r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((function(e){if(r===n._queue[0]){if(null!==e)r.tryCount>n._opts.retries&&(n._queue.shift(),t&&t(e));else if(n._queue.shift(),t){for(var o=arguments.length,i=new Array(o>1?o-1:0),a=1;a<o;a++)i[a-1]=arguments[a];t.apply(void 0,[null].concat(i))}return r.pending=!1,n._drainQueue()}})),this._queue.push(r),this._drainQueue()}},{key:"_drainQueue",value:function(){if(this.connected&&0!==this._queue.length){var e=this._queue[0];e.pending&&!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}}},{key:"packet",value:function(e){e.nsp=this.nsp,this.io._packet(e)}},{key:"onopen",value:function(){var e=this;"function"==typeof this.auth?this.auth((function(t){e._sendConnectPacket(t)})):this._sendConnectPacket(this.auth)}},{key:"_sendConnectPacket",value:function(e){this.packet({type:ea.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}},{key:"onerror",value:function(e){this.connected||this.emitReserved("connect_error",e)}},{key:"onclose",value:function(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t)}},{key:"onpacket",value:function(e){if(e.nsp===this.nsp)switch(e.type){case ea.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case ea.EVENT:case ea.BINARY_EVENT:this.onevent(e);break;case ea.ACK:case ea.BINARY_ACK:this.onack(e);break;case ea.DISCONNECT:this.ondisconnect();break;case ea.CONNECT_ERROR:this.destroy();var t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}},{key:"onevent",value:function(e){var t=e.data||[];null!=e.id&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}},{key:"emitEvent",value:function(e){if(this._anyListeners&&this._anyListeners.length){var n,r=F(this._anyListeners.slice());try{for(r.s();!(n=r.n()).done;)n.value.apply(this,e)}catch(e){r.e(e)}finally{r.f()}}W(t,"emit",this,1).apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}},{key:"ack",value:function(e){var t=this,n=!1;return function(){if(!n){n=!0;for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];t.packet({type:ea.ACK,id:e,data:o})}}}},{key:"onack",value:function(e){var t=this.acks[e.id];"function"==typeof t&&(t.apply(this,e.data),delete this.acks[e.id])}},{key:"onconnect",value:function(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}},{key:"emitBuffered",value:function(){var e=this;this.receiveBuffer.forEach((function(t){return e.emitEvent(t)})),this.receiveBuffer=[],this.sendBuffer.forEach((function(t){e.notifyOutgoingListeners(t),e.packet(t)})),this.sendBuffer=[]}},{key:"ondisconnect",value:function(){this.destroy(),this.onclose("io server disconnect")}},{key:"destroy",value:function(){this.subs&&(this.subs.forEach((function(e){return e()})),this.subs=void 0),this.io._destroy(this)}},{key:"disconnect",value:function(){return this.connected&&this.packet({type:ea.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}},{key:"close",value:function(){return this.disconnect()}},{key:"compress",value:function(e){return this.flags.compress=e,this}},{key:"volatile",get:function(){return this.flags.volatile=!0,this}},{key:"timeout",value:function(e){return this.flags.timeout=e,this}},{key:"onAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}},{key:"prependAny",value:function(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}},{key:"offAny",value:function(e){if(!this._anyListeners)return this;if(e){for(var t=this._anyListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyListeners=[];return this}},{key:"listenersAny",value:function(){return this._anyListeners||[]}},{key:"onAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}},{key:"prependAnyOutgoing",value:function(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}},{key:"offAnyOutgoing",value:function(e){if(!this._anyOutgoingListeners)return this;if(e){for(var t=this._anyOutgoingListeners,n=0;n<t.length;n++)if(e===t[n])return t.splice(n,1),this}else this._anyOutgoingListeners=[];return this}},{key:"listenersAnyOutgoing",value:function(){return this._anyOutgoingListeners||[]}},{key:"notifyOutgoingListeners",value:function(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){var t,n=F(this._anyOutgoingListeners.slice());try{for(n.s();!(t=n.n()).done;)t.value.apply(this,e.data)}catch(e){n.e(e)}finally{n.f()}}}}])}(di);function ua(e){this.ms=(e=e||{}).min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}ua.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},ua.prototype.reset=function(){this.attempts=0},ua.prototype.setMin=function(e){this.ms=e},ua.prototype.setMax=function(e){this.max=e},ua.prototype.setJitter=function(e){this.jitter=e};var da=function(e){function t(e,n){var r,o;N(this,t),(r=Q(this,t)).nsps={},r.subs=[],e&&"object"===X(e)&&(n=e,e=void 0),(n=n||{}).path=n.path||"/socket.io",r.opts=n,pi(r,n),r.reconnection(!1!==n.reconnection),r.reconnectionAttempts(n.reconnectionAttempts||Infinity),r.reconnectionDelay(n.reconnectionDelay||1e3),r.reconnectionDelayMax(n.reconnectionDelayMax||5e3),r.randomizationFactor(null!==(o=n.randomizationFactor)&&void 0!==o?o:.5),r.backoff=new ua({min:r.reconnectionDelay(),max:r.reconnectionDelayMax(),jitter:r.randomizationFactor()}),r.timeout(null==n.timeout?2e4:n.timeout),r._readyState="closed",r.uri=e;var i=n.parser||aa;return r.encoder=new i.Encoder,r.decoder=new i.Decoder,r._autoConnect=!1!==n.autoConnect,r._autoConnect&&r.open(),r}return O(t,e),D(t,[{key:"reconnection",value:function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}},{key:"reconnectionAttempts",value:function(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}},{key:"reconnectionDelay",value:function(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}},{key:"randomizationFactor",value:function(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}},{key:"reconnectionDelayMax",value:function(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}},{key:"timeout",value:function(e){return arguments.length?(this._timeout=e,this):this._timeout}},{key:"maybeReconnectOnOpen",value:function(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}},{key:"open",value:function(e){var t=this;if(~this._readyState.indexOf("open"))return this;this.engine=new Ji(this.uri,this.opts);var n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;var o=sa(n,"open",(function(){r.onopen(),e&&e()})),i=function(n){t.cleanup(),t._readyState="closed",t.emitReserved("error",n),e?e(n):t.maybeReconnectOnOpen()},a=sa(n,"error",i);if(!1!==this._timeout){var s=this.setTimeoutFn((function(){o(),i(new Error("timeout")),n.close()}),this._timeout);this.opts.autoUnref&&s.unref(),this.subs.push((function(){t.clearTimeoutFn(s)}))}return this.subs.push(o),this.subs.push(a),this}},{key:"connect",value:function(e){return this.open(e)}},{key:"onopen",value:function(){this.cleanup(),this._readyState="open",this.emitReserved("open");var e=this.engine;this.subs.push(sa(e,"ping",this.onping.bind(this)),sa(e,"data",this.ondata.bind(this)),sa(e,"error",this.onerror.bind(this)),sa(e,"close",this.onclose.bind(this)),sa(this.decoder,"decoded",this.ondecoded.bind(this)))}},{key:"onping",value:function(){this.emitReserved("ping")}},{key:"ondata",value:function(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}},{key:"ondecoded",value:function(e){var t=this;Di((function(){t.emitReserved("packet",e)}),this.setTimeoutFn)}},{key:"onerror",value:function(e){this.emitReserved("error",e)}},{key:"socket",value:function(e,t){var n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new la(this,e,t),this.nsps[e]=n),n}},{key:"_destroy",value:function(e){for(var t=0,n=Object.keys(this.nsps);t<n.length;t++)if(this.nsps[n[t]].active)return;this._close()}},{key:"_packet",value:function(e){for(var t=this.encoder.encode(e),n=0;n<t.length;n++)this.engine.write(t[n],e.options)}},{key:"cleanup",value:function(){this.subs.forEach((function(e){return e()})),this.subs.length=0,this.decoder.destroy()}},{key:"_close",value:function(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}},{key:"disconnect",value:function(){return this._close()}},{key:"onclose",value:function(e,t){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}},{key:"reconnect",value:function(){var e=this;if(this._reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{var n=this.backoff.duration();this._reconnecting=!0;var r=this.setTimeoutFn((function(){t.skipReconnect||(e.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open((function(n){n?(t._reconnecting=!1,t.reconnect(),e.emitReserved("reconnect_error",n)):t.onreconnect()})))}),n);this.opts.autoUnref&&r.unref(),this.subs.push((function(){e.clearTimeoutFn(r)}))}}},{key:"onreconnect",value:function(){var e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}])}(di),Aa={};function fa(e,t){"object"===X(e)&&(t=e,e=void 0);var n,r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,r=e;n=n||"undefined"!=typeof location&&location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==n?n.protocol+"//"+e:"https://"+e),r=qi(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var o=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+o+":"+r.port+t,r.href=r.protocol+"://"+o+(n&&n.port===r.port?"":":"+r.port),r}(e,(t=t||{}).path||"/socket.io"),o=r.source,i=r.id;return t.forceNew||t["force new connection"]||!1===t.multiplex||Aa[i]&&r.path in Aa[i].nsps?n=new da(o,t):(Aa[i]||(Aa[i]=new da(o,t)),n=Aa[i]),r.query&&!t.query&&(t.query=r.queryKey),n.socket(r.path,t)}Object.assign(fa,{Manager:da,Socket:la,io:fa,connect:fa});var ha=a.createSvgIcon([i.jsx("path",{d:"M17 11c.34 0 .67.04 1 .09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55-.69-.98-1.1-2.17-1.1-3.45 0-3.31 2.69-6 6-6"},"0"),i.jsx("path",{d:"M17 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 1.38c.62 0 1.12.51 1.12 1.12s-.51 1.12-1.12 1.12-1.12-.51-1.12-1.12.5-1.12 1.12-1.12m0 5.37c-.93 0-1.74-.46-2.24-1.17.05-.72 1.51-1.08 2.24-1.08s2.19.36 2.24 1.08c-.5.71-1.31 1.17-2.24 1.17"},"1")],"AdminPanelSettings"),ga=a.createSvgIcon(i.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete"),pa=a.createSvgIcon(i.jsx("path",{d:"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2M11 16l4-4-4-4v3H1v2h10z"}),"Input"),ma=a.createSvgIcon(i.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"Person"),ya=a.createSvgIcon(i.jsx("path",{d:"M16.54 11 13 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41zM11 7H2v2h9zm10 6.41L19.59 12 17 14.59 14.41 12 13 13.41 15.59 16 13 18.59 14.41 20 17 17.41 19.59 20 21 18.59 18.41 16zM11 15H2v2h9z"}),"Rule"),_a=function(){function e(e){var t=this;this._insertTag=function(e){t.container.insertBefore(e,0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling),t.tags.push(e)},this.isSpeedy=void 0===e.speedy?"production"===ue.env.NODE_ENV:e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if("production"!==ue.env.NODE_ENV){var n=64===e.charCodeAt(0)&&105===e.charCodeAt(1);n&&this._alreadyInsertedOrderInsensitiveRule&&console.error("You're attempting to insert the following rule:\n"+e+"\n\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules."),this._alreadyInsertedOrderInsensitiveRule=this._alreadyInsertedOrderInsensitiveRule||!n}if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{r.insertRule(e,r.cssRules.length)}catch(t){"production"===ue.env.NODE_ENV||/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(e)||console.error('There was a problem inserting the following rule: "'+e+'"',t)}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0,"production"!==ue.env.NODE_ENV&&(this._alreadyInsertedOrderInsensitiveRule=!1)},e}(),va="-ms-",ba="-moz-",Ca="-webkit-",Ia="comm",wa="rule",Ea="decl",xa="@keyframes",Sa=Math.abs,Ba=String.fromCharCode,ka=Object.assign;function Qa(e){return e.trim()}function Na(e,t,n){return e.replace(t,n)}function Ra(e,t){return e.indexOf(t)}function Da(e,t){return 0|e.charCodeAt(t)}function Fa(e,t,n){return e.slice(t,n)}function Ta(e){return e.length}function ja(e){return e.length}function Ma(e,t){return t.push(e),e}var Oa=1,La=1,Pa=0,qa=0,Ja=0,Ua="";function Ga(e,t,n,r,o,i,a){return{value:e,root:t,parent:n,type:r,props:o,children:i,line:Oa,column:La,length:a,return:""}}function Ha(e,t){return ka(Ga("",null,null,"",null,null,0),e,{length:-e.length},t)}function Ya(){return Ja=qa>0?Da(Ua,--qa):0,La--,10===Ja&&(La=1,Oa--),Ja}function za(){return Ja=qa<Pa?Da(Ua,qa++):0,La++,10===Ja&&(La=1,Oa++),Ja}function Ka(){return Da(Ua,qa)}function Wa(){return qa}function Va(e,t){return Fa(Ua,e,t)}function $a(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Xa(e){return Oa=La=1,Pa=Ta(Ua=e),qa=0,[]}function Za(e){return Ua="",e}function es(e){return Qa(Va(qa-1,rs(91===e?e+2:40===e?e+1:e)))}function ts(e){for(;(Ja=Ka())&&Ja<33;)za();return $a(e)>2||$a(Ja)>3?"":" "}function ns(e,t){for(;--t&&za()&&!(Ja<48||Ja>102||Ja>57&&Ja<65||Ja>70&&Ja<97););return Va(e,Wa()+(t<6&&32==Ka()&&32==za()))}function rs(e){for(;za();)switch(Ja){case e:return qa;case 34:case 39:34!==e&&39!==e&&rs(Ja);break;case 40:41===e&&rs(e);break;case 92:za()}return qa}function os(e,t){for(;za()&&e+Ja!==57&&(e+Ja!==84||47!==Ka()););return"/*"+Va(t,qa-1)+"*"+Ba(47===e?e:za())}function is(e){for(;!$a(Ka());)za();return Va(e,qa)}function as(e){return Za(ss("",null,null,null,[""],e=Xa(e),0,[0],e))}function ss(e,t,n,r,o,i,a,s,c){for(var l=0,u=0,d=a,A=0,f=0,h=0,g=1,p=1,m=1,y=0,_="",v=o,b=i,C=r,I=_;p;)switch(h=y,y=za()){case 40:if(108!=h&&58==Da(I,d-1)){-1!=Ra(I+=Na(es(y),"&","&\f"),"&\f")&&(m=-1);break}case 34:case 39:case 91:I+=es(y);break;case 9:case 10:case 13:case 32:I+=ts(h);break;case 92:I+=ns(Wa()-1,7);continue;case 47:switch(Ka()){case 42:case 47:Ma(ls(os(za(),Wa()),t,n),c);break;default:I+="/"}break;case 123*g:s[l++]=Ta(I)*m;case 125*g:case 59:case 0:switch(y){case 0:case 125:p=0;case 59+u:-1==m&&(I=Na(I,/\f/g,"")),f>0&&Ta(I)-d&&Ma(f>32?us(I+";",r,n,d-1):us(Na(I," ","")+";",r,n,d-2),c);break;case 59:I+=";";default:if(Ma(C=cs(I,t,n,l,u,o,s,_,v=[],b=[],d),i),123===y)if(0===u)ss(I,t,C,C,v,i,d,s,b);else switch(99===A&&110===Da(I,3)?100:A){case 100:case 108:case 109:case 115:ss(e,C,C,r&&Ma(cs(e,C,C,0,0,o,s,_,o,v=[],d),b),o,b,d,s,r?v:b);break;default:ss(I,C,C,C,[""],b,0,s,b)}}l=u=f=0,g=m=1,_=I="",d=a;break;case 58:d=1+Ta(I),f=h;default:if(g<1)if(123==y)--g;else if(125==y&&0==g++&&125==Ya())continue;switch(I+=Ba(y),y*g){case 38:m=u>0?1:(I+="\f",-1);break;case 44:s[l++]=(Ta(I)-1)*m,m=1;break;case 64:45===Ka()&&(I+=es(za())),A=Ka(),u=d=Ta(_=I+=is(Wa())),y++;break;case 45:45===h&&2==Ta(I)&&(g=0)}}return i}function cs(e,t,n,r,o,i,a,s,c,l,u){for(var d=o-1,A=0===o?i:[""],f=ja(A),h=0,g=0,p=0;h<r;++h)for(var m=0,y=Fa(e,d+1,d=Sa(g=a[h])),_=e;m<f;++m)(_=Qa(g>0?A[m]+" "+y:Na(y,/&\f/g,A[m])))&&(c[p++]=_);return Ga(e,t,n,0===o?wa:s,c,l,u)}function ls(e,t,n){return Ga(e,t,n,Ia,Ba(Ja),Fa(e,2,-2),0)}function us(e,t,n,r){return Ga(e,t,n,Ea,Fa(e,0,r),Fa(e,r+1,-1),r)}function ds(e,t){for(var n="",r=ja(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function As(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Ea:return e.return=e.return||e.value;case Ia:return"";case xa:return e.return=e.value+"{"+ds(e.children,r)+"}";case wa:e.value=e.props.join(",")}return Ta(n=ds(e.children,r))?e.return=e.value+"{"+n+"}":""}function fs(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var hs=function(e,t,n){for(var r=0,o=0;r=o,o=Ka(),38===r&&12===o&&(t[n]=1),!$a(o);)za();return Va(e,qa)},gs=new WeakMap,ps=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||gs.get(n))&&!r){gs.set(e,!0);for(var o=[],i=function(e,t){return Za(function(e,t){var n=-1,r=44;do{switch($a(r)){case 0:38===r&&12===Ka()&&(t[n]=1),e[n]+=hs(qa-1,t,n);break;case 2:e[n]+=es(r);break;case 4:if(44===r){e[++n]=58===Ka()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=Ba(r)}}while(r=za());return e}(Xa(e),t))}(t,o),a=n.props,s=0,c=0;s<i.length;s++)for(var l=0;l<a.length;l++,c++)e.props[c]=o[s]?i[s].replace(/&\f/g,a[l]):a[l]+" "+i[s]}}},ms=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},ys=function(e){return"comm"===e.type&&e.children.indexOf("emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason")>-1},_s=function(e){return 105===e.type.charCodeAt(1)&&64===e.type.charCodeAt(0)},vs=function(e){e.type="",e.value="",e.return="",e.children="",e.props=""},bs=function(e,t,n){_s(e)&&(e.parent?(console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles."),vs(e)):function(e,t){for(var n=e-1;n>=0;n--)if(!_s(t[n]))return!0;return!1}(t,n)&&(console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules."),vs(e)))};function Cs(e,t){switch(function(e,t){return 45^Da(e,0)?(((t<<2^Da(e,0))<<2^Da(e,1))<<2^Da(e,2))<<2^Da(e,3):0}(e,t)){case 5103:return Ca+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Ca+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Ca+e+ba+e+va+e+e;case 6828:case 4268:return Ca+e+va+e+e;case 6165:return Ca+e+va+"flex-"+e+e;case 5187:return Ca+e+Na(e,/(\w+).+(:[^]+)/,Ca+"box-$1$2"+va+"flex-$1$2")+e;case 5443:return Ca+e+va+"flex-item-"+Na(e,/flex-|-self/,"")+e;case 4675:return Ca+e+va+"flex-line-pack"+Na(e,/align-content|flex-|-self/,"")+e;case 5548:return Ca+e+va+Na(e,"shrink","negative")+e;case 5292:return Ca+e+va+Na(e,"basis","preferred-size")+e;case 6060:return Ca+"box-"+Na(e,"-grow","")+Ca+e+va+Na(e,"grow","positive")+e;case 4554:return Ca+Na(e,/([^-])(transform)/g,"$1"+Ca+"$2")+e;case 6187:return Na(Na(Na(e,/(zoom-|grab)/,Ca+"$1"),/(image-set)/,Ca+"$1"),e,"")+e;case 5495:case 3959:return Na(e,/(image-set\([^]*)/,Ca+"$1$`$1");case 4968:return Na(Na(e,/(.+:)(flex-)?(.*)/,Ca+"box-pack:$3"+va+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Ca+e+e;case 4095:case 3583:case 4068:case 2532:return Na(e,/(.+)-inline(.+)/,Ca+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Ta(e)-1-t>6)switch(Da(e,t+1)){case 109:if(45!==Da(e,t+4))break;case 102:return Na(e,/(.+:)(.+)-([^]+)/,"$1"+Ca+"$2-$3$1"+ba+(108==Da(e,t+3)?"$3":"$2-$3"))+e;case 115:return~Ra(e,"stretch")?Cs(Na(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==Da(e,t+1))break;case 6444:switch(Da(e,Ta(e)-3-(~Ra(e,"!important")&&10))){case 107:return Na(e,":",":"+Ca)+e;case 101:return Na(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Ca+(45===Da(e,14)?"inline-":"")+"box$3$1"+Ca+"$2$3$1"+va+"$2box$3")+e}break;case 5936:switch(Da(e,t+11)){case 114:return Ca+e+va+Na(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Ca+e+va+Na(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Ca+e+va+Na(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Ca+e+va+e+e}return e}var Is=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Ea:e.return=Cs(e.value,e.length);break;case xa:return ds([Ha(e,{value:Na(e.value,"@","@"+Ca)})],r);case wa:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return ds([Ha(e,{props:[Na(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return ds([Ha(e,{props:[Na(t,/:(plac\w+)/,":"+Ca+"input-$1")]}),Ha(e,{props:[Na(t,/:(plac\w+)/,":-moz-$1")]}),Ha(e,{props:[Na(t,/:(plac\w+)/,va+"input-$1")]})],r)}return""}))}}],ws=function(e){var t=e.key;if("production"!==ue.env.NODE_ENV&&!t)throw new Error("You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\nIf multiple caches share the same key they might \"fight\" for each other's style elements.");if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||Is;if("production"!==ue.env.NODE_ENV&&/[^a-z-]/.test(t))throw new Error('Emotion key must only contain lower case alphabetical characters and - but "'+t+'" was passed');var o,i,a={},s=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)a[t[n]]=!0;s.push(e)}));var c=[ps,ms];"production"!==ue.env.NODE_ENV&&c.push(function(e){return function(t,n,r){if("rule"===t.type&&!e.compat){var o=t.value.match(/(:first|:nth|:nth-last)-child/g);if(o){for(var i=t.parent?t.parent.children:r,a=i.length-1;a>=0;a--){var s=i[a];if(s.line<t.line)break;if(s.column<t.column){if(ys(s))return;break}}o.forEach((function(e){console.error('The pseudo class "'+e+'" is potentially unsafe when doing server-side rendering. Try changing it to "'+e.split("-child")[0]+'-of-type".')}))}}}}({get compat(){return f.compat}}),bs);var l,u,d=[As,"production"!==ue.env.NODE_ENV?function(e){e.root||(e.return?l.insert(e.return):e.value&&e.type!==Ia&&l.insert(e.value+"{}"))}:(u=function(e){l.insert(e)},function(e){e.root||(e=e.return)&&u(e)})],A=function(e){var t=ja(e);return function(n,r,o,i){for(var a="",s=0;s<t;s++)a+=e[s](n,r,o,i)||"";return a}}(c.concat(r,d));i=function(e,t,n,r){l=n,"production"!==ue.env.NODE_ENV&&void 0!==t.map&&(l={insert:function(e){n.insert(e+t.map)}}),function(e){ds(as(e),A)}(e?e+"{"+t.styles+"}":t.styles),r&&(f.inserted[t.name]=!0)};var f={key:t,sheet:new _a({key:t,container:o,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:a,registered:{},insert:i};return f.sheet.hydrate(s),f};function Es(){return Es=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Es.apply(this,arguments)}function xs(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var Ss=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},Bs=function(e,t,n){Ss(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}},ks={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Qs="You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences",Ns=/[A-Z]|^ms/g,Rs=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Ds=function(e){return 45===e.charCodeAt(1)},Fs=function(e){return null!=e&&"boolean"!=typeof e},Ts=fs((function(e){return Ds(e)?e:e.replace(Ns,"-$&").toLowerCase()})),js=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(Rs,(function(e,t,n){return Ys={name:t,styles:n,next:Ys},t}))}return 1===ks[e]||Ds(e)||"number"!=typeof t||0===t?t:t+"px"};if("production"!==ue.env.NODE_ENV){var Ms=/(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/,Os=["normal","none","initial","inherit","unset"],Ls=js,Ps=/^-ms-/,qs=/-(.)/g,Js={};js=function(e,t){if("content"===e&&("string"!=typeof t||-1===Os.indexOf(t)&&!Ms.test(t)&&(t.charAt(0)!==t.charAt(t.length-1)||'"'!==t.charAt(0)&&"'"!==t.charAt(0))))throw new Error("You seem to be using a value for 'content' without quotes, try replacing it with `content: '\""+t+"\"'`");var n=Ls(e,t);return""===n||Ds(e)||-1===e.indexOf("-")||void 0!==Js[e]||(Js[e]=!0,console.error("Using kebab-case for css properties in objects is not supported. Did you mean "+e.replace(Ps,"ms-").replace(qs,(function(e,t){return t.toUpperCase()}))+"?")),n}}var Us="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function Gs(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles){if("production"!==ue.env.NODE_ENV&&"NO_COMPONENT_SELECTOR"===n.toString())throw new Error(Us);return n}switch(X(n)){case"boolean":return"";case"object":if(1===n.anim)return Ys={name:n.name,styles:n.styles,next:Ys},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)Ys={name:r.name,styles:r.styles,next:Ys},r=r.next;var o=n.styles+";";return"production"!==ue.env.NODE_ENV&&void 0!==n.map&&(o+=n.map),o}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=Gs(e,t,n[o])+";";else for(var i in n){var a=n[i];if("object"!==X(a))null!=t&&void 0!==t[a]?r+=i+"{"+t[a]+"}":Fs(a)&&(r+=Ts(i)+":"+js(i,a)+";");else{if("NO_COMPONENT_SELECTOR"===i&&"production"!==ue.env.NODE_ENV)throw new Error(Us);if(!Array.isArray(a)||"string"!=typeof a[0]||null!=t&&void 0!==t[a[0]]){var s=Gs(e,t,a);switch(i){case"animation":case"animationName":r+=Ts(i)+":"+s+";";break;default:"production"!==ue.env.NODE_ENV&&"undefined"===i&&console.error("You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key)."),r+=i+"{"+s+"}"}}else for(var c=0;c<a.length;c++)Fs(a[c])&&(r+=Ts(i)+":"+js(i,a[c])+";")}}return r}(e,t,n);case"function":if(void 0!==e){var i=Ys,a=n(e);return Ys=i,Gs(e,t,a)}"production"!==ue.env.NODE_ENV&&console.error("Functions that are interpolated in css calls will be stringified.\nIf you want to have a css call based on props, create a function that returns a css call like this\nlet dynamicStyle = (props) => css`color: ${props.color}`\nIt can be called directly with props or interpolated in a styled call like this\nlet SomeComponent = styled('div')`${dynamicStyle}`");break;case"string":if("production"!==ue.env.NODE_ENV){var s=[],c=n.replace(Rs,(function(e,t,n){var r="animation"+s.length;return s.push("const "+r+" = keyframes`"+n.replace(/^@keyframes animation-\w+/,"")+"`"),"${"+r+"}"}));s.length&&console.error("`keyframes` output got interpolated into plain string, please wrap it with `css`.\n\nInstead of doing this:\n\n"+[].concat(s,["`"+c+"`"]).join("\n")+"\n\nYou should wrap it with `css` like this:\n\ncss`"+c+"`")}}if(null==t)return n;var l=t[n];return void 0!==l?l:n}var Hs,Ys,zs=/label:\s*([^\s;\n{]+)\s*(;|$)/g;"production"!==ue.env.NODE_ENV&&(Hs=/\/\*#\ssourceMappingURL=data:application\/json;\S+\s+\*\//g);var Ks=function(e,t,n){if(1===e.length&&"object"===X(e[0])&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";Ys=void 0;var i,a=e[0];null==a||void 0===a.raw?(r=!1,o+=Gs(n,t,a)):("production"!==ue.env.NODE_ENV&&void 0===a[0]&&console.error(Qs),o+=a[0]);for(var s=1;s<e.length;s++)o+=Gs(n,t,e[s]),r&&("production"!==ue.env.NODE_ENV&&void 0===a[s]&&console.error(Qs),o+=a[s]);"production"!==ue.env.NODE_ENV&&(o=o.replace(Hs,(function(e){return i=e,""}))),zs.lastIndex=0;for(var c,l="";null!==(c=zs.exec(o));)l+="-"+c[1];var u=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+l;return"production"!==ue.env.NODE_ENV?{name:u,styles:o,map:i,next:Ys,toString:function(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}}:{name:u,styles:o,next:Ys}},Ws=!!C.useInsertionEffect&&C.useInsertionEffect||function(e){return e()},Vs={}.hasOwnProperty,$s=C.createContext("undefined"!=typeof HTMLElement?ws({key:"css"}):null);"production"!==ue.env.NODE_ENV&&($s.displayName="EmotionCacheContext");var Xs=function(e){return u.forwardRef((function(t,n){var r=u.useContext($s);return e(t,r,n)}))},Zs=C.createContext({});"production"!==ue.env.NODE_ENV&&(Zs.displayName="EmotionThemeContext");var ec="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",tc="__EMOTION_LABEL_PLEASE_DO_NOT_USE__",nc=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return Ss(t,n,r),Ws((function(){return Bs(t,n,r)})),null},rc=Xs((function(e,t,n){var r=e.css;"string"==typeof r&&void 0!==t.registered[r]&&(r=t.registered[r]);var o=e[ec],i=[r],a="";"string"==typeof e.className?a=xs(t.registered,i,e.className):null!=e.className&&(a=e.className+" ");var s=Ks(i,void 0,C.useContext(Zs));if("production"!==ue.env.NODE_ENV&&-1===s.name.indexOf("-")){var c=e[tc];c&&(s=Ks([s,"label:"+c+";"]))}a+=t.key+"-"+s.name;var l={};for(var u in e)!Vs.call(e,u)||"css"===u||u===ec||"production"!==ue.env.NODE_ENV&&u===tc||(l[u]=e[u]);return l.ref=n,l.className=a,C.createElement(C.Fragment,null,C.createElement(nc,{cache:t,serialized:s,isStringTag:"string"==typeof o}),C.createElement(o,l))}));"production"!==ue.env.NODE_ENV&&(rc.displayName="EmotionCssPropInternal");var oc={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function ic(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var ac=/[A-Z]|^ms/g,sc=/_EMO_([^_]+?)_([^]*?)_EMO_/g,cc=function(e){return 45===e.charCodeAt(1)},lc=function(e){return null!=e&&"boolean"!=typeof e},uc=ic((function(e){return cc(e)?e:e.replace(ac,"-$&").toLowerCase()})),dc=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(sc,(function(e,t,n){return fc={name:t,styles:n,next:fc},t}))}return 1===oc[e]||cc(e)||"number"!=typeof t||0===t?t:t+"px"};function Ac(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(X(n)){case"boolean":return"";case"object":if(1===n.anim)return fc={name:n.name,styles:n.styles,next:fc},n.name;var r=n;if(void 0!==r.styles){var o=r.next;if(void 0!==o)for(;void 0!==o;)fc={name:o.name,styles:o.styles,next:fc},o=o.next;return r.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=Ac(e,t,n[o])+";";else for(var i in n){var a=n[i];if("object"!==X(a)){var s=a;null!=t&&void 0!==t[s]?r+=i+"{"+t[s]+"}":lc(s)&&(r+=uc(i)+":"+dc(i,s)+";")}else if(!Array.isArray(a)||"string"!=typeof a[0]||null!=t&&void 0!==t[a[0]]){var c=Ac(e,t,a);switch(i){case"animation":case"animationName":r+=uc(i)+":"+c+";";break;default:r+=i+"{"+c+"}"}}else for(var l=0;l<a.length;l++)lc(a[l])&&(r+=uc(i)+":"+dc(i,a[l])+";")}return r}(e,t,n)}if(null==t)return n;var i=t[n];return void 0!==i?i:n}var fc,hc=/label:\s*([^\s;{]+)\s*(;|$)/g,gc=function(e){for(var t=e.length,n=0,r="";n<t;n++){var o=e[n];if(null!=o){var i=void 0;switch(X(o)){case"boolean":break;case"object":if(Array.isArray(o))i=gc(o);else{var a=o;for(var s in i="",a)a[s]&&s&&(i&&(i+=" "),i+=s)}break;default:i=o}i&&(r&&(r+=" "),r+=i)}}return r},pc=function(){return{createCssAndCx:function(e){var t=e.cache,n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var o=function(e,t,n){if(1===e.length&&"object"===X(e[0])&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";fc=void 0;var i=e[0];null==i||void 0===i.raw?(r=!1,o+=Ac(n,t,i)):o+=i[0];for(var a=1;a<e.length;a++)o+=Ac(n,t,e[a]),r&&(o+=i[a]);hc.lastIndex=0;for(var s,c="";null!==(s=hc.exec(o));)c+="-"+s[1];var l=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+c;return{name:l,styles:o,next:fc}}(n,t.registered);!function(e,t,n){!function(e,t,n){var r=e.key+"-"+t.name;void 0===e.registered[r]&&(e.registered[r]=t.styles)}(e,t);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}(t,o);var i="".concat(t.key,"-").concat(o.name),a=n[0];return function(e){return e instanceof Object&&!("styles"in e)&&!("length"in e)&&!("__emotion_styles"in e)}(a)&&yc.saveClassNameCSSObjectMapping(t,i,a),i};return{css:n,cx:function(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];var i=gc(r),a=yc.fixClassName(t,i,n);return function(e,t,n){var r=[],o=function(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(r+=n+" ")})),r}(e,r,n);return r.length<2?n:o+t(r)}(t.registered,n,a)}}}}}(),mc=pc.createCssAndCx,yc=function(){var e=new WeakMap;return{saveClassNameCSSObjectMapping:function(t,n,r){var o=e.get(t);void 0===o&&(o=new Map,e.set(t,o)),o.set(n,r)},fixClassName:function(t,n,r){if(!n.includes(" "))return n;var o,i,a=e.get(t);return gc((o=n.split(" ").map((function(e){return[e,null==a?void 0:a.get(e)]})),i=!1,o.map((function(e){var t,n=K(e,2),r=n[0],o=n[1];if(void 0===o)return r;if(i)t={"&&":o};else for(var a in t=r,o)if(a.startsWith("@media")){i=!0;break}return t}))).map((function(e){return"string"==typeof e?e:r(e)})))}}}(),_c=function(){return u.useContext($s)};function vc(e){var t=e.useTheme,n=function(e){var t=e.useCache;return{useCssAndCx:function(){var e=t(),n=u.useMemo((function(){return mc({cache:e})}),[e]);return{css:n.css,cx:n.cx}}}}({useCache:_c}),r=n.useCssAndCx;return{makeStyles:function(){return function(e){var n="function"==typeof e?e:function(){return e};return function(e,o){var i=t(),a=r(),s=a.css,c=a.cx,l=u.useMemo((function(){for(var e=n(i),t={},r=0,o=Object.keys(e);r<o.length;r++){var a=o[r];t[a]=s(e[a])}return t}),[s,i]),d=null==o?void 0:o.props.classes,A=function(e){if(!(e instanceof Object)||"function"==typeof e)return e;var t=[];for(var n in e){var r=e[n],o=X(r);if("string"!==o&&("number"!==o||isNaN(r))&&"boolean"!==o&&null!=r)return e;t.push("".concat(n,":").concat(o,"_").concat(r))}return"xSqLiJdLMd9s".concat(t.join("|"))}(d),f=u.useMemo((function(){return d?function(e,t,n){if(!(t instanceof Object))return e;var r=Object.keys(t);if(0===r.length)return e;for(var o={},i=0,a=Object.keys(e);i<a.length;i++){var s=a[i];o[s]=n(e[s],t[s])}for(var c=0,l=r;c<l.length;c++){var u=l[c];if(!(u in e)){var d=t[u];"string"==typeof d&&(o[u]=d)}}return o}(l,d,c):l}),[l,A,c]);return{classes:f,theme:i,css:s,cx:c}}}}}}var bc,Cc,Ic,wc,Ec=vc({useTheme:h.useTheme}).makeStyles,xc=a.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),Sc=a.createSvgIcon(i.jsx("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link"),Bc=a.createSvgIcon(i.jsx("path",{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"}),"RadioButtonChecked"),kc=a.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"}),"RadioButtonUnchecked"),Qc={},Nc={},Rc={},Dc={};function Fc(){if(bc)return Dc;function e(e){return decodeURIComponent(e)}function t(e,t){return String(t).replaceAll(e,(function(e){return encodeURIComponent(e).toUpperCase()}))}function n(e){return t(/[\n;\r\t=%&,\u0000-\u001f\u007f]/g,e)}function r(e){return t(/[\n\r\t%\u0000-\u001f\u007f]/g,e)}function o(t){if(null==t||!t.length||"."===t)return{};var n={};return t.replace(/\r\n|[\r\n]$/,"").split(";").forEach((function(t){var r,o,i=t.split("=",2);if(null!==(r=i[1])&&void 0!==r&&r.length){i[0]=i[0].trim();var a=n[i[0].trim()];a||(n[i[0]]=a=[]),(o=a).push.apply(o,V(i[1].split(",").map((function(e){return e.trim()})).map(e)))}})),n}function i(e){var t=[];return Object.entries(e).forEach((function(e){var r=K(e,2),o=r[0],i=r[1].map(n).join(",");t.push("".concat(n(o),"=").concat(i))})),t.length?t.join(";"):"."}function a(e,t){var n=null==e.attributes?".":i(e.attributes),o=[null===e.seq_id?".":r(e.seq_id),null===e.source?".":r(e.source),null===e.type?".":r(e.type),null===e.start?".":r(e.start),null===e.end?".":r(e.end),null===e.score?".":r(e.score),null===e.strand?".":r(e.strand),null===e.phase?".":r(e.phase),n],a="".concat(o.join("\t"),"\n");return t[a]?"":(t[a]=!0,a)}function s(e,t){if(Array.isArray(e))return e.map((function(e){return s(e,t)})).join("");var n,r=[a(e,t)];return void 0!==(n=e).child_features&&void 0!==n.derived_features&&r.push.apply(r,V(e.child_features.map((function(e){return s(e,t)}))).concat(V(e.derived_features.map((function(e){return s(e,t)}))))),r.join("")}function c(e){return s(e,{})}function l(e){var t="##".concat(e.directive);return e.value&&(t+=" ".concat(e.value)),t+"\n"}function u(e){return"# ".concat(e.comment,"\n")}function d(e){for(var t=">".concat(e.id).concat(e.description?" ".concat(e.description):"","\n"),n=Math.ceil(e.sequence.length/80),r=new Array(n),o=0;o<n;o+=1){var i=80*o;r[o]=e.sequence.slice(i,i+80)}return"".concat(t).concat(r.join("\n"),"\n")}function A(e){return"attributes"in e?c(e):"directive"in e?l(e):"sequence"in e?d(e):"comment"in e?u(e):"# (invalid item found during format)\n"}return bc=1,Object.defineProperty(Dc,"__esModule",{value:!0}),Dc.unescape=e,Dc.escape=n,Dc.escapeColumn=r,Dc.parseAttributes=o,Dc.parseFeature=function(t){var n=t.trim().split("\t").map((function(e){return"."===e||""===e?null:e}));return{seq_id:n[0]&&e(n[0]),source:n[1]&&e(n[1]),type:n[2]&&e(n[2]),start:null===n[3]?null:parseInt(n[3],10),end:null===n[4]?null:parseInt(n[4],10),score:null===n[5]?null:parseFloat(n[5]),strand:n[6],phase:n[7],attributes:null===n[8]?null:o(n[8])}},Dc.parseDirective=function(e){var t=/^\s*##\s*(\S+)\s*(.*)/.exec(e);if(!t)return null;var n=K(t,2)[1],r=K(t,3)[2],o={directive:n};if(r.length&&(r=r.replace(/\r\n|[\r\n]$/,""),o.value=r),"sequence-region"===n){var i,a,s=r.split(/\s+/,3);return q(q({},o),{},{seq_id:s[0],start:null===(i=s[1])||void 0===i?void 0:i.replaceAll(/\D/g,""),end:null===(a=s[2])||void 0===a?void 0:a.replaceAll(/\D/g,"")})}if("genome-build"===n){var c=K(r.split(/\s+/,2),2),l=c[0],u=c[1];return q(q({},o),{},{source:l,buildName:u})}return o},Dc.formatAttributes=i,Dc.formatFeature=c,Dc.formatDirective=l,Dc.formatComment=u,Dc.formatSequence=d,Dc.formatItem=function(e){return Array.isArray(e)?e.map(A):A(e)},Dc}function Tc(){if(Ic)return Nc;Ic=1,Object.defineProperty(Nc,"__esModule",{value:!0}),Nc.GFFFormattingTransformer=Nc.GFFTransformer=void 0,Nc.parseStringSync=function(t,r){if(!t)return[];var o=n(null!=r?r:{}),i=[],a=i.push.bind(i),s={errorCallback:o.errorCallback};o.parseFeatures&&(s.featureCallback=a),o.parseDirectives&&(s.directiveCallback=a),o.parseComments&&(s.commentCallback=a),o.parseSequences&&(s.sequenceCallback=a);var c=new e.GFF3Parser({disableDerivesFromReferences:o.disableDerivesFromReferences||!1,bufferSize:Infinity});return t.split(/\r\n|[\r\n]/).forEach((function(e){return c.addLine.bind(c)(e,s)})),c.finish(s),i},Nc.formatSync=function(e){var n=[],r=[];e.forEach((function(e){"sequence"in e?r.push(e):n.push(e)}));var o=n.map((function(e){return Array.isArray(e)?(0,t.formatItem)(e).join(""):(0,t.formatItem)(e)})).join("");return r.length&&(o+="##FASTA\n",o+=r.map(t.formatSequence).join("")),o};var e=function(){if(Cc)return Rc;Cc=1,Object.defineProperty(Rc,"__esModule",{value:!0}),Rc.GFF3Parser=Rc.FASTAParser=void 0;var e=Fc(),t=function(){return D((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};N(this,e),T(this,"seqCallback",void 0),T(this,"currentSequence",void 0),this.seqCallback=t,this.currentSequence=void 0}),[{key:"addLine",value:function(e){var t=/^>\s*(\S+)\s*(.*)/.exec(e);t?(this.flush(),this.currentSequence={id:t[1],sequence:""},t[2]&&(this.currentSequence.description=t[2].trim())):this.currentSequence&&/\S/.test(e)&&(this.currentSequence.sequence+=e.replaceAll(/\s/g,""))}},{key:"flush",value:function(){this.currentSequence&&this.seqCallback(this.currentSequence)}},{key:"finish",value:function(){this.flush()}}])}();Rc.FASTAParser=t;var n=function(){return D((function e(t){N(this,e),T(this,"endCallback",void 0),T(this,"disableDerivesFromReferences",void 0),T(this,"bufferSize",void 0),T(this,"fastaParser",void 0),T(this,"eof",!1),T(this,"lineNumber",0),T(this,"underConstructionTopLevel",[]),T(this,"underConstructionById",{}),T(this,"completedReferences",{}),T(this,"underConstructionOrphans",new Map),this.endCallback=t.endCallback||function(){},this.disableDerivesFromReferences=t.disableDerivesFromReferences||!1,this.bufferSize=void 0===t.bufferSize?Infinity:t.bufferSize}),[{key:"addLine",value:function(n,r){if(this.fastaParser)this.fastaParser.addLine(n);else if(!this.eof)if(this.lineNumber+=1,/^\s*[^#\s>]/.test(n))this.bufferLine(n,r);else{var o=/^\s*(#+)(.*)/.exec(n);if(o){var i=K(o,2)[1],a=K(o,3)[2];if(3===i.length)this.emitAllUnderConstructionFeatures(r);else if(2===i.length){var s=(0,e.parseDirective)(n);s&&("FASTA"===s.directive?(this.emitAllUnderConstructionFeatures(r),this.eof=!0,this.fastaParser=new t(r.sequenceCallback)):this.emitItem(s,r))}else a=a.replace(/\s*/,""),this.emitItem({comment:a},r)}else if(/^\s*$/.test(n));else if(/^\s*>/.test(n))this.emitAllUnderConstructionFeatures(r),this.eof=!0,this.fastaParser=new t(r.sequenceCallback),this.fastaParser.addLine(n);else{var c=n.replaceAll(/\r\n|[\r\n]$/g,"");this.parseError("GFF3 parse error. Cannot parse '".concat(c,"'."),r)}}}},{key:"finish",value:function(e){this.emitAllUnderConstructionFeatures(e),this.fastaParser&&this.fastaParser.finish(),this.endCallback()}},{key:"emitItem",value:function(e,t){Array.isArray(e)&&t.featureCallback?t.featureCallback(e):"directive"in e&&t.directiveCallback?t.directiveCallback(e):"comment"in e&&t.commentCallback&&t.commentCallback(e)}},{key:"enforceBufferSizeLimit",value:function(){for(var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1?arguments[1]:void 0,r=function(t){var n;t&&Array.isArray(t)&&null!==(n=t[0].attributes)&&void 0!==n&&null!==(n=n.ID)&&void 0!==n&&n[0]&&(t[0].attributes.ID.forEach((function(t){delete e.underConstructionById[t],delete e.completedReferences[t]})),t.forEach((function(e){e.child_features&&e.child_features.forEach((function(e){return r(e)})),e.derived_features&&e.derived_features.forEach((function(e){return r(e)}))})))};this.underConstructionTopLevel.length+t>this.bufferSize;){var o=this.underConstructionTopLevel.shift();o&&(this.emitItem(o,n),r(o))}}},{key:"emitAllUnderConstructionFeatures",value:function(e){var t=this;this.underConstructionTopLevel.forEach((function(n){return t.emitItem.bind(t)(n,e)})),this.underConstructionTopLevel=[],this.underConstructionById={},this.completedReferences={},this.underConstructionOrphans.size&&this.parseError("some features reference other features that do not exist in the file (or in the same '###' scope). ".concat(Array.from(this.underConstructionOrphans.keys()).join(",")),e)}},{key:"bufferLine",value:function(t,n){var r,o,i,a=this,s=q(q({},(0,e.parseFeature)(t)),{},{child_features:[],derived_features:[]}),c=(null===(r=s.attributes)||void 0===r?void 0:r.ID)||[],l=(null===(o=s.attributes)||void 0===o?void 0:o.Parent)||[],u=this.disableDerivesFromReferences?[]:(null===(i=s.attributes)||void 0===i?void 0:i.Derives_from)||[];if(c.length||l.length||u.length){var d=void 0;c.forEach((function(e){var t=a.underConstructionById[e];t?(t[t.length-1].type!==s.type&&a.parseError('multi-line feature "'.concat(e,'" has inconsistent types: "').concat(s.type,'", "').concat(t[t.length-1].type,'"'),n),t.push(s),d=t):(d=[s],a.enforceBufferSizeLimit(1,n),l.length||u.length||a.underConstructionTopLevel.push(d),a.underConstructionById[e]=d,a.resolveReferencesTo(d,e))})),this.resolveReferencesFrom(d||[s],{Parent:l,Derives_from:u},c)}else this.emitItem([s],n)}},{key:"resolveReferencesTo",value:function(e,t){var n=this.underConstructionOrphans.get(t);n&&(e.forEach((function(e){var t;(t=e.child_features).push.apply(t,V(n.Parent))})),e.forEach((function(e){var t;(t=e.derived_features).push.apply(t,V(n.Derives_from))})),this.underConstructionOrphans.delete(t))}},{key:"parseError",value:function(e,t){var n;this.eof=!0,null===(n=t.errorCallback)||void 0===n||n.call(t,"".concat(this.lineNumber,": ").concat(e))}},{key:"postSet",value:function(e,t,n){var r=e[t];r||(e[t]=r={});var o=r[n]||!1;return r[n]=!0,o}},{key:"resolveReferencesFrom",value:function(e,t,n){var r=this;t.Parent.forEach((function(t){var o=r.underConstructionById[t];if(o)n.filter((function(e){return r.postSet(r.completedReferences,e,"Parent,".concat(t))})).length||o.forEach((function(t){t.child_features.push(e)}));else{var i=r.underConstructionOrphans.get(t);i||r.underConstructionOrphans.set(t,i={Parent:[],Derives_from:[]}),i.Parent.push(e)}})),t.Derives_from.forEach((function(t){var o=r.underConstructionById[t];if(o)n.filter((function(e){return r.postSet(r.completedReferences,e,"Derives_from,".concat(t))})).length||o.forEach((function(t){t.derived_features.push(e)}));else{var i=r.underConstructionOrphans.get(t);i||r.underConstructionOrphans.set(t,i={Parent:[],Derives_from:[]}),i.Derives_from.push(e)}}))}}])}();return Rc.GFF3Parser=n,Rc}(),t=Fc();function n(e){return q({parseFeatures:!0,parseDirectives:!1,parseSequences:!0,parseComments:!1,bufferSize:Infinity,disableDerivesFromReferences:!1,errorCallback:function(e){throw new Error(e)}},e)}Nc.GFFTransformer=function(){return D((function t(r){N(this,t),T(this,"decoder",void 0),T(this,"parser",void 0),T(this,"lastString",""),T(this,"parseFeatures",void 0),T(this,"parseDirectives",void 0),T(this,"parseComments",void 0),T(this,"parseSequences",void 0),this.decoder=new TextDecoder;var o=n(null!=r?r:{});this.parser=new e.GFF3Parser({bufferSize:o.bufferSize,disableDerivesFromReferences:o.disableDerivesFromReferences}),this.parseFeatures=o.parseFeatures,this.parseDirectives=o.parseDirectives,this.parseComments=o.parseComments,this.parseSequences=o.parseSequences,this.errorCallback=null==r?void 0:r.errorCallback}),[{key:"makeCallbacks",value:function(e){var t={errorCallback:this.emitErrorMessage.bind(this,e)};return this.parseFeatures&&(t.featureCallback=function(t){e.enqueue(t)}),this.parseDirectives&&(t.directiveCallback=function(t){e.enqueue(t)}),this.parseComments&&(t.commentCallback=function(t){e.enqueue(t)}),this.parseSequences&&(t.sequenceCallback=function(t){e.enqueue(t)}),t}},{key:"emitErrorMessage",value:function(e,t){this.errorCallback?this.errorCallback(t):e.error(t)}},{key:"transform",value:function(e,t){var n="".concat(this.lastString).concat(this.decoder.decode(e,{stream:!0})).split(/\r\n|[\r\n]/g);this.lastString=n.pop()||"";var r,o=F(n);try{for(o.s();!(r=o.n()).done;)this.parser.addLine(r.value,this.makeCallbacks(t))}catch(e){o.e(e)}finally{o.f()}}},{key:"flush",value:function(e){var t=this.makeCallbacks(e);this.lastString="".concat(this.lastString).concat(this.decoder.decode()),this.lastString&&(this.parser.addLine(this.lastString,t),this.lastString=""),this.parser.finish(t)}}])}();var r=function(){return D((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};N(this,e),T(this,"linesSinceLastSyncMark",0),T(this,"haveWeEmittedData",!1),T(this,"fastaMode",!1),T(this,"minLinesBetweenSyncMarks",void 0),T(this,"insertVersionDirective",void 0),this.minLinesBetweenSyncMarks=t.minSyncLines||100,this.insertVersionDirective=!1!==t.insertVersionDirective}),[{key:"transform",value:function(e,n){!this.haveWeEmittedData&&this.insertVersionDirective&&(!("directive"in e)||"directive"in e&&"gff-version"!==e.directive)&&n.enqueue("##gff-version 3\n"),"sequence"in e&&!this.fastaMode&&(n.enqueue("##FASTA\n"),this.fastaMode=!0);var r=Array.isArray(e)?e.map((function(e){return(0,t.formatItem)(e)})).join(""):(0,t.formatItem)(e);if(n.enqueue(r),this.linesSinceLastSyncMark>=this.minLinesBetweenSyncMarks)n.enqueue("###\n"),this.linesSinceLastSyncMark=0;else{for(var o=0,i=0;i<r.length;i+=1)"\n"===r[i]&&(o+=1);this.linesSinceLastSyncMark+=o}this.haveWeEmittedData=!0}}])}();return Nc.GFFFormattingTransformer=r,Nc}var jc=(wc||(wc=1,function(e){var t,n=Qc&&Qc.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),r=Qc&&Qc.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=Qc&&Qc.__importStar||(t=function(e){return t=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},t(e)},function(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var i=t(e),a=0;a<i.length;a++)"default"!==i[a]&&n(o,e,i[a]);return r(o,e),o}),i=Qc&&Qc.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.util=e.defaultExport=void 0;var a=o(Tc());i(Tc(),e);var s=o(Fc());e.defaultExport=q(q({},a),{},{util:s}),e.default=e.defaultExport,e.util=o(Fc())}(Qc)),Qc);async function Mc(e,t,n){const r=jc.parseStringSync(t,{parseSequences:!0,parseComments:!0,parseDirectives:!1,parseFeatures:!0});if(0===r.length)throw new Error("No features found in GFF3 file");let o=0,i=n.assemblies.get(e);i||(i=n.addAssembly(e,"InMemoryFileDriver"));for(const e of r)if(Array.isArray(e)){const t=It(e),n=i.refSeqs.get(t.refSeq)??i.addRefSeq(t.refSeq,t.refSeq);n.features.has(t._id)||n.addFeature(t)}else if("comment"in e)i.addComment(e.comment);else{o++;let t=i.refSeqs.get(e.id);t||(t=i.addRefSeq(e.id,e.id,e.description)),e.description&&!t.description&&t.setDescription(e.description),t.addSequence({start:0,stop:e.sequence.length,sequence:e.sequence})}if(0===o)throw new Error("No embedded FASTA section found in GFF3");const a=await Oc(i);return n.addCheckResults(a),i}async function Oc(e){const t=[];for(const n of e.refSeqs.values())for(const e of n.features.values())for(const r of ae.getChecks().values()){const o=await r.checkFeature(c.getSnapshot(e),((e,t)=>Promise.resolve(n.getSequence(e,t))));t.push(...o)}return t}function Lc(e){const{attributes:t}=e,n=t.get("gff_name");return n?n[0]:""}function Pc(e){const{attributes:t}=e,n=t.get("gff_id"),r=t.get("transcript_id"),o=t.get("exon_id"),i=t.get("protein_id");return n?n[0]:r?r[0]:o?o[0]:i?i[0]:""}function qc(e){const t=Lc(e),n=Pc(e);return t?`: ${t}`:n?`: ${n}`:""}function Jc(e,t,n=!1){const r=[];r.push(e);for(const t of function(e){const t=[];let{parent:n}=e;for(;n;)t.push(n),({parent:n}=n);return t}(e))r.push(t);const o=function(e){const t=[];if(e.children)for(const[,n]of e.children)t.push(n);return t}(e);for(const e of o)e.min<t&&e.max>=t&&r.push(e);if(!n)return r;if(e.parent){const n=e.parent.children;if(n)for(const[,o]of n)o._id!=e._id&&o.min<t&&o.max>=t&&r.push(o)}return r}var Uc=a.createSvgIcon(i.jsx("path",{d:"m7.58 16.89 5.77-4.07c.56-.4.56-1.24 0-1.63L7.58 7.11C6.91 6.65 6 7.12 6 7.93v8.14c0 .81.91 1.28 1.58.82M16 7v10c0 .55.45 1 1 1s1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1"}),"SkipNextRounded"),Gc=a.createSvgIcon(i.jsx("path",{d:"M7 6c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1s-1-.45-1-1V7c0-.55.45-1 1-1m3.66 6.82 5.77 4.07c.66.47 1.58-.01 1.58-.82V7.93c0-.81-.91-1.28-1.58-.82l-5.77 4.07c-.57.4-.57 1.24 0 1.64"}),"SkipPreviousRounded");function Hc(e,t){if(e.apolloDragging)return;e.setSelectedFeature(t);const{session:n}=e,{apolloDataStore:r}=n,{featureTypeOntology:o}=r.ontologyManager;if(!o)throw new Error("featureTypeOntology is undefined");let i=!1;for(const[,e]of t.children??[])if(o.isTypeOf(e.type,"CDS")||o.isTypeOf(e.type,"exon")){i=!0;break}(o.isTypeOf(t.type,"transcript")||o.isTypeOf(t.type,"pseudogenic_transcript"))&&i?e.showFeatureDetailsWidget(t,["ApolloTranscriptDetails","apolloTranscriptDetails"]):e.showFeatureDetailsWidget(t)}function Yc(e,t){const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"transcript")||n.isTypeOf(e.type,"pseudogenic_transcript")}function zc(e,t){const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"exon")}function Kc(e,t){const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"CDS")}function Wc(e,t,n,r){const i=o.getContainingView(t),a=n.bp-i.bpPerPx*n.x,s=a+i.coarseTotalBp;if(!e.parent)return{upstream:void 0,downstream:void 0};const c=e.parent;if(!c.children)throw new Error(`Error getting children of ${c._id}`);const{featureTypeOntology:l}=r.apolloDataStore.ontologyManager;if(!l)throw new Error("featureTypeOntology is undefined");let u=[];for(const[,e]of c.children)l.isTypeOf(e.type,"exon")&&u.push(e);const d={upstream:void 0,downstream:void 0};u=u.sort(((e,t)=>e.min<t.min?-1:1));for(const e of u)if(e.min>s){d.downstream=e;break}u=u.sort(((e,t)=>e.min>t.min?-1:1));for(const e of u)if(e.max<a){d.upstream=e;break}if(-1===c.strand){const e=d.downstream;d.downstream=d.upstream,d.upstream=e}return d}function Vc(e,t,n){let r=Uc;return-1===e&&(r=Gc),t&&(r=r===Gc?Uc:Gc),n&&(r=r===Gc?Uc:Gc),r}function $c(e,t,n,r){const o=r.bpToPx({refName:t,coord:e.min,regionNumber:n}),i=r.bpToPx({refName:t,coord:e.max,regionNumber:n});if(void 0===o||void 0===i)return;const{offsetPx:a}=r;return[o.offsetPx-a,i.offsetPx-a]}function Xc(e,t,n){const[r,o]=n;if(!(Math.abs(o-r)<8))return Math.abs(r-t)<4?{feature:e,edge:"min"}:Math.abs(o-t)<4?{feature:e,edge:"max"}:void 0}function Zc(e,t){return Boolean(t&&e._id===t._id)}function el(e,t){return!!t&&(e._id===t._id||e.hasDescendant(t._id))}function tl(e){let t;t=e.attributes.get("gff_name")?e.attributes.get("gff_name")?.join(","):e.attributes.get("gff_id")?e.attributes.get("gff_id")?.join(","):e._id;const n=`(${(e.min+1).toLocaleString("en")}..${e.max.toLocaleString("en")})`;if(t&&t.length+n.length>65){const e=60-n.length;t=e>0?t.slice(0,e):"",t=`${t}[...]`}return`${t} ${n}`}function nl(e,t){const{apolloInternetAccount:n,changeManager:r,regions:i,selectedFeature:a,session:s}=e,c=[],l=n?n.role:"admin",u="admin"===l,d=!(l&&["admin","user"].includes(l)),[A]=i,f=e.getAssemblyId(A.assemblyName),h=e.getAssemblyId(A.assemblyName);return c.push({label:tl(t),type:"subHeader"},{label:"Add child feature",disabled:d,onClick:()=>{s.queueDialog((e=>[Bu,{session:s,handleClose:()=>{e()},changeManager:r,sourceFeature:t,sourceAssemblyId:f,internetAccount:n}]))}},{label:"Copy features and annotations",disabled:d,onClick:()=>{s.queueDialog((e=>[Ou,{session:s,handleClose:()=>{e()},changeManager:r,sourceFeature:t,sourceAssemblyId:h}]))}},{label:"Delete feature",disabled:!u,onClick:()=>{s.queueDialog((n=>[Pu,{session:s,handleClose:()=>{n()},changeManager:r,sourceFeature:t,sourceAssemblyId:h,selectedFeature:a,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}}),o.isSessionModelWithWidgets(s)&&c.push({label:"Open feature details",onClick:()=>{const e=s.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:t,assembly:h,refName:A.refName});s.showWidget(e)}}),c}function rl(e,t,n){const r=(e.max-e.min)*t,o=Math.max(e.min-r,1),i=Math.min(e.max+r,n);return{refName:e.refSeq,start:o,end:i}}function ol(e,t,n){const r=[{featureId:e._id,oldLocation:e[n],newLocation:t}],{parent:o}=e;return o&&("min"===n&&o[n]>t||"max"===n&&o[n]<t)&&r.push(...ol(o,t,n)),r}function il(e,t,n,r,o){const i=e._id,a=[{featureId:i,oldLocation:e[n],newLocation:t}],{parent:s,children:c}=e;if(c)for(const[,e]of c)e._id!==o&&("min"===n&&e[n]<t||"max"===n&&e[n]>t)&&a.push(...il(e,t,n,r));if(s&&r){const e=[];if(s.children)for(const[,t]of s.children)t._id!==i&&e.push(t);if(0===e.length)a.push(...il(s,t,n,r,i));else{const o=s[n],c=Math[n](...e.map((e=>e[n])),t);c!==o&&a.push(...il(s,c,n,r,i))}}return a}function al(e,t,n,r=!1){const o=e[n];if(t===o)throw new Error(`New and existing locations are the same: "${t}"`);return"min"===n?t>o?il(e,t,n,r):ol(e,t,n):t<o?il(e,t,n,r):ol(e,t,n)}function sl(e){return"feature"in e}function cl(e,t){const n=e.currentTarget,{clientX:r,clientY:o}=e,{left:i,top:a}=n.getBoundingClientRect(),s=r-i,c=o-a,{coord:l,index:u,refName:d}=t.pxToBp(s);return{x:s,y:c,refName:d,bp:l,regionNumber:u}}async function ll(e,t){let n;try{n=await e.text()}catch{n=""}return`${t?`${t} — `:""}${e.status} ${e.statusText}${n?` (${n})`:""}`}var ul=a.createSvgIcon(i.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");const dl=Ec()((e=>({dialogTitle:{background:e.palette.primary.main,color:e.palette.primary.contrastText,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1.5),color:e.palette.primary.contrastText}}))),Al=f.observer((function(e){const{classes:t}=dl(),{handleClose:n,title:r,...o}=e;return i.jsx(A.Dialog,{...o,header:i.jsxs(i.Fragment,{children:[i.jsx(s.DialogTitle,{className:t.dialogTitle,children:r}),i.jsx(s.IconButton,{"aria-label":"close",onClick:n,className:t.closeButton,children:i.jsx(ul,{})})]})})}));var fl;!function(e){e.GFF3="text/x-gff3",e.FASTA="text/x-fasta",e.BGZIP_FASTA="application/x-bgzip-fasta",e.FAI="text/x-fai",e.GZI="application/x-gzi",e.EXTERNAL="text/x-external"}(fl||(fl={}));const hl=Ec()((e=>({accordion:{border:`1px solid ${e.palette.divider}`,"&:not(:last-child)":{borderBottom:0}},accordionSummary:{flexDirection:"row-reverse"},accordionDetails:{padding:e.spacing(2),borderTop:"1px solid rgba(0, 0, 0, .125)"},radioIcon:{color:e.palette.tertiary.contrastText},dialog:{minWidth:550,maxWidth:800}})));function gl(e,t,n,r,o,i,a,s,c){return!(!e||!(t&&r||n===fl.GFF3&&r||r&&o&&i||a&&s&&c))}function pl({changeManager:e,handleClose:t,session:r}){const{classes:o}=hl(),{internetAccounts:a}=c.getRoot(r),{notify:l}=r,d=a.filter((e=>"ApolloInternetAccount"===e.type));if(0===d.length)throw new Error("No Apollo internet account found");const[A,f]=u.useState(""),[h,g]=u.useState(""),[p,m]=u.useState(!1),[y,_]=u.useState(fl.BGZIP_FASTA),[v,b]=u.useState(!0),[C,I]=u.useState(!1),[w,E]=u.useState(!1),[x,S]=u.useState(!0),[B,k]=u.useState(null),[Q,N]=u.useState(null),[R,D]=u.useState(null),[F,T]=u.useState(""),[j,M]=u.useState(""),[O,L]=u.useState(""),[P,q]=u.useState(!1),[J,U]=u.useState(!1),[G,H]=u.useState(!1);async function Y(e,t){const{jobsManager:n}=r,o=new AbortController,[{baseURL:i,getFetcher:a}]=d,s=new URL("files",i);s.searchParams.set("type",t);const c=s.href,l=new FormData;let u=e.name;const f=t===fl.BGZIP_FASTA||t===fl.FASTA&&(!C||J)||t===fl.GFF3&&G;f&&!e.name.toLocaleLowerCase().endsWith(".gz")?u=`${u}.gz`:!f&&e.name.toLocaleLowerCase().endsWith(".gz")&&(u=`${u}.txt`),l.append("file",e,u),l.append("type",t);const h=a({locationType:"UriLocation",uri:c}),p={name:`UploadAssemblyFile for ${A}`,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{o.abort(new DOMException(`Canceling adding of assembly "${A}"`,"AbortError")),n.abortJob(p.name)}};n.runJob(p),n.update(p.name,`Uploading ${e.name}, this may take awhile`);const{signal:m}=o,y=await h(c,{method:"POST",body:l,signal:m});if(!y.ok){const e=await ll(y,"Error when inserting new assembly (while uploading file)");return n.abortJob(p.name,e),g(e),""}const _=(await y.json())._id;return n.done(p),_}let z=!1;try{const e=new URL(F);"http:"!==e.protocol&&"https:"!==e.protocol||(z=!0)}catch{}let K=!1;try{const e=new URL(j);"http:"!==e.protocol&&"https:"!==e.protocol||(K=!0)}catch{}let W=!1;try{const e=new URL(O);"http:"!==e.protocol&&"https:"!==e.protocol||(W=!0)}catch{}const[V,$]=u.useState("panelFastaInput"),X=e=>(t,n)=>{n&&$(e)};return i.jsxs(Al,{open:!0,handleClose:t,"data-testid":"add-assembly-dialog",title:"Add new assembly",maxWidth:!1,children:[i.jsxs("form",{onSubmit:async function(n){let r;if(n.preventDefault(),g(""),E(!0),q(!0),l(`Assembly "${A}" is being added`,"info"),t(),n.preventDefault(),y===fl.EXTERNAL)r=new Sr({typeName:"AddAssemblyFromExternalChange",assembly:(new ut).toHexString(),assemblyName:A,externalLocation:{fa:F,fai:j,gzi:O}});else{if(!B)throw new Error("Missing fasta file");if(y===fl.GFF3&&v){const e=await Y(B,fl.GFF3);r=new xt({typeName:"AddAssemblyAndFeaturesFromFileChange",assembly:(new ut).toHexString(),assemblyName:A,fileIds:{fa:e},parseOptions:{strict:x}})}else if(y===fl.GFF3){const e=await Y(B,fl.GFF3);r=new Br({typeName:"AddAssemblyFromFileChange",assembly:(new ut).toHexString(),assemblyName:A,fileIds:{fa:e}})}else if(C){const e=await Y(B,fl.FASTA);r=new Br({typeName:"AddAssemblyFromFileChange",assembly:(new ut).toHexString(),assemblyName:A,fileIds:{fa:e}})}else{if(!Q||!R)throw new Error("Missing fasta index files");const e=await Y(B,fl.BGZIP_FASTA),t=await Y(Q,fl.FAI),n=await Y(R,fl.GZI);r=new Br({typeName:"AddAssemblyFromFileChange",assembly:(new ut).toHexString(),assemblyName:A,fileIds:{fa:e,fai:t,gzi:n}})}}const[{internetAccountId:o}]=d;await e.submit(r,{internetAccountId:o,updateJobsManager:!0}),E(!1),q(!1)},"data-testid":"submit-form",children:[i.jsxs(s.DialogContent,{className:o.dialog,children:[P?i.jsx(s.LinearProgress,{}):null,i.jsx(s.TextField,{margin:"dense",id:"name",label:"Assembly name",type:"TextField",fullWidth:!0,variant:"outlined",onChange:e=>{E(!1),f(e.target.value),function(e){const{assemblies:t}=r;t.find((t=>n.readConfObject(t,"displayName")===e))?(m(!1),g(`Assembly ${e} already exists.`)):(m(!0),g(""))}(e.target.value)},disabled:w&&!h}),i.jsxs(s.Accordion,{disableGutters:!0,elevation:0,square:!0,className:o.accordion,expanded:"panelFastaInput"===V,onChange:X("panelFastaInput"),children:[i.jsx(s.AccordionSummary,{className:o.accordionSummary,expandIcon:"panelFastaInput"===V?i.jsx(Bc,{className:o.radioIcon,sx:{fontSize:"1.2rem",ml:5}}):i.jsx(kc,{className:o.radioIcon,sx:{fontSize:"1.2rem",mr:5}}),"aria-controls":"panelFastaInputd-content",id:"panelFastaInputd-header",children:i.jsx(s.Typography,{component:"span",children:"FASTA input"})}),i.jsx(s.AccordionDetails,{className:o.accordionDetails,children:i.jsxs(s.FormGroup,{children:[i.jsx(s.FormControlLabel,{"data-testid":"files-on-url-checkbox",control:i.jsx(s.Checkbox,{onChange:()=>{_(y===fl.EXTERNAL?fl.BGZIP_FASTA:fl.EXTERNAL),y===fl.EXTERNAL&&I(!1)},checked:y===fl.EXTERNAL,disabled:C&&y!==fl.GFF3}),label:i.jsxs(s.Box,{display:"flex",alignItems:"center",children:["Use external URLs",i.jsx(s.Tooltip,{title:"Use external URLs to provide FASTA and index files. Does not copy the files to the Apollo collaboration server, so ensure the URLs are stable.",placement:"top-start",children:i.jsx(s.IconButton,{size:"small",children:i.jsx(xc,{sx:{fontSize:18}})})})]})}),i.jsx(s.FormControlLabel,{"data-testid":"sequence-is-editable-checkbox",control:i.jsx(s.Checkbox,{onChange:()=>{I(!C)}}),checked:C,disabled:y===fl.EXTERNAL,label:i.jsxs(s.Box,{display:"flex",alignItems:"center",children:["Store sequence in database",i.jsx(s.Tooltip,{title:"Enables users to edit the genomic sequence, but comes with performance impacts. Use with care.",placement:"top-start",children:i.jsx(s.IconButton,{size:"small",children:i.jsx(xc,{sx:{fontSize:18}})})})]})}),i.jsx(s.FormControlLabel,{"data-testid":"fasta-is-gzip-checkbox",control:i.jsx(s.Checkbox,{checked:!C||J,onChange:()=>{U(!C||!J)},disabled:!C}),label:"FASTA is gzip compressed"}),i.jsx(s.Table,y===fl.BGZIP_FASTA||y===fl.GFF3?{size:"small",sx:{mt:2},children:i.jsxs(s.TableBody,{children:[i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsxs(s.Box,{display:"flex",alignItems:"center",children:[i.jsx("span",{children:"FASTA"}),i.jsx(s.Tooltip,{title:'Unless "Store sequence in database" enabled, FASTA input must be compressed with bgzip and indexed with samtools faidx (or equivalent). Compression is optional for sequences stored in the database.',children:i.jsx(s.IconButton,{size:"small",children:i.jsx(xc,{sx:{fontSize:18}})})})]})}),i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsx("input",{"data-testid":"fasta-input-file",type:"file",onChange:e=>{const t=e.target.files?.item(0);t&&(k(t),t.name.endsWith(".gz")&&U(!0))},disabled:w&&!h})})]}),i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:"FASTA index (.fai)"}),i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsx("input",{"data-testid":"fai-input-file",type:"file",onChange:e=>{N(e.target.files?.item(0)??null)},disabled:w&&!h||C})})]}),i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:"FASTA binary index (.gzi)"}),i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsx("input",{"data-testid":"gzi-input-file",type:"file",onChange:e=>{D(e.target.files?.item(0)??null)},disabled:w&&!h||C})})]})]})}:{size:"small",sx:{mt:2},children:i.jsxs(s.TableBody,{children:[i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsxs(s.Box,{display:"flex",alignItems:"center",children:[i.jsx("span",{children:"FASTA"}),i.jsx(s.Tooltip,{title:"Remote FASTA input must be compressed with bgzip and indexed with samtools faidx (or equivalent)",children:i.jsx(s.IconButton,{size:"small",children:i.jsx(xc,{sx:{fontSize:18}})})})]})}),i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsx(s.TextField,{"data-testid":"fasta-input-url",variant:"outlined",value:F,error:!z,onChange:e=>{const{value:t}=e.target;T(t),M(t?`${t}.fai`:""),L(t?`${t}.gzi`:"")},disabled:w&&!h,slotProps:{input:{startAdornment:i.jsx(s.InputAdornment,{position:"start",children:i.jsx(Sc,{})})}}})})]}),i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:"FASTA index (.fai)"}),i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsx(s.TextField,{"data-testid":"fai-input-url",variant:"outlined",value:j,error:!K,onChange:e=>{M(e.target.value)},disabled:w&&!h,slotProps:{input:{startAdornment:i.jsx(s.InputAdornment,{position:"start",children:i.jsx(Sc,{})})}}})})]}),i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:"FASTA binary index (.gzi)"}),i.jsx(s.TableCell,{style:{borderBottomWidth:0},children:i.jsx(s.TextField,{"data-testid":"gzi-input-url",variant:"outlined",value:O,error:!W,onChange:e=>{L(e.target.value)},disabled:w&&!h,slotProps:{input:{startAdornment:i.jsx(s.InputAdornment,{position:"start",children:i.jsx(Sc,{})})}}})})]})]})})]})})]}),i.jsxs(s.Accordion,{disableGutters:!0,elevation:0,square:!0,className:o.accordion,expanded:"panelGffInput"===V,onChange:X("panelGffInput"),children:[i.jsx(s.AccordionSummary,{className:o.accordionSummary,expandIcon:"panelGffInput"===V?i.jsx(Bc,{className:o.radioIcon,sx:{fontSize:"1.2rem",ml:5}}):i.jsx(kc,{className:o.radioIcon,sx:{fontSize:"1.2rem",mr:5}}),"aria-controls":"panelGffInputd-content",children:i.jsxs(s.Typography,{component:"span",children:["GFF3 input",i.jsx(s.Tooltip,{title:"GFF3 must includes FASTA sequences. File can be gzip compressed.",children:i.jsx(xc,{className:o.radioIcon,sx:{fontSize:18}})})]})}),i.jsx(s.AccordionDetails,{className:o.accordionDetails,children:i.jsxs(s.Box,{style:{marginTop:20},children:[i.jsx("input",{"data-testid":"gff3-input-file",type:"file",disabled:w&&!h,onChange:e=>{const t=e.target.files?.item(0);t&&(k(t),_(fl.GFF3),t.name.endsWith(".gz")&&H(!0))}}),i.jsxs(s.FormGroup,{style:{display:"grid"},children:[i.jsx(s.FormControlLabel,{control:i.jsx(s.Checkbox,{checked:v,onChange:()=>{b(!v)},disabled:w&&!h}),label:"Load features from GFF3 file"}),i.jsx(s.FormControlLabel,{label:"Strict parsing",disabled:!v||w&&!h,control:i.jsx(s.Checkbox,{checked:x,onChange:e=>{S(e.target.checked)}})}),i.jsx(s.FormHelperText,{children:"Don't import any features if any lines in the GFF3 are unable to be processed"}),i.jsx(s.FormControlLabel,{"data-testid":"gff3-is-gzip-checkbox",control:i.jsx(s.Checkbox,{checked:G,onChange:()=>{H(!G)},disabled:w&&!h}),label:"GFF3 is gzip compressed"})]})]})})]})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{disabled:!gl(p,C,y,B,Q,R,z,K,W)||w,variant:"contained",type:"submit","data-testid":"submit-button",children:w?"Submitting...":"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),h?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:h})}):null]})}const ml=[{field:"name",headerName:"Assembly Name",width:150,editable:!1},{field:"aliases",headerName:"Aliases",width:300,editable:!0}];function yl({changeManager:e,handleClose:t,session:n}){const{apolloDataStore:r}=n,{collaborationServerDriver:o}=r,a=o.getAssemblies().map((e=>({id:e.name,name:e.displayName,aliases:e.aliases.join(", ")}))),[c,l]=u.useState("");return i.jsxs(Al,{open:!0,title:"Add assembly aliases",handleClose:t,maxWidth:"sm","data-testid":"add-assembly-alias",fullWidth:!0,children:[i.jsx(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:i.jsx(s.Box,{sx:{height:400,width:"100%"},children:i.jsx(d.DataGrid,{rows:a,columns:ml,initialState:{pagination:{paginationModel:{pageSize:5}}},pageSizeOptions:[5],processRowUpdate:(n,r)=>{const o=new mt({typeName:"AddAssemblyAliasesChange",assembly:n.id,aliases:n.aliases.split(",")});return e.submit(o).catch((()=>{l("Error submitting change")})),t(),n},disableRowSelectionOnClick:!0})})}),c?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:c})}):null]})}var _l,vl,bl=function(e,t){return t.some((function(t){return e instanceof t}))},Cl=new WeakMap,Il=new WeakMap,wl=new WeakMap,El=new WeakMap,xl=new WeakMap,Sl={get:function(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Il.get(e);if("objectStoreNames"===t)return e.objectStoreNames||wl.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return kl(e[t])},set:function(e,t,n){return e[t]=n,!0},has:function(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function Bl(e){Sl=e(Sl)}function kl(e){if(e instanceof IDBRequest)return t=e,(n=new Promise((function(e,n){var r=function(){t.removeEventListener("success",o),t.removeEventListener("error",i)},o=function(){e(kl(t.result)),r()},i=function(){n(t.error),r()};t.addEventListener("success",o),t.addEventListener("error",i)}))).then((function(e){e instanceof IDBCursor&&Cl.set(e,t)})).catch((function(){})),xl.set(n,t),n;var t,n;if(El.has(e))return El.get(e);var r=function(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(vl||(vl=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.apply(Ql(this),n),kl(Cl.get(this))}:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return kl(t.apply(Ql(this),n))}:function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];var i=t.call.apply(t,[Ql(this),e].concat(r));return wl.set(i,e.sort?e.sort():[e]),kl(i)}:(e instanceof IDBTransaction&&function(e){if(!Il.has(e)){var t=new Promise((function(t,n){var r=function(){e.removeEventListener("complete",o),e.removeEventListener("error",i),e.removeEventListener("abort",i)},o=function(){t(),r()},i=function(){n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",o),e.addEventListener("error",i),e.addEventListener("abort",i)}));Il.set(e,t)}}(e),bl(e,_l||(_l=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Sl):e);var t}(e);return r!==e&&(El.set(e,r),xl.set(r,e)),r}var Ql=function(e){return xl.get(e)},Nl=["get","getKey","getAll","getAllKeys","count"],Rl=["put","add","delete","clear"],Dl=new Map;function Fl(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(Dl.get(t))return Dl.get(t);var n=t.replace(/FromIndex$/,""),r=t!==n,o=Rl.includes(n);if(n in(r?IDBIndex:IDBObjectStore).prototype&&(o||Nl.includes(n))){var i=function(){var e=B(U().m((function e(t){var i,a,s,c,l,u,d=arguments;return U().w((function(e){for(;;)switch(e.n){case 0:for(a=this.transaction(t,o?"readwrite":"readonly"),s=a.store,c=d.length,l=new Array(c>1?c-1:0),u=1;u<c;u++)l[u-1]=d[u];return r&&(s=s.index(l.shift())),e.n=1,Promise.all([(i=s)[n].apply(i,l),o&&a.done]);case 1:return e.a(2,e.v[0])}}),e,this)})));return function(t){return e.apply(this,arguments)}}();return Dl.set(t,i),i}}}Bl((function(e){return q(q({},e),{},{get:function(t,n,r){return Fl(t,n)||e.get(t,n,r)},has:function(t,n){return!!Fl(t,n)||e.has(t,n)}})}));var Tl=["continue","continuePrimaryKey","advance"],jl={},Ml=new WeakMap,Ol=new WeakMap,Ll={get:function(e,t){if(!Tl.includes(t))return e[t];var n=jl[t];return n||(n=jl[t]=function(){var e;Ml.set(this,(e=Ol.get(this))[t].apply(e,arguments))}),n}};function Pl(){return ql.apply(this,arguments)}function ql(){return ql=function(e){return function(){return new ee(e.apply(this,arguments))}}(U().m((function e(){var t,n,r,o=arguments;return U().w((function(e){for(;;)switch(e.n){case 0:if((t=this)instanceof IDBCursor){e.n=2;break}return e.n=1,k((n=t).openCursor.apply(n,o));case 1:t=e.v;case 2:if(t){e.n=3;break}return e.a(2);case 3:r=new Proxy(t,Ll),Ol.set(r,t),xl.set(r,Ql(t));case 4:if(!t){e.n=7;break}return e.n=5,r;case 5:return e.n=6,k(Ml.get(r)||t.continue());case 6:t=e.v,Ml.delete(r),e.n=4;break;case 7:return e.a(2)}}),e,this)}))),ql.apply(this,arguments)}function Jl(e,t){return t===Symbol.asyncIterator&&bl(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&bl(e,[IDBIndex,IDBObjectStore])}Bl((function(e){return q(q({},e),{},{get:function(t,n,r){return Jl(t,n)?Pl:e.get(t,n,r)},has:function(t,n){return Jl(t,n)||e.has(t,n)}})}));var Ul=function(e){function t(){var e;N(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return T(e=Q(this,t,[].concat(r)),"code",void 0),e}return O(t,e),D(t)}(te(Error));function Gl(e){if(e){if(!(e instanceof AbortSignal))throw new TypeError("must pass an AbortSignal");if(e.aborted)throw function(){if("undefined"!=typeof DOMException)return new DOMException("aborted","AbortError");var e=new Ul("aborted");return e.code="ERR_ABORTED",e}()}}function Hl(e){return e instanceof Error&&("AbortError"===e.name||"ERR_ABORTED"===e.code||/\b(aborted|aborterror)\b/i.test(e.message))}function Yl(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var zl,Kl={exports:{}},Wl=(zl||(zl=1,function(e,t){e.exports=function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){if(!s&&Yl)return Yl(a);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[a]={exports:{}};t[a][0].call(l.exports,(function(e){return o(t[a][1][e]||e)}),l,l.exports,e,t,n,r)}return n[a].exports}for(var i=Yl,a=0;a<r.length;a++)o(r[a]);return o}({"./aesprim":[function(e,t,n){var r;r=function(e){var t,n,r,o,i,a,s,c,l,u,d,A,f,h,g,p,m,y;function _(e,t){if(!e)throw new Error("ASSERT: "+t)}function v(e){return e>=48&&e<=57}function b(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function C(e){return"01234567".indexOf(e)>=0}function I(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function w(e){return 10===e||13===e||8232===e||8233===e}function E(e){return 64==e||36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&s.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function x(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&s.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function S(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function B(e){return"eval"===e||"arguments"===e}function k(e){if(u&&S(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function Q(e,t,n,r,o){var i;_("number"==typeof n,"Comment must have valid position"),m.lastCommentStart>=n||(m.lastCommentStart=n,i={type:e,value:t},y.range&&(i.range=[n,r]),y.loc&&(i.loc=o),y.comments.push(i),y.attachComment&&(y.leadingComments.push(i),y.trailingComments.push(i)))}function N(e){var t,n,r,o;for(t=d-e,n={start:{line:A,column:d-f-e}};d<h;)if(r=l.charCodeAt(d),++d,w(r))return y.comments&&(o=l.slice(t+e,d-1),n.end={line:A,column:d-f-1},Q("Line",o,t,d-1,n)),13===r&&10===l.charCodeAt(d)&&++d,++A,void(f=d);y.comments&&(o=l.slice(t+e,d),n.end={line:A,column:d-f},Q("Line",o,t,d,n))}function R(){var e,t,n,r;for(y.comments&&(e=d-2,t={start:{line:A,column:d-f-2}});d<h;)if(w(n=l.charCodeAt(d)))13===n&&10===l.charCodeAt(d+1)&&++d,++A,++d,f=d,d>=h&&K({},a.UnexpectedToken,"ILLEGAL");else if(42===n){if(47===l.charCodeAt(d+1))return++d,++d,void(y.comments&&(r=l.slice(e+2,d-2),t.end={line:A,column:d-f},Q("Block",r,e,d,t)));++d}else++d;K({},a.UnexpectedToken,"ILLEGAL")}function D(){var e,t;for(t=0===d;d<h;)if(I(e=l.charCodeAt(d)))++d;else if(w(e))++d,13===e&&10===l.charCodeAt(d)&&++d,++A,f=d,t=!0;else if(47===e)if(47===(e=l.charCodeAt(d+1)))++d,++d,N(2),t=!0;else{if(42!==e)break;++d,++d,R()}else if(t&&45===e){if(45!==l.charCodeAt(d+1)||62!==l.charCodeAt(d+2))break;d+=3,N(3)}else{if(60!==e)break;if("!--"!==l.slice(d+1,d+4))break;++d,++d,++d,++d,N(4)}}function F(e){var t,n,r,o=0;for(n="u"===e?4:2,t=0;t<n;++t){if(!(d<h&&b(l[d])))return"";r=l[d++],o=16*o+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(o)}function T(){var e,t;for(e=l.charCodeAt(d++),t=String.fromCharCode(e),92===e&&(117!==l.charCodeAt(d)&&K({},a.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&E(e.charCodeAt(0))||K({},a.UnexpectedToken,"ILLEGAL"),t=e);d<h&&x(e=l.charCodeAt(d));)++d,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==l.charCodeAt(d)&&K({},a.UnexpectedToken,"ILLEGAL"),++d,(e=F("u"))&&"\\"!==e&&x(e.charCodeAt(0))||K({},a.UnexpectedToken,"ILLEGAL"),t+=e);return t}function j(){var e,t;for(e=d++;d<h;){if(92===(t=l.charCodeAt(d)))return d=e,T();if(!x(t))break;++d}return l.slice(e,d)}function M(){var e,n,r,o,i=d,s=l.charCodeAt(d),c=l[d];switch(s){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++d,y.tokenize&&(40===s?y.openParenToken=y.tokens.length:123===s&&(y.openCurlyToken=y.tokens.length)),{type:t.Punctuator,value:String.fromCharCode(s),lineNumber:A,lineStart:f,start:i,end:d};default:if(61===(e=l.charCodeAt(d+1)))switch(s){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return d+=2,{type:t.Punctuator,value:String.fromCharCode(s)+String.fromCharCode(e),lineNumber:A,lineStart:f,start:i,end:d};case 33:case 61:return 61===l.charCodeAt(d+=2)&&++d,{type:t.Punctuator,value:l.slice(i,d),lineNumber:A,lineStart:f,start:i,end:d}}}return">>>="===(o=l.substr(d,4))?{type:t.Punctuator,value:o,lineNumber:A,lineStart:f,start:i,end:d+=4}:">>>"===(r=o.substr(0,3))||"<<="===r||">>="===r?{type:t.Punctuator,value:r,lineNumber:A,lineStart:f,start:i,end:d+=3}:c===(n=r.substr(0,2))[1]&&"+-<>&|".indexOf(c)>=0||"=>"===n?{type:t.Punctuator,value:n,lineNumber:A,lineStart:f,start:i,end:d+=2}:"<>=!+-*%&|^/".indexOf(c)>=0?(++d,{type:t.Punctuator,value:c,lineNumber:A,lineStart:f,start:i,end:d}):void K({},a.UnexpectedToken,"ILLEGAL")}function O(){var e,n,r;if(_(v((r=l[d]).charCodeAt(0))||"."===r,"Numeric literal must start with a decimal digit or a decimal point"),n=d,e="","."!==r){if(e=l[d++],r=l[d],"0"===e){if("x"===r||"X"===r)return++d,function(e){for(var n="";d<h&&b(l[d]);)n+=l[d++];return 0===n.length&&K({},a.UnexpectedToken,"ILLEGAL"),E(l.charCodeAt(d))&&K({},a.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt("0x"+n,16),lineNumber:A,lineStart:f,start:e,end:d}}(n);if(C(r))return function(e){for(var n="0"+l[d++];d<h&&C(l[d]);)n+=l[d++];return(E(l.charCodeAt(d))||v(l.charCodeAt(d)))&&K({},a.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseInt(n,8),octal:!0,lineNumber:A,lineStart:f,start:e,end:d}}(n);r&&v(r.charCodeAt(0))&&K({},a.UnexpectedToken,"ILLEGAL")}for(;v(l.charCodeAt(d));)e+=l[d++];r=l[d]}if("."===r){for(e+=l[d++];v(l.charCodeAt(d));)e+=l[d++];r=l[d]}if("e"===r||"E"===r)if(e+=l[d++],"+"!==(r=l[d])&&"-"!==r||(e+=l[d++]),v(l.charCodeAt(d)))for(;v(l.charCodeAt(d));)e+=l[d++];else K({},a.UnexpectedToken,"ILLEGAL");return E(l.charCodeAt(d))&&K({},a.UnexpectedToken,"ILLEGAL"),{type:t.NumericLiteral,value:parseFloat(e),lineNumber:A,lineStart:f,start:n,end:d}}function L(){var e,n,r,o;return p=null,D(),e=d,n=function(){var e,t,n,r;for(_("/"===(e=l[d]),"Regular expression literal must start with a slash"),t=l[d++],n=!1,r=!1;d<h;)if(t+=e=l[d++],"\\"===e)w((e=l[d++]).charCodeAt(0))&&K({},a.UnterminatedRegExp),t+=e;else if(w(e.charCodeAt(0)))K({},a.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}return r||K({},a.UnterminatedRegExp),{value:t.substr(1,t.length-2),literal:t}}(),r=function(){var e,t,n,r;for(t="",n="";d<h&&x((e=l[d]).charCodeAt(0));)if(++d,"\\"===e&&d<h)if("u"===(e=l[d])){if(r=++d,e=F("u"))for(n+=e,t+="\\u";r<d;++r)t+=l[r];else d=r,n+="u",t+="\\u";W({},a.UnexpectedToken,"ILLEGAL")}else t+="\\",W({},a.UnexpectedToken,"ILLEGAL");else n+=e,t+=e;return{value:n,literal:t}}(),o=function(e,t){var n;try{n=new RegExp(e,t)}catch(e){K({},a.InvalidRegExp)}return n}(n.value,r.value),y.tokenize?{type:t.RegularExpression,value:o,lineNumber:A,lineStart:f,start:e,end:d}:{literal:n.literal+r.literal,value:o,start:e,end:d}}function P(){var e,t,n,r;return D(),e=d,t={start:{line:A,column:d-f}},n=L(),t.end={line:A,column:d-f},y.tokenize||(y.tokens.length>0&&(r=y.tokens[y.tokens.length-1]).range[0]===e&&"Punctuator"===r.type&&("/"!==r.value&&"/="!==r.value||y.tokens.pop()),y.tokens.push({type:"RegularExpression",value:n.literal,range:[e,d],loc:t})),n}function q(){var e,n,o;return D(),d>=h?{type:t.EOF,lineNumber:A,lineStart:f,start:d,end:d}:E(e=l.charCodeAt(d))?(n=d,{type:1===(o=92===l.charCodeAt(d)?T():j()).length?t.Identifier:k(o)?t.Keyword:"null"===o?t.NullLiteral:"true"===o||"false"===o?t.BooleanLiteral:t.Identifier,value:o,lineNumber:A,lineStart:f,start:n,end:d}):40===e||41===e||59===e?M():39===e||34===e?function(){var e,n,r,o,i,s,c,u,g="",p=!1;for(c=A,u=f,_("'"===(e=l[d])||'"'===e,"String literal must starts with a quote"),n=d,++d;d<h;){if((r=l[d++])===e){e="";break}if("\\"===r)if((r=l[d++])&&w(r.charCodeAt(0)))++A,"\r"===r&&"\n"===l[d]&&++d,f=d;else switch(r){case"u":case"x":s=d,(i=F(r))?g+=i:(d=s,g+=r);break;case"n":g+="\n";break;case"r":g+="\r";break;case"t":g+="\t";break;case"b":g+="\b";break;case"f":g+="\f";break;case"v":g+="\v";break;default:C(r)?(0!==(o="01234567".indexOf(r))&&(p=!0),d<h&&C(l[d])&&(p=!0,o=8*o+"01234567".indexOf(l[d++]),"0123".indexOf(r)>=0&&d<h&&C(l[d])&&(o=8*o+"01234567".indexOf(l[d++]))),g+=String.fromCharCode(o)):g+=r}else{if(w(r.charCodeAt(0)))break;g+=r}}return""!==e&&K({},a.UnexpectedToken,"ILLEGAL"),{type:t.StringLiteral,value:g,octal:p,startLineNumber:c,startLineStart:u,lineNumber:A,lineStart:f,start:n,end:d}}():46===e?v(l.charCodeAt(d+1))?O():M():v(e)?O():y.tokenize&&47===e?function(){var e,t;if(!(e=y.tokens[y.tokens.length-1]))return P();if("Punctuator"===e.type){if("]"===e.value)return M();if(")"===e.value)return!(t=y.tokens[y.openParenToken-1])||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?M():P();if("}"===e.value){if(y.tokens[y.openCurlyToken-3]&&"Keyword"===y.tokens[y.openCurlyToken-3].type){if(!(t=y.tokens[y.openCurlyToken-4]))return M()}else{if(!y.tokens[y.openCurlyToken-4]||"Keyword"!==y.tokens[y.openCurlyToken-4].type)return M();if(!(t=y.tokens[y.openCurlyToken-5]))return P()}return r.indexOf(t.value)>=0?M():P()}return P()}return"Keyword"===e.type?P():M()}():M()}function J(){var e,r,o;return D(),e={start:{line:A,column:d-f}},r=q(),e.end={line:A,column:d-f},r.type!==t.EOF&&(o=l.slice(r.start,r.end),y.tokens.push({type:n[r.type],value:o,range:[r.start,r.end],loc:e})),r}function U(){var e;return d=(e=p).end,A=e.lineNumber,f=e.lineStart,p=void 0!==y.tokens?J():q(),d=e.end,A=e.lineNumber,f=e.lineStart,e}function G(){var e,t,n;e=d,t=A,n=f,p=void 0!==y.tokens?J():q(),d=e,A=t,f=n}function H(e,t){this.line=e,this.column=t}function Y(e,t,n,r){this.start=new H(e,t),this.end=new H(n,r)}function z(){var e,t,n,r;return e=d,t=A,n=f,D(),r=A!==t,d=e,A=t,f=n,r}function K(e,t){var n,r=Array.prototype.slice.call(arguments,2),o=t.replace(/%(\d)/g,(function(e,t){return _(t<r.length,"Message reference must be in range"),r[t]}));throw"number"==typeof e.lineNumber?((n=new Error("Line "+e.lineNumber+": "+o)).index=e.start,n.lineNumber=e.lineNumber,n.column=e.start-f+1):((n=new Error("Line "+A+": "+o)).index=d,n.lineNumber=A,n.column=d-f+1),n.description=o,n}function W(){try{K.apply(null,arguments)}catch(e){if(!y.errors)throw e;y.errors.push(e)}}function V(e){if(e.type===t.EOF&&K(e,a.UnexpectedEOS),e.type===t.NumericLiteral&&K(e,a.UnexpectedNumber),e.type===t.StringLiteral&&K(e,a.UnexpectedString),e.type===t.Identifier&&K(e,a.UnexpectedIdentifier),e.type===t.Keyword){if(function(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}(e.value))K(e,a.UnexpectedReserved);else if(u&&S(e.value))return void W(e,a.StrictReservedWord);K(e,a.UnexpectedToken,e.value)}K(e,a.UnexpectedToken,e.value)}function $(e){var n=U();n.type===t.Punctuator&&n.value===e||V(n)}function X(e){var n=U();n.type===t.Keyword&&n.value===e||V(n)}function Z(e){return p.type===t.Punctuator&&p.value===e}function ee(e){return p.type===t.Keyword&&p.value===e}function te(){var e;59===l.charCodeAt(d)||Z(";")?U():(e=A,D(),A===e&&(p.type===t.EOF||Z("}")||V(p)))}function ne(e){return e.type===o.Identifier||e.type===o.MemberExpression}function re(e,t){var n,r,o;return n=u,o=p,r=Ce(),t&&u&&B(e[0].name)&&W(t,a.StrictParamName),u=n,g.markEnd(g.createFunctionExpression(null,e,[],r),o)}function oe(){var e,n;return n=p,(e=U()).type===t.StringLiteral||e.type===t.NumericLiteral?(u&&e.octal&&W(e,a.StrictOctalLiteral),g.markEnd(g.createLiteral(e),n)):g.markEnd(g.createIdentifier(e.value),n)}function ie(){var e,n,r,o,i,s;return s=p,(e=p).type===t.Identifier?(r=oe(),"get"!==e.value||Z(":")?"set"!==e.value||Z(":")?($(":"),o=he(),g.markEnd(g.createProperty("init",r,o),s)):(n=oe(),$("("),(e=p).type!==t.Identifier?($(")"),W(e,a.UnexpectedToken,e.value),o=re([])):(i=[me()],$(")"),o=re(i,e)),g.markEnd(g.createProperty("set",n,o),s)):(n=oe(),$("("),$(")"),o=re([]),g.markEnd(g.createProperty("get",n,o),s))):e.type!==t.EOF&&e.type!==t.Punctuator?(n=oe(),$(":"),o=he(),g.markEnd(g.createProperty("init",n,o),s)):void V(e)}function ae(){var e,n,r,s;if(Z("("))return function(){var e;return $("("),e=ge(),$(")"),e}();if(Z("["))return function(){var e,t=[];for(e=p,$("[");!Z("]");)Z(",")?(U(),t.push(null)):(t.push(he()),Z("]")||$(","));return U(),g.markEnd(g.createArrayExpression(t),e)}();if(Z("{"))return function(){var e,t,n,r,s,c=[],l={},d=String;for(s=p,$("{");!Z("}");)t=(e=ie()).key.type===o.Identifier?e.key.name:d(e.key.value),r="init"===e.kind?i.Data:"get"===e.kind?i.Get:i.Set,n="$"+t,Object.prototype.hasOwnProperty.call(l,n)?(l[n]===i.Data?u&&r===i.Data?W({},a.StrictDuplicateProperty):r!==i.Data&&W({},a.AccessorDataProperty):r===i.Data?W({},a.AccessorDataProperty):l[n]&r&&W({},a.AccessorGetSet),l[n]|=r):l[n]=r,c.push(e),Z("}")||$(",");return $("}"),g.markEnd(g.createObjectExpression(c),s)}();if(s=p,(e=p.type)===t.Identifier)r=g.createIdentifier(U().value);else if(e===t.StringLiteral||e===t.NumericLiteral)u&&p.octal&&W(p,a.StrictOctalLiteral),r=g.createLiteral(U());else if(e===t.Keyword){if(ee("function"))return function(){var e,t,n,r,o,i,s,c,l,d=null;return c=p,X("function"),Z("(")||(e=p,d=me(),u?B(e.value)&&W(e,a.StrictFunctionName):B(e.value)?(n=e,r=a.StrictFunctionName):S(e.value)&&(n=e,r=a.StrictReservedWord)),l=(o=Ie(n)).params,t=o.stricted,n=o.firstRestricted,o.message&&(r=o.message),s=u,i=Ce(),u&&n&&K(n,r),u&&t&&W(t,r),u=s,g.markEnd(g.createFunctionExpression(d,l,[],i),c)}();ee("this")?(U(),r=g.createThisExpression()):V(U())}else e===t.BooleanLiteral?((n=U()).value="true"===n.value,r=g.createLiteral(n)):e===t.NullLiteral?((n=U()).value=null,r=g.createLiteral(n)):Z("/")||Z("/=")?(r=g.createLiteral(void 0!==y.tokens?P():L()),G()):V(U());return g.markEnd(r,s)}function se(){var e=[];if($("("),!Z(")"))for(;d<h&&(e.push(he()),!Z(")"));)$(",");return $(")"),e}function ce(){return $("."),function(){var e,n;return n=p,function(e){return e.type===t.Identifier||e.type===t.Keyword||e.type===t.BooleanLiteral||e.type===t.NullLiteral}(e=U())||V(e),g.markEnd(g.createIdentifier(e.value),n)}()}function le(){var e;return $("["),e=ge(),$("]"),e}function ue(){var e,t,n;return n=p,X("new"),e=function(){var e,t,n,r;for(r=p,e=m.allowIn,t=ee("new")?ue():ae(),m.allowIn=e;Z(".")||Z("[");)Z("[")?(n=le(),t=g.createMemberExpression("[",t,n)):(n=ce(),t=g.createMemberExpression(".",t,n)),g.markEnd(t,r);return t}(),t=Z("(")?se():[],g.markEnd(g.createNewExpression(e,t),n)}function de(){var e,n,r=p;return e=function(){var e,t,n,r,o;for(o=p,e=m.allowIn,m.allowIn=!0,t=ee("new")?ue():ae(),m.allowIn=e;;){if(Z("."))r=ce(),t=g.createMemberExpression(".",t,r);else if(Z("("))n=se(),t=g.createCallExpression(t,n);else{if(!Z("["))break;r=le(),t=g.createMemberExpression("[",t,r)}g.markEnd(t,o)}return t}(),p.type===t.Punctuator&&(!Z("++")&&!Z("--")||z()||(u&&e.type===o.Identifier&&B(e.name)&&W({},a.StrictLHSPostfix),ne(e)||W({},a.InvalidLHSInAssignment),n=U(),e=g.markEnd(g.createPostfixExpression(n.value,e),r))),e}function Ae(){var e,n,r;return p.type!==t.Punctuator&&p.type!==t.Keyword?n=de():Z("++")||Z("--")?(r=p,e=U(),n=Ae(),u&&n.type===o.Identifier&&B(n.name)&&W({},a.StrictLHSPrefix),ne(n)||W({},a.InvalidLHSInAssignment),n=g.createUnaryExpression(e.value,n),n=g.markEnd(n,r)):Z("+")||Z("-")||Z("~")||Z("!")?(r=p,e=U(),n=Ae(),n=g.createUnaryExpression(e.value,n),n=g.markEnd(n,r)):ee("delete")||ee("void")||ee("typeof")?(r=p,e=U(),n=Ae(),n=g.createUnaryExpression(e.value,n),n=g.markEnd(n,r),u&&"delete"===n.operator&&n.argument.type===o.Identifier&&W({},a.StrictDelete)):n=de(),n}function fe(e,n){var r=0;if(e.type!==t.Punctuator&&e.type!==t.Keyword)return 0;switch(e.value){case"||":r=1;break;case"&&":r=2;break;case"|":r=3;break;case"^":r=4;break;case"&":r=5;break;case"==":case"!=":case"===":case"!==":r=6;break;case"<":case">":case"<=":case">=":case"instanceof":r=7;break;case"in":r=n?7:0;break;case"<<":case">>":case">>>":r=8;break;case"+":case"-":r=9;break;case"*":case"/":case"%":r=11}return r}function he(){var e,n,r,i,s,c;return e=p,s=p,i=n=function(){var e,t,n,r,o;return o=p,e=function(){var e,t,n,r,o,i,a,s,c,l;if(e=p,c=Ae(),0===(o=fe(r=p,m.allowIn)))return c;for(r.prec=o,U(),t=[e,p],i=[c,r,a=Ae()];(o=fe(p,m.allowIn))>0;){for(;i.length>2&&o<=i[i.length-2].prec;)a=i.pop(),s=i.pop().value,c=i.pop(),n=g.createBinaryExpression(s,c,a),t.pop(),g.markEnd(n,e=t[t.length-1]),i.push(n);(r=U()).prec=o,i.push(r),t.push(p),n=Ae(),i.push(n)}for(n=i[l=i.length-1],t.pop();l>1;)n=g.createBinaryExpression(i[l-1].value,i[l-2],n),l-=2,e=t.pop(),g.markEnd(n,e);return n}(),Z("?")&&(U(),t=m.allowIn,m.allowIn=!0,n=he(),m.allowIn=t,$(":"),r=he(),e=g.createConditionalExpression(e,n,r),g.markEnd(e,o)),e}(),p.type===t.Punctuator&&("="===(c=p.value)||"*="===c||"/="===c||"%="===c||"+="===c||"-="===c||"<<="===c||">>="===c||">>>="===c||"&="===c||"^="===c||"|="===c)&&(ne(n)||W({},a.InvalidLHSInAssignment),u&&n.type===o.Identifier&&B(n.name)&&W(e,a.StrictLHSAssignment),e=U(),r=he(),i=g.markEnd(g.createAssignmentExpression(e.value,n,r),s)),i}function ge(){var e,t=p;if(e=he(),Z(",")){for(e=g.createSequenceExpression([e]);d<h&&Z(",");)U(),e.expressions.push(he());g.markEnd(e,t)}return e}function pe(){var e,t;return t=p,$("{"),e=function(){for(var e,t=[];d<h&&!Z("}")&&void 0!==(e=Ee());)t.push(e);return t}(),$("}"),g.markEnd(g.createBlockStatement(e),t)}function me(){var e,n;return n=p,(e=U()).type!==t.Identifier&&V(e),g.markEnd(g.createIdentifier(e.value),n)}function ye(e){var t,n,r=null;return n=p,t=me(),u&&B(t.name)&&W({},a.StrictVarName),"const"===e?($("="),r=he()):Z("=")&&(U(),r=he()),g.markEnd(g.createVariableDeclarator(t,r),n)}function _e(e){var t=[];do{if(t.push(ye(e)),!Z(","))break;U()}while(d<h);return t}function ve(){var e,t,n,r=[];for(n=p,ee("default")?(U(),e=null):(X("case"),e=ge()),$(":");d<h&&!(Z("}")||ee("default")||ee("case"));)t=be(),r.push(t);return g.markEnd(g.createSwitchCase(e,r),n)}function be(){var e,n,r,i,s,c,A,f,y,_,v=p.type;if(v===t.EOF&&V(p),v===t.Punctuator&&"{"===p.value)return pe();if(i=p,v===t.Punctuator)switch(p.value){case";":return g.markEnd(($(";"),g.createEmptyStatement()),i);case"(":return g.markEnd(function(){var e=ge();return te(),g.createExpressionStatement(e)}(),i)}if(v===t.Keyword)switch(p.value){case"break":return g.markEnd((_=null,X("break"),59===l.charCodeAt(d)?(U(),m.inIteration||m.inSwitch||K({},a.IllegalBreak),g.createBreakStatement(null)):z()?(m.inIteration||m.inSwitch||K({},a.IllegalBreak),g.createBreakStatement(null)):(p.type===t.Identifier&&(_=me(),Object.prototype.hasOwnProperty.call(m.labelSet,"$"+_.name)||K({},a.UnknownLabel,_.name)),te(),null!==_||m.inIteration||m.inSwitch||K({},a.IllegalBreak),g.createBreakStatement(_))),i);case"continue":return g.markEnd(function(){var e=null;return X("continue"),59===l.charCodeAt(d)?(U(),m.inIteration||K({},a.IllegalContinue),g.createContinueStatement(null)):z()?(m.inIteration||K({},a.IllegalContinue),g.createContinueStatement(null)):(p.type===t.Identifier&&(e=me(),Object.prototype.hasOwnProperty.call(m.labelSet,"$"+e.name)||K({},a.UnknownLabel,e.name)),te(),null!==e||m.inIteration||K({},a.IllegalContinue),g.createContinueStatement(e))}(),i);case"debugger":return g.markEnd((X("debugger"),te(),g.createDebuggerStatement()),i);case"do":return g.markEnd((X("do"),y=m.inIteration,m.inIteration=!0,A=be(),m.inIteration=y,X("while"),$("("),f=ge(),$(")"),Z(";")&&U(),g.createDoWhileStatement(A,f)),i);case"for":return g.markEnd(function(){var e,t,n,r,o,i,s;return e=t=n=null,X("for"),$("("),Z(";")?U():(ee("var")||ee("let")?(m.allowIn=!1,e=function(){var e,t,n;return n=p,e=U(),t=_e(),g.markEnd(g.createVariableDeclaration(t,e.value),n)}(),m.allowIn=!0,1===e.declarations.length&&ee("in")&&(U(),r=e,o=ge(),e=null)):(m.allowIn=!1,e=ge(),m.allowIn=!0,ee("in")&&(ne(e)||W({},a.InvalidLHSInForIn),U(),r=e,o=ge(),e=null)),void 0===r&&$(";")),void 0===r&&(Z(";")||(t=ge()),$(";"),Z(")")||(n=ge())),$(")"),s=m.inIteration,m.inIteration=!0,i=be(),m.inIteration=s,void 0===r?g.createForStatement(e,t,n,i):g.createForInStatement(r,o,i)}(),i);case"function":return g.markEnd(we(),i);case"if":return g.markEnd(function(){var e,t,n;return X("if"),$("("),e=ge(),$(")"),t=be(),ee("else")?(U(),n=be()):n=null,g.createIfStatement(e,t,n)}(),i);case"return":return g.markEnd((c=null,X("return"),m.inFunctionBody||W({},a.IllegalReturn),32===l.charCodeAt(d)&&E(l.charCodeAt(d+1))?(c=ge(),te(),g.createReturnStatement(c)):z()?g.createReturnStatement(null):(Z(";")||Z("}")||p.type===t.EOF||(c=ge()),te(),g.createReturnStatement(c))),i);case"switch":return g.markEnd(function(){var e,t,n,r,o;if(X("switch"),$("("),e=ge(),$(")"),$("{"),t=[],Z("}"))return U(),g.createSwitchStatement(e,t);for(r=m.inSwitch,m.inSwitch=!0,o=!1;d<h&&!Z("}");)null===(n=ve()).test&&(o&&K({},a.MultipleDefaultsInSwitch),o=!0),t.push(n);return m.inSwitch=r,$("}"),g.createSwitchStatement(e,t)}(),i);case"throw":return g.markEnd(function(){var e;return X("throw"),z()&&K({},a.NewlineAfterThrow),e=ge(),te(),g.createThrowStatement(e)}(),i);case"try":return g.markEnd(function(){var e,t,n,r,o=[],i=null;return X("try"),e=pe(),ee("catch")&&o.push((r=p,X("catch"),$("("),Z(")")&&V(p),t=me(),u&&B(t.name)&&W({},a.StrictCatchVariable),$(")"),n=pe(),g.markEnd(g.createCatchClause(t,n),r))),ee("finally")&&(U(),i=pe()),0!==o.length||i||K({},a.NoCatchOrFinally),g.createTryStatement(e,[],o,i)}(),i);case"var":return g.markEnd((X("var"),s=_e(),te(),g.createVariableDeclaration(s,"var")),i);case"while":return g.markEnd(function(){var e,t,n;return X("while"),$("("),e=ge(),$(")"),n=m.inIteration,m.inIteration=!0,t=be(),m.inIteration=n,g.createWhileStatement(e,t)}(),i);case"with":return g.markEnd(function(){var e,t;return u&&(D(),W({},a.StrictModeWith)),X("with"),$("("),e=ge(),$(")"),t=be(),g.createWithStatement(e,t)}(),i)}return(e=ge()).type===o.Identifier&&Z(":")?(U(),r="$"+e.name,Object.prototype.hasOwnProperty.call(m.labelSet,r)&&K({},a.Redeclaration,"Label",e.name),m.labelSet[r]=!0,n=be(),delete m.labelSet[r],g.markEnd(g.createLabeledStatement(e,n),i)):(te(),g.markEnd(g.createExpressionStatement(e),i))}function Ce(){var e,n,r,i,s,c,A,f,y=[];for(f=p,$("{");d<h&&p.type===t.StringLiteral&&(n=p,e=Ee(),y.push(e),e.expression.type===o.Literal);)"use strict"===l.slice(n.start+1,n.end-1)?(u=!0,r&&W(r,a.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(i=m.labelSet,s=m.inIteration,c=m.inSwitch,A=m.inFunctionBody,m.labelSet={},m.inIteration=!1,m.inSwitch=!1,m.inFunctionBody=!0;d<h&&!Z("}")&&void 0!==(e=Ee());)y.push(e);return $("}"),m.labelSet=i,m.inIteration=s,m.inSwitch=c,m.inFunctionBody=A,g.markEnd(g.createBlockStatement(y),f)}function Ie(e){var t,n,r,o,i,s,c=[];if($("("),!Z(")"))for(o={};d<h&&(n=p,t=me(),i="$"+n.value,u?(B(n.value)&&(r=n,s=a.StrictParamName),Object.prototype.hasOwnProperty.call(o,i)&&(r=n,s=a.StrictParamDupe)):e||(B(n.value)?(e=n,s=a.StrictParamName):S(n.value)?(e=n,s=a.StrictReservedWord):Object.prototype.hasOwnProperty.call(o,i)&&(e=n,s=a.StrictParamDupe)),c.push(t),o[i]=!0,!Z(")"));)$(",");return $(")"),{params:c,stricted:r,firstRestricted:e,message:s}}function we(){var e,t,n,r,o,i,s,c,l,d;return l=p,X("function"),n=p,e=me(),u?B(n.value)&&W(n,a.StrictFunctionName):B(n.value)?(i=n,s=a.StrictFunctionName):S(n.value)&&(i=n,s=a.StrictReservedWord),d=(o=Ie(i)).params,r=o.stricted,i=o.firstRestricted,o.message&&(s=o.message),c=u,t=Ce(),u&&i&&K(i,s),u&&r&&W(r,s),u=c,g.markEnd(g.createFunctionDeclaration(e,d,[],t),l)}function Ee(){if(p.type===t.Keyword)switch(p.value){case"const":case"let":return r=p,X(e=p.value),n=_e(e),te(),g.markEnd(g.createVariableDeclaration(n,e),r);case"function":return we();default:return be()}var e,n,r;if(p.type!==t.EOF)return be()}function xe(){var e,t,n,r=[];for(e=0;e<y.tokens.length;++e)n={type:(t=y.tokens[e]).type,value:t.value},y.range&&(n.range=t.range),y.loc&&(n.loc=t.loc),r.push(n);y.tokens=r}(n={})[(t={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9}).BooleanLiteral]="Boolean",n[t.EOF]="<end>",n[t.Identifier]="Identifier",n[t.Keyword]="Keyword",n[t.NullLiteral]="Null",n[t.NumericLiteral]="Numeric",n[t.Punctuator]="Punctuator",n[t.StringLiteral]="String",n[t.RegularExpression]="RegularExpression",r=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],o={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},i={Data:1,Get:2,Set:4},a={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},s={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},c={name:"SyntaxTree",processComment:function(e){var t,n;if(!(e.type===o.Program&&e.body.length>0)){for(y.trailingComments.length>0?y.trailingComments[0].range[0]>=e.range[1]?(n=y.trailingComments,y.trailingComments=[]):y.trailingComments.length=0:y.bottomRightStack.length>0&&y.bottomRightStack[y.bottomRightStack.length-1].trailingComments&&y.bottomRightStack[y.bottomRightStack.length-1].trailingComments[0].range[0]>=e.range[1]&&(n=y.bottomRightStack[y.bottomRightStack.length-1].trailingComments,delete y.bottomRightStack[y.bottomRightStack.length-1].trailingComments);y.bottomRightStack.length>0&&y.bottomRightStack[y.bottomRightStack.length-1].range[0]>=e.range[0];)t=y.bottomRightStack.pop();t?t.leadingComments&&t.leadingComments[t.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=t.leadingComments,delete t.leadingComments):y.leadingComments.length>0&&y.leadingComments[y.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=y.leadingComments,y.leadingComments=[]),n&&(e.trailingComments=n),y.bottomRightStack.push(e)}},markEnd:function(e,t){return y.range&&(e.range=[t.start,d]),y.loc&&(e.loc=new Y(void 0===t.startLineNumber?t.lineNumber:t.startLineNumber,t.start-(void 0===t.startLineStart?t.lineStart:t.startLineStart),A,d-f),this.postProcess(e)),y.attachComment&&this.processComment(e),e},postProcess:function(e){return y.source&&(e.loc.source=y.source),e},createArrayExpression:function(e){return{type:o.ArrayExpression,elements:e}},createAssignmentExpression:function(e,t,n){return{type:o.AssignmentExpression,operator:e,left:t,right:n}},createBinaryExpression:function(e,t,n){return{type:"||"===e||"&&"===e?o.LogicalExpression:o.BinaryExpression,operator:e,left:t,right:n}},createBlockStatement:function(e){return{type:o.BlockStatement,body:e}},createBreakStatement:function(e){return{type:o.BreakStatement,label:e}},createCallExpression:function(e,t){return{type:o.CallExpression,callee:e,arguments:t}},createCatchClause:function(e,t){return{type:o.CatchClause,param:e,body:t}},createConditionalExpression:function(e,t,n){return{type:o.ConditionalExpression,test:e,consequent:t,alternate:n}},createContinueStatement:function(e){return{type:o.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:o.DebuggerStatement}},createDoWhileStatement:function(e,t){return{type:o.DoWhileStatement,body:e,test:t}},createEmptyStatement:function(){return{type:o.EmptyStatement}},createExpressionStatement:function(e){return{type:o.ExpressionStatement,expression:e}},createForStatement:function(e,t,n,r){return{type:o.ForStatement,init:e,test:t,update:n,body:r}},createForInStatement:function(e,t,n){return{type:o.ForInStatement,left:e,right:t,body:n,each:!1}},createFunctionDeclaration:function(e,t,n,r){return{type:o.FunctionDeclaration,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(e,t,n,r){return{type:o.FunctionExpression,id:e,params:t,defaults:n,body:r,rest:null,generator:!1,expression:!1}},createIdentifier:function(e){return{type:o.Identifier,name:e}},createIfStatement:function(e,t,n){return{type:o.IfStatement,test:e,consequent:t,alternate:n}},createLabeledStatement:function(e,t){return{type:o.LabeledStatement,label:e,body:t}},createLiteral:function(e){return{type:o.Literal,value:e.value,raw:l.slice(e.start,e.end)}},createMemberExpression:function(e,t,n){return{type:o.MemberExpression,computed:"["===e,object:t,property:n}},createNewExpression:function(e,t){return{type:o.NewExpression,callee:e,arguments:t}},createObjectExpression:function(e){return{type:o.ObjectExpression,properties:e}},createPostfixExpression:function(e,t){return{type:o.UpdateExpression,operator:e,argument:t,prefix:!1}},createProgram:function(e){return{type:o.Program,body:e}},createProperty:function(e,t,n){return{type:o.Property,key:t,value:n,kind:e}},createReturnStatement:function(e){return{type:o.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:o.SequenceExpression,expressions:e}},createSwitchCase:function(e,t){return{type:o.SwitchCase,test:e,consequent:t}},createSwitchStatement:function(e,t){return{type:o.SwitchStatement,discriminant:e,cases:t}},createThisExpression:function(){return{type:o.ThisExpression}},createThrowStatement:function(e){return{type:o.ThrowStatement,argument:e}},createTryStatement:function(e,t,n,r){return{type:o.TryStatement,block:e,guardedHandlers:t,handlers:n,finalizer:r}},createUnaryExpression:function(e,t){return"++"===e||"--"===e?{type:o.UpdateExpression,operator:e,argument:t,prefix:!0}:{type:o.UnaryExpression,operator:e,argument:t,prefix:!0}},createVariableDeclaration:function(e,t){return{type:o.VariableDeclaration,declarations:e,kind:t}},createVariableDeclarator:function(e,t){return{type:o.VariableDeclarator,id:e,init:t}},createWhileStatement:function(e,t){return{type:o.WhileStatement,test:e,body:t}},createWithStatement:function(e,t){return{type:o.WithStatement,object:e,body:t}}},e.version="1.2.2",e.tokenize=function(e,n){var r;"string"==typeof e||e instanceof String||(e=String(e)),g=c,d=0,A=(l=e).length>0?1:0,f=0,h=l.length,p=null,m={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},y={},(n=n||{}).tokens=!0,y.tokens=[],y.tokenize=!0,y.openParenToken=-1,y.openCurlyToken=-1,y.range="boolean"==typeof n.range&&n.range,y.loc="boolean"==typeof n.loc&&n.loc,"boolean"==typeof n.comment&&n.comment&&(y.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(y.errors=[]);try{if(G(),p.type===t.EOF)return y.tokens;for(U();p.type!==t.EOF;)try{U()}catch(e){if(y.errors){y.errors.push(e);break}throw e}xe(),r=y.tokens,void 0!==y.comments&&(r.comments=y.comments),void 0!==y.errors&&(r.errors=y.errors)}catch(e){throw e}finally{y={}}return r},e.parse=function(e,n){var r,i,s,_;i=String,"string"==typeof e||e instanceof String||(e=i(e)),g=c,d=0,A=(l=e).length>0?1:0,f=0,h=l.length,p=null,m={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},y={},void 0!==n&&(y.range="boolean"==typeof n.range&&n.range,y.loc="boolean"==typeof n.loc&&n.loc,y.attachComment="boolean"==typeof n.attachComment&&n.attachComment,y.loc&&null!=n.source&&(y.source=i(n.source)),"boolean"==typeof n.tokens&&n.tokens&&(y.tokens=[]),"boolean"==typeof n.comment&&n.comment&&(y.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(y.errors=[]),y.attachComment&&(y.range=!0,y.comments=[],y.bottomRightStack=[],y.trailingComments=[],y.leadingComments=[]));try{D(),G(),_=p,u=!1,s=function(){for(var e,n,r,i=[];d<h&&(n=p).type===t.StringLiteral&&(e=Ee(),i.push(e),e.expression.type===o.Literal);)"use strict"===l.slice(n.start+1,n.end-1)?(u=!0,r&&W(r,a.StrictOctalLiteral)):!r&&n.octal&&(r=n);for(;d<h&&void 0!==(e=Ee());)i.push(e);return i}(),r=g.markEnd(g.createProgram(s),_),void 0!==y.comments&&(r.comments=y.comments),void 0!==y.tokens&&(xe(),r.tokens=y.tokens),void 0!==y.errors&&(r.errors=y.errors)}catch(e){throw e}finally{y={}}return r},e.Syntax=function(){var e,t={};for(e in"function"==typeof Object.create&&(t=Object.create(null)),o)o.hasOwnProperty(e)&&(t[e]=o[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()},r(void 0!==n?n:this.esprima={})},{}],1:[function(e,t,n){(function(r){var o=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSON_PATH:3,DOLLAR:4,PATH_COMPONENTS:5,LEADING_CHILD_MEMBER_EXPRESSION:6,PATH_COMPONENT:7,MEMBER_COMPONENT:8,SUBSCRIPT_COMPONENT:9,CHILD_MEMBER_COMPONENT:10,DESCENDANT_MEMBER_COMPONENT:11,DOT:12,MEMBER_EXPRESSION:13,DOT_DOT:14,STAR:15,IDENTIFIER:16,SCRIPT_EXPRESSION:17,INTEGER:18,END:19,CHILD_SUBSCRIPT_COMPONENT:20,DESCENDANT_SUBSCRIPT_COMPONENT:21,"[":22,SUBSCRIPT:23,"]":24,SUBSCRIPT_EXPRESSION:25,SUBSCRIPT_EXPRESSION_LIST:26,SUBSCRIPT_EXPRESSION_LISTABLE:27,",":28,STRING_LITERAL:29,ARRAY_SLICE:30,FILTER_EXPRESSION:31,QQ_STRING:32,Q_STRING:33,$accept:0,$end:1},terminals_:{2:"error",4:"DOLLAR",12:"DOT",14:"DOT_DOT",15:"STAR",16:"IDENTIFIER",17:"SCRIPT_EXPRESSION",18:"INTEGER",19:"END",22:"[",24:"]",28:",",30:"ARRAY_SLICE",31:"FILTER_EXPRESSION",32:"QQ_STRING",33:"Q_STRING"},productions_:[0,[3,1],[3,2],[3,1],[3,2],[5,1],[5,2],[7,1],[7,1],[8,1],[8,1],[10,2],[6,1],[11,2],[13,1],[13,1],[13,1],[13,1],[13,1],[9,1],[9,1],[20,3],[21,4],[23,1],[23,1],[26,1],[26,3],[27,1],[27,1],[27,1],[25,1],[25,1],[25,1],[29,1],[29,1]],performAction:function(e,n,r,o,i,a,s){o.ast||(o.ast=t,t.initialize());var c=a.length-1;switch(i){case 1:return o.ast.set({expression:{type:"root",value:a[c]}}),o.ast.unshift(),o.ast.yield();case 2:return o.ast.set({expression:{type:"root",value:a[c-1]}}),o.ast.unshift(),o.ast.yield();case 3:return o.ast.unshift(),o.ast.yield();case 4:return o.ast.set({operation:"member",scope:"child",expression:{type:"identifier",value:a[c-1]}}),o.ast.unshift(),o.ast.yield();case 5:case 6:case 11:case 13:case 18:case 21:case 22:case 23:break;case 7:o.ast.set({operation:"member"}),o.ast.push();break;case 8:o.ast.set({operation:"subscript"}),o.ast.push();break;case 9:case 19:o.ast.set({scope:"child"});break;case 10:case 20:o.ast.set({scope:"descendant"});break;case 12:o.ast.set({scope:"child",operation:"member"});break;case 14:o.ast.set({expression:{type:"wildcard",value:a[c]}});break;case 15:o.ast.set({expression:{type:"identifier",value:a[c]}});break;case 16:o.ast.set({expression:{type:"script_expression",value:a[c]}});break;case 17:o.ast.set({expression:{type:"numeric_literal",value:parseInt(a[c])}});break;case 24:a[c].length>1?o.ast.set({expression:{type:"union",value:a[c]}}):this.$=a[c];break;case 25:this.$=[a[c]];break;case 26:this.$=a[c-2].concat(a[c]);break;case 27:this.$={expression:{type:"numeric_literal",value:parseInt(a[c])}},o.ast.set(this.$);break;case 28:this.$={expression:{type:"string_literal",value:a[c]}},o.ast.set(this.$);break;case 29:this.$={expression:{type:"slice",value:a[c]}},o.ast.set(this.$);break;case 30:this.$={expression:{type:"wildcard",value:a[c]}},o.ast.set(this.$);break;case 31:this.$={expression:{type:"script_expression",value:a[c]}},o.ast.set(this.$);break;case 32:this.$={expression:{type:"filter_expression",value:a[c]}},o.ast.set(this.$);break;case 33:case 34:this.$=a[c]}},table:[{3:1,4:[1,2],6:3,13:4,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{1:[3]},{1:[2,1],5:10,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,3],5:21,7:11,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,12],12:[2,12],14:[2,12],22:[2,12]},{1:[2,14],12:[2,14],14:[2,14],22:[2,14]},{1:[2,15],12:[2,15],14:[2,15],22:[2,15]},{1:[2,16],12:[2,16],14:[2,16],22:[2,16]},{1:[2,17],12:[2,17],14:[2,17],22:[2,17]},{1:[2,18],12:[2,18],14:[2,18],22:[2,18]},{1:[2,2],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,5],12:[2,5],14:[2,5],22:[2,5]},{1:[2,7],12:[2,7],14:[2,7],22:[2,7]},{1:[2,8],12:[2,8],14:[2,8],22:[2,8]},{1:[2,9],12:[2,9],14:[2,9],22:[2,9]},{1:[2,10],12:[2,10],14:[2,10],22:[2,10]},{1:[2,19],12:[2,19],14:[2,19],22:[2,19]},{1:[2,20],12:[2,20],14:[2,20],22:[2,20]},{13:23,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9]},{13:24,15:[1,5],16:[1,6],17:[1,7],18:[1,8],19:[1,9],22:[1,25]},{15:[1,29],17:[1,30],18:[1,33],23:26,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{1:[2,4],7:22,8:12,9:13,10:14,11:15,12:[1,18],14:[1,19],20:16,21:17,22:[1,20]},{1:[2,6],12:[2,6],14:[2,6],22:[2,6]},{1:[2,11],12:[2,11],14:[2,11],22:[2,11]},{1:[2,13],12:[2,13],14:[2,13],22:[2,13]},{15:[1,29],17:[1,30],18:[1,33],23:38,25:27,26:28,27:32,29:34,30:[1,35],31:[1,31],32:[1,36],33:[1,37]},{24:[1,39]},{24:[2,23]},{24:[2,24],28:[1,40]},{24:[2,30]},{24:[2,31]},{24:[2,32]},{24:[2,25],28:[2,25]},{24:[2,27],28:[2,27]},{24:[2,28],28:[2,28]},{24:[2,29],28:[2,29]},{24:[2,33],28:[2,33]},{24:[2,34],28:[2,34]},{24:[1,41]},{1:[2,21],12:[2,21],14:[2,21],22:[2,21]},{18:[1,33],27:42,29:34,30:[1,35],32:[1,36],33:[1,37]},{1:[2,22],12:[2,22],14:[2,22],22:[2,22]},{24:[2,26],28:[2,26]}],defaultActions:{27:[2,23],29:[2,30],30:[2,31],31:[2,32]},parseError:function(e,t){if(!t.recoverable)throw new Error(e);this.trace(e)},parse:function(e){var t=this,n=[0],r=[null],o=[],i=this.table,a="",s=0,c=0,l=o.slice.call(arguments,1);this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;o.push(u);var d=this.lexer.options&&this.lexer.options.ranges;function A(){var e;return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}this.parseError="function"==typeof this.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(var f,h,g,p,m,y,_,v={};;){if(this.defaultActions[h=n[n.length-1]]?g=this.defaultActions[h]:(null==f&&(f=A()),g=i[h]&&i[h][f]),void 0===g||!g.length||!g[0]){var b;for(m in _=[],i[h])this.terminals_[m]&&m>2&&_.push("'"+this.terminals_[m]+"'");b=this.lexer.showPosition?"Parse error on line "+(s+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+_.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(s+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:_})}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+h+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,c=this.lexer.yyleng,a=this.lexer.yytext,s=this.lexer.yylineno,u=this.lexer.yylloc;break;case 2:if(v.$=r[r.length-(y=this.productions_[g[1]][1])],v._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},d&&(v._$.range=[o[o.length-(y||1)].range[0],o[o.length-1].range[1]]),void 0!==(p=this.performAction.apply(v,[a,c,s,this.yy,g[1],r,o].concat(l))))return p;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(v.$),o.push(v._$),n.push(i[n[n.length-2]][n[n.length-1]]);break;case 3:return!0}}return!0}},t={initialize:function(){this._nodes=[],this._node={},this._stash=[]},set:function(e){for(var t in e)this._node[t]=e[t];return this._node},node:function(e){return arguments.length&&(this._node=e),this._node},push:function(){this._nodes.push(this._node),this._node={}},unshift:function(){this._nodes.unshift(this._node),this._node={}},yield:function(){var e=this._nodes;return this.initialize(),e}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var i in o)this[i]=o[i];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),i=0;i<o.length;i++)if((n=this._input.match(this.rules[o[i]]))&&(!t||n[0].length>t[0].length)){if(t=n,r=i,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,o[i])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:return 4;case 1:return 14;case 2:return 12;case 3:return 15;case 4:return 16;case 5:return 22;case 6:return 24;case 7:return 28;case 8:return 30;case 9:return 18;case 10:return t.yytext=t.yytext.substr(1,t.yyleng-2),32;case 11:return t.yytext=t.yytext.substr(1,t.yyleng-2),33;case 12:return 17;case 13:return 31}},rules:[/^(?:\$)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:\*)/,/^(?:[a-zA-Z_]+[a-zA-Z0-9_]*)/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?:((-?(?:0|[1-9][0-9]*)))?\:((-?(?:0|[1-9][0-9]*)))?(\:((-?(?:0|[1-9][0-9]*)))?)?)/,/^(?:(-?(?:0|[1-9][0-9]*)))/,/^(?:"(?:\\["bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^"\\])*")/,/^(?:'(?:\\['bfnrt/\\]|\\u[a-fA-F0-9]{4}|[^'\\])*')/,/^(?:\(.+?\)(?=\]))/,/^(?:\?\(.+?\)(?=\]))/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};return e}();function r(){this.yy={}}return e.lexer=n,r.prototype=e,e.Parser=r,new r}();void 0!==e&&void 0!==n&&(n.parser=o,n.Parser=o.Parser,n.parse=function(){return o.parse.apply(o,arguments)},n.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),r.exit(1));var o=e("fs").readFileSync(e("path").normalize(t[1]),"utf8");return n.parser.parse(o)},void 0!==t&&e.main===t&&n.main(r.argv.slice(1)))}).call(this,e("_process"))},{_process:14,fs:12,path:13}],2:[function(e,t,n){t.exports={identifier:"[a-zA-Z_]+[a-zA-Z0-9_]*",integer:"-?(?:0|[1-9][0-9]*)",qq_string:'"(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^"\\\\])*"',q_string:"'(?:\\\\['bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^'\\\\])*'"}},{}],3:[function(e,t,n){var r=e("./dict"),o=e("fs"),i={lex:{macros:{esc:"\\\\",int:r.integer},rules:[["\\$","return 'DOLLAR'"],["\\.\\.","return 'DOT_DOT'"],["\\.","return 'DOT'"],["\\*","return 'STAR'"],[r.identifier,"return 'IDENTIFIER'"],["\\[","return '['"],["\\]","return ']'"],[",","return ','"],["({int})?\\:({int})?(\\:({int})?)?","return 'ARRAY_SLICE'"],["{int}","return 'INTEGER'"],[r.qq_string,"yytext = yytext.substr(1,yyleng-2); return 'QQ_STRING';"],[r.q_string,"yytext = yytext.substr(1,yyleng-2); return 'Q_STRING';"],["\\(.+?\\)(?=\\])","return 'SCRIPT_EXPRESSION'"],["\\?\\(.+?\\)(?=\\])","return 'FILTER_EXPRESSION'"]]},start:"JSON_PATH",bnf:{JSON_PATH:[["DOLLAR",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["DOLLAR PATH_COMPONENTS",'yy.ast.set({ expression: { type: "root", value: $1 } }); yy.ast.unshift(); return yy.ast.yield()'],["LEADING_CHILD_MEMBER_EXPRESSION","yy.ast.unshift(); return yy.ast.yield()"],["LEADING_CHILD_MEMBER_EXPRESSION PATH_COMPONENTS",'yy.ast.set({ operation: "member", scope: "child", expression: { type: "identifier", value: $1 }}); yy.ast.unshift(); return yy.ast.yield()']],PATH_COMPONENTS:[["PATH_COMPONENT",""],["PATH_COMPONENTS PATH_COMPONENT",""]],PATH_COMPONENT:[["MEMBER_COMPONENT",'yy.ast.set({ operation: "member" }); yy.ast.push()'],["SUBSCRIPT_COMPONENT",'yy.ast.set({ operation: "subscript" }); yy.ast.push() ']],MEMBER_COMPONENT:[["CHILD_MEMBER_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_MEMBER_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_MEMBER_COMPONENT:[["DOT MEMBER_EXPRESSION",""]],LEADING_CHILD_MEMBER_EXPRESSION:[["MEMBER_EXPRESSION",'yy.ast.set({ scope: "child", operation: "member" })']],DESCENDANT_MEMBER_COMPONENT:[["DOT_DOT MEMBER_EXPRESSION",""]],MEMBER_EXPRESSION:[["STAR",'yy.ast.set({ expression: { type: "wildcard", value: $1 } })'],["IDENTIFIER",'yy.ast.set({ expression: { type: "identifier", value: $1 } })'],["SCRIPT_EXPRESSION",'yy.ast.set({ expression: { type: "script_expression", value: $1 } })'],["INTEGER",'yy.ast.set({ expression: { type: "numeric_literal", value: parseInt($1) } })'],["END",""]],SUBSCRIPT_COMPONENT:[["CHILD_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "child" })'],["DESCENDANT_SUBSCRIPT_COMPONENT",'yy.ast.set({ scope: "descendant" })']],CHILD_SUBSCRIPT_COMPONENT:[["[ SUBSCRIPT ]",""]],DESCENDANT_SUBSCRIPT_COMPONENT:[["DOT_DOT [ SUBSCRIPT ]",""]],SUBSCRIPT:[["SUBSCRIPT_EXPRESSION",""],["SUBSCRIPT_EXPRESSION_LIST",'$1.length > 1? yy.ast.set({ expression: { type: "union", value: $1 } }) : $$ = $1']],SUBSCRIPT_EXPRESSION_LIST:[["SUBSCRIPT_EXPRESSION_LISTABLE","$$ = [$1]"],["SUBSCRIPT_EXPRESSION_LIST , SUBSCRIPT_EXPRESSION_LISTABLE","$$ = $1.concat($3)"]],SUBSCRIPT_EXPRESSION_LISTABLE:[["INTEGER",'$$ = { expression: { type: "numeric_literal", value: parseInt($1) } }; yy.ast.set($$)'],["STRING_LITERAL",'$$ = { expression: { type: "string_literal", value: $1 } }; yy.ast.set($$)'],["ARRAY_SLICE",'$$ = { expression: { type: "slice", value: $1 } }; yy.ast.set($$)']],SUBSCRIPT_EXPRESSION:[["STAR",'$$ = { expression: { type: "wildcard", value: $1 } }; yy.ast.set($$)'],["SCRIPT_EXPRESSION",'$$ = { expression: { type: "script_expression", value: $1 } }; yy.ast.set($$)'],["FILTER_EXPRESSION",'$$ = { expression: { type: "filter_expression", value: $1 } }; yy.ast.set($$)']],STRING_LITERAL:[["QQ_STRING","$$ = $1"],["Q_STRING","$$ = $1"]]}};o.readFileSync&&(i.moduleInclude=o.readFileSync(e.resolve("../include/module.js")),i.actionInclude=o.readFileSync(e.resolve("../include/action.js"))),t.exports=i},{"./dict":2,fs:12}],4:[function(e,t,n){var r=e("./aesprim"),o=e("./slice"),i=e("static-eval"),a=e("underscore").uniq,s=function(){return this.initialize.apply(this,arguments)};function c(t,n,o){var i=e("./index"),a=f(r.parse(n).body[0].expression,{"@":t.value}),s=o.replace(/\{\{\s*value\s*\}\}/g,a),c=i.nodes(t.value,s);return c.forEach((function(e){e.path=t.path.concat(e.path.slice(1))})),c}function l(e){return Array.isArray(e)}function u(e){return function(t,n,r,o){var i=t.value,a=t.path,s=[],c=function(t,i){var a;l(t)?(t.forEach((function(e,t){s.length>=o||r(t,e,n)&&s.push({path:i.concat(t),value:e})})),t.forEach((function(t,n){s.length>=o||e&&c(t,i.concat(n))}))):(a=t)&&!(a instanceof Array)&&a instanceof Object&&(this.keys(t).forEach((function(e){s.length>=o||r(e,t[e],n)&&s.push({path:i.concat(e),value:t[e]})})),this.keys(t).forEach((function(n){s.length>=o||e&&c(t[n],i.concat(n))})))}.bind(this);return c(i,a),s}}function d(e){return function(t,n,r){return this.descend(n,t.expression.value,e,r)}}function A(e){return function(t,n,r){return this.traverse(n,t.expression.value,e,r)}}function f(){try{return i.apply(this,arguments)}catch(e){}}function h(e){return e=e.filter((function(e){return e})),a(e,(function(e){return e.path.map((function(e){return String(e).replace("-","--")})).join("-")}))}function g(e){var t=String(e);return t.match(/^-?[0-9]+$/)?parseInt(t):null}s.prototype.initialize=function(){this.traverse=u(!0),this.descend=u()},s.prototype.keys=Object.keys,s.prototype.resolve=function(e){var t=[e.operation,e.scope,e.expression.type].join("-"),n=this._fns[t];if(!n)throw new Error("couldn't resolve key: "+t);return n.bind(this)},s.prototype.register=function(e,t){if(!t instanceof Function)throw new Error("handler must be a function");this._fns[e]=t},s.prototype._fns={"member-child-identifier":function(e,t){var n=e.expression.value,r=t.value;if(r instanceof Object&&n in r)return[{value:r[n],path:t.path.concat(n)}]},"member-descendant-identifier":A((function(e,t,n){return e==n})),"subscript-child-numeric_literal":d((function(e,t,n){return e===n})),"member-child-numeric_literal":d((function(e,t,n){return String(e)===String(n)})),"subscript-descendant-numeric_literal":A((function(e,t,n){return e===n})),"member-child-wildcard":d((function(){return!0})),"member-descendant-wildcard":A((function(){return!0})),"subscript-descendant-wildcard":A((function(){return!0})),"subscript-child-wildcard":d((function(){return!0})),"subscript-child-slice":function(e,t){if(l(t.value)){var n=e.expression.value.split(":").map(g),r=t.value.map((function(e,n){return{value:e,path:t.path.concat(n)}}));return o.apply(null,[r].concat(n))}},"subscript-child-union":function(e,t){var n=[];return e.expression.value.forEach((function(e){var r={operation:"subscript",scope:"child",expression:e.expression},o=this.resolve(r)(r,t);o&&(n=n.concat(o))}),this),h(n)},"subscript-descendant-union":function(t,n,r){var o=e(".."),i=this,a=[];return o.nodes(n,"$..*").slice(1).forEach((function(e){a.length>=r||t.expression.value.forEach((function(t){var n={operation:"subscript",scope:"child",expression:t.expression},r=i.resolve(n)(n,e);a=a.concat(r)}))})),h(a)},"subscript-child-filter_expression":function(e,t,n){var o=e.expression.value.slice(2,-1),i=r.parse(o).body[0].expression;return this.descend(t,null,(function(e,t){return f(i,{"@":t})}),n)},"subscript-descendant-filter_expression":function(e,t,n){var o=e.expression.value.slice(2,-1),i=r.parse(o).body[0].expression;return this.traverse(t,null,(function(e,t){return f(i,{"@":t})}),n)},"subscript-child-script_expression":function(e,t){return c(t,e.expression.value.slice(1,-1),"$[{{value}}]")},"member-child-script_expression":function(e,t){return c(t,e.expression.value.slice(1,-1),"$.{{value}}")},"member-descendant-script_expression":function(e,t){return c(t,e.expression.value.slice(1,-1),"$..value")}},s.prototype._fns["subscript-child-string_literal"]=s.prototype._fns["member-child-identifier"],s.prototype._fns["member-descendant-numeric_literal"]=s.prototype._fns["subscript-descendant-string_literal"]=s.prototype._fns["member-descendant-identifier"],t.exports=s},{"..":"jsonpath","./aesprim":"./aesprim","./index":5,"./slice":7,"static-eval":15,underscore:12}],5:[function(e,t,n){var r=e("assert"),o=e("./dict"),i=e("./parser"),a=e("./handlers"),s=function(){this.initialize.apply(this,arguments)};function c(e){return"[object String]"==Object.prototype.toString.call(e)}s.prototype.initialize=function(){this.parser=new i,this.handlers=new a},s.prototype.parse=function(e){return r.ok(c(e),"we need a path"),this.parser.parse(e)},s.prototype.parent=function(e,t){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var n=this.nodes(e,t)[0];return n.path.pop(),this.value(e,n.path)},s.prototype.apply=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),r.equal(X(n),"function","fn needs to be function");var o=this.nodes(e,t).sort((function(e,t){return t.path.length-e.path.length}));return o.forEach((function(t){var r=t.path.pop(),o=this.value(e,this.stringify(t.path)),i=t.value=n.call(e,o[r]);o[r]=i}),this),o},s.prototype.value=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),arguments.length>=3){var o=this.nodes(e,t).shift();if(!o)return this._vivify(e,t,n);var i=o.path.slice(-1).shift();this.parent(e,this.stringify(o.path))[i]=n}return this.query(e,this.stringify(t),1).shift()},s.prototype._vivify=function(e,t,n){var o=this;r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var i=this.parser.parse(t).map((function(e){return e.expression.value})),a=function(t,n){var r=t.pop(),i=o.value(e,t);i||(a(t.concat(),"string"==typeof r?{}:[]),i=o.value(e,t)),i[r]=n};return a(i,n),this.query(e,t)[0]},s.prototype.query=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(c(t),"we need a path");var o=this.nodes(e,t,n).map((function(e){return e.value}));return o},s.prototype.paths=function(e,t,n){r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path");var o=this.nodes(e,t,n).map((function(e){return e.path}));return o},s.prototype.nodes=function(e,t,n){if(r.ok(e instanceof Object,"obj needs to be an object"),r.ok(t,"we need a path"),0===n)return[];var o=this.parser.parse(t),i=this.handlers,a=[{path:["$"],value:e}],s=[];return o.length&&"root"==o[0].expression.type&&o.shift(),o.length?(o.forEach((function(e,t){if(!(s.length>=n)){var r=i.resolve(e),c=[];a.forEach((function(i){if(!(s.length>=n)){var a=r(e,i,n);t==o.length-1?s=s.concat(a||[]):c=c.concat(a||[])}})),a=c}})),n?s.slice(0,n):s):a},s.prototype.stringify=function(e){r.ok(e,"we need a path");var t="$",n={"descendant-member":"..{{value}}","child-member":".{{value}}","descendant-subscript":"..[{{value}}]","child-subscript":"[{{value}}]"};return(e=this._normalize(e)).forEach((function(e){if("root"!=e.expression.type){var r,o=[e.scope,e.operation].join("-"),i=n[o];if(r="string_literal"==e.expression.type?JSON.stringify(e.expression.value):e.expression.value,!i)throw new Error("couldn't find template "+o);t+=i.replace(/{{value}}/,r)}})),t},s.prototype._normalize=function(e){if(r.ok(e,"we need a path"),"string"==typeof e)return this.parser.parse(e);if(Array.isArray(e)&&"string"==typeof e[0]){var t=[{expression:{type:"root",value:"$"}}];return e.forEach((function(e,n){"$"==e&&0===n||("string"==typeof e&&e.match("^"+o.identifier+"$")?t.push({operation:"member",scope:"child",expression:{value:e,type:"identifier"}}):t.push({operation:"subscript",scope:"child",expression:{value:e,type:"number"==typeof e?"numeric_literal":"string_literal"}}))})),t}if(Array.isArray(e)&&"object"==X(e[0]))return e;throw new Error("couldn't understand path "+e)},s.Handlers=a,s.Parser=i;var l=new s;l.JSONPath=s,t.exports=l},{"./dict":2,"./handlers":4,"./parser":6,assert:8}],6:[function(e,t,n){var r=e("./grammar"),o=e("../generated/parser"),i=function(){var e=new o.Parser,t=e.parseError;return e.yy.parseError=function(){e.yy.ast&&e.yy.ast.initialize(),t.apply(e,arguments)},e};i.grammar=r,t.exports=i},{"../generated/parser":1,"./grammar":3}],7:[function(e,t,n){function r(e){return String(e).match(/^[0-9]+$/)?parseInt(e):Number.isFinite(e)?parseInt(e,10):0}t.exports=function(e,t,n,o){if("string"==typeof t)throw new Error("start cannot be a string");if("string"==typeof n)throw new Error("end cannot be a string");if("string"==typeof o)throw new Error("step cannot be a string");var i=e.length;if(0===o)throw new Error("step cannot be zero");if(o=o?r(o):1,n=n<0?i+n:n,t=r(0===(t=t<0?i+t:t)?0:t||(o>0?0:i-1)),n=r(0===n?0:n||(o>0?i:-1)),t=o>0?Math.max(0,t):Math.min(i,t),n=o>0?Math.min(n,i):Math.max(-1,n),o>0&&n<=t)return[];if(o<0&&t<=n)return[];for(var a=[],s=t;s!=n&&!(o<0&&s<=n||o>0&&s>=n);s+=o)a.push(e[s]);return a}},{}],8:[function(e,t,n){var r=e("util/"),o=Array.prototype.slice,i=Object.prototype.hasOwnProperty,a=t.exports=u;function s(e,t){return r.isUndefined(t)?""+t:r.isNumber(t)&&!isFinite(t)||r.isFunction(t)||r.isRegExp(t)?t.toString():t}function c(e,t){return r.isString(e)?e.length<t?e:e.slice(0,t):e}function l(e,t,n,r,o){throw new a.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:o})}function u(e,t){e||l(e,!0,t,"==",a.ok)}function d(e,t){if(e===t)return!0;if(r.isBuffer(e)&&r.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return r.isDate(e)&&r.isDate(t)?e.getTime()===t.getTime():r.isRegExp(e)&&r.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:r.isObject(e)||r.isObject(t)?function(e,t){if(r.isNullOrUndefined(e)||r.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(r.isPrimitive(e)||r.isPrimitive(t))return e===t;var n=A(e),i=A(t);if(n&&!i||!n&&i)return!1;if(n)return d(e=o.call(e),t=o.call(t));var a,s,c=g(e),l=g(t);if(c.length!=l.length)return!1;for(c.sort(),l.sort(),s=c.length-1;s>=0;s--)if(c[s]!=l[s])return!1;for(s=c.length-1;s>=0;s--)if(!d(e[a=c[s]],t[a]))return!1;return!0}(e,t):e==t}function A(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function f(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||!0===t.call({},e))}function h(e,t,n,o){var i;r.isString(n)&&(o=n,n=null);try{t()}catch(e){i=e}if(o=(n&&n.name?" ("+n.name+").":".")+(o?" "+o:"."),e&&!i&&l(i,n,"Missing expected exception"+o),!e&&f(i,n)&&l(i,n,"Got unwanted exception"+o),e&&i&&n&&!f(i,n)||!e&&i)throw i}a.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return c(JSON.stringify(e.actual,s),128)+" "+e.operator+" "+c(JSON.stringify(e.expected,s),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,o=r.indexOf("\n"+t.name);if(o>=0){var i=r.indexOf("\n",o+1);r=r.substring(i+1)}this.stack=r}}},r.inherits(a.AssertionError,Error),a.fail=l,a.ok=u,a.equal=function(e,t,n){e!=t&&l(e,t,n,"==",a.equal)},a.notEqual=function(e,t,n){e==t&&l(e,t,n,"!=",a.notEqual)},a.deepEqual=function(e,t,n){d(e,t)||l(e,t,n,"deepEqual",a.deepEqual)},a.notDeepEqual=function(e,t,n){d(e,t)&&l(e,t,n,"notDeepEqual",a.notDeepEqual)},a.strictEqual=function(e,t,n){e!==t&&l(e,t,n,"===",a.strictEqual)},a.notStrictEqual=function(e,t,n){e===t&&l(e,t,n,"!==",a.notStrictEqual)},a.throws=function(e,t,n){h.apply(this,[!0].concat(o.call(arguments)))},a.doesNotThrow=function(e,t){h.apply(this,[!1].concat(o.call(arguments)))},a.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)i.call(e,n)&&t.push(n);return t}},{"util/":11}],9:[function(e,t,n){t.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],10:[function(e,t,n){t.exports=function(e){return e&&"object"===X(e)&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],11:[function(e,t,n){(function(t,r){var o=/%[sdj%]/g;n.format=function(e){if(!m(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(s(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n<i;c=r[++n])g(c)||!v(c)?a+=" "+c:a+=" "+s(c);return a},n.deprecate=function(e,o){if(y(r.process))return function(){return n.deprecate(e,o).apply(this,arguments)};if(!0===t.noDeprecation)return e;var i=!1;return function(){if(!i){if(t.throwDeprecation)throw new Error(o);t.traceDeprecation?console.trace(o):console.error(o),i=!0}return e.apply(this,arguments)}};var i,a={};function s(e,t){var r={seen:[],stylize:l};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),h(t)?r.showHidden=t:t&&n._extend(r,t),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),u(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function l(e,t){return e}function u(e,t,r){if(e.customInspect&&t&&I(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var o=t.inspect(r,e);return m(o)||(o=u(e,o,r)),o}var i=function(e,t){if(y(t))return e.stylize("undefined","undefined");if(m(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return p(t)?e.stylize(""+t,"number"):h(t)?e.stylize(""+t,"boolean"):g(t)?e.stylize("null","null"):void 0}(e,t);if(i)return i;var a=Object.keys(t),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),C(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return d(t);if(0===a.length){if(I(t))return e.stylize("[Function"+(t.name?": "+t.name:"")+"]","special");if(_(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(b(t))return e.stylize(Date.prototype.toString.call(t),"date");if(C(t))return d(t)}var c,l="",v=!1,w=["{","}"];return f(t)&&(v=!0,w=["[","]"]),I(t)&&(l=" [Function"+(t.name?": "+t.name:"")+"]"),_(t)&&(l=" "+RegExp.prototype.toString.call(t)),b(t)&&(l=" "+Date.prototype.toUTCString.call(t)),C(t)&&(l=" "+d(t)),0!==a.length||v&&0!=t.length?r<0?_(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=v?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a<s;++a)S(t,String(a))?i.push(A(e,t,n,r,String(a),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(A(e,t,n,r,o,!0))})),i}(e,t,r,s,a):a.map((function(n){return A(e,t,r,s,n,v)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return r>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(c,l,w)):w[0]+l+w[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function A(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=e.stylize(c.set?"[Getter/Setter]":"[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),S(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?u(e,c.value,null):u(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),y(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function f(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function g(e){return null===e}function p(e){return"number"==typeof e}function m(e){return"string"==typeof e}function y(e){return void 0===e}function _(e){return v(e)&&"[object RegExp]"===w(e)}function v(e){return"object"===X(e)&&null!==e}function b(e){return v(e)&&"[object Date]"===w(e)}function C(e){return v(e)&&("[object Error]"===w(e)||e instanceof Error)}function I(e){return"function"==typeof e}function w(e){return Object.prototype.toString.call(e)}function E(e){return e<10?"0"+e.toString(10):e.toString(10)}n.debuglog=function(e){if(y(i)&&(i=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!a[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var r=t.pid;a[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else a[e]=function(){};return a[e]},n.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=f,n.isBoolean=h,n.isNull=g,n.isNullOrUndefined=function(e){return null==e},n.isNumber=p,n.isString=m,n.isSymbol=function(e){return"symbol"===X(e)},n.isUndefined=y,n.isRegExp=_,n.isObject=v,n.isDate=b,n.isError=C,n.isFunction=I,n.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===X(e)||void 0===e},n.isBuffer=e("./support/isBuffer");var x=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function S(e,t){return Object.prototype.hasOwnProperty.call(e,t)}n.log=function(){var e,t;console.log("%s - %s",(t=[E((e=new Date).getHours()),E(e.getMinutes()),E(e.getSeconds())].join(":"),[e.getDate(),x[e.getMonth()],t].join(" ")),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!v(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,e("_process"),void 0!==se?se:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":10,_process:14,inherits:9}],12:[function(e,t,n){},{}],13:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}n.resolve=function(){for(var n="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a=i>=0?arguments[i]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(n=a+"/"+n,o="/"===a.charAt(0))}return(o?"/":"")+(n=t(r(n.split("/"),(function(e){return!!e})),!o).join("/"))||"."},n.normalize=function(e){var i=n.isAbsolute(e),a="/"===o(e,-1);return(e=t(r(e.split("/"),(function(e){return!!e})),!i).join("/"))||i||(e="."),e&&a&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var o=r(e.split("/")),i=r(t.split("/")),a=Math.min(o.length,i.length),s=a,c=0;c<a;c++)if(o[c]!==i[c]){s=c;break}var l=[];for(c=s;c<o.length;c++)l.push("..");return(l=l.concat(i.slice(s))).join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,o=!0,i=e.length-1;i>=1;--i)if(47===(t=e.charCodeAt(i))){if(!o){r=i;break}}else o=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},n.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,r=-1,o=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!o){n=t+1;break}}else-1===r&&(o=!1,r=t+1);return-1===r?"":e.slice(n,r)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,r=-1,o=!0,i=0,a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(47!==s)-1===r&&(o=!1,r=a+1),46===s?-1===t?t=a:1!==i&&(i=1):-1!==t&&(i=-1);else if(!o){n=a+1;break}}return-1===t||-1===r||0===i||1===i&&t===r-1&&t===n+1?"":e.slice(t,r)};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:14}],14:[function(e,t,n){var r,o,i=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function c(e){if(r===setTimeout)return setTimeout(e,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(e){r=a}try{o="function"==typeof clearTimeout?clearTimeout:s}catch(e){o=s}}();var l,u=[],d=!1,A=-1;function f(){d&&l&&(d=!1,l.length?u=l.concat(u):A=-1,u.length&&h())}function h(){if(!d){var e=c(f);d=!0;for(var t=u.length;t;){for(l=u,u=[];++A<t;)l&&l[A].run();A=-1,t=u.length}l=null,d=!1,function(e){if(o===clearTimeout)return clearTimeout(e);if((o===s||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(e);try{return o(e)}catch(t){try{return o.call(null,e)}catch(t){return o.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function p(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new g(e,t)),1!==u.length||d||c(h)},g.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=p,i.addListener=p,i.once=p,i.off=p,i.removeListener=p,i.removeAllListeners=p,i.emit=p,i.prependListener=p,i.prependOnceListener=p,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],15:[function(e,t,n){var r=e("escodegen").generate;t.exports=function(e,t){t||(t={});var n={},o=function e(o,i){if("Literal"===o.type)return o.value;if("UnaryExpression"===o.type){var a=e(o.argument);return"+"===o.operator?+a:"-"===o.operator?-a:"~"===o.operator?~a:"!"===o.operator?!a:n}if("ArrayExpression"===o.type){for(var s=[],c=0,l=o.elements.length;c<l;c++){if((m=e(o.elements[c]))===n)return n;s.push(m)}return s}if("ObjectExpression"===o.type){var u={};for(c=0;c<o.properties.length;c++){var d=null===(y=o.properties[c]).value?y.value:e(y.value);if(d===n)return n;u[y.key.value||y.key.name]=d}return u}if("BinaryExpression"===o.type||"LogicalExpression"===o.type){if((l=e(o.left))===n)return n;var A=e(o.right);if(A===n)return n;var f=o.operator;return"=="===f?l==A:"==="===f?l===A:"!="===f?l!=A:"!=="===f?l!==A:"+"===f?l+A:"-"===f?l-A:"*"===f?l*A:"/"===f?l/A:"%"===f?l%A:"<"===f?l<A:"<="===f?l<=A:">"===f?l>A:">="===f?l>=A:"|"===f?l|A:"&"===f?l&A:"^"===f?l^A:"&&"===f?l&&A:"||"===f?l||A:n}if("Identifier"===o.type)return{}.hasOwnProperty.call(t,o.name)?t[o.name]:n;if("ThisExpression"===o.type)return{}.hasOwnProperty.call(t,"this")?t.this:n;if("CallExpression"===o.type){var h=e(o.callee);if(h===n)return n;if("function"!=typeof h)return n;var g=o.callee.object?e(o.callee.object):n;g===n&&(g=null);var p=[];for(c=0,l=o.arguments.length;c<l;c++){var m;if((m=e(o.arguments[c]))===n)return n;p.push(m)}return h.apply(g,p)}var y;if("MemberExpression"===o.type)return(u=e(o.object))===n||"function"==typeof u?n:"Identifier"===o.property.type?u[o.property.name]:(y=e(o.property))===n?n:u[y];if("ConditionalExpression"===o.type)return(a=e(o.test))===n?n:e(a?o.consequent:o.alternate);if("ExpressionStatement"===o.type)return(a=e(o.expression))===n?n:a;if("ReturnStatement"===o.type)return e(o.argument);if("FunctionExpression"===o.type){var _=o.body.body,v={};for(Object.keys(t).forEach((function(e){v[e]=t[e]})),c=0;c<o.params.length;c++){var b=o.params[c];if("Identifier"!=b.type)return n;t[b.name]=null}for(var c in _)if(e(_[c])===n)return n;t=v;var C=Object.keys(t),I=C.map((function(e){return t[e]}));return Function(C.join(", "),"return "+r(o)).apply(null,I)}if("TemplateLiteral"===o.type){var w="";for(c=0;c<o.expressions.length;c++)w+=e(o.quasis[c]),w+=e(o.expressions[c]);return w+e(o.quasis[c])}if("TaggedTemplateExpression"===o.type){var E=e(o.tag),x=o.quasi,S=x.quasis.map(e),B=x.expressions.map(e);return E.apply(null,[S].concat(B))}return"TemplateElement"===o.type?o.value.cooked:n}(e);return o===n?void 0:o}},{escodegen:12}],jsonpath:[function(e,t,n){t.exports=e("./lib/index")},{"./lib/index":5}]},{},["jsonpath"])("jsonpath")}(Kl)),Kl.exports),Vl=ce(Wl);const $l=new Set(["i","me","my","myself","we","our","ours","ourselves","you","your","yours","yourself","yourselves","he","him","his","himself","she","her","hers","herself","it","its","itself","they","them","their","theirs","themselves","what","which","who","whom","this","that","these","those","am","is","are","was","were","be","been","being","have","has","had","having","do","does","did","doing","a","an","the","and","but","if","or","because","as","until","while","of","at","by","for","with","about","against","between","into","through","during","before","after","above","below","to","from","up","down","in","out","on","off","over","under","again","further","then","once","here","there","when","where","why","how","all","any","both","each","few","more","most","other","some","such","no","nor","not","only","own","same","so","than","too","very","s","t","can","will","just","don","should","now","0","1","2","3","4","5","6","7","8","9"]);function Xl(e,t){for(const[n,r]of t.entries())if(e.startsWith(r))return e.replace(r,String(n));return e}const Zl="$PREFIXED_ID";function eu(e,t,n){if(t===Zl)return[Xl(e.id,n)];let r;try{r=Vl.query(e,t)}catch{r=Vl.query(JSON.parse(JSON.stringify(e)),t)}return r}function tu(e){return e.toLowerCase().split(/[^\d:A-Za-z]+/).filter((e=>e&&!$l.has(e)))}function*nu(e){for(const t of e)yield*tu(t)}function*ru(e){for(const t of e)if("string"==typeof t)yield t;else if("object"==typeof t){const e=Vl.query(t,"$..*");yield*ru(e)}}function*ou(e,t,n){for(const r of t){const t=eu(e,r,n);if(t.length>0)for(const e of nu(ru(t)))yield[r,e]}}async function iu(e,t,n){const r=await this.db,o=t??r.transaction(["nodes"]);Gl(n);const i=[...tu(e)],a=[],s=new Map;a.push(...i.map((async(e,t)=>{Gl(n);const r=o.objectStore("nodes").index("full-text-words");for await(const o of r.iterate(IDBKeyRange.bound(e,`${e}￿`,!1,!1))){Gl(n);const e=o.value,r=s.get(e.id)??[e,new Set];r[1].add(t),s.set(e.id,r)}}))),await Promise.all(a),Gl(n);const c=[];for(const[,[e,t]]of s)Gl(n),c.push(...au(this.textIndexFields,e,t,i,this.prefixes));return c.sort(((e,t)=>t.score-e.score)),c.slice(0,this.options.maxSearchResults??this.DEFAULT_MAX_SEARCH_RESULTS)}function au(e,t,n,r,o){const i=[...n].sort().map((e=>r[e])),a=i.map((e=>{const t=e.replaceAll(/[$()*+./?[\\\]^{|}-]/g,String.raw`\$&`);return new RegExp(`\\b${t}`,"gi")}));let s=[],c=0;for(const[n,i]of e.entries()){const l=new Set,u=e.length-n-1,d=[...ru(eu(t,i.jsonPath,o))];for(const e of d){let n=0;const o=[];for(const[t,i]of a.entries())for(const a of e.matchAll(i)){n+=1+1*u,l.add(t);const i=a.index,s=r[t];void 0!==i&&(n+=.01*s.length,n+=s.length/e.length*100*.05,o.push({wordIndex:t,position:i}))}n+=100*l.size,c<n&&(c=n),o.sort(((e,t)=>e.position-t.position)),o.length>0&&s.push({term:t,field:i,str:e,score:n,wordMatches:o})}}s=s.filter((e=>e.score===c));for(const e of s){const{wordMatches:t}=e;for(let n=0;n<t.length-1;n++){const r=t[n],o=t[n+1],a=o.wordIndex-r.wordIndex;if(1===a||-1===a){e.score+=1,1===a&&(e.score+=1);const t=Math.abs(o.position-(r.position+i[r.wordIndex].length))-1;e.score-=.05*t}}}return s}function su(e){return"string"==typeof e.id}function cu(e){return"string"==typeof e.sub&&"string"==typeof e.pred&&"string"==typeof e.obj}function lu(e){return Boolean(e.meta?.deprecated)}var uu,du,Au=(du||(du=1,uu=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==X(t)&&"object"==X(n)){if(t.constructor!==n.constructor)return!1;var r,o,i;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;var a,s=F(t.entries());try{for(s.s();!(a=s.n()).done;)if(!n.has((o=a.value)[0]))return!1}catch(e){s.e(e)}finally{s.f()}var c,l=F(t.entries());try{for(l.s();!(c=l.n()).done;)if(!e((o=c.value)[1],n.get(o[0])))return!1}catch(e){l.e(e)}finally{l.f()}return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;var u,d=F(t.entries());try{for(d.s();!(u=d.n()).done;)if(!n.has((o=u.value)[0]))return!1}catch(e){d.e(e)}finally{d.f()}return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(t[o]!==n[o])return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;0!=o--;){var A=i[o];if(!e(t[A],n[A]))return!1}return!0}return t!=t&&n!=n}),uu),fu=ce(Au);async function hu(e){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.blocked,o=n.upgrade,i=n.blocking,a=n.terminated,s=indexedDB.open(e,t),c=kl(s);return o&&s.addEventListener("upgradeneeded",(function(e){o(kl(s.result),e.oldVersion,e.newVersion,kl(s.transaction),e)})),r&&s.addEventListener("blocked",(function(e){return r(e.oldVersion,e.newVersion,e)})),c.then((function(e){a&&e.addEventListener("close",(function(){return a()})),i&&e.addEventListener("versionchange",(function(e){return i(e.oldVersion,e.newVersion,e)}))})).catch((function(){})),c}(e,2,{upgrade(e,t,n,r,o){if(t<2&&(e.objectStoreNames.contains("meta")&&e.deleteObjectStore("meta"),e.objectStoreNames.contains("nodes")&&e.deleteObjectStore("nodes"),e.objectStoreNames.contains("edges")&&e.deleteObjectStore("edges")),e.objectStoreNames.contains("meta")||e.createObjectStore("meta"),!e.objectStoreNames.contains("nodes")){e.createObjectStore("nodes",{keyPath:"id"});const t=r.objectStore("nodes");t.createIndex("by-label","lbl"),t.createIndex("by-type","type"),t.createIndex("by-synonym",["meta","synonyms","val"]),t.createIndex("full-text-words","fullTextWords",{multiEntry:!0})}if(!e.objectStoreNames.contains("edges")){e.createObjectStore("edges",{autoIncrement:!0});const t=r.objectStore("edges");t.createIndex("by-subject","sub"),t.createIndex("by-object","obj"),t.createIndex("by-predicate","pred")}}})}function gu(e){const t=new Set;for(const[,n]of e)t.add(n);return[...t]}async function pu(e){const t=Date.now();let n,r=1;this.options.update?.("Parsing JSON",r);try{n=JSON.parse(await p.openLocation(this.sourceLocation).readFile("utf8"))}catch{throw new Error("Error in loading ontology")}r+=5,this.options.update?.("Parsing JSON complete",r);const o=Date.now(),[i,...a]=n.graphs??[];if(i){if(a.length>0)throw new Error("multiple graphs not supported");try{const n=e.transaction(["meta","nodes","edges"],"readwrite");await n.objectStore("meta").clear(),await n.objectStore("nodes").clear(),await n.objectStore("edges").clear();const a=n.objectStore("nodes"),s=mu.call(this).map((e=>e.jsonPath));if(i.nodes){let e=Math.round(r);for(const[,t]of i.nodes.entries())r+=1/i.nodes.length*64,Math.round(r)!=e&&r<100&&(this.options.update?.("Processing nodes",r),e=Math.round(r)),su(t)&&await a.add({...t,fullTextWords:gu(ou(t,s,this.prefixes))})}const c=n.objectStore("edges");if(i.edges){let e=Math.round(r);for(const[,t]of i.edges.entries())r+=1/i.edges.length*30,Math.round(r)!=e&&r<100&&(this.options.update?.("Processing edges",r),e=Math.round(r)),cu(t)&&await c.add(t)}await n.done;const l=e.transaction("meta","readwrite"),{update:u,...d}=this.options;await l.objectStore("meta").add({ontologyRecord:{name:this.ontologyName,version:this.ontologyVersion,sourceLocation:this.sourceLocation},storeOptions:d,graphMeta:i.meta,timestamp:String(new Date),schemaVersion:2,timings:{overall:Date.now()-t,load:Date.now()-o}},"meta"),await l.done}catch(t){throw await e.transaction("meta","readwrite").objectStore("meta").clear(),t}}}function mu(){return[{displayName:"ID",jsonPath:Zl},...this.options.textIndexing?.indexFields??Cu]}async function yu(e){const[t]=await e.transaction("meta").objectStore("meta").getAll();return!!t&&fu(this.options.prefixes,t.storeOptions.prefixes)&&fu(this.options.textIndexing,t.storeOptions.textIndexing)}class _u{ontologyName;ontologyVersion;sourceLocation;db;options;loadOboGraphJson=pu;getTermsByFulltext=iu;openDatabase=hu;isDatabaseCurrent=yu;get textIndexFields(){return mu.call(this)}get prefixes(){return this.options.prefixes??new Map}DEFAULT_MAX_SEARCH_RESULTS=100;constructor(e,t,n,r){this.ontologyName=e,this.ontologyVersion=t,this.sourceLocation=n,this.options=r??{},this.db=this.prepareDatabase()}validate(){const e=[],{sourceLocation:t,sourceType:n}=this;return n?"obo-graph-json"!==n&&e.push(new Error(`ontology source file ${JSON.stringify(t)} has type ${n}, which is not yet supported`)):e.push(new Error(`unable to determine format of ontology source file ${JSON.stringify(t)}, file name must end with ".json", ".obo", or ".owl"`)),e}get sourceType(){if(o.isUriLocation(this.sourceLocation)){if(this.sourceLocation.uri.endsWith(".json"))return"obo-graph-json"}else if(o.isLocalPathLocation(this.sourceLocation)&&this.sourceLocation.localPath.endsWith(".json"))return"obo-graph-json"}get dbName(){return`Apollo Ontology "${this.ontologyName}" "${this.ontologyVersion}"`}async prepareDatabase(){const e=this.validate();if(e.length>0)throw e;const t=await this.openDatabase(this.dbName);if(await this.isDatabaseCurrent(t))return t;try{const{options:e,sourceLocation:n,sourceType:r}=this;if("obo-graph-json"!==r)throw new Error(`ontology source file ${JSON.stringify(n)} has type ${r}, which is not yet supported`);return e.update?.("",0),await this.loadOboGraphJson(t),e.update?.("",100),t}catch(e){throw t.close(),await function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).blocked,n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(function(e){return t(e.oldVersion,e)})),kl(n).then((function(){}))}(this.dbName),e}}async termCount(e){const t=await this.db;return(e??t.transaction("nodes")).objectStore("nodes").count()}unique(e){const t=new Map,n=[];for(const r of e)t.has(r.id)||(t.set(r.id,!0),n.push(r));return n}async getTermsWithLabelOrSynonym(e,t,n){const r=t?.includeSubclasses??!0,o=await this.db,i=n??o.transaction(["nodes","edges"]),a=i.objectStore("nodes"),s=[...await a.index("by-label").getAll(e),...await a.index("by-synonym").getAll(e)];if(r){const e=await this.recurseEdges("by-object",s.map((e=>e.id)),(e=>"is_a"===e.pred),"sub",i);for(const t of e){const e=await a.get(t);e&&s.push(e)}}return s}async getPropertiesByLabel(e,t,n){const r=t?.includeSubProperties??!0,o=await this.db,i=n??o.transaction(["nodes","edges"]),a=(await this.getTermsWithLabelOrSynonym(e,{includeSubclasses:!1},i)).filter((e=>Eu(e)));if(r){const e=await this.recurseEdges("by-object",a.map((e=>e.id)),(e=>"subPropertyOf"===e.pred),"sub",i),t=i.objectStore("nodes");for(const n of e){const e=await t.get(n);e&&Eu(e)&&a.push(e)}}return a}async recurseEdges(e,t,n,r,o){const i=new Set;return await async function t(a){await Promise.all([...a].map((async a=>{const s=(await o.objectStore("edges").index(e).getAll(a)).filter((e=>n(e))).map((e=>e[r]));if(s.length>0){for(const e of s)i.add(e);await t(s)}})))}(t),i.values()}async*expandNodeSet(e,t="is_a",n,r){const o=await this.db,i=r??o.transaction(["edges"]),a=[...e],s=await this.recurseEdges("subclasses"===n?"by-object":"by-subject",a,(e=>e.pred===t),"subclasses"===n?"sub":"obj",i);for(const e of a)yield e;for(const e of s)yield e}expandSubclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"subclasses",n)}expandSuperclasses(e,t="is_a",n){return this.expandNodeSet(e,t,"superclasses",n)}async getClassesThat(e,t,n){const r=await this.db,o=n??r.transaction(["nodes","edges"]),i=await this.getPropertiesByLabel(e,{includeSubProperties:!0},o),a=new Set(i.map((e=>e.id))),s=await async function(e){const t=[];for await(const n of e)t.push(n);return t}(this.expandSuperclasses(t.map((e=>e.id)),"is_a",o)),c=await this.recurseEdges("by-object",s,(e=>a.has(e.pred)),"sub",o),l=this.expandSubclasses(c,"is_a",o),u=[];for await(const e of l){const t=await o.objectStore("nodes").get(e);t&&wu(t)&&!lu(t)&&u.push(t)}return u}async getClassesWithoutPropertyLabeled(e,t,n){const r=await this.db,o=n??r.transaction(["nodes","edges"]),i=o.objectStore("nodes"),a=o.objectStore("edges"),s=(await this.getPropertiesByLabel(e,t,o)).map((e=>e.id)),c=await(async()=>{const e=new Set;for(const t of s)for await(const n of a.index("by-predicate").iterate(t))e.add(n.value.sub);const t=new Set;for await(const n of this.expandSubclasses(e,"is_a",o))t.add(n);return t})(),l=[];for await(const e of i){const t=e.value;wu(t)&&!c.has(t.id)&&l.push(t.id)}const u=[];for(const e of l){const t=await o.objectStore("nodes").get(e);t&&wu(t)&&!lu(t)&&u.push(t)}return u}async getAllClasses(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").index("by-type").getAll("CLASS")).filter((e=>!lu(e)))}async getAllTerms(e){const t=await this.db,n=e??t.transaction(["nodes"]);return(await n.objectStore("nodes").getAll()).filter((e=>!lu(e)))}}const vu=c.types.model("OntologyRecord",{name:c.types.string,version:"unversioned",source:c.types.union(g.LocalPathLocation,g.UriLocation,g.BlobLocation),options:c.types.frozen(),equivalentTypes:c.types.map(c.types.array(c.types.string))}).volatile((e=>({dataStore:void 0,startedEquivalentTypeRequests:new Set}))).actions((e=>({ping(){},initDataStore(){e.dataStore=new _u(e.name,e.version,c.getSnapshot(e.source),e.options)},afterCreate(){c.addDisposer(e,l.autorun((()=>{this.initDataStore()})))},setEquivalentTypes(t,n){e.equivalentTypes.set(t,n)}}))).actions((e=>({loadEquivalentTypes:c.flow((function*(t){if(!e.dataStore)return;if(e.startedEquivalentTypeRequests.has(t))return;e.startedEquivalentTypeRequests.add(t);const n=(yield e.dataStore.getTermsWithLabelOrSynonym(t)).map((e=>e.lbl)).filter((e=>null!=e));c.isAlive(e)&&e.setEquivalentTypes(t,n)}))}))).actions((e=>({afterCreate(){l.autorun((t=>{e.dataStore&&(e.loadEquivalentTypes("gene"),e.loadEquivalentTypes("pseudogene"),e.loadEquivalentTypes("transcript"),e.loadEquivalentTypes("pseudogenic_transcript"),e.loadEquivalentTypes("CDS"),e.loadEquivalentTypes("mRNA"),t.dispose())}))},setEquivalentTypes(t,n){e.equivalentTypes.set(t,n)}}))).views((e=>({isTypeOf(t,n){if(t===n)return!0;if(!e.dataStore)return!1;const r=e.equivalentTypes.get(n);return r?r.includes(t):(e.loadEquivalentTypes(n),!1)}}))),bu=c.types.model("OntologyManager",{ontologies:c.types.array(vu),prefixes:c.types.optional(c.types.map(c.types.string),{"GO:":"http://purl.obolibrary.org/obo/GO_","SO:":"http://purl.obolibrary.org/obo/SO_"})}).views((e=>({get featureTypeOntologyName(){const t=c.getRoot(e).jbrowse.configuration;return n.readConfObject(t.ApolloPlugin,"featureTypeOntologyName")}}))).views((e=>({get featureTypeOntology(){return this.findOntology(e.featureTypeOntologyName)},findOntology:(t,n)=>e.ontologies.find((e=>e.name===t&&(void 0===n||e.version===n))),openOntology(e,t){return this.findOntology(e,t)?.dataStore},applyPrefixes:t=>Xl(t,e.prefixes),expandPrefixes:t=>function(e,t){for(const[n,r]of t.entries())if(e.startsWith(String(n)))return e.replace(String(n),r);return e}(t,e.prefixes)}))).actions((e=>({addOntology(t,n,r,o){const i=e.ontologies.push({name:t,version:n,source:r,options:{prefixes:new Map(e.prefixes.entries()),...o}});e.ontologies[i-1].ping()}}))),Cu=[{displayName:"Label",jsonPath:"$.lbl"},{displayName:"Synonym",jsonPath:"$.meta.synonyms[*].val"},{displayName:"Definition",jsonPath:"$.meta.definition.val"}],Iu=n.ConfigurationSchema("OntologyRecord",{name:{type:"string",description:'the full name of the ontology, e.g. "Gene Ontology"',defaultValue:"My Ontology"},version:{type:"string",description:"the ontology's version string",defaultValue:"unversioned"},source:{type:"fileLocation",description:"the download location for the ontology's source file",defaultValue:{locationType:"UriLocation",uri:"http://example.com/myontology.json"}},textIndexFields:{type:"frozen",description:"JSON paths for text fields that will be indexed for text searching",defaultValue:Cu}});function wu(e){return"CLASS"===e.type}function Eu(e){return"PROPERTY"===e.type}async function xu(e,t,n){if(!e)return;const r=await t.getTermsWithLabelOrSynonym(e.type,{includeSubclasses:!1}),o=r.filter(wu);if(0===r.length)return;const i=await t.getClassesThat("part_of",o);return 0!==i.length?i:void 0}function Su({fetchValidTerms:e,filterTerms:t,includeDeprecated:n,onChange:r,ontologyName:o,ontologyVersion:a,renderInput:c,session:l,style:d,value:A}){const[f,h]=u.useState(!1),[g,p]=u.useState(),[m,y]=u.useState(""),[_,v]=u.useState(),{ontologyManager:b}=l.apolloDataStore,C=b.findOntology(o,a)?.dataStore,I=C&&f&&!g,w=C&&!_,E=u.useCallback((e=>(n||!lu(e))&&(!t||t(e))),[t,n]);u.useEffect((()=>{const e=new AbortController,{signal:t}=e;return w&&async function(e,t,n,r){if(!t)return;const o=(await e.getTermsWithLabelOrSynonym(t,{includeSubclasses:!1})).find((e=>(n??(()=>!0))(e)));if(!o)throw new Error(`not a valid ${e.ontologyName} term`);return o}(C,A,E).then((e=>{y(""),t.aborted||v(e)}),(e=>{t.aborted||Hl(e)||y(String(e))})),()=>{e.abort(new DOMException("Cancel getting current term from ontology store","AbortError"))}}),[l,A,E,C,w]),u.useEffect((()=>{const t=new AbortController,{signal:n}=t;return I&&async function(e,t,n,r){let o;if(t){const n=await t(e,r);n&&(o=n)}return o||(o=await e.getAllTerms()),n?o.filter((e=>n(e))):o}(C,e,E,n).then((e=>{e&&!n.aborted&&p(e)}),(e=>{n.aborted||Hl(e)||l.notify(e instanceof Error?e.message:String(e),"error")})),()=>{t.abort(new DOMException("Canceling getting valid terms from ontology store","AbortError"))}}),[I,E,C,l,e]);const x={};return m&&(x.error=!0,x.helperText=m),i.jsx(s.Autocomplete,{style:d,autoComplete:!0,filterSelectedOptions:!0,disableClearable:!0,selectOnFocus:!0,clearOnBlur:!0,handleHomeEndKeys:!0,freeSolo:!0,value:A,options:g??[],onOpen:()=>{h(!0)},onClose:()=>{h(!1)},loading:I,renderInput:c??(e=>i.jsx(s.TextField,{...e,...x})),getOptionLabel:e=>"string"==typeof e?e:e.lbl??"",isOptionEqualToValue:(e,t)=>e.lbl===t.lbl,onChange:(e,t)=>{t&&("string"==typeof t?(v(void 0),r(A,t)):t.lbl!==A&&(y(""),v(t),r(A,t.lbl)))}})}function Bu({changeManager:e,handleClose:t,session:n,sourceAssemblyId:r,sourceFeature:o}){const[a,c]=u.useState(String(o.max)),[l,d]=u.useState(String(o.min+1)),[A,f]=u.useState(""),[h,g]=u.useState(""),[p,m]=u.useState(""),y=Number(a)<=Number(l);return i.jsxs(Al,{open:!0,title:"Add new child feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog",children:[i.jsxs("form",{onSubmit:function(i){i.preventDefault(),g("");const s=(new ut).toHexString(),c=new Nr({changedIds:[o._id],typeName:"AddFeatureChange",assembly:r,addedFeature:{_id:s,refSeq:o.refSeq,min:Number(l)-1,max:Number(a),type:A},parentFeatureId:o._id});e.submit(c).then((()=>{n.apolloSetSelectedFeature(s)})),t(),i.preventDefault()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[i.jsx(s.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:l,onChange:e=>{d(e.target.value)}}),i.jsx(s.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:a,onChange:e=>{c(e.target.value)},error:y,helperText:y?'"End" must be greater than "Start"':null}),i.jsx(Su,{session:n,ontologyName:"Sequence Ontology",style:{width:170},value:A,filterTerms:wu,fetchValidTerms:async function(e,t,n){const r=await xu(e,t);if(r)return r;m(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,o),renderInput:e=>i.jsx(s.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(p),helperText:p}),onChange:(e,t)=>{var n;t&&(n=t,g(""),f(n))}})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",disabled:y||!(l&&a&&A),children:"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),h?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:h})}):null]})}class ku{clientStore;constructor(e){this.clientStore=e}}class Qu{dataStore;constructor(e){this.dataStore=e}recentChanges=[];undoneChanges=[];async submit(e,t={}){const{addToRecents:n=!0,submitToBackend:r=!0,updateJobsManager:i=!1}=t,a=o.getSession(this.dataStore),s=new AbortController,{jobsManager:c,isLocked:l,changeInProgress:u,setChangeInProgress:d}=o.getSession(this.dataStore);if(l)return a.notify("Cannot submit changes in locked mode"),void d(!1);if(u)return void a.notify("Could not submit change, there is another change still in progress");d(!0);const A={name:e.typeName,statusMessage:"Pre-validating",progressPct:0,cancelCallback:()=>{s.abort(new DOMException(`Cancelling change "${e.typeName}"`,"AbortError"))}};i&&c.runJob(A);const f=await co.frontendPreValidate(e);if(!f.ok){const e=`Pre-validation failed: "${f.resultsMessages}"`;return i&&c.abortJob(A.name,e),a.notify(e,"error"),void d(!1)}try{await e.execute(this.dataStore)}catch(e){return i&&c.abortJob(A.name,String(e)),console.error(e),a.notify(`Error encountered in client: ${String(e)}. Data may be out of sync, please refresh the page`,"error"),void d(!1)}if((await co.frontendPostValidate(e,this.dataStore)).ok||await this.undo(e),r){i&&c.update(A.name,"Submitting to driver");const{collaborationServerDriver:r,getBackendDriver:o}=this.dataStore,s=ie(e)?o(e.assembly)??r:r;let l;try{l=await s.submitChange(e,t)}catch(t){return i&&c.abortJob(A.name,String(t)),console.error(t),a.notify(String(t),"error"),await this.undo(e,!1),void d(!1)}if(!l.ok){const t=`Post-validation failed: "${f.resultsMessages}"`;return i&&c.abortJob(A.name,t),a.notify(t,"error"),await this.undo(e,!1),void d(!1)}e.notification&&a.notify(e.notification,"success"),n&&(this.recentChanges.push(e),this.undoneChanges=[])}i&&c.done(A),d(!1)}async undo(e,t=!0){const n=e.getInverse();return this.submit(n,{submitToBackend:t,addToRecents:!1})}async redo(e,t=!0){return this.submit(e,{submitToBackend:t,addToRecents:!1})}async undoLastChange(){const e=o.getSession(this.dataStore),t=this.recentChanges.pop();if(t)return this.undoneChanges.push(t),this.undo(t);e.notify("No changes to undo!","info")}async redoLastChange(){const e=o.getSession(this.dataStore),t=this.undoneChanges.pop();if(t)return this.recentChanges.push(t),this.redo(t);e.notify("No changes to redo!","info")}}class Nu extends ku{inFlight=new Map;refSeqMaps=new Map;async fetch(e,t,n){return e.getFetcher({locationType:"UriLocation",uri:t.toString()})(t,n)}async searchFeatures(e,t){const n=this.clientStore.getInternetAccount(t[0]),{baseURL:r}=n,o=new URL("features/searchFeatures",r),i=new URLSearchParams({assemblies:t.join(","),term:e});o.search=i.toString();const a=o.toString(),s=await this.fetch(n,a);if(!s.ok){const e=await ll(s,"searchFeatures failed");throw new Error(e)}return s.json()}async getFeatures(e){const{assemblyName:t,end:n,refName:r,start:i}=e,{assemblyManager:a}=o.getSession(this.clientStore);if(!a.get(t))throw new Error(`Could not find assembly with name "${t}"`);const s=(await this.getRefSeqMapping(t)).get(r);if(!s)throw new Error(`Could not find refSeq "${r}"`);const c=s.id,l=this.clientStore.getInternetAccount(t),{baseURL:u}=l,d=new URL("features/getFeatures",u),A=new URLSearchParams({refSeq:c,start:String(i),end:String(n)});d.search=A.toString();const f=d.toString(),h=await this.fetch(l,f);if(!h.ok){const e=await ll(h,"getFeatures failed");throw new Error(e)}return this.checkSocket(t,r,l),h.json()}checkSocket(e,t,n){const{socket:r}=n,o=n.retrieveToken();if(!o)return;const i=vo(o),a=`${e}-${t}`,s=new Qu(this.clientStore);r.hasListeners(a)||r.on(a,(async e=>{if(n.setLastChangeSequenceNumber(Number(e.changeSequence)),e.userSessionId===i)return;const t=oe.fromJSON(e.changeInfo);var r;ie(r=t)&&void 0!==r.changedIds&&this.haveDataForChange(t)&&await s.submit(t,{submitToBackend:!1})}))}haveDataForChange(e){const{assembly:t,changedIds:n}=e;if(!this.clientStore.assemblies.get(t))return!1;for(const e of n)if(this.clientStore.getFeature(e))return!0;return!1}async getSequence(e){const t=`${e.refName}:${e.start}-${e.end}`,n=this.inFlight.get(t),{assemblyName:r,end:i,refName:a,start:s}=e,{assemblyManager:c}=o.getSession(this.clientStore);if(!c.get(r))throw new Error(`Could not find assembly with name "${r}"`);const l=(await this.getRefSeqMapping(r)).get(a);if(!l)throw new Error(`Could not find refSeq "${a}"`);const u=l.id;if(n)return{seq:await n,refSeq:u};let d=this.clientStore.assemblies.get(r);d||(d=this.clientStore.addAssembly(r));let A=d.refSeqs.get(u);A||(A=d.addRefSeq(u,a));const f=A.getSequence(s,i);if(f.length===i-s)return{seq:f,refSeq:u};const h=this.clientStore.getInternetAccount(r),{baseURL:g}=h,p=new URL("sequence",g),m=new URLSearchParams({refSeq:u,start:String(s),end:String(i)});p.search=m.toString();const y=p.toString(),_=this.getSeqFromServer(h,y,A,s,i);this.inFlight.set(t,_);const v=await _;return this.checkSocket(r,a,h),this.inFlight.delete(t),{seq:v,refSeq:u}}async getSeqFromServer(e,t,n,r,o){const i=await this.fetch(e,t);if(!i.ok){let e;try{e=await i.text()}catch{e=""}throw new Error(`getSequence failed: ${i.status} (${i.statusText})${e?` (${e})`:""}`)}const a=await i.text();return n.addSequence({sequence:a,start:r,stop:o}),a}async getRefSeqMapping(e){const t=this.refSeqMaps.get(e);if(t)return t;const{assemblyManager:n}=o.getSession(this.clientStore);if(!n.get(e))throw new Error(`Could not find assembly with name "${e}"`);const r=this.clientStore.getInternetAccount(e),{baseURL:i}=r,a=new URL("refSeqs",i),s=new URLSearchParams({assembly:e});a.search=s.toString();const c=a.toString(),l=await this.fetch(r,c);if(!l.ok){let e;try{e=await l.text()}catch{e=""}throw new Error(`getRefNameAliases failed: ${l.status} (${l.statusText})${e?` (${e})`:""}`)}const u=await l.json(),d=new Map(u.map((e=>[e.name,{refName:e.name,id:e._id,aliases:e.aliases}])));return this.refSeqMaps.set(e,d),d}async getRefNameAliases(e){return[...(await this.getRefSeqMapping(e)).values()].map((e=>({refName:e.refName,aliases:[...new Set([e.id,...e.aliases])],uniqueId:`alias-${e.id}`})))}async getRefSeqId(e,t){const n=await this.getRefSeqMapping(e);if(!n)return;const r=n.get(t);return r?.id}async getRegions(e){const{assemblyManager:t}=o.getSession(this.clientStore);if(!t.get(e))throw new Error(`Could not find assembly with name "${e}"`);const n=this.clientStore.getInternetAccount(e),{baseURL:r}=n,i=new URL("refSeqs",r),a=new URLSearchParams({assembly:e});i.search=a.toString();const s=i.toString(),c=await this.fetch(n,s);if(!c.ok){let e;try{e=await c.text()}catch{e=""}throw new Error(`getRegions failed: ${c.status} (${c.statusText})${e?` (${e})`:""}`)}return(await c.json()).map((e=>({refName:e.name,start:0,end:e.length})))}getAssemblies(e){const{assemblyManager:t}=o.getSession(this.clientStore);return t.assemblies.filter((t=>{const r=n.getConf(t,["sequence","metadata"]);return!(!(r&&r.apollo&&r.internetAccountConfigId)||e&&r.internetAccountConfigId!==e)}))}async submitChange(e,t={}){const{internetAccountId:n}=t,r=this.clientStore.getInternetAccount("assembly"in e?e.assembly:void 0,n),{baseURL:o}=r,i=new URL("changes",o).href,a=await this.fetch(r,i,{method:"POST",body:JSON.stringify(e.toJSON()),headers:{"Content-Type":"application/json"}});if(!a.ok){const e=await ll(a,"submitChange failed");throw new Error(e)}const s=new ao;return a.ok||(s.ok=!1),s}}class Ru extends ku{async getFeatures(){return[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:o}=e,i=this.clientStore.assemblies.get(t);if(!i)return{seq:"",refSeq:r};const a=i.refSeqs.get(r);return a?{seq:a.getSequence(o,n),refSeq:r}:{seq:"",refSeq:r}}async getRefNameAliases(e){const t=this.clientStore.assemblies.get(e),n=[];if(!t)return n;for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getRegions(e){const t=this.clientStore.assemblies.get(e);if(!t)return[];const n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=o.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=n.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.file&&!t.internetAccountConfigId)}))}async submitChange(e,t={}){const{clientStore:n}=this,{assemblies:r}=n;n.clearCheckResults();for(const[,e]of r)if("InMemoryFileDriver"===e.backendDriverType){const t=await Oc(e);n.addCheckResults(t)}return new ao}async searchFeatures(e,t){return[]}}class Du extends ku{async loadAssembly(e){const{assemblyManager:t}=o.getSession(this.clientStore),r=t.get(e);if(!r)throw new Error(`Assembly ${e} not found`);const{file:i}=n.getConf(r,["sequence","metadata"]),a=require("node:fs");return Mc(e,await a.promises.readFile(i,"utf8"),this.clientStore)}async getAssembly(e){let t=this.clientStore.assemblies.get(e);return t||(t=await this.loadAssembly(e)),t}async getRefNameAliases(e){const t=await this.getAssembly(e),n=[];for(const[,e]of t.refSeqs)n.push({refName:e.name,aliases:[e._id],uniqueId:`alias-${e._id}`});return n}async getFeatures(e){return await this.getAssembly(e.assemblyName),[[],[]]}async getSequence(e){const{assemblyName:t,end:n,refName:r,start:o}=e,i=(await this.getAssembly(t)).refSeqs.get(r);if(!i)throw new Error(`refSeq ${r} not found in client data store`);return{seq:i.getSequence(o,n),refSeq:r}}async getRegions(e){const t=await this.getAssembly(e),n=[];for(const[,r]of t.refSeqs)n.push({assemblyName:e,refName:r.name,start:r.sequence[0].start,end:r.sequence[0].stop});return n}getAssemblies(){const{assemblyManager:e}=o.getSession(this.clientStore);return e.assemblies.filter((e=>{const t=n.getConf(e,["sequence","metadata"]);return Boolean(t&&t.apollo&&!t.internetAccountConfigId&&t.file)}))}async submitChange(e){if(!ie(e))throw new Error(`Cannot use this type of change with local file: "${e.typeName}"`);const{assemblyManager:t}=o.getSession(this.clientStore),r=t.get(e.assembly);if(!r)throw new Error(`Could not find assembly with name "${e.assembly}"`);const{file:i}=n.getConf(r,["sequence","metadata"]),a=this.clientStore.assemblies.get(e.assembly);if(!a)throw new Error(`Could not find assembly in client with name "${e.assembly}"`);const s=new Set(...a.refSeqs.keys()),{checkResults:l}=this.clientStore;for(const e of l.values())s.has(e.refSeq)&&l.delete(e._id);const u=await Oc(a);this.clientStore.addCheckResults(u);const d=[{directive:"gff-version",value:"3"}];for(const[,e]of a.refSeqs)d.push({directive:"sequence-region",value:`${e.name} 1 ${e.sequence[0].stop}`});for(const e of a.comments)d.push({comment:e});for(const[,e]of a.refSeqs){const{features:t}=e;for(const[,e]of t)d.push(yt(c.getSnapshot(e)))}for(const[,e]of a.refSeqs){const[t]=e.sequence,n=Hr(t.sequence,80).join("\n");d.push({id:e.name,description:e.description,sequence:n})}const A=jc.formatSync(d),f=require("node:fs");return await f.promises.writeFile(i,A,"utf8"),new ao}async searchFeatures(e,t){return[]}}var Fu;function Tu(e,t,n,r){const o={_id:(new ut).toHexString(),refSeq:e,type:"CDS",min:n,max:r,strand:t},i={_id:(new ut).toHexString(),refSeq:e,type:"exon",min:n,max:r,strand:t},a={};return a[o._id]=o,a[i._id]=i,{_id:(new ut).toHexString(),refSeq:e,type:"mRNA",min:n,max:r,strand:t,children:a}}function ju({changeManager:e,handleClose:t,region:n,session:r}){const[o,a]=u.useState(String(n.end)),[c,l]=u.useState(String(n.start+1)),[d,A]=u.useState(Fu.GENE_AND_SUBFEATURES),[f,h]=u.useState(""),[g,p]=u.useState(),[m,y]=u.useState(""),_=Number(o)<=Number(c);let v=Boolean(_)||!(c&&o&&d);return(d===Fu.CUSTOM&&!f||!g&&d===Fu.GENE_AND_SUBFEATURES||!g&&d===Fu.TRANSCRIPT_AND_SUBFEATURES)&&(v=!0),i.jsxs(Al,{open:!0,title:"Add new feature",handleClose:t,maxWidth:!1,"data-testid":"add-feature-dialog",children:[i.jsxs("form",{onSubmit:async function(i){i.preventDefault(),y("");const a=r.apolloDataStore.getBackendDriver(n.assemblyName);if(!a)return void y("No backend driver found");let s=n.refName;if(a instanceof Nu){const e=await a.getRefSeqId(n.assemblyName,n.refName);if(!e)return void y(`Could not find refSeq for "${n.refName}"`);s=e}if(d===Fu.GENE_AND_SUBFEATURES){const i=Tu(s,g,Number(c)-1,Number(o)),a={};a[i._id]=i;const l=(new ut).toHexString(),u=new Nr({changedIds:[l],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:{_id:l,refSeq:s,min:Number(c)-1,max:Number(o),type:"gene",strand:g,children:a}});return e.submit(u).then((()=>{r.apolloSetSelectedFeature(l)})),void t()}if(d===Fu.TRANSCRIPT_AND_SUBFEATURES){const i=Tu(s,g,Number(c)-1,Number(o)),a=new Nr({changedIds:[i._id],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:i});return e.submit(a).then((()=>{r.apolloSetSelectedFeature(i._id)})),void t()}if(!f)return void y("No type selected");const l=(new ut).toHexString(),u=new Nr({changedIds:[l],typeName:"AddFeatureChange",assembly:n.assemblyName,addedFeature:{_id:l,refSeq:s,min:Number(c)-1,max:Number(o),type:f,strand:g}});e.submit(u).then((()=>{r.apolloSetSelectedFeature(l)})),t()},"data-testid":"submit-form",children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[i.jsx(s.TextField,{margin:"dense",id:"start",label:"Start",type:"number",fullWidth:!0,variant:"outlined",value:Number(c),onChange:e=>{l(e.target.value)}}),i.jsx(s.TextField,{margin:"dense",id:"end",label:"End",type:"number",fullWidth:!0,variant:"outlined",value:o,onChange:e=>{a(e.target.value)},error:_,helperText:_?'"End" must be greater than "Start"':null}),i.jsxs(s.FormControl,{children:[i.jsx(s.InputLabel,{id:"demo-simple-select-label",children:"Strand"}),i.jsxs(s.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Strand",value:g?.toString(),onChange:function(e){switch(y(""),Number(e.target.value)){case 1:p(1);break;case-1:p(-1);break;default:p(void 0)}},children:[i.jsx(s.MenuItem,{value:void 0}),i.jsx(s.MenuItem,{value:1,children:"+"}),i.jsx(s.MenuItem,{value:-1,children:"-"})]})]}),i.jsx(s.FormControl,{style:{marginTop:20},children:i.jsxs(s.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",defaultValue:Fu.GENE_AND_SUBFEATURES,name:"radio-buttons-group",value:d,onChange:e=>{y("");const{value:t}=e.target;Object.keys(Fu).includes(t)&&A(Fu[t])},children:[i.jsx(s.FormControlLabel,{value:Fu.GENE_AND_SUBFEATURES,control:i.jsx(s.Radio,{}),label:i.jsxs(s.Box,{display:"flex",alignItems:"center",children:["Add gene and sub-features",i.jsx(s.Tooltip,{title:"This is a shortcut to create a gene with a single mRNA, exon, and CDS",children:i.jsx(s.IconButton,{size:"small",children:i.jsx(xc,{sx:{fontSize:18}})})})]})}),i.jsx(s.FormControlLabel,{value:Fu.TRANSCRIPT_AND_SUBFEATURES,control:i.jsx(s.Radio,{}),label:i.jsxs(s.Box,{display:"flex",alignItems:"center",children:["Add transcript and sub-features",i.jsx(s.Tooltip,{title:"This is a shortcut to create a single mRNA with exon and CDS, but without a parent gene",children:i.jsx(s.IconButton,{size:"small",children:i.jsx(xc,{sx:{fontSize:18}})})})]})}),i.jsx(s.FormControlLabel,{value:Fu.CUSTOM,checked:d!==Fu.GENE_AND_SUBFEATURES&&d!==Fu.TRANSCRIPT_AND_SUBFEATURES,control:i.jsx(s.Radio,{}),label:"Add feature with a sequence ontology type"})]})}),d===Fu.CUSTOM?i.jsx(Su,{session:r,ontologyName:"Sequence Ontology",style:{width:170},value:f,filterTerms:wu,renderInput:e=>i.jsx(s.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0}),onChange:(e,t)=>{var n;t&&(n=t,y(""),h(n))}}):null]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",disabled:v,children:"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),m?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:m})}):null]})}function Mu(e,t){const n=(new ut).toHexString();t.push(n);const r={};if(e.children)for(const n of Object.values(e.children)){const e=Mu(n,t);r[e._id]=e}const o="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString();return{...e,refSeq:o,children:e.children&&r,_id:n}}function Ou({changeManager:e,handleClose:t,session:r,sourceAssemblyId:o,sourceFeature:a}){const{assemblyManager:l}=r,d=l.assemblyList,[A,f]=u.useState(d.find((e=>e.name!==o))?.name),[h,g]=u.useState([]),[p,m]=u.useState(""),[y,_]=u.useState(a.min),[v,b]=u.useState("");function C(e,t){const n={};if(e.children)for(const r of Object.values(e.children)){const e=C(r,t);e.refSeq=p,e.min=e.min+t,e.max=e.max+t,n[e._id]=e}const r="string"==typeof e.refSeq?e.refSeq:e.refSeq.toHexString(),o="string"==typeof e._id?e._id:e._id.toHexString();return{...e,refSeq:r,children:e.children&&n,_id:o}}return u.useEffect((()=>{(async function(){if(m(""),!A)return void b("No assemblies to copy to");const e=await l.waitForAssembly(A);if(!e)return;const{refNameAliases:t}=e;if(!t)return;const n=[...Object.entries(t)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t})));g(n),m(n[0]?._id||"")})().catch((e=>{b(String(e))}))}),[A,l]),i.jsxs(Al,{open:!0,title:"Copy features and annotations",handleClose:t,maxWidth:!1,"data-testid":"copy-feature",children:[i.jsxs("form",{onSubmit:async function(n){if(!A)return;n.preventDefault(),b("");const o=a.length,i=await l.waitForAssembly(A);if(!i)return void b(`Assembly not found: ${A}.`);const s=i.getCanonicalRefName(p),u=i.regions?.find((e=>e.refName===s));if(!u)return void b(`RefSeq not found: ${p}.`);const d=y+o;if(d>u.end)return void b(`Feature would extend beyond the bounds of the selected reference sequence. (Feature would end at ${d}, but reference sequence ends at ${u.end})`);if(y<u.start)return void b(`Reference sequence starts at ${u.start}, feature cannot start before that.`);const f=[],h=Mu(c.getSnapshot(a),f),g={...h.attributes};"Parent"in g&&delete g.Parent,h.refSeq=p;const m=y-h.min;h.min=y,h.max=y+o;const _=C(h,m),v=new Nr({changedIds:[h._id],typeName:"AddFeatureChange",assembly:A,addedFeature:{_id:h._id,refSeq:h.refSeq,min:h.min,max:h.max,type:h.type,children:_.children,attributes:g,strand:h.strand},copyFeature:!0,allIds:f});e.submit(v).then((()=>{r.apolloSetSelectedFeature(h._id)})),t(),n.preventDefault()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[i.jsx(s.DialogContentText,{children:"Target assembly"}),i.jsx(s.Select,{labelId:"label",value:A,onChange:function(e){f(e.target.value)},children:d.filter((e=>e.name!==o)).map((e=>i.jsx(s.MenuItem,{value:e.name,children:n.readConfObject(e,"displayName")},e.name)))}),i.jsx(s.DialogContentText,{children:"Target reference sequence"}),i.jsx(s.Select,{labelId:"label",value:p,onChange:function(e){m(e.target.value)},children:h.map((e=>i.jsx(s.MenuItem,{value:e._id,children:e.name},e._id)))}),i.jsx(s.DialogContentText,{children:"Start position in target reference sequence"}),i.jsx(s.TextField,{margin:"dense",type:"number",fullWidth:!0,variant:"outlined",value:y,onChange:e=>{_(Number(e.target.value))}})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{disabled:!A||!p||!y,variant:"contained",type:"submit",children:"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),v?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:v})}):null]})}function Lu({changeManager:e,handleClose:t,session:n}){const{internetAccounts:r}=c.getRoot(n),[o,a]=u.useState(""),[l,d]=u.useState(!1),[A,f]=u.useState(!1),h=r.filter((e=>"ApolloInternetAccount"===e.type));if(0===h.length)throw new Error("No Apollo internet account found");const[g,p]=u.useState(h[0]),{collaborationServerDriver:m}=n.apolloDataStore,y=m.getAssemblies(),[_,v]=u.useState(y.at(0));return i.jsxs(Al,{open:!0,title:"Delete Assembly",handleClose:t,maxWidth:!1,"data-testid":"delete-assembly",children:[i.jsxs("form",{onSubmit:async function(n){if(n.preventDefault(),f(!0),a(""),!_)return void a("Must select assembly!");const r=new Fr({typeName:"DeleteAssemblyChange",assembly:_.name});await e.submit(r,{internetAccountId:g.internetAccountId}),t(),n.preventDefault()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[h.length>1?i.jsxs(i.Fragment,{children:[i.jsx(s.DialogContentText,{children:"Select account"}),i.jsx(s.Select,{value:g.internetAccountId,onChange:function(e){f(!1);const t=h.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);p(t)},disabled:A&&!o,children:r.map((e=>i.jsx(s.MenuItem,{value:e.internetAccountId,children:e.name},e.id)))})]}):null,i.jsx(s.DialogContentText,{children:"Select assembly"}),i.jsx(s.Select,{labelId:"label",value:_?.name??"",onChange:function(e){const t=y.find((t=>t.name===e.target.value));v(t)},disabled:0===y.length,children:y.map((e=>i.jsx(s.MenuItem,{value:e.name,children:e.displayName},e.name)))}),i.jsx(s.DialogContentText,{children:i.jsx("strong",{style:{color:"red"},children:"NOTE: All assembly data will be deleted and this operation cannot be undone!"})}),i.jsx(s.FormGroup,{children:i.jsx(s.FormControlLabel,{control:i.jsx(s.Checkbox,{checked:l,onChange:()=>{d(!l)}}),label:"I understand that all assembly data will be deleted"})})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{disabled:!_||!l,variant:"contained",type:"submit",children:"Delete"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),o?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:o})}):null]})}function Pu({changeManager:e,handleClose:t,selectedFeature:n,session:r,setSelectedFeature:o,sourceAssemblyId:a,sourceFeature:l}){const[d,A]=u.useState(""),{ontologyManager:f}=r.apolloDataStore,{featureTypeOntology:h}=f;function g(e){if(!e.parent?.children||1===e.parent.children.size)return;const t=[];for(const n of e.parent.children.values())h?.isTypeOf(n.type,"CDS")||t.push(n);t.sort(((e,t)=>e.min-t.min));const n=[];for(const t of e.parent.children.values())h?.isTypeOf(t.type,"CDS")||n.push(t);if(n.sort(((e,t)=>t.max-e.max)),e.min===t[0].min){let n;for(const r of t)if(r._id!==e._id&&r.min>=e.min){n=r.min;break}if(n&&n!=e.parent.min)return{typeName:"LocationStartChange",changedId:e.parent._id,featureId:e.parent._id,oldLocation:e.parent.min,newLocation:n}}if(e.max===n[0].max){let t;for(const r of n)if(r._id!=e._id&&r.max<=e.max){t=r.max;break}if(t&&t!=e.parent.max)return{typeName:"LocationEndChange",changedId:e.parent._id,featureId:e.parent._id,oldLocation:e.parent.max,newLocation:t}}}return i.jsxs(Al,{open:!0,title:"Delete feature",handleClose:t,maxWidth:!1,"data-testid":"delete-feature",children:[i.jsxs("form",{onSubmit:r=>{!async function(r){r.preventDefault(),A(""),n?._id===l._id&&o();const i=[],s=new kr({changedIds:[l._id],typeName:"DeleteFeatureChange",assembly:a,changes:[{deletedFeature:c.getSnapshot(l),parentFeatureId:l.parent?._id}]});if(h&&(h.isTypeOf(l.type,"transcript")||h.isTypeOf(l.type,"pseudogenic_transcript"))){const e=g(l);e&&i.push(e)}if(h&&h.isTypeOf(l.type,"exon")){const e=function(e){if(!h)return;if(!h.isTypeOf(e.type,"exon"))return;if(!e.parent?.cdsLocations||0===e.parent.cdsLocations.length||0===e.parent.cdsLocations[0].length)return;if(!e.parent.children)throw new Error("Unable to find parent of CDS");if(1!=e.parent.cdsLocations.length)throw new Error("Unable to handle a transcript with multiple CDSs");const t=(e.parent.cdsLocations.at(0)??[]).sort((({min:e},{min:t})=>e-t));let n;for(const r of e.parent.children.values())if(r.type===t[0].type){n=r;break}if(!n)throw new Error("Unable to find CDS");const r=t[0].min,o=t[t.length-1].max;if(!(e.min>r&&e.max<o||e.max<r||e.min>o)){if(e.min<=r&&e.max>=o)return new kr({changedIds:[n._id],typeName:"DeleteFeatureChange",assembly:a,changes:[{deletedFeature:c.getSnapshot(n),parentFeatureId:n.parent?._id}]});if(e.min<=r&&e.max>r){let r;for(const n of t)if(n.min>e.max){r=n.min;break}if(!r)throw new Error("Error setting new CDS start");return{typeName:"LocationStartChange",changedId:n._id,featureId:n._id,oldLocation:n.min,newLocation:r}}if(e.min<o&&e.max>=o){let r;for(const n of t.reverse())if(n.max<e.min){r=n.max;break}if(!r)throw new Error("Error setting new CDS end");return{typeName:"LocationEndChange",changedId:n._id,featureId:n._id,oldLocation:n.max,newLocation:r}}throw new Error("Unexpected relationship between exon and CDS")}}(l);e&&("DeleteFeatureChange"===e.typeName?(s.changedIds.push(...e.changedIds),s.changes.push(...e.changes)):i.push(e));const t=g(l);if(t){i.push(t);const e=l.parent?.parent;if(e?.children)if("LocationStartChange"===t.typeName){let n=t.newLocation;for(const[,r]of e.children)r._id!=t.featureId&&r.min<n&&(n=r.min);n!=e.min&&i.push({typeName:t.typeName,changedId:e._id,featureId:e._id,oldLocation:e.min,newLocation:n})}else{let n=t.newLocation;for(const[,r]of e.children)r._id!=t.featureId&&r.max>n&&(n=r.max);n!=e.max&&i.push({typeName:t.typeName,changedId:e._id,featureId:e._id,oldLocation:e.max,newLocation:n})}}}const u=function(e,t){if(0===e.length)return;const n=new Ur({typeName:"LocationStartChange",changedIds:[],changes:[],assembly:t}),r=new qr({typeName:"LocationEndChange",changedIds:[],changes:[],assembly:t});for(const t of e)"LocationStartChange"===t.typeName&&(n.changedIds.push(t.changedId),n.changes.push({featureId:t.featureId,oldStart:t.oldLocation,newStart:t.newLocation})),"LocationEndChange"===t.typeName&&(r.changedIds.push(t.changedId),r.changes.push({featureId:t.featureId,oldEnd:t.oldLocation,newEnd:t.newLocation}));if(n.changedIds.length>0&&0===r.changedIds.length)return n;if(r.changedIds.length>0&&0===n.changedIds.length)return r;throw new Error("Unexpected list of changes")}(i,a);await e.submit(s),u&&await e.submit(u),t(),r.preventDefault()}(r)},children:[i.jsx(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:i.jsx(s.DialogContentText,{children:"Are you sure you want to delete the selected feature?"})}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",children:"Yes"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),d?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:d})}):null]})}!function(e){e.GENE_AND_SUBFEATURES="GENE_AND_SUBFEATURES",e.TRANSCRIPT_AND_SUBFEATURES="TRANSCRIPT_AND_SUBFEATURES",e.CUSTOM="CUSTOM"}(Fu||(Fu={}));var qu,Ju={exports:{}},Uu=(qu||(qu=1,function(e,t){!function(){function t(e,t,n){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){a(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function n(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function r(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var o="object"==("undefined"==typeof window?"undefined":X(window))&&window.window===window?window:"object"==("undefined"==typeof self?"undefined":X(self))&&self.self===self?self:"object"==X(se)&&se.global===se?se:void 0,i=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),a=o.saveAs||("object"!=("undefined"==typeof window?"undefined":X(window))||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!i?function(e,i,a){var s=o.URL||o.webkitURL,c=document.createElement("a");c.download=i=i||e.name||"download",c.rel="noopener","string"==typeof e?(c.href=e,c.origin===location.origin?r(c):n(c.href)?t(e,i,a):r(c,c.target="_blank")):(c.href=s.createObjectURL(e),setTimeout((function(){s.revokeObjectURL(c.href)}),4e4),setTimeout((function(){r(c)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,o,i){if(o=o||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=X(t)&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,i),o);else if(n(e))t(e,o,i);else{var a=document.createElement("a");a.href=e,a.target="_blank",setTimeout((function(){r(a)}))}}:function(e,n,r,a){if((a=a||open("","_blank"))&&(a.document.title=a.document.body.innerText="downloading..."),"string"==typeof e)return t(e,n,r);var s="application/octet-stream"===e.type,c=/constructor/i.test(o.HTMLElement)||o.safari,l=/CriOS\/[\d]+/.test(navigator.userAgent);if((l||s&&c||i)&&"undefined"!=typeof FileReader){var u=new FileReader;u.onloadend=function(){var e=u.result;e=l?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=e:location=e,a=null},u.readAsDataURL(e)}else{var d=o.URL||o.webkitURL,A=d.createObjectURL(e);a?a.location=A:location.href=A,a=null,setTimeout((function(){d.revokeObjectURL(A)}),4e4)}});o.saveAs=a.saveAs=a,e.exports=a}()}(Ju)),Ju.exports);function Gu({handleClose:e,session:t}){const[r,o]=u.useState(!1),[a,l]=u.useState(),[d,A]=u.useState(""),{collaborationServerDriver:f,getInternetAccount:h,inMemoryFileDriver:g}=t.apolloDataStore,p=[...f.getAssemblies(),...g.getAssemblies()];return i.jsxs(Al,{open:!0,title:"Export GFF3",handleClose:e,maxWidth:!1,"data-testid":"download-gff3",children:[i.jsxs("form",{onSubmit:async function(o){if(o.preventDefault(),A(""),!a)return void A("Must select assembly to download");const{internetAccountConfigId:i}=n.getConf(a,["sequence","metadata"]);i?await async function(e){if(!a)return void A("Must select assembly to download");const t=h(a.configuration.name,e),n=new URL("export/getID",t.baseURL),o=new URLSearchParams({assembly:a.name});n.search=o.toString();const i=n.toString(),s=t.getFetcher({locationType:"UriLocation",uri:i}),c=await s(i,{method:"GET"});if(!c.ok){const e=await ll(c,"Error when exporting ID");return void A(e)}const{exportID:l}=await c.json(),u=new URL("export",t.baseURL),d=new URLSearchParams({exportID:l,includeFASTA:r?"true":"false"});u.search=d.toString();const f=u.toString();window.open(f,"_blank")}(i):function(e){if(!a)return void A("Must select assembly to download");const{assemblies:t}=e.apolloDataStore,r=t.get(a.name),o=r?.refSeqs;if(!o)return void A(`No refSeqs found for assembly "${a.name}"`);const i=[{directive:"gff-version",value:"3"}],s=n.getConf(a,["sequence","adapter","features"]);for(const e of s){const{end:t,refName:n,start:r}=e;i.push({directive:"sequence-region",value:`${n} ${r+1} ${t}`})}for(const[,e]of o){const{features:t}=e;if(t)for(const[,e]of t)i.push(yt(c.getSnapshot(e)))}for(const e of s){const{refName:t,seq:n}=e;i.push({id:t,description:"",sequence:n})}const l=jc.formatSync(i),u=new Blob([l],{type:"text/plain;charset=utf-8"});Uu.saveAs(u,`${a.displayName??a.name}.gff3`)}(t),e()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[i.jsx(s.DialogContentText,{children:"Select assembly"}),i.jsx(s.Select,{labelId:"label",value:a?.name??"",onChange:function(e){const t=p.find((t=>t.name===e.target.value));l(t)},disabled:0===p.length,children:p.map((e=>i.jsx(s.MenuItem,{value:e.name,children:e.displayName??e.name},e.name)))}),i.jsx(s.DialogContentText,{children:"Select assembly to export to GFF3"}),i.jsx(s.FormGroup,{children:i.jsx(s.FormControlLabel,{"data-testid":"include-fasta-checkbox",control:i.jsx(s.Checkbox,{checked:r,onChange:()=>{o(!r)}}),label:"Include fasta sequence in GFF output"})})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{disabled:!a,variant:"contained",type:"submit",children:"Download"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:e,children:"Cancel"})]})]}),d?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:d})}):null]})}function Hu({changeManager:e,handleClose:t,session:r}){const{apolloDataStore:o}=r,[a,c]=u.useState(),[l,d]=u.useState(),[A,f]=u.useState(""),[h,g]=u.useState(!1),[p,m]=u.useState(),[y,_]=u.useState(!1),[v,b]=u.useState(!0),[C,I]=u.useState(!1),{collaborationServerDriver:w,getInternetAccount:E}=o,x=w.getAssemblies();return u.useEffect((()=>{l&&(async()=>{const{internetAccountConfigId:e}=n.getConf(l,["sequence","metadata"]),t=E(l.name,e);if(!t)throw new Error("No Apollo internet account found");const{baseURL:r}=t,o=new URL("features/count",r),i=new URLSearchParams({assemblyId:l.name});o.search=i.toString();const a=t.getFetcher({locationType:"UriLocation",uri:o.toString()});I(!0);const s=await a(o.toString(),{method:"GET"});if(!s.ok)throw new Error(await ll(s));{const e=await s.json();m(e.count)}I(!1)})().catch((e=>{console.error(e),f(e.message??e)}))}),[E,r,l]),i.jsxs(Al,{open:!0,title:"Import Features from GFF3 file",handleClose:t,maxWidth:!1,"data-testid":"import-features-dialog",children:[C?i.jsx(s.LinearProgress,{}):null,i.jsxs("form",{onSubmit:async function(o){o.preventDefault(),f(""),I(!0),g(!0);let i="";if(!a)return void f("must select a file");if(!l)return void f("Must select assembly to download");const{internetAccountConfigId:s}=n.getConf(l,["sequence","metadata"]),c=E(l.name,s),{baseURL:u}=c,d=new URL("files",u);d.searchParams.set("type","text/x-gff3");const A=d.href,h=new FormData;h.append("file",a),h.append("fileName",a.name),h.append("type","text/x-gff3");const p=c.getFetcher({locationType:"UriLocation",uri:A});t();const{jobsManager:m}=r,_=new AbortController,b={name:`Importing features for ${l.displayName}`,statusMessage:"Uploading file, this may take awhile",progressPct:0,cancelCallback:()=>{_.abort(new DOMException(`Canceling importing of features to ${l.displayName}`,"AbortError")),m.abortJob(b.name)}};if(m.runJob(b),p){const{signal:e}=_,t=await p(A,{method:"POST",body:h,signal:e});if(!t.ok){const e=await ll(t,"Error when inserting new features (while uploading file)");return m.abortJob(b.name,e),void f(e)}i=(await t.json())._id}const C=new Rr({typeName:"AddFeaturesFromFileChange",assembly:l.name,fileId:i,parseOptions:{strict:v},deleteExistingFeatures:y});m.done(b),await e.submit(C,{updateJobsManager:!0})},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[i.jsx(s.DialogContentText,{children:"Select assembly"}),i.jsx(s.Select,{labelId:"label",value:l?.name??"",onChange:function(e){const t=x.find((t=>t.name===e.target.value));d(t),g(!1)},disabled:h&&!A,children:x.map((e=>i.jsx(s.MenuItem,{value:e.name,children:e.displayName??e.name},e.name)))}),i.jsx(s.DialogContentText,{children:"Upload GFF3 to load features"}),i.jsx("input",{type:"file",onChange:function(e){g(!1),e.target.files&&c(e.target.files[0])},disabled:h&&!A}),i.jsx(s.FormControlLabel,{label:"Strict parsing",disabled:h&&!A,control:i.jsx(s.Checkbox,{checked:v,onChange:function(e){b(e.target.checked)}})}),i.jsx(s.FormHelperText,{children:"Don't import any features if any lines in the GFF3 are unable to be processed"}),p&&p>0?i.jsxs(i.Fragment,{children:[i.jsx(s.FormControlLabel,{label:"Delete existing features",disabled:h&&!A,control:i.jsx(s.Checkbox,{checked:y,onChange:function(e){_(e.target.checked)},slotProps:{input:{"aria-label":"controlled"}},color:"warning"})}),i.jsxs(s.FormHelperText,{children:["This assembly has ",p," features that will be deleted"]})]}):null]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{disabled:!(l&&a&&void 0!==p)||h,variant:"contained",type:"submit",children:h?"Submitting...":"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Close"})]})]}),A?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:A})}):null]})}function Yu({handleClose:e,session:t}){const{internetAccounts:n}=c.getRoot(t),[r,o]=u.useState(""),a=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===a.length)throw new Error("No Apollo internet account found");const[l,d]=u.useState(a[0]);return i.jsxs(Al,{open:!0,title:"Log out",handleClose:e,maxWidth:!1,"data-testid":"log-out",children:[i.jsxs("form",{onSubmit:function(e){e.preventDefault(),o(""),l.removeToken(),globalThis.location.reload()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[a.length>1?i.jsxs(i.Fragment,{children:[i.jsx(s.DialogContentText,{children:"Select account"}),i.jsx(s.Select,{value:l.internetAccountId,onChange:function(e){const t=a.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);d(t)},children:n.map((e=>i.jsx(s.MenuItem,{value:e.internetAccountId,children:e.name},e.id)))})]}):null,i.jsx(s.DialogContentText,{children:"Are you sure you want to log out?"})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{disabled:!l,variant:"contained",type:"submit",children:"Log Out"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:e,children:"Cancel"})]})]}),r?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:r})}):null]})}function zu({handleClose:e,session:t}){const{internetAccounts:n}=c.getRoot(t),[r,o]=u.useState(""),[a,l]=u.useState(!1),d=n.filter((e=>"ApolloInternetAccount"===e.type));if(0===d.length)throw new Error("No Apollo internet account found");const[A,f]=u.useState(d[0]),[h,g]=u.useState([]),[p,m]=u.useState([]),{collaborationServerDriver:y}=t.apolloDataStore,_=y.getAssemblies(),[v,b]=u.useState(_.at(0));function C(e,t){const n=[...p],r=e.target.value;if(t)n.includes(r)||(n.push(r),m(n));else{const e=n.indexOf(r,0);-1!==e&&n.splice(e,1),m(n)}}return u.useEffect((()=>{(async function(){const{baseURL:e,getFetcher:t}=A,n=new URL("checks/types",e).href,r=t({locationType:"UriLocation",uri:n}),i=await r(n,{method:"GET"});if(!i.ok){const e=await ll(i,"Error when retrieving checks from server");return void o(e)}const a=await i.json();g(a)})().catch((e=>{o(String(e))}))}),[A]),u.useEffect((()=>{(async function(){if(!v)return;const{baseURL:e,getFetcher:t}=A,n=new URL(`assemblies/${v.name}`,e).href,r=t({locationType:"UriLocation",uri:n}),i=await r(n,{method:"GET"});if(!i.ok){const e=await ll(i,"Error when retrieving assembly from server");return void o(e)}const a=await i.json();m(a.checks)})().catch((e=>{o(String(e))}))}),[v,A]),i.jsxs(Al,{open:!0,title:"Manage Checks",handleClose:e,"data-testid":"manage-checks",children:[i.jsxs("form",{onSubmit:async function(n){if(n.preventDefault(),!v)return void o("Must select assembly!");const{notify:r}=t,{baseURL:i,getFetcher:a}=A,s=new URL("assemblies/checks",i).href,c=a({locationType:"UriLocation",uri:s}),l=await c(s,{method:"POST",body:JSON.stringify({_id:v.name,checks:p,name:""}),headers:{"Content-Type":"application/json"}});if(l.ok)r("Assembly checks updated successfully","success"),e();else{const e=await ll(l,"Error when updating assembly checks");o(e)}},children:[i.jsxs(s.DialogContent,{children:[d.length>1?i.jsxs(i.Fragment,{children:[i.jsx(s.DialogContentText,{children:"Select account"}),i.jsx(s.Select,{value:A.internetAccountId,onChange:function(e){l(!1);const t=d.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);f(t)},disabled:a&&!r,children:n.map((e=>i.jsx(s.MenuItem,{value:e.internetAccountId,children:e.name},e.id)))})]}):null,i.jsx(s.DialogContentText,{children:"Select assembly"}),i.jsx(s.Select,{style:{width:300},labelId:"label",value:v?.name??"",onChange:function(e){const t=_.find((t=>t.name===e.target.value));b(t)},disabled:0===_.length,children:_.map((e=>i.jsx(s.MenuItem,{value:e.name,children:e.displayName},e.name)))}),i.jsx("br",{}),i.jsx("br",{}),i.jsx(s.TableContainer,{component:s.Paper,children:i.jsxs(s.Table,{children:[i.jsx(s.TableHead,{children:i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{children:"Check name"}),i.jsx(s.TableCell,{children:"Use check"})]})}),i.jsx(s.TableBody,{children:h.map((e=>i.jsxs(s.TableRow,{children:[i.jsx(s.TableCell,{children:e.name}),i.jsx(s.TableCell,{children:i.jsx(s.Checkbox,{value:e._id,checked:p.includes(e._id),onChange:C})})]},e._id)))})]})})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",children:"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:e,children:"Cancel"})]})]}),r?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:r})}):null]})}function Ku({changeManager:e,handleClose:t,session:n}){const{internetAccounts:r}=c.getRoot(n),o=r.filter((e=>"ApolloInternetAccount"===e.type)).filter((e=>e.role?.includes("admin")));if(0===o.length)throw new Error("No Apollo internet account found");const[a,l]=u.useState(""),[A,f]=u.useState(o[0]),[h,g]=u.useState([]);function p(e){return e===A.getUserId()}u.useEffect((()=>{(async function(){const{baseURL:e}=A,t=new URL("users",e).href,n=A.getFetcher({locationType:"UriLocation",uri:t}),r=await n(t,{method:"GET"});if(!r.ok){const e=await ll(r,"Error when getting user data from db");return void l(e)}const o=await r.json();g(o.map((e=>void 0===e.role?{...e,role:""}:e)))})().catch((e=>{l(String(e))}))}),[A]);const m=[{field:"username",headerName:"User",width:140},{field:"email",headerName:"Email",width:160},{field:"role",headerName:"Role",width:140,type:"singleSelect",valueOptions:["readOnly","user","admin","none"],getOptionLabel(e){switch(e){case"readOnly":return"Read-only";case"user":return"User";case"admin":return"Admin";case"none":return"None";default:return"unknown"}},editable:!0},{field:"actions",type:"actions",getActions:t=>[i.jsx(d.GridActionsCellItem,{icon:i.jsx(ga,{}),onClick:async()=>{globalThis.confirm("Delete this user?")&&await async function(t){const n=new Tr({typeName:"DeleteUserChange",userId:t});await e.submit(n,{internetAccountId:A.internetAccountId}),g((e=>e.filter((e=>e._id!==t))))}(t.id)},disabled:p(t.id),label:"Delete"},`delete-${t.id}`)]}];return i.jsxs(Al,{open:!0,fullScreen:!0,title:"Manage users",handleClose:t,"data-testid":"manage-users",children:[i.jsxs(s.DialogContent,{children:[o.length>1?i.jsxs(i.Fragment,{children:[i.jsx(s.DialogContentText,{children:"Select account"}),i.jsx(s.Select,{value:A.internetAccountId,onChange:function(e){const t=o.find((t=>t.internetAccountId===e.target.value));if(!t)throw new Error(`Could not find internetAccount with ID "${e.target.value}"`);f(t)},disabled:!a,children:r.map((e=>i.jsx(s.MenuItem,{value:e.internetAccountId,children:e.name},e.id)))})]}):null,i.jsx("div",{style:{height:"100%",width:"100%"},children:i.jsx(d.DataGrid,{pagination:!0,rows:h,columns:m,getRowId:e=>e._id,slots:{toolbar:d.GridToolbar},getRowHeight:()=>"auto",isCellEditable:e=>!p(e.id),processRowUpdate:async function(t){const n=new ro({typeName:"UserChange",role:t.role,userId:t._id});return await e.submit(n,{internetAccountId:A.internetAccountId}),t},onProcessRowUpdateError:e=>{l(String(e))}})})]}),i.jsx(s.DialogActions,{children:i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Close"})}),a?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:a})}):null]})}function Wu(e,t){const n=t[e];let r;if("three_prime"===e)r=`3'end (coords: ${n.min+1}-${n.max})`;else{if("five_prime"!==e)throw new Error(`Unexpected direction: "${e}"`);r=`5'end (coords: ${n.min+1}-${n.max})`}return r}function Vu({changeManager:e,handleClose:t,selectedFeature:n,setSelectedFeature:r,sourceAssemblyId:o,sourceFeature:a}){const[l,d]=u.useState(""),[A,f]=u.useState(),h=function(e){const t={},n=e.parent;if(!n)throw new Error("Unable to find parent of reference exon");let r=[];if(n.children)for(const[,e]of n.children)"exon"===e.type&&r.push(e);r=r.sort(((e,t)=>e.min===t.min?e.max-t.max:e.min-t.min)),n.strand&&-1===n.strand&&(r=r.reverse());let o=0;for(const n of r){if(n._id===e._id){r.length>o+1&&(t.three_prime=r[o+1]),o>0&&(t.five_prime=r[o-1]);break}o++}return t}(a);return i.jsxs(Al,{open:!0,title:"Merge exons",handleClose:t,maxWidth:!1,"data-testid":"merge-exons",children:[i.jsxs("form",{onSubmit:function(i){i.preventDefault(),d("");const{parent:s}=a;if(!A||!s)return;n?._id===a._id&&r();const l=new Vr({changedIds:[a._id],typeName:"MergeExonsChange",assembly:o,firstExon:c.getSnapshot(a),secondExon:c.getSnapshot(A),parentFeatureId:s._id});e.submit(l),t(),i.preventDefault()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[0===Object.keys(h).length?"There are no neighbouring exons to merge with":"Merge with exon on:",i.jsx(s.FormControl,{style:{marginTop:5},children:i.jsx(s.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",name:"radio-buttons-group",value:A,onChange:e=>{d("");const{value:t}=e.target;f(h[t])},children:Object.keys(h).map((e=>i.jsx(s.FormControlLabel,{value:e,control:i.jsx(s.Radio,{}),label:i.jsx(s.Box,{display:"flex",alignItems:"center",children:Wu(e,h)})},e)))})})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",disabled:0===Object.keys(h).length||void 0===A,children:"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),l?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:l})}):null]})}function $u(e){let t;return t=e.attributes.get("gff_name")?e.attributes.get("gff_name")?.join(","):e.attributes.get("gff_id")?e.attributes.get("gff_id")?.join(","):e._id,`${t} [${e.min+1}-${e.max}]`}function Xu({changeManager:e,handleClose:t,selectedFeature:n,session:r,setSelectedFeature:o,sourceAssemblyId:a,sourceFeature:l}){const[d,A]=u.useState(""),f=function(e,t){const n=e.parent;if(!n)throw new Error("Unable to find parent of reference transcript");const{featureTypeOntology:r}=t.apolloDataStore.ontologyManager;if(!r)throw new Error("featureTypeOntology is undefined");const o={};if(n.children)for(const[,t]of n.children)r.isTypeOf(t.type,"transcript")&&t._id!==e._id&&(o[t._id]=t);return o}(l,r),h=Object.keys(f).at(0),[g,p]=u.useState(h);return i.jsxs(Al,{open:!0,title:"Merge transcripts",handleClose:t,maxWidth:!1,"data-testid":"merge-transcripts",children:[i.jsxs("form",{onSubmit:function(r){if(r.preventDefault(),A(""),!g)return;const i=f[g];if(n?._id===l._id&&o(),!l.parent)throw new Error("Cannot find parent");const s=new Xr({changedIds:[l._id],typeName:"MergeTranscriptsChange",assembly:a,firstTranscript:c.getSnapshot(l),secondTranscript:c.getSnapshot(i),parentFeatureId:l.parent._id});e.submit(s),t()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[0===Object.keys(f).length?"There are no transcripts to merge with":"Merge with transcript:",i.jsx(s.FormControl,{style:{marginTop:5},children:i.jsx(s.RadioGroup,{"aria-labelledby":"demo-radio-buttons-group-label",name:"radio-buttons-group",value:g,onChange:e=>{A("");const{value:t}=e.target;p(t)},children:Object.keys(f).map((e=>i.jsx(s.FormControlLabel,{value:e,control:i.jsx(s.Radio,{}),label:i.jsx(s.Box,{display:"flex",alignItems:"center",children:$u(f[e])})},e)))})})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",disabled:0===Object.keys(f).length||void 0===g,children:"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),d?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:d})}):null]})}var Zu=function(){return crypto.getRandomValues(new Uint8Array(arguments.length>0&&void 0!==arguments[0]?arguments[0]:21)).reduce((function(e,t){return e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")}),"")};function ed({handleClose:e,session:t}){const{apolloDataStore:n}=t,{addAssembly:r,addSessionAssembly:a,assemblyManager:c,notify:l}=t,[d,A]=u.useState(null),[f,h]=u.useState(""),[g,p]=u.useState(""),[m,y]=u.useState(!1),_=s.useTheme();return i.jsxs(Al,{open:!0,title:"Open local GFF3 file",handleClose:e,maxWidth:!1,"data-testid":"open-local-file",children:[i.jsxs("form",{onSubmit:async function(i){if(i.preventDefault(),p(""),y(!0),!d)throw new Error("No file selected");const s=await new Response(d).text(),u=`${f}-${d.name}-${Zu(8)}`;try{await Mc(u,s,n)}catch(t){return console.error(t),l(`Error loading GFF3 ${d.name}, ${String(t)}`,"error"),void e()}const A={};if(o.isElectron){const{webUtils:e}=globalThis.require("electron");A.file=e.getPathForFile(d)}const h={name:u,aliases:[f],displayName:f,sequence:{trackId:`sequenceConfigId-${f}`,type:"ReferenceSequenceTrack",adapter:{type:"ApolloSequenceAdapter",assemblyId:u},metadata:{apollo:!0,...A}}};await(o.isElectron?r?.(h):(a||r)(h));const g=await c.waitForAssembly(h.name);g?(t.addApolloTrackConfig(g),l(`Loaded GFF3 ${d.name}`,"success")):l(`Error loading GFF3 ${d.name}`,"error"),e()},children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[i.jsxs(s.FormControl,{children:[i.jsxs("div",{style:{flexDirection:"row"},children:[i.jsxs(s.Button,{variant:"contained",component:"label",style:{marginRight:_.spacing()},children:["Choose File",i.jsx("input",{type:"file",required:!0,hidden:!0,onChange:function(e){const t=e.target.files?.item(0);if(t&&(p(""),A(t),!f)){const e=t.name,n=e.lastIndexOf(".");h(-1===n?e:e.slice(0,n))}}})]}),d?d.name:"No file chosen"]}),i.jsx(s.FormHelperText,{children:"Make sure your GFF3 has an embedded FASTA section"})]}),i.jsx(s.TextField,{required:!0,label:"Assembly name",value:f,onChange:function(e){h(e.target.value)}})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{disabled:!1,variant:"contained",type:"submit",children:m?"Submitting...":"Submit"}),i.jsx(s.Button,{disabled:m,variant:"outlined",type:"submit",onClick:e,children:"Cancel"})]})]}),g?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:g})}):null]})}const td=Ec()((e=>({changeTextarea:{fontFamily:"monospace",width:600,resize:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius}})));function nd({handleClose:e,session:t}){const{internetAccounts:n}=c.getRoot(t),r=n.find((e=>"ApolloInternetAccount"===e.type));if(!r)throw new Error("No Apollo internet account found");const{baseURL:o}=r,{classes:a}=td(),[l,A]=u.useState(),[f,h]=u.useState([]),{collaborationServerDriver:g}=t.apolloDataStore,p=g.getAssemblies(),[m,y]=u.useState(p.at(0)),_=[{field:"sequence"},{field:"typeName",headerName:"Change type",width:200,type:"singleSelect",valueOptions:[...ne.changes.keys()]},{field:"changes",headerName:"Change JSON",width:600,renderCell:({value:e})=>i.jsx("textarea",{className:a.changeTextarea,value:JSON.stringify(e),readOnly:!0})},{field:"user",headerName:"User",width:140},{field:"createdAt",headerName:"Time",width:160,type:"dateTime",valueGetter:e=>e&&new Date(e)}];return u.useEffect((()=>{(async function(){if(!m)return;const e=new URL("changes",o),t=new URLSearchParams({assembly:m.name});e.search=t.toString();const n=e.toString(),i=r?.getFetcher({locationType:"UriLocation",uri:n});if(i){const e=await i(n,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await ll(e,"Error when retrieving changes");return void A(t)}const t=await e.json();h(t)}})().catch((e=>{A(String(e))}))}),[r,o,m]),i.jsxs(Al,{open:!0,fullScreen:!0,title:"View change log",handleClose:e,"data-testid":"view-changelog",children:[i.jsx(s.Select,{style:{width:200,marginLeft:40},value:m?.name??"",onChange:function(e){const t=p.find((t=>t.name===e.target.value));y(t)},children:p.map((e=>i.jsx(s.MenuItem,{value:e.name,children:e.displayName||e.name},e.name)))}),i.jsx(s.DialogContent,{children:i.jsx(d.DataGrid,{pagination:!0,rows:f,columns:_,getRowId:e=>e._id,slots:{toolbar:d.GridToolbar},initialState:{sorting:{sortModel:[{field:"sequence",sort:"desc"}]},columns:{columnVisibilityModel:{sequence:!1}}}})}),i.jsx(s.DialogActions,{children:i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:e,children:"Close"})}),l?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:l})}):null]})}const rd=[{field:"refName",headerName:"Ref Name"},{field:"aliases",headerName:"Aliases",editable:!0,flex:1}],od=e=>/^[\da-f]{24}$/i.test(e),id=f.observer((function({changeManager:e,handleClose:t,session:n}){const r=u.useRef(null),[o,a]=u.useState(""),[c,l]=u.useState(!1),[A,f]=u.useState(),[h,g]=u.useState([]),[p,m]=u.useState(new Map),{apolloDataStore:y}=n,{collaborationServerDriver:_}=y,v=_.getAssemblies();u.useEffect((()=>{v.length>0&&(f(v[0]),_.getRefNameAliases(v[0].name).then((e=>{b(e)})).catch((()=>{m(new Map),a("Error fetching refName aliases for assembly")})))}),[]);const b=e=>{const t=new Map;for(const n of e){const e=n.refName;od(e)||t.set(e,n.aliases)}m(t)},C=()=>[...p].map(((e,t)=>({id:t,refName:e[0],aliases:e[1].filter((t=>t!==e[0])).join(", ")})));return i.jsxs(Al,{open:!0,title:"Add reference sequence aliases",handleClose:t,maxWidth:"sm","data-testid":"add-refseq-alias",fullWidth:!0,children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:[i.jsxs(s.Grid,{container:!0,spacing:2,children:[i.jsx(s.Grid,{children:i.jsxs(s.FormControl,{disabled:c&&!o,fullWidth:!0,children:[i.jsx(s.InputLabel,{id:"demo-simple-select-label",children:"Assembly"}),i.jsx(s.Select,{labelId:"demo-simple-select-label",id:"demo-simple-select",label:"Assembly",value:A?.name??"",onChange:e=>{const t=v.find((t=>t.name===e.target.value));f(t),t?.name&&(_.getRefNameAliases(t.name).then((e=>{b(e),a("")})).catch((()=>{m(new Map),a("Error fetching refName aliases for assembly")})),l(!1),r.current&&(r.current.value=""))},style:{minWidth:150},children:v.map((e=>i.jsx(s.MenuItem,{value:e.name,children:e.displayName},e.name)))})]})}),i.jsxs(s.Grid,{children:[i.jsx(s.InputLabel,{children:"Load RefName alias"}),i.jsx("input",{type:"file",onChange:e=>{(async e=>{if(!e.target.files)return;const t=e.target.files[0],n=(await t.text()).split("\n"),r=new Map(p);a("");for(const e of n){const t=e.split("\t");for(const e of t)r.has(e)&&r.set(e,[...r.get(e)??[],...t])}m(r)})(e).catch((()=>{a("Error reading file")}))},ref:r,disabled:c&&!o||!A})]})]}),A&&p.size>0?i.jsxs("div",{style:{height:200,width:"100%",marginTop:20},children:[i.jsx(s.InputLabel,{children:"Refname aliases found for selected assembly."}),i.jsx(d.DataGrid,{rows:C(),columns:rd,initialState:{pagination:{paginationModel:{page:0,pageSize:5}}},pageSizeOptions:[5,10],onRowSelectionModelChange:e=>{const{ids:t}=e;if(t.size>0){l(!0);const e=[...t.values()].flatMap((e=>C().filter((t=>String(t.id)===String(e)))));g(e)}else l(!1),g([])},processRowUpdate:(e,t)=>{const n=new Map(p);return n.set(e.refName,e.aliases.split(",")),m(n),e},checkboxSelection:!0,disableRowSelectionExcludeModel:!0})]}):null]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",disabled:!c,onClick:()=>{const n=[];for(const e of h){const{refName:t}=e,r=e.aliases.split(",").map((e=>e.trim())).filter((e=>e.length>0));n.push({refName:t,aliases:r})}if(a(""),!A)return void a("No assembly selected");const r=new Dr({typeName:"AddRefSeqAliasesChange",assembly:A.name,refSeqAliases:n});e.submit(r).catch((()=>{a("Error submitting change")})),t()},children:"Submit"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Close"})]}),o?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:o})}):null]})}));function ad({handleClose:e,session:t}){const{internetAccounts:n}=c.getRoot(t),{collaborationServerDriver:r}=t.apolloDataStore,o=n.find((e=>"ApolloInternetAccount"===e.type));if(!o)throw new Error("No Apollo internet account found");const{baseURL:a}=o,[l,A]=u.useState(),[f,h]=u.useState([]),g=r.getAssemblies(),[p,m]=u.useState(g.at(0));return u.useEffect((()=>{(async function(){const e=p?.name;if(!e)return;const t=new URL("checks",a),n=new URLSearchParams({assembly:e});t.search=n.toString();const r=t.toString(),i=o?.getFetcher({locationType:"UriLocation",uri:r});if(i){const e=await i(r,{headers:new Headers({"Content-Type":"application/json"})});if(!e.ok){const t=await ll(e,"Error when retrieving checks");return void A(t)}const t=await e.json();h(t)}})().catch((e=>{A(String(e))}))}),[p,o,a]),i.jsxs(Al,{open:!0,fullScreen:!0,title:"View check results",handleClose:e,"data-testid":"view-check-results",children:[i.jsx(s.Select,{style:{width:200,marginLeft:40},value:p?.name??"",onChange:function(e){const t=g.find((t=>t.name===e.target.value));m(t)},disabled:0===g.length,children:g.map((e=>i.jsx(s.MenuItem,{value:e.name,children:e.displayName},e.name)))}),i.jsx(s.DialogContent,{children:i.jsx(d.DataGrid,{pagination:!0,rows:f,columns:[{field:"_id",headerName:"id",width:50},{field:"name",headerName:"Check name",width:200},{field:"refSeq",headerName:"Reference sequence ID",width:200},{field:"ids",headerName:"Feature IDs",width:200},{field:"message",headerName:"Message",flex:1}],getRowId:e=>e._id,slots:{toolbar:d.GridToolbar},initialState:{sorting:{sortModel:[{field:"name",sort:"asc"}]},columns:{columnVisibilityModel:{name:!0}}}})}),i.jsx(s.DialogActions,{children:i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:e,children:"Close"})}),l?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:l})}):null]})}function sd(e){return e.max-e.min<2?{isSplittable:!1,comment:"This exon is too short to be split"}:{isSplittable:!0,comment:""}}function cd(e){const t=sd(e);return t.isSplittable?"Are you sure you want to split the selected exon?":t.comment}function ld({changeManager:e,handleClose:t,selectedFeature:n,setSelectedFeature:r,sourceAssemblyId:o,sourceFeature:a}){const[l,d]=u.useState(""),A=c.getSnapshot(a);return i.jsxs(Al,{open:!0,title:"Split exon",handleClose:t,maxWidth:!1,"data-testid":"split-exon",children:[i.jsxs("form",{onSubmit:function(i){i.preventDefault(),d(""),n?._id===a._id&&r();const s=A.min+(A.max-A.min)/2,c=Math.floor(s),l=Math.ceil(s);if(!a.parent?._id)throw new Error("Splitting an exon without parent is not possible yet");const u=new eo({changedIds:[a._id],typeName:"SplitExonChange",assembly:o,exonToBeSplit:A,parentFeatureId:a.parent._id,upstreamCut:c,downstreamCut:l,leftExonId:(new ut).toHexString(),rightExonId:(new ut).toHexString()});e.submit(u),t(),i.preventDefault()},children:[i.jsx(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:i.jsx(s.DialogContentText,{children:cd(A)})}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",disabled:!sd(A).isSplittable,children:"Yes"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:t,children:"Cancel"})]})]}),l?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:l})}):null]})}function ud({changeManager:e,handleClose:t,session:n,sourceAssemblyId:r,sourceFeature:o,setSelectedFeature:a}){const[l,d]=u.useState(""),{notify:A}=n;return i.jsxs(Al,{open:!0,title:"Duplicate transcript",handleClose:t,maxWidth:!1,"data-testid":"duplicate-transcript",children:[i.jsxs("form",{onSubmit:i=>{!async function(i){i.preventDefault(),d("");try{const i=o.parent;if(!i)return void d("No parent gene found for this transcript");const s=c.getSnapshot(o),l=(new ut).toHexString(),u={...s,_id:l};if(u.children){const e={};for(const[,t]of Object.entries(u.children)){const n=(new ut).toHexString();e[n]={...t,_id:n}}u.children=e}const f=new Nr({parentFeatureId:i._id,changedIds:[i._id],typeName:"AddFeatureChange",assembly:r,addedFeature:u});await e.submit(f).then((()=>{a(void 0),n.apolloSetSelectedFeature(l),A("Successfully duplicated transcript","success")})),t()}catch(e){d(e instanceof Error?e.message:"Failed to duplicate transcript")}}(i)},children:[i.jsx(s.DialogContent,{style:{display:"flex",flexDirection:"column"},children:i.jsx(s.DialogContentText,{children:"Are you sure you want to create a duplicate of this transcript?"})}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",children:"Yes"}),i.jsx(s.Button,{variant:"outlined",type:"button",onClick:t,children:"Cancel"})]})]}),l?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:l})}):null]})}var dd=a.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6m0 14c-2.03 0-4.43-.82-6.14-2.88C7.55 15.8 9.68 15 12 15s4.45.8 6.14 2.12C16.43 19.18 14.03 20 12 20"}),"AccountCircle");function Ad(e){const{color:t}=e;return i.jsx(s.SvgIcon,{viewBox:"0 0 18 18",style:{fontSize:18,marginRight:4},...e,children:"disabled"===t?i.jsx("path",{d:"M9.001,10.71 l0,-3.348 l8.424,0 c0.126,0.567,0.225,1.098,0.225,1.845 c0,5.139,-3.447,8.793,-8.64,8.793 c-4.968,0,-9,-4.032,-9,-9 c0,-4.968,4.032,-9,9,-9 c2.43,0,4.464,0.891,6.021,2.349 l-2.556,2.484 c-0.648,-0.612,-1.782,-1.332,-3.465,-1.332 c-2.979,0,-5.409,2.475,-5.409,5.508 c0,3.033,2.43,5.508,5.409,5.508 c3.447,0,4.716,-2.385,4.95,-3.798 l-4.959,0 l0,-0.009 z"}):i.jsxs(i.Fragment,{children:[i.jsx("path",{d:"M17.64,9.20454545 c0,-0.638,-0.057,-1.252,-0.164,-1.841 l-8.476,0 l0,3.481 l4.844,0 c-0.209,1.125,-0.843,2.079,-1.796,2.717 l0,2.258 l2.908,0 c1.702,-1.567,2.684,-3.874,2.684,-6.615 l0,0 z",fill:"#4285F4"}),i.jsx("path",{d:"M9,18 c2.43,0,4.467,-0.806,5.956,-2.18 l-2.908,-2.259 c-0.806,0.54,-1.837,0.859,-3.048,0.859 c-2.344,0,-4.328,-1.583,-5.036,-3.71 l-3.007,0 l0,2.332 c1.481,2.941,4.525,4.958,8.043,4.958 l0,0 z",fill:"#34A853"}),i.jsx("path",{d:"M3.96409091,10.71 c-0.18,-0.54,-0.282,-1.117,-0.282,-1.71 c0,-0.593,0.102,-1.17,0.282,-1.71 l0,-2.332 l-3.007,0 c-0.609,1.215,-0.957,2.59,-0.957,4.042 c0,1.452,0.348,2.827,0.957,4.042 l3.007,-2.332 l0,0 z",fill:"#FBBC05"}),i.jsx("path",{d:"M9,3.57954545 c1.321,0,2.508,0.454,3.44,1.346 l2.582,-2.581 c-1.559,-1.453,-3.596,-2.345,-6.022,-2.345 c-3.518,0,-6.562,2.017,-8.043,4.959 l3.007,2.331 c0.708,-2.127,2.692,-3.71,5.036,-3.71 l0,0 z",fill:"#EA4335"})]})})}function fd(e){const{color:t}=e;return i.jsxs(s.SvgIcon,{viewBox:"0 0 21 21",style:{fontSize:21},...e,children:[i.jsx("rect",{x:"1",y:"1",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#F25022"}),i.jsx("rect",{x:"1",y:"11",width:"9",height:"9",fill:"disabled"===t?"#7B7B7B":"#00A4EF"}),i.jsx("rect",{x:"11",y:"1",width:"9",height:"9",fill:"disabled"===t?"#939393":"#7FBA00"}),i.jsx("rect",{x:"11",y:"11",width:"9",height:"9",fill:"disabled"===t?"#B9B9B9":"#FFB900"})]})}const hd=Ec()((e=>({loginButton:{marginBottom:e.spacing(1),width:"220px",height:"40px",fontSize:"16px",textTransform:"none",justifyContent:"left",padding:"3px 12px"}})));function gd(e){const{classes:t}=hd(),{disabled:n}=e;return i.jsx(s.Button,{className:t.loginButton,variant:"outlined",startIcon:i.jsx(Ad,{color:n?"disabled":void 0}),...e,children:"Sign in with Google"})}function pd(e){const{classes:t}=hd(),{disabled:n}=e;return i.jsx(s.Button,{className:t.loginButton,variant:"outlined",startIcon:i.jsx(fd,{color:n?"disabled":void 0}),...e,children:"Sign in with Microsoft"})}function md(e){const{classes:t}=hd();return i.jsx(s.Button,{className:t.loginButton,variant:"outlined",startIcon:i.jsx(dd,{fontSize:"small"}),...e,children:"Continue as Guest"})}const yd=Ec()((e=>({divider:{marginTop:e.spacing(4),marginBottom:e.spacing(5)}}))),_d=({baseURL:e,handleClose:t,name:n})=>{const{classes:r}=yd(),[o,a]=u.useState(""),[c,l]=u.useState([]);function d(e){t("google"===e?"google":"microsoft"===e?"microsoft":"guest")}u.useEffect((()=>{const t=new AbortController,{signal:n}=t;return async function(){const t=new URL("auth/types",e).href,r=await fetch(t,{method:"GET",signal:n});if(!r.ok){const e=await ll(r,"Error when retrieving auth types from server");return void a(e)}const o=await r.json();l(o)}().catch((e=>{Hl(e)||a(String(e))})),()=>{t.abort(new DOMException("Error retrieving valid authentication types","AbortError"))}}),[e]);const A=c.includes("google"),f=c.includes("microsoft"),h=c.includes("guest");return i.jsxs(Al,{open:!0,title:`Log in to ${n}`,handleClose:t,maxWidth:!1,"data-testid":"login-apollo",children:[i.jsxs(s.DialogContent,{style:{display:"flex",flexDirection:"column",paddingTop:8},children:[A?i.jsx(gd,{disabled:!A,onClick:()=>{d("google")}}):null,f?i.jsx(pd,{disabled:!f,onClick:()=>{d("microsoft")}}):null,h?i.jsxs(i.Fragment,{children:[i.jsx(s.Divider,{className:r.divider}),i.jsx(md,{onClick:()=>{d("guest")}})]}):null]}),i.jsx(s.DialogActions,{children:i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:()=>{t()},children:"Cancel"})}),o?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:o})}):null]})},vd="undefined"==typeof sessionStorage,bd=e=>r.InternetAccount.named("ApolloInternetAccount").props({type:c.types.literal("ApolloInternetAccount"),configuration:n.ConfigurationReference(e)}).views((e=>({get baseURL(){return n.getConf(e,"baseURL")},getUserId(){const t=e.retrieveToken();if(t)return bo(t).id}}))).volatile((()=>({role:void 0,controller:new AbortController}))).actions((e=>({setRole(){const t=e.retrieveToken();if(!t)return void(e.role=void 0);const n=bo(t),{role:r}=n;e.role!==r&&(e.role=r)}}))).actions((e=>{let t;return{addMessageChannel(e,n){t=t=>{this.finishOAuthWindow(t,e,n)},window.addEventListener("message",t)},deleteMessageChannel(){window.removeEventListener("message",t)},finishOAuthWindow(t,n,r){if(t.data.name!==`JBrowseAuthWindow-${e.internetAccountId}`)return;const o=t.data.redirectUri.replace("#","?"),i=new URL(o),a=new URLSearchParams(i.search).get("access_token");this.deleteMessageChannel(),a?(e.storeToken(a),e.setRole(),n(a)):r(new Error("Error with token endpoint"))},async openAuthWindow(t,n,r){const i=o.isElectron?"http://localhost/auth":globalThis.location.origin+globalThis.location.pathname,a=new URL("auth/login",e.baseURL),s=new URLSearchParams({type:t,redirect_uri:i});a.search=s.toString();const c=`JBrowseAuthWindow-${e.internetAccountId}`;if(o.isElectron){const{ipcRenderer:t}=globalThis.require("electron"),o=await t.invoke("openAuthWindow",{internetAccountId:e.internetAccountId,data:{redirect_uri:i},url:a.toString()}),s=new MessageEvent("message",{data:{name:c,redirectUri:o}});this.finishOAuthWindow(s,n,r)}else this.addMessageChannel(n,r),window.open(a,c,"width=500,height=600")}}})).actions((e=>({async getTokenFromUser(t,n){const{baseURL:r}=e,o=await new Promise(((t,n)=>{const{session:r}=c.getRoot(e),{baseURL:o,name:i}=e;r.queueDialog((e=>[_d,{name:i,handleClose:r=>{r?r instanceof Error?n(r):t(r):n(new Error("user cancelled entry")),e()},baseURL:o}]))}));if("guest"!==o)return void e.openAuthWindow(o,t,n);const i=new URL("auth/login",r),a=new URLSearchParams({type:o});i.search=a.toString();const s=i.toString(),l=await fetch(s,{signal:e.controller.signal});if(!l.ok){const e=await ll(l,"Error when logging in");return void n(new Error(e))}const{token:u}=await l.json();t(u)}}))).volatile((()=>({lastChangeSequenceNumber:void 0}))).actions((e=>({setLastChangeSequenceNumber(t){e.lastChangeSequenceNumber=t}}))).actions((e=>({updateLastChangeSequenceNumber:c.flow((function*(){const{baseURL:t}=e,n=new URL("changes",t),r=new URLSearchParams({limit:"1"});n.search=r.toString();const o=n.toString(),i=e.getFetcher({locationType:"UriLocation",uri:o});let a;try{a=yield i(o,{method:"GET",signal:e.controller.signal})}catch(t){return void(e.controller.signal.aborted||console.error(t))}if(!a.ok){const e=yield ll(a,"Error when fetching server LastChangeSequence");throw new Error(e)}const s=yield a.json();e.setLastChangeSequenceNumber(s.length>0?s[0].sequence:0)})),getMissingChanges:c.flow((function*(){const{session:t}=c.getRoot(e),{changeManager:n}=t.apolloDataStore;if(!e.lastChangeSequenceNumber)throw new Error("No LastChangeSequence stored in session. Please, refresh you browser to get last updates from server");const{baseURL:r,lastChangeSequenceNumber:o}=e,i=new URL("changes",r),a=new URLSearchParams({since:String(o),sort:"1"});i.search=a.toString();const s=i.toString(),l=e.getFetcher({locationType:"UriLocation",uri:s});let u;try{u=yield l(s,{method:"GET",signal:e.controller.signal})}catch(t){return void(e.controller.signal.aborted||console.error(t))}if(!u.ok)return void console.error(`Error when fetching the last updates to recover socket connection — ${u.status}`);const d=yield u.json();for(const e of d){const t=oe.fromJSON(e);n.submit(t,{submitToBackend:!1})}}))}))).volatile((e=>{const{origin:t,pathname:n}=new URL("socket.io/",e.baseURL);return{socket:fa(t,{path:n})}})).actions((e=>({addSocketListeners(){const{session:t}=c.getRoot(e),{notify:n}=t,r=e.retrieveToken();if(!r)throw new Error("No Token found");const o=vo(bo(r)),{socket:i}=e,{addCheckResult:a,changeManager:s,deleteCheckResult:l}=t.apolloDataStore;i.on("connect",(()=>{e.getMissingChanges()})),i.on("connect_error",(e=>{console.error(e),n("Could not connect to the Apollo server.","error")})),i.on("COMMON",(e=>{if("checkResult"in e)return void(e.deleted?l(e.checkResult._id.toString()):a(e.checkResult));if(sessionStorage.setItem("LastChangeSequence",String(e.changeSequence)),e.userSessionId===o)return;const t=oe.fromJSON(e.changeInfo);s.submit(t,{submitToBackend:!1})})),i.on("USER_LOCATION",(e=>{const{channel:n,locations:r,userName:i,userSessionId:a}=e;"USER_LOCATION"===n&&a!==o&&t.addOrUpdateCollaborator({name:i,id:a,locations:r})})),i.on("REQUEST_INFORMATION",(e=>{const{channel:n,userSessionId:o}=e;"REQUEST_INFORMATION"===n&&o!==r&&t.broadcastLocations()}))}}))).actions((e=>({postUserLocation:(t=>{let n;return t=>{clearTimeout(n),n=setTimeout((()=>{!async function(t){if(!c.isAlive(e)||"none"===e.role)return;const{baseURL:n,controller:r}=e,o=new URL("users/userLocation",n).href,i=new URLSearchParams(JSON.stringify(t)),a=e.getFetcher({locationType:"UriLocation",uri:o});try{if(!(await a(o,{method:"POST",body:i,signal:r.signal})).ok)throw new Error("ignore")}catch{console.error("Broadcasting user location failed")}}(t)}),300)}})()}))).volatile((()=>({roleNotificationSent:!1}))).actions((e=>{function t(){e.postUserLocation([])}function n(){if("hidden"===document.visibilityState&&e.postUserLocation([]),"visible"===document.visibilityState){const{session:t}=c.getRoot(e);t.broadcastLocations()}}return{initialize:c.flow((function*(r){if("none"===r){if(!e.roleNotificationSent){const{session:t}=c.getRoot(e);t.notify("You have registered as an Apollo user but have not been given access. Ask your administrator to enable access for your account.","warning"),e.roleNotificationSent=!0}return}if("admin"===r){const t=c.getRoot(e);o.isAbstractMenuManager(t)&&function(e){e.appendToMenu("Apollo",{label:"Admin",type:"subMenu",icon:ha,subMenu:[{label:"Add Assembly",icon:Uo,onClick:e=>{e.queueDialog((t=>[pl,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Delete Assembly",icon:ga,onClick:e=>{e.queueDialog((t=>[Lu,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Import Features",icon:pa,onClick:e=>{e.queueDialog((t=>[Hu,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Add reference sequence aliases",onClick:e=>{e.queueDialog((t=>[id,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Add Assembly aliases",onClick:e=>{e.queueDialog((t=>[yl,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Manage Users",icon:ma,onClick:e=>{e.queueDialog((t=>[Ku,{session:e,handleClose:()=>{t()},changeManager:e.apolloDataStore.changeManager}]))}},{label:"Manage Checks",icon:ya,onClick:e=>{e.queueDialog((t=>[zu,{session:e,handleClose:()=>{t()}}]))}}]})}(t)}yield e.updateLastChangeSequenceNumber(),e.addSocketListeners();const{baseURL:i}=e,a=new URL("users/locations",i).href,s=e.getFetcher({locationType:"UriLocation",uri:a});yield s(a,{method:"GET",signal:e.controller.signal}),window.addEventListener("beforeunload",t),document.addEventListener("visibilitychange",n)})),removeBeforeUnloadListener(){window.removeEventListener("beforeunload",t)},removeVisibilityChangeListener(){document.removeEventListener("visibilitychange",n)}}})).actions((e=>({afterAttach(){e.setRole(),l.autorun((async t=>{if(vd)return;const{session:n}=c.getRoot(e);if(n&&e.role)try{await e.initialize(e.role),t.dispose()}catch{}}),{name:"ApolloInternetAccount"})},beforeDestroy(){e.removeBeforeUnloadListener(),e.removeVisibilityChangeListener(),e.controller.abort(new DOMException("Cleaning up Apollo connection","AbortError")),e.socket.close()}}))),Cd="undefined"==typeof sessionStorage;class Id extends y.BaseAdapter{refNameAliases;async getRefNameAliases(){const e=n.readConfObject(this.config,"assemblyId");if(!Cd){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)throw new Error("No Apollo data store found");const n=t.getBackendDriver(e);if(!n)throw new Error("No backend driver found");return await n.getRefNameAliases(e)}const t=await new Promise(((t,n)=>{const r=setTimeout((()=>{n(new Error("timeout"))}),2e4),o=Zu(),i=e=>{const n=e.data;(function(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo&&"refNameAliases"in e})(n)&&n.messageId===o&&(clearTimeout(r),removeEventListener("message",i),t(n.refNameAliases))};addEventListener("message",i),rpcServer.emit("apollo",{apollo:!0,method:"getRefNameAliases",assembly:e,messageId:o})}));return this.refNameAliases=t,t}freeResources(){}}var wd=n.ConfigurationSchema("ApolloRefNameAliasAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0});function Ed(e){return"uniqueId"in e&&"object"!==X(e.data)}var xd=function(){function e(t){var n=this;N(this,e),T(this,"data",void 0),T(this,"subfeatures",void 0),T(this,"parentHandle",void 0),T(this,"uniqueId",void 0),Ed(t)?this.data=t:(this.data=t.data,this.parentHandle=t.parent);var r,o=Ed(t)?t.uniqueId:t.id;if(null==o)throw new Error("SimpleFeature requires a unique `id` or `data.uniqueId` attribute");if(this.uniqueId=String(o),!(this.data.aliases||this.data.end-this.data.start>=0))throw new Error("invalid feature data, end less than start. end: ".concat(this.data.end," start: ").concat(this.data.start));this.data.subfeatures&&(this.subfeatures=null===(r=this.data.subfeatures)||void 0===r?void 0:r.map((function(t,r){return"function"!=typeof t.get?new e({id:t.uniqueId||"".concat(o,"-").concat(r),data:q({strand:n.data.strand},t),parent:n}):t})))}return D(e,[{key:"get",value:function(e){return"subfeatures"===e?this.subfeatures:"parent"===e?this.parent():this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t}},{key:"tags",value:function(){return Object.keys(this.data)}},{key:"id",value:function(){return this.uniqueId}},{key:"parent",value:function(){return this.parentHandle}},{key:"children",value:function(){return this.get("subfeatures")}},{key:"toJSON",value:function(){var e=q(q({},this.data),{},{uniqueId:this.id()}),t=this.parent();t&&(e.parentId=t.id());var n=this.children();return n&&(e.subfeatures=n.map((function(e){return e.toJSON()}))),e}}],[{key:"fromJSON",value:function(t){return new e(q({},t))}}])}();function Sd(e){return"object"==typeof e&&null!==e&&"apollo"in e&&!0===e.apollo}const Bd="undefined"==typeof sessionStorage;class kd extends y.BaseSequenceAdapter{regions;async getRefNames(){return(await this.getRegions()).map((e=>e.refName))}async getRegions(){if(this.regions)return this.regions;const e=n.readConfObject(this.config,"assemblyId");if(!Bd){const t=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!t)throw new Error("No Apollo data store found");const n=t.getBackendDriver(e);if(!n)throw new Error("No backend driver found");const r=await n.getRegions(e);return this.regions=r,r}const t=await new Promise(((t,n)=>{const r=setTimeout((()=>{n("timeout")}),2e4),o=Zu(),i=e=>{const{data:n}=e;Sd(n)&&n.messageId===o&&(clearTimeout(r),removeEventListener("message",i),t(n.regions))};addEventListener("message",i),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getRegions",assembly:e,messageId:o})}));return this.regions=t,t}getFeatures(e){const{end:t,refName:r,start:o}=e,i=n.readConfObject(this.config,"assemblyId"),a={...e,assemblyName:i};return _.ObservableCreate((async e=>{if(!Bd){const n=this.pluginManager?.rootModel?.session?.apolloDataStore;if(!n)return void e.error("No Apollo data store found");const s=n.getBackendDriver(i);if(!s)return void e.error("No backend driver found");const c=(await s.getRegions(a.assemblyName)).find((e=>e.refName===a.refName));if(!c)return void e.error("Cannot get region");a.end>c.end&&(a.end=c.end);const{seq:l}=await s.getSequence(a);return e.next(new xd({id:`${r} ${o}-${t}`,data:{refName:r,start:o,end:t,seq:l}})),void e.complete()}const n=await new Promise(((e,t)=>{const n=setTimeout((()=>{t("timeout")}),2e4),r=Zu(),o=t=>{const{data:i}=t;Sd(i)&&i.messageId===r&&(clearTimeout(n),removeEventListener("message",o),e(i.sequence))};addEventListener("message",o),globalThis.rpcServer.emit("apollo",{apollo:!0,method:"getSequence",region:a,messageId:r})}));e.next(new xd({id:`${r} ${o}-${t}`,data:{refName:r,start:o,end:t,seq:n}})),e.complete()}))}freeResources(){}}var Qd=n.ConfigurationSchema("ApolloSequenceAdapter",{assemblyId:{type:"string",defaultValue:""}},{explicitlyTyped:!0}),Nd=function(){return D((function e(t){N(this,e),T(this,"label",void 0),T(this,"renderingComponent",void 0),T(this,"displayString",void 0),T(this,"matchedAttribute",void 0),T(this,"matchedObject",void 0),T(this,"textSearchAdapter",void 0),T(this,"relevance",void 0),T(this,"trackId",void 0),T(this,"score",void 0),T(this,"locString",void 0),T(this,"results",void 0),this.label=t.label,this.locString=t.locString,this.renderingComponent=t.renderingComponent,this.displayString=t.displayString,this.matchedAttribute=t.matchedAttribute,this.matchedObject=t.matchedObject,this.textSearchAdapter=t.textSearchAdapter,this.relevance=t.relevance,this.trackId=t.trackId,this.score=t.score||1,this.results=t.results||[]}),[{key:"getLabel",value:function(){return this.label}},{key:"getDisplayString",value:function(){return this.displayString||this.label}},{key:"getRenderingComponent",value:function(){return this.renderingComponent}},{key:"getTrackId",value:function(){return this.trackId}},{key:"getScore",value:function(){return this.score}},{key:"updateScore",value:function(e){return this.score=e,this.score}},{key:"getId",value:function(){return"".concat(this.getLabel(),"-").concat(this.getLocation(),"-").concat(this.getTrackId())}},{key:"hasLocation",value:function(){return!!this.locString}},{key:"getLocation",value:function(){return this.locString}},{key:"getComboResults",value:function(){return this.results}}])}();function Rd(e,t){const{children:n,indexedIds:r,...o}=t;if(JSON.stringify(o).includes(e))return t;if(n)for(const t of Object.values(n)){const n=Rd(e,t);if(n)return n}}class Dd extends y.BaseAdapter{get baseURL(){return n.readConfObject(this.config,"baseURL").uri}get trackId(){return n.readConfObject(this.config,"trackId")}get assemblyNames(){return n.readConfObject(this.config,"assemblyNames")}mapBaseResult(e,t,n){return e.map((e=>{const r=Rd(n,e)??e,o=t.getCanonicalRefName(e.refSeq);return new Nd({label:n,trackId:this.trackId,locString:`${o}:${r.min+1}..${r.max}`,matchedObject:r})}))}async searchIndex(e){const t=e.queryString,n=[],r=this.pluginManager?.rootModel?.session;if(!r)return n;const{apolloDataStore:o}=r,{assemblyManager:i}=r;for(const r of this.assemblyNames){const a=o.getBackendDriver(r),s=i.get(r);if(!a||!s)continue;const c=await a.searchFeatures(e.queryString,[r]);n.push(...this.mapBaseResult(c,s,t))}return n}freeResources(){}}var Fd=n.ConfigurationSchema("ApolloTextSearchAdapter",{assemblyNames:{type:"stringArray",defaultValue:[],description:"List of assemblies covered by text search adapter"},trackId:{type:"string",defaultValue:""},baseURL:{type:"fileLocation",defaultValue:{uri:"",locationType:"UriLocation"}}},{explicitlyTyped:!0,explicitIdentifier:"textSearchAdapterId"}),Td=a.createSvgIcon(i.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore"),jd=a.createSvgIcon(i.jsx("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit"),Md=a.createSvgIcon(i.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreHoriz");const Od=Ec()((e=>({attributeKey:{fontWeight:"bold",marginRight:e.spacing(2)}})));function Ld({attributeKey:e}){const{classes:t}=Od(),n=/^[A-Z]/.test(e);let r,o=e;return e in bt?(o=bt[e],r=`On GFF3 export, this will be assigned to the GFF3's reserved "${o}" attribute`):function(e){return e in Ct}(e)?(o=Ct[e],r=`On GFF3 export, this will be placed in the GFF3's "${o}" column`):n&&(r="On GFF3 export, this attribute will be changed to start with a lower-case letter because attributes starting with an upper-case letter are reserved in GFF3"),i.jsxs("div",{style:{display:"flex"},children:[i.jsx(s.Typography,{className:t.attributeKey,children:o}),r?i.jsx(s.Tooltip,{title:r,children:i.jsx(s.Chip,{icon:i.jsx(xc,{}),label:"GFF3",size:"small",variant:"outlined"})}):null]})}const Pd="Custom",qd={[Pd]:"custom"};for(const[e,t]of Object.entries(vt))qd[`GFF ${t}`]=e;for(const[e,t]of Object.entries({score:"gff_score",source:"gff_source"}))qd[`GFF ${t}`]=e;const Jd=f.observer((function({setKey:e,session:t}){const{pluginManager:n}=o.getEnv(t),r=n.evaluateExtensionPoint("Apollo-ReservedAttributeKeys",qd),a=Object.keys(r).at(0)??Pd,[c,l]=u.useState(a),[d,A]=u.useState(),f=c===Pd;return i.jsxs("form",{onSubmit:function(t){t.preventDefault(),e(f?d:r[c])},children:[i.jsxs("div",{style:{display:"flex",flexDirection:"column",margin:8},children:[i.jsxs(s.FormControl,{variant:"outlined",children:[i.jsx(s.InputLabel,{id:"attribute-key-select-label",children:"Key"}),i.jsx(s.Select,{labelId:"attribute-key-select-label",value:c,label:"Key",onChange:e=>{l(e.target.value)},children:Object.keys(r).map((e=>i.jsx(s.MenuItem,{value:e,children:e},e)))})]}),f?i.jsx(s.TextField,{label:"Attribute key",variant:"outlined",id:"attributeKey",onChange:e=>{A(e.target.value)}}):null]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{color:"primary",variant:"contained",type:"submit",disabled:f&&!d,children:"Add"}),i.jsx(s.Button,{variant:"outlined",onClick:function(){e()},children:"Cancel"})]})]})}));var Ud=a.createSvgIcon(i.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddBox");const Gd=f.observer((function({onChangeCommitted:e,value:t,...n}){const[r,o]=u.useState(String(t)),[a,c]=u.useState(!1),[l,d]=u.useState(null);return u.useEffect((()=>{o(String(t))}),[t]),u.useEffect((()=>{a&&(l?.blur(),c(!1))}),[a,l]),i.jsx(s.TextField,{...n,type:"text",onChange:function(e){o(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?l?.blur():"Escape"===e.key&&(o(String(t)),c(!0))},onBlur:()=>{r!==String(t)&&e(r)},inputRef:e=>{d(e)}})})),Hd=f.observer((function({attributeValues:e,setAttribute:t,isNew:n=!1}){const[r,o]=u.useState(e&&e.length>0?e:[""]);return i.jsxs(i.Fragment,{children:[r.map(((e,t)=>i.jsxs("div",{style:{display:"flex"},children:[i.jsx(Gd,{value:e,onChangeCommitted:e=>{!function(e,t){o((n=>{const r=[...n];return r[e]=t,r}))}(t,e)},variant:"outlined",fullWidth:!0}),i.jsx(s.IconButton,{"aria-label":"delete",size:"medium",edge:"end",onClick:()=>{!function(e){o((t=>{const n=[...t];return n.splice(e,1),n}))}(t)},children:i.jsx(ga,{fontSize:"inherit"})})]},`${t}-${e}`))),i.jsx(s.IconButton,{"aria-label":"add",size:"medium",color:"secondary",edge:"start",onClick:function(){o((e=>{const t=[...e];return t.push(""),t}))},children:i.jsx(Ud,{fontSize:"inherit"})}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{color:"primary",variant:"contained",onClick:()=>{t(r.filter(Boolean))},children:n?"Add":"Update"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:()=>{t()},children:"Cancel"})]})]})}));function Yd({values:e}){return i.jsx(i.Fragment,{children:e?.map(((e,t)=>i.jsx(s.Typography,{variant:"body2",color:"textSecondary",children:e},`${t}.${e}`)))})}const zd=Ec()((e=>({list:{"li:nth-of-type(odd)":{backgroundColor:e.palette.action.focus},"li:nth-of-type(even)":{backgroundColor:e.palette.action.hover}}}))),Kd=f.observer((function({assembly:e,editable:t,feature:n,session:r}){const{pluginManager:a}=o.getEnv(r),{classes:d}=zd(),[A,f]=u.useState(null),[h,g]=u.useState(null),[p,m]=u.useState(null),[y,_]=u.useState(!1),[v,b]=u.useState(),C=Boolean(A),{changeManager:I}=r.apolloDataStore,{notify:w}=r;function E(){f(null),g(null)}const{_id:x,attributes:S}=n,B=a.evaluateExtensionPoint("Apollo-AttributeEditorComponent",Hd,{key:v});return i.jsxs(i.Fragment,{children:[i.jsxs(s.List,{className:d.list,children:[l.entries(S).map((([o,l])=>{const u=a.evaluateExtensionPoint("Apollo-AttributeEditorComponent",Hd,{key:o}),d=a.evaluateExtensionPoint("Apollo-AttributeViewerComponent",Yd,{key:o});return i.jsx(s.ListItem,{secondaryAction:t&&!p?i.jsx(s.IconButton,{edge:"end",onClick:e=>{!function(e,t){f(e.currentTarget),g(t)}(e,o)},children:i.jsx(Md,{})}):null,children:i.jsx(s.ListItemText,{disableTypography:!0,primary:i.jsx(Ld,{attributeKey:o}),secondary:p===o?i.jsx(u,{session:r,attributeValues:l,setAttribute:t=>{m(null),t&&function(t,r){const o={...c.getSnapshot(S)},i=structuredClone(o);if(!(t in o))return void w(`"${t}" not found in feature attributes`,"error");if(o[t].toString()===r.toString())return;o[t]=r;const a=new jr({changedIds:[n._id],typeName:"FeatureAttributeChange",assembly:e,featureId:n._id,oldAttributes:i,newAttributes:o});I.submit(a)}(o,t)}}):i.jsx(d,{values:l})})},o)})),v?i.jsx(s.ListItem,{children:i.jsx(s.ListItemText,{disableTypography:!0,primary:i.jsx(Ld,{attributeKey:v}),secondary:i.jsx(B,{session:r,attributeValues:[],setAttribute:t=>{t&&function(t,r){const o={...c.getSnapshot(S)},i=structuredClone(o);if(t in o)return void w(`Feature already has attribute "${t}"`,"error");o[t]=r;const a=new jr({changedIds:[n._id],typeName:"FeatureAttributeChange",assembly:e,featureId:n._id,oldAttributes:i,newAttributes:o});I.submit(a)}(v,t),b(void 0)},isNew:!0})})}):null]}),t?i.jsx(s.Button,{color:"primary",variant:"contained",disabled:y||Boolean(v),onClick:()=>{_(!0)},children:"Add new"}):null,y?i.jsx(s.Paper,{variant:"outlined",style:{marginTop:8},children:i.jsx(Jd,{session:r,setKey:e=>{b(e),_(!1)}})}):null,i.jsxs(s.Menu,{anchorEl:A,open:C,onClose:E,children:[i.jsxs(s.MenuItem,{onClick:function(){h&&function(t){const n=c.getSnapshot(S),{[t]:r,...o}=n,i=new jr({changedIds:[x],typeName:"FeatureAttributeChange",assembly:e,featureId:x,oldAttributes:n,newAttributes:o});I.submit(i)}(h),E()},children:[i.jsx(s.ListItemIcon,{children:i.jsx(ga,{fontSize:"small"})}),i.jsx(s.Typography,{variant:"inherit",children:"Delete"})]}),i.jsxs(s.MenuItem,{onClick:function(){h&&m(h),E()},children:[i.jsx(s.ListItemIcon,{children:i.jsx(jd,{fontSize:"small"})}),i.jsx(s.Typography,{variant:"inherit",children:"Edit"})]})]})]})})),Wd=f.observer((function({onChangeCommitted:e,value:t,...n}){const[r,o]=u.useState(String(t)),[a,c]=u.useState(!1),[l,d]=u.useState(null);u.useEffect((()=>{o(String(t))}),[t]),u.useEffect((()=>{a&&(l?.blur(),c(!1))}),[a,l]);const A=Number.isNaN(Number(r));return i.jsx(s.TextField,{...n,type:"text",onChange:function(e){o(e.target.value)},value:r,onKeyDown:e=>{"Enter"===e.key?l?.blur():"Escape"===e.key&&(o(String(t)),c(!0))},onBlur:()=>{const n=Number(r);r!==String(t)&&(Number.isNaN(n)?o(String(t)):e(n)||o(String(t)))},inputRef:e=>{d(e)},error:A,helperText:A?"Not a valid number":void 0})})),Vd=f.observer((function({assembly:e,feature:t,session:n}){const[r,o]=u.useState(""),[a,c]=u.useState(""),{_id:l,assemblyId:d,max:A,min:f,strand:h,type:g}=t,p=e=>{n.notify(e.message,"error")},{changeManager:m}=n.apolloDataStore;function y(t){const{value:n}=t.target,r=n?Number(n):void 0,o=new to({typeName:"StrandChange",changedIds:[l],featureId:l,oldStrand:h,newStrand:r,assembly:e});return m.submit(o)}return i.jsxs("div",{"data-testid":"basic_information",children:[i.jsx(Wd,{margin:"dense",id:"start",label:"Start",fullWidth:!0,variant:"outlined",value:f+1,onChangeCommitted:function(t){t--;const n=new Ur({typeName:"LocationStartChange",changedIds:[l],featureId:l,oldStart:f,newStart:t,assembly:e});return m.submit(n),!0}}),i.jsx(Wd,{margin:"dense",id:"end",label:"End",fullWidth:!0,variant:"outlined",value:A,onChangeCommitted:function(t){const n=new qr({typeName:"LocationEndChange",changedIds:[l],featureId:l,oldEnd:A,newEnd:t,assembly:e});return m.submit(n),!0}}),i.jsx(Su,{session:n,ontologyName:"Sequence Ontology",value:g,filterTerms:wu,fetchValidTerms:async function(e,t,n){const r=await xu(e,t);if(r)return r;c(`Type "${e?.type}" does not have any children in the ontology`)}.bind(null,t),renderInput:e=>i.jsx(s.TextField,{...e,label:"Type",variant:"outlined",fullWidth:!0,error:Boolean(a),helperText:a}),onChange:(e,t)=>{t&&function(e){o("");const t=new no({typeName:"TypeChange",changedIds:[l],featureId:l,oldType:g,newType:e,assembly:d});return m.submit(t)}(t).catch(p)}}),i.jsxs("label",{children:[i.jsx("input",{type:"radio",value:"1",checked:1===h,onChange:y}),"Positive Strand (+)"]}),i.jsxs("label",{children:[i.jsx("input",{type:"radio",value:"-1",checked:-1===h,onChange:y}),"Negative Strand (-)"]}),i.jsxs("label",{children:[i.jsx("input",{type:"radio",value:"",checked:void 0===h,onChange:y}),"No Strand Information"]}),r?i.jsx(s.Typography,{color:"error",children:r}):null]})})),$d=f.observer((function(e){const{feature:t,model:n}=e,{children:r,parent:o}=t,a=[];if(r)for(const[,e]of r)a.push(e);return o??a.length>0?i.jsxs("div",{style:{marginTop:10},children:[o&&i.jsxs("div",{children:[i.jsx(s.Typography,{variant:"h6",children:"Parent:"}),i.jsxs(s.Button,{variant:"contained",onClick:()=>{n.setFeature(o)},children:[o.type,qc(o)," (",o.min,"..",o.max,")"]})]}),a.length>0&&i.jsxs("div",{children:[i.jsxs(s.Typography,{variant:"h6",children:[1===a.length?"Child":"Children",":"]}),a.map((e=>i.jsx("div",{style:{marginBottom:5},children:i.jsxs(s.Button,{variant:"contained",onClick:()=>{n.setFeature(e)},children:[e.type,qc(e)," (",e.min,"..",e.max,")"]})},e._id)))]})]}):null})),Xd=Ec()({sequence:{width:"100%",resize:"vertical"}}),Zd=f.observer((function({assembly:e,feature:t,refName:n,session:r}){const o=r.apolloDataStore.assemblies.get(e),{classes:a}=Xd();if(!t||!o)return null;const s=o.getByRefName(n);if(!s)return null;const{max:c,min:l}=t;let u=s.getSequence(l,c);return u?u=function(e,t,n,r,o){return`>${t}:${n+1}–${r}\n${e}`}(u,n,l,c):r.apolloDataStore.loadRefSeq([{assemblyName:e,refName:n,start:l,end:c}]),i.jsx("div",{children:i.jsx("textarea",{readOnly:!0,rows:20,className:a.sequence,value:u})})})),eA=Ec()((e=>({root:{padding:e.spacing(2)}}))),tA=f.observer((function(e){const{model:t}=e,{assembly:n,feature:r,refName:a}=t,c=o.getSession(t),l=c.apolloDataStore.assemblies.get(n),{classes:d}=eA(),[A,f]=u.useState(["attributes"]);if(u.useEffect((()=>{f(["attributes"])}),[r]),!r||!l)return null;const h=l.getByRefName(a);if(!h)return null;const{max:g,min:p}=r;function m(e,t){f(e?[...A,t]:A.filter((e=>e!==t)))}return h.getSequence(p,g)||c.apolloDataStore.loadRefSeq([{assemblyName:n,refName:a,start:p,end:g}]),i.jsxs("div",{className:d.root,children:[i.jsx(Vd,{feature:r,session:c,assembly:l._id}),i.jsxs(s.Accordion,{style:{marginTop:10},expanded:A.includes("attributes"),onChange:(e,t)=>{m(t,"attributes")},children:[i.jsx(s.AccordionSummary,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel1-content",id:"panel1-header",children:i.jsx(s.Typography,{component:"span",children:"Attributes"})}),i.jsx(s.AccordionDetails,{children:i.jsx(Kd,{feature:r,session:c,assembly:l._id,editable:!0})})]}),i.jsxs(s.Accordion,{style:{marginTop:10},expanded:A.includes("sequence"),onChange:(e,t)=>{m(t,"sequence")},children:[i.jsx(s.AccordionSummary,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel2-content",id:"panel2-header",children:i.jsx(s.Typography,{component:"span",children:"Sequence"})}),i.jsx(s.AccordionDetails,{children:A.includes("sequence")&&i.jsx(Zd,{feature:r,session:c,assembly:l._id,refName:a})})]}),i.jsxs(s.Accordion,{style:{marginTop:10},expanded:A.includes("related_features"),onChange:(e,t)=>{m(t,"related_features")},children:[i.jsx(s.AccordionSummary,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel3-content",id:"panel3-header",children:i.jsx(s.Typography,{component:"span",children:"Related features"})}),i.jsx(s.AccordionDetails,{children:i.jsx($d,{model:t,feature:r})})]})]})}));var nA=c.types.late((function(){return rA})),rA=c.types.model("AnnotationFeatureModel",{_id:c.types.identifier,refSeq:c.types.string,type:c.types.string,min:c.types.number,max:c.types.number,strand:c.types.maybe(c.types.union(c.types.literal(1),c.types.literal(-1))),children:c.types.maybe(c.types.map(nA)),attributes:c.types.map(c.types.array(c.types.string))}).views((function(e){return{get length(){return e.max-e.min},get featureId(){return e.attributes.get("id")},get minWithChildren(){var t=e.min,n=e.children;if(!n)return t;var r,o=F(n);try{for(o.s();!(r=o.n()).done;){var i=K(r.value,2);t=Math.min(t,i[1].min)}}catch(e){o.e(e)}finally{o.f()}return t},get maxWithChildren(){var t=e.max,n=e.children;if(!n)return t;var r,o=F(n);try{for(o.s();!(r=o.n()).done;){var i=K(r.value,2);t=Math.max(t,i[1].max)}}catch(e){o.e(e)}finally{o.f()}return t},hasDescendant:function(t){var n=e.children;if(!n)return!1;var r,o=F(n);try{for(o.s();!(r=o.n()).done;){var i=K(r.value,2);if(i[0]===t)return!0;if(i[1].hasDescendant(t))return!0}}catch(e){o.e(e)}finally{o.f()}return!1},get transcriptExonParts(){var t=o.getSession(e).apolloDataStore.ontologyManager.featureTypeOntology;if(!t.isTypeOf(e.type,"transcript")&&!t.isTypeOf(e.type,"pseudogenic_transcript"))throw new Error("Feature is not a transcript or equivalent, cannot calculate exon locations");var n=e.children;if(!n)throw new Error("No exons in transcript");var r,i=V(n.values()).filter((function(e){return t.isTypeOf(e.type,"exon")})).sort((function(e,t){return e.min-t.min})),a=e.min,s=[],c=F(i);try{for(c.s();!(r=c.n()).done;){var l=r.value;l.min>a&&s.push({min:a,max:l.min,type:"intron"}),s.push({min:l.min,max:l.max,type:"exon"}),a=l.max}}catch(e){c.e(e)}finally{c.f()}return a<e.max&&s.push({min:a,max:e.max,type:"intron"}),-1===e.strand&&s.reverse(),s},get transcriptParts(){var t=o.getSession(e).apolloDataStore.ontologyManager.featureTypeOntology;if(!t.isTypeOf(e.type,"transcript")&&!t.isTypeOf(e.type,"pseudogenic_transcript"))throw new Error('Only features of type "transcript" or equivalent can calculate CDS locations');var n=e.children;if(!n)throw new Error("no CDS or exons in transcript");var r=V(n.values()).filter((function(e){return t.isTypeOf(e.type,"CDS")})),i=[];if(0===r.length)return i.push(this.transcriptExonParts),i;var a,s=F(r);try{var c=function(){var r,s=a.value,c=s.max,l=s.min,u=[],d=!1,A=[],f=F(n);try{for(f.s();!(r=f.n()).done;){var h=K(r.value,2)[1];t.isTypeOf(h.type,"exon")&&A.push({min:h.min,max:h.max})}}catch(e){f.e(e)}finally{f.f()}A.sort((function(e,t){return e.min-t.min}));for(var g=0,p=A;g<p.length;g++){var m=p[g],y=u.at(-1);y&&u.push({min:y.max,max:m.min,type:"intron"});var _,v=K(o.intersection2(l,c,m.min,m.max),2),b=v[0],C=v[1];_=d?1===e.strand?"threePrimeUTR":"fivePrimeUTR":1===e.strand?"fivePrimeUTR":"threePrimeUTR",void 0!==b&&void 0!==C?(d=!0,b===m.min&&C===m.max?u.push({min:b,max:C,phase:0,type:"CDS"}):b===m.min?u.push({min:b,max:C,phase:0,type:"CDS"},{min:C,max:m.max,type:_}):C===m.max?u.push({min:m.min,max:b,type:_},{min:b,max:C,phase:0,type:"CDS"}):u.push({min:m.min,max:b,type:_},{min:b,max:C,phase:0,type:"CDS"},{min:C,max:m.max,type:"fivePrimeUTR"===_?"threePrimeUTR":"fivePrimeUTR"})):u.push({min:m.min,max:m.max,type:_})}u.sort((function(e,t){return e.min-t.min})),-1===e.strand&&u.reverse();var I=0,w=u.map((function(e){if("CDS"!==e.type)return e;var t=I;return I=(3-(e.max-e.min-t+3)%3)%3,q(q({},e),{},{phase:t})}));i.push(w)};for(s.s();!(a=s.n()).done;)c()}catch(e){s.e(e)}finally{s.f()}return i}}})).views((function(e){return{get cdsLocations(){return e.transcriptParts.map((function(e){return e.filter((function(e){return"CDS"===e.type}))}))},get looksLikeGene(){var t=o.getSession(e).apolloDataStore.ontologyManager.featureTypeOntology;if(!t)return!1;var n=e.children;if(null==n||!n.size)return!1;if(!t.isTypeOf(e.type,"gene")&&!t.isTypeOf(e.type,"pseudogene"))return!1;var r,i=F(n);try{for(i.s();!(r=i.n()).done;){var a=K(r.value,2)[1];if(t.isTypeOf(a.type,"transcript")||t.isTypeOf(a.type,"pseudogenic_transcript")){var s=a.children;return!(null==s||!s.size)&&V(s.values()).some((function(e){return t.isTypeOf(e.type,"exon")}))}}}catch(e){i.e(e)}finally{i.f()}return!1}}})).actions((function(e){return{setAttributes:function(t){e.attributes.clear();var n,r=F(t.entries());try{for(r.s();!(n=r.n()).done;){var o=K(n.value,2);e.attributes.set(o[0],o[1])}}catch(e){r.e(e)}finally{r.f()}},setAttribute:function(t,n){e.attributes.merge(T({},t,n))},setType:function(t){e.type=t},setRefSeq:function(t){e.refSeq=t},setMin:function(t){if(t>e.max)throw new Error('Min "'.concat(t+1,'" is greater than max "').concat(e.max,'"'));e.min!==t&&(e.min=t)},setMax:function(t){if(t<e.min)throw new Error('Max "'.concat(t,'" is less than Min "').concat(e.min,'"'));e.max!==t&&(e.max=t)},setStrand:function(t){e.strand=t},addChild:function(t){if(e.children&&e.children.size>0){var n=c.getSnapshot(e.children);e.children.clear();var r,o=F(Object.entries(q(q({},n),{},T({},t._id,t))).sort((function(e,t){var n=K(e,2)[1],r=K(t,2);return n.min-r[1].min})));try{for(o.s();!(r=o.n()).done;){var i=K(r.value,2);e.children.put(i[1])}}catch(e){o.e(e)}finally{o.f()}}else{var a;e.children=c.cast({}),null===(a=e.children)||void 0===a||a.put(t)}},deleteChild:function(t){var n;null===(n=e.children)||void 0===n||n.delete(t)}}})).actions((function(e){return{update:function(t){var n=t.children,r=t.max,o=t.min,i=t.strand;e.setRefSeq(t.refSeq),e.setMin(o),e.setMax(r),e.setStrand(i),n&&(e.children=c.cast(n))}}})).views((function(e){return{get parent(){var t;try{t=c.getParentOfType(e,rA)}catch(e){}return t},get topLevelFeature(){var t,n=e;do{try{n=t=c.getParentOfType(n,rA)}catch(e){t=void 0}}while(t);return n},get assemblyId(){return c.getParentOfType(e,aA)._id}}})),oA=c.types.model({start:c.types.number,stop:c.types.number,sequence:c.types.string}),iA=c.types.model("ApolloRefSeq",{_id:c.types.identifier,name:c.types.string,description:"",features:c.types.map(rA),sequence:c.types.array(oA)}).actions((function(e){return{addFeature:function(t){e.features.put(t)},deleteFeature:function(t){return e.features.delete(t)},setDescription:function(t){e.description=t},addSequence:function(t){var n;if(t.sequence.length!==t.stop-t.start)throw new Error("sequence does not match declared length: ".concat(JSON.stringify(t)));if(0!==e.sequence.length){var r=e.sequence.map((function(e){return{start:e.start,stop:e.stop,sequence:e.sequence}}));r.push({start:t.start,stop:t.stop,sequence:t.sequence}),r.sort((function(e,t){return e.start===t.start?e.stop-t.stop:e.start-t.start}));var o,i=r.reduce((function(e,t){var n=e.at(-1);if(void 0===n)return[t];if(n.stop>=t.start){if(t.stop>n.stop){var r=n.stop-t.start;n.stop=t.stop,n.sequence+=t.sequence.slice(r)}}else e.push(t);return e}),[]),a=F(i);try{for(a.s();!(o=a.n()).done;){var s=o.value;if(s.sequence.length!==s.stop-s.start)throw new Error("Consolidated sequence does not match declared length")}}catch(e){a.e(e)}finally{a.f()}e.sequence.length===i.length&&e.sequence.every((function(e,t){var n;return e.start===(null===(n=i[t])||void 0===n?void 0:n.start)&&e.stop===i[t].stop}))||(e.sequence.clear(),(n=e.sequence).push.apply(n,V(i)))}else e.sequence.push(t)}}})).views((function(e){return{getSequence:function(t,n){var r,i=F(e.sequence);try{for(i.s();!(r=i.n()).done;){var a=r.value,s=a.sequence,c=a.start;if(o.isContainedWithin(t,n,c,a.stop))return s.slice(t-c,n-c)}}catch(e){i.e(e)}finally{i.f()}return""},getFeatures:function(t,n){var r,i=[],a=F(e.features);try{for(a.s();!(r=a.n()).done;){var s=K(r.value,2)[1];o.doesIntersect2(s.min,s.max,t,n)&&i.push(s)}}catch(e){a.e(e)}finally{a.f()}return i}}})),aA=c.types.model("ApolloAssembly",{_id:c.types.identifier,refSeqs:c.types.map(iA),comments:c.types.array(c.types.string),backendDriverType:c.types.optional(c.types.enumeration("backendDriverType",["CollaborationServerDriver","InMemoryFileDriver","DesktopFileDriver"]),"CollaborationServerDriver")}).views((function(e){return{getByRefName:function(t){return V(e.refSeqs.values()).find((function(e){return e.name===t}))}}})).actions((function(e){return{addRefSeq:function(t,n,r){return e.refSeqs.put({_id:t,name:n,description:r})},addComment:function(t){return e.comments.push(t)}}})),sA=c.types.model("CheckResult",{_id:c.types.identifier,name:c.types.string,cause:c.types.string,ids:c.types.array(c.types.safeReference(rA)),refSeq:c.types.string,start:c.types.number,end:c.types.number,ignored:!1,message:c.types.string});const cA=c.types.model("ApolloFeatureDetailsWidget",{id:g.ElementId,type:c.types.literal("ApolloFeatureDetailsWidget"),feature:c.types.maybe(c.types.reference(rA,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:c.types.string,refName:c.types.string}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((t=>{if(!e.tryReload)return;const n=o.getSession(e),{apolloDataStore:r}=n;if(!r)return;const i=r.getFeature(e.tryReload);i&&(e.setFeature(i),e.setTryReload(),t.dispose())})))}}))),lA=c.types.model("ApolloTranscriptDetails",{id:g.ElementId,type:c.types.literal("ApolloTranscriptDetails"),feature:c.types.maybe(c.types.reference(rA,{onInvalidated(e){e.parent.setTryReload(e.invalidId),e.removeRef()}})),assembly:c.types.string,refName:c.types.string}).volatile((()=>({tryReload:void 0}))).actions((e=>({setFeature(t){e.feature=t},setTryReload(t){e.tryReload=t}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((t=>{if(!e.tryReload)return;const n=o.getSession(e),{apolloDataStore:r}=n;if(!r)return;const i=r.getFeature(e.tryReload);i&&(e.setFeature(i),e.setTryReload(),t.dispose())})))}})));var uA=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,dA=fs((function(e){return uA.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),AA=function(e){return"theme"!==e},fA=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?dA:AA},hA=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r},gA="You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences",pA=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return Ss(t,n,r),Ws((function(){return Bs(t,n,r)})),null},mA=function e(t,n){if("production"!==ue.env.NODE_ENV&&void 0===t)throw new Error("You are trying to create a styled element with an undefined component.\nYou may have forgotten to import it.");var r,o,i=t.__emotion_real===t,a=i&&t.__emotion_base||t;void 0!==n&&(r=n.label,o=n.target);var s=hA(t,n,i),c=s||fA(a),l=!c("as");return function(){var u=arguments,d=i&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==r&&d.push("label:"+r+";"),null==u[0]||void 0===u[0].raw)d.push.apply(d,u);else{"production"!==ue.env.NODE_ENV&&void 0===u[0][0]&&console.error(gA),d.push(u[0][0]);for(var A=u.length,f=1;f<A;f++)"production"!==ue.env.NODE_ENV&&void 0===u[0][f]&&console.error(gA),d.push(u[f],u[0][f])}var h=Xs((function(e,t,n){var r=l&&e.as||a,i="",u=[],A=e;if(null==e.theme){for(var f in A={},e)A[f]=e[f];A.theme=C.useContext(Zs)}"string"==typeof e.className?i=xs(t.registered,u,e.className):null!=e.className&&(i=e.className+" ");var h=Ks(d.concat(u),t.registered,A);i+=t.key+"-"+h.name,void 0!==o&&(i+=" "+o);var g=l&&void 0===s?fA(r):c,p={};for(var m in e)l&&"as"===m||g(m)&&(p[m]=e[m]);return p.className=i,p.ref=n,C.createElement(C.Fragment,null,C.createElement(pA,{cache:t,serialized:h,isStringTag:"string"==typeof r}),C.createElement(r,p))}));return h.displayName=void 0!==r?r:"Styled("+("string"==typeof a?a:a.displayName||a.name||"Component")+")",h.defaultProps=t.defaultProps,h.__emotion_real=h,h.__emotion_base=a,h.__emotion_styles=d,h.__emotion_forwardProp=s,Object.defineProperty(h,"toString",{value:function(){return void 0===o&&"production"!==ue.env.NODE_ENV?"NO_COMPONENT_SELECTOR":"."+o}}),h.withComponent=function(t,r){return e(t,Es({},n,r,{shouldForwardProp:hA(h,r,!0)})).apply(void 0,d)},h}}.bind();async function yA(e){if(isSecureContext){const t=new Blob([e.outerText],{type:"text/plain"}),n=new Blob([e.outerHTML],{type:"text/html"}),r=new ClipboardItem({[t.type]:t,[n.type]:n});return navigator.clipboard.write([r])}const t=t=>{t.clipboardData?.setData("text/plain",e.outerText),t.clipboardData?.setData("text/html",e.outerHTML),t.preventDefault()};document.addEventListener("copy",t),document.execCommand("copy"),document.removeEventListener("copy",t)}function _A(e){let t=0;for(const n of e)t+=n.sequence.length;return t}function vA(e,t,n){const r=[],{cdsLocations:i,strand:a,transcriptParts:s}=t;switch(e){case"genomic":case"cDNA":{const[t]=s;for(const i of t){if("cDNA"===e&&"intron"===i.type)continue;let t=n(i.min,i.max);-1===a&&(t=o.revcom(t));const s="fivePrimeUTR"===i.type||"threePrimeUTR"===i.type?"UTR":i.type,c=r.at(-1);c&&c.type===s?(c.sequence+=t,c.locs.push({min:i.min,max:i.max})):r.push({type:s,sequence:t,locs:[{min:i.min,max:i.max}]})}return r}case"CDS":{let e="";const[t]=i,s=[];for(const r of t){let t=n(r.min,r.max);-1===a&&(t=o.revcom(t)),e+=t,s.push({min:r.min,max:r.max})}return r.push({type:"CDS",sequence:e,locs:s}),r}case"protein":{let e="";const[t]=i,s=[];for(const r of t){let t=n(r.min,r.max);-1===a&&(t=o.revcom(t)),e+=t,s.push({min:r.min,max:r.max})}let c="";for(let t=0;t<e.length;t+=3){const n=e.slice(t,t+3).toUpperCase();c+=o.defaultCodonTable[n]||"&"}return r.push({type:"protein",sequence:c,locs:s}),r}}}function bA(e){switch(e){case"upOrDownstream":return"rgb(255,255,255)";case"exon":case"UTR":return"rgb(194,106,119)";case"CDS":return"rgb(93,168,153)";case"intron":return"rgb(187,187,187)";case"protein":return"rgb(148,203,236)"}}function CA(e){const t=[],n=e.flatMap((e=>e.locs));let[r]=n;for(let e=1;e<n.length;e++)r.min===n[e].max||r.max===n[e].min?r={min:Math.min(r.min,n[e].min),max:Math.max(r.max,n[e].max)}:(t.push(r),r=n[e]);return t.push(r),t}["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){mA[e]=mA(e)}));const IA=f.observer((function({assembly:e,feature:t,refName:n,session:r}){const o=r.apolloDataStore.assemblies.get(e),a=o?.getByRefName(n),{featureTypeOntology:c}=r.apolloDataStore.ontologyManager,l="genomic",d=["genomic","cDNA"],[A,f]=u.useState(d),[h,g]=u.useState(l),[p,m]=u.useState((()=>a?vA(l,t,((e,t)=>a.getSequence(e,t))):[])),[y,_]=u.useState((()=>CA(p))),v=s.useTheme(),b=u.useRef(null);if(u.useEffect((()=>{const{cdsLocations:e}=t,[n]=e;f(n.length>0?[...d,"CDS","protein"]:d)}),[t]),!o||!a)return null;const C=o.getByRefName(n);if(!C)return null;if(!c)throw new Error("featureTypeOntology is undefined");return c.isTypeOf(t.type,"transcript")?i.jsxs(i.Fragment,{children:[i.jsx(s.Select,{defaultValue:"genomic",value:h,onChange:function(e){const n=e.target.value;g(n);const r=a?vA(n,t,((e,t)=>a.getSequence(e,t))):[],o=CA(r);m(r),_(o)},size:"small","data-testid":"sequenceOptionSelector",children:A.map((e=>i.jsx(s.MenuItem,{value:e,"data-testid":`sequenceOption-${e}`,children:e},e)))}),i.jsx(s.Button,{variant:"contained",onClick:()=>{const e=b.current;e&&yA(e)},style:{marginLeft:10},size:"medium",children:"Copy sequence"}),i.jsxs(s.Paper,{style:{fontFamily:"monospace",padding:v.spacing(),overflowX:"auto"},ref:b,children:[">",C.name,":",y.map((e=>1===t.strand?`${e.min+1}-${e.max}`:`${e.max}-${e.min+1}`)).join(";"),"(strand=",1===t.strand?"+":"-",";length=",_A(p),")",i.jsx("br",{}),function(e,t){const n=[];let r=0;for(const[t,o]of e.entries()){const e=r%60,a=r>0&&0===e?"\n":"";r+=o.sequence.length;const s=a+o.sequence.slice(0,60-e),c=[s,...Hr(o.sequence.slice(s.length),60)],l=i.jsx("span",{style:{background:bA(o.type),color:v.palette.getContrastText(bA(o.type)),whiteSpace:"pre-line"},children:c.join("\n")},`${o.type}-${t}`);n.push(l)}return n}(p)]})]}):null}));var wA=a.createSvgIcon(i.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy"),EA=a.createSvgIcon(i.jsx("path",{d:"M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2m0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2m6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5M19 3l-6 6 2 2 7-7V3z"}),"ContentCut"),xA=a.createSvgIcon(i.jsx("path",{d:"M19 13H5v-2h14z"}),"Remove");const SA=mA(Wd)((()=>({"&.MuiFormControl-root":{marginTop:0,marginBottom:0,width:"100%"},"& .MuiInputBase-input":{fontSize:12,height:20,padding:1,paddingLeft:10}}))),BA=mA("div")({display:"flex",justifyContent:"center",alignItems:"center",textAlign:"left",width:"100%",overflowWrap:"break-word",wordWrap:"break-word",wordBreak:"break-all","& span":{fontSize:12}}),kA=e=>{const{strand:t}=e;return i.jsx("div",{children:1===t?i.jsx(Uo,{}):-1===t?i.jsx(xA,{}):i.jsx(s.Typography,{component:"span",children:"N/A"})})},QA=f.observer((function({assembly:e,feature:t,refName:n,session:r}){const{notify:a}=r,c=r.apolloDataStore.assemblies.get(e),l=c?.getByRefName(n),{changeManager:d}=r.apolloDataStore,A=u.useRef(null),{changeInProgress:f}=r;if(!l)return null;const{apolloDataStore:h}=r,{featureTypeOntology:g}=h.ontologyManager;if(!g.isTypeOf(t.type,"transcript")&&!g.isTypeOf(t.type,"pseudogenic_transcript"))throw new Error("Feature is not a transcript or equivalent");const{cdsLocations:p,transcriptExonParts:m,strand:y}=t,[_]=p,[v,b]=((e,t)=>{const{transcriptExonParts:n}=e,r=n.filter((e=>t.isTypeOf(e.type,"exon"))).sort((({min:e},{min:t})=>e-t)),o=r[0]?.min,i=r[r.length-1]?.max;return[o,i]})(t,g);let C=v,I=b;const w=_.length>0;if(w){const e=_.toSorted((({min:e},{min:t})=>e-t));C=e[0].min,I=e[e.length-1].max}const E=(t,n,r,o,i)=>{if(!r.children)throw new Error("Transcript should have child features");if(t===n)return!0;const s=k(r,g,t,o);if(!s)return a("No matching CDS feature found","error"),!1;if(o&&n>=s.max)return a("Start location should be less than CDS end location","error"),!1;if(!o&&n<=s.min)return a("End location should be greater than CDS start location","error"),!1;if(!D(r,g,n,o))return a("There should be an overlapping exon for the new CDS location","error"),!1;const c=o?new Ur({typeName:"LocationStartChange",changedIds:[s._id],featureId:s._id,oldStart:s.min,newStart:n,assembly:e}):new qr({typeName:"LocationEndChange",changedIds:[s._id],featureId:s._id,oldEnd:s.max,newEnd:n,assembly:e});return d.submit(c).then((()=>{i&&i()})).catch((()=>{a("Error updating feature CDS position","error")})),!0};function x(t,n,r,o){if(!r.children)throw new Error("Transcript should have child features");const{matchingExon:i,prevExon:s,nextExon:c}=F(r,g,t,o);if(!i)return a("No matching exon found","error"),!1;if(o&&n>=i.max)return a("Start location should be less than end location","error"),!1;if(!o&&n<=i.min)return a("End location should be greater than start location","error"),!1;if(s&&s.max+2>n)return a("Error while changing start location","error"),!1;if(c&&c.min-2<n)return a("Error while changing end location","error"),!1;const l=N(r,i.min,i.max,g);if(!l)return a("No matching exon feature found","error"),!1;const u=Q(r,g);if(o&&n!==i.min){const t=new Ur({typeName:"LocationStartChange",changedIds:[],changes:[],assembly:e});if(s)B(l,t,n);else{const e=r.min,i=r.parent;if(n<e)i&&n<i.min&&B(i,t,n),B(r,t,n),B(l,t,n);else if(n>e&&(B(l,t,n),B(r,t,n),i)){const[e]=R(i,r,n,g,o);i.min!=e&&B(i,t,e)}}u&&u.min>=i.min&&u.min<=i.max&&n>u.min&&B(u,t,n),d.submit(t).catch((()=>{a("Error updating feature exon start position","error")}))}if(!o&&n!==i.max){const t=new qr({typeName:"LocationEndChange",changedIds:[],changes:[],assembly:e});if(c)S(l,t,n);else{const e=r.max,i=r.parent;if(n>e)i&&n>i.max&&S(i,t,n),S(r,t,n),S(l,t,n);else if(n<e&&(S(l,t,n),S(r,t,n),i)){const[,e]=R(i,r,n,g,o);i.max!=e&&S(i,t,e)}}u&&u.max>=i.min&&u.max<=i.max&&n<u.max&&S(u,t,n),d.submit(t).catch((()=>{a("Error updating feature exon end position","error")}))}return!0}const S=(e,t,n)=>{t.changedIds.push(e._id),t.changes.push({featureId:e._id,oldEnd:e.max,newEnd:n})},B=(e,t,n)=>{t.changedIds.push(e._id),t.changes.push({featureId:e._id,oldStart:e.min,newStart:n})},k=(e,t,n,r)=>{let o;for(const[,i]of e.children??[])if(t.isTypeOf(i.type,"CDS")){if(r&&n===i.min){o=i;break}if(!r&&n===i.max){o=i;break}}return o},Q=(e,t)=>{let n;for(const[,r]of e.children??[])if(t.isTypeOf(r.type,"CDS")){n=r;break}return n},N=(e,t,n,r)=>{let o;for(const[,i]of e.children??[])if(r.isTypeOf(i.type,"exon")&&t===i.min&&n===i.max){o=i;break}return o},R=(e,t,n,r,o)=>{const i=[],a=[];for(const[,s]of e.children?.entries()??[])r.isTypeOf(s.type,"transcript")&&(s._id===t._id?o?(i.push(n),a.push(s.max)):(a.push(n),i.push(s.min)):(i.push(s.min),a.push(s.max)));return[Math.min(...i),Math.max(...a)]},D=(e,t,n,r)=>{const{transcriptExonParts:o}=e;let i;for(const[,e]of o.entries())if(t.isTypeOf(e.type,"exon")){if(!r&&n>=e.min&&n<=e.max){i=e;break}if(r&&n>=e.min&&n<=e.max){i=e;break}}return i},F=(e,t,n,r)=>{const{transcriptExonParts:o,strand:i}=e;let a,s,c,l;for(const[e,i]of o.entries())if(t.isTypeOf(i.type,"exon")){if(r&&i.min===n){a=i,s=e;break}if(!r&&i.max===n){a=i,s=e;break}}if(a&&void 0!==s){if(1===i&&s>0)for(let e=s-1;e>=0;e--){const n=o[e];if(t.isTypeOf(n.type,"exon")){c=n;break}}if(-1===i&&s<o.length-1)for(let e=s+1;e<o.length;e++){const n=o[e];if(t.isTypeOf(n.type,"exon")){c=n;break}}if(1===i&&s<o.length-1)for(let e=s+1;e<o.length;e++){const n=o[e];if(t.isTypeOf(n.type,"exon")){l=n;break}}if(-1===i&&s>0)for(let e=s-1;e>=0;e--){const n=o[e];if(t.isTypeOf(n.type,"exon")){l=n;break}}}return{matchingExon:a,prevExon:c,nextExon:l}},T=(e,t)=>{let n="";if(t>0){const r=m[t-1];1===y?"intron"===r.type&&(n=l.getSequence(e.min-2,e.min)):"intron"===r.type&&(n=o.revcom(l.getSequence(e.max,e.max+2)))}return n=n.toUpperCase(),[{spliceSite:n,color:"AG"===n?"green":"red"}]},j=(e,t)=>{let n="";if(t<m.length-1){const r=m[t+1];1===y?"intron"===r.type&&(n=l.getSequence(e.max,e.max+2)):"intron"===r.type&&(n=o.revcom(l.getSequence(e.min-2,e.min)))}return n=n.toUpperCase(),[{spliceSite:n,color:"GT"===n?"green":"red"}]},M=()=>{let e="";const[n]=p,r=n.toSorted((({min:e},{min:t})=>e-t));for(const t of r)e+=l.getSequence(t.min,t.max);-1===y&&(e=o.revcom(e));const a=[];for(let n=0;n<e.length;n+=3){const r=e.slice(n,n+3).toUpperCase(),c=o.defaultCodonTable[r]||"&";"ATG"===r?a.push(i.jsx(s.Typography,{component:"span",style:{backgroundColor:f?"lightgray":"yellow",cursor:"pointer",border:"1px solid black"},onClick:()=>{if(f)return;const e=O(n);e!==C&&1===y&&E(C,e,t,!0),e!==I&&-1===y&&E(I,e,t,!1)},children:c},n)):["TAA","TAG","TGA"].includes(r)?a.push(i.jsx(s.Typography,{style:{backgroundColor:"red",color:"white"},component:"span",children:c},n)):a.push(i.jsx(s.Typography,{component:"span",children:c},n))}return a},O=e=>{const[t]=p;let n=0;const r=t.toSorted((({min:e},{min:t})=>e-t));if(1===y)for(const t of r){const r=t.max-t.min;if(n+r>e)return t.min+(e-n);n+=r}else if(-1===y)for(let t=r.length-1;t>=0;t--){const o=r[t],i=o.max-o.min;if(n+i>e)return o.max-(e-n);n+=i}return 1===y?C:I};return i.jsxs("div",{children:[w&&i.jsxs("div",{children:[i.jsxs(s.Accordion,{children:[i.jsx(FA,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel1-content",id:"panel1-header",children:i.jsx(s.Typography,{component:"span",fontWeight:"bold",children:"Translation"})}),i.jsxs(s.AccordionDetails,{children:[i.jsx(BA,{children:i.jsx(s.Typography,{component:"span",ref:A,style:{maxHeight:120,overflowY:"scroll"},children:M()})}),i.jsxs("div",{style:{marginTop:10,display:"flex",flexDirection:"row",alignItems:"center",gap:10},children:[i.jsx(s.Tooltip,{title:"Copy",children:i.jsx("button",{onClick:()=>{const e=A.current;e&&yA(e)},style:{border:"none",background:"none",padding:0},disabled:f,children:i.jsx(wA,{style:{fontSize:15}})})}),i.jsx(s.Tooltip,{title:"Trim",children:i.jsx("button",{onClick:()=>{const e=M(),n=e.map((e=>e.props.children)).join("");if(n.startsWith("M")&&n.endsWith("*"))return;const r=[];for(const t of e)r.push({codonGenomicPos:t.key,sequenceLetter:t.props.children});if(0===r.length)return;const o=n.indexOf("M"),i=n.indexOf("*"),s=r[o].codonGenomicPos,c=r[i].codonGenomicPos;if(!s||!c)return;const l=O(s);let u=O(c);if(1===y){if(l>u)return void a("Start codon genomic location should be less than stop codon genomic location","error");let e;u+=3,l!==C&&(e=new Promise((e=>{E(C,l,t,!0,(()=>{e(!0)}))}))),u!==I&&(e?e.then((()=>{E(I,u,t,!1)})):E(I,u,t,!1))}if(-1===y){if(l<u)return void a("Start codon genomic location should be less than stop codon genomic location","error");let e;u-=3,l!==I&&(e=new Promise((e=>{E(I,l,t,!1,(()=>{e(!0)}))}))),u!==C&&(e?e.then((()=>{E(C,u,t,!0)})):E(C,u,t,!0))}a("Translation sequence trimmed to start and stop codons","success")},style:{border:"none",background:"none",padding:0},disabled:f,children:i.jsx(EA,{style:{fontSize:15}})})})]})]})]}),i.jsxs(s.Grid,{container:!0,justifyContent:"center",alignItems:"center",style:{textAlign:"center",marginTop:10},children:[i.jsx(s.Grid,{size:1}),i.jsx(s.Grid,1===y?{size:4,children:i.jsx(SA,{margin:"dense",variant:"outlined",value:C+1,onChangeCommitted:e=>E(C,e-1,t,!0),style:{border:"1px solid black",borderRadius:5},disabled:f})}:{size:4,children:i.jsx(SA,{margin:"dense",variant:"outlined",value:I,onChangeCommitted:e=>E(I,e,t,!1),style:{border:"1px solid black",borderRadius:5},disabled:f})}),i.jsx(s.Grid,{size:2,children:i.jsx(s.Typography,{component:"span",children:"CDS"})}),i.jsx(s.Grid,1===y?{size:4,children:i.jsx(SA,{margin:"dense",variant:"outlined",value:I,onChangeCommitted:e=>E(I,e,t,!1),style:{border:"1px solid black",borderRadius:5},disabled:f})}:{size:4,children:i.jsx(SA,{margin:"dense",variant:"outlined",value:C+1,onChangeCommitted:e=>E(C,e-1,t,!0),style:{border:"1px solid black",borderRadius:5},disabled:f})}),i.jsx(s.Grid,{size:1})]})]}),i.jsx("div",{style:{marginTop:5},children:m.map(((e,n)=>i.jsx("div",{children:"exon"===e.type&&i.jsxs(s.Grid,{container:!0,justifyContent:"center",alignItems:"center",style:{textAlign:"center"},children:[i.jsx(s.Grid,{size:1,children:0!==n&&T(e,n).map(((e,t)=>i.jsx(s.Typography,{component:"span",color:e.color,children:e.spliceSite},t)))}),i.jsx(s.Grid,1===y?{size:4,style:{padding:0},children:i.jsx(SA,{margin:"dense",variant:"outlined",value:e.min+1,onChangeCommitted:n=>x(e.min,n-1,t,!0),disabled:f})}:{size:4,style:{padding:0},children:i.jsx(SA,{margin:"dense",variant:"outlined",value:e.max,onChangeCommitted:n=>x(e.max,n,t,!1),disabled:f})}),i.jsx(s.Grid,{size:2,children:i.jsx(kA,{strand:t.strand})}),i.jsx(s.Grid,1===y?{size:4,style:{padding:0},children:i.jsx(SA,{margin:"dense",variant:"outlined",value:e.max,onChangeCommitted:n=>x(e.max,n,t,!1),disabled:f})}:{size:4,style:{padding:0},children:i.jsx(SA,{margin:"dense",variant:"outlined",value:e.min+1,onChangeCommitted:n=>x(e.min,n-1,t,!0),disabled:f})}),i.jsx(s.Grid,{size:1,children:n!==m.length-1&&j(e,n).map(((e,t)=>i.jsx(s.Typography,{component:"span",color:e.color,children:e.spliceSite},t)))})]})},n)))})]})})),NA=mA(s.TableCell)((()=>({fontWeight:"bold"}))),RA=f.observer((function(e){const{feature:t}=e,n=Lc(t),r=Pc(t);return i.jsx(s.Table,{size:"small",sx:{fontSize:"0.75rem","& .MuiTableCell-root":{padding:"4px"}},children:i.jsxs(s.TableBody,{children:[""!==n&&i.jsxs(s.TableRow,{children:[i.jsx(NA,{children:"Name"}),i.jsx(s.TableCell,{children:Lc(t)})]}),""!==r&&i.jsxs(s.TableRow,{children:[i.jsx(NA,{children:"ID"}),i.jsx(s.TableCell,{children:Pc(t)})]}),i.jsxs(s.TableRow,{children:[i.jsx(NA,{children:"Type"}),i.jsx(s.TableCell,{children:t.type})]}),i.jsxs(s.TableRow,{children:[i.jsx(NA,{children:"Location"}),i.jsxs(s.TableCell,{children:[e.refName,":",t.min,"..",t.max]})]}),i.jsxs(s.TableRow,{children:[i.jsx(NA,{children:"Strand"}),i.jsx(s.TableCell,{children:(o=t.strand,1===o?"Forward":-1===o?"Reverse":"")})]})]})});var o})),DA=Ec()((e=>({root:{padding:e.spacing(2)}}))),FA=mA(s.AccordionSummary)((()=>({minHeight:30,maxHeight:30,"&.Mui-expanded":{minHeight:30,maxHeight:30}})));function TA(e){return null}const jA=f.observer((function(e){const{classes:t}=DA(),n=["summary","location"],[r,a]=u.useState(n),{model:l}=e,{assembly:d,feature:A,refName:f}=l;u.useEffect((()=>{a(n)}),[A]);const h=o.getSession(l),{pluginManager:g}=o.getEnv(h),p=o.getSession(l),m=p.apolloDataStore.assemblies.get(d),{internetAccounts:y}=c.getRoot(h),_=y.find((e=>"ApolloInternetAccount"===e.type)),v=["admin","user"].includes((_?_.role:"admin")??"");if(!A||!m)return null;const b=m.getByRefName(f);if(!b)return null;const{max:C,min:I}=A;function w(e,t){a(e?[...r,t]:r.filter((e=>e!==t)))}b.getSequence(I,C)||p.apolloDataStore.loadRefSeq([{assemblyName:d,refName:f,start:I,end:C}]);const E=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideSummary",TA,{feature:A,session:h}),x=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterSummary",TA,{feature:A,session:h}),S=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideLocation",TA,{feature:A,session:h}),B=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterLocation",TA,{feature:A,session:h}),k=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideAttributes",TA,{feature:A,session:h}),Q=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterAttributes",TA,{feature:A,session:h}),N=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-InsideSequence",TA,{feature:A,session:h}),R=g.evaluateExtensionPoint("Apollo-TranscriptDetailsCustomComponent-AfterSequence",TA,{feature:A,session:h});return i.jsxs("div",{className:t.root,children:[i.jsxs(s.Accordion,{expanded:r.includes("summary"),onChange:(e,t)=>{w(t,"summary")},children:[i.jsx(FA,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel1-content",id:"panel1-header",children:i.jsx(s.Typography,{component:"span",fontWeight:"bold",children:"Summary"})}),i.jsxs(s.AccordionDetails,{children:[i.jsx(RA,{feature:A,refName:f}),i.jsx(E,{session:h,feature:A})]})]}),i.jsx(x,{session:h,feature:A}),i.jsxs(s.Accordion,{style:{marginTop:5},expanded:r.includes("location"),onChange:(e,t)=>{w(t,"location")},children:[i.jsx(FA,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel2-content",id:"panel2-header",children:i.jsx(s.Typography,{component:"span",fontWeight:"bold",children:"Location"})}),i.jsxs(s.AccordionDetails,{children:[i.jsx(QA,{feature:A,refName:f,session:p,assembly:m._id||""}),i.jsx(S,{session:h,feature:A})]})]}),i.jsx(B,{session:h,feature:A}),i.jsxs(s.Accordion,{style:{marginTop:5},expanded:r.includes("attrs"),onChange:(e,t)=>{w(t,"attrs")},children:[i.jsx(FA,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel3-content",id:"panel3-header",children:i.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[i.jsxs(s.Typography,{component:"span",fontWeight:"bold",children:["Attributes"," "]}),i.jsx(s.Tooltip,{title:"Separate multiple values for the attribute with commas",children:i.jsx(xc,{style:{color:"white",fontSize:15,marginLeft:10}})})]})}),i.jsxs(s.AccordionDetails,{children:[i.jsx(Kd,{feature:A,session:p,assembly:m._id||"",editable:v}),i.jsx(k,{session:h,feature:A})]})]}),i.jsx(Q,{session:h,feature:A}),i.jsxs(s.Accordion,{style:{marginTop:5},expanded:r.includes("sequence"),onChange:(e,t)=>{w(t,"sequence")},children:[i.jsx(FA,{expandIcon:i.jsx(Td,{style:{color:"white"}}),"aria-controls":"panel4-content",id:"panel4-header",children:i.jsx(s.Typography,{component:"span",fontWeight:"bold",children:"Sequence"})}),i.jsxs(s.AccordionDetails,{children:[r.includes("sequence")&&i.jsx(IA,{feature:A,session:p,assembly:m._id||"",refName:f}),i.jsx(N,{session:h,feature:A})]})]}),i.jsx(R,{feature:A,session:h})]})})),MA=n.ConfigurationSchema("LinearApolloDisplay",{},{explicitIdentifier:"displayId",explicitlyTyped:!0}),OA=Ec()({highlighted:{background:"orange"}}),LA=({highlight:e,text:t})=>{const{classes:n}=OA();if(!e)return i.jsx(i.Fragment,{children:t});const r=t.split(e);if(1===r.length)return i.jsx(i.Fragment,{children:t});const o=[];for(let t=0;t<r.length-1;t++)o.push(r[t],i.jsx("span",{className:n.highlighted,children:e}));return i.jsxs(i.Fragment,{children:[o,r.at(-1)]})},PA=f.observer((function({feature:e,filterText:t}){const n=[...e.attributes.entries()].map((([e,t])=>{if(e.startsWith("gff_")){const n=e.slice(4);return[n.charAt(0).toUpperCase()+n.slice(1),c.getSnapshot(t)]}return"_id"===e?["ID",c.getSnapshot(t)]:[e,c.getSnapshot(t)]})).filter((([e])=>e)).map((([e,t])=>`${e}=${Array.isArray(t)?t.join(", "):t}`)).join(", ");return i.jsx(LA,{text:n,highlight:t})})),qA=Ec()((e=>({inputWrapper:{position:"relative"},hiddenWidthSpan:{padding:e.spacing(.5),color:"transparent"},numberTextInput:{border:"none",background:"inherit",font:"inherit",position:"absolute",width:"100%",left:0}}))),JA=f.observer((function({initialValue:e,notifyError:t,onChangeCommitted:n}){const[r,o]=u.useState(e),[a,s]=u.useState(!1),[c,l]=u.useState(null),{classes:d}=qA();return u.useEffect((()=>{e!==r&&o(e)}),[e]),u.useEffect((()=>{a&&(c?.blur(),s(!1))}),[a,c]),i.jsxs("span",{className:d.inputWrapper,children:[i.jsx("span",{className:d.hiddenWidthSpan,"aria-hidden":!0,children:r}),i.jsx("input",{type:"text",value:r,className:d.numberTextInput,onChange:function(e){const t=Number(e.target.value);Number.isNaN(t)||o(t)},onKeyDown:t=>{"Enter"===t.key?c?.blur():"Escape"===t.key&&(o(e),s(!0))},onBlur:()=>{r!==e&&n(r).catch(t)},ref:e=>{l(e)}})]})})),UA=Ec()((e=>({typeContent:{display:"inline-block",width:"174px",height:"100%",cursor:"text"},feature:{td:{position:"relative",verticalAlign:"top",paddingLeft:"0.5em"}},arrow:{display:"inline-block",width:"1.6em",textAlign:"center",cursor:"pointer"},arrowExpanded:{transform:"rotate(90deg)"},hoveredFeature:{backgroundColor:e.palette.action.hover},typeInputElement:{border:"none",background:"none"},typeErrorMessage:{color:"red"}})));function GA(e,t){const{changeManager:n,getAssemblyId:r,regions:i,selectedFeature:a,session:s,setSelectedFeature:l,filteredTranscripts:u,updateFilteredTranscripts:d}=e;return function(e,t,n,r,i,a,s,l,u){const d=function(e){const{internetAccounts:t}=c.getParent(e);return t.find((e=>"ApolloInternetAccount"===e.type))}(a),A=d?d.role:"admin",f="admin"===A,h=!(A&&["admin","user"].includes(A)),g=[];if(e){const c=e.attributes.get("gff_id")?.toString(),A=n(t.assemblyName),p=n(t.assemblyName);g.push({label:"Edit feature details",onClick:()=>{const n=a.addWidget("ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget",{feature:e,assembly:p,refName:t.refName});a.showWidget(n)}},{label:"Add child feature",disabled:h,onClick:()=>{a.queueDialog((t=>[Bu,{session:a,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:A,internetAccount:d}]))}},{label:"Copy features and annotations",disabled:h,onClick:()=>{a.queueDialog((t=>[Ou,{session:a,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:p}]))}},{label:"Delete feature",disabled:!f,onClick:()=>{a.queueDialog((t=>[Pu,{session:a,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:p,selectedFeature:r,setSelectedFeature:i}]))}},{label:"Merge transcripts",disabled:!f,onClick:()=>{a.queueDialog((t=>[Xu,{session:a,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:p,selectedFeature:r,setSelectedFeature:i}]))}},{label:"Merge exons",disabled:!f,onClick:()=>{a.queueDialog((t=>[Vu,{session:a,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:p,selectedFeature:r,setSelectedFeature:i}]))}},{label:"Split exon",disabled:!f,onClick:()=>{a.queueDialog((t=>[ld,{session:a,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:p,selectedFeature:r,setSelectedFeature:i}]))}});const{featureTypeOntology:m}=a.apolloDataStore.ontologyManager;if(!m)throw new Error("featureTypeOntology is undefined");(m.isTypeOf(e.type,"transcript")||m.isTypeOf(e.type,"pseudogenic_transcript"))&&o.isSessionModelWithWidgets(a)&&g.push({label:"Edit transcript details",onClick:()=>{const n=a.addWidget("ApolloTranscriptDetails","apolloTranscriptDetails",{feature:e,assembly:p,changeManager:s,refName:t.refName});a.showWidget(n)}},{label:"Duplicate feature",onClick:()=>{a.queueDialog((t=>[ud,{session:a,handleClose:()=>{t()},changeManager:s,sourceFeature:e,sourceAssemblyId:p,selectedFeature:r,setSelectedFeature:i}]))}},{label:"Visible",type:"checkbox",checked:!c||!l.includes(c),onClick:()=>{if(c){const e=l.includes(c)?l.filter((e=>e!==c)):[...l,c];u(e)}}})}return g}(t,i[0],r,a,l,s,n,u,d)}const HA=f.observer((function e({depth:t,feature:n,isHovered:r,isSelected:o,model:a,selectedFeatureClass:s,setContextMenu:c}){const{classes:l}=UA(),{changeManager:u,hoveredFeature:d,selectedFeature:A,session:f,tabularEditor:h}=a,{featureCollapsed:g,filterText:p}=h,{_id:m,children:y,max:_,min:v,strand:b,type:C}=n,I=!g.get(m),w=e=>{f.notify(e.message,"error")};return i.jsxs(i.Fragment,{children:[i.jsxs("tr",{onMouseEnter:e=>{a.setHoveredFeature({feature:n,bp:v})},className:l.feature+(o?` ${s}`:r?` ${l.hoveredFeature}`:""),onClick:e=>{e.stopPropagation(),a.setSelectedFeature(n)},onDoubleClick:()=>{a.setSelectedFeature(n),function(e,t){e.lgv.navTo(rl(t,.1,e.lgv.totalBp))}(a,n)},onContextMenu:e=>(e.preventDefault(),c({position:{left:e.clientX+2,top:e.clientY-6},items:GA(a,n)}),!1),children:[i.jsxs("td",{style:{whiteSpace:"nowrap",borderLeft:2*t+"em solid transparent"},children:[y?.size?i.jsx("div",{onClick:e=>{e.stopPropagation(),h.setFeatureCollapsed(m,I)},className:l.arrow+(I?` ${l.arrowExpanded}`:""),children:"❯"}):null,i.jsx("div",{className:l.typeContent,children:i.jsx(Su,{session:f,ontologyName:"Sequence Ontology",style:{width:170},value:C,filterTerms:wu,fetchValidTerms:YA.bind(null,n),renderInput:e=>i.jsxs("div",{ref:e.InputProps.ref,children:[i.jsx("input",{type:"text",...e.inputProps,className:l.typeInputElement,style:{width:170}}),e.error?i.jsx("div",{className:l.typeErrorMessage,children:e.errorMessage??"unknown error"}):null]}),onChange:(e,t)=>{t&&function(e,t,n,r){const o=t._id,i=new no({typeName:"TypeChange",changedIds:[o],featureId:o,oldType:String(n),newType:String(r),assembly:t.assemblyId});return e.submit(i)}(u,n,e,t).catch(w)}})})]}),i.jsx("td",{children:i.jsx(JA,{initialValue:v+1,notifyError:w,onChangeCommitted:e=>function(e,t,n,r){const o=t._id,i=new Ur({typeName:"LocationStartChange",changedIds:[o],featureId:o,oldStart:n,newStart:r,assembly:t.assemblyId});return e.submit(i)}(u,n,v,e-1)})}),i.jsx("td",{children:i.jsx(JA,{initialValue:_,notifyError:w,onChangeCommitted:e=>function(e,t,n,r){const o=t._id,i=new qr({typeName:"LocationEndChange",changedIds:[o],featureId:o,oldEnd:n,newEnd:r,assembly:t.assemblyId});return e.submit(i)}(u,n,_,e)})}),i.jsx("td",{children:1===b?"+":-1===b?"-":void 0}),i.jsx("td",{children:i.jsx(PA,{filterText:p,feature:n})})]}),I&&y?[...y.entries()].filter((e=>{if(!p)return!0;const[,t]=e;return JSON.stringify(t).includes(p)})).map((([n,r])=>i.jsx(e,{isHovered:d?.feature._id===r._id,isSelected:A?._id===r._id,selectedFeatureClass:s,depth:(t||0)+1,feature:r,model:a,setContextMenu:c},n))):null]})}));async function YA(e,t,n){const{parent:r}=e;if(r){const e=(await t.getTermsWithLabelOrSynonym(r.type,{includeSubclasses:!1})).filter(wu);if(e.length>0)return await t.getClassesThat("part_of",e)}}const zA=Ec()((e=>({scrollableTable:{width:"100%",height:"100%",th:{position:"sticky",top:0,zIndex:2,textAlign:"left",background:e.palette.background.paper,paddingTop:"3.2em"},td:{whiteSpace:"normal"}},selectedFeature:{backgroundColor:e.palette.action.selected}}))),KA=f.observer((function({model:e}){const{hoveredFeature:t,seenFeatures:n,selectedFeature:r,tabularEditor:o}=e,a=s.useTheme(),{classes:c}=zA(),l=u.useRef(null),[d,f]=u.useState(null),{filterText:h}=o;return u.useEffect((()=>{const e=l.current;if(e&&r){const t=e.querySelector(`.${c.selectedFeature}`);if(t){const n=e.scrollTop,r=t.offsetTop-25;r>n&&r<n+e.offsetHeight||e.scroll({top:r-40,behavior:"smooth"})}}}),[r,n,c.selectedFeature]),i.jsxs("div",{ref:l,style:{width:"100%",overflowY:"auto",height:"100%"},children:[i.jsxs("table",{className:c.scrollableTable,children:[i.jsx("thead",{children:i.jsxs("tr",{children:[i.jsx("th",{children:"Type"}),i.jsx("th",{children:"Start"}),i.jsx("th",{children:"End"}),i.jsx("th",{children:"Strand"}),i.jsx("th",{children:"Attributes"})]})}),i.jsx("tbody",{children:[...n.entries()].filter((e=>{if(!h)return!0;const[,t]=e;return JSON.stringify(t).includes(h)})).sort(((e,t)=>e[1].min-t[1].min)).map((([n,o])=>i.jsx(HA,{isSelected:r?._id===n,isHovered:t?.feature._id===n,selectedFeatureClass:c.selectedFeature,feature:o,model:e,depth:0,setContextMenu:f},n)))})]}),i.jsx(A.Menu,{open:Boolean(d),onMenuItemClick:(e,t)=>{t(),f(null)},onClose:()=>{f(null)},slotProps:{transition:{onExit:()=>{f(null)}}},style:{zIndex:a.zIndex.tooltip},menuItems:d?.items??[],anchorReference:"anchorPosition",anchorPosition:d?.position})]})}));var WA=a.createSvgIcon(i.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear"),VA=a.createSvgIcon(i.jsx("path",{d:"M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10z"}),"UnfoldLess");const $A=Ec()({toolbar:{width:"100%",display:"flex",paddingRight:"2em",flexDirection:"row",justifyContent:"space-between",position:"absolute",zIndex:4},filterText:{}}),XA=f.observer((function({model:e}){const t=e.tabularEditor,{classes:n}=$A();return i.jsxs("div",{className:n.toolbar,children:[i.jsx(s.Tooltip,{title:"Collapse all",children:i.jsx(s.IconButton,{"aria-label":"collapse",sx:{marginTop:0},onClick:t.collapseAllFeatures,children:i.jsx(VA,{})})}),i.jsx(s.TextField,{className:n.filterText,label:"Filter features",value:t.filterText,sx:{marginTop:0},variant:"outlined",onChange:e=>{t.setFilterText(e.target.value)},slotProps:{input:{endAdornment:i.jsx(s.InputAdornment,{position:"end",children:i.jsx(s.IconButton,{onClick:()=>{t.clearFilterText()},children:i.jsx(WA,{})})})}}})]})}));function ZA(e){e.stopPropagation()}const ef=f.observer((function({model:e}){return e.tabularEditor.isShown?i.jsxs("div",{onMouseDown:ZA,onClick:ZA,style:{width:"100%",height:"100%",position:"relative"},children:[i.jsx(XA,{model:e}),i.jsx(KA,{model:e})]}):null})),tf=c.types.model("TabularEditor",{isShown:!0,featureCollapsed:c.types.map(c.types.boolean),filterText:""}).actions((e=>({setFeatureCollapsed(t,n){e.featureCollapsed.set(t,n)},setFilterText(t){e.filterText=t},clearFilterText(){e.filterText=""},collapseAllFeatures(){const t=c.getParent(e);for(const[n]of t.seenFeatures.entries())e.featureCollapsed.set(n,!0)},togglePane(){e.isShown=!e.isShown},hidePane(){e.isShown=!1},showPane(){e.isShown=!0}})));function nf(e,t,n,r=!1){const{apolloRowHeight:o,lgv:i,theme:a}=e,s=e.getFeatureLayoutPosition(n);if(!s)return;const{bpPerPx:c,displayedRegions:l,offsetPx:u}=i,{layoutIndex:d,layoutRow:A}=s,f=l[d],{refName:h,reversed:g}=f,{length:p,max:m,min:y}=n,_=(i.bpToPx({refName:h,coord:g?m:y,regionNumber:d})?.offsetPx??0)-u,v=A*o,b=p/c;t.fillStyle=r?a.palette.action.disabled:a.palette.action.focus,t.fillRect(_,v,b,o)}function rf(e,t,n,r,o,i){e.fillStyle=i,e.fillRect(t,n,r,o)}function of(e,t,n){const{refName:r,regionNumber:o,x:i}=e,{lgv:a}=n,{offsetPx:s}=a,c=a.bpToPx({refName:r,coord:t.min,regionNumber:o}),l=a.bpToPx({refName:r,coord:t.max,regionNumber:o});if(void 0!==c&&void 0!==l){const e=c.offsetPx-s,t=l.offsetPx-s;if(Math.abs(t-e)<8)return;if(Math.abs(e-i)<4)return"min";if(Math.abs(t-i)<4)return"max"}}const af={draw:function(e,t,n,r,o){const{apolloRowHeight:i,lgv:a,selectedFeature:s,theme:c}=r,{bpPerPx:l,displayedRegions:u,offsetPx:d}=a,A=u[o],f=(a.bpToPx({refName:A.refName,coord:t.min,regionNumber:o})?.offsetPx??0)-d,{reversed:h}=A,g=t.length/l,p=h?f-g:f,m=n*i,y=c.palette.background.default;!function(e,t,n,r,o,i){rf(e,t,n,r,o,i),r<=2||e.clearRect(t+1,n+1,r-2,o-2)}(e,p,m,g,i,c.palette.text.primary),g<=2||(function(e,t,n,r,o,i){rf(e,t+1,n+1,r-2,o-2,i)}(e,p,m,g,i,y),Zc(t,s)&&nf(r,e,t,!0))},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:o,theme:i}=e,{bpPerPx:a,displayedRegions:c,offsetPx:l}=o;if(!n)return;const{current:u,edge:d,feature:A,start:f}=n,h=Math.floor(f.y/r),g=c[f.regionNumber],p=(g.reversed?g.end-A[d]:A[d]-g.start)/a-l,m=Math.min(u.x,p),y=h*r,_=Math.abs(u.x-p),v=1*r;t.strokeStyle=i.palette.info.main,t.setLineDash([6]),t.strokeRect(m,y,_,v),t.fillStyle=s.alpha(i.palette.info.main,.2),t.fillRect(m,y,_,v)},drawHover:function(e,t){const{hoveredFeature:n}=e;n&&nf(e,t,n.feature)},drawTooltip:function(e,t){const{hoveredFeature:n,apolloRowHeight:r,lgv:o,theme:i}=e;if(!n)return;const{feature:a}=n,c=e.getFeatureLayoutPosition(a);if(!c)return;const{featureRow:l,layoutIndex:u,layoutRow:d}=c,{bpPerPx:A,displayedRegions:f,offsetPx:h}=o,g=f[u],{refName:p,reversed:m}=g;let y="Loc: ";const{length:_,max:v,min:b}=a;y+=`${b+1}–${v}`;let C=(o.bpToPx({refName:p,coord:m?v:b,regionNumber:u})?.offsetPx??0)-h;const I=(d+l)*r,w=_/A,E=`Type: ${a.type}`,{attributes:x}=a,S=x.get("gff_name")?.find((e=>""!==e)),B=[t.measureText(E).width,t.measureText(y).width];S&&B.push(t.measureText(`Name: ${S}`).width);const k=Math.max(...B);C=C+w+5,t.fillStyle=s.alpha(i.palette.text.primary,.7),t.fillRect(C,I,k+4,3===B.length?45:35),t.beginPath(),t.moveTo(C,I),t.lineTo(C-5,I+5),t.lineTo(C,I+10),t.fill(),t.fillStyle=i.palette.background.default;let Q=I+12;t.fillText(E,C+2,Q),S&&(Q+=12,t.fillText(`Name: ${S}`,C+2,Q)),Q+=12,t.fillText(y,C+2,Q)},getContextMenuItemsForFeature:nl,getContextMenuItems:function(e){const{hoveredFeature:t}=e;return t?nl(e,t.feature):[]},getFeatureFromLayout:function(e,t,n){return e},getRowCount:function(e){return 1},getRowForFeature:function(e,t){return 0},onMouseDown:function(e,t,n){const{feature:r}=t,o=of(t,r,e);o&&(n.stopPropagation(),e.startDrag(t,r,o))},onMouseLeave:function(){},onMouseMove:function(e,t){if(sl(t)){const{feature:n,bp:r}=t;if(e.setHoveredFeature({feature:n,bp:r}),of(t,n,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{feature:n}=t;n&&(e.setSelectedFeature(n),e.showFeatureDetailsWidget(n))}};let sf=null,cf=null,lf=null,uf=null;const df=globalThis.document.createElement("canvas");if(df?.getContext)for(const e of["forward","backward"])for(const t of["light","dark"]){const n=document.createElement("canvas"),r=10;n.width=n.height=r;const o=n.getContext("2d");if(o){const i="light"===t?"rgba(0,0,0,0)":"rgba(0,0,0,0.75)",a="light"===t?"rgba(255,255,255,0.25)":"rgba(0,0,0,0.50)",s="forward"===e?o.createLinearGradient(0,r,r,0):o.createLinearGradient(0,0,r,r);s.addColorStop(0,i),s.addColorStop(.25,i),s.addColorStop(.25,a),s.addColorStop(.5,a),s.addColorStop(.5,i),s.addColorStop(.75,i),s.addColorStop(.75,a),s.addColorStop(1,a),o.fillStyle=s,o.fillRect(0,0,10,10),"forward"===e?"light"===t?sf=o.createPattern(n,"repeat"):lf=o.createPattern(n,"repeat"):"light"===t?cf=o.createPattern(n,"repeat"):uf=o.createPattern(n,"repeat")}}function Af(e,t,n,r,o,i,a,s,c){const{apolloRowHeight:l,lgv:u,theme:d}=t,{bpPerPx:A,displayedRegions:f,offsetPx:h}=u,g=f[n],{refName:p,reversed:m}=g,y=(u.bpToPx({refName:p,coord:o.min,regionNumber:n})?.offsetPx??0)-h,_=o.length/A,v=m?y-_:y,b=(r+i)*l,C=Math.round(.6*l),I=b+(l-C)/2;if(e.fillStyle=d.palette.text.primary,e.fillRect(v,I,_,C),_>2&&(e.clearRect(v+1,I+1,_-2,C-2),e.fillStyle="rgb(211,211,211)",e.fillRect(v+1,I+1,_-2,C-2),s&&c&&a)){const t=m?-1:1,[n,r]=a*t==1?[s,c]:[c,s];e.fillStyle=n,e.fillRect(v+1,I+1,_-2,(C-2)/2),e.fillStyle=r,e.fillRect(v+1,I+1+(C-2)/2,_-2,(C-2)/2)}}function*ff(e,t,n=1){if(e!==t)if(e<t)for(let r=e;r<t;r+=n)yield r;else for(let r=e;r>t;r-=n)yield r}function hf(e,t,n,r,o,i){const{apolloRowHeight:a,lgv:s,theme:c}=t,{bpPerPx:l,displayedRegions:u,offsetPx:d}=s,A=u[n],{refName:f,reversed:h}=A,g=(s.bpToPx({refName:f,coord:o.min,regionNumber:n})?.offsetPx??0)-d,p=Math.round(o.length/l),m=h?g-p:g,y=Math.round((i+.5)*a)+r*a;e.strokeStyle=c.palette.text.primary;const{strand:_=1}=o;e.beginPath();const v=_*(h?-1:1),b=m-(-1===v?5:0),C=m+p+(-1===v?0:5);e.moveTo(b,y),e.lineTo(C,y);const I=b+(-1===v?0:3),w=C-(-1===v?3:0),E=-1===v?3:-3,x=-1===v?ff(I,w,20):ff(w,I,20);for(const t of x)e.moveTo(t+E,y+E),e.lineTo(t,y),e.lineTo(t+E,y-E);e.stroke()}function gf(e,t,n,r=!1){const{apolloRowHeight:o,lgv:i,session:a,theme:s}=e,{featureTypeOntology:c}=a.apolloDataStore.ontologyManager,l=e.getFeatureLayoutPosition(n);if(!l)return;const{bpPerPx:u,displayedRegions:d,offsetPx:A}=i,{featureRow:f,layoutIndex:h,layoutRow:g}=l,p=d[h],{refName:m,reversed:y}=p,{length:_,max:v,min:b}=n,C=(i.bpToPx({refName:m,coord:y?v:b,regionNumber:h})?.offsetPx??0)-A,I=(g+f)*o,w=_/u;if(t.fillStyle=r?s.palette.action.disabled:s.palette.action.focus,!c)throw new Error("featureTypeOntology is undefined");t.fillRect(C,I,w,o*mf(n,c))}function pf(e,t){const{children:n,type:r}=e;if(!n)return 0;let o=0;if(t.isTypeOf(r,"transcript"))for(const[,e]of n)t.isTypeOf(e.type,"CDS")&&(o+=1);return o}function mf(e,t,n){const{children:r,type:o}=e;if(!r)return 1;let i=0;if(t.isTypeOf(o,"transcript")||t.isTypeOf(o,"pseudogenic_transcript")){for(const[,e]of r)t.isTypeOf(e.type,"CDS")&&(i+=1);return 0===i?1:i}for(const[,e]of r)i+=mf(e,t);return i}function yf(e,t){if(!t.isTypeOf(e.type,"gene")&&!t.isTypeOf(e.type,"pseudogene"))throw new Error('Top level feature for GeneGlyph must have type "gene"');const{children:n}=e;if(!n)return[[e]];const r=[];for(const[,o]of n){if(!t.isTypeOf(o.type,"transcript")&&!t.isTypeOf(o.type,"pseudogenic_transcript")){r.push([o,e]);continue}if(!o.children)continue;const n=[],i=[];for(const[,e]of o.children)t.isTypeOf(e.type,"CDS")?n.push(e):t.isTypeOf(e.type,"exon")&&i.push(e);for(const t of n)r.push([t,...i,o,e]);0===n.length&&r.push([...i,o,e])}return r}function _f(e,t,n){const{session:r}=n,{apolloDataStore:i}=r,{featureTypeOntology:a}=i.ontologyManager;if(!a)throw new Error("featureTypeOntology is undefined");const s=a.isTypeOf(t.type,"gene")||a.isTypeOf(t.type,"pseudogene"),c=a.isTypeOf(t.type,"transcript")||a.isTypeOf(t.type,"pseudogenic_transcript"),l=a.isTypeOf(t.type,"CDS");if(s||c)return;const{bp:u,refName:d,regionNumber:A,x:f}=e,{lgv:h}=n;if(l){const e=t.parent;if(!e?.children)return;const n=[];for(const t of e.children.values())a.isTypeOf(t.type,"exon")&&n.push(t);const r=n.find((e=>{const[t,n]=o.intersection2(u-1,u,e.min,e.max);return void 0!==t&&void 0!==n}));if(r){const e=$c(r,d,A,h);if(e){const t=Xc(r,f,e);if(t)return t}}}const g=$c(t,d,A,h);if(g){const e=Xc(t,f,g);if(e)return e}}const{drawTooltip:vf,getContextMenuItemsForFeature:bf,onMouseLeave:Cf}=af,If={draw:function(e,t,r,i,a){const{apolloRowHeight:c,lgv:l,selectedFeature:u,session:d,theme:A}=i,{bpPerPx:f,displayedRegions:h,offsetPx:g}=l,p=h[a],{refName:m,reversed:y}=p,_=c,v=Math.round(.9*_),{children:b,strand:C}=t;if(!b)return;const{apolloDataStore:I}=d,{featureTypeOntology:w}=I.ontologyManager;if(!w)throw new Error("featureTypeOntology is undefined");!function(e,t,r,o,i,a){const{apolloRowHeight:c,lgv:l,session:u,theme:d}=r,{bpPerPx:A,displayedRegions:f,offsetPx:h}=l,g=f[o],{refName:p,reversed:m}=g,{apolloDataStore:y}=u,{featureTypeOntology:_}=y.ontologyManager;if(!_)throw new Error("featureTypeOntology is undefined");const v=(l.bpToPx({refName:p,coord:t.min,regionNumber:o})?.offsetPx??0)-h,b=t.length/A,C=m?v-b:v,I=i*c,w=mf(t,_)*c;let E;E=n.readConfObject(u.getPluginConfiguration(),"geneBackgroundColor",{featureType:t.type}),E||(E=s.alpha(d.palette.background.paper,.6)),e.fillStyle=E,e.fillRect(C,I,b,w)}(e,t,i,a,r);let E=0;for(const[,t]of b){if(!w.isTypeOf(t.type,"transcript")&&!w.isTypeOf(t.type,"pseudogenic_transcript")){E+=1;continue}const{children:n}=t;if(!n)continue;const o=pf(t,w);for(const[,o]of n)w.isTypeOf(o.type,"CDS")&&(hf(e,i,a,r,t,E),E+=1);0===o&&(hf(e,i,a,r,t,E),E+=1)}const x="dark"===A.palette.mode?lf:sf,S="dark"===A.palette.mode?uf:cf;E=0;for(const[,t]of b){if(!w.isTypeOf(t.type,"transcript")&&!w.isTypeOf(t.type,"pseudogenic_transcript")){af.draw(e,t,r,i,a),E+=1;continue}const n=pf(t,w);if(0!=n)for(const n of t.cdsLocations){const{children:s}=t;if(s){for(const[,t]of s)w.isTypeOf(t.type,"exon")&&Af(e,i,a,r,t,E,C,x,S);for(const i of n){const n=(i.max-i.min)/f,s=(l.bpToPx({refName:m,coord:i.min,regionNumber:a})?.offsetPx??0)-g,c=y?s-n:s;e.fillStyle=A.palette.text.primary;const u=(r+E)*_+(_-v)/2;if(e.fillRect(c,u,n,v),n>2){e.clearRect(c+1,u+1,n-2,v-2);const r=o.getFrame(i.min,i.max,t.strand??1,i.phase),a=A.palette.framesCDS.at(r)?.main;if(e.fillStyle=a??"black",e.fillRect(c+1,u+1,n-2,v-2),x&&S&&C){const t=y?-1:1,[r,o]=C*t==1?[x,S]:[S,x];e.fillStyle=r,e.fillRect(c+1,u+1,n-2,(v-2)/2),e.fillStyle=o,e.fillRect(c+1,u+(v-2)/2,n-2,(v-2)/2)}}}E+=1}}const{children:s}=t;if(0===n&&s){for(const[,t]of s)w.isTypeOf(t.type,"exon")&&Af(e,i,a,r,t,E,C,x,S);E+=1}}u&&el(t,u)&&gf(i,e,u,!0)},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:o,theme:i}=e,{bpPerPx:a,displayedRegions:c,offsetPx:l}=o;if(!n)return;const{current:u,edge:d,feature:A,start:f}=n,h=Math.floor(f.y/r),g=c[f.regionNumber],p=(g.reversed?g.end-A[d]:A[d]-g.start)/a-l,m=Math.min(u.x,p),y=h*r,_=Math.abs(u.x-p),v=1*r;t.strokeStyle=i.palette.info.main,t.setLineDash([6]),t.strokeRect(m,y,_,v),t.fillStyle=s.alpha(i.palette.info.main,.2),t.fillRect(m,y,_,v)},drawHover:function(e,t){const{hoveredFeature:n}=e;n&&gf(e,t,n.feature)},drawTooltip:vf,getContextMenuItems:function(e,t){const{apolloInternetAccount:n,hoveredFeature:r,changeManager:i,regions:a,selectedFeature:s,session:c}=e,[l]=a,u=e.getAssemblyId(l.assemblyName),d=[],A="admin"===(n?n.role:"admin");if(!r)return d;if(sl(t)){const{bp:n,feature:r}=t;let a=Jc(r,n);Kc(r,c)&&(a=Jc(r,n,!0));for(const n of a){const r=af.getContextMenuItemsForFeature(e,n);if(zc(n,c)){const a=Wc(n,e,t,c),l=o.getContainingView(e);if(a.upstream){const t=a.upstream;r.push({label:"Go to upstream exon",icon:Vc(n.strand,!0,l.displayedRegions.at(0)?.reversed),onClick:()=>{l.navTo(rl(t,.1,l.totalBp)),Hc(e,t)}})}if(a.downstream){const t=a.downstream;r.push({label:"Go to downstream exon",icon:Vc(n.strand,!1,l.displayedRegions.at(0)?.reversed),onClick:()=>{l.navTo(rl(t,.1,l.totalBp)),Hc(e,t)}})}r.push({label:"Merge exons",disabled:!A,onClick:()=>{c.queueDialog((t=>[Vu,{session:c,handleClose:()=>{t()},changeManager:i,sourceFeature:n,sourceAssemblyId:u,selectedFeature:s,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}},{label:"Split exon",disabled:!A,onClick:()=>{c.queueDialog((t=>[ld,{session:c,handleClose:()=>{t()},changeManager:i,sourceFeature:n,sourceAssemblyId:u,selectedFeature:s,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}})}Yc(n,c)&&(r.push({label:"Merge transcript",onClick:()=>{c.queueDialog((t=>[Xu,{session:c,handleClose:()=>{t()},changeManager:i,sourceFeature:n,sourceAssemblyId:u,selectedFeature:s,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}},{label:"Duplicate feature",onClick:()=>{c.queueDialog((t=>[ud,{session:c,handleClose:()=>{t()},changeManager:i,sourceFeature:n,sourceAssemblyId:u,selectedFeature:s,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}}),o.isSessionModelWithWidgets(c)&&r.splice(1,0,{label:"Open transcript editor",onClick:()=>{const e=c.addWidget("ApolloTranscriptDetails","apolloTranscriptDetails",{feature:n,assembly:u,changeManager:i,refName:l.refName});c.showWidget(e)}})),d.push({label:n.type,subMenu:r})}}return d},getContextMenuItemsForFeature:bf,getFeatureFromLayout:function(e,t,n,r){const o=yf(e,r)[n]||[];for(const e of o){let n;if(t>=e.min&&t<=e.max&&e.parent&&(n=e),n){if(r.isTypeOf(n.type,"CDS")&&n.parent&&(r.isTypeOf(n.parent.type,"transcript")||r.isTypeOf(n.parent.type,"pseudogenic_transcript"))){const{cdsLocations:e}=n.parent;for(const r of e)for(const e of r)if(t>=e.min&&t<=e.max)return n;return n.parent}return n}}return e},getRowCount:mf,getRowForFeature:function(e,t,n){const r=yf(e,n);for(const[e,n]of r.entries())if(n.some((e=>e._id===t._id)))return e},onMouseDown:function(e,t,n){const{feature:r}=t,o=_f(t,r,e);o&&(n.stopPropagation(),e.startDrag(t,o.feature,o.edge,!0))},onMouseLeave:Cf,onMouseMove:function(e,t){if(sl(t)){const{feature:n,bp:r}=t;if(e.setHoveredFeature({feature:n,bp:r}),_f(t,n,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(e.apolloDragging)return;const{feature:n}=t;n&&Hc(e,n)}};function wf(e){const t=[[e]];if(e.children)for(const[,n]of e.children)t.push(...wf(n));return t}function Ef(e){return wf(e).length}function xf(e,t,n,r,o,i){const a=wf(t)[n-r];for(const t of a)Sf(e,t,n,o,i)}function Sf(e,t,n,r,o){const{apolloRowHeight:i,lgv:a,theme:c}=r,{bpPerPx:l,displayedRegions:u,offsetPx:d}=a,A=u[o],f=(a.bpToPx({refName:A.refName,coord:t.min,regionNumber:o})?.offsetPx??0)-d,{reversed:h}=A,g=t.length/l,p=h?f-g:f,m=n*i,y=Ef(t),_=s.alpha(c.palette.background.paper,.6);y>1&&rf(e,p,m,g,y*i,_),af.draw(e,t,n,r,o)}function Bf(e,t,n,r=!1){const{apolloRowHeight:o,lgv:i,theme:a}=e,s=e.getFeatureLayoutPosition(n);if(!s)return;const{featureRow:c,layoutIndex:l,layoutRow:u}=s,{bpPerPx:d,displayedRegions:A,offsetPx:f}=i,h=A[l],{refName:g,reversed:p}=h,{length:m,max:y,min:_}=n,v=(i.bpToPx({refName:g,coord:p?y:_,regionNumber:l})?.offsetPx??0)-f,b=(u+c)*o,C=m/d;t.fillStyle=r?a.palette.action.disabled:a.palette.action.focus,t.fillRect(v,b,C,o*Ef(n))}const{drawDragPreview:kf,drawTooltip:Qf,getContextMenuItemsForFeature:Nf,onMouseDown:Rf,onMouseLeave:Df,onMouseMove:Ff,onMouseUp:Tf}=af,jf={draw:function(e,t,n,r,o){const{selectedFeature:i}=r;for(let i=0;i<Ef(t);i++)xf(e,t,n+i,n,r,o);i&&el(t,i)&&Bf(r,e,i)},drawDragPreview:kf,drawHover:function(e,t){const{hoveredFeature:n}=e;n&&Bf(e,t,n.feature)},drawTooltip:Qf,getContextMenuItemsForFeature:Nf,getContextMenuItems:function(e,t){const{hoveredFeature:n,session:r}=e,o=[];if(!n)return o;const{featureTypeOntology:i}=r.apolloDataStore.ontologyManager;if(!i)throw new Error("featureTypeOntology is undefined");const a=af.getContextMenuItems(e,t);if(o.push({label:n.feature.type,subMenu:a}),sl(t)){const{bp:r,feature:i}=t;for(const t of Jc(i,r)){if(t._id===n.feature._id)continue;const r=af.getContextMenuItemsForFeature(e,t);o.push({label:t.type,subMenu:r})}}return o},getFeatureFromLayout:function(e,t,n){return wf(e)[n].find((e=>t>=e.min&&t<=e.max))},getRowCount:Ef,getRowForFeature:function(e,t){const n=wf(e);for(const[e,r]of n.entries())if(r.some((e=>e._id===t._id)))return e},onMouseDown:Rf,onMouseLeave:Df,onMouseMove:Ff,onMouseUp:Tf},Mf=f.observer((function({featureTypes:e,handleClose:t,onUpdate:n,session:r}){const[o,a]=u.useState(""),[c,l]=u.useState(e);return i.jsx(Al,{open:!0,maxWidth:!1,"data-testid":"filter-features-dialog",title:"Filter features by type",handleClose:t,children:i.jsxs(s.DialogContent,{children:[i.jsx(s.DialogContentText,{children:"Select the feature types you want to display in the apollo track"}),i.jsxs(s.Grid,{container:!0,spacing:2,children:[i.jsx(s.Grid,{size:8,children:i.jsx(Su,{session:r,ontologyName:"Sequence Ontology",style:{width:"100%"},value:o,filterTerms:wu,renderInput:e=>i.jsx(s.TextField,{...e,label:"Feature type",variant:"outlined",fullWidth:!0}),onChange:(e,t)=>{t&&(e=>{a(e)})(t)}})}),i.jsx(s.Grid,{size:4,children:i.jsx(s.Button,{variant:"contained",onClick:()=>{if(o){if(c.includes(o))return;n([...c,o]),l([...c,o])}},disabled:!o,style:{marginTop:9},size:"medium",children:"Add"})})]}),c.length>0&&i.jsxs("div",{children:[i.jsx("hr",{}),i.jsxs("div",{style:{width:300},children:[i.jsx(s.DialogContentText,{children:"Selected feature types:"}),i.jsx(s.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5},children:c.map((e=>i.jsx(s.Chip,{label:e,onDelete:()=>{(e=>{const t=c.filter((t=>t!==e));n(t),l(t)})(e)}},e)))})]})]})]})})})),Of=f.observer((function({model:e,handleClose:t}){const[n,r]=u.useState(`${e.zoomThresholdSetting}`);return i.jsx(A.Dialog,{open:!0,onClose:t,title:"Edit zoom threshold setting",children:i.jsxs(s.DialogContent,{children:[i.jsx(s.Typography,{children:"The zoom level in base pairs (bp) per pixel at which features are rendered in this Annotations track. Increasing the value will allow features to render when zooming out, but might impact performance."}),i.jsx(s.TextField,{label:"Threshold value (bpPerPx)",value:n,onChange:e=>{r(e.target.value)}}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",onClick:()=>{e.setZoomThresholdSetting({zoomThreshold:+n}),t()},children:"Submit"}),i.jsx(s.Button,{variant:"contained",color:"secondary",onClick:()=>{t()},children:"Cancel"})]})]})})})),Lf=Ec()((e=>({canvasContainer:{position:"relative",left:0},canvas:{position:"absolute",left:0},center:{display:"flex",justifyContent:"center"},ellipses:{textOverflow:"ellipsis",overflow:"hidden"},avatar:{position:"static",height:"100%",width:"100%",overflow:"visible",color:e.palette.warning.light,backgroundColor:e.palette.warning.contrastText},box:{position:"absolute",overflow:"visible"},badge:{display:"inline-block"},loading:{position:"absolute",right:e.spacing(3),zIndex:10,pointerEvents:"none",textAlign:"right"},locked:{position:"absolute",right:e.spacing(3),top:e.spacing(6),zIndex:1,pointerEvents:"none",textAlign:"right"}})));function Pf(e,t,n){const r=new Map;for(const t of e)(r.get(t.message)??r.set(t.message,[]).get(t.message)).push(t);const o=[];for(const[e,n]of r.entries()){if(0===n.length)continue;n.sort(((e,t)=>e.start-t.start));let r=[n[0]],i=n[0].start,a=n[0].start+t;const s=()=>{const t=r.map((e=>e.start)).sort(((e,t)=>e-t)),n=Math.floor(t.length/2),s=r[0].ids;o.push({_id:r[0]._id,message:e,start:t.length%2?t[n]:(t[n-1]+t[n])/2,count:r.length,members:[...r],range:{min:i,max:a},featureIds:s})};for(let e=1;e<n.length;e++){const o=n[e],c=o.start,l=c+t;c<=a?(r.push(o),c<i&&(i=c),l>a&&(a=l)):(s(),r=[o],i=c,a=l)}s()}return o.sort(((e,t)=>e.message.localeCompare(t.message)||e.start-t.start)),o}function qf(e,t,n){return"M"===e?t.palette.startCodon:"*"===e?n?t.palette.text.primary:t.palette.stopCodon:void 0}function Jf(e,t){const n=e.toUpperCase();return"A"===n||"C"===n||"G"===n||"T"===n?t.palette.bases[n].main.toString():"lightgray"}function Uf(e,t,n){const r=[];for(let o=e;o<e+t;o++){const e=n.get(o);e&&r.push(e)}return r}function Gf(e,t){for(const n of e)for(const[e,r]of n)if(o.doesIntersect2(t.min,t.max,e,r)||o.doesIntersect2(e,r,t.min,t.max))return!1;return!0}function Hf(e,t){return function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return r.BaseDisplay.named("BaseLinearApolloDisplay").props({type:c.types.literal("LinearApolloDisplay"),configuration:n.ConfigurationReference(t),graphical:!0,table:!1,showCheckResults:!0,zoomThreshold:200,heightPreConfig:c.types.maybe(c.types.refinement("displayHeight",c.types.number,(e=>e>=20))),filteredFeatureTypes:c.types.array(c.types.string),loadingState:!1}).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...v.getParentRenderProps(e),config:t.renderer})}})).volatile((()=>({scrollTop:0}))).views((e=>({get lgv(){return o.getContainingView(e)},get height(){return e.heightPreConfig?e.heightPreConfig:e.graphical&&e.table?400:e.graphical?100:200},get loading(){return e.loadingState},get zoomThresholdSetting(){return e.zoomThreshold??n.getConf(e,"zoomThreshold")}}))).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return o.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=e.zoomThreshold)return"Zoom in to see annotations"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:r}=c.getRoot(e),{assemblyName:o}=t,{assemblyManager:i}=e.session,a=i.get(o);if(!a)throw new Error(`No assembly found with name ${o}`);const{internetAccountConfigId:s}=n.getConf(a,["sequence","metadata"]);return r.find((e=>n.getConf(e,"internetAccountId")===s))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature},get hoveredFeature(){return e.session.apolloHoveredFeature}}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n},showGraphicalOnly(){e.graphical=!0,e.table=!1},showTableOnly(){e.graphical=!1,e.table=!0},showGraphicalAndTable(){e.graphical=!0,e.table=!0},toggleShowCheckResults(){e.showCheckResults=!e.showCheckResults},updateFilteredFeatureTypes(t){e.filteredFeatureTypes=c.cast(t)},setLoading(t){e.loadingState=t},setZoomThresholdSetting({zoomThreshold:t}){e.zoomThreshold=t}}))).views((e=>{const{filteredFeatureTypes:t,trackMenuItems:n}=e;return{trackMenuItems(){const{graphical:r,table:i,showCheckResults:a}=e;return[...n(),{type:"subMenu",label:"Appearance",subMenu:[{label:"Show graphical display",type:"radio",checked:r&&!i,onClick:()=>{e.showGraphicalOnly()}},{label:"Show table display",type:"radio",checked:i&&!r,onClick:()=>{e.showTableOnly()}},{label:"Show both graphical and table display",type:"radio",checked:i&&r,onClick:()=>{e.showGraphicalAndTable()}},{label:"Check Results",type:"checkbox",checked:a,onClick:()=>{e.toggleShowCheckResults()}},{label:"Change zoom threshold",onClick:()=>{o.getSession(e).queueDialog((t=>[Of,{model:e,handleClose:t}]))}}]},{label:"Filter features by type",onClick:()=>{const n=e.session;e.session.queueDialog((r=>[Mf,{session:n,handleClose:()=>{r()},featureTypes:c.getSnapshot(t),onUpdate:t=>{e.updateFilteredFeatureTypes(t)}}]))}}]}}})).actions((e=>({setSelectedFeature(t){e.session.apolloSetSelectedFeature(t)},setHoveredFeature(t){e.session.apolloSetHoveredFeature(t)},showFeatureDetailsWidget(t,n){const[r]=e.regions,{assemblyName:o,refName:i}=r,a=e.getAssemblyId(o);if(!a)return;const{session:s}=e,{changeManager:c}=s.apolloDataStore,[l,u]=n??["ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget"],d=s.addWidget(l,u,{feature:t,assembly:a,refName:i,changeManager:c});s.showWidget(d)},afterAttach(){c.addDisposer(e,l.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&(e.setLoading(!0),e.session.apolloDataStore.loadFeatures(e.regions).then((()=>{setTimeout((()=>{e.setLoading(!1)}),1e3)})))}),{name:"LinearApolloDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloDisplayLayouts").props({cleanupBoundary:2e5}).volatile((()=>({seenFeatures:l.observable.map()}))).views((e=>({getAnnotationFeatureById:t=>e.seenFeatures.get(t),getGlyph(e){const{topLevelFeature:t}=e;return t.looksLikeGene?If:t.children?.size?jf:af}}))).actions((e=>({addSeenFeature(t){e.seenFeatures.set(t._id,t)},deleteSeenFeature(t){e.seenFeatures.delete(t)}}))).views((e=>({get featureLayouts(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map((n=>{const r=t.get(n.assemblyName),i=new Map,a=new Map,{end:s,refName:l,start:u}=n;for(const[t,n]of e.seenFeatures.entries()){if(!c.isAlive(n)){e.deleteSeenFeature(t);continue}if(l!==r?.getCanonicalRefName(n.refSeq)||!o.doesIntersect2(u,s,n.min,n.max)||e.filteredFeatureTypes.length>0&&!e.filteredFeatureTypes.includes(n.type))continue;const{featureTypeOntology:d}=e.session.apolloDataStore.ontologyManager;if(!d)throw new Error("featureTypeOntology is undefined");const A=e.getGlyph(n).getRowCount(n,d,e.lgv.bpPerPx);let f=0,h=!1;for(;!h;){let e=Uf(f,A,a);if(e.length<A){for(let t=0;t<A-e.length;t++){const e=a.size;a.set(e,[]),i.set(e,[])}e=Uf(f,A,a)}if(Gf(e,n)){for(let e=f;e<f+A;e++){a.get(e)?.push([n.min,n.max]);const t=i.get(e);t?.push([e-f,n._id])}h=!0}else f+=1}}return i}))},getFeatureLayoutPosition(t){const{featureLayouts:n}=this,{featureTypeOntology:r}=e.session.apolloDataStore.ontologyManager;for(const[o,i]of n.entries())for(const[n,a]of i)for(const[i,s]of a){if(0!==i)continue;const a=e.getAnnotationFeatureById(s);if(a){if(t._id===a._id)return{layoutIndex:o,layoutRow:n,featureRow:i};if(a.hasDescendant(t._id)){if(!r)throw new Error("featureTypeOntology is undefined");const i=e.getGlyph(a).getRowForFeature(a,t,r);if(void 0!==i)return{layoutIndex:o,layoutRow:n,featureRow:i}}}}}}))).views((e=>({get highestRow(){return Math.max(0,...e.featureLayouts.map((e=>Math.max(...e.keys()))))}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((()=>{if(e.lgv.initialized&&!e.regionCannotBeRendered()){for(const[t,n]of e.seenFeatures.entries()){let r=!1;for(const t of e.regions)if(o.doesIntersect2(t.start-e.cleanupBoundary,t.end+e.cleanupBoundary,n.min,n.max)){r=!0;break}r||e.deleteSeenFeature(t)}for(const t of e.regions){const n=e.session.apolloDataStore.assemblies.get(t.assemblyName),r=n?.getByRefName(t.refName),i=r?.features;if(i)for(const[,n]of i)o.doesIntersect2(t.start,t.end,n.min,n.max)&&!e.seenFeatures.has(n._id)&&e.addSeenFeature(n)}}}),{name:"LinearApolloDisplaySetSeenFeatures",delay:1e3}))}})))}(0,t).named("LinearApolloDisplayRendering").props({apolloRowHeight:20,detailsMinHeight:200,detailsHeight:200,lastRowTooltipBufferHeight:40,isShown:!0,filteredTranscripts:c.types.array(c.types.string)}).volatile((()=>({canvas:null,overlayCanvas:null,collaboratorCanvas:null,theme:s.createTheme()}))).views((e=>({get featuresHeight(){return(e.highestRow+1)*e.apolloRowHeight+e.lastRowTooltipBufferHeight}}))).actions((e=>({toggleShown(){e.isShown=!e.isShown},setDetailsHeight(t){e.detailsHeight=e.isShown?Math.max(Math.min(t,e.height-100),Math.min(e.height,e.detailsMinHeight)):t},setCanvas(t){e.canvas=t},setOverlayCanvas(t){e.overlayCanvas=t},setCollaboratorCanvas(t){e.collaboratorCanvas=t},setTheme(t){e.theme=t}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.collaboratorCanvas?.getContext("2d");if(t){t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);for(const n of e.session.collaborators){const{locations:r}=n;if(0===r.length)continue;let o=0;for(const i of e.lgv.displayedRegions){for(const a of r){if(a.refSeq!==i.refName)continue;const{end:r,refSeq:s,start:c}=a,l=e.lgv.bpToPx({refName:s,coord:c,regionNumber:o});if(!l)continue;const u=l.offsetPx-e.lgv.offsetPx,d=(r-c)/e.lgv.bpPerPx;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(u,1,d,100),t.fillStyle="black",t.fillText(n.name,u+1,11,d-2)}o++}}}}),{name:"LinearApolloDisplayRenderCollaborators"})),c.addDisposer(e,l.autorun((()=>{const{canvas:t,featureLayouts:n,featuresHeight:r,lgv:i}=e;if(!i.initialized||e.regionCannotBeRendered())return;const{displayedRegions:a,dynamicBlocks:s}=i,c=t?.getContext("2d");if(c){c.clearRect(0,0,s.totalWidthPx,r);for(const[t,r]of n.entries()){const n=a[t];for(const[i,a]of r.entries())for(const[r,s]of a){const a=e.getAnnotationFeatureById(s);r>0||!a||o.doesIntersect2(n.start,n.end,a.min,a.max)&&e.getGlyph(a).draw(c,a,i,e,t)}}}}),{name:"LinearApolloDisplayRenderFeatures"}))}})))}(0,t);return i.named("LinearApolloDisplayMouseEvents").volatile((()=>({apolloDragging:null,cursor:void 0}))).views((e=>({getMousePosition(t){const n=cl(t,e.lgv),{bp:r,regionNumber:o,y:i}=n,a=Math.floor(i/e.apolloRowHeight),s=e.featureLayouts[o].get(a);if(!s)return n;const c=s.find((t=>{const n=e.getAnnotationFeatureById(t[1]);return n&&r>=n.min&&r<=n.max}));if(!c)return n;const[l,u]=c,d=e.getAnnotationFeatureById(u);if(!d)return n;const A=e.getGlyph(d),{featureTypeOntology:f}=e.session.apolloDataStore.ontologyManager;if(!f)throw new Error("featureTypeOntology is undefined");const h=A.getFeatureFromLayout(d,r,l,f);return h?{...n,feature:h}:n}}))).actions((e=>({continueDrag(t,n){if(!e.apolloDragging)throw new Error("continueDrag() called with no current drag in progress");n.stopPropagation(),e.apolloDragging={...e.apolloDragging,current:t}},setDragging(t){e.apolloDragging=t??null}}))).actions((e=>({setCursor(t){e.cursor!==t&&(e.cursor=t)},updateFilteredTranscripts(e){}}))).actions((()=>({onClick(){}})))}(0,t).views((e=>({contextMenuItems(t){const{hoveredFeature:n}=e;if(!n)return[];const r=e.getMousePosition(t),{topLevelFeature:o}=n.feature,i=e.getGlyph(o);return sl(r)?i.getContextMenuItems(e,r):[]}}))).actions((e=>({startDrag(t,n,r,o=!1){e.apolloDragging={start:t,current:t,feature:n,edge:r,shrinkParent:o}},endDrag(){if(!e.apolloDragging)throw new Error("endDrag() called with no current drag in progress");const{current:t,edge:n,feature:r,start:o,shrinkParent:i}=e.apolloDragging;if(Math.abs(t.x-o.x)<=4)return e.setDragging(),void e.setCursor();const{displayedRegions:a}=e.lgv,s=e.getAssemblyId(a[o.regionNumber].assemblyName),c=al(r,t.bp,n,i),l="max"===n?new qr({typeName:"LocationEndChange",changedIds:c.map((e=>e.featureId)),changes:c.map((e=>({featureId:e.featureId,oldEnd:e.oldLocation,newEnd:e.newLocation}))),assembly:s}):new Ur({typeName:"LocationStartChange",changedIds:c.map((e=>e.featureId)),changes:c.map((e=>({featureId:e.featureId,oldStart:e.oldLocation,newStart:e.newLocation}))),assembly:s});e.changeManager.submit(l),e.setDragging(),e.setCursor()}}))).actions((e=>({onMouseDown(t){const n=e.getMousePosition(t);sl(n)&&e.getGlyph(n.feature).onMouseDown(e,n,t)},onMouseMove(t){const n=e.getMousePosition(t);if(e.apolloDragging)return e.setCursor("col-resize"),void e.continueDrag(n,t);sl(n)?e.getGlyph(n.feature).onMouseMove(e,n,t):(e.setHoveredFeature(),e.setCursor())},onMouseLeave(t){e.setDragging(),e.setHoveredFeature();const n=e.getMousePosition(t);sl(n)&&e.getGlyph(n.feature).onMouseLeave(e,n,t)},onMouseUp(t){const n=e.getMousePosition(t);sl(n)?e.getGlyph(n.feature).onMouseUp(e,n,t):e.setSelectedFeature(),e.apolloDragging&&e.endDrag()}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.overlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);const{apolloDragging:n,hoveredFeature:r}=e;if(!r)return;const o=e.getGlyph(r.feature);o.drawHover(e,t),o.drawTooltip(e,t),n&&e.getGlyph(n.feature.topLevelFeature).drawDragPreview(e,t)}),{name:"LinearApolloDisplayRenderMouseoverAndDrag"}))}})))}(0,t).props({tabularEditor:c.types.optional(tf,{})}).named("LinearApolloDisplay")}const Yf=n.ConfigurationSchema("LinearApolloReferenceSequenceDisplay",{},{explicitIdentifier:"displayId",explicitlyTyped:!0});function zf(e,t,n){const r=t<=1?[2,1,0,7,6,5]:[2,1,0,5,4,3];n&&r.reverse(),r.unshift(0);const o=r.at(e);if(void 0===o)throw new Error("could not find row");return o}function Kf(e,t,n,r){return r.offsetPx-n+(r.reversed?r.end-e.max:e.min-r.start)/t}function Wf(e,t,n,r,o,i,a=!1){e.fillStyle=a?i.palette.action.disabled:i.palette.action.focus,e.fillRect(t,n,r,o),e.strokeStyle=a?i.palette.text.secondary:i.palette.text.primary,e.strokeStyle=i.palette.text.primary,e.strokeRect(t,n,r,o)}function Vf(e,t,n,r,o,i,a,s=!1){const c=function(e,t,n){if(!(t>1||void 0===e))return n?1===e?4:3:1===e?3:4}(t.strand,n,i.reversed);c&&Wf(e,Kf(t,n,r,i),c*o,t.length/n,o,a,s)}function $f(e,t,n,r,i,a,s,c=!1){const l=t.parent;if(!l)return;const u=l.cdsLocations.find((e=>{const n=e.at(1===t.strand?0:-1)?.min,r=e.at(1===t.strand?-1:0)?.max;return t.min===n&&t.max===r}));if(u)for(const l of u){const u=zf(o.getFrame(l.min,l.max,t.strand??1,l.phase),n,a.reversed);Wf(e,Kf(l,n,r,a),u*i,(l.max-l.min)/n,i,s,c)}}function Xf(e,t,n,r,o,i){e.strokeStyle=i,e.lineWidth=1,e.strokeRect(t+.5,n+.5,r-1,o-1)}function Zf(e,t,n,r,o){const i=Math.min(r,10);e.fillStyle="#000",e.font=`${i}px`;const a=e.measureText(o).width,s=Math.round(t+(r-a)/2);e.fillText(o,s,n+10)}function eh(e,t,n,r,o,i,a,s){const c=t<=1?[3,2,1,0,0,-1,-2,-3]:[3,2,1,-1,-2,-3];s&&c.reverse();for(const[t,s]of c.entries()){const c=n.palette.framesCDS.at(s)?.main;if(!c)continue;const l=t*a;e.fillStyle=r?n.palette.background.default:c,e.fillRect(o,l,i,a),r&&Xf(e,o,l,i,a,n.palette.grey[200])}}function th(e,t,n,r,i,a,s){if(1/i<1)return;const c=Math.round(r+n/i),l=Math.round(r+(n+1)/i)-c,u=[-1,1];for(const n of u){const r=(1===n?3:4)*a,u=1===n?t:o.revcom(t);e.fillStyle=Jf(u,s),e.fillRect(c,r,l,a),1/i>=12&&(Xf(e,c,r,l,a,s.palette.text.disabled),Zf(e,c,r,l,u))}}function nh(e,t,n,r,i,a,s,c,l,u,d){const A=(s<=1?[0,2,1,0,7,6,5]:[0,2,1,0,5,4,3]).map((e=>e*l)),f=[-1,1];for(const h of f){const f=o.getFrame(c,c+3,h,0),g=A.at(f);if(void 0===g)continue;const p=Math.round(n+r/s),m=Math.round(n+(r+3)/s)-p,y=1===h?t:o.revcom(t),_=o.defaultCodonTable[y],v=qf(_,i,a);v&&(d&&"*"==_||u&&"*"!=_)&&(e.fillStyle=v,e.fillRect(p,g,m,l)),1/s>=4&&(Xf(e,p,g,m,l,i.palette.text.disabled),Zf(e,p,g,m,_))}}function rh(e,t){return function(e,t){const i=function(e,t){return r.BaseDisplay.named("BaseLinearApolloReferenceSequenceDisplay").props({type:c.types.literal("LinearApolloReferenceSequenceDisplay"),configuration:n.ConfigurationReference(t),showStartCodons:!1,showStopCodons:!0,highContrast:!1,heightPreConfig:c.types.maybe(c.types.refinement("displayHeight",c.types.number,(e=>e>=20))),sequenceRowHeight:15}).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...v.getParentRenderProps(e),config:t.renderer})}})).views((e=>({get lgv(){return o.getContainingView(e)}}))).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return o.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=3)return"Zoom in to see sequence"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:r}=c.getRoot(e),{assemblyName:o}=t,{assemblyManager:i}=e.session,a=i.get(o);if(!a)throw new Error(`No assembly found with name ${o}`);const{internetAccountConfigId:s}=n.getConf(a,["sequence","metadata"]);return r.find((e=>n.getConf(e,"internetAccountId")===s))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature},get hoveredFeature(){return e.session.apolloHoveredFeature},get height(){const{sequenceRowHeight:t}=e;return e.lgv.bpPerPx<=1?8*t:6*t}}))).volatile((()=>({scrollTop:0}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n},toggleShowStartCodons(){e.showStartCodons=!e.showStartCodons},toggleShowStopCodons(){e.showStopCodons=!e.showStopCodons},toggleHighContrast(){e.highContrast=!e.highContrast}}))).views((e=>{const{trackMenuItems:t}=e;return{trackMenuItems(){const{showStartCodons:n,showStopCodons:r,highContrast:o}=e;return[...t(),{type:"subMenu",label:"Appearance",subMenu:[{label:"Show start codons",type:"checkbox",checked:n,onClick:()=>{e.toggleShowStartCodons()}},{label:"Show stop codons",type:"checkbox",checked:r,onClick:()=>{e.toggleShowStopCodons()}},{label:"Use high contrast colors",type:"checkbox",checked:o,onClick:()=>{e.toggleHighContrast()}}]}]}}})).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&e.lgv.bpPerPx<=3&&e.session.apolloDataStore.loadRefSeq(e.regions)}),{name:"LinearApolloReferenceSequenceDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloReferenceSequenceDisplayRendering").volatile((()=>({seqTrackCanvas:null,seqTrackOverlayCanvas:null,theme:s.createTheme()}))).actions((e=>({setSeqTrackCanvas(t){e.seqTrackCanvas=t},setSeqTrackOverlayCanvas(t){e.seqTrackOverlayCanvas=t},setTheme(t){e.theme=t},afterAttach(){c.addDisposer(e,l.autorun((()=>{const{lgv:t,seqTrackCanvas:n,theme:r,highContrast:i,showStartCodons:a,showStopCodons:s,sequenceRowHeight:c,session:l}=e;if(!t.initialized||e.regionCannotBeRendered()||!n)return;if(3/t.bpPerPx<1)return;const{bpPerPx:u,offsetPx:d,dynamicBlocks:A}=t;!function(e,t,n,r,i,a,s,c,l,u){const d=e.getContext("2d");if(!d)return;d.clearRect(0,0,e.width,e.height);const{apolloDataStore:A}=u;for(const e of i.contentBlocks){const i=e.offsetPx-r;eh(d,n,t,a,i,e.widthPx,l,e.reversed);const u=A.assemblies.get(e.assemblyName),f=u?.getByRefName(e.refName),h=Math.floor(e.start),g=Math.ceil(e.end);let p=f?.getSequence(h,g);if(!p)return;p=p.toUpperCase(),e.reversed&&(p=o.revcom(p));const m=i-(e.reversed?g-e.end:e.start-h)/n;for(let r=0;r<p.length;r++){const o=e.reversed?g-r:h+r,i=p.slice(r,r+3);th(d,p[r],r,m,n,l,t),3===i.length&&nh(d,i,m,r,t,a,n,o,l,s,c)}}}(n,r,u,d,A,i,a,s,c,l)}),{name:"LinearApolloReferenceSequenceDisplayRenderSequence"})),c.addDisposer(e,l.autorun((()=>{const{seqTrackOverlayCanvas:t}=e;if(!e.lgv.initialized||e.regionCannotBeRendered()||!t)return;const n=t.getContext("2d");if(!n)return;n.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.height);const{hoveredFeature:r,selectedFeature:o,lgv:i,sequenceRowHeight:a,session:s,theme:c}=e;if(!r&&!o)return;const{bpPerPx:l,dynamicBlocks:u,offsetPx:d}=i;!function(e,t,n,r,o,i,a,s,c,l){const{featureTypeOntology:u}=a.apolloDataStore.ontologyManager;if(!u)throw new Error("featureTypeOntology is undefined");for(const a of l.contentBlocks){t.save(),t.beginPath(),t.rect(a.offsetPx-c,0,a.widthPx,e.height),t.clip();for(const e of[r,n?.feature].filter((e=>void 0!==e)))u.isTypeOf(e.type,"CDS")?$f(t,e,s,c,o,a,i,e._id===r?._id):Vf(t,e,s,c,o,a,i,e._id===r?._id);t.restore()}}(t,n,r,o,a,c,s,l,d,u)}),{name:"LinearApolloReferenceSequenceDisplayRenderSequenceHighlight"}))}})))}(0,t).named("LinearApolloReferenceSequenceDisplay")}const oh=f.observer((function(e){const t=s.useTheme(),{model:n}=e,{height:r,regionCannotBeRendered:a,setSeqTrackCanvas:c,setSeqTrackOverlayCanvas:l,setTheme:d}=n,{classes:A}=Lf();u.useEffect((()=>{d(t)}),[t,d]);const f=o.getContainingView(n),h=a();return h?i.jsx(s.Alert,{severity:"warning",classes:{message:A.ellipses},slotProps:{root:{className:A.center}},children:i.jsx(s.Tooltip,{title:h,children:i.jsx("div",{children:h})})}):i.jsx(i.Fragment,{children:3/f.bpPerPx>=1?i.jsxs("div",{className:A.canvasContainer,style:{width:f.dynamicBlocks.totalWidthPx,height:r},children:[i.jsx("canvas",{ref:async e=>{await Promise.resolve(),c(e)},width:f.dynamicBlocks.totalWidthPx,height:r,className:A.canvas,"data-testid":"seqTrackCanvas"}),i.jsx("canvas",{ref:async e=>{await Promise.resolve(),l(e)},width:f.dynamicBlocks.totalWidthPx,height:r,className:A.canvas,"data-testid":"seqTrackOverlayCanvas"})]}):null})})),ih=n.ConfigurationSchema("LinearApolloSixFrameDisplay",{},{explicitIdentifier:"displayId",explicitlyTyped:!0}),ah=f.observer((function({sourceFeature:e,filteredTranscripts:t,handleClose:n,onUpdate:r}){const o=[];if(e.children)for(const[,t]of e.children){const e=t.attributes.get("gff_id")?.toString();e&&o.push(e)}const[a,c]=u.useState(t);return i.jsx(Al,{open:!0,maxWidth:!1,"data-testid":"filter-transcripts-dialog",title:"Filter transcripts by ID",handleClose:n,children:i.jsxs(s.DialogContent,{children:[i.jsx(s.DialogContentText,{children:"Select the alternate transcripts you want to display in the apollo track"}),i.jsx(s.Grid,{container:!0,spacing:2,children:i.jsx(s.Grid,{size:8,children:i.jsx(s.FormGroup,{children:o.map((e=>i.jsx(s.FormControlLabel,{control:i.jsx(s.Checkbox,{checked:!a.includes(e),onChange:()=>{(e=>{const t=a.includes(e)?a.filter((t=>t!==e)):[...a,e];r(t),c(t)})(e)},slotProps:{input:{"aria-label":"controlled"}}}),label:e})))})})})]})})}));let sh=null,ch=null,lh=null,uh=null;const dh=globalThis.document.createElement("canvas");if(dh?.getContext)for(const e of["forward","backward"])for(const t of["light","dark"]){const n=document.createElement("canvas"),r=10;n.width=n.height=r;const o=n.getContext("2d");if(o){const i="light"===t?"rgba(0,0,0,0)":"rgba(0,0,0,0.75)",a="light"===t?"rgba(255,255,255,0.25)":"rgba(0,0,0,0.50)",s="forward"===e?o.createLinearGradient(0,r,r,0):o.createLinearGradient(0,0,r,r);s.addColorStop(0,i),s.addColorStop(.25,i),s.addColorStop(.25,a),s.addColorStop(.5,a),s.addColorStop(.5,i),s.addColorStop(.75,i),s.addColorStop(.75,a),s.addColorStop(1,a),o.fillStyle=s,o.fillRect(0,0,10,10),"forward"===e?"light"===t?sh=o.createPattern(n,"repeat"):lh=o.createPattern(n,"repeat"):"light"===t?ch=o.createPattern(n,"repeat"):uh=o.createPattern(n,"repeat")}}function Ah(e,t){for(const n of e)if(fu(n,t))return!0;return!1}function fh(e,t,n){const{filteredTranscripts:r,session:i}=n,{apolloDataStore:a}=i,{featureTypeOntology:s}=a.ontologyManager;if(!s)throw new Error("featureTypeOntology is undefined");const c=s.isTypeOf(t.type,"transcript"),l=t.attributes.get("gff_id")?.toString();if(l&&r.includes(l))return;const{bp:u,refName:d,regionNumber:A,x:f}=e,{lgv:h}=n;if(c){const e=t;if(!e.children)return;const n=[],r=[];for(const t of e.children.values()){const e=s.isTypeOf(t.type,"exon"),o=s.isTypeOf(t.type,"CDS");e?n.push(t):o&&r.push(t)}const i=n.find((e=>{const[t,n]=o.intersection2(u,u+1,e.min,e.max);return void 0!==t&&void 0!==n}));if(i){const e=$c(i,d,A,h);if(e){const t=Xc(i,f,e);if(t)return t}}for(const t of e.cdsLocations)for(const e of t){const t=$c(e,d,A,h);if(t){const e=r.find((e=>{const[t,n]=o.intersection2(u,u+1,e.min,e.max);return void 0!==t&&void 0!==n}));if(e){const n=Xc(e,f,t);if(n)return n}}}}}const hh={draw:function(e,t,n,r,i){const{apolloRowHeight:a,lgv:c,session:l,theme:u,highestRow:d,filteredTranscripts:A,selectedFeature:f,showFeatureLabels:h}=r,{bpPerPx:g,displayedRegions:p,offsetPx:m}=c,y=p[i],{refName:_,reversed:v}=y,b=a,C=b,I=b,w=b,E=h?2:1,x=u.palette.text.primary,{attributes:S,children:B,min:k,strand:Q}=t;if(!B)return;const{apolloDataStore:N}=l,{featureTypeOntology:R}=N.ontologyManager;if(!R)throw new Error("featureTypeOntology is undefined");const D=[],F=(c.bpToPx({refName:_,coord:k,regionNumber:i})?.offsetPx??0)-m,T=t.length/g,j=v?F-T:F,M=(1==Q?3:4)*E*b;e.fillStyle=u.palette.text.primary,e.fillRect(j,M,T,w),e.fillStyle=Zc(t,f)?s.alpha("rgb(0,0,0)",.7):s.alpha(u.palette.background.paper,.7),e.fillRect(j+1,M+1,T-2,w-2);const O=Zc(t,f),L={x:j,y:M,h:w,text:S.get("gff_id")?.toString(),color:x,isSelected:O};O?D.unshift(L):D.push(L);const P="dark"===u.palette.mode?lh:sh,q="dark"===u.palette.mode?uh:ch,J=v?-1:1;let U=null,G=null;Q&&([U,G]=Q*J==1?[P,q]:[q,P]),U&&G&&(e.fillStyle=U,e.fillRect(j+1,M+1,T-2,(w-2)/2),e.fillStyle=G,e.fillRect(j+1,M+(w-2)/2,T-2,(w-2)/2));const H=new Set;for(const[,t]of B){if(!R.isTypeOf(t.type,"transcript")&&!R.isTypeOf(t.type,"pseudogenic_transcript"))continue;const{children:n,cdsLocations:r}=t;if(!n)continue;const a=t.attributes.get("gff_id")?.toString();if(a&&A.includes(a))continue;for(const[,t]of n){if(!R.isTypeOf(t.type,"exon"))continue;const n=(c.bpToPx({refName:_,coord:t.min,regionNumber:i})?.offsetPx??0)-m,r=t.length/g,o=v?n-r:n,a=M+(w-C)/2,l=Zc(t,f);if(e.fillStyle=u.palette.text.primary,e.fillRect(o,a,r,C),r>2){e.clearRect(o+1,a+1,r-2,C-2),e.fillStyle=l?"rgb(0,0,0)":s.alpha("#f5f500",.6),e.fillRect(o+1,a+1,r-2,C-2),U&&G&&(e.fillStyle=U,e.fillRect(o+1,a+1,r-2,(C-2)/2),e.fillStyle=G,e.fillRect(o+1,a+1+(C-2)/2,r-2,(C-2)/2));const n={x:o,y:a,h:C,text:t.attributes.get("gff_id")?.toString(),color:x,isSelected:l};l?D.unshift(n):D.push(n)}}const l=Zc(t,f?.parent);let p=0,y=0;for(const n of r){let r=0,a=0,s=1;for(const A of n.sort(((e,t)=>e.max-t.max)))if(f&&l&&R.isTypeOf(f.type,"CDS")||!Ah(H,A)){const n=(A.max-A.min)/g,C=(c.bpToPx({refName:_,coord:A.min,regionNumber:i})?.offsetPx??0)-m;p=v?C-n:C,e.fillStyle=u.palette.text.primary;const w=o.getFrame(A.min,A.max,t.strand??1,A.phase),x=(h?[0,4,2,0,14,12,10]:[0,2,1,0,7,6,5]).at(w);if(void 0===x)continue;if(y=x*b,e.fillRect(p,y,n,I),s>1){const t=[(p-a)/2+a,Math.max(w<0?b*E*d+1:1,Math.min(r,y)-b/2)];e.strokeStyle="rgb(0, 128, 128)",e.beginPath(),e.moveTo(a,r),e.lineTo(...t),e.stroke(),e.moveTo(...t),e.lineTo(p,y+b/2),e.stroke()}if(a=p+n,r=y+b/2,s+=1,n>2){e.clearRect(p+1,y+1,n-2,I-2);const t=u.palette.framesCDS.at(w)?.main,r=t??"rgb(171,71,188)";e.fillStyle=r,e.fillStyle=f&&l&&R.isTypeOf(f.type,"CDS")?"rgb(0,0,0)":r,e.fillRect(p+1,y+1,n-2,I-2),U&&G&&(e.fillStyle=U,e.fillRect(p+1,y+1,n-2,(I-2)/2),e.fillStyle=G,e.fillRect(p+1,y+(I-2)/2,n-2,(I-2)/2))}H.add(A)}}const S={x:p,y:y,h:I,text:t.attributes.get("gff_id")?.toString(),color:x,isSelected:l};l?D.unshift(S):D.push(S)}h&&function(e,t,n="10px sans-serif"){for(let r=t.length-1;r>=0;--r){const i=t[r];e.fillStyle=i.color;const a=i.x+1,s=i.y+i.h,c=o.measureText(i.text,10);i.isSelected&&(e.font="bold ".concat(n)),i.text&&(e.clearRect(a-5,s,c+10,i.h),e.fillText(i.text,a,s+11,c),e.font=n)}}(e,D)},drawDragPreview:function(e,t){const{apolloDragging:n,apolloRowHeight:r,lgv:o,theme:i}=e,{bpPerPx:a,displayedRegions:c,offsetPx:l}=o;if(!n)return;const{current:u,edge:d,feature:A,start:f}=n,h=Math.floor(f.y/r),g=c[f.regionNumber],p=(g.reversed?g.end-A[d]:A[d]-g.start)/a-l,m=Math.min(u.x,p),y=h*r,_=Math.abs(u.x-p),v=1*r;t.strokeStyle=i.palette.info.main,t.setLineDash([6]),t.strokeRect(m,y,_,v),t.fillStyle=s.alpha(i.palette.info.main,.2),t.fillRect(m,y,_,v)},drawHover:function(e,t){const{hoveredFeature:n,apolloRowHeight:r,filteredTranscripts:i,lgv:a,highestRow:s,session:c,showFeatureLabels:l}=e;if(!n)return;const{feature:u}=n,{apolloDataStore:d}=c,{featureTypeOntology:A}=d.ontologyManager;if(!A)throw new Error("featureTypeOntology is undefined");if(!A.isTypeOf(u.type,"transcript"))return;const f=u.attributes.get("gff_id")?.toString();if(f&&i.includes(f))return;const h=e.getFeatureLayoutPosition(u);if(!h)return;const{bpPerPx:g,displayedRegions:p,offsetPx:m}=a,{layoutIndex:y}=h,_=p[y],{refName:v,reversed:b}=_,C=r,I=C,w=l?2:1,{cdsLocations:E,strand:x}=u;for(const e of E){let n=0,r=0,i=1;for(const c of e.sort(((e,t)=>e.max-t.max))){const e=(c.max-c.min)/g,u=(a.bpToPx({refName:v,coord:c.min,regionNumber:y})?.offsetPx??0)-m,d=b?u-e:u,A=o.getFrame(c.min,c.max,x??1,c.phase),f=(l?[0,4,2,0,14,12,10]:[0,2,1,0,7,6,5]).at(A);if(void 0===f)continue;const h=f*C;if(i>1){const e=[(d-r)/2+r,Math.max(A<0?C*w*s+1:1,Math.min(n,h)-C/2)];t.strokeStyle="rgb(0, 0, 0)",t.lineWidth=2,t.beginPath(),t.moveTo(r,n),t.lineTo(...e),t.stroke(),t.moveTo(...e),t.lineTo(d,h+C/2),t.stroke()}r=d+e,n=h+C/2,i+=1,e>2&&(t.fillStyle="rgba(255,0,0,0.6)",t.fillRect(d,h,e,I))}}},drawTooltip:function(e,t){const{hoveredFeature:n,apolloRowHeight:r,filteredTranscripts:i,lgv:a,session:c,showFeatureLabels:l,theme:u}=e;if(!n)return;const{feature:d,bp:A}=n,{featureTypeOntology:f}=c.apolloDataStore.ontologyManager;if(!f)throw new Error("featureTypeOntology is undefined");if(!f.isTypeOf(d.type,"transcript"))return;const{attributes:h,strand:g,type:p}=d,m=e.getFeatureLayoutPosition(d);if(!m)return;const y=h.get("gff_id")?.toString();if(y&&i.includes(y))return;const{layoutIndex:_}=m,{bpPerPx:v,displayedRegions:b,offsetPx:C}=a,I=b[_],{refName:w,reversed:E}=I,x=r;let S,B="Loc: ";for(const e of d.cdsLocations)for(const t of e)if(A>=t.min&&A<=t.max){S=t;break}if(!S)return;const{max:k,min:Q,phase:N}=S;B+=`${Q+1}–${k}`;let R=(a.bpToPx({refName:w,coord:E?k:Q,regionNumber:_})?.offsetPx??0)-C;const D=o.getFrame(Q,k,g??1,N),F=(l?[0,4,2,0,14,12,10]:[0,2,1,0,7,6,5]).at(D);if(void 0===F)return;const T=F*x,j=(k-Q)/v,M=`Type: ${S.type}`,O=h.get("gff_name")?.find((e=>""!==e)),L=[t.measureText(M).width,t.measureText(B).width];O&&L.push(t.measureText(`Parent Type: ${p}`).width,t.measureText(`Parent Name: ${O}`).width);const P=Math.max(...L);R=R+j+5,t.fillStyle=s.alpha(u.palette.text.primary,.7),t.fillRect(R,T,P+4,4===L.length?55:35),t.beginPath(),t.moveTo(R,T),t.lineTo(R-5,T+5),t.lineTo(R,T+10),t.fill(),t.fillStyle=u.palette.background.default;let q=T+12;t.fillText(M,R+2,q),O&&(q+=12,t.fillText(`Parent Type: ${p}`,R+2,q),q+=12,t.fillText(`Parent Name: ${O}`,R+2,q)),q+=12,t.fillText(B,R+2,q)},getContextMenuItems:function(e,t){const{apolloInternetAccount:n,hoveredFeature:r,changeManager:i,filteredTranscripts:a,regions:s,selectedFeature:l,session:u}=e,[d]=s,A=e.getAssemblyId(d.assemblyName),f=[],h="admin"===(n?n.role:"admin");if(!r)return f;const{featureTypeOntology:g}=u.apolloDataStore.ontologyManager;if(!g)throw new Error("featureTypeOntology is undefined");if(sl(t)){const{bp:n,feature:r}=t;let s=Jc(r,n);Kc(r,u)&&(s=Jc(r,n,!0));for(const n of s){const r=n.attributes.get("gff_id")?.toString();if(r&&a.includes(r))continue;const s=nl(e,n);if(zc(n,u)){const r=Wc(n,e,t,u),a=o.getContainingView(e);if(r.upstream){const t=r.upstream;s.push({label:"Go to upstream exon",icon:Vc(n.strand,!0,a.displayedRegions.at(0)?.reversed),onClick:()=>{a.navTo(rl(t,.1,a.totalBp)),Hc(e,t)}})}if(r.downstream){const t=r.downstream;s.push({label:"Go to downstream exon",icon:Vc(n.strand,!1,a.displayedRegions.at(0)?.reversed),onClick:()=>{a.navTo(rl(t,.1,a.totalBp)),Hc(e,t)}})}s.push({label:"Merge exons",disabled:!h,onClick:()=>{u.queueDialog((t=>[Vu,{session:u,handleClose:()=>{t()},changeManager:i,sourceFeature:n,sourceAssemblyId:A,selectedFeature:l,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}},{label:"Split exon",disabled:!h,onClick:()=>{u.queueDialog((t=>[ld,{session:u,handleClose:()=>{t()},changeManager:i,sourceFeature:n,sourceAssemblyId:A,selectedFeature:l,setSelectedFeature:t=>{e.setSelectedFeature(t)}}]))}})}g.isTypeOf(n.type,"gene")&&s.push({label:"Filter alternate transcripts",onClick:()=>{u.queueDialog((t=>[ah,{handleClose:()=>{t()},sourceFeature:n,filteredTranscripts:c.getSnapshot(a),onUpdate:t=>{e.updateFilteredTranscripts(t)}}]))}}),f.push({label:n.type,subMenu:s})}}return f},getContextMenuItemsForFeature:nl,onMouseDown:function(e,t,n){const{feature:r}=t,o=fh(t,r,e);o&&(n.stopPropagation(),e.startDrag(t,o.feature,o.edge,!0))},onMouseLeave:function(){},onMouseMove:function(e,t){if(sl(t)){const{feature:n,bp:r}=t;if(e.setHoveredFeature({feature:n,bp:r}),fh(t,n,e))return void e.setCursor("col-resize")}e.setCursor()},onMouseUp:function(e,t){if(!e.apolloDragging&&sl(t)){const{feature:n}=t,{session:r}=e,{apolloDataStore:o}=r,{featureTypeOntology:i}=o.ontologyManager;if(e.setSelectedFeature(n),!i)throw new Error("featureTypeOntology is undefined");let a=!1;for(const[,e]of n.children??[])if(i.isTypeOf(e.type,"CDS")||i.isTypeOf(e.type,"exon")){a=!0;break}(i.isTypeOf(n.type,"transcript")||i.isTypeOf(n.type,"pseudogenic_transcript"))&&a?e.showFeatureDetailsWidget(n,["ApolloTranscriptDetails","apolloTranscriptDetails"]):e.showFeatureDetailsWidget(n)}}};function gh(e,t,n,r,i,a,s,c,l,u,d,A){const f=(u?[0,4,2,0,14,12,10]:[0,2,1,0,7,6,5]).map((e=>e*l)),h=[-1,1];for(const u of h){const h=o.getFrame(c,c+3,u,0),g=f.at(h);if(void 0===g)continue;const p=Math.round(n+r/s),m=0===Math.round(3/s)?1:Math.round(3/s),y=1===u?t:o.revcom(t),_=o.defaultCodonTable[y],v=qf(_,i,a);v&&(A&&"*"==_||d&&"*"!=_)&&(e.fillStyle=v,e.fillRect(p,g,m,l))}}function ph(e,t){return function(e,t){return function(e,t){const i=function(e,t){return function(e,t){const i=function(e,t){return r.BaseDisplay.named("BaseLinearApolloSixFrameDisplay").props({type:c.types.literal("LinearApolloSixFrameDisplay"),configuration:n.ConfigurationReference(t),graphical:!0,table:!1,showFeatureLabels:!0,showStartCodons:!1,showStopCodons:!0,showCheckResults:!0,zoomThreshold:200,heightPreConfig:c.types.maybe(c.types.refinement("displayHeight",c.types.number,(e=>e>=20))),filteredFeatureTypes:c.types.array(c.types.string)}).views((e=>{const{configuration:t,renderProps:n}=e;return{renderProps:()=>({...n(),...v.getParentRenderProps(e),config:t.renderer})}})).volatile((()=>({scrollTop:0}))).views((e=>({get lgv(){return o.getContainingView(e)},get height(){return e.heightPreConfig?e.heightPreConfig:e.graphical&&e.table?500:e.graphical?e.showFeatureLabels?400:200:300},get zoomThresholdSetting(){return e.zoomThreshold??n.getConf(e,"zoomThreshold")}}))).views((e=>({get rendererTypeName(){return e.configuration.renderer.type},get session(){return o.getSession(e)},get regions(){return e.lgv.dynamicBlocks.contentBlocks.map((({assemblyName:e,end:t,refName:n,start:r})=>({assemblyName:e,refName:n,start:Math.round(r),end:Math.round(t)})))},regionCannotBeRendered(){if(e.lgv&&e.lgv.bpPerPx>=e.zoomThreshold)return"Zoom in to see annotations"}}))).views((e=>({get apolloInternetAccount(){const[t]=e.regions,{internetAccounts:r}=c.getRoot(e),{assemblyName:o}=t,{assemblyManager:i}=e.session,a=i.get(o);if(!a)throw new Error(`No assembly found with name ${o}`);const{internetAccountConfigId:s}=n.getConf(a,["sequence","metadata"]);return r.find((e=>n.getConf(e,"internetAccountId")===s))},get changeManager(){return e.session.apolloDataStore.changeManager},getAssemblyId(t){const{assemblyManager:n}=e.session,r=n.get(t);if(!r)throw new Error(`Could not find assembly named ${t}`);return r.name},get selectedFeature(){return e.session.apolloSelectedFeature},get hoveredFeature(){return e.session.apolloHoveredFeature}}))).actions((e=>({setScrollTop(t){e.scrollTop=t},setHeight:t=>(e.heightPreConfig=Math.max(t,20),e.height),resizeHeight(t){const n=e.height;return this.setHeight(e.height+t)-n},showGraphicalOnly(){e.graphical=!0,e.table=!1},showTableOnly(){e.graphical=!1,e.table=!0},showGraphicalAndTable(){e.graphical=!0,e.table=!0},toggleShowFeatureLabels(){e.showFeatureLabels=!e.showFeatureLabels},toggleShowStartCodons(){e.showStartCodons=!e.showStartCodons},toggleShowStopCodons(){e.showStopCodons=!e.showStopCodons},toggleShowCheckResults(){e.showCheckResults=!e.showCheckResults},updateFilteredFeatureTypes(t){e.filteredFeatureTypes=c.cast(t)},setZoomThresholdSetting({zoomThreshold:t}){e.zoomThreshold=t}}))).views((e=>{const{filteredFeatureTypes:t,trackMenuItems:n}=e;return{trackMenuItems(){const{graphical:r,table:i,showFeatureLabels:a,showStartCodons:s,showStopCodons:l,showCheckResults:u}=e;return[...n(),{type:"subMenu",label:"Appearance",subMenu:[{label:"Show graphical display",type:"radio",checked:r&&!i,onClick:()=>{e.showGraphicalOnly()}},{label:"Show table display",type:"radio",checked:i&&!r,onClick:()=>{e.showTableOnly()}},{label:"Show both graphical and table display",type:"radio",checked:i&&r,onClick:()=>{e.showGraphicalAndTable()}},{label:"Feature Labels",type:"checkbox",checked:a,onClick:()=>{e.toggleShowFeatureLabels()}},{label:"Show start codons",type:"checkbox",checked:s,onClick:()=>{e.toggleShowStartCodons()}},{label:"Show stop codons",type:"checkbox",checked:l,onClick:()=>{e.toggleShowStopCodons()}},{label:"Check Results",type:"checkbox",checked:u,onClick:()=>{e.toggleShowCheckResults()}},{label:"Change zoom threshold",onClick:()=>{o.getSession(e).queueDialog((t=>[Of,{model:e,handleClose:t}]))}}]},{label:"Filter features by type",onClick:()=>{const n=e.session;e.session.queueDialog((r=>[Mf,{session:n,handleClose:()=>{r()},featureTypes:c.getSnapshot(t),onUpdate:t=>{e.updateFilteredFeatureTypes(t)}}]))}}]}}})).actions((e=>({setSelectedFeature(t){e.session.apolloSetSelectedFeature(t)},setHoveredFeature(t){e.session.apolloSetHoveredFeature(t)},showFeatureDetailsWidget(t,n){const[r]=e.regions,{assemblyName:o,refName:i}=r,a=e.getAssemblyId(o);if(!a)return;const{session:s}=e,{changeManager:c}=s.apolloDataStore,[l,u]=n??["ApolloFeatureDetailsWidget","apolloFeatureDetailsWidget"],d=s.addWidget(l,u,{feature:t,assembly:a,refName:i,changeManager:c});s.showWidget(d)},afterAttach(){c.addDisposer(e,l.autorun((()=>{e.lgv.initialized&&!e.regionCannotBeRendered()&&(e.session.apolloDataStore.loadFeatures(e.regions),e.lgv.bpPerPx<=e.zoomThreshold&&e.session.apolloDataStore.loadRefSeq(e.regions))}),{name:"LinearApolloSixFrameDisplayLoadFeatures",delay:1e3}))}})))}(0,t);return i.named("LinearApolloSixFrameDisplayLayouts").props({featuresMinMaxLimit:5e5}).volatile((()=>({seenFeatures:l.observable.map()}))).views((e=>({get featuresMinMax(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map((n=>{const r=t.get(n.assemblyName);let i,a;const{end:s,refName:c,start:l}=n;for(const[,t]of e.seenFeatures)c!==r?.getCanonicalRefName(t.refSeq)||!o.doesIntersect2(l,s,t.min,t.max)||t.length>e.featuresMinMaxLimit||(void 0===i&&({min:i}=t),void 0===a&&({max:a}=t),t.minWithChildren<i&&({min:i}=t),t.maxWithChildren>a&&({max:a}=t));if(void 0!==i&&void 0!==a)return[i,a]}))},getGlyph:e=>hh,featureLabelSpacer:t=>e.showFeatureLabels?2*t-1:t}))).actions((e=>({addSeenFeature(t){e.seenFeatures.set(t._id,t)},deleteSeenFeature(t){e.seenFeatures.delete(t)}}))).views((e=>({get geneTrackRowNums(){return[4,5].map((t=>e.featureLabelSpacer(t)))}}))).views((e=>({get featureLayouts(){const{assemblyManager:t}=e.session;return e.lgv.displayedRegions.map(((n,r)=>{const i=t.get(n.assemblyName),a=new Map;if(!e.featuresMinMax[r])return a;const{end:s,refName:l,start:u}=n;for(const[t,n]of e.seenFeatures.entries()){if(!c.isAlive(n)){e.deleteSeenFeature(t);continue}if(l!==i?.getCanonicalRefName(n.refSeq)||!o.doesIntersect2(u,s,n.min,n.max))continue;const{featureTypeOntology:r}=e.session.apolloDataStore.ontologyManager;if(!r)throw new Error("featureTypeOntology is undefined");if(n.looksLikeGene){const t=1==n.strand?e.geneTrackRowNums[0]:e.geneTrackRowNums[1];a.get(t)||a.set(t,[]);const i=a.get(t);i?.push({rowNum:t,feature:n});const{children:s}=n;if(!s)continue;for(const[,t]of s)if(r.isTypeOf(t.type,"transcript")){const{cdsLocations:n,strand:i,children:s}=t;if(s)for(const[,t]of s){if(!r.isTypeOf(t.type,"exon"))continue;const n=1==t.strand?e.geneTrackRowNums[0]:e.geneTrackRowNums[1],o=a.get(n);o?.push({rowNum:n,feature:t})}for(const r of n)for(const n of r){const r=o.getFrame(n.min,n.max,i??1,n.phase),s=(e.showFeatureLabels?[0,5,3,1,15,13,11]:[0,2,1,0,8,7,6]).at(r);if(!s)continue;a.get(s)||a.set(s,[]);const c=a.get(s);c?.push({rowNum:s,feature:t})}}}}return a}))},getFeatureLayoutPosition(e){const{featureLayouts:t}=this;for(const[n,r]of t.entries())for(const[,t]of r)for(const{feature:r}of t)if(e._id===r._id)return{layoutIndex:n,layoutRow:0,featureRow:0}}}))).views((e=>({get highestRow(){return 5}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((()=>{if(e.lgv.initialized&&!e.regionCannotBeRendered())for(const t of e.regions){const n=e.session.apolloDataStore.assemblies.get(t.assemblyName),r=n?.getByRefName(t.refName),i=r?.features;if(i)for(const[,n]of i)o.doesIntersect2(t.start,t.end,n.min,n.max)&&!e.seenFeatures.has(n._id)&&e.addSeenFeature(n)}}),{name:"LinearApolloSixFrameDisplaySetSeenFeatures",delay:1e3}))}})))}(0,t).named("LinearApolloSixFrameDisplayRendering").props({apolloRowHeight:20,detailsMinHeight:200,detailsHeight:200,lastRowTooltipBufferHeight:120,isShown:!0,filteredTranscripts:c.types.array(c.types.string)}).volatile((()=>({canvas:null,overlayCanvas:null,collaboratorCanvas:null,theme:s.createTheme()}))).views((e=>({get featuresHeight(){return(e.highestRow+1)*e.apolloRowHeight*(e.showFeatureLabels?2:1)+e.lastRowTooltipBufferHeight}}))).actions((e=>({toggleShown(){e.isShown=!e.isShown},setDetailsHeight(t){e.detailsHeight=e.isShown?Math.max(Math.min(t,e.height-100),Math.min(e.height,e.detailsMinHeight)):t},setCanvas(t){e.canvas=t},setOverlayCanvas(t){e.overlayCanvas=t},setCollaboratorCanvas(t){e.collaboratorCanvas=t},setTheme(t){e.theme=t}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.collaboratorCanvas?.getContext("2d");if(t){t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);for(const n of e.session.collaborators){const{locations:r}=n;if(0===r.length)continue;let o=0;for(const i of e.lgv.displayedRegions){for(const a of r){if(a.refSeq!==i.refName)continue;const{end:r,refSeq:s,start:c}=a,l=e.lgv.bpToPx({refName:s,coord:c,regionNumber:o});if(!l)continue;const u=l.offsetPx-e.lgv.offsetPx,d=(r-c)/e.lgv.bpPerPx;t.fillStyle="rgba(0,255,0,.2)",t.fillRect(u,1,d,100),t.fillStyle="black",t.fillText(n.name,u+1,11,d-2)}o++}}}}),{name:"LinearApolloSixFrameDisplayRenderCollaborators"})),c.addDisposer(e,l.autorun((()=>{const{apolloRowHeight:t,canvas:n,featureLayouts:r,featuresHeight:i,lgv:a,session:s,theme:c,showFeatureLabels:l,showStartCodons:u,showStopCodons:d}=e;if(!a.initialized||e.regionCannotBeRendered())return;const{bpPerPx:A,offsetPx:f,displayedRegions:h,dynamicBlocks:g}=a,p=n?.getContext("2d");if(p){p.clearRect(0,0,g.totalWidthPx,i);for(const[t,n]of r.entries()){const r=h[t];for(const[i,a]of n.entries())for(const{feature:n}of a){if(!n.looksLikeGene)continue;if(!o.doesIntersect2(r.start,r.end,n.min,n.max))continue;const{topLevelFeature:a}=n,s=e.getGlyph(a);void 0!==s&&s.draw(p,a,i,e,t)}}if(u||d){const{apolloDataStore:e}=s;for(const n of g.contentBlocks){const r=e.assemblies.get(n.assemblyName),o=r?.getByRefName(n.refName),i=Math.floor(n.start),a=Math.ceil(n.end);let s=o?.getSequence(i,a);if(!s)break;s=s.toUpperCase();const h=Math.round(n.offsetPx-f-(n.start-i)/A);for(let e=0;e<s.length;e++){const n=i+e;gh(p,s.slice(e,e+3),h,e,c,!0,A,n,t,l,u,d)}}}}}),{name:"LinearApolloSixFrameDisplayRenderFeatures"}))}})))}(0,t);return i.named("LinearApolloSixFrameDisplayMouseEvents").volatile((()=>({apolloDragging:null,cursor:void 0}))).views((e=>({getMousePosition(t){const n=cl(t,e.lgv),{bp:r,regionNumber:i,y:a}=n,s=Math.floor(a/e.apolloRowHeight)+1,c=e.featureLayouts[i].get(s);if(!c)return n;const{featureTypeOntology:l}=e.session.apolloDataStore.ontologyManager;if(!l)throw new Error("featureTypeOntology is undefined");let u;if(e.geneTrackRowNums.includes(s)?(u=c.find((e=>"exon"==e.feature.type&&r>=e.feature.min&&r<=e.feature.max)),u||(u=c.find((e=>r>=e.feature.min&&r<=e.feature.max)))):u=c.find((t=>{const{feature:n}=t,i=n.attributes.get("gff_id")?.toString();if(!l.isTypeOf(n.type,"transcript"))return!1;for(const t of n.cdsLocations)for(const a of t){const t=o.getFrame(a.min,a.max,n.strand??1,a.phase),c=(e.showFeatureLabels?[0,5,3,1,15,13,11]:[0,2,1,0,8,7,6]).at(t);if(s===c&&r>=a.min&&r<=a.max)return void 0===i||!e.filteredTranscripts.includes(i)}return!1})),!u)return n;const{feature:d}=u;return{...n,feature:d}}}))).actions((e=>({continueDrag(t,n){if(!e.apolloDragging)throw new Error("continueDrag() called with no current drag in progress");n.stopPropagation(),e.apolloDragging={...e.apolloDragging,current:t}},setDragging(t){e.apolloDragging=t??null}}))).actions((e=>({setCursor(t){e.cursor!==t&&(e.cursor=t)},updateFilteredTranscripts(t){e.filteredTranscripts=c.cast(t)}}))).actions((()=>({onClick(){}})))}(0,t).views((e=>({contextMenuItems(t){const{hoveredFeature:n}=e;if(!n)return[];const r=e.getMousePosition(t),{topLevelFeature:o}=n.feature,i=e.getGlyph(o);return sl(r)?i.getContextMenuItems(e,r):[]}}))).actions((e=>({startDrag(t,n,r,o=!1){e.apolloDragging={start:t,current:t,feature:n,edge:r,shrinkParent:o}},endDrag(){if(!e.apolloDragging)throw new Error("endDrag() called with no current drag in progress");const{current:t,edge:n,feature:r,start:o,shrinkParent:i}=e.apolloDragging;if(Math.abs(t.x-o.x)<=4)return e.setDragging(),void e.setCursor();const{displayedRegions:a}=e.lgv,s=e.getAssemblyId(a[o.regionNumber].assemblyName),c=al(r,t.bp,n,i),l="max"===n?new qr({typeName:"LocationEndChange",changedIds:c.map((e=>e.featureId)),changes:c.map((e=>({featureId:e.featureId,oldEnd:e.oldLocation,newEnd:e.newLocation}))),assembly:s}):new Ur({typeName:"LocationStartChange",changedIds:c.map((e=>e.featureId)),changes:c.map((e=>({featureId:e.featureId,oldStart:e.oldLocation,newStart:e.newLocation}))),assembly:s});e.changeManager.submit(l),e.setDragging(),e.setCursor()}}))).actions((e=>({onMouseDown(t){const n=e.getMousePosition(t);sl(n)&&e.getGlyph(n.feature).onMouseDown(e,n,t)},onMouseMove(t){const n=e.getMousePosition(t);if(e.apolloDragging)return e.setCursor("col-resize"),void e.continueDrag(n,t);sl(n)?e.getGlyph(n.feature).onMouseMove(e,n,t):(e.setHoveredFeature(),e.setCursor())},onMouseLeave(t){e.setDragging(),e.setHoveredFeature();const n=e.getMousePosition(t);sl(n)&&e.getGlyph(n.feature).onMouseLeave(e,n,t)},onMouseUp(t){const n=e.getMousePosition(t);sl(n)?e.getGlyph(n.feature).onMouseUp(e,n,t):e.setSelectedFeature(),e.apolloDragging&&e.endDrag()}}))).actions((e=>({afterAttach(){c.addDisposer(e,l.autorun((()=>{if(!e.lgv.initialized||e.regionCannotBeRendered())return;const t=e.overlayCanvas?.getContext("2d");if(!t)return;t.clearRect(0,0,e.lgv.dynamicBlocks.totalWidthPx,e.featuresHeight);const{apolloDragging:n,hoveredFeature:r}=e;if(!r)return;const o=e.getGlyph(r.feature);o.drawHover(e,t),o.drawTooltip(e,t),n&&e.getGlyph(n.feature.topLevelFeature).drawDragPreview(e,t)}),{name:"LinearApolloSixFrameDisplayRenderMouseoverAndDrag"}))}})))}(0,t).props({tabularEditor:c.types.optional(tf,{})}).named("LinearApolloSixFrameDisplay")}const mh=n.ConfigurationSchema("ApolloPlugin",{ontologies:c.types.array(Iu),featureTypeOntologyName:{description:"Name of the feature type ontology",type:"string",defaultValue:"Sequence Ontology"},hasRole:{description:"Flag used internally by jbrowse-plugin-apollo",type:"boolean",defaultValue:!1},geneBackgroundColor:{description:"Color for feature background",type:"string",defaultValue:"jexl:geneBackgroundColor(featureType)",contextVariable:["featureType"]}}),yh=(e,t)=>{const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"gene")||n.isTypeOf(e.type,"transcript")||n.isTypeOf(e.type,"pseudogene")||n.isTypeOf(e.type,"pseudogenic_transcript")},_h=(e,t)=>{const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"gene")||n.isTypeOf(e.type,"pseudogene")},vh=(e,t)=>{const{featureTypeOntology:n}=t.apolloDataStore.ontologyManager;if(!n)throw new Error("featureTypeOntology is undefined");return n.isTypeOf(e.type,"transcript")||n.isTypeOf(e.type,"pseudogenic_transcript")};function bh(e){const{attributes:t}=e,n=["gene_name","gene_id","gene_stable_id"];for(const e of n){const n=t?.[e];if(n?.[0])return n[0]}return""}const Ch=e=>{const t=function(e){const{attributes:t}=e,n=["name","gff_name","transcript_name","gene_name"];for(const e of n){const n=t?.[e];if(n?.[0])return n[0]}return""}(e),n=function(e){const{attributes:t}=e,n=["id","gff_id","transcript_id","gene_id","gene_stable_id","stable_id"];for(const e of n){const n=t?.[e];if(n?.[0])return n[0]}return""}(e);return t?`${e.type} - ${t}`:n?`${e.type} - ${n}`:e.type};function Ih({annotationFeature:e,assembly:t,handleClose:n,refSeqId:r,session:o,region:a}){const l=o,{featureTypeOntology:d}=l.apolloDataStore.ontologyManager,A=u.useMemo((()=>Object.keys(e.children??{})),[e]),[f,h]=u.useState(!0),[g,p]=u.useState(A),[m,y]=u.useState(""),[_,v]=u.useState([]),[b,C]=u.useState(!1),[I,w]=u.useState(),E=l.apolloDataStore.assemblies.get(t.name),x=E?.refSeqs.get(r),S=x?.getFeatures(a.start,a.end),B=()=>{const e=[];for(const t of S??[])if(!(t.min>a.end||t.max<a.start)&&d?.isTypeOf(t.type,"gene")){const n=c.getSnapshot(t);e.push(n)}return e};u.useEffect((()=>{y("");const e=B();v(e),w(e[0])}),[g,f,a]);const k=async e=>{if(I)for(const n of Object.keys(e)){const r=e[n];if(r.strand=I.strand,r.children)for(const e of Object.keys(r.children))r.children[e].strand=I.strand;const o=new Nr({parentFeatureId:I._id,changedIds:[I._id],typeName:"AddFeatureChange",assembly:t.name,addedFeature:r});await R(o,n)}},Q=async n=>{const o=(new ut).toHexString(),i=Math.min(...Object.values(n).map((e=>e.min))),a=Math.max(...Object.values(n).map((e=>e.max))),s=new Nr({changedIds:[o],typeName:"AddFeatureChange",assembly:t.name,addedFeature:{_id:o,refSeq:r,min:i,max:a,strand:e.strand,type:"gene",children:n,attributes:{name:[bh(e)],gene_name:[bh(e)]}}});await R(s,o)},N=async(e,n)=>{if(!I)return;const r=[];e!==I.min&&r.push(new Ur({typeName:"LocationStartChange",changedIds:[I._id],featureId:I._id,assembly:t.name,oldStart:I.min,newStart:e})),n!==I.max&&r.push(new qr({typeName:"LocationEndChange",changedIds:[I._id],featureId:I._id,assembly:t.name,oldEnd:I.max,newEnd:n}));for(const e of r)await R(e)},R=async(e,t)=>{await l.apolloDataStore.changeManager.submit(e).then((()=>{l.apolloSetSelectedFeature(t)}))};return i.jsxs(Al,{open:!0,title:"Create Apollo Annotation",handleClose:n,fullWidth:!0,maxWidth:"sm",children:[i.jsx(s.DialogTitle,{fontSize:15,children:"Select the feature to be copied to apollo track"}),i.jsxs(s.DialogContent,{children:[i.jsxs(s.Box,{sx:{ml:3},children:[yh(e,l)&&i.jsx(s.FormControlLabel,{control:i.jsx(s.Checkbox,{size:"small",checked:f,onChange:e=>{const t=e.target.checked;h(t),p(t?A:[])}}),label:`${Ch(e)} (${e.min+1}..${e.max})`}),e.children&&i.jsx(s.Box,{sx:{display:"flex",flexDirection:"column",ml:3},children:Object.values(e.children).filter((e=>vh(e,l))).map((e=>i.jsx(s.FormControlLabel,{control:i.jsx(s.Checkbox,{size:"small",checked:g.includes(e._id),onChange:t=>{((e,t)=>{p((n=>e.target.checked?[...n,t._id]:n.filter((e=>e!==t._id))))})(t,e)}}),label:`${Ch(e)} (${e.min+1}..${e.max})`},e._id)))})]}),_.length>0&&(!f&&g.length>0||f&&vh(e,l))&&i.jsxs("div",{style:{border:"1px solid #ccc",marginTop:20,padding:10,borderRadius:5},children:[i.jsxs(s.Box,{sx:{ml:3},children:[i.jsx(s.Typography,{variant:"caption",fontSize:12,children:"Select the destination feature to copy the selected features"}),i.jsx(s.Box,{sx:{mt:1},children:i.jsx(s.Select,{labelId:"label",style:{width:"100%"},value:I?._id??"",onChange:e=>{const t=_.find((t=>t._id===e.target.value));w(t)},disabled:b,children:_.map((e=>i.jsx(s.MenuItem,{value:e._id,children:`${Ch(e)} (${e.min+1}..${e.max})`},e._id)))})})]}),i.jsx(s.Box,{sx:{ml:3},children:i.jsx(s.FormGroup,{children:i.jsx(s.FormControlLabel,{control:i.jsx(s.Checkbox,{checked:b,onChange:e=>{C(e.target.checked)}}),label:"Create new gene"})})})]})]}),i.jsxs(s.DialogActions,{children:[i.jsx(s.Button,{variant:"contained",type:"submit",disabled:0===g.length||!f&&g.length>0&&!I,onClick:async()=>{if(f){if(_h(e,l)&&(await(async()=>{let n;if(e.children&&g.length!==Object.values(e.children).length){const r={};for(const t of g)r[t]=e.children[t];n=new Nr({changedIds:[e._id],typeName:"AddFeatureChange",assembly:t.name,addedFeature:{...e,children:r}})}else n=new Nr({changedIds:[e._id],typeName:"AddFeatureChange",assembly:t.name,addedFeature:e});await R(n,e._id)})(),o.notify("Successfully copied selected gene and transcript(s)","success")),vh(e,l))if(I&&!b){const t={};if(t[e._id]=e,I.max<e.max||I.min>e.min){const n=Math.min(I.min,e.min),r=Math.max(I.max,e.max);await N(n,r),await k(t)}else await k(t);o.notify("Successfully copied selected transcripts to destination gene","success")}else{const t={};t[e._id]=e,await Q(t),o.notify("Successfully created a new gene with selected transcripts","success")}}else{if(!e.children)return;if(I&&!b){const t={};for(const n of g)t[n]=e.children[n];const n=Math.min(...Object.values(t).map((e=>e.min))),r=Math.max(...Object.values(t).map((e=>e.max)));if(I.min>n||I.max<r){const e=Math.min(I.min,n),o=Math.max(I.max,r);await N(e,o),await k(t)}else await k(t);o.notify("Successfully copied transcript to destination gene","success")}else{const t={};for(const n of g)t[n]=e.children[n];await Q(t),o.notify("Successfully created a new gene with selected transcript","success")}}n()},children:"Create"}),i.jsx(s.Button,{variant:"outlined",type:"submit",onClick:n,children:"Cancel"})]}),m?i.jsx(s.DialogContent,{children:i.jsx(s.DialogContentText,{color:"error",children:m})}):null]})}function wh(e){if("LinearPileupDisplay"!==e.name)return e;const{stateModel:t}=e,n=t.views((e=>({getFirstRegion:()=>o.getContainingView(e).dynamicBlocks.contentBlocks[0],getAssembly(){const t=e.getFirstRegion(),n=o.getSession(e),{assemblyManager:r}=n,{assemblyName:i}=t,a=r.get(i);if(!a)throw new Error(`Could not find assembly named ${i}`);return a},getRefSeqId(t){const n=e.getFirstRegion(),{refName:r}=n,{refNameAliases:o}=t;if(!o)throw new Error(`Could not find aliases for ${t.name}`);const i=[...Object.entries(o)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t}))),a=i.find((e=>e.name===r))?._id;if(!a)throw new Error(`Could not find refSeqId named ${r}`);return a},getAnnotationFeature(){const t=e.contextMenuFeature,n=e.getAssembly(),r=e.getRefSeqId(n),o=t.get("start"),i=t.get("end"),a=t.get("strand"),s=t.get("name"),c=function(e){const t=/(\d+)([MIDNSHPX=])/g,n=[];let r;for(;null!==(r=t.exec(e));)n.push([r[2],Number.parseInt(r[1],10)]);return n}(t.get("CIGAR"));let l,u=o;const d=[];for(const[e,t]of c)switch(e){case"M":case"=":case"X":void 0===l&&(l=u),u+=t;break;case"N":void 0!==l&&(d.push({start:l,end:u}),l=void 0),u+=t;break;case"D":u+=t;break;case"I":case"S":case"H":case"P":break;default:throw new Error(`Unknown CIGAR operation: ${e}`)}void 0!==l&&d.push({start:l,end:u});const A={_id:ut().toHexString(),refSeq:r,min:o,max:i,type:"mRNA",strand:a,attributes:{name:[s]}};if(0===d.length)return A;A.children={};for(const e of d){const t={_id:ut().toHexString(),refSeq:r,min:e.start,max:e.end,type:"exon",strand:a};A.children[t._id]=t}return A}}))).views((e=>{const t=e.contextMenuItems;return{contextMenuItems(){const n=o.getSession(e),r=e.getAssembly(),i=e.getFirstRegion();return e.contextMenuFeature?[...t(),{label:"Create Apollo annotation",icon:Uo,onClick:()=>{n.queueDialog((t=>[Ih,{session:n,handleClose:()=>{t()},annotationFeature:e.getAnnotationFeature(r),assembly:r,refSeqId:e.getRefSeqId(r),region:i}]))}}]:t()}}}));return e.stateModel=n,e}function Eh(e,t){const n=e.get("subfeatures");return[{start:e.get("start")+1,end:e.get("end"),seq_id:t,source:e.get("source")??null,type:e.get("type")??null,score:e.get("score")??null,strand:e.get("strand")?1===e.get("strand")?"+":"-":null,phase:null!==e.get("phase")||void 0!==e.get("phase")?e.get("phase"):null,attributes:Sh(e),derived_features:[],child_features:n?n.map((e=>Eh(e,t))):[]}]}function xh(e,t){return It(Eh(e,t))}function Sh(e){const t={},n=new Set(["start","end","type","strand","refName","subfeatures","derived_features","phase","source","score"]);for(const[r,o]of Object.entries(e.toJSON()))n.has(r)||(t[r]=Array.isArray(o)?o.map(String):[String(o)]);return t}function Bh(e){if("LinearBasicDisplay"!==e.name)return e;const{stateModel:t}=e,n=t.views((e=>({getFirstRegion:()=>o.getContainingView(e).dynamicBlocks.contentBlocks[0],getAssembly(){const t=e.getFirstRegion(),n=o.getSession(e),{assemblyManager:r}=n,{assemblyName:i}=t,a=r.get(i);if(!a)throw new Error(`Could not find assembly named ${i}`);return a},getRefSeqId(t){const n=e.getFirstRegion(),{refName:r}=n,{refNameAliases:o}=t;if(!o)throw new Error(`Could not find aliases for ${t.name}`);const i=[...Object.entries(o)].filter((([e,t])=>e!==t)).map((([e,t])=>({_id:e,name:t}))),a=i.find((e=>e.name===r))?._id;if(!a)throw new Error(`Could not find refSeqId named ${r}`);return a},getAnnotationFeature:(t,n)=>xh(n,e.getRefSeqId(t))}))).views((e=>{const t=e.contextMenuItems;return{contextMenuItems(){const n=o.getSession(e),r=e.getAssembly(),i=e.getFirstRegion(),a=e.contextMenuFeature;return a?[...t(),{label:"Create Apollo annotation",icon:Uo,onClick:()=>{n.queueDialog((t=>[Ih,{session:n,handleClose:()=>{t()},annotationFeature:e.getAnnotationFeature(r,a),assembly:r,refSeqId:e.getRefSeqId(r),region:i}]))}}]:t()}}}));return e.stateModel=n,e}var kh=a.createSvgIcon(i.jsx("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess"),Qh=a.createSvgIcon(i.jsx("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z"}),"Lock"),Nh=a.createSvgIcon(i.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error");const Rh=f.observer((function({display:e}){const{classes:t}=Lf(),{apolloDragging:n,apolloRowHeight:r,lgv:a,session:c,showCheckResults:l}=e,{assemblyManager:u}=c;return l?a.dynamicBlocks.contentBlocks.map((l=>{const d=a.bpPerPx*r,A=u.get(l.assemblyName);return A?Pf([...c.apolloDataStore.checkResults.values()].filter((e=>A.isValidRefName(e.refSeq)&&A.getCanonicalRefName(e.refSeq)===l.refName&&o.doesIntersect2(l.start,l.end,e.start,e.end))),d).map((o=>{const a=Math.round(function(e,t,n){const{lgv:r}=e,{bpPerPx:o,offsetPx:i}=r;return n.offsetPx-i+(n.reversed?n.end-t.max:t.min-n.start)/o}(e,o.range,l)),[c]=o.featureIds;if(!c)return null;let u=0;const d=e.getFeatureLayoutPosition(c);return d&&(u=d.layoutRow+d.featureRow),i.jsx(s.Tooltip,{title:o.message,children:i.jsx(s.Box,{className:t.box,style:{top:u*r,left:a,height:r,width:r,pointerEvents:n?"none":"auto"},children:i.jsx(s.Badge,{className:t.badge,badgeContent:o.count,color:"primary",overlap:"circular",anchorOrigin:{vertical:"bottom",horizontal:"right"},invisible:o.count<=1,children:i.jsx(s.Avatar,{className:t.avatar,children:i.jsx(Nh,{"data-testid":`ErrorIcon-${o.start}`})})})})},o._id)})):null})):null})),Dh=f.observer((function(e){const t=s.useTheme(),{model:n}=e,{loading:r,contextMenuItems:a,cursor:c,featuresHeight:l,isShown:d,onMouseDown:f,onMouseLeave:h,onMouseMove:g,onMouseUp:p,regionCannotBeRendered:m,session:y,setCanvas:_,setCollaboratorCanvas:v,setOverlayCanvas:b,setTheme:C}=n,{classes:I}=Lf(),w=o.getContainingView(n);u.useEffect((()=>{C(t)}),[t,C]);const[E,x]=u.useState(),[S,B]=u.useState([]),k=m();return d?i.jsx(i.Fragment,{children:i.jsxs("div",{className:I.canvasContainer,style:{width:w.dynamicBlocks.totalWidthPx,height:l},onContextMenu:e=>{e.preventDefault(),S.length>0?B([]):(x([e.clientX,e.clientY]),B(a(e)))},children:[y.isLocked?i.jsx("div",{className:I.locked,"data-testid":"lock-icon",children:i.jsx(Qh,{})}):null,r?i.jsx("div",{className:I.loading,children:i.jsx(s.CircularProgress,{size:"18px"})}):null,k?i.jsx(s.Alert,{severity:"warning",classes:{message:I.ellipses},slotProps:{root:{className:I.center}},children:i.jsx(s.Tooltip,{title:k,children:i.jsx("div",{children:k})})}):i.jsxs(i.Fragment,{children:[i.jsx("canvas",{ref:async e=>{await Promise.resolve(),v(e)},width:w.dynamicBlocks.totalWidthPx,height:l,className:I.canvas,"data-testid":"collaboratorCanvas"}),i.jsx("canvas",{ref:async e=>{await Promise.resolve(),_(e)},width:w.dynamicBlocks.totalWidthPx,height:l,className:I.canvas,"data-testid":"canvas"}),i.jsx("canvas",{ref:async e=>{await Promise.resolve(),b(e)},width:w.dynamicBlocks.totalWidthPx,height:l,onMouseMove:g,onMouseLeave:h,onMouseDown:f,onMouseUp:p,className:I.canvas,style:{cursor:c??"default"},"data-testid":"overlayCanvas"}),i.jsx(Rh,{display:n}),i.jsx(A.Menu,{open:S.length>0,onMenuItemClick:(e,t)=>{t(),B([])},onClose:()=>{B([])},slotProps:{transition:{onExit:()=>{B([])}}},anchorReference:"anchorPosition",anchorPosition:E?{top:E[1],left:E[0]}:void 0,menuItems:S})]})]})}):null})),Fh=f.observer((function({model:e,hrStyle:t={margin:0,top:0,color:"black"},idx:n=0}){const{apolloRowHeight:r,highestRow:o,showFeatureLabels:a}=e,s=a?2:1;return i.jsx("div",{style:{position:"absolute",left:0,top:r*s*(o+1)/2+n*s*r,width:"100%"},children:i.jsx("hr",{style:t})})})),Th=f.observer((function(e,t){const n=s.useTheme(),{model:r}=e,{apolloRowHeight:a,contextMenuItems:c,cursor:l,featuresHeight:d,geneTrackRowNums:f,isShown:h,onMouseDown:g,onMouseLeave:p,onMouseMove:m,onMouseUp:y,regionCannotBeRendered:_,session:v,setCanvas:b,setCollaboratorCanvas:C,setOverlayCanvas:I,setTheme:w,showCheckResults:E,showFeatureLabels:x}=r,{classes:S}=Lf(),B=o.getContainingView(r);u.useEffect((()=>{w(n)}),[n,w]);const[k,Q]=u.useState(),[N,R]=u.useState([]),D=_();if(!h)return null;const{assemblyManager:F}=v;return i.jsx(i.Fragment,{children:i.jsxs("div",{className:S.canvasContainer,style:{width:B.dynamicBlocks.totalWidthPx,height:d},onContextMenu:e=>{e.preventDefault(),N.length>0?R([]):(Q([e.clientX,e.clientY]),R(c(e)))},children:[v.isLocked?i.jsx("div",{className:S.locked,"data-testid":"lock-icon",children:i.jsx(Qh,{})}):null,D?i.jsx(s.Alert,{severity:"warning",classes:{message:S.ellipses},slotProps:{root:{className:S.center}},children:i.jsx(s.Tooltip,{title:D,children:i.jsx("div",{children:D})})}):i.jsxs(i.Fragment,{children:[i.jsx(Fh,{model:r,idx:0}),i.jsx(Fh,{model:r,hrStyle:{margin:0,top:0,color:"grey",opacity:.4},idx:1}),i.jsx(Fh,{model:r,idx:2}),i.jsx("canvas",{ref:async e=>{await Promise.resolve(),C(e)},width:B.dynamicBlocks.totalWidthPx,height:d,className:S.canvas,"data-testid":"collaboratorCanvas"}),i.jsx("canvas",{ref:async e=>{await Promise.resolve(),b(e)},width:B.dynamicBlocks.totalWidthPx,height:d,className:S.canvas,"data-testid":"canvas"}),i.jsx("canvas",{ref:async e=>{await Promise.resolve(),I(e)},width:B.dynamicBlocks.totalWidthPx,height:d,onMouseMove:m,onMouseLeave:p,onMouseDown:g,onMouseUp:y,className:S.canvas,style:{cursor:l??"default"},"data-testid":"overlayCanvas"}),B.displayedRegions.flatMap(((e,n)=>{const r=B.bpPerPx*a,c=F.get(e.assemblyName);return E?Pf([...v.apolloDataStore.checkResults.values()].filter((t=>c?.isValidRefName(t.refSeq)&&c.getCanonicalRefName(t.refSeq)===e.refName&&o.doesIntersect2(e.start,e.end,t.start,t.end))),r).map((r=>{const c=(B.bpToPx({refName:e.refName,coord:r.start,regionNumber:n})?.offsetPx??0)-B.offsetPx,[l]=r.featureIds;if(!l||!l.parent?.looksLikeGene)return null;let u;for(const e of l.cdsLocations)for(const t of e){const e=o.getFrame(t.min,t.max,l.strand??1,t.phase),n=(x?[0,5,3,1,15,13,11]:[0,2,1,0,8,7,6]).at(e);if(n&&r.start>=t.min&&r.start<=t.max){u=n-1;break}}return void 0===u&&(u=(1==l.strand?f[0]:f[1])-1),i.jsx(s.Tooltip,{title:r.message,children:i.jsx(s.Box,{className:S.box,style:{top:u*a,left:c,height:a,width:a,pointerEvents:t?"none":"auto"},children:i.jsx(s.Badge,{className:S.badge,badgeContent:r.count,color:"primary",overlap:"circular",anchorOrigin:{vertical:"bottom",horizontal:"right"},invisible:r.count<=1,children:i.jsx(s.Avatar,{className:S.avatar,children:i.jsx(Nh,{"data-testid":`ErrorIcon-${r.start}`})})})})},r._id)})):null})),i.jsx(A.Menu,{open:N.length>0,onMenuItemClick:(e,t)=>{t(),R([])},onClose:()=>{R([])},slotProps:{transition:{onExit:()=>{R([])}}},anchorReference:"anchorPosition",anchorPosition:k?{top:k[1],left:k[0]}:void 0,style:{zIndex:n.zIndex.tooltip},menuItems:N})]})]})})})),jh=Ec()((e=>({shading:{background:s.alpha(e.palette.primary.main,.2),overflowX:"hidden"},details:{background:e.palette.background.paper},accordionControl:{height:12,width:"100%","&:hover":{background:e.palette.action.hover},display:"flex",alignItems:"center",justifyContent:"center"},accordionRoot:{background:e.palette.divider},resizeHandle:{width:"100%",height:4,position:"absolute",cursor:"row-resize",zIndex:100},expandIcon:{},title:{userSelect:"none"},alertContainer:{display:"flex",alignItems:"center",justifyContent:"center"}})));function Mh(e,t){const{apolloRowHeight:n,selectedFeature:r}=e;if(t.current&&r){const o=e.getFeatureLayoutPosition(r);o&&t.current.scroll({top:(o.layoutRow+o.featureRow)*n,behavior:"smooth"})}}const Oh=({onResize:e})=>{const{classes:t}=jh(),n=u.useCallback((t=>{t.stopPropagation(),t.preventDefault(),e(t.movementY)}),[e]);return i.jsx("div",{onMouseDown:e=>{e.stopPropagation();const t=new AbortController,{signal:r}=t;function o(){t.abort(new DOMException("Canceling drag event listener","AbortError"))}globalThis.addEventListener("mousemove",n,{signal:r}),globalThis.addEventListener("mouseup",o,{signal:r}),globalThis.addEventListener("mouseleave",o,{signal:r})},onClick:e=>{e.stopPropagation(),e.preventDefault()},className:t.resizeHandle})},Lh=f.observer((function({onClick:e,onResize:t,open:n,title:r}){const{classes:o}=jh();return i.jsxs("div",{className:o.accordionRoot,children:[n&&t?i.jsx(Oh,{onResize:t}):null,i.jsxs("div",{className:o.accordionControl,onClick:e,children:[i.jsx(n?kh:Td,{className:o.expandIcon}),r?i.jsx(s.Typography,{className:o.title,variant:"caption",component:"span",children:r}):null]})]})})),Ph=f.observer((function({model:e,...t}){const n=o.getSession(e),{ontologyManager:r}=n.apolloDataStore,{featureTypeOntology:a}=r,c=a?.dataStore,{classes:l}=jh(),{graphical:d,height:A,isShown:f,selectedFeature:h,table:g,tabularEditor:p,toggleShown:m}=e,y=u.useRef(null);u.useEffect((()=>{Mh(e,y)}),[e,h]);const _=t=>{e.setDetailsHeight(e.detailsHeight-t)};if(!c)return i.jsx("div",{className:l.alertContainer,children:i.jsx(s.Alert,{severity:"error",children:"Could not load feature type ontology."})});if(d&&g){const n=p.isShown?e.detailsHeight:0,r=f?A-e.detailsHeight-24:0;return i.jsxs("div",{style:{height:A},children:[i.jsx(Lh,{open:f,title:"Graphical",onClick:m}),i.jsx("div",{className:l.shading,ref:y,style:{height:r},children:i.jsx(Dh,{model:e,...t})}),i.jsx(Lh,{title:"Table",open:p.isShown,onClick:p.togglePane,onResize:_}),i.jsx("div",{className:l.details,style:{height:n},children:i.jsx(ef,{model:e})})]})}return i.jsx("div",d?{className:l.shading,ref:y,style:{height:A},children:i.jsx(Dh,{model:e,...t})}:{className:l.details,style:{height:A},children:i.jsx(ef,{model:e})})})),qh=f.observer((function({model:e,...t}){const n=o.getSession(e),{ontologyManager:r}=n.apolloDataStore,{featureTypeOntology:a}=r,c=a?.dataStore,{classes:l}=jh(),{detailsHeight:d,graphical:A,height:f,isShown:h,selectedFeature:g,table:p,tabularEditor:m,toggleShown:y}=e,_=u.useRef(null);u.useEffect((()=>{Mh(e,_)}),[e,g]);const v=t=>{e.setDetailsHeight(d-t)};if(!c)return i.jsx("div",{className:l.alertContainer,children:i.jsx(s.Alert,{severity:"error",children:"Could not load feature type ontology."})});if(A&&p){const n=m.isShown?d:0,r=h?f-d-24:0;return i.jsxs("div",{style:{height:f},children:[i.jsx(Lh,{open:h,title:"Graphical",onClick:y}),i.jsx("div",{className:l.shading,ref:_,style:{height:r},children:i.jsx(Th,{model:e,...t})}),i.jsx(Lh,{title:"Table",open:m.isShown,onClick:m.togglePane,onResize:v}),i.jsx("div",{className:l.details,style:{height:n},children:i.jsx(ef,{model:e})})]})}return i.jsx("div",A?{className:l.shading,ref:_,style:{height:f},children:i.jsx(Th,{model:e,...t})}:{className:l.details,style:{height:f},children:i.jsx(ef,{model:e})})}));var Jh=a.createSvgIcon(i.jsx("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download"),Uh=a.createSvgIcon(i.jsx("path",{fillRule:"evenodd",d:"M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M10 17H5v-2h5zm0-4H5v-2h5zm0-4H5V7h5zm4.82 6L12 12.16l1.41-1.41 1.41 1.42L17.99 9l1.42 1.42z"}),"FactCheck"),Gh=a.createSvgIcon(i.jsx("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95-1.41 1.41L19 19.41v2.24h-2z"}),"FileOpen"),Hh=a.createSvgIcon(i.jsx("path",{d:"m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4z"}),"Logout"),Yh=a.createSvgIcon(i.jsx("path",{d:"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7z"}),"Redo"),zh=a.createSvgIcon(i.jsx("path",{d:"m19.07 4.93-1.41 1.41C19.1 7.79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07"}),"TrackChanges"),Kh=a.createSvgIcon(i.jsx("path",{d:"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8"}),"Undo"),Wh=a.createSvgIcon(i.jsx("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save");const Vh=c.types.model("JobsManager",{}).views((e=>({get jobStatusWidget(){const{widgets:t}=o.getSession(e);let n=t.get("JobsList");return n||(n=o.getSession(e).addWidget("JobsListWidget","JobsList")),n}}))).actions((e=>({update(t,n,r){e.jobStatusWidget.updateJobStatusMessage(t,n),r&&e.jobStatusWidget.updateJobProgressPct(t,r)},abortJob(t,n){const r=o.getSession(e);if(o.isSessionModelWithWidgets(r)){r.showWidget(e.jobStatusWidget),e.jobStatusWidget.updateJobStatusMessage(t,n??"Aborted unexpectedly");const o=e.jobStatusWidget.jobs.findIndex((e=>e.name===t));e.jobStatusWidget.addAbortedJob({...e.jobStatusWidget.jobs[o]}),e.jobStatusWidget.removeJob(t),r.notify("Job aborted","info")}},runJob(t){const n=o.getSession(e);o.isSessionModelWithWidgets(n)&&(n.showWidget(e.jobStatusWidget),e.jobStatusWidget.addJob(t))},done(t){const n=o.getSession(e);o.isSessionModelWithWidgets(n)&&(n.showWidget(e.jobStatusWidget),e.jobStatusWidget.removeJob(t.name),e.jobStatusWidget.addFinishedJob({name:t.name,statusMessage:"All operations successful",progressPct:100,cancelCallback:t.cancelCallback}))}})));function $h(e,t){const r=e.evaluateExtensionPoint("Apollo-extendAnnotationFeature",rA),i=function(e){return c.types.model("ClientDataStore",{typeName:c.types.optional(c.types.literal("Client"),"Client"),assemblies:c.types.map(aA),checkResults:c.types.map(sA),ontologyManager:c.types.optional(bu,{})}).views((t=>({get internetAccounts(){return c.getRoot(t).internetAccounts},get pluginConfiguration(){return c.getRoot(t).jbrowse.configuration.ApolloPlugin},getFeature:n=>c.resolveIdentifier(e,t.assemblies,n)}))).actions((e=>({addAssembly(t,n){const r={_id:t,refSeqs:{}};return n&&(r.backendDriverType=n),e.assemblies.put(r)}}))).actions((e=>({addFeature(t,n){const r=o.getSession(e),{assemblyManager:i}=r;let a=e.assemblies.get(t);if(!a){if(!i.get(t))throw new Error(`Could not find assembly "${t}" to add feature "${n._id}"`);a=e.addAssembly(t)}let s=a.refSeqs.get(n.refSeq);if(!s){const e=i.get(t);if(!e)throw new Error(`Could not find assembly "${t}" to add feature "${n._id}"`);const r=e.getCanonicalRefName(n.refSeq);if(!r)throw new Error(`Could not find refSeq "${n.refSeq}" to add feature "${n._id}"`);s=a.addRefSeq(n.refSeq,r)}s.features.put(n)},deleteFeature(t){const n=e.getFeature(t);if(!n)throw new Error(`Could not find feature "${t}" to delete`);const{_id:r,parent:o}=n;o?o.deleteChild(t):c.getParentOfType(n,iA).deleteFeature(r)},deleteAssembly(t){e.assemblies.delete(t)},addCheckResult(t){e.checkResults.put(t)},addCheckResults(t){for(const n of t)e.checkResults.has(n._id)||e.checkResults.put(n)},deleteCheckResult(t){e.checkResults.delete(t)},clearCheckResults(){e.checkResults.clear()}}))).volatile((e=>({changeManager:new Qu(e),collaborationServerDriver:new Nu(e),inMemoryFileDriver:new Ru(e),desktopFileDriver:o.isElectron?new Du(e):void 0}))).actions((e=>({afterCreate(){c.addDisposer(e,l.autorun((()=>{const{ontologyManager:t,pluginConfiguration:r}=e,i=r.ontologies;for(const r of i||[]){const[i,a,s,c]=[n.readConfObject(r,"name"),n.readConfObject(r,"version"),n.readConfObject(r,"source"),n.readConfObject(r,"textIndexFields")];if(!t.findOntology(i)){const n=o.getSession(e),{jobsManager:r}=n,l=new AbortController,u=`Loading ontology "${i}"`,d={name:u,statusMessage:`Loading ontology "${i}", version "${a}", this may take a while`,progressPct:0,cancelCallback:()=>{l.abort(new DOMException(`Canceling loading of ontology "${i}"`,"AbortError")),r.abortJob(d.name)}};t.addOntology(i,a,s,{textIndexing:{indexFields:c},update:(e,t)=>{0!==t?100!==t?r.update(u,e,t):r.done(d):r.runJob(d)}})}}})))}}))).views((e=>({getBackendDriver(t){const r=o.getSession(e),{assemblyManager:i}=r,a=i.get(t);if(!a)return;const{file:s,internetAccountConfigId:c}=n.getConf(a,["sequence","metadata"]);return o.isElectron&&s?e.desktopFileDriver:c?e.collaborationServerDriver:e.inMemoryFileDriver},getInternetAccount(t,r){if(!(t??r))throw new Error("Must provide either assemblyName or internetAccountId");let i=r;if(t&&!i){const{assemblyManager:r}=o.getSession(e),a=r.get(t);if(!a)throw new Error(`No assembly found with name ${t}`);({internetAccountConfigId:i}=n.getConf(a,["sequence","metadata"]))}const{internetAccounts:a}=e,s=a.find((e=>e.internetAccountId===i));if(!s)throw new Error(`No InternetAccount found with config id ${r}`);return s}}))).actions((e=>({loadFeatures:c.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const[r,o]=yield t.getFeatures(n);if(0===r.length)continue;const{assemblyName:i,refName:a}=n;let s=e.assemblies.get(i);s||(s=e.assemblies.put({_id:i,refSeqs:{}}));const[c]=r;let l=s.refSeqs.get(c.refSeq);l||(l=s.refSeqs.put({_id:c.refSeq,name:a,features:{}}));for(const e of r)l.features.has(e._id)||l.features.put(e);e.addCheckResults(o)}})),loadRefSeq:c.flow((function*(t){for(const n of t){const t=e.getBackendDriver(n.assemblyName);if(!t)return;const{refSeq:r,seq:o}=yield t.getSequence(n),{assemblyName:i,end:a,refName:s,start:c}=n;let l=e.assemblies.get(i);l||(l=e.assemblies.put({_id:i,refSeqs:{}}));let u=l.refSeqs.get(r);u||(u=l.refSeqs.put({_id:r,name:s,sequence:[]})),u.addSequence({start:c,stop:a,sequence:o})}}))})))}(r),a=t.props({apolloDataStore:c.types.optional(i,{typeName:"Client"}),apolloSelectedFeature:c.types.safeReference(r),jobsManager:c.types.optional(Vh,{}),isLocked:c.types.optional(c.types.boolean,!1),changeInProgress:c.types.optional(c.types.boolean,!1)}).volatile((()=>({apolloHoveredFeature:void 0,abortController:new AbortController}))).extend((()=>{const e=l.observable.array([]);return{views:{get collaborators(){return e}},actions:{addOrUpdateCollaborator(t){const n=e.find((e=>e.id===t.id));n?n.locations=t.locations:e.push(t)}}}})).actions((e=>({apolloSetSelectedFeature(t){e.apolloSelectedFeature=t},apolloSetHoveredFeature(t){e.apolloHoveredFeature=t},addApolloTrackConfig(t,r){const o=`apollo_track_${t.name}`;e.tracks.some((e=>e.trackId===o))||e.addTrackConf({type:"ApolloTrack",trackId:o,name:`Annotations (${n.getConf(t,"displayName")||t.name})`,assemblyNames:[t.name],textSearching:{textSearchAdapter:{type:"ApolloTextSearchAdapter",trackId:o,assemblyNames:[t.name],textSearchAdapterId:`apollo_search_${t.name}`,...r?{baseURL:{uri:r,locationType:"UriLocation"}}:{}}}})},toggleLocked(){e.isLocked=!e.isLocked},setChangeInProgress(t){e.changeInProgress=t},getPluginConfiguration(){const{jbrowse:t}=c.getRoot(e);return t.configuration.ApolloPlugin},broadcastLocations(){const{internetAccounts:t}=c.getRoot(e),n=[];for(const t of e.views){if("LinearGenomeView"!==t.type)return;const r=t;if(r.initialized){const{dynamicBlocks:t}=r;for(const r of t.contentBlocks){const{assemblyName:t,end:o,refName:i,start:a}=r,s=e.apolloDataStore.assemblies.get(t);s&&"CollaborationServerDriver"===s.backendDriverType&&n.push({assemblyName:t,refName:i,start:a,end:o})}}}if(0===n.length){for(const e of t)"baseURL"in e&&e.postUserLocation([]);return}const r=[];for(const e of t)if("baseURL"in e){for(const e of n)r.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(r)}}}))).actions((e=>({apolloSetEventualSelectedFeature:l.flow((function*(t){yield l.when((()=>Boolean(e.apolloDataStore.getFeature(t)))),e.apolloSetSelectedFeature(t)}))}))).volatile((e=>({previousSnapshot:c.getSnapshot(e)}))).actions((e=>({afterCreate(){c.applySnapshot(e,{name:e.name,id:e.id});const{internetAccounts:t,jbrowse:r,reloadPluginManagerCallback:o}=c.getRoot(e);c.addDisposer(e,l.autorun((()=>{const n=[];for(const t of e.views){if("LinearGenomeView"!==t.type)return;const r=t;if(r.initialized){const{dynamicBlocks:t}=r;for(const r of t.contentBlocks){const{assemblyName:t,end:o,refName:i,start:a}=r,s=e.apolloDataStore.assemblies.get(t);s&&"CollaborationServerDriver"===s.backendDriverType&&n.push({assemblyName:t,refName:i,start:a,end:o})}}}if(0===n.length){for(const e of t)"baseURL"in e&&e.postUserLocation([]);return}const r=[];for(const e of t)if("baseURL"in e){for(const e of n)r.push({assemblyId:e.assemblyName,refSeq:e.refName,start:e.start,end:e.end});e.postUserLocation(r)}}),{name:"ApolloSessionBroadcastLocations"})),c.addDisposer(e,l.autorun((async i=>{if(n.readConfObject(r.configuration.ApolloPlugin,"hasRole"))return c.applySnapshot(e,e.previousSnapshot),void i.dispose();const{signal:a}=e.abortController;for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const{baseURL:t}=n,r=new URL("jbrowse/config.json",t).href,s=n.getFetcher({locationType:"UriLocation",uri:r});let c,l;try{c=await s(r,{signal:a})}catch(t){e.abortController.signal.aborted||console.error(t);continue}if(c.ok){try{l=await c.json()}catch(e){console.error(e);continue}l.configuration.ApolloPlugin.hasRole&&(o(l,e.previousSnapshot),i.dispose())}else{const e=await ll(c,"Failed to fetch assemblies");console.error(e)}}}),{name:"ApolloSessionLoadConfig"}))},beforeDestroy(){e.abortController.abort(new DOMException("Clean up Apollo session","AbortError"))}}))).views((e=>{const t=e.getTrackActionMenuItems;return{getTrackActionMenuItems(r){if("ApolloTrack"===r.type||"ReferenceSequenceTrack"===r.type)return t?.(r);const o=n.readConfObject(r,"trackId");return o.endsWith("-sessionTrack")?[...t?.(r)??[],{label:"Save track to Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:n}=c.getRoot(e);let i;i=Lr(c.getSnapshot(n)),0===Object.keys(i).length&&(i=void 0);const a={...c.getSnapshot(r),trackId:o.slice(0,o.length-13)};for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new Pr({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:i,newJBrowseConfig:{...i,tracks:i?.tracks&&[...i.tracks,a]}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:o}=e;o("Track added","success")}e.deleteTrackConf(r),n.addTrackConf(a)},icon:Wh}]:[...t?.(r)??[],{label:"Remove track from Apollo",onClick:async()=>{const{internetAccounts:t,jbrowse:n}=c.getRoot(e);let i;i=Lr(c.getSnapshot(n)),0===Object.keys(i).length&&(i=void 0);const a=i?.tracks?.filter((e=>e.trackId!==o));for(const n of t){if("ApolloInternetAccount"!==n.type)continue;const t=new Pr({typeName:"ImportJBrowseConfigChange",oldJBrowseConfig:i,newJBrowseConfig:{...i,tracks:a}}),{internetAccountId:r}=n;await e.apolloDataStore.changeManager.submit(t,{internetAccountId:r});const{notify:o}=e;o("Track removed","success")}e.deleteTrackConf(r),n.deleteTrackConf(r)},icon:Wh}]}}}));return c.types.snapshotProcessor(a,{postProcessor(e,t){e.apolloSelectedFeature=void 0;const n=Object.fromEntries(Object.entries(e.apolloDataStore.assemblies).filter((([,e])=>"InMemoryFileDriver"===e.backendDriverType)));if(e.apolloDataStore={typeName:"Client",assemblies:n,checkResults:{}},!t)return e;const{apolloDataStore:r}=t,{checkResults:o}=r;for(const[,t]of o){const[n]=t.ids;if(!n)continue;const o=r.assemblies.get(n.assemblyId);o&&"InMemoryFileDriver"===o.backendDriverType&&(e.apolloDataStore.checkResults[t._id]=c.getSnapshot(t))}return e}})}const Xh="WorkerGlobalScope"in globalThis;for(const[e,t]of Object.entries(oo))ne.registerChange(e,t);const Zh=new jo;ae.registerCheck(Zh.name,Zh);const eg=new Jo;ae.registerCheck(eg.name,eg),co.registerValidation(new uo),co.registerValidation(new Ao),e.default=class extends t{name="ApolloPlugin";version="0.3.12";configurationSchema=mh;install(e){!function(e){e.addAdapterType((()=>new m({name:"ApolloSequenceAdapter",configSchema:Qd,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:kd})))}(e),function(e){e.addAdapterType((()=>new m({name:"ApolloRefNameAliasAdapter",configSchema:wd,adapterMetadata:{category:void 0,hiddenFromGUI:!0,description:void 0},AdapterClass:Id})))}(e),function(e){e.addTextSearchAdapterType((()=>new r.TextSearchAdapterType({name:"ApolloTextSearchAdapter",displayName:"Apollo text search adapter",configSchema:Fd,AdapterClass:Dd,description:"Apollo Text Search adapter"})))}(e),e.addWidgetType((()=>{const e=n.ConfigurationSchema("ApolloFeatureDetailsWidget",{});return new r.WidgetType({name:"ApolloFeatureDetailsWidget",heading:"Apollo feature details",configSchema:e,stateModel:cA,ReactComponent:tA})})),e.addWidgetType((()=>{const e=n.ConfigurationSchema("ApolloTranscriptDetails",{});return new r.WidgetType({name:"ApolloTranscriptDetails",heading:"Apollo transcript details",configSchema:e,stateModel:lA,ReactComponent:jA})})),e.addTrackType((()=>{const t=n.ConfigurationSchema("ApolloTrack",{adapter:""},{baseConfiguration:r.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new r.TrackType({name:"ApolloTrack",configSchema:t,stateModel:r.createBaseTrackModel(e,"ApolloTrack",t)})})),e.addInternetAccountType((()=>new r.InternetAccountType({name:"ApolloInternetAccount",configSchema:Go,stateModel:bd(Go)}))),e.addDisplayType((()=>new r.DisplayType({name:"LinearApolloDisplay",configSchema:MA,stateModel:Hf(0,MA),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:Ph}))),e.addDisplayType((()=>new r.DisplayType({name:"LinearApolloSixFrameDisplay",configSchema:ih,stateModel:ph(0,ih),trackType:"ApolloTrack",viewType:"LinearGenomeView",ReactComponent:qh}))),e.addDisplayType((()=>new r.DisplayType({name:"LinearApolloReferenceSequenceDisplay",configSchema:Yf,stateModel:rh(0,Yf),displayName:"Apollo reference sequence display",trackType:"ReferenceSequenceTrack",viewType:"LinearGenomeView",ReactComponent:oh}))),e.addToExtensionPoint("Core-extendSession",$h.bind(this,e)),e.addToExtensionPoint("Core-extendPluggableElement",(e=>{if("LinearGenomeView"===e.name){const{stateModel:t}=e,n=t.views((e=>{const t=e.rubberBandMenuItems;return{rubberBandMenuItems:()=>[...t(),{label:"Add new feature",icon:Uo,onClick:()=>{const t=o.getSession(e),{leftOffset:n,rightOffset:r}=e,i=e.getSelectedRegions(n,r);t.queueDialog((e=>[ju,{session:t,handleClose:()=>{e()},region:i[0],changeManager:t.apolloDataStore.changeManager}]))}}]}}));e.stateModel=n}return e})),e.addToExtensionPoint("Core-extendPluggableElement",wh),e.addToExtensionPoint("Core-extendPluggableElement",Bh),e.addToExtensionPoint("LinearGenomeView-searchResultSelected",((e,t)=>{const{session:n,result:r}=t,o=r.getTrackId(),i=r.matchedObject;return o?.startsWith("apollo_track_")&&i&&n.apolloSetEventualSelectedFeature(i._id),e})),Xh||e.addToExtensionPoint("Core-extendWorker",(t=>"on"in t&&t.on?(t.on("apollo",(async n=>{if("object"!=typeof(r=n)||null===r||!("apollo"in r)||!0!==r.apollo)return;var r;const{apollo:o,messageId:i,method:a}=n;switch(a){case"getSequence":{const{region:r}=n,{assemblyName:a}=r,s=e.rootModel?.session?.apolloDataStore;if(!s)break;const c=s.getBackendDriver(a);if(!c)break;const{seq:l}=await c.getSequence(r);t.workers[0].postMessage({apollo:o,messageId:i,sequence:l});break}case"getRegions":{const{assembly:r}=n,a=e.rootModel?.session?.apolloDataStore;if(!a)break;const s=a.getBackendDriver(r);if(!s)break;const c=await s.getRegions(r);t.workers[0].postMessage({apollo:o,messageId:i,regions:c});break}case"getRefNameAliases":{const{assembly:r}=n,a=e.rootModel?.session?.apolloDataStore;if(!a)break;const s=a.getBackendDriver(r);if(!s)break;const c=await s.getRefNameAliases(r);t.workers[0].postMessage({apollo:o,messageId:i,refNameAliases:c});break}}})),t):t))}configure(e){var t;o.isAbstractMenuManager(e.rootModel)&&(e.jexl.addFunction("geneBackgroundColor",(e=>"pseudogene"===e?s.alpha("rgb(148, 203, 236)",.6):"ncRNA_gene"===e?s.alpha("rgb(194, 106, 119)",.6):void 0)),(t=e.rootModel).insertInMenu("Apollo",{label:"Redo",icon:Yh,onClick(e){const{apolloDataStore:t}=e;t.changeManager.redoLastChange()}},0),t.insertInMenu("Apollo",{label:"Undo",icon:Kh,onClick(e){const{apolloDataStore:t}=e;t.changeManager.undoLastChange()}},0),t.appendToMenu("Apollo",{label:"Download GFF3",icon:Jh,onClick:e=>{e.queueDialog((t=>[Gu,{session:e,handleClose:()=>{t()}}]))}}),t.appendToMenu("Apollo",{label:"View Change Log",icon:zh,onClick:e=>{e.queueDialog((t=>[nd,{session:e,handleClose:()=>{t()}}]))}}),t.appendToMenu("Apollo",{label:"Open local GFF3 file",icon:Gh,onClick:e=>{e.queueDialog((t=>[ed,{session:e,handleClose:()=>{t()},inMemoryFileDriver:e.apolloDataStore.inMemoryFileDriver}]))}}),t.appendToMenu("Apollo",{label:"View check results",icon:Uh,onClick:e=>{e.queueDialog((t=>[ad,{session:e,handleClose:()=>{t()}}]))}}),t.appendToMenu("Apollo",{label:"Lock/Unlock session",onClick:e=>{e.toggleLocked()}}),t.appendToMenu("Apollo",{label:"Log out",icon:Hh,onClick:e=>{e.queueDialog((t=>[Yu,{session:e,handleClose:()=>{t()}}]))}}))}},Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=jbrowse-plugin-apollo.umd.production.min.js.map