bfg-common 1.0.80 → 1.0.82

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 (632) hide show
  1. package/.eslintrc.js +21 -21
  2. package/.idea/inspectionProfiles/Project_Default.xml +48 -48
  3. package/.idea/modules.xml +7 -7
  4. package/.idea/prettier.xml +5 -5
  5. package/.idea/uikit.iml +11 -11
  6. package/.idea/vcs.xml +5 -5
  7. package/.prettierrc +4 -4
  8. package/PROJECT_STRUCTURE.md +42 -42
  9. package/README.md +42 -42
  10. package/assets/img/icons/icon-hcs.svg +3 -3
  11. package/assets/img/icons/icon-life-m-dark.svg +3 -3
  12. package/assets/img/icons/icon-life-m-light.svg +3 -3
  13. package/assets/img/icons/icon-ro-dark.svg +1 -1
  14. package/assets/img/icons/icon-ro-light.svg +2 -2
  15. package/assets/img/icons/icons-sprite-dark-6.svg +1 -1
  16. package/assets/img/icons/icons-sprite-light-6.svg +1 -1
  17. package/assets/img/icons/info.svg +8 -8
  18. package/assets/img/icons/vc.svg +52 -52
  19. package/assets/img/logo copy.svg +50 -50
  20. package/assets/img/logo.svg +51 -51
  21. package/assets/localization/local_be.json +2035 -2040
  22. package/assets/localization/local_en.json +2035 -2040
  23. package/assets/localization/local_hy.json +2035 -2040
  24. package/assets/localization/local_kk.json +2035 -2040
  25. package/assets/localization/local_ru.json +2035 -2040
  26. package/assets/localization/local_zh.json +2035 -2040
  27. package/assets/scss/clarity/clr-ui.min.css +8 -8
  28. package/assets/scss/common/animations.scss +28 -28
  29. package/assets/scss/common/global.scss +172 -172
  30. package/assets/scss/common/icons/icons-1.scss +188 -188
  31. package/assets/scss/common/icons/icons-2.scss +208 -208
  32. package/assets/scss/common/icons/icons-3.scss +176 -176
  33. package/assets/scss/common/icons/icons-4.scss +179 -179
  34. package/assets/scss/common/icons/icons-5.scss +53 -53
  35. package/assets/scss/common/icons/icons-6.scss +29 -29
  36. package/assets/scss/common/icons/icons.scss +15 -15
  37. package/assets/scss/common/mixins.scss +39 -39
  38. package/assets/scss/common/normalize.scss +320 -320
  39. package/assets/scss/common/theme.scss +230 -230
  40. package/assets/scss/common/utilities.scss +18 -18
  41. package/assets/scss/common/variables.scss +43 -43
  42. package/assets/scss/main.scss +13 -13
  43. package/components/atoms/DiagramIcon.vue +287 -287
  44. package/components/atoms/TheIcon.vue +1687 -1687
  45. package/components/atoms/TheIcon2.vue +318 -368
  46. package/components/atoms/alert/Alert.spec.ts +38 -38
  47. package/components/atoms/alert/Alert.vue +84 -84
  48. package/components/atoms/alert/Notification.spec.ts +34 -34
  49. package/components/atoms/alert/models/enums.ts +12 -12
  50. package/components/atoms/alert/models/interfaces.ts +27 -27
  51. package/components/atoms/alert/models/types.ts +7 -7
  52. package/components/atoms/collapse/CollapseNav.vue +158 -158
  53. package/components/atoms/collapse/CollapseNavItem.vue +190 -190
  54. package/components/atoms/collapse/models/interfaces.ts +9 -9
  55. package/components/atoms/combobox/Combobox.vue +147 -147
  56. package/components/atoms/datepicker/config/allShortMonths.ts +103 -103
  57. package/components/atoms/datepicker/config/datapicker.ts +43 -43
  58. package/components/atoms/datepicker/models/interfaces.ts +8 -8
  59. package/components/atoms/dropdown/Portlet.spec.ts +26 -26
  60. package/components/atoms/dropdown/Portlet.vue +111 -111
  61. package/components/atoms/dropdown/dropdown/Dropdown.vue +148 -148
  62. package/components/atoms/dropdown/dropdown/models/interfaces.ts +8 -8
  63. package/components/atoms/dropdown/tree/Tree.vue +134 -134
  64. package/components/atoms/dropdown/tree/models/interfaces.ts +9 -9
  65. package/components/atoms/input/Search.vue +16 -16
  66. package/components/atoms/list/SimpleList.vue +29 -29
  67. package/components/atoms/list/dragDropList/DragDropList.vue +139 -139
  68. package/components/atoms/list/dragDropList/config/events.ts +4 -4
  69. package/components/atoms/loader/BarLoader.vue +21 -21
  70. package/components/atoms/loader/Loader.vue +26 -26
  71. package/components/atoms/loader/PreLoader.vue +34 -34
  72. package/components/atoms/loader/Preloader.spec.ts +24 -24
  73. package/components/atoms/modal/Modal.spec.ts +55 -55
  74. package/components/atoms/modal/Modal.vue +241 -241
  75. package/components/atoms/modal/bySteps/BySteps.spec.ts +66 -66
  76. package/components/atoms/modal/bySteps/BySteps.vue +6 -8
  77. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +174 -174
  78. package/components/atoms/models/interfaces.ts +11 -11
  79. package/components/atoms/nav/NavBar.spec.ts +34 -34
  80. package/components/atoms/nav/models/interfaces.ts +5 -5
  81. package/components/atoms/notificationBar/models/enums.ts +27 -27
  82. package/components/atoms/notificationBar/models/interfaces.ts +6 -6
  83. package/components/atoms/notificationBar/models/types.ts +1 -1
  84. package/components/atoms/popover/Popover.vue +48 -48
  85. package/components/atoms/select/TheSelect.vue +175 -175
  86. package/components/atoms/select/models/interfaces.ts +4 -4
  87. package/components/atoms/stack/StackBlock.vue +171 -171
  88. package/components/atoms/stack/StackContent.vue +60 -60
  89. package/components/atoms/step/VerticalStep.spec.ts +68 -68
  90. package/components/atoms/step/models/verticalStepItem.ts +7 -7
  91. package/components/atoms/table/compact/Compact.vue +526 -526
  92. package/components/atoms/table/compact/models/interfaces.ts +10 -10
  93. package/components/atoms/table/dataGrid/DataGrid.spec.ts +61 -61
  94. package/components/atoms/table/dataGrid/DataGrid.vue +1406 -1469
  95. package/components/atoms/table/dataGrid/DataGridPagination.vue +89 -89
  96. package/components/atoms/table/dataGrid/config/itemsPerPage.ts +20 -20
  97. package/components/atoms/table/dataGrid/models/interfaces.ts +24 -24
  98. package/components/atoms/table/dataGrid/models/types.ts +5 -5
  99. package/components/atoms/table/dataGrid/utils/constructDataTable.ts +32 -32
  100. package/components/atoms/table/info/Info.vue +60 -60
  101. package/components/atoms/table/info/models/interfaces.ts +6 -6
  102. package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -98
  103. package/components/atoms/table/simpleEvent/models/interfaces.ts +9 -9
  104. package/components/atoms/table/simpleInfo/SimpleInfo.vue +68 -68
  105. package/components/atoms/table/simpleInfo/models/interfaces.ts +4 -4
  106. package/components/atoms/table/simpleTable/SimpleTable.vue +291 -291
  107. package/components/atoms/table/simpleTable/models/interfaces.ts +10 -10
  108. package/components/atoms/tabs/VerticalTabs.vue +81 -81
  109. package/components/atoms/tabs/models/interfaces.ts +4 -4
  110. package/components/atoms/tabs/models/types.ts +1 -1
  111. package/components/atoms/tooltip/Models/interfaces.ts +4 -4
  112. package/components/atoms/tooltip/Text.vue +39 -39
  113. package/components/atoms/tooltip/Tooltip.vue +57 -57
  114. package/components/atoms/tooltip/TooltipError.vue +113 -113
  115. package/components/common/accordion/Accordion.vue +183 -183
  116. package/components/common/accordion/Recursion.vue +216 -216
  117. package/components/common/accordion/models/enums.ts +5 -5
  118. package/components/common/accordion/models/interfaces.ts +15 -15
  119. package/components/common/accordion/models/types.ts +1 -1
  120. package/components/common/accordion/utils/accordion.ts +31 -31
  121. package/components/common/adapterManager/AdapterManager.vue +715 -715
  122. package/components/common/adapterManager/AddAdapterModal.vue +464 -464
  123. package/components/common/adapterManager/config/index.ts +19 -19
  124. package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -39
  125. package/components/common/adapterManager/ui/SecondTitle.vue +37 -37
  126. package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -93
  127. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -28
  128. package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -33
  129. package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -33
  130. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -34
  131. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  132. package/components/common/adapterManager/ui/table/Adapters.vue +91 -91
  133. package/components/common/adapterManager/ui/table/Header.vue +89 -89
  134. package/components/common/adapterManager/ui/table/Table.vue +167 -167
  135. package/components/common/addNetworking/AddNetworking.vue +982 -982
  136. package/components/common/addNetworking/Wizard.vue +286 -286
  137. package/components/common/addNetworking/config/addNetworkingSteps.ts +404 -404
  138. package/components/common/addNetworking/config/index.ts +46 -46
  139. package/components/common/addNetworking/config/initialData.ts +78 -78
  140. package/components/common/addNetworking/config/portPropertiesStep.ts +19 -19
  141. package/components/common/addNetworking/config/selectSwitch.ts +19 -19
  142. package/components/common/addNetworking/config/sendData.ts +87 -87
  143. package/components/common/addNetworking/config/temporaryData.ts +7 -7
  144. package/components/common/addNetworking/config/validation.ts +23 -23
  145. package/components/common/addNetworking/mappers/mappers.ts +166 -166
  146. package/components/common/addNetworking/modals/SelectNetwork.vue +149 -149
  147. package/components/common/addNetworking/modals/SelectStandardSwitch.vue +125 -125
  148. package/components/common/addNetworking/modals/SelectSwitch.vue +114 -114
  149. package/components/common/addNetworking/models/enums.ts +6 -6
  150. package/components/common/addNetworking/models/interfaces.ts +207 -207
  151. package/components/common/addNetworking/models/types.ts +4 -4
  152. package/components/common/addNetworking/steps/ConnectionSettings.vue +269 -269
  153. package/components/common/addNetworking/steps/CreateStandardSwitch.vue +91 -91
  154. package/components/common/addNetworking/steps/Header.vue +52 -52
  155. package/components/common/addNetworking/steps/IpFourSettings.vue +361 -361
  156. package/components/common/addNetworking/steps/PhysicalAdapter.vue +24 -24
  157. package/components/common/addNetworking/steps/PortProperties.vue +481 -481
  158. package/components/common/addNetworking/steps/ReadyComplete.vue +29 -29
  159. package/components/common/addNetworking/steps/SelectConnectionType.vue +106 -106
  160. package/components/common/addNetworking/steps/SelectedTargetDevice.vue +563 -563
  161. package/components/common/addNetworking/utils/index.ts +212 -212
  162. package/components/common/browse/blocks/Container.vue +102 -102
  163. package/components/common/browse/blocks/contents/Files.vue +68 -68
  164. package/components/common/browse/blocks/info/Date.vue +21 -21
  165. package/components/common/browse/blocks/info/Size.vue +17 -17
  166. package/components/common/browse/blocks/info/Text.vue +16 -16
  167. package/components/common/browse/blocks/models/types.ts +1 -1
  168. package/components/common/browse/models/interfaces.ts +5 -5
  169. package/components/common/content/navbar/left/Left.vue +137 -0
  170. package/components/common/content/navbar/left/models/interfaces.ts +5 -0
  171. package/components/common/content/navbar/left/utils/constructAccordion.ts +27 -0
  172. package/components/common/content/navbar/right/Right.vue +139 -0
  173. package/components/common/content/navbar/right/models/interfaces.ts +4 -0
  174. package/components/common/context/Context.spec.ts +20 -20
  175. package/components/common/context/Context.vue +97 -97
  176. package/components/common/context/ContextRecursion.spec.ts +55 -55
  177. package/components/common/context/ContextRecursion.vue +251 -251
  178. package/components/common/context/models/interfaces.ts +26 -26
  179. package/components/common/details/DetailsItem.vue +106 -106
  180. package/components/common/details/DetailsList.vue +23 -23
  181. package/components/common/details/model/interfaces.ts +9 -9
  182. package/components/common/diagramMain/Diagram.vue +186 -186
  183. package/components/common/diagramMain/DiagramMain.vue +979 -979
  184. package/components/common/diagramMain/Header.vue +163 -163
  185. package/components/common/diagramMain/Highlights.vue +102 -102
  186. package/components/common/diagramMain/adapter/Adapter.vue +105 -105
  187. package/components/common/diagramMain/adapter/Block.vue +41 -41
  188. package/components/common/diagramMain/adapter/Contents.vue +96 -96
  189. package/components/common/diagramMain/adapter/Lines.vue +52 -52
  190. package/components/common/diagramMain/adapter/SecondBlock.vue +42 -42
  191. package/components/common/diagramMain/config/index.ts +51 -51
  192. package/components/common/diagramMain/config/initial.ts +37 -37
  193. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
  194. package/components/common/diagramMain/modals/MigrateVmkernelAdapter.vue +535 -535
  195. package/components/common/diagramMain/modals/config/adapterModal.ts +110 -110
  196. package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -17
  197. package/components/common/diagramMain/modals/config/index.ts +57 -57
  198. package/components/common/diagramMain/modals/config/initial.ts +181 -181
  199. package/components/common/diagramMain/modals/config/migrateVmkernelAdapterSteps.ts +81 -81
  200. package/components/common/diagramMain/modals/config/networkModal.ts +337 -337
  201. package/components/common/diagramMain/modals/config/portModal.ts +201 -201
  202. package/components/common/diagramMain/modals/config/switchModal.ts +172 -172
  203. package/components/common/diagramMain/modals/config/vCenterModal.ts +30 -30
  204. package/components/common/diagramMain/modals/config/validation.ts +2 -2
  205. package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -90
  206. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -41
  207. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +491 -491
  208. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +714 -714
  209. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -211
  210. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -183
  211. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -161
  212. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +166 -166
  213. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -393
  214. package/components/common/diagramMain/modals/steps/ConnectionSettings.vue +206 -206
  215. package/components/common/diagramMain/modals/steps/SelectVmkernelAdapter.vue +221 -221
  216. package/components/common/diagramMain/modals/steps/VmkernelAdapterReadyComplete.vue +50 -50
  217. package/components/common/diagramMain/modals/utils/index.ts +9 -9
  218. package/components/common/diagramMain/modals/viewSettings/Info.vue +96 -96
  219. package/components/common/diagramMain/modals/viewSettings/ViewSettings.vue +171 -171
  220. package/components/common/diagramMain/modals/viewSettings/ViewSettingsModal.vue +93 -93
  221. package/components/common/diagramMain/models/enums.ts +26 -26
  222. package/components/common/diagramMain/models/interfaces.ts +565 -565
  223. package/components/common/diagramMain/models/types.ts +9 -9
  224. package/components/common/diagramMain/network/Block.vue +55 -55
  225. package/components/common/diagramMain/network/Lines.vue +65 -65
  226. package/components/common/diagramMain/network/Network.vue +117 -117
  227. package/components/common/diagramMain/network/NoNetwork.vue +47 -47
  228. package/components/common/diagramMain/network/SecondBlock.vue +51 -51
  229. package/components/common/diagramMain/port/Port.vue +301 -301
  230. package/components/common/diagramMain/port/Ports.vue +41 -41
  231. package/components/common/diagramMain/switch/Switch.vue +71 -71
  232. package/components/common/diagramMain/switch/SwitchSelected.vue +29 -29
  233. package/components/common/diagramMain/utils/utils.ts +218 -218
  234. package/components/common/feedback/Feedback.vue +236 -236
  235. package/components/common/feedback/config/drawingPanel.ts +31 -31
  236. package/components/common/feedback/config/feedbackTabs.ts +24 -24
  237. package/components/common/feedback/models/interfaces.ts +15 -15
  238. package/components/common/graph/Graph.vue +107 -107
  239. package/components/common/graph/utils/renderGraph.ts +389 -389
  240. package/components/common/headline/Headline.vue +32 -32
  241. package/components/common/mainNavigationPanel/models/interfaces.ts +6 -6
  242. package/components/common/mainNavigationPanel/models/types.ts +1 -1
  243. package/components/common/modals/Confirmation.vue +71 -71
  244. package/components/common/modals/config/defaultForm.ts +18 -18
  245. package/components/common/modals/config/renameLabelWidth.ts +3 -3
  246. package/components/common/modals/models/interfaces.ts +5 -5
  247. package/components/common/monitor/advanced/Advanced.vue +164 -164
  248. package/components/common/monitor/advanced/GraphView.vue +132 -132
  249. package/components/common/monitor/advanced/models/interfaces.ts +6 -6
  250. package/components/common/monitor/advanced/models/types.ts +1 -1
  251. package/components/common/monitor/advanced/table/Table.vue +90 -90
  252. package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -116
  253. package/components/common/monitor/advanced/table/models/interfaces.ts +12 -12
  254. package/components/common/monitor/advanced/table/models/types.ts +10 -10
  255. package/components/common/monitor/advanced/tools/Tools.vue +302 -302
  256. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +125 -125
  257. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -33
  258. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +79 -79
  259. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/config/optionsActions.ts +13 -13
  260. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +53 -53
  261. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +48 -48
  262. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +113 -113
  263. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +71 -71
  264. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +634 -634
  265. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +28 -28
  266. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +5 -5
  267. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +21 -21
  268. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +381 -381
  269. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -59
  270. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +107 -107
  271. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -54
  272. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -4
  273. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -1
  274. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +42 -42
  275. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +98 -98
  276. package/components/common/monitor/advanced/tools/chartOptionsModal/models/types.ts +3 -3
  277. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +73 -73
  278. package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -4
  279. package/components/common/monitor/config/getValidDateByOption.ts +14 -14
  280. package/components/common/monitor/models/interfaces.ts +19 -19
  281. package/components/common/monitor/overview/Overview.vue +412 -412
  282. package/components/common/monitor/overview/filters/Filters.vue +210 -210
  283. package/components/common/monitor/overview/filters/config/filterOptions.ts +56 -56
  284. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +220 -220
  285. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +35 -35
  286. package/components/common/monitor/overview/filters/models/interfaces.ts +6 -6
  287. package/components/common/monitor/overview/filters/models/types.ts +3 -3
  288. package/components/common/recursionTree/models/interfaces.ts +19 -19
  289. package/components/common/resource/models/interfaces.ts +9 -9
  290. package/components/common/resource/models/types.ts +1 -1
  291. package/components/common/resource/progressBlock/ProgressBlock.vue +105 -105
  292. package/components/common/resource/simple/Simple.vue +58 -58
  293. package/components/common/resource/simple/models/enums.ts +5 -5
  294. package/components/common/resource/utils.ts +33 -33
  295. package/components/common/select/button/ButtonDropdown.vue +100 -100
  296. package/components/common/select/button/models/interfaces.ts +6 -6
  297. package/components/common/select/radio/RadioGroup.vue +108 -108
  298. package/components/common/select/radio/models/interfaces.ts +8 -8
  299. package/components/common/spiceConsole/Drawer.vue +241 -241
  300. package/components/common/spiceConsole/SpiceConsole.vue +87 -87
  301. package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -402
  302. package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -891
  303. package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -17
  304. package/components/common/spiceConsole/models/types.ts +1 -1
  305. package/components/common/split/horizontal/Horizontal.vue +306 -306
  306. package/components/common/split/horizontal/models/interfaces.ts +5 -5
  307. package/components/common/split/vertical/Vertical.vue +213 -213
  308. package/components/common/split/vertical/models/interfaces.ts +3 -3
  309. package/components/common/tools/Actions.vue +163 -163
  310. package/components/common/tools/models/interfaces.ts +6 -6
  311. package/components/common/vm/actions/add/Add.vue +687 -687
  312. package/components/common/vm/actions/add/FolderTreeView.vue +83 -83
  313. package/components/common/vm/actions/add/config/capabilities.ts +670 -670
  314. package/components/common/vm/actions/add/customizeHardware/CustomizeHardware.vue +236 -236
  315. package/components/common/vm/actions/add/customizeHardware/config/navItems.ts +19 -19
  316. package/components/common/vm/actions/add/customizeHardware/models/interfaces.ts +7 -7
  317. package/components/common/vm/actions/add/customizeHardware/virtualHardware/VirtualHardware.vue +611 -611
  318. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -203
  319. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -8
  320. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/Bus.vue +127 -127
  321. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/config/options.ts +13 -13
  322. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +223 -223
  323. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -9
  324. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -11
  325. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -55
  326. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -1
  327. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -12
  328. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -52
  329. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +97 -97
  330. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +372 -372
  331. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -49
  332. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  333. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Hv.vue +93 -93
  334. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Iommu.vue +52 -52
  335. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
  336. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Pc.vue +54 -54
  337. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Sa.vue +102 -102
  338. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -19
  339. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
  340. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -28
  341. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -58
  342. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +214 -214
  343. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  344. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +284 -284
  345. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -53
  346. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +23 -23
  347. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/interfaces.ts +125 -125
  348. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/types.ts +4 -4
  349. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -24
  350. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -171
  351. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -27
  352. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +452 -452
  353. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -80
  354. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -7
  355. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
  356. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -28
  357. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -87
  358. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -18
  359. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -87
  360. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -15
  361. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -85
  362. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -12
  363. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -141
  364. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +256 -256
  365. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -86
  366. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -9
  367. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -140
  368. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -11
  369. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -157
  370. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -7
  371. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -44
  372. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -49
  373. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -10
  374. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -27
  375. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  376. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -56
  377. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +65 -65
  378. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -6
  379. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/InputDevices.vue +21 -21
  380. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/Other.vue +27 -27
  381. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/Reservation.vue +231 -231
  382. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/config/options.ts +33 -33
  383. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -45
  384. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -120
  385. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/VideoCard.vue +173 -173
  386. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -11
  387. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -57
  388. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -10
  389. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -82
  390. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -14
  391. package/components/common/vm/actions/add/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  392. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -110
  393. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -45
  394. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -45
  395. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -50
  396. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -14
  397. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -83
  398. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -11
  399. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/Order.vue +195 -195
  400. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -8
  401. package/components/common/vm/actions/add/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +114 -114
  402. package/components/common/vm/actions/add/customizeHardware/vmoptions/models/interfaces.ts +34 -34
  403. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +45 -45
  404. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +49 -49
  405. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -50
  406. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +49 -49
  407. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -49
  408. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +230 -230
  409. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +82 -82
  410. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -14
  411. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +82 -82
  412. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -12
  413. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +50 -50
  414. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -6
  415. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -52
  416. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -11
  417. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +134 -134
  418. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -5
  419. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -12
  420. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -52
  421. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -11
  422. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +82 -82
  423. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -12
  424. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +82 -82
  425. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -7
  426. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -56
  427. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -14
  428. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +82 -82
  429. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -12
  430. package/components/common/vm/actions/add/customizeHardware/vmoptions/tools/Tools.vue +63 -63
  431. package/components/common/vm/actions/add/models/enums.ts +89 -89
  432. package/components/common/vm/actions/add/models/interfaces.ts +126 -126
  433. package/components/common/vm/actions/add/models/types.ts +65 -65
  434. package/components/common/vm/actions/add/readyToComplete/ReadyToComplete.vue +15 -15
  435. package/components/common/vm/actions/add/select/compatibility/Compatibility.vue +151 -151
  436. package/components/common/vm/actions/add/select/computeResource/ComputeResource.spec.ts +479 -479
  437. package/components/common/vm/actions/add/select/computeResource/ComputeResource.vue +170 -170
  438. package/components/common/vm/actions/add/select/computeResource/TreeView.vue +126 -126
  439. package/components/common/vm/actions/add/select/createType/CreateType.vue +61 -61
  440. package/components/common/vm/actions/add/select/createType/config/items.ts +26 -26
  441. package/components/common/vm/actions/add/select/models/interfaces.ts +32 -32
  442. package/components/common/vm/actions/add/select/models/types.ts +44 -44
  443. package/components/common/vm/actions/add/select/name/Name.vue +215 -215
  444. package/components/common/vm/actions/add/select/os/os.vue +221 -221
  445. package/components/common/vm/actions/add/select/storage/Storage.vue +176 -176
  446. package/components/common/vm/actions/add/select/storage/config/config.ts +148 -148
  447. package/components/common/vm/actions/add/select/storage/models/types.ts +15 -15
  448. package/components/common/vm/actions/add/utils.ts +118 -118
  449. package/components/common/vm/actions/editSettings/EditSettings.vue +312 -312
  450. package/components/common/vm/actions/editSettings/models/types.ts +23 -23
  451. package/components/common/vm/actions/editSettings/utils.ts +48 -48
  452. package/components/common/vm/actions/models/interfaces.ts +6 -6
  453. package/components/common/vm/actions/models/types.ts +11 -11
  454. package/components/common/vm/actions/utils.ts +221 -221
  455. package/components/common/wizards/datastore/add/Add.vue +382 -382
  456. package/components/common/wizards/datastore/add/config/stepItems.ts +160 -160
  457. package/components/common/wizards/datastore/add/local/Local.vue +67 -67
  458. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -159
  459. package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -15
  460. package/components/common/wizards/datastore/add/models/interfaces.ts +35 -35
  461. package/components/common/wizards/datastore/add/models/types.ts +14 -14
  462. package/components/common/wizards/datastore/add/nfs/Nfs.vue +91 -91
  463. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -95
  464. package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -24
  465. package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -9
  466. package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -5
  467. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -141
  468. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -54
  469. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -75
  470. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -68
  471. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -15
  472. package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -33
  473. package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -12
  474. package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -97
  475. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -41
  476. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -3
  477. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -11
  478. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -1
  479. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -24
  480. package/components/common/wizards/datastore/add/nfs/version/Version.vue +42 -42
  481. package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -20
  482. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +77 -77
  483. package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -165
  484. package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -4
  485. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -85
  486. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -447
  487. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -18
  488. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -14
  489. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -87
  490. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -11
  491. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -55
  492. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -14
  493. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -46
  494. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -64
  495. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -225
  496. package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +39 -39
  497. package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +21 -21
  498. package/components/common/wizards/datastore/add/types/Types.vue +77 -77
  499. package/components/common/wizards/datastore/add/types/config/typeOptions.ts +39 -39
  500. package/components/common/wizards/datastore/add/utils.ts +69 -69
  501. package/components/models/interfaces.ts +14 -14
  502. package/composables/deepCopy.ts +21 -21
  503. package/composables/useDiff.ts +15 -15
  504. package/composables/useLocal.ts +36 -36
  505. package/composables/useLocalStorage.ts +45 -45
  506. package/composables/useThrottle.ts +32 -32
  507. package/composables/useUniqueId.ts +5 -5
  508. package/config/regExp.ts +13 -13
  509. package/eslint/index.js +15 -15
  510. package/eslint/no-import-type.js +17 -17
  511. package/eslint/no-invalid-type-prefix.js +32 -32
  512. package/minify.js +51 -51
  513. package/models/composables/useMyFetch/interfaces.ts +4 -4
  514. package/models/composables/useMyFetch/types.ts +1 -1
  515. package/models/enums.ts +21 -21
  516. package/models/interfaces.ts +29 -29
  517. package/models/plugins/date/interfaces.ts +5 -5
  518. package/models/plugins/date/types.ts +1 -1
  519. package/models/plugins/validation/interfaces.ts +21 -21
  520. package/models/plugins/validation/types.ts +1 -1
  521. package/models/store/host/interfaces.ts +38 -38
  522. package/models/store/interfaces.ts +47 -47
  523. package/models/store/network/interfaces.ts +13 -13
  524. package/models/store/vm/interfaces.ts +207 -207
  525. package/models/types.ts +6 -6
  526. package/nuxt.config.ts +8 -8
  527. package/package.json +39 -39
  528. package/plugins/binary.ts +122 -122
  529. package/plugins/date.ts +179 -179
  530. package/plugins/recursion.ts +230 -230
  531. package/plugins/spice-console/spice.console.ts +128 -128
  532. package/plugins/text.ts +48 -48
  533. package/plugins/validation.ts +172 -172
  534. package/public/spice-console/application/WorkerProcess.js +3350 -3350
  535. package/public/spice-console/application/WorkerProcess_back.js +3144 -3144
  536. package/public/spice-console/application/WorkerProcess_meta.js +3102 -3102
  537. package/public/spice-console/application/WorkerProcess_reverse.js +3214 -3214
  538. package/public/spice-console/application/agent.js +175 -175
  539. package/public/spice-console/application/application.js +641 -641
  540. package/public/spice-console/application/checkActivity.js +50 -50
  541. package/public/spice-console/application/clientgui.js +842 -842
  542. package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -92
  543. package/public/spice-console/application/clipboard/local/localClipboard.js +110 -110
  544. package/public/spice-console/application/clipboard.js +82 -82
  545. package/public/spice-console/application/imagecache.js +81 -81
  546. package/public/spice-console/application/inputmanager.js +270 -270
  547. package/public/spice-console/application/packetfactory.js +202 -202
  548. package/public/spice-console/application/packetfilter.js +103 -103
  549. package/public/spice-console/application/packetprocess.js +75 -75
  550. package/public/spice-console/application/rasteroperation.js +118 -118
  551. package/public/spice-console/application/spiceconnection.js +197 -197
  552. package/public/spice-console/application/stream.js +67 -67
  553. package/public/spice-console/application/virtualmouse.js +109 -109
  554. package/public/spice-console/keymaps/keyevent.js +36 -36
  555. package/public/spice-console/keymaps/keymap.js +229 -229
  556. package/public/spice-console/keymaps/keymapes.js +375 -375
  557. package/public/spice-console/keymaps/keymapesObj.js +316 -316
  558. package/public/spice-console/keymaps/keymapus.js +317 -317
  559. package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -65
  560. package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -60
  561. package/public/spice-console/lib/AsyncConsumer.js +204 -204
  562. package/public/spice-console/lib/AsyncWorker.js +60 -60
  563. package/public/spice-console/lib/CollisionDetector.js +27 -27
  564. package/public/spice-console/lib/DataLogger.js +197 -197
  565. package/public/spice-console/lib/GenericObjectPool.js +152 -152
  566. package/public/spice-console/lib/GlobalPool.js +114 -114
  567. package/public/spice-console/lib/ImageUncompressor.js +138 -138
  568. package/public/spice-console/lib/IntegrationBenchmark.js +64 -64
  569. package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -107
  570. package/public/spice-console/lib/SyncAsyncHandler.js +46 -46
  571. package/public/spice-console/lib/base64.js +298 -298
  572. package/public/spice-console/lib/biginteger.js +1640 -1640
  573. package/public/spice-console/lib/bowser.js +276 -276
  574. package/public/spice-console/lib/decoder/dixie.js +7930 -7930
  575. package/public/spice-console/lib/decoder/jmuxer.js +2815 -2815
  576. package/public/spice-console/lib/displayRouter.js +83 -83
  577. package/public/spice-console/lib/encrypt.js +191 -191
  578. package/public/spice-console/lib/flipper.js +39 -39
  579. package/public/spice-console/lib/graphic.js +1230 -1230
  580. package/public/spice-console/lib/graphicdebug.js +223 -223
  581. package/public/spice-console/lib/images/bitmap.js +194 -194
  582. package/public/spice-console/lib/images/jsquic_family.js +83 -83
  583. package/public/spice-console/lib/images/jsquic_rgba.js +342 -342
  584. package/public/spice-console/lib/images/jsquic_uncompress.js +529 -529
  585. package/public/spice-console/lib/images/lz.js +717 -717
  586. package/public/spice-console/lib/images/png.js +275 -275
  587. package/public/spice-console/lib/jgestures.min.js +43 -43
  588. package/public/spice-console/lib/jquery-2.0.3.js +8829 -8829
  589. package/public/spice-console/lib/jquery-mousewheel.js +83 -83
  590. package/public/spice-console/lib/jquery-visibility.min.js +1 -1
  591. package/public/spice-console/lib/jsbn.js +578 -578
  592. package/public/spice-console/lib/jsbn2.js +675 -675
  593. package/public/spice-console/lib/lodash.4.0.0.min.js +136 -136
  594. package/public/spice-console/lib/modernizr.js +39 -39
  595. package/public/spice-console/lib/pixastic.js +3244 -3244
  596. package/public/spice-console/lib/prettyprint.js +794 -794
  597. package/public/spice-console/lib/prng4.js +64 -64
  598. package/public/spice-console/lib/queue.js +259 -259
  599. package/public/spice-console/lib/rng.js +87 -87
  600. package/public/spice-console/lib/runqueue.js +103 -103
  601. package/public/spice-console/lib/sha1.js +124 -124
  602. package/public/spice-console/lib/stuckkeyshandler.js +122 -122
  603. package/public/spice-console/lib/timelapsedetector.js +62 -62
  604. package/public/spice-console/lib/utils.js +327 -327
  605. package/public/spice-console/lib/virtualjoystick.js +370 -370
  606. package/public/spice-console/network/busconnection.js +195 -195
  607. package/public/spice-console/network/clusternodechooser.js +49 -49
  608. package/public/spice-console/network/connectioncontrol.js +60 -60
  609. package/public/spice-console/network/packetcontroller.js +62 -62
  610. package/public/spice-console/network/packetextractor.js +73 -73
  611. package/public/spice-console/network/packetlinkfactory.js +64 -64
  612. package/public/spice-console/network/packetreassembler.js +77 -77
  613. package/public/spice-console/network/reassemblerfactory.js +39 -39
  614. package/public/spice-console/network/sizedefiner.js +86 -86
  615. package/public/spice-console/network/socket.js +120 -120
  616. package/public/spice-console/network/socketqueue.js +95 -95
  617. package/public/spice-console/network/websocketwrapper.js +75 -75
  618. package/public/spice-console/process/busprocess.js +309 -309
  619. package/public/spice-console/process/cursorprocess.js +110 -110
  620. package/public/spice-console/process/displaypreprocess.js +152 -152
  621. package/public/spice-console/process/displayprocess.js +210 -210
  622. package/public/spice-console/process/inputprocess.js +204 -204
  623. package/public/spice-console/process/mainprocess.js +78 -78
  624. package/public/spice-console/process/playbackprocess.js +233 -233
  625. package/public/spice-console/run.js +181 -181
  626. package/public/spice-console/spiceobjects/generated/protocol.js +537 -537
  627. package/public/spice-console/spiceobjects/spiceobjects.js +3474 -3474
  628. package/public/spice-console/swcanvas/swcanvas.js +82 -82
  629. package/public/spice-console/tools/generate.php +269 -269
  630. package/public/spice-console/tools/generateKeyboardLayout.php +63 -63
  631. package/public/spice-console/tools/generateSpiceObject.php +81 -81
  632. package/tsconfig.json +4 -4
@@ -1,578 +1,578 @@
1
- /*
2
- Copyright (c) 2016 eyeOS
3
-
4
- This file is part of Open365.
5
-
6
- Open365 is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU Affero General Public License as
8
- published by the Free Software Foundation, either version 3 of the
9
- License, or (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU Affero General Public License for more details.
15
-
16
- You should have received a copy of the GNU Affero General Public License
17
- along with this program. If not, see <http://www.gnu.org/licenses/>.
18
- */
19
-
20
- // Copyright (c) 2005 Tom Wu
21
- // All Rights Reserved.
22
- // See "LICENSE" for details.
23
-
24
- // Basic JavaScript BN library - subset useful for RSA encryption.
25
-
26
- // Bits per digit
27
- var dbits;
28
-
29
- // JavaScript engine analysis
30
- var canary = 0xdeadbeefcafe;
31
- var j_lm = ((canary&0xffffff)==0xefcafe);
32
-
33
- // (public) Constructor
34
- function encryptionBigInteger(a,b,c) {
35
- if(a != null)
36
- if("number" == typeof a) this.fromNumber(a,b,c);
37
- else if(b == null && "string" != typeof a) this.fromString(a,256);
38
- else this.fromString(a,b);
39
- }
40
-
41
- // return new, unset encryptionBigInteger
42
- function nbi() { return new encryptionBigInteger(null); }
43
-
44
- // am: Compute w_j += (x*this_i), propagate carries,
45
- // c is initial carry, returns final carry.
46
- // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
47
- // We need to select the fastest one that works in this environment.
48
-
49
- // am1: use a single mult and divide to get the high bits,
50
- // max digit bits should be 26 because
51
- // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
52
- function am1(i,x,w,j,c,n) {
53
- while(--n >= 0) {
54
- var v = x*this[i++]+w[j]+c;
55
- c = Math.floor(v/0x4000000);
56
- w[j++] = v&0x3ffffff;
57
- }
58
- return c;
59
- }
60
- // am2 avoids a big mult-and-extract completely.
61
- // Max digit bits should be <= 30 because we do bitwise ops
62
- // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
63
- function am2(i,x,w,j,c,n) {
64
- var xl = x&0x7fff, xh = x>>15;
65
- while(--n >= 0) {
66
- var l = this[i]&0x7fff;
67
- var h = this[i++]>>15;
68
- var m = xh*l+h*xl;
69
- l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
70
- c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
71
- w[j++] = l&0x3fffffff;
72
- }
73
- return c;
74
- }
75
- // Alternately, set max digit bits to 28 since some
76
- // browsers slow down when dealing with 32-bit numbers.
77
- function am3(i,x,w,j,c,n) {
78
- var xl = x&0x3fff, xh = x>>14;
79
- while(--n >= 0) {
80
- var l = this[i]&0x3fff;
81
- var h = this[i++]>>14;
82
- var m = xh*l+h*xl;
83
- l = xl*l+((m&0x3fff)<<14)+w[j]+c;
84
- c = (l>>28)+(m>>14)+xh*h;
85
- w[j++] = l&0xfffffff;
86
- }
87
- return c;
88
- }
89
- if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
90
- encryptionBigInteger.prototype.am = am2;
91
- dbits = 30;
92
- }
93
- else if(j_lm && (navigator.appName != "Netscape")) {
94
- encryptionBigInteger.prototype.am = am1;
95
- dbits = 26;
96
- }
97
- else { // Mozilla/Netscape seems to prefer am3
98
- encryptionBigInteger.prototype.am = am3;
99
- dbits = 28;
100
- }
101
-
102
- encryptionBigInteger.prototype.DB = dbits;
103
- encryptionBigInteger.prototype.DM = ((1<<dbits)-1);
104
- encryptionBigInteger.prototype.DV = (1<<dbits);
105
-
106
- var BI_FP = 52;
107
- encryptionBigInteger.prototype.FV = Math.pow(2,BI_FP);
108
- encryptionBigInteger.prototype.F1 = BI_FP-dbits;
109
- encryptionBigInteger.prototype.F2 = 2*dbits-BI_FP;
110
-
111
- // Digit conversions
112
- var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
113
- var BI_RC = new Array();
114
- var rr,vv;
115
- rr = "0".charCodeAt(0);
116
- for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
117
- rr = "a".charCodeAt(0);
118
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
119
- rr = "A".charCodeAt(0);
120
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
121
-
122
- function int2char(n) { return BI_RM.charAt(n); }
123
- function intAt(s,i) {
124
- var c = BI_RC[s.charCodeAt(i)];
125
- return (c==null)?-1:c;
126
- }
127
-
128
- // (protected) copy this to r
129
- function bnpCopyTo(r) {
130
- for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
131
- r.t = this.t;
132
- r.s = this.s;
133
- }
134
-
135
- // (protected) set from integer value x, -DV <= x < DV
136
- function bnpFromInt(x) {
137
- this.t = 1;
138
- this.s = (x<0)?-1:0;
139
- if(x > 0) this[0] = x;
140
- else if(x < -1) this[0] = x+DV;
141
- else this.t = 0;
142
- }
143
-
144
- // return bigint initialized to value
145
- function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
146
-
147
- // (protected) set from string and radix
148
- function bnpFromString(s,b) {
149
- var k;
150
- if(b == 16) k = 4;
151
- else if(b == 8) k = 3;
152
- else if(b == 256) k = 8; // byte array
153
- else if(b == 2) k = 1;
154
- else if(b == 32) k = 5;
155
- else if(b == 4) k = 2;
156
- else { this.fromRadix(s,b); return; }
157
- this.t = 0;
158
- this.s = 0;
159
- var i = s.length, mi = false, sh = 0;
160
- while(--i >= 0) {
161
- var x = (k==8)?s[i]&0xff:intAt(s,i);
162
- if(x < 0) {
163
- if(s.charAt(i) == "-") mi = true;
164
- continue;
165
- }
166
- mi = false;
167
- if(sh == 0)
168
- this[this.t++] = x;
169
- else if(sh+k > this.DB) {
170
- this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
171
- this[this.t++] = (x>>(this.DB-sh));
172
- }
173
- else
174
- this[this.t-1] |= x<<sh;
175
- sh += k;
176
- if(sh >= this.DB) sh -= this.DB;
177
- }
178
- if(k == 8 && (s[0]&0x80) != 0) {
179
- this.s = -1;
180
- if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
181
- }
182
- this.clamp();
183
- if(mi) encryptionBigInteger.ZERO.subTo(this,this);
184
- }
185
-
186
- // (protected) clamp off excess high words
187
- function bnpClamp() {
188
- var c = this.s&this.DM;
189
- while(this.t > 0 && this[this.t-1] == c) --this.t;
190
- }
191
-
192
- // (public) return string representation in given radix
193
- function bnToString(b) {
194
- if(this.s < 0) return "-"+this.negate().toString(b);
195
- var k;
196
- if(b == 16) k = 4;
197
- else if(b == 8) k = 3;
198
- else if(b == 2) k = 1;
199
- else if(b == 32) k = 5;
200
- else if(b == 4) k = 2;
201
- else return this.toRadix(b);
202
- var km = (1<<k)-1, d, m = false, r = "", i = this.t;
203
- var p = this.DB-(i*this.DB)%k;
204
- if(i-- > 0) {
205
- if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
206
- while(i >= 0) {
207
- if(p < k) {
208
- d = (this[i]&((1<<p)-1))<<(k-p);
209
- d |= this[--i]>>(p+=this.DB-k);
210
- }
211
- else {
212
- d = (this[i]>>(p-=k))&km;
213
- if(p <= 0) { p += this.DB; --i; }
214
- }
215
- if(d > 0) m = true;
216
- if(m) r += int2char(d);
217
- }
218
- }
219
- return m?r:"0";
220
- }
221
-
222
- // (public) -this
223
- function bnNegate() { var r = nbi(); encryptionBigInteger.ZERO.subTo(this,r); return r; }
224
-
225
- // (public) |this|
226
- function bnAbs() { return (this.s<0)?this.negate():this; }
227
-
228
- // (public) return + if this > a, - if this < a, 0 if equal
229
- function bnCompareTo(a) {
230
- var r = this.s-a.s;
231
- if(r != 0) return r;
232
- var i = this.t;
233
- r = i-a.t;
234
- if(r != 0) return (this.s<0)?-r:r;
235
- while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
236
- return 0;
237
- }
238
-
239
- // returns bit length of the integer x
240
- function nbits(x) {
241
- var r = 1, t;
242
- if((t=x>>>16) != 0) { x = t; r += 16; }
243
- if((t=x>>8) != 0) { x = t; r += 8; }
244
- if((t=x>>4) != 0) { x = t; r += 4; }
245
- if((t=x>>2) != 0) { x = t; r += 2; }
246
- if((t=x>>1) != 0) { x = t; r += 1; }
247
- return r;
248
- }
249
-
250
- // (public) return the number of bits in "this"
251
- function bnBitLength() {
252
- if(this.t <= 0) return 0;
253
- return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
254
- }
255
-
256
- // (protected) r = this << n*DB
257
- function bnpDLShiftTo(n,r) {
258
- var i;
259
- for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
260
- for(i = n-1; i >= 0; --i) r[i] = 0;
261
- r.t = this.t+n;
262
- r.s = this.s;
263
- }
264
-
265
- // (protected) r = this >> n*DB
266
- function bnpDRShiftTo(n,r) {
267
- for(var i = n; i < this.t; ++i) r[i-n] = this[i];
268
- r.t = Math.max(this.t-n,0);
269
- r.s = this.s;
270
- }
271
-
272
- // (protected) r = this << n
273
- function bnpLShiftTo(n,r) {
274
- var bs = n%this.DB;
275
- var cbs = this.DB-bs;
276
- var bm = (1<<cbs)-1;
277
- var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
278
- for(i = this.t-1; i >= 0; --i) {
279
- r[i+ds+1] = (this[i]>>cbs)|c;
280
- c = (this[i]&bm)<<bs;
281
- }
282
- for(i = ds-1; i >= 0; --i) r[i] = 0;
283
- r[ds] = c;
284
- r.t = this.t+ds+1;
285
- r.s = this.s;
286
- r.clamp();
287
- }
288
-
289
- // (protected) r = this >> n
290
- function bnpRShiftTo(n,r) {
291
- r.s = this.s;
292
- var ds = Math.floor(n/this.DB);
293
- if(ds >= this.t) { r.t = 0; return; }
294
- var bs = n%this.DB;
295
- var cbs = this.DB-bs;
296
- var bm = (1<<bs)-1;
297
- r[0] = this[ds]>>bs;
298
- for(var i = ds+1; i < this.t; ++i) {
299
- r[i-ds-1] |= (this[i]&bm)<<cbs;
300
- r[i-ds] = this[i]>>bs;
301
- }
302
- if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
303
- r.t = this.t-ds;
304
- r.clamp();
305
- }
306
-
307
- // (protected) r = this - a
308
- function bnpSubTo(a,r) {
309
- var i = 0, c = 0, m = Math.min(a.t,this.t);
310
- while(i < m) {
311
- c += this[i]-a[i];
312
- r[i++] = c&this.DM;
313
- c >>= this.DB;
314
- }
315
- if(a.t < this.t) {
316
- c -= a.s;
317
- while(i < this.t) {
318
- c += this[i];
319
- r[i++] = c&this.DM;
320
- c >>= this.DB;
321
- }
322
- c += this.s;
323
- }
324
- else {
325
- c += this.s;
326
- while(i < a.t) {
327
- c -= a[i];
328
- r[i++] = c&this.DM;
329
- c >>= this.DB;
330
- }
331
- c -= a.s;
332
- }
333
- r.s = (c<0)?-1:0;
334
- if(c < -1) r[i++] = this.DV+c;
335
- else if(c > 0) r[i++] = c;
336
- r.t = i;
337
- r.clamp();
338
- }
339
-
340
- // (protected) r = this * a, r != this,a (HAC 14.12)
341
- // "this" should be the larger one if appropriate.
342
- function bnpMultiplyTo(a,r) {
343
- var x = this.abs(), y = a.abs();
344
- var i = x.t;
345
- r.t = i+y.t;
346
- while(--i >= 0) r[i] = 0;
347
- for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
348
- r.s = 0;
349
- r.clamp();
350
- if(this.s != a.s) encryptionBigInteger.ZERO.subTo(r,r);
351
- }
352
-
353
- // (protected) r = this^2, r != this (HAC 14.16)
354
- function bnpSquareTo(r) {
355
- var x = this.abs();
356
- var i = r.t = 2*x.t;
357
- while(--i >= 0) r[i] = 0;
358
- for(i = 0; i < x.t-1; ++i) {
359
- var c = x.am(i,x[i],r,2*i,0,1);
360
- if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
361
- r[i+x.t] -= x.DV;
362
- r[i+x.t+1] = 1;
363
- }
364
- }
365
- if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
366
- r.s = 0;
367
- r.clamp();
368
- }
369
-
370
- // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
371
- // r != q, this != m. q or r may be null.
372
- function bnpDivRemTo(m,q,r) {
373
- var pm = m.abs();
374
- if(pm.t <= 0) return;
375
- var pt = this.abs();
376
- if(pt.t < pm.t) {
377
- if(q != null) q.fromInt(0);
378
- if(r != null) this.copyTo(r);
379
- return;
380
- }
381
- if(r == null) r = nbi();
382
- var y = nbi(), ts = this.s, ms = m.s;
383
- var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
384
- if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
385
- else { pm.copyTo(y); pt.copyTo(r); }
386
- var ys = y.t;
387
- var y0 = y[ys-1];
388
- if(y0 == 0) return;
389
- var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
390
- var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
391
- var i = r.t, j = i-ys, t = (q==null)?nbi():q;
392
- y.dlShiftTo(j,t);
393
- if(r.compareTo(t) >= 0) {
394
- r[r.t++] = 1;
395
- r.subTo(t,r);
396
- }
397
- encryptionBigInteger.ONE.dlShiftTo(ys,t);
398
- t.subTo(y,y); // "negative" y so we can replace sub with am later
399
- while(y.t < ys) y[y.t++] = 0;
400
- while(--j >= 0) {
401
- // Estimate quotient digit
402
- var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
403
- if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
404
- y.dlShiftTo(j,t);
405
- r.subTo(t,r);
406
- while(r[i] < --qd) r.subTo(t,r);
407
- }
408
- }
409
- if(q != null) {
410
- r.drShiftTo(ys,q);
411
- if(ts != ms) encryptionBigInteger.ZERO.subTo(q,q);
412
- }
413
- r.t = ys;
414
- r.clamp();
415
- if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
416
- if(ts < 0) encryptionBigInteger.ZERO.subTo(r,r);
417
- }
418
-
419
- // (public) this mod a
420
- function bnMod(a) {
421
- var r = nbi();
422
- this.abs().divRemTo(a,null,r);
423
- if(this.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) a.subTo(r,r);
424
- return r;
425
- }
426
-
427
- // Modular reduction using "classic" algorithm
428
- function Classic(m) { this.m = m; }
429
- function cConvert(x) {
430
- if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
431
- else return x;
432
- }
433
- function cRevert(x) { return x; }
434
- function cReduce(x) { x.divRemTo(this.m,null,x); }
435
- function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
436
- function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
437
-
438
- Classic.prototype.convert = cConvert;
439
- Classic.prototype.revert = cRevert;
440
- Classic.prototype.reduce = cReduce;
441
- Classic.prototype.mulTo = cMulTo;
442
- Classic.prototype.sqrTo = cSqrTo;
443
-
444
- // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
445
- // justification:
446
- // xy == 1 (mod m)
447
- // xy = 1+km
448
- // xy(2-xy) = (1+km)(1-km)
449
- // x[y(2-xy)] = 1-k^2m^2
450
- // x[y(2-xy)] == 1 (mod m^2)
451
- // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
452
- // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
453
- // JS multiply "overflows" differently from C/C++, so care is needed here.
454
- function bnpInvDigit() {
455
- if(this.t < 1) return 0;
456
- var x = this[0];
457
- if((x&1) == 0) return 0;
458
- var y = x&3; // y == 1/x mod 2^2
459
- y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
460
- y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
461
- y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
462
- // last step - calculate inverse mod DV directly;
463
- // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
464
- y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
465
- // we really want the negative inverse, and -DV < y < DV
466
- return (y>0)?this.DV-y:-y;
467
- }
468
-
469
- // Montgomery reduction
470
- function Montgomery(m) {
471
- this.m = m;
472
- this.mp = m.invDigit();
473
- this.mpl = this.mp&0x7fff;
474
- this.mph = this.mp>>15;
475
- this.um = (1<<(m.DB-15))-1;
476
- this.mt2 = 2*m.t;
477
- }
478
-
479
- // xR mod m
480
- function montConvert(x) {
481
- var r = nbi();
482
- x.abs().dlShiftTo(this.m.t,r);
483
- r.divRemTo(this.m,null,r);
484
- if(x.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) this.m.subTo(r,r);
485
- return r;
486
- }
487
-
488
- // x/R mod m
489
- function montRevert(x) {
490
- var r = nbi();
491
- x.copyTo(r);
492
- this.reduce(r);
493
- return r;
494
- }
495
-
496
- // x = x/R mod m (HAC 14.32)
497
- function montReduce(x) {
498
- while(x.t <= this.mt2) // pad x so am has enough room later
499
- x[x.t++] = 0;
500
- for(var i = 0; i < this.m.t; ++i) {
501
- // faster way of calculating u0 = x[i]*mp mod DV
502
- var j = x[i]&0x7fff;
503
- var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
504
- // use am to combine the multiply-shift-add into one call
505
- j = i+this.m.t;
506
- x[j] += this.m.am(0,u0,x,i,0,this.m.t);
507
- // propagate carry
508
- while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
509
- }
510
- x.clamp();
511
- x.drShiftTo(this.m.t,x);
512
- if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
513
- }
514
-
515
- // r = "x^2/R mod m"; x != r
516
- function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
517
-
518
- // r = "xy/R mod m"; x,y != r
519
- function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
520
-
521
- Montgomery.prototype.convert = montConvert;
522
- Montgomery.prototype.revert = montRevert;
523
- Montgomery.prototype.reduce = montReduce;
524
- Montgomery.prototype.mulTo = montMulTo;
525
- Montgomery.prototype.sqrTo = montSqrTo;
526
-
527
- // (protected) true iff this is even
528
- function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
529
-
530
- // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
531
- function bnpExp(e,z) {
532
- if(e > 0xffffffff || e < 1) return encryptionBigInteger.ONE;
533
- var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
534
- g.copyTo(r);
535
- while(--i >= 0) {
536
- z.sqrTo(r,r2);
537
- if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
538
- else { var t = r; r = r2; r2 = t; }
539
- }
540
- return z.revert(r);
541
- }
542
-
543
- // (public) this^e % m, 0 <= e < 2^32
544
- function bnModPowInt(e,m) {
545
- var z;
546
- if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
547
- return this.exp(e,z);
548
- }
549
-
550
- // protected
551
- encryptionBigInteger.prototype.copyTo = bnpCopyTo;
552
- encryptionBigInteger.prototype.fromInt = bnpFromInt;
553
- encryptionBigInteger.prototype.fromString = bnpFromString;
554
- encryptionBigInteger.prototype.clamp = bnpClamp;
555
- encryptionBigInteger.prototype.dlShiftTo = bnpDLShiftTo;
556
- encryptionBigInteger.prototype.drShiftTo = bnpDRShiftTo;
557
- encryptionBigInteger.prototype.lShiftTo = bnpLShiftTo;
558
- encryptionBigInteger.prototype.rShiftTo = bnpRShiftTo;
559
- encryptionBigInteger.prototype.subTo = bnpSubTo;
560
- encryptionBigInteger.prototype.multiplyTo = bnpMultiplyTo;
561
- encryptionBigInteger.prototype.squareTo = bnpSquareTo;
562
- encryptionBigInteger.prototype.divRemTo = bnpDivRemTo;
563
- encryptionBigInteger.prototype.invDigit = bnpInvDigit;
564
- encryptionBigInteger.prototype.isEven = bnpIsEven;
565
- encryptionBigInteger.prototype.exp = bnpExp;
566
-
567
- // public
568
- encryptionBigInteger.prototype.toString = bnToString;
569
- encryptionBigInteger.prototype.negate = bnNegate;
570
- encryptionBigInteger.prototype.abs = bnAbs;
571
- encryptionBigInteger.prototype.compareTo = bnCompareTo;
572
- encryptionBigInteger.prototype.bitLength = bnBitLength;
573
- encryptionBigInteger.prototype.mod = bnMod;
574
- encryptionBigInteger.prototype.modPowInt = bnModPowInt;
575
-
576
- // "constants"
577
- encryptionBigInteger.ZERO = nbv(0);
578
- encryptionBigInteger.ONE = nbv(1);
1
+ /*
2
+ Copyright (c) 2016 eyeOS
3
+
4
+ This file is part of Open365.
5
+
6
+ Open365 is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU Affero General Public License as
8
+ published by the Free Software Foundation, either version 3 of the
9
+ License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU Affero General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Affero General Public License
17
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
18
+ */
19
+
20
+ // Copyright (c) 2005 Tom Wu
21
+ // All Rights Reserved.
22
+ // See "LICENSE" for details.
23
+
24
+ // Basic JavaScript BN library - subset useful for RSA encryption.
25
+
26
+ // Bits per digit
27
+ var dbits;
28
+
29
+ // JavaScript engine analysis
30
+ var canary = 0xdeadbeefcafe;
31
+ var j_lm = ((canary&0xffffff)==0xefcafe);
32
+
33
+ // (public) Constructor
34
+ function encryptionBigInteger(a,b,c) {
35
+ if(a != null)
36
+ if("number" == typeof a) this.fromNumber(a,b,c);
37
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
38
+ else this.fromString(a,b);
39
+ }
40
+
41
+ // return new, unset encryptionBigInteger
42
+ function nbi() { return new encryptionBigInteger(null); }
43
+
44
+ // am: Compute w_j += (x*this_i), propagate carries,
45
+ // c is initial carry, returns final carry.
46
+ // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
47
+ // We need to select the fastest one that works in this environment.
48
+
49
+ // am1: use a single mult and divide to get the high bits,
50
+ // max digit bits should be 26 because
51
+ // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
52
+ function am1(i,x,w,j,c,n) {
53
+ while(--n >= 0) {
54
+ var v = x*this[i++]+w[j]+c;
55
+ c = Math.floor(v/0x4000000);
56
+ w[j++] = v&0x3ffffff;
57
+ }
58
+ return c;
59
+ }
60
+ // am2 avoids a big mult-and-extract completely.
61
+ // Max digit bits should be <= 30 because we do bitwise ops
62
+ // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
63
+ function am2(i,x,w,j,c,n) {
64
+ var xl = x&0x7fff, xh = x>>15;
65
+ while(--n >= 0) {
66
+ var l = this[i]&0x7fff;
67
+ var h = this[i++]>>15;
68
+ var m = xh*l+h*xl;
69
+ l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
70
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
71
+ w[j++] = l&0x3fffffff;
72
+ }
73
+ return c;
74
+ }
75
+ // Alternately, set max digit bits to 28 since some
76
+ // browsers slow down when dealing with 32-bit numbers.
77
+ function am3(i,x,w,j,c,n) {
78
+ var xl = x&0x3fff, xh = x>>14;
79
+ while(--n >= 0) {
80
+ var l = this[i]&0x3fff;
81
+ var h = this[i++]>>14;
82
+ var m = xh*l+h*xl;
83
+ l = xl*l+((m&0x3fff)<<14)+w[j]+c;
84
+ c = (l>>28)+(m>>14)+xh*h;
85
+ w[j++] = l&0xfffffff;
86
+ }
87
+ return c;
88
+ }
89
+ if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
90
+ encryptionBigInteger.prototype.am = am2;
91
+ dbits = 30;
92
+ }
93
+ else if(j_lm && (navigator.appName != "Netscape")) {
94
+ encryptionBigInteger.prototype.am = am1;
95
+ dbits = 26;
96
+ }
97
+ else { // Mozilla/Netscape seems to prefer am3
98
+ encryptionBigInteger.prototype.am = am3;
99
+ dbits = 28;
100
+ }
101
+
102
+ encryptionBigInteger.prototype.DB = dbits;
103
+ encryptionBigInteger.prototype.DM = ((1<<dbits)-1);
104
+ encryptionBigInteger.prototype.DV = (1<<dbits);
105
+
106
+ var BI_FP = 52;
107
+ encryptionBigInteger.prototype.FV = Math.pow(2,BI_FP);
108
+ encryptionBigInteger.prototype.F1 = BI_FP-dbits;
109
+ encryptionBigInteger.prototype.F2 = 2*dbits-BI_FP;
110
+
111
+ // Digit conversions
112
+ var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
113
+ var BI_RC = new Array();
114
+ var rr,vv;
115
+ rr = "0".charCodeAt(0);
116
+ for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
117
+ rr = "a".charCodeAt(0);
118
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
119
+ rr = "A".charCodeAt(0);
120
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
121
+
122
+ function int2char(n) { return BI_RM.charAt(n); }
123
+ function intAt(s,i) {
124
+ var c = BI_RC[s.charCodeAt(i)];
125
+ return (c==null)?-1:c;
126
+ }
127
+
128
+ // (protected) copy this to r
129
+ function bnpCopyTo(r) {
130
+ for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
131
+ r.t = this.t;
132
+ r.s = this.s;
133
+ }
134
+
135
+ // (protected) set from integer value x, -DV <= x < DV
136
+ function bnpFromInt(x) {
137
+ this.t = 1;
138
+ this.s = (x<0)?-1:0;
139
+ if(x > 0) this[0] = x;
140
+ else if(x < -1) this[0] = x+DV;
141
+ else this.t = 0;
142
+ }
143
+
144
+ // return bigint initialized to value
145
+ function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
146
+
147
+ // (protected) set from string and radix
148
+ function bnpFromString(s,b) {
149
+ var k;
150
+ if(b == 16) k = 4;
151
+ else if(b == 8) k = 3;
152
+ else if(b == 256) k = 8; // byte array
153
+ else if(b == 2) k = 1;
154
+ else if(b == 32) k = 5;
155
+ else if(b == 4) k = 2;
156
+ else { this.fromRadix(s,b); return; }
157
+ this.t = 0;
158
+ this.s = 0;
159
+ var i = s.length, mi = false, sh = 0;
160
+ while(--i >= 0) {
161
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
162
+ if(x < 0) {
163
+ if(s.charAt(i) == "-") mi = true;
164
+ continue;
165
+ }
166
+ mi = false;
167
+ if(sh == 0)
168
+ this[this.t++] = x;
169
+ else if(sh+k > this.DB) {
170
+ this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
171
+ this[this.t++] = (x>>(this.DB-sh));
172
+ }
173
+ else
174
+ this[this.t-1] |= x<<sh;
175
+ sh += k;
176
+ if(sh >= this.DB) sh -= this.DB;
177
+ }
178
+ if(k == 8 && (s[0]&0x80) != 0) {
179
+ this.s = -1;
180
+ if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
181
+ }
182
+ this.clamp();
183
+ if(mi) encryptionBigInteger.ZERO.subTo(this,this);
184
+ }
185
+
186
+ // (protected) clamp off excess high words
187
+ function bnpClamp() {
188
+ var c = this.s&this.DM;
189
+ while(this.t > 0 && this[this.t-1] == c) --this.t;
190
+ }
191
+
192
+ // (public) return string representation in given radix
193
+ function bnToString(b) {
194
+ if(this.s < 0) return "-"+this.negate().toString(b);
195
+ var k;
196
+ if(b == 16) k = 4;
197
+ else if(b == 8) k = 3;
198
+ else if(b == 2) k = 1;
199
+ else if(b == 32) k = 5;
200
+ else if(b == 4) k = 2;
201
+ else return this.toRadix(b);
202
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
203
+ var p = this.DB-(i*this.DB)%k;
204
+ if(i-- > 0) {
205
+ if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
206
+ while(i >= 0) {
207
+ if(p < k) {
208
+ d = (this[i]&((1<<p)-1))<<(k-p);
209
+ d |= this[--i]>>(p+=this.DB-k);
210
+ }
211
+ else {
212
+ d = (this[i]>>(p-=k))&km;
213
+ if(p <= 0) { p += this.DB; --i; }
214
+ }
215
+ if(d > 0) m = true;
216
+ if(m) r += int2char(d);
217
+ }
218
+ }
219
+ return m?r:"0";
220
+ }
221
+
222
+ // (public) -this
223
+ function bnNegate() { var r = nbi(); encryptionBigInteger.ZERO.subTo(this,r); return r; }
224
+
225
+ // (public) |this|
226
+ function bnAbs() { return (this.s<0)?this.negate():this; }
227
+
228
+ // (public) return + if this > a, - if this < a, 0 if equal
229
+ function bnCompareTo(a) {
230
+ var r = this.s-a.s;
231
+ if(r != 0) return r;
232
+ var i = this.t;
233
+ r = i-a.t;
234
+ if(r != 0) return (this.s<0)?-r:r;
235
+ while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
236
+ return 0;
237
+ }
238
+
239
+ // returns bit length of the integer x
240
+ function nbits(x) {
241
+ var r = 1, t;
242
+ if((t=x>>>16) != 0) { x = t; r += 16; }
243
+ if((t=x>>8) != 0) { x = t; r += 8; }
244
+ if((t=x>>4) != 0) { x = t; r += 4; }
245
+ if((t=x>>2) != 0) { x = t; r += 2; }
246
+ if((t=x>>1) != 0) { x = t; r += 1; }
247
+ return r;
248
+ }
249
+
250
+ // (public) return the number of bits in "this"
251
+ function bnBitLength() {
252
+ if(this.t <= 0) return 0;
253
+ return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
254
+ }
255
+
256
+ // (protected) r = this << n*DB
257
+ function bnpDLShiftTo(n,r) {
258
+ var i;
259
+ for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
260
+ for(i = n-1; i >= 0; --i) r[i] = 0;
261
+ r.t = this.t+n;
262
+ r.s = this.s;
263
+ }
264
+
265
+ // (protected) r = this >> n*DB
266
+ function bnpDRShiftTo(n,r) {
267
+ for(var i = n; i < this.t; ++i) r[i-n] = this[i];
268
+ r.t = Math.max(this.t-n,0);
269
+ r.s = this.s;
270
+ }
271
+
272
+ // (protected) r = this << n
273
+ function bnpLShiftTo(n,r) {
274
+ var bs = n%this.DB;
275
+ var cbs = this.DB-bs;
276
+ var bm = (1<<cbs)-1;
277
+ var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
278
+ for(i = this.t-1; i >= 0; --i) {
279
+ r[i+ds+1] = (this[i]>>cbs)|c;
280
+ c = (this[i]&bm)<<bs;
281
+ }
282
+ for(i = ds-1; i >= 0; --i) r[i] = 0;
283
+ r[ds] = c;
284
+ r.t = this.t+ds+1;
285
+ r.s = this.s;
286
+ r.clamp();
287
+ }
288
+
289
+ // (protected) r = this >> n
290
+ function bnpRShiftTo(n,r) {
291
+ r.s = this.s;
292
+ var ds = Math.floor(n/this.DB);
293
+ if(ds >= this.t) { r.t = 0; return; }
294
+ var bs = n%this.DB;
295
+ var cbs = this.DB-bs;
296
+ var bm = (1<<bs)-1;
297
+ r[0] = this[ds]>>bs;
298
+ for(var i = ds+1; i < this.t; ++i) {
299
+ r[i-ds-1] |= (this[i]&bm)<<cbs;
300
+ r[i-ds] = this[i]>>bs;
301
+ }
302
+ if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
303
+ r.t = this.t-ds;
304
+ r.clamp();
305
+ }
306
+
307
+ // (protected) r = this - a
308
+ function bnpSubTo(a,r) {
309
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
310
+ while(i < m) {
311
+ c += this[i]-a[i];
312
+ r[i++] = c&this.DM;
313
+ c >>= this.DB;
314
+ }
315
+ if(a.t < this.t) {
316
+ c -= a.s;
317
+ while(i < this.t) {
318
+ c += this[i];
319
+ r[i++] = c&this.DM;
320
+ c >>= this.DB;
321
+ }
322
+ c += this.s;
323
+ }
324
+ else {
325
+ c += this.s;
326
+ while(i < a.t) {
327
+ c -= a[i];
328
+ r[i++] = c&this.DM;
329
+ c >>= this.DB;
330
+ }
331
+ c -= a.s;
332
+ }
333
+ r.s = (c<0)?-1:0;
334
+ if(c < -1) r[i++] = this.DV+c;
335
+ else if(c > 0) r[i++] = c;
336
+ r.t = i;
337
+ r.clamp();
338
+ }
339
+
340
+ // (protected) r = this * a, r != this,a (HAC 14.12)
341
+ // "this" should be the larger one if appropriate.
342
+ function bnpMultiplyTo(a,r) {
343
+ var x = this.abs(), y = a.abs();
344
+ var i = x.t;
345
+ r.t = i+y.t;
346
+ while(--i >= 0) r[i] = 0;
347
+ for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
348
+ r.s = 0;
349
+ r.clamp();
350
+ if(this.s != a.s) encryptionBigInteger.ZERO.subTo(r,r);
351
+ }
352
+
353
+ // (protected) r = this^2, r != this (HAC 14.16)
354
+ function bnpSquareTo(r) {
355
+ var x = this.abs();
356
+ var i = r.t = 2*x.t;
357
+ while(--i >= 0) r[i] = 0;
358
+ for(i = 0; i < x.t-1; ++i) {
359
+ var c = x.am(i,x[i],r,2*i,0,1);
360
+ if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
361
+ r[i+x.t] -= x.DV;
362
+ r[i+x.t+1] = 1;
363
+ }
364
+ }
365
+ if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
366
+ r.s = 0;
367
+ r.clamp();
368
+ }
369
+
370
+ // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
371
+ // r != q, this != m. q or r may be null.
372
+ function bnpDivRemTo(m,q,r) {
373
+ var pm = m.abs();
374
+ if(pm.t <= 0) return;
375
+ var pt = this.abs();
376
+ if(pt.t < pm.t) {
377
+ if(q != null) q.fromInt(0);
378
+ if(r != null) this.copyTo(r);
379
+ return;
380
+ }
381
+ if(r == null) r = nbi();
382
+ var y = nbi(), ts = this.s, ms = m.s;
383
+ var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
384
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
385
+ else { pm.copyTo(y); pt.copyTo(r); }
386
+ var ys = y.t;
387
+ var y0 = y[ys-1];
388
+ if(y0 == 0) return;
389
+ var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
390
+ var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
391
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
392
+ y.dlShiftTo(j,t);
393
+ if(r.compareTo(t) >= 0) {
394
+ r[r.t++] = 1;
395
+ r.subTo(t,r);
396
+ }
397
+ encryptionBigInteger.ONE.dlShiftTo(ys,t);
398
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
399
+ while(y.t < ys) y[y.t++] = 0;
400
+ while(--j >= 0) {
401
+ // Estimate quotient digit
402
+ var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
403
+ if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
404
+ y.dlShiftTo(j,t);
405
+ r.subTo(t,r);
406
+ while(r[i] < --qd) r.subTo(t,r);
407
+ }
408
+ }
409
+ if(q != null) {
410
+ r.drShiftTo(ys,q);
411
+ if(ts != ms) encryptionBigInteger.ZERO.subTo(q,q);
412
+ }
413
+ r.t = ys;
414
+ r.clamp();
415
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
416
+ if(ts < 0) encryptionBigInteger.ZERO.subTo(r,r);
417
+ }
418
+
419
+ // (public) this mod a
420
+ function bnMod(a) {
421
+ var r = nbi();
422
+ this.abs().divRemTo(a,null,r);
423
+ if(this.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) a.subTo(r,r);
424
+ return r;
425
+ }
426
+
427
+ // Modular reduction using "classic" algorithm
428
+ function Classic(m) { this.m = m; }
429
+ function cConvert(x) {
430
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
431
+ else return x;
432
+ }
433
+ function cRevert(x) { return x; }
434
+ function cReduce(x) { x.divRemTo(this.m,null,x); }
435
+ function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
436
+ function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
437
+
438
+ Classic.prototype.convert = cConvert;
439
+ Classic.prototype.revert = cRevert;
440
+ Classic.prototype.reduce = cReduce;
441
+ Classic.prototype.mulTo = cMulTo;
442
+ Classic.prototype.sqrTo = cSqrTo;
443
+
444
+ // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
445
+ // justification:
446
+ // xy == 1 (mod m)
447
+ // xy = 1+km
448
+ // xy(2-xy) = (1+km)(1-km)
449
+ // x[y(2-xy)] = 1-k^2m^2
450
+ // x[y(2-xy)] == 1 (mod m^2)
451
+ // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
452
+ // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
453
+ // JS multiply "overflows" differently from C/C++, so care is needed here.
454
+ function bnpInvDigit() {
455
+ if(this.t < 1) return 0;
456
+ var x = this[0];
457
+ if((x&1) == 0) return 0;
458
+ var y = x&3; // y == 1/x mod 2^2
459
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
460
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
461
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
462
+ // last step - calculate inverse mod DV directly;
463
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
464
+ y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
465
+ // we really want the negative inverse, and -DV < y < DV
466
+ return (y>0)?this.DV-y:-y;
467
+ }
468
+
469
+ // Montgomery reduction
470
+ function Montgomery(m) {
471
+ this.m = m;
472
+ this.mp = m.invDigit();
473
+ this.mpl = this.mp&0x7fff;
474
+ this.mph = this.mp>>15;
475
+ this.um = (1<<(m.DB-15))-1;
476
+ this.mt2 = 2*m.t;
477
+ }
478
+
479
+ // xR mod m
480
+ function montConvert(x) {
481
+ var r = nbi();
482
+ x.abs().dlShiftTo(this.m.t,r);
483
+ r.divRemTo(this.m,null,r);
484
+ if(x.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) this.m.subTo(r,r);
485
+ return r;
486
+ }
487
+
488
+ // x/R mod m
489
+ function montRevert(x) {
490
+ var r = nbi();
491
+ x.copyTo(r);
492
+ this.reduce(r);
493
+ return r;
494
+ }
495
+
496
+ // x = x/R mod m (HAC 14.32)
497
+ function montReduce(x) {
498
+ while(x.t <= this.mt2) // pad x so am has enough room later
499
+ x[x.t++] = 0;
500
+ for(var i = 0; i < this.m.t; ++i) {
501
+ // faster way of calculating u0 = x[i]*mp mod DV
502
+ var j = x[i]&0x7fff;
503
+ var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
504
+ // use am to combine the multiply-shift-add into one call
505
+ j = i+this.m.t;
506
+ x[j] += this.m.am(0,u0,x,i,0,this.m.t);
507
+ // propagate carry
508
+ while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
509
+ }
510
+ x.clamp();
511
+ x.drShiftTo(this.m.t,x);
512
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
513
+ }
514
+
515
+ // r = "x^2/R mod m"; x != r
516
+ function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
517
+
518
+ // r = "xy/R mod m"; x,y != r
519
+ function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
520
+
521
+ Montgomery.prototype.convert = montConvert;
522
+ Montgomery.prototype.revert = montRevert;
523
+ Montgomery.prototype.reduce = montReduce;
524
+ Montgomery.prototype.mulTo = montMulTo;
525
+ Montgomery.prototype.sqrTo = montSqrTo;
526
+
527
+ // (protected) true iff this is even
528
+ function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
529
+
530
+ // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
531
+ function bnpExp(e,z) {
532
+ if(e > 0xffffffff || e < 1) return encryptionBigInteger.ONE;
533
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
534
+ g.copyTo(r);
535
+ while(--i >= 0) {
536
+ z.sqrTo(r,r2);
537
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
538
+ else { var t = r; r = r2; r2 = t; }
539
+ }
540
+ return z.revert(r);
541
+ }
542
+
543
+ // (public) this^e % m, 0 <= e < 2^32
544
+ function bnModPowInt(e,m) {
545
+ var z;
546
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
547
+ return this.exp(e,z);
548
+ }
549
+
550
+ // protected
551
+ encryptionBigInteger.prototype.copyTo = bnpCopyTo;
552
+ encryptionBigInteger.prototype.fromInt = bnpFromInt;
553
+ encryptionBigInteger.prototype.fromString = bnpFromString;
554
+ encryptionBigInteger.prototype.clamp = bnpClamp;
555
+ encryptionBigInteger.prototype.dlShiftTo = bnpDLShiftTo;
556
+ encryptionBigInteger.prototype.drShiftTo = bnpDRShiftTo;
557
+ encryptionBigInteger.prototype.lShiftTo = bnpLShiftTo;
558
+ encryptionBigInteger.prototype.rShiftTo = bnpRShiftTo;
559
+ encryptionBigInteger.prototype.subTo = bnpSubTo;
560
+ encryptionBigInteger.prototype.multiplyTo = bnpMultiplyTo;
561
+ encryptionBigInteger.prototype.squareTo = bnpSquareTo;
562
+ encryptionBigInteger.prototype.divRemTo = bnpDivRemTo;
563
+ encryptionBigInteger.prototype.invDigit = bnpInvDigit;
564
+ encryptionBigInteger.prototype.isEven = bnpIsEven;
565
+ encryptionBigInteger.prototype.exp = bnpExp;
566
+
567
+ // public
568
+ encryptionBigInteger.prototype.toString = bnToString;
569
+ encryptionBigInteger.prototype.negate = bnNegate;
570
+ encryptionBigInteger.prototype.abs = bnAbs;
571
+ encryptionBigInteger.prototype.compareTo = bnCompareTo;
572
+ encryptionBigInteger.prototype.bitLength = bnBitLength;
573
+ encryptionBigInteger.prototype.mod = bnMod;
574
+ encryptionBigInteger.prototype.modPowInt = bnModPowInt;
575
+
576
+ // "constants"
577
+ encryptionBigInteger.ZERO = nbv(0);
578
+ encryptionBigInteger.ONE = nbv(1);