appium-desktop-driver 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +609 -0
- package/ROADMAP.md +175 -0
- package/build/lib/commands/actions.d.ts +12 -0
- package/build/lib/commands/actions.d.ts.map +1 -0
- package/build/lib/commands/actions.js +242 -0
- package/build/lib/commands/actions.js.map +1 -0
- package/build/lib/commands/app.d.ts +18 -0
- package/build/lib/commands/app.d.ts.map +1 -0
- package/build/lib/commands/app.js +280 -0
- package/build/lib/commands/app.js.map +1 -0
- package/build/lib/commands/device.d.ts +11 -0
- package/build/lib/commands/device.d.ts.map +1 -0
- package/build/lib/commands/device.js +236 -0
- package/build/lib/commands/device.js.map +1 -0
- package/build/lib/commands/element.d.ts +16 -0
- package/build/lib/commands/element.d.ts.map +1 -0
- package/build/lib/commands/element.js +233 -0
- package/build/lib/commands/element.js.map +1 -0
- package/build/lib/commands/extension.d.ts +124 -0
- package/build/lib/commands/extension.d.ts.map +1 -0
- package/build/lib/commands/extension.js +715 -0
- package/build/lib/commands/extension.js.map +1 -0
- package/build/lib/commands/functions.d.ts +3 -0
- package/build/lib/commands/functions.d.ts.map +1 -0
- package/build/lib/commands/functions.js +194 -0
- package/build/lib/commands/functions.js.map +1 -0
- package/build/lib/commands/index.d.ts +178 -0
- package/build/lib/commands/index.d.ts.map +1 -0
- package/build/lib/commands/index.js +54 -0
- package/build/lib/commands/index.js.map +1 -0
- package/build/lib/commands/powershell.d.ts +6 -0
- package/build/lib/commands/powershell.d.ts.map +1 -0
- package/build/lib/commands/powershell.js +202 -0
- package/build/lib/commands/powershell.js.map +1 -0
- package/build/lib/commands/screen-recorder.d.ts +40 -0
- package/build/lib/commands/screen-recorder.d.ts.map +1 -0
- package/build/lib/commands/screen-recorder.js +183 -0
- package/build/lib/commands/screen-recorder.js.map +1 -0
- package/build/lib/commands/system.d.ts +4 -0
- package/build/lib/commands/system.d.ts.map +1 -0
- package/build/lib/commands/system.js +8 -0
- package/build/lib/commands/system.js.map +1 -0
- package/build/lib/constants.d.ts +3 -0
- package/build/lib/constants.d.ts.map +1 -0
- package/build/lib/constants.js +6 -0
- package/build/lib/constants.js.map +1 -0
- package/build/lib/constraints.d.ts +58 -0
- package/build/lib/constraints.d.ts.map +1 -0
- package/build/lib/constraints.js +60 -0
- package/build/lib/constraints.js.map +1 -0
- package/build/lib/driver.d.ts +36 -0
- package/build/lib/driver.d.ts.map +1 -0
- package/build/lib/driver.js +209 -0
- package/build/lib/driver.js.map +1 -0
- package/build/lib/enums.d.ts +89 -0
- package/build/lib/enums.d.ts.map +1 -0
- package/build/lib/enums.js +83 -0
- package/build/lib/enums.js.map +1 -0
- package/build/lib/mcp/appium-manager.d.ts +8 -0
- package/build/lib/mcp/appium-manager.d.ts.map +1 -0
- package/build/lib/mcp/appium-manager.js +160 -0
- package/build/lib/mcp/appium-manager.js.map +1 -0
- package/build/lib/mcp/config.d.ts +7 -0
- package/build/lib/mcp/config.d.ts.map +1 -0
- package/build/lib/mcp/config.js +14 -0
- package/build/lib/mcp/config.js.map +1 -0
- package/build/lib/mcp/constants.d.ts +3 -0
- package/build/lib/mcp/constants.d.ts.map +1 -0
- package/build/lib/mcp/constants.js +6 -0
- package/build/lib/mcp/constants.js.map +1 -0
- package/build/lib/mcp/errors.d.ts +2 -0
- package/build/lib/mcp/errors.d.ts.map +1 -0
- package/build/lib/mcp/errors.js +10 -0
- package/build/lib/mcp/errors.js.map +1 -0
- package/build/lib/mcp/index.d.ts +3 -0
- package/build/lib/mcp/index.d.ts.map +1 -0
- package/build/lib/mcp/index.js +113 -0
- package/build/lib/mcp/index.js.map +1 -0
- package/build/lib/mcp/session.d.ts +24 -0
- package/build/lib/mcp/session.d.ts.map +1 -0
- package/build/lib/mcp/session.js +77 -0
- package/build/lib/mcp/session.js.map +1 -0
- package/build/lib/mcp/tools/advanced.d.ts +4 -0
- package/build/lib/mcp/tools/advanced.d.ts.map +1 -0
- package/build/lib/mcp/tools/advanced.js +119 -0
- package/build/lib/mcp/tools/advanced.js.map +1 -0
- package/build/lib/mcp/tools/app.d.ts +4 -0
- package/build/lib/mcp/tools/app.d.ts.map +1 -0
- package/build/lib/mcp/tools/app.js +64 -0
- package/build/lib/mcp/tools/app.js.map +1 -0
- package/build/lib/mcp/tools/clipboard.d.ts +4 -0
- package/build/lib/mcp/tools/clipboard.d.ts.map +1 -0
- package/build/lib/mcp/tools/clipboard.js +41 -0
- package/build/lib/mcp/tools/clipboard.js.map +1 -0
- package/build/lib/mcp/tools/find.d.ts +4 -0
- package/build/lib/mcp/tools/find.d.ts.map +1 -0
- package/build/lib/mcp/tools/find.js +119 -0
- package/build/lib/mcp/tools/find.js.map +1 -0
- package/build/lib/mcp/tools/index.d.ts +4 -0
- package/build/lib/mcp/tools/index.d.ts.map +1 -0
- package/build/lib/mcp/tools/index.js +24 -0
- package/build/lib/mcp/tools/index.js.map +1 -0
- package/build/lib/mcp/tools/inspect.d.ts +4 -0
- package/build/lib/mcp/tools/inspect.d.ts.map +1 -0
- package/build/lib/mcp/tools/inspect.js +106 -0
- package/build/lib/mcp/tools/inspect.js.map +1 -0
- package/build/lib/mcp/tools/interact.d.ts +4 -0
- package/build/lib/mcp/tools/interact.d.ts.map +1 -0
- package/build/lib/mcp/tools/interact.js +121 -0
- package/build/lib/mcp/tools/interact.js.map +1 -0
- package/build/lib/mcp/tools/patterns.d.ts +4 -0
- package/build/lib/mcp/tools/patterns.d.ts.map +1 -0
- package/build/lib/mcp/tools/patterns.js +136 -0
- package/build/lib/mcp/tools/patterns.js.map +1 -0
- package/build/lib/mcp/tools/session.d.ts +4 -0
- package/build/lib/mcp/tools/session.d.ts.map +1 -0
- package/build/lib/mcp/tools/session.js +55 -0
- package/build/lib/mcp/tools/session.js.map +1 -0
- package/build/lib/mcp/tools/window.d.ts +4 -0
- package/build/lib/mcp/tools/window.d.ts.map +1 -0
- package/build/lib/mcp/tools/window.js +134 -0
- package/build/lib/mcp/tools/window.js.map +1 -0
- package/build/lib/powershell/common.d.ts +39 -0
- package/build/lib/powershell/common.d.ts.map +1 -0
- package/build/lib/powershell/common.js +121 -0
- package/build/lib/powershell/common.js.map +1 -0
- package/build/lib/powershell/conditions.d.ts +24 -0
- package/build/lib/powershell/conditions.d.ts.map +1 -0
- package/build/lib/powershell/conditions.js +131 -0
- package/build/lib/powershell/conditions.js.map +1 -0
- package/build/lib/powershell/converter.d.ts +3 -0
- package/build/lib/powershell/converter.d.ts.map +1 -0
- package/build/lib/powershell/converter.js +273 -0
- package/build/lib/powershell/converter.js.map +1 -0
- package/build/lib/powershell/core.d.ts +8 -0
- package/build/lib/powershell/core.d.ts.map +1 -0
- package/build/lib/powershell/core.js +30 -0
- package/build/lib/powershell/core.js.map +1 -0
- package/build/lib/powershell/elements.d.ts +70 -0
- package/build/lib/powershell/elements.d.ts.map +1 -0
- package/build/lib/powershell/elements.js +523 -0
- package/build/lib/powershell/elements.js.map +1 -0
- package/build/lib/powershell/index.d.ts +8 -0
- package/build/lib/powershell/index.d.ts.map +1 -0
- package/build/lib/powershell/index.js +24 -0
- package/build/lib/powershell/index.js.map +1 -0
- package/build/lib/powershell/regex.d.ts +19 -0
- package/build/lib/powershell/regex.d.ts.map +1 -0
- package/build/lib/powershell/regex.js +68 -0
- package/build/lib/powershell/regex.js.map +1 -0
- package/build/lib/powershell/types.d.ts +155 -0
- package/build/lib/powershell/types.d.ts.map +1 -0
- package/build/lib/powershell/types.js +141 -0
- package/build/lib/powershell/types.js.map +1 -0
- package/build/lib/util.d.ts +17 -0
- package/build/lib/util.d.ts.map +1 -0
- package/build/lib/util.js +76 -0
- package/build/lib/util.js.map +1 -0
- package/build/lib/winapi/types/index.d.ts +8 -0
- package/build/lib/winapi/types/index.d.ts.map +1 -0
- package/build/lib/winapi/types/index.js +24 -0
- package/build/lib/winapi/types/index.js.map +1 -0
- package/build/lib/winapi/types/input.d.ts +11 -0
- package/build/lib/winapi/types/input.d.ts.map +1 -0
- package/build/lib/winapi/types/input.js +12 -0
- package/build/lib/winapi/types/input.js.map +1 -0
- package/build/lib/winapi/types/keyeventf.d.ts +13 -0
- package/build/lib/winapi/types/keyeventf.d.ts.map +1 -0
- package/build/lib/winapi/types/keyeventf.js +14 -0
- package/build/lib/winapi/types/keyeventf.js.map +1 -0
- package/build/lib/winapi/types/mouseeventf.d.ts +34 -0
- package/build/lib/winapi/types/mouseeventf.d.ts.map +1 -0
- package/build/lib/winapi/types/mouseeventf.js +37 -0
- package/build/lib/winapi/types/mouseeventf.js.map +1 -0
- package/build/lib/winapi/types/scancode.d.ts +95 -0
- package/build/lib/winapi/types/scancode.d.ts.map +1 -0
- package/build/lib/winapi/types/scancode.js +96 -0
- package/build/lib/winapi/types/scancode.js.map +1 -0
- package/build/lib/winapi/types/systemmetric.d.ts +214 -0
- package/build/lib/winapi/types/systemmetric.d.ts.map +1 -0
- package/build/lib/winapi/types/systemmetric.js +215 -0
- package/build/lib/winapi/types/systemmetric.js.map +1 -0
- package/build/lib/winapi/types/virtualkey.d.ts +353 -0
- package/build/lib/winapi/types/virtualkey.d.ts.map +1 -0
- package/build/lib/winapi/types/virtualkey.js +354 -0
- package/build/lib/winapi/types/virtualkey.js.map +1 -0
- package/build/lib/winapi/types/xmousebutton.d.ts +7 -0
- package/build/lib/winapi/types/xmousebutton.d.ts.map +1 -0
- package/build/lib/winapi/types/xmousebutton.js +8 -0
- package/build/lib/winapi/types/xmousebutton.js.map +1 -0
- package/build/lib/winapi/user32.d.ts +56 -0
- package/build/lib/winapi/user32.d.ts.map +1 -0
- package/build/lib/winapi/user32.js +592 -0
- package/build/lib/winapi/user32.js.map +1 -0
- package/build/lib/xpath/core.d.ts +8 -0
- package/build/lib/xpath/core.d.ts.map +1 -0
- package/build/lib/xpath/core.js +593 -0
- package/build/lib/xpath/core.js.map +1 -0
- package/build/lib/xpath/functions.d.ts +4 -0
- package/build/lib/xpath/functions.d.ts.map +1 -0
- package/build/lib/xpath/functions.js +271 -0
- package/build/lib/xpath/functions.js.map +1 -0
- package/build/lib/xpath/index.d.ts +3 -0
- package/build/lib/xpath/index.d.ts.map +1 -0
- package/build/lib/xpath/index.js +19 -0
- package/build/lib/xpath/index.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertStringToCondition = convertStringToCondition;
|
|
4
|
+
const base_driver_1 = require("@appium/base-driver");
|
|
5
|
+
const regex_1 = require("./regex");
|
|
6
|
+
const conditions_1 = require("./conditions");
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
const common_1 = require("./common");
|
|
9
|
+
const BOOLEAN_REGEX = /(?<=[\s,])(?:\$)?(true|false)(?=[\s)])/;
|
|
10
|
+
const INTEGER_REGEX = /((?<![\d.+-])[+-]?\d+(?![\d.]))/;
|
|
11
|
+
const POSITIVE_INTEGER_REGEX = /((?<![\d.+-])[+]?\d+(?![\d.]))/;
|
|
12
|
+
const FLOATING_POINT_NUMBER_REGEX = /((?<![\d.+-])[+-]?(?:\d*[.])?\d+(?![\d.]))/;
|
|
13
|
+
const POSITIVE_FLOATING_POINT_NUMBER_REGEX = /((?<![\d.+-])[+]?(?:\d*[.])?\d+(?![\d.]))/;
|
|
14
|
+
const DOUBLE_QUOTE_STRINGS_REGEX = /"([^"`]|`.)*(?:[^"]*)*"/g;
|
|
15
|
+
const PROCESSED_STRING_RESULT_MATCH_REGEX = /^[\uEE00-\uEFFF]{1}$/;
|
|
16
|
+
const PROCESSED_ITEMS_REGEX = /[\uEE00-\uEFFF]/g;
|
|
17
|
+
const BOOLEAN_MATCHER = new regex_1.RegexItem(BOOLEAN_REGEX.source);
|
|
18
|
+
const INTEGER_MATCHER = new regex_1.RegexItem(INTEGER_REGEX.source);
|
|
19
|
+
const POSITIVE_INTEGER_MATCHER = new regex_1.RegexItem(POSITIVE_INTEGER_REGEX.source);
|
|
20
|
+
const FLOATING_POINT_NUMBER_MATCHER = new regex_1.RegexItem(FLOATING_POINT_NUMBER_REGEX.source);
|
|
21
|
+
const POSITIVE_FLOATING_POINT_NUMBER_MATCHER = new regex_1.RegexItem(POSITIVE_FLOATING_POINT_NUMBER_REGEX.source);
|
|
22
|
+
const PROCESSED_ITEM_REGEX_MATCHER = new regex_1.RegexItem(`(${PROCESSED_ITEMS_REGEX.source}{1})`);
|
|
23
|
+
const POINT_REGEX_MATCHER = new regex_1.ConstructorRegexMatcher('System.Windows.Point', FLOATING_POINT_NUMBER_MATCHER, FLOATING_POINT_NUMBER_MATCHER);
|
|
24
|
+
const SIZE_REGEX_MATCHER = new regex_1.ConstructorRegexMatcher('System.Windows.Size', POSITIVE_FLOATING_POINT_NUMBER_MATCHER, POSITIVE_FLOATING_POINT_NUMBER_MATCHER);
|
|
25
|
+
const VECTOR_REGEX_MATCHER = new regex_1.ConstructorRegexMatcher('System.Windows.Vector', FLOATING_POINT_NUMBER_MATCHER, FLOATING_POINT_NUMBER_MATCHER);
|
|
26
|
+
const STRING_REGEX = new regex_1.StringRegexMatcher().toRegex('gi');
|
|
27
|
+
const PROPERTY_CONDITION_REGEX = new regex_1.ConstructorRegexMatcher('System.Windows.Automation.Property(?:Condition)?', new regex_1.PropertyRegexMatcher('System.Windows.Automation.AutomationElement'), PROCESSED_ITEM_REGEX_MATCHER).toRegex('gi');
|
|
28
|
+
const ANY_LOGIC_CONDITION_REGEX = new regex_1.ConstructorRegexMatcher('System.Windows.Automation.(?:And|Or|Not)(?:Condition)?', new regex_1.VarArgsRegexMatcher(PROCESSED_ITEM_REGEX_MATCHER)).toRegex('i'); // not global as it will be used for test
|
|
29
|
+
const AND_CONDITION_REGEX = new regex_1.ConstructorRegexMatcher('System.Windows.Automation.And(?:Condition)?', new regex_1.VarArgsRegexMatcher(PROCESSED_ITEM_REGEX_MATCHER)).toRegex('gi');
|
|
30
|
+
const OR_CONDITION_REGEX = new regex_1.ConstructorRegexMatcher('System.Windows.Automation.Or(?:Condition)?', new regex_1.VarArgsRegexMatcher(PROCESSED_ITEM_REGEX_MATCHER)).toRegex('gi');
|
|
31
|
+
const NOT_CONDITION_REGEX = new regex_1.ConstructorRegexMatcher('System.Windows.Automation.Not(?:Condition)?', new regex_1.VarArgsRegexMatcher(PROCESSED_ITEM_REGEX_MATCHER)).toRegex('gi');
|
|
32
|
+
const TRUE_CONDITION_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.(?:Property)Condition', `True(?:Condition)?`).toRegex('gi');
|
|
33
|
+
const FALSE_CONDITION_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.(?:Property)Condition', `False(?:Condition)?`).toRegex('gi');
|
|
34
|
+
const RAW_VIEW_CONDITION_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.Automation', `RawView(?:Condition)?`).toRegex('gi');
|
|
35
|
+
const CONTROL_VIEW_CONDITION_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.Automation', `ControlView(?:Condition)?`).toRegex('gi');
|
|
36
|
+
const CONTENT_VIEW_CONDITION_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.Automation', `ContentView(?:Condition)?`).toRegex('gi');
|
|
37
|
+
const POINT_PARAMETER_REGEX = POINT_REGEX_MATCHER.toRegex('gi');
|
|
38
|
+
const SIZE_PARAMETER_REGEX = SIZE_REGEX_MATCHER.toRegex('gi');
|
|
39
|
+
const VECTOR_PARAMETER_REGEX = VECTOR_REGEX_MATCHER.toRegex('gi');
|
|
40
|
+
const RECT_PARAMETER_REGEX_C1 = new regex_1.ConstructorRegexMatcher('System.Windows.Rect', POINT_REGEX_MATCHER, SIZE_REGEX_MATCHER).toRegex('gi');
|
|
41
|
+
const RECT_PARAMETER_REGEX_C2 = new regex_1.ConstructorRegexMatcher('System.Windows.Rect', FLOATING_POINT_NUMBER_MATCHER, FLOATING_POINT_NUMBER_MATCHER, FLOATING_POINT_NUMBER_MATCHER, FLOATING_POINT_NUMBER_MATCHER).toRegex('gi');
|
|
42
|
+
const RECT_PARAMETER_REGEX_C3 = new regex_1.ConstructorRegexMatcher('System.Windows.Rect', POINT_REGEX_MATCHER, POINT_REGEX_MATCHER).toRegex('gi');
|
|
43
|
+
const RECT_PARAMETER_REGEX_C4 = new regex_1.ConstructorRegexMatcher('System.Windows.Rect', POINT_REGEX_MATCHER, VECTOR_REGEX_MATCHER).toRegex('gi');
|
|
44
|
+
const RECT_PARAMETER_REGEX_C5 = new regex_1.ConstructorRegexMatcher('System.Windows.Rect', SIZE_REGEX_MATCHER).toRegex('gi');
|
|
45
|
+
const AUTOMATION_HEADING_LEVEL_PARAMETER_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.AutomationHeadingLevel', ...Object.values(types_1.AutomationHeadingLevel)).toRegex('gi');
|
|
46
|
+
const ORIENTATION_TYPE_PARAMETER_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.OrientationType', ...Object.values(types_1.OrientationType)).toRegex('gi');
|
|
47
|
+
const CONTROL_TYPE_PARAMETER_REGEX = new regex_1.PropertyRegexMatcher('System.Windows.Automation.ControlType', ...Object.values(types_1.ControlType), ...Object.values(types_1.ExtraControlType)).toRegex('gi');
|
|
48
|
+
const CULTURE_INFO_PARAMETER_REGEX_C1 = new regex_1.ConstructorRegexMatcher('System.Globalization.CultureInfo', new regex_1.StringRegexMatcher()).toRegex('gi');
|
|
49
|
+
const CULTURE_INFO_PARAMETER_REGEX_C2 = new regex_1.ConstructorRegexMatcher('System.Globalization.CultureInfo', new regex_1.StringRegexMatcher(), BOOLEAN_MATCHER).toRegex('gi');
|
|
50
|
+
const CULTURE_INFO_PARAMETER_REGEX_C3 = new regex_1.ConstructorRegexMatcher('System.Globalization.CultureInfo', POSITIVE_INTEGER_MATCHER).toRegex('gi');
|
|
51
|
+
const CULTURE_INFO_PARAMETER_REGEX_C4 = new regex_1.ConstructorRegexMatcher('System.Globalization.CultureInfo', POSITIVE_INTEGER_MATCHER, BOOLEAN_MATCHER).toRegex('gi');
|
|
52
|
+
const INTEGER_PARAMETER_REGEX = INTEGER_MATCHER.toRegex('g');
|
|
53
|
+
const INTEGER_ARRAY_PARAMETER_REGEX = /(?:(?:(?:(?:new\s+)?\bint(?:32)?\[\])|(?:\[int(?:32)?\[\]\]))\s*)?(?:(?:@\((?=\s*\d+(?:\s*,\s*\d+)*\s*\)))|(?:\[(?=\s*\d+(?:\s*,\s*\d+)*\s*\]))|(?:\{(?=\s*\d+(?:\s*,\s*\d+)*\s*\})))\s*(\d+(?:\s*,\s*\d+)*)\s*(?:\)|\]|\})/gi;
|
|
54
|
+
const MAGIC_PLACEHOLDER_UNICODE_BEGIN = 0xEE00;
|
|
55
|
+
const PROPERTY_SUFFIX = 'property';
|
|
56
|
+
class WindowsAutomationSelectorSyntaxError extends base_driver_1.errors.InvalidSelectorError {
|
|
57
|
+
constructor(selector, extraInfo) {
|
|
58
|
+
super(`Could not parse Windows Automation selector expression '${selector}'.${extraInfo ? ` ${extraInfo}.` : ''}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function convertStringToCondition(selector) {
|
|
62
|
+
const processedItems = [];
|
|
63
|
+
let processedSelector = selector;
|
|
64
|
+
processedSelector = processedSelector.replaceAll(DOUBLE_QUOTE_STRINGS_REGEX, (match) => {
|
|
65
|
+
const placeholderMap = {
|
|
66
|
+
'``': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 0),
|
|
67
|
+
'`0': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 1),
|
|
68
|
+
'`a': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 2),
|
|
69
|
+
'`b': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 3),
|
|
70
|
+
'`f': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 4),
|
|
71
|
+
'`n': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 5),
|
|
72
|
+
'`r': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 6),
|
|
73
|
+
'`t': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 7),
|
|
74
|
+
'`v': String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + 8),
|
|
75
|
+
};
|
|
76
|
+
let value = match.slice(1, match.length - 1);
|
|
77
|
+
// removing the ` that is not an escape sequence
|
|
78
|
+
value = value.replaceAll(RegExp(`(\`)[^${Object.keys(placeholderMap).map((x) => x.charAt(1)).join('')}]`, 'g'), '');
|
|
79
|
+
for (const entry in placeholderMap) {
|
|
80
|
+
value = value.replaceAll(entry, placeholderMap[entry]);
|
|
81
|
+
}
|
|
82
|
+
value = value.replaceAll(placeholderMap['``'], '`');
|
|
83
|
+
value = value.replaceAll(placeholderMap['`0'], '\0');
|
|
84
|
+
value = value.replaceAll(placeholderMap['`a'], '\u0007');
|
|
85
|
+
value = value.replaceAll(placeholderMap['`b'], '\b');
|
|
86
|
+
value = value.replaceAll(placeholderMap['`f'], '\f');
|
|
87
|
+
value = value.replaceAll(placeholderMap['`n'], '\n');
|
|
88
|
+
value = value.replaceAll(placeholderMap['`r'], '\r');
|
|
89
|
+
value = value.replaceAll(placeholderMap['`t'], '\t');
|
|
90
|
+
value = value.replaceAll(placeholderMap['`v'], '\v');
|
|
91
|
+
return value;
|
|
92
|
+
});
|
|
93
|
+
// it's important to process the strings first as they can contain other tokens that may be matched later
|
|
94
|
+
processedSelector = processedSelector.replaceAll(STRING_REGEX, (match) => {
|
|
95
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
96
|
+
processedItems.push(new common_1.PSString(match.slice(1, match.length - 1).replace(`''`, `'`)));
|
|
97
|
+
return replacementChar;
|
|
98
|
+
});
|
|
99
|
+
processedSelector = processedSelector.replaceAll(INTEGER_ARRAY_PARAMETER_REGEX, (_, value) => {
|
|
100
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
101
|
+
processedItems.push(new common_1.PSInt32Array(value.split(',').map(Number)));
|
|
102
|
+
return replacementChar;
|
|
103
|
+
});
|
|
104
|
+
processedSelector = processedSelector.replaceAll(RECT_PARAMETER_REGEX_C1, (_, point, size) => {
|
|
105
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
106
|
+
const p = POINT_PARAMETER_REGEX.exec(point)?.groups ?? [];
|
|
107
|
+
const s = SIZE_PARAMETER_REGEX.exec(size)?.groups ?? [];
|
|
108
|
+
processedItems.push(new common_1.PSRect({ x: Number(p[0]), y: Number(p[1]), width: Number(s[0]), height: Number(s[1]) }));
|
|
109
|
+
return replacementChar;
|
|
110
|
+
});
|
|
111
|
+
processedSelector = processedSelector.replaceAll(RECT_PARAMETER_REGEX_C2, (_, x, y, width, height) => {
|
|
112
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
113
|
+
processedItems.push(new common_1.PSRect({ x: Number(x), y: Number(y), width: Number(width), height: Number(height) }));
|
|
114
|
+
return replacementChar;
|
|
115
|
+
});
|
|
116
|
+
processedSelector = processedSelector.replaceAll(RECT_PARAMETER_REGEX_C3, (_, point1, point2) => {
|
|
117
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
118
|
+
const p1 = POINT_PARAMETER_REGEX.exec(point1)?.groups ?? [];
|
|
119
|
+
const p2 = POINT_PARAMETER_REGEX.exec(point2)?.groups ?? [];
|
|
120
|
+
const x = Math.min(p1[0], p2[0]);
|
|
121
|
+
const y = Math.min(p1[1], p2[1]);
|
|
122
|
+
const width = Math.min(p2[0] - p1[0]);
|
|
123
|
+
const height = Math.min(p2[1] - p1[1]);
|
|
124
|
+
processedItems.push(new common_1.PSRect({ x, y, width, height }));
|
|
125
|
+
return replacementChar;
|
|
126
|
+
});
|
|
127
|
+
processedSelector = processedSelector.replaceAll(RECT_PARAMETER_REGEX_C4, (_, point, vector) => {
|
|
128
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
129
|
+
const p = POINT_PARAMETER_REGEX.exec(point)?.groups ?? [];
|
|
130
|
+
const v = VECTOR_PARAMETER_REGEX.exec(vector)?.groups ?? [];
|
|
131
|
+
const x = Number(v[0]) < 0 ? Number(p[0]) + Number(v[0]) : Number(p[0]);
|
|
132
|
+
const y = Number(v[1]) < 0 ? Number(p[1]) + Number(v[1]) : Number(p[1]);
|
|
133
|
+
const width = Number(v[0]) < 0 ? Math.abs(Number(v[0])) : Number(v[0]);
|
|
134
|
+
const height = Number(v[1]) < 0 ? Math.abs(Number(v[1])) : Number(v[1]);
|
|
135
|
+
processedItems.push(new common_1.PSRect({ x, y, width, height }));
|
|
136
|
+
return replacementChar;
|
|
137
|
+
});
|
|
138
|
+
processedSelector = processedSelector.replaceAll(RECT_PARAMETER_REGEX_C5, (_, point) => {
|
|
139
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
140
|
+
const p = POINT_PARAMETER_REGEX.exec(point)?.groups ?? [];
|
|
141
|
+
processedItems.push(new common_1.PSRect({ x: 0, y: 0, width: Number(p[0]), height: Number(p[1]) }));
|
|
142
|
+
return replacementChar;
|
|
143
|
+
});
|
|
144
|
+
// it's important to process Rect before Point as some of Rect's constructors contain Point or Points
|
|
145
|
+
processedSelector = processedSelector.replaceAll(POINT_PARAMETER_REGEX, (_, x, y) => {
|
|
146
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
147
|
+
processedItems.push(new common_1.PSPoint({ x: Number(x), y: Number(y) }));
|
|
148
|
+
return replacementChar;
|
|
149
|
+
});
|
|
150
|
+
processedSelector = processedSelector.replaceAll(AUTOMATION_HEADING_LEVEL_PARAMETER_REGEX, (_, value) => {
|
|
151
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
152
|
+
processedItems.push(new common_1.PSAutomationHeadingLevel(value));
|
|
153
|
+
return replacementChar;
|
|
154
|
+
});
|
|
155
|
+
processedSelector = processedSelector.replaceAll(ORIENTATION_TYPE_PARAMETER_REGEX, (_, value) => {
|
|
156
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
157
|
+
processedItems.push(new common_1.PSOrientationType(value));
|
|
158
|
+
return replacementChar;
|
|
159
|
+
});
|
|
160
|
+
processedSelector = processedSelector.replaceAll(CONTROL_TYPE_PARAMETER_REGEX, (_, value) => {
|
|
161
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
162
|
+
processedItems.push(new common_1.PSControlType(value));
|
|
163
|
+
return replacementChar;
|
|
164
|
+
});
|
|
165
|
+
processedSelector = processedSelector.replaceAll(CULTURE_INFO_PARAMETER_REGEX_C1, (_, name) => {
|
|
166
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
167
|
+
processedItems.push(new common_1.PSCultureInfo(name));
|
|
168
|
+
return replacementChar;
|
|
169
|
+
});
|
|
170
|
+
processedSelector = processedSelector.replaceAll(CULTURE_INFO_PARAMETER_REGEX_C2, (_, name, useUserOverride) => {
|
|
171
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
172
|
+
processedItems.push(new common_1.PSCultureInfo(name, Boolean(useUserOverride)));
|
|
173
|
+
return replacementChar;
|
|
174
|
+
});
|
|
175
|
+
processedSelector = processedSelector.replaceAll(CULTURE_INFO_PARAMETER_REGEX_C3, (_, culture) => {
|
|
176
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
177
|
+
processedItems.push(new common_1.PSCultureInfo(Number(culture)));
|
|
178
|
+
return replacementChar;
|
|
179
|
+
});
|
|
180
|
+
processedSelector = processedSelector.replaceAll(CULTURE_INFO_PARAMETER_REGEX_C4, (_, culture, useUserOverride) => {
|
|
181
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
182
|
+
processedItems.push(new common_1.PSCultureInfo(Number(culture), Boolean(useUserOverride)));
|
|
183
|
+
return replacementChar;
|
|
184
|
+
});
|
|
185
|
+
processedSelector = processedSelector.replaceAll(INTEGER_PARAMETER_REGEX, (match) => {
|
|
186
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
187
|
+
processedItems.push(new common_1.PSInt32(Number(match)));
|
|
188
|
+
return replacementChar;
|
|
189
|
+
});
|
|
190
|
+
processedSelector = processedSelector.replaceAll(TRUE_CONDITION_REGEX, () => {
|
|
191
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
192
|
+
processedItems.push(new conditions_1.TrueCondition());
|
|
193
|
+
return replacementChar;
|
|
194
|
+
});
|
|
195
|
+
processedSelector = processedSelector.replaceAll(FALSE_CONDITION_REGEX, () => {
|
|
196
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
197
|
+
processedItems.push(new conditions_1.FalseCondition());
|
|
198
|
+
return replacementChar;
|
|
199
|
+
});
|
|
200
|
+
processedSelector = processedSelector.replaceAll(RAW_VIEW_CONDITION_REGEX, () => {
|
|
201
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
202
|
+
processedItems.push(new conditions_1.TrueCondition());
|
|
203
|
+
return replacementChar;
|
|
204
|
+
});
|
|
205
|
+
processedSelector = processedSelector.replaceAll(CONTROL_VIEW_CONDITION_REGEX, () => {
|
|
206
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
207
|
+
processedItems.push(new conditions_1.NotCondition(new conditions_1.PropertyCondition(types_1.Property.IS_CONTROL_ELEMENT, new common_1.PSBoolean(false))));
|
|
208
|
+
return replacementChar;
|
|
209
|
+
});
|
|
210
|
+
processedSelector = processedSelector.replaceAll(CONTENT_VIEW_CONDITION_REGEX, () => {
|
|
211
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
212
|
+
processedItems.push(new conditions_1.NotCondition(new conditions_1.OrCondition(new conditions_1.PropertyCondition(types_1.Property.IS_CONTROL_ELEMENT, new common_1.PSBoolean(false)), new conditions_1.PropertyCondition(types_1.Property.IS_CONTENT_ELEMENT, new common_1.PSBoolean(false)))));
|
|
213
|
+
return replacementChar;
|
|
214
|
+
});
|
|
215
|
+
processedSelector = processedSelector.replaceAll(PROPERTY_CONDITION_REGEX, (_, property, processedItem) => {
|
|
216
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
217
|
+
property = property.toLowerCase();
|
|
218
|
+
if (property.endsWith(PROPERTY_SUFFIX)) {
|
|
219
|
+
property = property.slice(0, property.length - PROPERTY_SUFFIX.length);
|
|
220
|
+
}
|
|
221
|
+
if (!Object.values(types_1.Property).includes(property)) {
|
|
222
|
+
throw new base_driver_1.errors.InvalidArgumentError();
|
|
223
|
+
}
|
|
224
|
+
const propertyValue = processedItems[processedItem.trim().charCodeAt(0) - MAGIC_PLACEHOLDER_UNICODE_BEGIN];
|
|
225
|
+
// workaround for ControlType 50039 and 50040 not supported in UIAutomationClient
|
|
226
|
+
if (propertyValue instanceof common_1.PSControlType && Object.values(types_1.ExtraControlType).includes(propertyValue.toString().toLocaleLowerCase())) {
|
|
227
|
+
processedItems.push(new conditions_1.PropertyCondition(types_1.Property.LOCALIZED_CONTROL_TYPE, new common_1.PSString(propertyValue.toString())));
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
processedItems.push(new conditions_1.PropertyCondition(property, propertyValue));
|
|
231
|
+
}
|
|
232
|
+
return replacementChar;
|
|
233
|
+
});
|
|
234
|
+
while (ANY_LOGIC_CONDITION_REGEX.test(processedSelector)) {
|
|
235
|
+
processedSelector = processedSelector.replaceAll(AND_CONDITION_REGEX, (_, content) => {
|
|
236
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
237
|
+
const args = content.split(',').map((x) => x.trim()).map((x) => processedItems[x.charCodeAt(0) - MAGIC_PLACEHOLDER_UNICODE_BEGIN]);
|
|
238
|
+
if (args.length < 2) {
|
|
239
|
+
throw new WindowsAutomationSelectorSyntaxError(selector, 'expected AND condition to have at least 2 arguments');
|
|
240
|
+
}
|
|
241
|
+
processedItems.push(new conditions_1.AndCondition(...args));
|
|
242
|
+
return replacementChar;
|
|
243
|
+
});
|
|
244
|
+
processedSelector = processedSelector.replaceAll(OR_CONDITION_REGEX, (_, content) => {
|
|
245
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
246
|
+
const args = content.split(',').map((x) => x.trim()).map((x) => processedItems[x.charCodeAt(0) - MAGIC_PLACEHOLDER_UNICODE_BEGIN]);
|
|
247
|
+
if (args.length < 2) {
|
|
248
|
+
throw new WindowsAutomationSelectorSyntaxError(selector, 'expected OR condition to have at least 2 arguments');
|
|
249
|
+
}
|
|
250
|
+
processedItems.push(new conditions_1.OrCondition(...args));
|
|
251
|
+
return replacementChar;
|
|
252
|
+
});
|
|
253
|
+
processedSelector = processedSelector.replaceAll(NOT_CONDITION_REGEX, (_, content) => {
|
|
254
|
+
const replacementChar = String.fromCharCode(MAGIC_PLACEHOLDER_UNICODE_BEGIN + processedItems.length);
|
|
255
|
+
const args = content.split(',').map((x) => x.trim()).map((x) => processedItems[x.charCodeAt(0) - MAGIC_PLACEHOLDER_UNICODE_BEGIN]);
|
|
256
|
+
if (args.length !== 1) {
|
|
257
|
+
throw new WindowsAutomationSelectorSyntaxError(selector, 'expected NOT condition to have exactly 1 arguments');
|
|
258
|
+
}
|
|
259
|
+
processedItems.push(new conditions_1.NotCondition(args[0]));
|
|
260
|
+
return replacementChar;
|
|
261
|
+
});
|
|
262
|
+
processedSelector = processedSelector.trim();
|
|
263
|
+
}
|
|
264
|
+
if (!PROCESSED_STRING_RESULT_MATCH_REGEX.test(processedSelector)) {
|
|
265
|
+
throw new WindowsAutomationSelectorSyntaxError(selector, `Some parts of the selector were left unprocessed: '${processedSelector.replaceAll(PROCESSED_ITEMS_REGEX, '<processed>')}'`);
|
|
266
|
+
}
|
|
267
|
+
const condition = processedItems[processedSelector.trim().charCodeAt(0) - MAGIC_PLACEHOLDER_UNICODE_BEGIN];
|
|
268
|
+
if (!(condition instanceof conditions_1.Condition)) {
|
|
269
|
+
throw new WindowsAutomationSelectorSyntaxError(selector, 'The selector must be of type System.Windows.Automation.Condition.');
|
|
270
|
+
}
|
|
271
|
+
return condition;
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../lib/powershell/converter.ts"],"names":[],"mappings":";;AAwGA,4DA4QC;AApXD,qDAA6C;AAC7C,mCAMiB;AACjB,6CAQsB;AACtB,mCAMiB;AAEjB,qCAWkB;AAElB,MAAM,aAAa,GAAG,wCAAwC,CAAC;AAC/D,MAAM,aAAa,GAAG,iCAAiC,CAAC;AACxD,MAAM,sBAAsB,GAAG,gCAAgC,CAAC;AAChE,MAAM,2BAA2B,GAAG,4CAA4C,CAAC;AACjF,MAAM,oCAAoC,GAAG,2CAA2C,CAAC;AACzF,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAC9D,MAAM,mCAAmC,GAAG,sBAAsB,CAAC;AACnE,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD,MAAM,eAAe,GAAG,IAAI,iBAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,eAAe,GAAG,IAAI,iBAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,wBAAwB,GAAG,IAAI,iBAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC9E,MAAM,6BAA6B,GAAG,IAAI,iBAAS,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACxF,MAAM,sCAAsC,GAAG,IAAI,iBAAS,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;AAC1G,MAAM,4BAA4B,GAAG,IAAI,iBAAS,CAAC,IAAI,qBAAqB,CAAC,MAAM,MAAM,CAAC,CAAC;AAC3F,MAAM,mBAAmB,GAAG,IAAI,+BAAuB,CAAC,sBAAsB,EAAE,6BAA6B,EAAE,6BAA6B,CAAC,CAAC;AAC9I,MAAM,kBAAkB,GAAG,IAAI,+BAAuB,CAAC,qBAAqB,EAAE,sCAAsC,EAAE,sCAAsC,CAAC,CAAC;AAC9J,MAAM,oBAAoB,GAAG,IAAI,+BAAuB,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,6BAA6B,CAAC,CAAC;AAEhJ,MAAM,YAAY,GAAG,IAAI,0BAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5D,MAAM,wBAAwB,GAAG,IAAI,+BAAuB,CAAC,kDAAkD,EAAE,IAAI,4BAAoB,CAAC,6CAA6C,CAAC,EAAE,4BAA4B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtO,MAAM,yBAAyB,GAAG,IAAI,+BAAuB,CAAC,wDAAwD,EAAE,IAAI,2BAAmB,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yCAAyC;AAEtO,MAAM,mBAAmB,GAAG,IAAI,+BAAuB,CAAC,6CAA6C,EAAE,IAAI,2BAAmB,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5K,MAAM,kBAAkB,GAAG,IAAI,+BAAuB,CAAC,4CAA4C,EAAE,IAAI,2BAAmB,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1K,MAAM,mBAAmB,GAAG,IAAI,+BAAuB,CAAC,6CAA6C,EAAE,IAAI,2BAAmB,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5K,MAAM,oBAAoB,GAAG,IAAI,4BAAoB,CAAC,iDAAiD,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7I,MAAM,qBAAqB,GAAG,IAAI,4BAAoB,CAAC,iDAAiD,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/I,MAAM,wBAAwB,GAAG,IAAI,4BAAoB,CAAC,sCAAsC,EAAE,uBAAuB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzI,MAAM,4BAA4B,GAAG,IAAI,4BAAoB,CAAC,sCAAsC,EAAE,2BAA2B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjJ,MAAM,4BAA4B,GAAG,IAAI,4BAAoB,CAAC,sCAAsC,EAAE,2BAA2B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjJ,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChE,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAElE,MAAM,uBAAuB,GAAG,IAAI,+BAAuB,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1I,MAAM,uBAAuB,GAAG,IAAI,+BAAuB,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7N,MAAM,uBAAuB,GAAG,IAAI,+BAAuB,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3I,MAAM,uBAAuB,GAAG,IAAI,+BAAuB,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5I,MAAM,uBAAuB,GAAG,IAAI,+BAAuB,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAErH,MAAM,wCAAwC,GAAG,IAAI,4BAAoB,CAAC,kDAAkD,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtL,MAAM,gCAAgC,GAAG,IAAI,4BAAoB,CAAC,2CAA2C,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAe,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChK,MAAM,4BAA4B,GAAG,IAAI,4BAAoB,CAAC,uCAAuC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAExL,MAAM,+BAA+B,GAAG,IAAI,+BAAuB,CAAC,kCAAkC,EAAE,IAAI,0BAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChJ,MAAM,+BAA+B,GAAG,IAAI,+BAAuB,CAAC,kCAAkC,EAAE,IAAI,0BAAkB,EAAE,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjK,MAAM,+BAA+B,GAAG,IAAI,+BAAuB,CAAC,kCAAkC,EAAE,wBAAwB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChJ,MAAM,+BAA+B,GAAG,IAAI,+BAAuB,CAAC,kCAAkC,EAAE,wBAAwB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjK,MAAM,uBAAuB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,6BAA6B,GAAG,+NAA+N,CAAC;AAEtQ,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAC/C,MAAM,eAAe,GAAG,UAAU,CAAC;AAEnC,MAAM,oCAAqC,SAAQ,oBAAM,CAAC,oBAAoB;IAC1E,YAAY,QAAgB,EAAE,SAAkB;QAC5C,KAAK,CAAC,2DAA2D,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvH,CAAC;CACJ;AAED,SAAgB,wBAAwB,CAAC,QAAgB;IACrD,MAAM,cAAc,GAAe,EAAE,CAAC;IACtC,IAAI,iBAAiB,GAAG,QAAQ,CAAC;IAEjC,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,EAAE;QACnF,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;YAC9D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,CAAC,CAAC;SACjE,CAAC;QAEF,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7C,gDAAgD;QAChD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAEpH,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACjC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,yGAAyG;IACzG,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;QACrE,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,iBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACvF,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,EAAE;QACjG,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,qBAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpE,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;QACzG,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAErG,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAExD,cAAc,CAAC,IAAI,CAAC,IAAI,eAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjH,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE;QACjI,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,eAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9G,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;QAC5G,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAErG,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAC5D,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAE5D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,cAAc,CAAC,IAAI,CAAC,IAAI,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE;QAC3G,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAErG,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAE5D,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,cAAc,CAAC,IAAI,CAAC,IAAI,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,EAAE;QAC3F,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAErG,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;QAE1D,cAAc,CAAC,IAAI,CAAC,IAAI,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,qGAAqG;IACrG,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;QAChG,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,gBAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,wCAAwC,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,EAAE;QAC5G,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,iCAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,EAAE;QACpG,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,0BAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,EAAE;QAChG,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAClG,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,eAAuB,EAAE,EAAE;QAC3H,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAa,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;QACrG,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,eAAuB,EAAE,EAAE;QAC9H,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QAChF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,gBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACxE,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,0BAAa,EAAE,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACzE,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,2BAAc,EAAE,CAAC,CAAC;QAC1C,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC5E,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,0BAAa,EAAE,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAChF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,yBAAY,CAAC,IAAI,8BAAiB,CAAC,gBAAQ,CAAC,kBAAkB,EAAE,IAAI,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChH,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAChF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,cAAc,CAAC,IAAI,CAAC,IAAI,yBAAY,CAAC,IAAI,wBAAW,CAAC,IAAI,8BAAiB,CAAC,gBAAQ,CAAC,kBAAkB,EAAE,IAAI,kBAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,8BAAiB,CAAC,gBAAQ,CAAC,kBAAkB,EAAE,IAAI,kBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3M,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,QAAgB,EAAE,aAAqB,EAAE,EAAE;QACtH,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrG,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAQ,CAAC,CAAC,QAAQ,CAAC,QAAoB,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,oBAAM,CAAC,oBAAoB,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAE3G,iFAAiF;QACjF,IAAI,aAAa,YAAY,sBAAa,IAAI,MAAM,CAAC,MAAM,CAAC,wBAAgB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAsB,CAAC,EAAE,CAAC;YACvJ,cAAc,CAAC,IAAI,CAAC,IAAI,8BAAiB,CAAC,gBAAQ,CAAC,sBAAsB,EAAE,IAAI,iBAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACxH,CAAC;aAAM,CAAC;YACJ,cAAc,CAAC,IAAI,CAAC,IAAI,8BAAiB,CAAC,QAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;QACpF,CAAC;QAGD,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvD,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;YACzF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACrG,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC,CAAC;YAEnI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,oCAAoC,CAAC,QAAQ,EAAE,qDAAqD,CAAC,CAAC;YACpH,CAAC;YAED,cAAc,CAAC,IAAI,CAAC,IAAI,yBAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC/C,OAAO,eAAe,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;YACxF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACrG,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC,CAAC;YAEnI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,oCAAoC,CAAC,QAAQ,EAAE,oDAAoD,CAAC,CAAC;YACnH,CAAC;YAED,cAAc,CAAC,IAAI,CAAC,IAAI,wBAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC9C,OAAO,eAAe,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;YACzF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,+BAA+B,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACrG,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC,CAAC;YAEnI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,oCAAoC,CAAC,QAAQ,EAAE,oDAAoD,CAAC,CAAC;YACnH,CAAC;YAED,cAAc,CAAC,IAAI,CAAC,IAAI,yBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,eAAe,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,oCAAoC,CAAC,QAAQ,EAAE,sDAAsD,iBAAiB,CAAC,UAAU,CAAC,qBAAqB,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1L,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAE3G,IAAI,CAAC,CAAC,SAAS,YAAY,sBAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,oCAAoC,CAAC,QAAQ,EAAE,mEAAmE,CAAC,CAAC;IAClI,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class PSObject {
|
|
2
|
+
private readonly command;
|
|
3
|
+
constructor(command: string);
|
|
4
|
+
toString(): string;
|
|
5
|
+
}
|
|
6
|
+
export declare function pwsh(strings: TemplateStringsArray, ...values: string[]): string;
|
|
7
|
+
export declare function pwsh$(literals: TemplateStringsArray, ...substitutions: number[]): import("../util").DeferredStringTemplate;
|
|
8
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../lib/powershell/core.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,MAAM;IAI3B,QAAQ,IAAI,MAAM;CAGrB;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAG/E;AAED,wBAAgB,KAAK,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,4CAS/E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PSObject = void 0;
|
|
4
|
+
exports.pwsh = pwsh;
|
|
5
|
+
exports.pwsh$ = pwsh$;
|
|
6
|
+
const util_1 = require("../util");
|
|
7
|
+
class PSObject {
|
|
8
|
+
command;
|
|
9
|
+
constructor(command) {
|
|
10
|
+
this.command = command;
|
|
11
|
+
}
|
|
12
|
+
toString() {
|
|
13
|
+
return this.command;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.PSObject = PSObject;
|
|
17
|
+
function pwsh(strings, ...values) {
|
|
18
|
+
const command = strings.reduce((result, str, i) => result + str + (i < values.length ? values[i] : ''), '');
|
|
19
|
+
return /* ps1 */ `(Invoke-Expression -Command ([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${btoa(command)}'))))`;
|
|
20
|
+
}
|
|
21
|
+
function pwsh$(literals, ...substitutions) {
|
|
22
|
+
const templateInstance = (0, util_1.$)(literals, ...substitutions);
|
|
23
|
+
const defaultFormat = templateInstance.format.bind(templateInstance);
|
|
24
|
+
templateInstance.format = (...args) => {
|
|
25
|
+
const command = defaultFormat(...args);
|
|
26
|
+
return /* ps1 */ `(Invoke-Expression -Command ([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${btoa(command)}'))))`;
|
|
27
|
+
};
|
|
28
|
+
return templateInstance;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../lib/powershell/core.ts"],"names":[],"mappings":";;;AAcA,oBAGC;AAED,sBASC;AA5BD,kCAA4B;AAE5B,MAAa,QAAQ;IACA,OAAO,CAAS;IAEjC,YAAY,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAVD,4BAUC;AAED,SAAgB,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAgB;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5G,OAAO,SAAS,CAAC,6FAA6F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACvI,CAAC;AAED,SAAgB,KAAK,CAAC,QAA8B,EAAE,GAAG,aAAuB;IAC5E,MAAM,gBAAgB,GAAG,IAAA,QAAC,EAAC,QAAQ,EAAE,GAAG,aAAa,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrE,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;QACvC,OAAO,SAAS,CAAC,6FAA6F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACvI,CAAC,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Enum } from '../enums';
|
|
2
|
+
import { PSObject } from './core';
|
|
3
|
+
import { Condition } from './conditions';
|
|
4
|
+
export declare const TreeScope: Readonly<{
|
|
5
|
+
readonly ANCESTORS_OR_SELF: "ancestors-or-self";
|
|
6
|
+
readonly FOLLOWING: "following";
|
|
7
|
+
readonly FOLLOWING_SIBLING: "following-sibling";
|
|
8
|
+
readonly PRECEDING: "preceding";
|
|
9
|
+
readonly PRECEDING_SIBLING: "preceding-sibling";
|
|
10
|
+
readonly ANCESTORS: "ancestors";
|
|
11
|
+
readonly CHILDREN_OR_SELF: "child-or-self";
|
|
12
|
+
readonly CHILDREN: "children";
|
|
13
|
+
readonly DESCENDANTS: "descendants";
|
|
14
|
+
readonly ELEMENT: "element";
|
|
15
|
+
readonly SUBTREE: "subtree";
|
|
16
|
+
readonly PARENT: "parent";
|
|
17
|
+
}>;
|
|
18
|
+
export type TreeScope = Enum<typeof TreeScope>;
|
|
19
|
+
export declare const AutomationElementMode: Readonly<{
|
|
20
|
+
readonly NONE: "none";
|
|
21
|
+
readonly FULL: "full";
|
|
22
|
+
}>;
|
|
23
|
+
export type AutomationElementMode = Enum<typeof AutomationElementMode>;
|
|
24
|
+
export declare class AutomationElement extends PSObject {
|
|
25
|
+
constructor(command: string);
|
|
26
|
+
static get automationRoot(): AutomationElement;
|
|
27
|
+
static get rootElement(): AutomationElement;
|
|
28
|
+
static get focusedElement(): AutomationElement;
|
|
29
|
+
findFirst(scope: TreeScope, condition: Condition): AutomationElement;
|
|
30
|
+
findAll(scope: TreeScope, condition: Condition): AutomationElement;
|
|
31
|
+
buildGetTagNameCommand(): string;
|
|
32
|
+
buildGetPropertyCommand(property: string): string;
|
|
33
|
+
buildGetElementRectCommand(): string;
|
|
34
|
+
buildSetFocusCommand(): string;
|
|
35
|
+
buildCommand(): string;
|
|
36
|
+
}
|
|
37
|
+
export declare class AutomationElementGroup extends AutomationElement {
|
|
38
|
+
readonly groups: AutomationElement[];
|
|
39
|
+
constructor(...automationElements: AutomationElement[]);
|
|
40
|
+
findAllGroups(scope: TreeScope, condition: Condition): AutomationElement[];
|
|
41
|
+
findFirstGroups(scope: TreeScope, condition: Condition): AutomationElement[];
|
|
42
|
+
}
|
|
43
|
+
export declare class FoundAutomationElement extends AutomationElement {
|
|
44
|
+
readonly runtimeId: string;
|
|
45
|
+
constructor(runtimeId: string);
|
|
46
|
+
buildGetTextCommand(): string;
|
|
47
|
+
buildInvokeCommand(): string;
|
|
48
|
+
buildExpandCommand(): string;
|
|
49
|
+
buildCollapseCommand(): string;
|
|
50
|
+
buildScrollIntoViewCommand(): string;
|
|
51
|
+
buildIsMultipleSelectCommand(): string;
|
|
52
|
+
buildGetSelectionCommand(): string;
|
|
53
|
+
buildIsSelectedCommand(): string;
|
|
54
|
+
buildAddToSelectionCommand(): string;
|
|
55
|
+
buildRemoveFromSelectionCommand(): string;
|
|
56
|
+
buildSelectCommand(): string;
|
|
57
|
+
buildToggleCommand(): string;
|
|
58
|
+
buildSetValueCommand(value: string): string;
|
|
59
|
+
buildSetRangeValueCommand(value: string): string;
|
|
60
|
+
buildGetValueCommand(): string;
|
|
61
|
+
buildGetToggleStateCommand(): string;
|
|
62
|
+
buildMaximizeCommand(): string;
|
|
63
|
+
buildMinimizeCommand(): string;
|
|
64
|
+
buildRestoreCommand(): string;
|
|
65
|
+
buildCloseCommand(): string;
|
|
66
|
+
buildMoveCommand(x: number, y: number): string;
|
|
67
|
+
buildResizeCommand(width: number, height: number): string;
|
|
68
|
+
buildCommand(): string;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=elements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../../lib/powershell/elements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAS,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8VzC,eAAO,MAAM,SAAS;;;;;;;;;;;;;EAaX,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC;AAE/C,eAAO,MAAM,qBAAqB;;;EAGvB,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE,qBAAa,iBAAkB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM;IAI3B,MAAM,KAAK,cAAc,IAAI,iBAAiB,CAE7C;IAED,MAAM,KAAK,WAAW,IAAI,iBAAiB,CAE1C;IAED,MAAM,KAAK,cAAc,IAAI,iBAAiB,CAE7C;IAED,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB;IA2BpE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB;IA2BlE,sBAAsB,IAAI,MAAM;IAIhC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAYjD,0BAA0B,IAAI,MAAM;IAIpC,oBAAoB,IAAI,MAAM;IAI9B,YAAY,IAAI,MAAM;CAGzB;AAED,qBAAa,sBAAuB,SAAQ,iBAAiB;IACzD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;gBAEzB,GAAG,kBAAkB,EAAE,iBAAiB,EAAE;IAKtD,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB,EAAE;IAI1E,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB,EAAE;CAG/E;AAED,qBAAa,sBAAuB,SAAQ,iBAAiB;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,SAAS,EAAE,MAAM;IAK7B,mBAAmB,IAAI,MAAM;IAI7B,kBAAkB,IAAI,MAAM;IAI5B,kBAAkB,IAAI,MAAM;IAI5B,oBAAoB,IAAI,MAAM;IAI9B,0BAA0B,IAAI,MAAM;IAIpC,4BAA4B,IAAI,MAAM;IAItC,wBAAwB,IAAI,MAAM;IAIlC,sBAAsB,IAAI,MAAM;IAIhC,0BAA0B,IAAI,MAAM;IAIpC,+BAA+B,IAAI,MAAM;IAIzC,kBAAkB,IAAI,MAAM;IAI5B,kBAAkB,IAAI,MAAM;IAI5B,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI3C,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhD,oBAAoB,IAAI,MAAM;IAI9B,0BAA0B,IAAI,MAAM;IAIpC,oBAAoB,IAAI,MAAM;IAI9B,oBAAoB,IAAI,MAAM;IAI9B,mBAAmB,IAAI,MAAM;IAI7B,iBAAiB,IAAI,MAAM;IAI3B,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAI9C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhD,YAAY,IAAI,MAAM;CAGlC"}
|