appium-novawindows2-driver 0.1.1

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 (192) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +97 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.yml +33 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  4. package/.github/workflows/lint-build.yml +30 -0
  5. package/.github/workflows/release.yml +39 -0
  6. package/.releaserc +41 -0
  7. package/CHANGELOG.md +33 -0
  8. package/LICENSE +202 -0
  9. package/README.md +557 -0
  10. package/build/eslint.config.d.mts +3 -0
  11. package/build/eslint.config.d.mts.map +1 -0
  12. package/build/eslint.config.mjs +6 -0
  13. package/build/eslint.config.mjs.map +1 -0
  14. package/build/lib/commands/actions.d.ts +11 -0
  15. package/build/lib/commands/actions.d.ts.map +1 -0
  16. package/build/lib/commands/actions.js +212 -0
  17. package/build/lib/commands/actions.js.map +1 -0
  18. package/build/lib/commands/app.d.ts +12 -0
  19. package/build/lib/commands/app.d.ts.map +1 -0
  20. package/build/lib/commands/app.js +195 -0
  21. package/build/lib/commands/app.js.map +1 -0
  22. package/build/lib/commands/device.d.ts +3 -0
  23. package/build/lib/commands/device.d.ts.map +1 -0
  24. package/build/lib/commands/device.js +31 -0
  25. package/build/lib/commands/device.js.map +1 -0
  26. package/build/lib/commands/element.d.ts +15 -0
  27. package/build/lib/commands/element.d.ts.map +1 -0
  28. package/build/lib/commands/element.js +213 -0
  29. package/build/lib/commands/element.js.map +1 -0
  30. package/build/lib/commands/extension.d.ts +87 -0
  31. package/build/lib/commands/extension.d.ts.map +1 -0
  32. package/build/lib/commands/extension.js +511 -0
  33. package/build/lib/commands/extension.js.map +1 -0
  34. package/build/lib/commands/functions.d.ts +3 -0
  35. package/build/lib/commands/functions.d.ts.map +1 -0
  36. package/build/lib/commands/functions.js +194 -0
  37. package/build/lib/commands/functions.js.map +1 -0
  38. package/build/lib/commands/index.d.ts +126 -0
  39. package/build/lib/commands/index.d.ts.map +1 -0
  40. package/build/lib/commands/index.js +54 -0
  41. package/build/lib/commands/index.js.map +1 -0
  42. package/build/lib/commands/powershell.d.ts +6 -0
  43. package/build/lib/commands/powershell.d.ts.map +1 -0
  44. package/build/lib/commands/powershell.js +204 -0
  45. package/build/lib/commands/powershell.js.map +1 -0
  46. package/build/lib/commands/system.d.ts +4 -0
  47. package/build/lib/commands/system.d.ts.map +1 -0
  48. package/build/lib/commands/system.js +8 -0
  49. package/build/lib/commands/system.js.map +1 -0
  50. package/build/lib/constants.d.ts +2 -0
  51. package/build/lib/constants.d.ts.map +1 -0
  52. package/build/lib/constants.js +5 -0
  53. package/build/lib/constants.js.map +1 -0
  54. package/build/lib/constraints.d.ts +40 -0
  55. package/build/lib/constraints.d.ts.map +1 -0
  56. package/build/lib/constraints.js +42 -0
  57. package/build/lib/constraints.js.map +1 -0
  58. package/build/lib/driver.d.ts +33 -0
  59. package/build/lib/driver.d.ts.map +1 -0
  60. package/build/lib/driver.js +181 -0
  61. package/build/lib/driver.js.map +1 -0
  62. package/build/lib/enums.d.ts +89 -0
  63. package/build/lib/enums.d.ts.map +1 -0
  64. package/build/lib/enums.js +83 -0
  65. package/build/lib/enums.js.map +1 -0
  66. package/build/lib/powershell/common.d.ts +39 -0
  67. package/build/lib/powershell/common.d.ts.map +1 -0
  68. package/build/lib/powershell/common.js +121 -0
  69. package/build/lib/powershell/common.js.map +1 -0
  70. package/build/lib/powershell/conditions.d.ts +24 -0
  71. package/build/lib/powershell/conditions.d.ts.map +1 -0
  72. package/build/lib/powershell/conditions.js +131 -0
  73. package/build/lib/powershell/conditions.js.map +1 -0
  74. package/build/lib/powershell/converter.d.ts +3 -0
  75. package/build/lib/powershell/converter.d.ts.map +1 -0
  76. package/build/lib/powershell/converter.js +273 -0
  77. package/build/lib/powershell/converter.js.map +1 -0
  78. package/build/lib/powershell/core.d.ts +8 -0
  79. package/build/lib/powershell/core.d.ts.map +1 -0
  80. package/build/lib/powershell/core.js +30 -0
  81. package/build/lib/powershell/core.js.map +1 -0
  82. package/build/lib/powershell/elements.d.ts +68 -0
  83. package/build/lib/powershell/elements.d.ts.map +1 -0
  84. package/build/lib/powershell/elements.js +515 -0
  85. package/build/lib/powershell/elements.js.map +1 -0
  86. package/build/lib/powershell/index.d.ts +8 -0
  87. package/build/lib/powershell/index.d.ts.map +1 -0
  88. package/build/lib/powershell/index.js +24 -0
  89. package/build/lib/powershell/index.js.map +1 -0
  90. package/build/lib/powershell/regex.d.ts +19 -0
  91. package/build/lib/powershell/regex.d.ts.map +1 -0
  92. package/build/lib/powershell/regex.js +68 -0
  93. package/build/lib/powershell/regex.js.map +1 -0
  94. package/build/lib/powershell/types.d.ts +155 -0
  95. package/build/lib/powershell/types.d.ts.map +1 -0
  96. package/build/lib/powershell/types.js +141 -0
  97. package/build/lib/powershell/types.js.map +1 -0
  98. package/build/lib/util.d.ts +10 -0
  99. package/build/lib/util.d.ts.map +1 -0
  100. package/build/lib/util.js +51 -0
  101. package/build/lib/util.js.map +1 -0
  102. package/build/lib/winapi/types/index.d.ts +8 -0
  103. package/build/lib/winapi/types/index.d.ts.map +1 -0
  104. package/build/lib/winapi/types/index.js +24 -0
  105. package/build/lib/winapi/types/index.js.map +1 -0
  106. package/build/lib/winapi/types/input.d.ts +11 -0
  107. package/build/lib/winapi/types/input.d.ts.map +1 -0
  108. package/build/lib/winapi/types/input.js +12 -0
  109. package/build/lib/winapi/types/input.js.map +1 -0
  110. package/build/lib/winapi/types/keyeventf.d.ts +13 -0
  111. package/build/lib/winapi/types/keyeventf.d.ts.map +1 -0
  112. package/build/lib/winapi/types/keyeventf.js +14 -0
  113. package/build/lib/winapi/types/keyeventf.js.map +1 -0
  114. package/build/lib/winapi/types/mouseeventf.d.ts +34 -0
  115. package/build/lib/winapi/types/mouseeventf.d.ts.map +1 -0
  116. package/build/lib/winapi/types/mouseeventf.js +37 -0
  117. package/build/lib/winapi/types/mouseeventf.js.map +1 -0
  118. package/build/lib/winapi/types/scancode.d.ts +95 -0
  119. package/build/lib/winapi/types/scancode.d.ts.map +1 -0
  120. package/build/lib/winapi/types/scancode.js +96 -0
  121. package/build/lib/winapi/types/scancode.js.map +1 -0
  122. package/build/lib/winapi/types/systemmetric.d.ts +214 -0
  123. package/build/lib/winapi/types/systemmetric.d.ts.map +1 -0
  124. package/build/lib/winapi/types/systemmetric.js +215 -0
  125. package/build/lib/winapi/types/systemmetric.js.map +1 -0
  126. package/build/lib/winapi/types/virtualkey.d.ts +353 -0
  127. package/build/lib/winapi/types/virtualkey.d.ts.map +1 -0
  128. package/build/lib/winapi/types/virtualkey.js +354 -0
  129. package/build/lib/winapi/types/virtualkey.js.map +1 -0
  130. package/build/lib/winapi/types/xmousebutton.d.ts +7 -0
  131. package/build/lib/winapi/types/xmousebutton.d.ts.map +1 -0
  132. package/build/lib/winapi/types/xmousebutton.js +8 -0
  133. package/build/lib/winapi/types/xmousebutton.js.map +1 -0
  134. package/build/lib/winapi/user32.d.ts +56 -0
  135. package/build/lib/winapi/user32.d.ts.map +1 -0
  136. package/build/lib/winapi/user32.js +591 -0
  137. package/build/lib/winapi/user32.js.map +1 -0
  138. package/build/lib/xpath/core.d.ts +8 -0
  139. package/build/lib/xpath/core.d.ts.map +1 -0
  140. package/build/lib/xpath/core.js +593 -0
  141. package/build/lib/xpath/core.js.map +1 -0
  142. package/build/lib/xpath/functions.d.ts +4 -0
  143. package/build/lib/xpath/functions.d.ts.map +1 -0
  144. package/build/lib/xpath/functions.js +271 -0
  145. package/build/lib/xpath/functions.js.map +1 -0
  146. package/build/lib/xpath/index.d.ts +3 -0
  147. package/build/lib/xpath/index.d.ts.map +1 -0
  148. package/build/lib/xpath/index.js +19 -0
  149. package/build/lib/xpath/index.js.map +1 -0
  150. package/eslint.config.mjs +11 -0
  151. package/examples/C#/CalculatorTest/CalculatorTest/CalculatorSession.cs +44 -0
  152. package/examples/C#/CalculatorTest/CalculatorTest/CalculatorTest.csproj +24 -0
  153. package/examples/C#/CalculatorTest/CalculatorTest/ScenarioStandard.cs +121 -0
  154. package/examples/C#/CalculatorTest/CalculatorTest/ScenarioStandardInvoke.cs +121 -0
  155. package/examples/C#/CalculatorTest/CalculatorTest.sln +16 -0
  156. package/lib/commands/actions.ts +229 -0
  157. package/lib/commands/app.ts +227 -0
  158. package/lib/commands/device.ts +41 -0
  159. package/lib/commands/element.ts +242 -0
  160. package/lib/commands/extension.ts +636 -0
  161. package/lib/commands/functions.ts +192 -0
  162. package/lib/commands/index.ts +28 -0
  163. package/lib/commands/powershell.ts +243 -0
  164. package/lib/commands/system.ts +7 -0
  165. package/lib/constants.ts +1 -0
  166. package/lib/constraints.ts +43 -0
  167. package/lib/driver.ts +247 -0
  168. package/lib/enums.ts +96 -0
  169. package/lib/powershell/common.ts +137 -0
  170. package/lib/powershell/conditions.ts +169 -0
  171. package/lib/powershell/converter.ts +373 -0
  172. package/lib/powershell/core.ts +29 -0
  173. package/lib/powershell/elements.ts +584 -0
  174. package/lib/powershell/index.ts +7 -0
  175. package/lib/powershell/regex.ts +77 -0
  176. package/lib/powershell/types.ts +208 -0
  177. package/lib/util.ts +52 -0
  178. package/lib/winapi/types/index.ts +7 -0
  179. package/lib/winapi/types/input.ts +12 -0
  180. package/lib/winapi/types/keyeventf.ts +14 -0
  181. package/lib/winapi/types/mouseeventf.ts +37 -0
  182. package/lib/winapi/types/scancode.ts +96 -0
  183. package/lib/winapi/types/systemmetric.ts +215 -0
  184. package/lib/winapi/types/virtualkey.ts +354 -0
  185. package/lib/winapi/types/xmousebutton.ts +8 -0
  186. package/lib/winapi/user32.ts +842 -0
  187. package/lib/xpath/core.ts +699 -0
  188. package/lib/xpath/functions.ts +366 -0
  189. package/lib/xpath/index.ts +2 -0
  190. package/package.json +61 -0
  191. package/tsconfig.json +13 -0
  192. package/verify_driver.js +96 -0
@@ -0,0 +1,591 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.keyDown = keyDown;
7
+ exports.keyUp = keyUp;
8
+ exports.mouseMoveRelative = mouseMoveRelative;
9
+ exports.mouseScroll = mouseScroll;
10
+ exports.mouseMoveAbsolute = mouseMoveAbsolute;
11
+ exports.mouseDown = mouseDown;
12
+ exports.mouseUp = mouseUp;
13
+ exports.getDisplayOrientation = getDisplayOrientation;
14
+ exports.setDpiAwareness = setDpiAwareness;
15
+ exports.getWindowAllHandlesForProcessIds = getWindowAllHandlesForProcessIds;
16
+ exports.trySetForegroundWindow = trySetForegroundWindow;
17
+ exports.sendKeyboardEvents = sendKeyboardEvents;
18
+ const koffi_1 = require("koffi");
19
+ const types_1 = require("./types");
20
+ const systemmetric_1 = require("./types/systemmetric");
21
+ const base_driver_1 = require("@appium/base-driver");
22
+ const bezier_easing_1 = __importDefault(require("bezier-easing"));
23
+ const util_1 = require("../util");
24
+ const enums_1 = require("../enums");
25
+ const easingFunctions = Object.freeze({
26
+ 'linear': (x) => x,
27
+ 'ease': (0, bezier_easing_1.default)(0.25, 1, 0.25, 1),
28
+ 'ease-in': (0, bezier_easing_1.default)(0.42, 0, 1, 1),
29
+ 'ease-out': (0, bezier_easing_1.default)(0, 0, 0.58, 1),
30
+ 'ease-in-out': (0, bezier_easing_1.default)(0.42, 0, 0.58, 1),
31
+ });
32
+ const UINT32_MAX = 0xFFFFFFFF;
33
+ const UINT16_MAX = 0xFFFF;
34
+ const user32 = (0, koffi_1.load)('user32.dll');
35
+ const POINT = (0, koffi_1.struct)('POINT', {
36
+ x: 'long',
37
+ y: 'long',
38
+ });
39
+ const MOUSEINPUT = (0, koffi_1.struct)('MOUSEINPUT', {
40
+ dx: 'long',
41
+ dy: 'long',
42
+ mouseData: 'uint32',
43
+ dwFlags: 'uint32',
44
+ time: 'uint32',
45
+ dwExtraInfo: 'uintptr',
46
+ });
47
+ const KEYBDINPUT = (0, koffi_1.struct)('KEYBDINPUT', {
48
+ wVk: 'uint16',
49
+ wScan: 'uint16',
50
+ dwFlags: 'uint32',
51
+ time: 'uint32',
52
+ dwExtraInfo: 'uintptr',
53
+ });
54
+ const HARDWAREINPUT = (0, koffi_1.struct)('HARDWAREINPUT', {
55
+ uMsg: 'uint32',
56
+ wParamL: 'uint16',
57
+ wParamH: 'uint16',
58
+ });
59
+ const INPUT = (0, koffi_1.struct)('INPUT', {
60
+ type: 'uint32',
61
+ u: (0, koffi_1.union)({
62
+ mi: MOUSEINPUT,
63
+ ki: KEYBDINPUT,
64
+ hi: HARDWAREINPUT,
65
+ })
66
+ });
67
+ const DEVMODEA = (0, koffi_1.struct)('DEVMODEA', {
68
+ dmDeviceName: (0, koffi_1.array)('char', 32, 'String'),
69
+ dmSpecVersion: 'uint16',
70
+ dmDriverVersion: 'uint16',
71
+ dmSize: 'uint16',
72
+ dmDriverExtra: 'uint16',
73
+ dmFields: 'uint32',
74
+ u1: (0, koffi_1.union)({
75
+ s1: (0, koffi_1.struct)({
76
+ dmOrientation: 'short',
77
+ dmPaperSize: 'short',
78
+ dmPaperLength: 'short',
79
+ dmPaperWidth: 'short',
80
+ dmScale: 'short',
81
+ dmCopies: 'short',
82
+ dmDefaultSource: 'short',
83
+ dmPrintQuality: 'short',
84
+ }),
85
+ dmPosition: POINT,
86
+ s2: (0, koffi_1.struct)({
87
+ dmPosition: POINT,
88
+ dmDisplayOrientation: 'uint32',
89
+ dmDisplayFixedOutput: 'uint32',
90
+ }),
91
+ }),
92
+ dmColor: 'short',
93
+ dmDuplex: 'short',
94
+ dmYResolution: 'short',
95
+ dmTTOption: 'short',
96
+ dmCollate: 'short',
97
+ dmFormName: (0, koffi_1.array)('char', 32, 'String'),
98
+ dmLogPixels: 'uint16',
99
+ dmBitsPerPel: 'uint32',
100
+ dmPelsWidth: 'uint32',
101
+ dmPelsHeight: 'uint32',
102
+ u2: (0, koffi_1.union)({
103
+ dmDisplayFlags: 'uint32',
104
+ dmNup: 'uint32',
105
+ }),
106
+ dmDisplayFrequency: 'uint32',
107
+ dmICMMethod: 'uint32',
108
+ dmICMIntent: 'uint32',
109
+ dmMediaType: 'uint32',
110
+ dmDitherType: 'uint32',
111
+ dmReserved1: 'uint32',
112
+ dmReserved2: 'uint32',
113
+ dmPanningWidth: 'uint32',
114
+ dmPanningHeight: 'uint32',
115
+ });
116
+ const BOOL = (0, koffi_1.alias)('BOOL', koffi_1.types.bool);
117
+ const DWORD = (0, koffi_1.alias)('DWORD', koffi_1.types.uint32_t);
118
+ const HANDLE = (0, koffi_1.pointer)('HANDLE', (0, koffi_1.opaque)());
119
+ const LONG_PTR = (0, koffi_1.pointer)('LONG_PTR', koffi_1.types.long);
120
+ const LPDWORD = (0, koffi_1.pointer)('LPDWORD', DWORD);
121
+ const HWND = (0, koffi_1.alias)('HWND', HANDLE);
122
+ const LPARAM = (0, koffi_1.alias)('LPARAM', LONG_PTR);
123
+ const LPSTR = (0, koffi_1.pointer)('LPSTR', 'char');
124
+ const EnumWindowsProc = (0, koffi_1.proto)('BOOL __stdcall EnumWindowsProc (HWND hwnd, LPARAM lParam)');
125
+ // TODO: update all functions to have their parameters aliased properly
126
+ const SendInput = user32.func(/* c */ `unsigned int __stdcall SendInput(unsigned int cInputs, INPUT *pInputs, int cbSize)`);
127
+ const GetSystemMetrics = user32.func(/* c */ `int __stdcall GetSystemMetrics(int nIndex)`);
128
+ const SetProcessDPIAware = user32.func(/* c */ `bool __stdcall SetProcessDPIAware()`);
129
+ const GetDpiForSystem = user32.func(/* c */ `unsigned int __stdcall GetDpiForSystem()`);
130
+ const GetCursorPos = user32.func(/* c */ `bool __stdcall GetCursorPos(_Out_ POINT *lpPoint)`);
131
+ const EnumDisplaySettingsA = user32.func(/* c */ `bool __stdcall EnumDisplaySettingsA(str lpszDeviceName, uint iModeNum, _Out_ DEVMODEA *lpDevMode)`);
132
+ // end TODO
133
+ const GetWindowThreadProcessId = user32.func(/* c */ `DWORD __stdcall GetWindowThreadProcessId(HWND hWnd, _Out_ LPDWORD lpdwProcessId)`);
134
+ const GetWindowTextA = user32.func(/* c */ `int __stdcall GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)`);
135
+ const IsWindowVisible = user32.func(/* c */ `BOOL __stdcall IsWindowVisible(HWND hWnd)`);
136
+ const EnumWindows = user32.func(/* c */ `BOOL __stdcall EnumWindows(EnumWindowsProc *enumProc, LPARAM lParam)`);
137
+ const SetForegroundWindow = user32.func(/* c */ `BOOL __stdcall SetForegroundWindow(HWND hWnd)`);
138
+ function makeKeyboardEvent(args) {
139
+ let flags = 0;
140
+ if ((args.scan === undefined && args.vk === undefined) || (args.scan !== undefined && args.vk !== undefined)) {
141
+ throw new base_driver_1.errors.InvalidArgumentError('You should provide either vk or scan, but not both.');
142
+ }
143
+ switch (typeof args.scan) {
144
+ case 'string':
145
+ if (args.scan.length !== 1) {
146
+ throw new base_driver_1.errors.InvalidArgumentError(`scan parameter expects a single character, but received ${args.scan.length}.`);
147
+ }
148
+ flags |= types_1.KeyEventFlags.KEYEVENTF_UNICODE;
149
+ args.scan = args.scan.charCodeAt(0);
150
+ break;
151
+ case 'number':
152
+ flags |= types_1.KeyEventFlags.KEYEVENTF_SCANCODE;
153
+ break;
154
+ }
155
+ if (!args.down) {
156
+ flags |= types_1.KeyEventFlags.KEYEVENTF_KEYUP;
157
+ }
158
+ return {
159
+ type: types_1.InputType.INPUT_KEYBOARD,
160
+ u: {
161
+ ki: {
162
+ wVk: args.vk ?? 0,
163
+ wScan: args.scan ?? 0,
164
+ dwFlags: flags ?? 0,
165
+ time: 0,
166
+ dwExtraInfo: 0,
167
+ }
168
+ }
169
+ };
170
+ }
171
+ function makeEmptyMouseEvent() {
172
+ return {
173
+ type: types_1.InputType.INPUT_MOUSE,
174
+ u: {
175
+ mi: {
176
+ dx: 0,
177
+ dy: 0,
178
+ mouseData: 0,
179
+ dwFlags: 0,
180
+ time: 0,
181
+ dwExtraInfo: 0,
182
+ }
183
+ }
184
+ };
185
+ }
186
+ function makeMouseDownEvents(button) {
187
+ const mouseEvent = makeEmptyMouseEvent();
188
+ switch (button) {
189
+ case 0:
190
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_LEFTDOWN;
191
+ break;
192
+ case 1:
193
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_MIDDLEDOWN;
194
+ break;
195
+ case 2:
196
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_RIGHTDOWN;
197
+ break;
198
+ case 3:
199
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XDOWN;
200
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON1;
201
+ break;
202
+ case 4:
203
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XDOWN;
204
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON2;
205
+ break;
206
+ default:
207
+ throw new base_driver_1.errors.InvalidArgumentError('button parameter should be a positive integer between 0 and 4.');
208
+ }
209
+ return [mouseEvent];
210
+ }
211
+ function makeMouseUpEvents(button) {
212
+ const mouseEvent = makeEmptyMouseEvent();
213
+ switch (button) {
214
+ case 0:
215
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_LEFTUP;
216
+ break;
217
+ case 1:
218
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_MIDDLEUP;
219
+ break;
220
+ case 2:
221
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_RIGHTUP;
222
+ break;
223
+ case 3:
224
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XUP;
225
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON1;
226
+ break;
227
+ case 4:
228
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XUP;
229
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON2;
230
+ break;
231
+ default:
232
+ throw new base_driver_1.errors.InvalidArgumentError('button parameter should be a positive integer between 0 and 4.');
233
+ }
234
+ return [mouseEvent];
235
+ }
236
+ function makeMouseMoveEvents(args) {
237
+ const { x, y, wheel, relative, screenResolutionAndRefreshRate } = args;
238
+ if (wheel) {
239
+ const mouseEvents = [];
240
+ if (x !== 0) {
241
+ const horizontalScrollEvent = makeEmptyMouseEvent();
242
+ horizontalScrollEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_HWHEEL;
243
+ horizontalScrollEvent.u.mi.mouseData = x;
244
+ mouseEvents.push(horizontalScrollEvent);
245
+ }
246
+ if (y !== 0) {
247
+ const verticalScrollEvent = makeEmptyMouseEvent();
248
+ verticalScrollEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_WHEEL;
249
+ verticalScrollEvent.u.mi.mouseData = y;
250
+ }
251
+ return mouseEvents;
252
+ }
253
+ const mouseEvent = makeEmptyMouseEvent();
254
+ if (!screenResolutionAndRefreshRate) {
255
+ throw new base_driver_1.errors.InvalidArgumentError('screenResolution parameter must be set for absolute mouse move.');
256
+ }
257
+ const [screenWidth, screenHeight] = screenResolutionAndRefreshRate;
258
+ mouseEvent.u.mi.dx = relative ? Math.trunc(x) : Math.trunc((x * UINT16_MAX) / screenWidth);
259
+ mouseEvent.u.mi.dy = relative ? Math.trunc(y) : Math.trunc((y * UINT16_MAX) / screenHeight);
260
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_MOVE;
261
+ if (!relative) {
262
+ mouseEvent.u.mi.dwFlags |= types_1.MouseEventFlags.MOUSEEVENTF_ABSOLUTE;
263
+ }
264
+ return [mouseEvent];
265
+ }
266
+ function charToKeyboardEvents(char, down, forceUnicode = false) {
267
+ const charCode = char.charCodeAt(0);
268
+ if ((charCode & 0xF000) === 0xE000) {
269
+ switch (char) {
270
+ case enums_1.Key.CANCEL:
271
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_CANCEL, down })];
272
+ case enums_1.Key.HELP:
273
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_HELP, down })];
274
+ case enums_1.Key.BACKSPACE:
275
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_BACK, down })];
276
+ case enums_1.Key.TAB:
277
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_TAB, down })];
278
+ case enums_1.Key.CLEAR:
279
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_CLEAR, down })];
280
+ case enums_1.Key.RETURN:
281
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RETURN, down })];
282
+ case enums_1.Key.ENTER:
283
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RETURN, down })];
284
+ case enums_1.Key.SHIFT:
285
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SHIFT, down })];
286
+ case enums_1.Key.CONTROL:
287
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_CONTROL, down })];
288
+ case enums_1.Key.ALT:
289
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_MENU, down })];
290
+ case enums_1.Key.PAUSE:
291
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_PAUSE, down })];
292
+ case enums_1.Key.ESCAPE:
293
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_ESCAPE, down })];
294
+ case enums_1.Key.SPACE:
295
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SPACE, down })];
296
+ case enums_1.Key.PAGE_UP:
297
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_PRIOR, down })];
298
+ case enums_1.Key.PAGE_DOWN:
299
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NEXT, down })];
300
+ case enums_1.Key.END:
301
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_END, down })];
302
+ case enums_1.Key.HOME:
303
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_HOME, down })];
304
+ case enums_1.Key.LEFT:
305
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_LEFT, down })];
306
+ case enums_1.Key.UP:
307
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_UP, down })];
308
+ case enums_1.Key.RIGHT:
309
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RIGHT, down })];
310
+ case enums_1.Key.DOWN:
311
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DOWN, down })];
312
+ case enums_1.Key.INSERT:
313
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_INSERT, down })];
314
+ case enums_1.Key.DELETE:
315
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DELETE, down })];
316
+ case enums_1.Key.SEMICOLON:
317
+ return [makeKeyboardEvent({ scan: types_1.ScanCode.SEMICOLON, down })];
318
+ case enums_1.Key.EQUALS:
319
+ return [makeKeyboardEvent({ scan: types_1.ScanCode.EQUAL, down })];
320
+ case enums_1.Key.NUMPAD0:
321
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD0, down })];
322
+ case enums_1.Key.NUMPAD1:
323
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD1, down })];
324
+ case enums_1.Key.NUMPAD2:
325
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD2, down })];
326
+ case enums_1.Key.NUMPAD3:
327
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD3, down })];
328
+ case enums_1.Key.NUMPAD4:
329
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD4, down })];
330
+ case enums_1.Key.NUMPAD5:
331
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD5, down })];
332
+ case enums_1.Key.NUMPAD6:
333
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD6, down })];
334
+ case enums_1.Key.NUMPAD7:
335
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD7, down })];
336
+ case enums_1.Key.NUMPAD8:
337
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD8, down })];
338
+ case enums_1.Key.NUMPAD9:
339
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD9, down })];
340
+ case enums_1.Key.MULTIPLY:
341
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_MULTIPLY, down })];
342
+ case enums_1.Key.ADD:
343
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_ADD, down })];
344
+ case enums_1.Key.SEPARATOR:
345
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SEPARATOR, down })];
346
+ case enums_1.Key.SUBTRACT:
347
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SUBTRACT, down })];
348
+ case enums_1.Key.DECIMAL:
349
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DECIMAL, down })];
350
+ case enums_1.Key.DIVIDE:
351
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DIVIDE, down })];
352
+ case enums_1.Key.F1:
353
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F1, down })];
354
+ case enums_1.Key.F2:
355
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F2, down })];
356
+ case enums_1.Key.F3:
357
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F3, down })];
358
+ case enums_1.Key.F4:
359
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F4, down })];
360
+ case enums_1.Key.F5:
361
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F5, down })];
362
+ case enums_1.Key.F6:
363
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F6, down })];
364
+ case enums_1.Key.F7:
365
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F7, down })];
366
+ case enums_1.Key.F8:
367
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F8, down })];
368
+ case enums_1.Key.F9:
369
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F9, down })];
370
+ case enums_1.Key.F10:
371
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F10, down })];
372
+ case enums_1.Key.F11:
373
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F11, down })];
374
+ case enums_1.Key.F12:
375
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F12, down })];
376
+ case enums_1.Key.META:
377
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_LWIN, down })];
378
+ case enums_1.Key.ZENKAKUHANKAKU:
379
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_OEM_AUTO, down })];
380
+ case enums_1.Key.R_SHIFT:
381
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RSHIFT, down })];
382
+ case enums_1.Key.R_CONTROL:
383
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RCONTROL, down })];
384
+ case enums_1.Key.R_ALT:
385
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RMENU, down })];
386
+ case enums_1.Key.R_META:
387
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RWIN, down })];
388
+ case enums_1.Key.R_PAGEUP:
389
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD9, down })];
390
+ case enums_1.Key.R_PAGEDOWN:
391
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD3, down })];
392
+ case enums_1.Key.R_END:
393
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD1, down })];
394
+ case enums_1.Key.R_HOME:
395
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD7, down })];
396
+ case enums_1.Key.R_ARROWLEFT:
397
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD4, down })];
398
+ case enums_1.Key.R_ARROWUP:
399
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD8, down })];
400
+ case enums_1.Key.R_ARROWRIGHT:
401
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD6, down })];
402
+ case enums_1.Key.R_ARROWDOWN:
403
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD2, down })];
404
+ case enums_1.Key.R_INSERT:
405
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD0, down })];
406
+ case enums_1.Key.R_DELETE:
407
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DECIMAL, down })];
408
+ default:
409
+ throw new base_driver_1.errors.InvalidArgumentError(`Invalid character \\u${charCode.toString(16)}.`);
410
+ }
411
+ }
412
+ // Currently only [a-z0-9] are sent as scan code through performAction (in order for them to work in hotkeys).
413
+ if (!forceUnicode) {
414
+ if (/[a-z]/.test(char)) {
415
+ return [makeKeyboardEvent({ scan: types_1.ScanCode[char.toUpperCase()], down })];
416
+ }
417
+ if (/[0-9]/.test(char)) {
418
+ return [makeKeyboardEvent({ scan: types_1.ScanCode[`N${char}`], down })];
419
+ }
420
+ }
421
+ return [makeKeyboardEvent({ scan: char, down })];
422
+ }
423
+ function sendKeyInput(char, down, forceUnicode = false) {
424
+ const events = charToKeyboardEvents(char, down, forceUnicode);
425
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
426
+ assertSuccessSendInputReturnCode(returnCode);
427
+ }
428
+ function sendMouseButtonInput(button, down) {
429
+ const events = down ? makeMouseDownEvents(button) : makeMouseUpEvents(button);
430
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
431
+ assertSuccessSendInputReturnCode(returnCode);
432
+ }
433
+ async function sendMouseMoveInput(args) {
434
+ const { duration } = args;
435
+ let { x, y, easingFunction, relative } = args;
436
+ const screenResolutionAndRefreshRate = getScreenResolutionAndRefreshRate();
437
+ const [, , refreshRate] = screenResolutionAndRefreshRate;
438
+ const updateInterval = 1000 / refreshRate;
439
+ const iterations = Math.max(Math.floor(duration / updateInterval), 1);
440
+ const cursorPosition = {
441
+ x: 0,
442
+ y: 0,
443
+ };
444
+ if (GetCursorPos(cursorPosition) && iterations > 1) {
445
+ if (relative) {
446
+ x += cursorPosition.x;
447
+ y += cursorPosition.y;
448
+ }
449
+ // setting relative to false since coordinates are now absolute
450
+ relative = false;
451
+ }
452
+ else {
453
+ // ignore easing function of it can't retrieve current cursor position
454
+ // this is preventing the method from failing
455
+ easingFunction = undefined;
456
+ }
457
+ if (easingFunction) {
458
+ let calculatePoint;
459
+ // the lines below assume that the validation has been made on createSession
460
+ if (easingFunction.startsWith('cubic-bezier')) {
461
+ const bezierArgs = /\((.*?)\)/.exec(easingFunction)?.groups?.[0]
462
+ .split(',').map((n) => parseFloat(n.trim())) ?? [0, 0, 1, 1];
463
+ calculatePoint = bezier_easing_1.default.apply(bezierArgs);
464
+ }
465
+ else {
466
+ calculatePoint = easingFunctions[easingFunction];
467
+ }
468
+ for (let i = 1; i < iterations; i++) {
469
+ setTimeout(() => {
470
+ const normalizedProgress = (i + 1) / iterations;
471
+ const easedProgress = i !== iterations - 1 ? calculatePoint(normalizedProgress) : 1;
472
+ const interpolatedX = cursorPosition.x + (x - cursorPosition.x) * easedProgress;
473
+ const interpolatedY = cursorPosition.y + (y - cursorPosition.y) * easedProgress;
474
+ const events = makeMouseMoveEvents({ x: interpolatedX, y: interpolatedY, wheel: false, screenResolutionAndRefreshRate });
475
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
476
+ assertSuccessSendInputReturnCode(returnCode);
477
+ }, i * updateInterval);
478
+ }
479
+ }
480
+ else {
481
+ const events = makeMouseMoveEvents({ x, y, wheel: false, screenResolutionAndRefreshRate });
482
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
483
+ assertSuccessSendInputReturnCode(returnCode);
484
+ }
485
+ await (0, util_1.sleep)(duration);
486
+ }
487
+ function sendMouseScrollInput(x, y) {
488
+ const events = makeMouseMoveEvents({ x, y, wheel: true });
489
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
490
+ assertSuccessSendInputReturnCode(returnCode);
491
+ }
492
+ function assertSuccessSendInputReturnCode(returnCode) {
493
+ if (returnCode === UINT32_MAX) {
494
+ throw new base_driver_1.errors.UnknownError('An error occurred while executing SendInput.');
495
+ }
496
+ }
497
+ // TODO: Remove eslint-disable-next-line when used
498
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
499
+ function getResolutionScalingFactor() {
500
+ const dpi = GetDpiForSystem();
501
+ const scalingFactor = dpi / 96;
502
+ // @ts-expect-error temporary quick and dirty version of memoization
503
+ getResolutionScalingFactor = () => scalingFactor;
504
+ return scalingFactor;
505
+ }
506
+ function getScreenResolutionAndRefreshRate() {
507
+ const width = GetSystemMetrics(systemmetric_1.SystemMetric.SM_CXSCREEN);
508
+ const height = GetSystemMetrics(systemmetric_1.SystemMetric.SM_CYSCREEN);
509
+ let refreshRate = null;
510
+ const buffer = Buffer.alloc((0, koffi_1.sizeof)(DEVMODEA));
511
+ EnumDisplaySettingsA(null, -1, buffer);
512
+ const deviceMode = { dmDisplayFrequency: buffer.readUInt32LE(120) };
513
+ refreshRate = deviceMode.dmDisplayFrequency;
514
+ const resolution = [width, height, refreshRate];
515
+ const nonMemoizedMethod = getScreenResolutionAndRefreshRate;
516
+ const currentTime = new Date().getTime();
517
+ // @ts-expect-error memoizing the function to prevent repeated calls that might crash Node.js
518
+ getScreenResolutionAndRefreshRate = () => {
519
+ if (new Date().getTime() - currentTime > 1000) {
520
+ // @ts-expect-error reset memoization after 1 second
521
+ getScreenResolutionAndRefreshRate = nonMemoizedMethod;
522
+ }
523
+ return resolution;
524
+ };
525
+ return resolution;
526
+ }
527
+ function keyDown(char, forceUnicode = false) {
528
+ sendKeyInput(char, true, forceUnicode);
529
+ }
530
+ function keyUp(char, forceUnicode = false) {
531
+ sendKeyInput(char, false, forceUnicode);
532
+ }
533
+ async function mouseMoveRelative(x, y, duration = 0, easingFunction) {
534
+ await sendMouseMoveInput({ x, y, relative: true, duration, easingFunction });
535
+ }
536
+ function mouseScroll(x, y) {
537
+ sendMouseScrollInput(x, y);
538
+ }
539
+ async function mouseMoveAbsolute(x, y, duration = 0, easingFunction) {
540
+ await sendMouseMoveInput({ x, y, relative: false, duration, easingFunction });
541
+ }
542
+ function mouseDown(button = 0) {
543
+ sendMouseButtonInput(button, true);
544
+ }
545
+ function mouseUp(button = 0) {
546
+ sendMouseButtonInput(button, false);
547
+ }
548
+ function getDisplayOrientation() {
549
+ const resolution = getScreenResolutionAndRefreshRate();
550
+ return resolution[0] > resolution[1] ? 'LANDSCAPE' : 'PORTRAIT';
551
+ }
552
+ function setDpiAwareness() {
553
+ if (!SetProcessDPIAware()) {
554
+ throw new base_driver_1.errors.UnknownError('An error occurred while trying to set DPI awareness.');
555
+ }
556
+ ;
557
+ }
558
+ function getWindowAllHandlesForProcessIds(processIds) {
559
+ const handles = [];
560
+ EnumWindows((hWnd) => {
561
+ const ptr = [null];
562
+ GetWindowThreadProcessId(hWnd, ptr);
563
+ const pid = ptr[0];
564
+ if (pid && processIds.includes(pid) && IsWindowVisible(hWnd)) {
565
+ const buffer = Buffer.alloc(256); // Adjust size as needed
566
+ GetWindowTextA(hWnd, buffer, buffer.length);
567
+ const windowTitle = buffer.toString('utf8').replace(/\0/g, '');
568
+ if (windowTitle) {
569
+ handles.push(Number((0, koffi_1.address)(hWnd)));
570
+ }
571
+ }
572
+ return true;
573
+ }, 0);
574
+ return handles;
575
+ }
576
+ function trySetForegroundWindow(windowHandle) {
577
+ return EnumWindows((hWnd) => {
578
+ if (windowHandle === Number((0, koffi_1.address)(hWnd))) {
579
+ SetForegroundWindow(hWnd);
580
+ return false;
581
+ }
582
+ return true;
583
+ }, 0);
584
+ }
585
+ function sendKeyboardEvents(inputs) {
586
+ return SendInput(inputs.length, inputs.map((ki) => ({
587
+ type: types_1.InputType.INPUT_KEYBOARD,
588
+ u: { ki },
589
+ })), (0, koffi_1.sizeof)(INPUT));
590
+ }
591
+ //# sourceMappingURL=user32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user32.js","sourceRoot":"","sources":["../../../lib/winapi/user32.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Element } from '@appium/types';
2
+ import { ExprNode } from 'xpath-analyzer';
3
+ import { Condition, AutomationElement } from '../powershell';
4
+ export declare function xpathToElIdOrIds(selector: string, mult: boolean, context: string | undefined, sendPowerShellCommand: (command: string) => Promise<string>): Promise<Element | Element[]>;
5
+ export declare function processExprNode<T>(exprNode: ExprNode, context: AutomationElement, sendPowerShellCommand: (command: string) => Promise<string>): Promise<T[]>;
6
+ export declare function processExprNodeAsPredicate(exprNode: ExprNode, context: AutomationElement, positions: Set<number>, sendPowerShellCommand: (command: string) => Promise<string>, relativeExprNodes?: ExprNode[]): Promise<[Condition, ExprNode[]?]>;
7
+ export declare function predicateProcessableBeforeNode(exprNode: ExprNode): boolean;
8
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../lib/xpath/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAsB,EAMlB,QAAQ,EA0CX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGH,SAAS,EAIT,iBAAiB,EAcpB,MAAM,eAAe,CAAC;AAgCvB,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC,CA+C9L;AAED,wBAAsB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA+GlK;AAwCD,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CA6IvP;AA6ND,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CA8B1E"}